Miša Bulic
С нами с 11 ноября 2016; Место в рейтинге пользователей: #247Как разместить форму фильтра с подсчётом результатов mFilter2 ?
На сайте есть каталог с фильтром. Нужно разместить форму на другой странице с подсчётами результатов в самой форме и переходом к результатам в каталог.
Если просто разместить форму, то она результаты отбирает правильно, но кнопка показать результаты не появляется, только сбросить. Плюс параметры отправляются на текущую страницу в адресной строке.
Если поставить
Может есть какой то параметр и я его упускаю?
Если просто разместить форму, то она результаты отбирает правильно, но кнопка показать результаты не появляется, только сбросить. Плюс параметры отправляются на текущую страницу в адресной строке.
Если поставить
'filterOptions'=>'{ "autoLoad":0 }',
то он не меняет параметры в фильтре. Но кнопка отправить отображается. Может есть какой то параметр и я его упускаю?
Фильтр mFilter по TV полю типа чекбокс
Хочу создать фильтрацию по TV полю типа чекбокс. Записать сразу несколько параметров через разделитель, вместо создания для каждого параметра отдельного поля. Сейчас у меня есть параметры типа Радио в них параметры выставлены так: Есть==1||Нет==2. Они выводятся чекбоксом. Как мне сделать такие же чекбоксы для параметров из TV поля чекбокс?
Как поставить обработчик на контент в ресурсе?
При переносе/переезде старых сайтов на новые приходится переносить содержимое страниц со ссылками. При смене структуры сайта меняются и ссылки. Можно конечно сделать редиректы, но я хочу чтобы на новом сайте ссылки сразу вели куда надо.
для себя я сделал обработчик такой:
Вопрос в том, можно ли это встроить в сам modx? У меня несколько видений:
для себя я сделал обработчик такой:
<?php
$filecsv = 'urls.csv';
$data_array = array();
$row = 1;
if (($handle = fopen($filecsv, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$row++;
$data_array[$data[0]] = $data[1];
}
fclose($handle);
}
$replacements = $data_array;
$string = $_POST["input"] ;
$string = str_replace(array_keys($replacements), array_values($replacements), $string);
$string = str_replace('target="_blank"', ' ', $string);
$string = str_replace('rel="noopener"', ' ', $string);
?>
Тут в csv файле лежат редиректы, и при обработке он меняет все ссылки(еще до кучи убирает target='_blank')Вопрос в том, можно ли это встроить в сам modx? У меня несколько видений:
- Сделать плагин и при сохранении он бы каждый раз обрабатывал контент
- Сделать какую то кнопку, которая бы делал обработку
- Плагин к tinymce, тоже кнопкой
Как сделать условие выборки для article.
Создал для быстрой вставки товаров в тело любой страницы, хочу чтобы не него можно было вносить назания товара (Артикль). Раньше было сделано по id ресурса через resources
вызов такой:
Артикли на кириллице
вызов такой:
{include 'file:chunks/blocks/pdo_project.tpl' $resources='212,207,197'}
Код чанка такой:{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'price1,area',
'tvPrefix' => '',
'parents' => 0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
{'!pdoPage' | snippet : $params}
</div>
Сейчас пытаюсь через where заменить 'resources' => $resources
на 'where'=> '{"article:IN":$articles}',
но ничего не работает. Артикли на кириллице
Галерея через migx
Создавал галерею для небольших сайтов по инструкции с сайта Создание галереи migx. На нескольких сайтах всё работает нормально, но на текущем последнем не позволяет загружать картинки через загрузку с компа. Пишет нельзя загружать файлы в корневой раздел. Хотя в источнике файлов всё прописано верно.
Может быть кто то уже сталкивался с такой проблемой и знает как её решить?
Может быть кто то уже сталкивался с такой проблемой и знает как её решить?
Пагинация вложена сама в себя
Помогите разобраться с пагинацией:
{var $result = '!pdoPage' | snippet : [
'ajaxMode' => 'default',
'parents' => 9,
'sortby' => $_modx->resource.sortBy,
'sortdir' => $_modx->resource.sortDir,
'includeTVs' => 'size,area,image1,pro,price1',
'tpl' => '@FILE elements/chunks/card.tpl',
'limit' => 15,
'tvPrefix' => '',
'where' => $_modx->resource.tagfilter,
'tvFilters' => $_modx->resource.tagfilter2,
'tplPageWrapper' => '@INLINE <nav aria-label="Page navigation"><ul class="pagination justify-content-center">{$prev}{$pages}{$next}</ul></nav>',
'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPageActive' => '@INLINE <li class="page-item active"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPagePrev' => '@INLINE <li rel="prev"><a class="page-link" href="{$href}">«</a></li>',
'tplPageNext' => '@INLINE <li rel="next"><a class="page-link" href="{$href}">»</a></li>',
'tplPagePrevEmpty' => '@INLINE ',
'pageLimit' => 6,
'tplPageNextEmpty' => '@INLINE ',
'ajaxElemWrapper' => '#child_list',
'ajaxElemRows' => '#child_list .card-deck',
'ajaxElemPagination' => '#child_list .pagination',
'ajaxElemLink' => '#child_list .pagination a',
]}
{$result}
{$_modx->getPlaceholder('page.nav')}
{else}
<p class="lead">Нет подходящих проектов</p>
{/if}
Вот этот код работает странно, При открытии страницы каталога, он нормально отображает пагинацию, а при переходе на другую страницу он дважды вкладывает пагинацию в tplPageWrapper:Дополнительные параметры к сниппету getChildCount
Есть в интернете сниппет для вывода количества дочерних ресурсов getChildCount:
И можно ли как нибудь добавить фильтрацию по tv полю в этот сниппет?
<?php
$count = 0;
$parent = isset($parent) ? (integer) $parent : 0;
if ($parent > 0) {
$criteria = array(
'parent' => $parent,
'deleted' => false,
'published' => true,
);
$count = $modx->getCount('modResource', $criteria);
}
return (string) $count;
Как добавить к этому сниппету параметров? Он по умолчанию считает только свои дочерние элементы. Вложенные в них не считаются. И можно ли как нибудь добавить фильтрацию по tv полю в этот сниппет?
Как в pdoResources вывести текст при отсутствии выборки
Как вывести в pdoResources текст при отсутствии результатов выборки?
{'!pdoPage' | snippet : [
'ajaxMode' => 'default',
'sortby' => 'id',
'sortdir' => 'ASC',
'includeTVs' => 'size,area,image1,pro,price1',
'tpl' => 'projectcard',
'limit' => 15,
'tvPrefix' => '',
'where' => '["`TVprice1`.`value` BETWEEN 501 and 999"]',
'tplPageWrapper' => '@INLINE <nav aria-label="Page navigation"><ul class="pagination justify-content-center">{$prev}{$pages}{$next}</ul></nav>',
'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPageActive' => '@INLINE <li class="page-item active"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPagePrev' => '@INLINE <li rel="prev"><a class="page-link" href="{$href}">« Назад</a></li>',
'tplPageNext' => '@INLINE <li rel="next"><a class="page-link" href="{$href}">Дальше »</a></li>',
'tplPagePrevEmpty' => '@INLINE ',
'tplPageNextEmpty' => '@INLINE ',
'ajaxElemWrapper' => '#child_list',
'ajaxElemRows' => '#child_list .rows',
'ajaxElemPagination' => '#child_list .pagination',
'ajaxElemLink' => '#child_list .pagination a',
]}
Сейчас если результатов нет, то он выводит array 2 уровень меню только для одного пункта
Подскажите как реализовать:
Есть 5 пунктов меню, у 3-х из них есть много дочерних элементов. Мне нужно в меню вложенность сделать только для одного.
Есть 5 пунктов меню, у 3-х из них есть много дочерних элементов. Мне нужно в меню вложенность сделать только для одного.
[[pdoMenu?
&parents=`0`
&level=`1`
&resources=`-8`
&tpl = `@INLINE <li[[+classes]]><a class='nav-link' href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
&outerClass=`navbar-nav`
&rowClass=`nav-item`
&tplHere=`@INLINE <li [[+classes]]><span class='nav-link active' >[[+menutitle]]</span>[[+wrapper]]</li>`
&firstClass=``
&lastClass=``
]]
Условие where pdoPage
Подскажите как реализовать в pdoPage условие больше 100 и меньше 150 у поля area
{'!pdoPage' | snippet : [
'ajaxMode' => 'default',
'parents' => 23,
'tpl' => 'projectcard',
'limit' => 15,
'includeTVs' => 'number,size,area,img,number,price1',
'tvPrefix' => '',
'includeContent' => 1,
'where' => '{"area:=<": 150 AND "area:>": 100}',
'tplPageWrapper' => '@INLINE <div class="pagination"><ul class="pagination pagination-lg">{$prev}{$pages}{$next}</ul></div>',
'tplPage' => '@INLINE <li><a href="{$href}">{$pageNo}</a></li>',
'tplPageActive' => '@INLINE <li class="active"><a href="{$href}">{$pageNo}</a></li>',
'tplPagePrev' => '@INLINE <li rel="prev"><a href="{$href}">« Назад</a></li>',
'tplPageNext' => '@INLINE <li rel="next"><a href="{$href}">Дальше »</a></li>',
'tplPagePrevEmpty' => '@INLINE ',
'tplPageNextEmpty' => '@INLINE ',
'ajaxElemWrapper' => '#child_list',
'ajaxElemRows' => '#child_list .rows',
'ajaxElemPagination' => '#child_list .pagination',
'ajaxElemLink' => '#child_list .pagination a',
]}