
Misha Bulic
С нами с 11 ноября 2016; Место в рейтинге пользователей: #334Как сделать условие выборки для 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}',
но ничего не работает. Артикли на кириллице
Скрипт отправляет форму на почту только с главной страницы
У меня есть скрипт который отправляет письма с любых HTML форм. Использую его на разных сайтах и везде работает, а на новом сайте почему то отправляет только с главной страницы. На других страницах он отдаёт код 200 — форма успешно отправлена. Но сами письма не приходят.
Форма:
Форма:
Галерея через 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',
]}
Можно ли сделать такое с помощью мультисайта?
Заинтересовался я реализацией проектов с помощью мультисайта и есть у меня несколько вопросов по этому поводу:
1. Есть главный сайт site.ru с полным каталогом товаров, допустим их там 1000. Я заполняю все доп поля с характеристиками этих товаров.
Далее я создаю новые домены и хочу использовать данные полей из этих товаров. Т.е. на site2.ru я хочу наполнять 200 товарами из главного сайта. Можно ли при создании ресурса выбрать как источник полей ресурсы главного сайта? И при изменении полей на главном сайте они изменялись на всех зависимых.
2. Будут ли проблемы с SEO?
3. При покупке дополнения из магазина оно будет работать на всех доменах?
4. Доступ для сеошников и менеджеров ограничит их только одним сайтом(Чанки, ресурсы, файлы)?
1. Есть главный сайт site.ru с полным каталогом товаров, допустим их там 1000. Я заполняю все доп поля с характеристиками этих товаров.
Далее я создаю новые домены и хочу использовать данные полей из этих товаров. Т.е. на site2.ru я хочу наполнять 200 товарами из главного сайта. Можно ли при создании ресурса выбрать как источник полей ресурсы главного сайта? И при изменении полей на главном сайте они изменялись на всех зависимых.
2. Будут ли проблемы с SEO?
3. При покупке дополнения из магазина оно будет работать на всех доменах?
4. Доступ для сеошников и менеджеров ограничит их только одним сайтом(Чанки, ресурсы, файлы)?
Пагинация с использованием Check permissions
<div class='row'>
<div id="pdopage">
<div class="rows">
[[!pdopage?
&parents=`8`
&tpl=`card`
&limit=`18`
&checkPermissions=`list`
&sortby=`id`
&sortdir=`asc`
&includeTVs=`pro,size,area`
&includeContent=`1`
&pageLimit=`20`
]]
</div>
<div class='col-sm-12 text-center'>
[[!+page.nav]]
<hr/>
</div>
</div>
</div>
Использую такой код всего записей у меня 550 но обычным пользователям видно только первые 350. Когда они нажимают в навигации на последнюю страницу, то их перекидывает на первую и чтобы добраться до 350 проекта им нужно пощелкать 20 страниц. Как убрать из пагинации страницы, которые этому пользователю не видны?