Всего 122 790 комментариев

Peter Zenin
07 июля 2013, 06:53
0
По-моему программистов не самоучек быть не может :-)
Спасибо за работу!
Василий Наумкин
07 июля 2013, 05:37
0
Коля, ты забанен за то, что не умеешь нормально вести диалог и доказывать свою точку зрения.

Делать себе замечания я умею и сам.
Володя
06 июля 2013, 11:10
0
почему то неправильно путь проставляется, он ищет их по пути sitename.ru/manager/min/...
хотя должен искать по sitename.ru/assets/components/minishop2/...
Где что нужно подправить?
на modxcloud все работает, на шаред сервере путь неправильно прописывает. Т.е. это в настройках сервера что то не так?
Василий Наумкин
06 июля 2013, 09:55
0
Средняя кнопка мыши откроет товар в новом окне.
Дмитрий Чумак
06 июля 2013, 09:01
0
Может что то не так делаю?
<div class="form-block">
<form class="well" method="post" action="[[~[[*id]]]]" id="ticketForm">
<form method="post" enctype="multipart/form-data" action="[[~[[*id]]]]">
<div id="ticket-preview-placeholder"></div>
<div class="row">
<label for="parent">Выберите категорию тикета:<span>*</span></label>
<div class="sel">
<select name="parent">[[+sections]]</select>
</div>
<div class="ic-bug">
<div class="ic-bug-l">
[[+error.parent]]
</div></div></div>

<div class="row">
<label for="pagetitle">Введите заголовок<span>*</span></label>
<div class="inp">
<div class="inp-ins">
<input type="text" placeholder="[[%ticket_pagetitle]]" name="pagetitle" value="[[+pagetitle]]" maxlength="50"/>
</div>
</div>
<div class="ic-bug">
<div class="ic-bug-l">[[+error.pagetitle]]</div></div></div>

<div class="row">
<label for="pagetitle">Загрузите картинку<span>*</span></label>
<div>
<div>
<input type="file" name="image">
</div>
</div>
</div>

<div class="row">
<label for="content">Текст<span>*</span></label>

<span class="contact-left">
<textarea placeholder="[[%ticket_content]]" name="content" id="ticket-editor" cols="50" rows="5" >[[+content]]</textarea>
</span>
<div class="ic-bug">
<div class="ic-bug-l">
[[+error.content]]
</div></div></div>
<div class="row-hint">
Звездочкой (*) отмечены поля, обязательные для заполнения.
</div>
<input type="hidden" name="action" value="saveTicket" />
<input type="button" class="wrap-btn w94" value="[[%ticket_preview]]" onclick="Tickets.ticket.preview(this.form, this);return false;"/>
<input type="submit" class="wrap-btn w94" value="[[%ticket_save]]" />  
<label class="checkbox"><input type="checkbox" name="published" value="1" [[+published:is=`1`:then=`checked`]] /> [[%ticket_publish]]</label>
</form><div class="ic-bug">
[[+error:notempty=`<div class="ic-bug-l">[[+error]]</div>`]]</div></div>
Такая Форма создания тикета
В плагине Tickets добавляем либо так —
<?php
switch($modx->event->name) {
	case 'OnManagerPageInit':
		$cssFile = $modx->getOption('tickets.assets_url',null,$modx->getOption('assets_url').'components/tickets/').'css/mgr/tickets.css';
		$modx->regClientCSS($cssFile);
	break;

	case 'OnSiteRefresh':
		if ($modx->cacheManager->refresh(array('default/tickets' => array()))) {
			$modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default').': Tickets');
		}
	break;

	case 'OnDocFormRender':
		if ($resource->class_key == "TicketsSection") {
			/* @var TicketsSection $resource */
			$resource->set('syncsite', 0);
		}
	break;

	case 'OnDocFormSave':
      // Указываем путь, пробовал $modx->getOption('assets_url').'path/to/dir/';
      // получается со слэшем вначале: /assets/images/.
      $path = 'assets/images/'; 
      if($mode == 'new'){  // Режим создания документа
        if (!empty($_FILES)) {  // Проверка на пустоту массива $_FILES
          @mkdir($path, 0777, true); // Создаем папку для хранения изображений, с правами 0777, третий аргумент - рекурсивное создание папок.
          foreach($_FILES as $k => $v) {
            $name = $v['name'];
            $size = $v['size'];
            $tmp = $v['tmp_name'];

            $ext = pathinfo($name, PATHINFO_EXTENSION); //получаем расширение файла
            $hash = md5(time().$name.$size); // новое название файла
            $uploadfile = $path.$hash.$ext; // объединяем в конечный путь к файлу

            if (copy($tmp, $uploadfile)) { // копируем изображения из временной папки в нужное место
              $resource->set('photo', $uploadfile); 
              $resource->save(); // Сохраняем объект.
            }
          }
        }
      } else {
        //resource update
      }
		/* @var Ticket $resource */
		if ($mode == 'new' && $resource->class_key == "Ticket") {
			$modx->cacheManager->delete('tickets/latest.tickets');
		}
		/* @var TicketsSection $resource */
		if ($mode == 'upd' && $resource->class_key == 'TicketsSection') {
			if (method_exists($resource, 'clearCache')) {
				$resource->clearCache();
			}
		}
	break;

	case 'OnWebPagePrerender':
		$output = & $modx->resource->_output;
		$output = str_replace(array('[',']'), array('[',']'), $output);
	break;

	case 'OnPageNotFound':
		// It is working only with friendly urls enabled
		$q = trim($_REQUEST['q']);
		$matches = explode('/', $q);
		$count = count($matches);
		if ($count < 3) {return;}

		$section = $matches[$count - 3];
		$ticket = $matches[$count - 2];

		// Redirect to requested page, when you moved ticket from one section to another
		if ($modx->getCount('TicketsSection',array('class_key' => 'TicketsSection', 'alias' => $section, 'deleted' => 0, 'published' => 1))) {
			if (preg_match('/^\d+$/', $ticket)) {
				if ($modx->getCount('Ticket',  array('id' => $ticket, 'published' => 1, 'deleted' => 0))) {
					$url = $modx->makeUrl($ticket, '', '', 'full');
					$modx->sendRedirect($url);
				}
			}
		}
	break;

	case 'OnWebPageComplete':
		$Tickets = $modx->getService('tickets');
		$Tickets->logView($modx->resource->id);
	break;

}
Либо в конце
<?php
switch($modx->event->name) {
	case 'OnManagerPageInit':
		$cssFile = $modx->getOption('tickets.assets_url',null,$modx->getOption('assets_url').'components/tickets/').'css/mgr/tickets.css';
		$modx->regClientCSS($cssFile);
	break;

	case 'OnSiteRefresh':
		if ($modx->cacheManager->refresh(array('default/tickets' => array()))) {
			$modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default').': Tickets');
		}
	break;

	case 'OnDocFormRender':
		if ($resource->class_key == "TicketsSection") {
			/* @var TicketsSection $resource */
			$resource->set('syncsite', 0);
		}
	break;

	case 'OnDocFormSave':
		/* @var Ticket $resource */
		if ($mode == 'new' && $resource->class_key == "Ticket") {
			$modx->cacheManager->delete('tickets/latest.tickets');
		}
		/* @var TicketsSection $resource */
		if ($mode == 'upd' && $resource->class_key == 'TicketsSection') {
			if (method_exists($resource, 'clearCache')) {
				$resource->clearCache();
			}
		}
	break;

	case 'OnWebPagePrerender':
		$output = & $modx->resource->_output;
		$output = str_replace(array('[',']'), array('[',']'), $output);
	break;

	case 'OnPageNotFound':
		// It is working only with friendly urls enabled
		$q = trim($_REQUEST['q']);
		$matches = explode('/', $q);
		$count = count($matches);
		if ($count < 3) {return;}

		$section = $matches[$count - 3];
		$ticket = $matches[$count - 2];

		// Redirect to requested page, when you moved ticket from one section to another
		if ($modx->getCount('TicketsSection',array('class_key' => 'TicketsSection', 'alias' => $section, 'deleted' => 0, 'published' => 1))) {
			if (preg_match('/^\d+$/', $ticket)) {
				if ($modx->getCount('Ticket',  array('id' => $ticket, 'published' => 1, 'deleted' => 0))) {
					$url = $modx->makeUrl($ticket, '', '', 'full');
					$modx->sendRedirect($url);
				}
			}
		}
	break;

	case 'OnWebPageComplete':
		$Tickets = $modx->getService('tickets');
		$Tickets->logView($modx->resource->id);
	break;

}
case 'OnDocFormSave':
      // Указываем путь, пробовал $modx->getOption('assets_url').'path/to/dir/';
      // получается со слэшем вначале: /assets/images/.
      $path = 'assets/images/'; 
      if($mode == 'new'){  // Режим создания документа
        if (!empty($_FILES)) {  // Проверка на пустоту массива $_FILES
          @mkdir($path, 0777, true); // Создаем папку для хранения изображений, с правами 0777, третий аргумент - рекурсивное создание папок.
          foreach($_FILES as $k => $v) {
            $name = $v['name'];
            $size = $v['size'];
            $tmp = $v['tmp_name'];

            $ext = pathinfo($name, PATHINFO_EXTENSION); //получаем расширение файла
            $hash = md5(time().$name.$size); // новое название файла
            $uploadfile = $path.$hash.$ext; // объединяем в конечный путь к файлу

            if (copy($tmp, $uploadfile)) { // копируем изображения из временной папки в нужное место
              $resource->set('photo', $uploadfile); 
              $resource->save(); // Сохраняем объект.
            }
          }
        }
      } else {
        //resource update
      }
Последнее выдает белый экран по всему сайту.
Василий Наумкин
06 июля 2013, 07:07
0
Должно получиться по той методике.

Другой нет.
Василий Наумкин
06 июля 2013, 07:05
0
Вот чанк миникорзины.

Он разделен на 2 блока, один показывается, когда корзина пуста, а другой — когда нет. Нужно добавить ссылку во второй блок.
...
<div class="not_empty" [[+total_count:is=`0`:then=`style="display:none"`:else=``]]>
	<h5><a href="[[~15]]"><i class="icon-shopping-cart"></i> [[%ms2_minicart]]</a></h5>
...

Интересно, что именно ты «перерыл», если даже не заглянул в чанк оформления?
Василий Наумкин
06 июля 2013, 06:20
0
Ну, лично я тебе отвечать на подобные вопросы больше не буду.
Peter Zenin
05 июля 2013, 21:29
0
Я так попробовал не получилось, попробовал msProduct — получилось. ХЗ, может проблема в другом была.
Иногда хочу переложить вопрос на общественность, а сам пойти другое делать пока что. Так делаю на форумах.
Мне наверное должно быть стыдно за это… :-)
Виктор Долгий
05 июля 2013, 21:24
0
Слишком мало подробностей. В логах что-то есть?
Володя
05 июля 2013, 17:04
0
Василий давно спросить хочу, да все моя природная скромность меня удерживает)
Иконки в minishop как сделать на кнопках? Может тут где и обсуждалось, но я что то не нашел. Кнопки есть, а иконок нет(
Хотя может в хостинге какая беда, так как ни на одном сайте на timeweb они у меня не показываются…
Спасибо!
Василий Наумкин
05 июля 2013, 16:56
0
Это мой глюк.

Есть проверка на наличие пакета Tickets для интеграции комментариев, а на его установку проверки нет.

Поправлю.
Володя
05 июля 2013, 16:37
0
Да это из за Tickets! Вчера пакет скачал, но не устанавил. И вот такой глюк словил)))
Удалил пакет и все заработало!
Володя
05 июля 2013, 16:33
0
<script type="text/javascript">
		// <![CDATA[
		Tickets.config = {
Uncaught ReferenceError: Tickets is not defined
			assets_url: "/assets/components/tickets/"
			,connector_url: "/assets/components/tickets/connector.php"
		};
		// ]]>
		</script>
может быть это от того что я их с репозитория скачал, но не установил? Незнаю на что еще подумать...(
Володя
05 июля 2013, 16:17
0
1- не помогло
2- возможно что то с сервером так как не могу включить отображение логов в админке
в консоли хрома вот такая бяка


Request URL:http://testvgrish.tmweb.ru/manager/min/index.php?f=/assets/components/minishop2/js/mgr/category/category.common.js,/assets/components/minishop2/js/mgr/category/category.grid.js,/assets/components/tickets/js/mgr/tickets.js,/assets/components/tickets/js/mgr/comment/comments.common.js,/assets/components/tickets/js/mgr/comment/comments.grid.js
Request Method:GET
Status Code:400 Bad Request
Request Headersview source
и на тикеты что то ругань какая то. А у меня они даже не установлены
Василий Наумкин
05 июля 2013, 16:06
0
Два варианта:
1. Нужно как следует почистить кэш сайта и браузера.
2. На сервере что-то не так — надо смотреть его логи.
Володя
05 июля 2013, 15:45
0
Василий подскажи пожалуйста, поставил пакет minishop2-2.0.1-pl1. никаких настроек глобальных не трогал, нажимаю создать категорию товара, создаю… а в окне пусто… первый раз такую фигню вижу. в чем может быть проблема?