Misha Bulic

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}',
но ничего не работает.
Артикли на кириллице
Misha Bulic
07 апреля 2021, 18:02
modx.pro
85
0

Скрипт отправляет форму на почту только с главной страницы

У меня есть скрипт который отправляет письма с любых HTML форм. Использую его на разных сайтах и везде работает, а на новом сайте почему то отправляет только с главной страницы. На других страницах он отдаёт код 200 — форма успешно отправлена. Но сами письма не приходят.
Форма:
Misha Bulic
28 марта 2021, 14:54
modx.pro
48
0

Галерея через migx

Создавал галерею для небольших сайтов по инструкции с сайта Создание галереи migx. На нескольких сайтах всё работает нормально, но на текущем последнем не позволяет загружать картинки через загрузку с компа. Пишет нельзя загружать файлы в корневой раздел. Хотя в источнике файлов всё прописано верно.

Может быть кто то уже сталкивался с такой проблемой и знает как её решить?
Misha Bulic
21 марта 2020, 11:27
modx.pro
241
0

Пагинация вложена сама в себя

Помогите разобраться с пагинацией:
{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:
Misha Bulic
29 ноября 2018, 16:56
modx.pro
401
0

Дополнительные параметры к сниппету getChildCount

Есть в интернете сниппет для вывода количества дочерних ресурсов getChildCount:
<?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 полю в этот сниппет?
Misha Bulic
24 марта 2018, 17:22
modx.pro
761
0

Как в 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
Misha Bulic
01 февраля 2018, 12:16
modx.pro
946
0

2 уровень меню только для одного пункта

Подскажите как реализовать:
Есть 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=``
]]
Misha Bulic
28 декабря 2017, 08:23
modx.pro
465
0

Условие 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',
  ]}
Misha Bulic
06 декабря 2017, 15:07
modx.pro
2 897
0

Можно ли сделать такое с помощью мультисайта?

Заинтересовался я реализацией проектов с помощью мультисайта и есть у меня несколько вопросов по этому поводу:
1. Есть главный сайт site.ru с полным каталогом товаров, допустим их там 1000. Я заполняю все доп поля с характеристиками этих товаров.
Далее я создаю новые домены и хочу использовать данные полей из этих товаров. Т.е. на site2.ru я хочу наполнять 200 товарами из главного сайта. Можно ли при создании ресурса выбрать как источник полей ресурсы главного сайта? И при изменении полей на главном сайте они изменялись на всех зависимых.
2. Будут ли проблемы с SEO?
3. При покупке дополнения из магазина оно будет работать на всех доменах?
4. Доступ для сеошников и менеджеров ограничит их только одним сайтом(Чанки, ресурсы, файлы)?
Misha Bulic
22 октября 2017, 09:15
modx.pro
570
0

Пагинация с использованием 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 страниц.
Как убрать из пагинации страницы, которые этому пользователю не видны?
Misha Bulic
05 мая 2017, 15:59
modx.pro
755
0