[[+thumb]] в msProducts на странице товара

Столкнулся с таким багом. При вызове msProducts на странице товара. Если у какого-либо из «сопутствующих» товаров нет превьюшки, то вместо дефолтного изображения показывается превьюшка товара, на странице которого msProducts вызывается.

[[!msProducts?
 &tplWrapper=`other`
 &tpl=`otherTpl`
 &parents=`[[pdoField? &id=`[[*id]]` &field=`id` &topLevel=`2`]]`]]
otherTpl:
<li>
  <a href="[[~[[+id]]]]"><img src="[[+thumb:default=`tpl/i/zaglushka.gif`]]" alt="[[+pagetitle]]"></a>
  <div><a href="[[~[[+id]]]]">[[+pagetitle]]</a>
</li>
Игорь Терентьев
28 января 2015, 10:32
modx.pro
2 536
0

Не меняется menuindex в minishop2

Здравствуйте, поставил minishop2 закачал товары, но заметил что товары постоянно перемешиваются. Оказалось что menuindex постоянно меняется, выставляю по порядку товары затем перезагружаю страницу и снова все перемешалось. Выглядит это так:


Подскажите почему так может происходить? В журнале ошибок нет
Максим
28 января 2015, 05:09
modx.pro
924
0

[CallBack] Обратный звонок

Раз из раза приходилось настраивать одно и то же решение для вывода формы обратного звонка, и мне это надоело. Поэтому создал данный компонент на основе этого решения. А решение такое: на сайте каким-либо образом выводится ссылка «Обратный звонок», по нажатию на которую выводится модальная форма. В этой форме пользователь может указать свой номер телефона и как к нему обратиться при звонке. Такой нехитрый, но полезный прием для повышения конверсии сайта.

Как работает компонент:
При установке он подтягивает компоненты AjaxForm и FormIt, с помощью которых, собственно, происходит вывод и обработка формы, хотя они теоретически могут быть заменены с помощью параметров &wrapperSnippet и &snippet соответственно. Все параметры по умолчанию настроены так, чтобы при установке и простом вызове сниппета [[callBack]] получить рабочий обратный звонок.
Виталий Киреев
28 января 2015, 04:37
modx.pro
9
16 260
+10

Вопрос по HitsPage

Код сниппета HitsPage
<?php
$page =  $modx->getObject('modResource', $modx->resource->get('id'));
$view = 0;
// Check the option to record in TV
if($saveTv == 'true') {
    // get the required TV object by name (or id)
    $tv = $modx->getObject('modTemplateVar',array('name'=>'HitsPage'));
    if($tv) {
        $tvs = $modx->getObject('modTemplateVarResource',array('tmplvarid'=>$tv->id, 'contentid'=>$page->get('id')));
        if($tvs) {
            $viewTv = $tvs->get('value');
            $tvs->set('value',intval($viewTv) + 1);
            if($tvs->save()) $view = $viewTv;
        } else {
            $tvn = $modx->newObject('modTemplateVarResource');
            $tvn->set('tmplvarid',$tv->id);
            $tvn->set('contentid',$page->get('id'));
            $tvn->set('value',1);
            if($tvn->save()) $view = 1;
        }       
    } 
} else {
    $view = $page->getProperty('hitts','hitspage',$view);
}
$page->setProperty('hitts',intval($view) + 1,'hitspage');
$page->save();
$view = $view;
return $view;
Друзья, помогите исправить код, чтобы Hitspage один просмотр страницы считал не как «1», а «0.5»
Николаевич
27 января 2015, 23:18
modx.pro
2
1 112
0

Как по умолчанию ставить шаблон созданным тикетам?

Здравствуйте. Вообщем при использовании этого сниппета возникло пару проблем. Не могу присвоить шаблон по умолчанию всем новым созданным тикетам, по умолчанию ставит пустой шаблон.

Ещё проблема при создании урла видимо проблема с транслитом для генерации псевдонимов, но мне хватит и ID этого тикета, создаётся примерно такое /story/12-/ как убрать эту тире?

Ну и на последок если присвоить по умолчанию созданным тикетам шаблон по умолчанию, как сделать вывод сниппета Tickets для комментирования? Просто засунуть ниже вывода [[*content]]?
Андрей Копп
27 января 2015, 22:28
modx.pro
1 246
0

Фильтры phx для сниппета

Вот так отлично работает:
[[*parent:is=`5`:then=`Да`:else=`нет`]]
Можно ли подставить за место parent вот такой:
[[!my-get?&get=`parent`&id=`[[!get-parametr-clear]]`]]
сниппет? Тупо вставить естественно не получается, а как грамотно не пойму сниппет возвращает id родителя элемента.
Заранее благодарю
Вася
27 января 2015, 19:49
modx.pro
924
0

Контексты для разделения страниц

Здравствуйте.

Возникла следующая проблема — при создании разных контектов для визуального и правового разделения ресурсов, имеющих один корень (для примера: основной контекст «web» и дополнительный «cars», все документы которых доступны по адресу site.ru/название_страницы).
Реализация путем контекстов выбрана для того, чтобы в одном табе не были в перемешку системные страницы и 100-150 марок автомобилей.

Все страницы не основного контекста определяются как «несуществующие» и перебрасывают на ошибку 404.

Подскажите, пожалуйста, как можно реализовать контексты для подобной задачи или задачи для контекстов, находящихся в рамках одного домена, но отличающихся родительским «контейнером» (пример: site.ru/название_страницы и site.ru/folder/название_страницы).

Заранее спасибо.

P.s. да, я знаю, что контексты — это гемморой и далеко не всегда оправданное решение.
Максим Кузнецов
27 января 2015, 17:32
modx.pro
5
5 164
0

Хуки для Formit записывающий 2 одинаковых поля в базу

Всем привет! Подскажите как в хуке для formit задать нужное имя столбца в таблице?
И возможно ли это?=)
Например, в двух разных таблицах есть поля «description», они заполняются через formit двумя хуками. Поле «description» в первой таблицы заполняется первым хуком
<textarea class="form-control" id="description" placeholder="Описание" name="description">[[!+description]]</textarea>
А во второй таблице поле «description» заполняется другим хуком инпутом:
<input type="text" value="[[!+price]]" class="form-control" id="price" name="price">
Николай Загумённов
27 января 2015, 15:02
modx.pro
875
0

Низкая производительность "виртуальных" страниц

Создаю свою систему ЧПУ (читаемых URL'ов) на ModX. Реализуется она плагином на событии OnPageNotFound:

if ($modx->event->name != 'OnPageNotFound') {return false;}

$alias = $modx->context->getOption('request_param_alias', 'q');

$object_id = URLParser($_REQUEST[$alias]);
$modx->setPlaceholder('ObjectID', $object_id);
$modx->sendForward(1342);
Дальше внутри страницы на основании этого плейсхолдера выводится содержание объекта. Подобный подход связан с тем, что объекты находятся и администрируются в другой базе. Тащить их в ModX — слишком затратно.

Заметил, что производительность подобных виртуальных страниц сильно хромает. При запросе к ней тратится где-то на 0,1-0,2 сек больше, чем если бы страница была реальной (т.е. имела бы свой фиксированный, понятный ModX URL).
Константин
27 января 2015, 14:52
modx.pro
1 269
0