• avatar tiptop
  • 0
не нашел никакой информации по такому параметру. Добавил его в вызов DocLister — никаких изменений в коде не вижу. Он правда существует? И что он делает?
  • avatar 1px
  • 0
Спасибо. Обязательно надо будет потестить.
В следующих сериях:
— интеграция верстки;
— кэширование;
— ответы на вопросы, если такие возникнут.
Для меня совсем не проблема реализовать и такое, для DocLister, конечно. Но я что-то сомневаюсь, что пользователи предпочитают скроллить до упаду страницу с сотней-другой статей.
  • avatar Stas
  • 0
Спасибо, но эти подходы не совсем верные. Google:
Пользователи часто предпочитают просматривать всю статью или категорию на одной странице. Вы также можете добавить атрибут rel=«canonical» на страницы, чтобы сообщить Google, что в результатах поиска следует отображать страницу — «Показать все».
Используя параметры url, когда пользователь находится на 1ой странице, нельзя определить есть ли еще страницы или она единственная в категории и тогда не следует делать canonical на показать все. Т.е.
site.com/category
site.com/category?page=2
<link rel="canonical" href="site.com/category?page=all" />
Здесь все ок, а в случае если страница в категории только одна site.com/category
<link rel="canonical" href="site.com/category?page=all" />
то так делать плохо.
  • avatar DiTso
  • 0
Класс!!! Ждём продолжения
Тогда уже

<?php
$id = $modx->documentIdentifier;
if (isset($_GET['page'])){
$url=$modx->makeUrl($id,'','','full');
return '<link rel="canonical" href="' . $url . '" />';}
  • avatar igvind
  • 0
снипет Canonical
<?php
$id = $modx->documentIdentifier;
if (isset($_GET['page'])){
$info=$modx->getPageInfo($id,'3226','alias');
echo '<link rel="canonical" href="http://site.ru/[~[*id*]~]" />';}
?>

3226- это id каталога (меняйте на свой)
вызов в шапке [[Canonical]]
используется для Doclister
Большое спасибо за долгожданную статью. Очень познавательно.
Будем пробовать.
С нетерпением жду вторую часть

$filters = $modx->runSnippet('filters');
if (!empty($filters)) {
    $params['filters'] = $filters;
    return $modx->runSnippet('DocLister', $params);
}
  • avatar alina
  • 0
Добрый день! Подскажите, пожалуйста. У меня есть таблица, в которой на данный момент отображаются все дочерние документы родителя 3

[!DocLister? ¶nts=`3` &id=`listro` &paginate=`pages` &filters=`[!filters!]` &tpl=`dl.tovar_tpl` &tvList=`kol,kol_z,img_ro,pdf_file,doc_file,name_ro,groups,tip,lang,actual,cod,date_act` &noneTPL=`tpl_mistake` &sortBy=`date_act` &sortDir=`DESC` &dateFormat=`%d.%m.%Y` !]
Есть форма выборки данных. Выборка формируется в сниппете [!filters!]
Как сделать, чтобы по умолчанию таблица изначально не выдавала строк, а только при выборке?
Святой Эво, это офигенно! До этого использовал твиг, но конечно же не таким образом. Жду продолжения с нетерпением и с терпением =)
  • avatar Dmi3yy
  • 0
Правильно тогда пишите сверху еще костылей для мета, в итоге с каждой итерацией будет все сложнее сделать по уму ;)
  • avatar Stas
  • 0
Вы просто не видели как написана пагинация и фильтрация с помощью этого модуля, там порядка 2000 строк php в перемешку c js завязанного на дито… там далеко не 15 минут)
  • avatar Dmi3yy
  • 0
Правильно давайте использовать дитто который морально устарел и для которого есть замена уже как 3-4 года.

Замечу что с версии 1.4.0 дитто не. По умолчанию в системе

А переписать с дитто на доклистер это 10-15 минут работы;)

Но да зачем же тратить 10-15 минут если можно за час решить тоже самое на дитто ;)
  • avatar Stas
  • -3
Ну так можно дойти до того, что с evo на revo придется переезжать…
Смысл переписывать пагинацию, фильтрацию и еще кучу кода которые нормально работают, если это можно реализовать на ditto.
За наводку на плейсхолдеры спасибо, завтра попробую.
  • avatar paic
  • 0
а JotAdminNotify по-прежнему работать не хочет ((
  • avatar paic
  • 0
Спасибо, работает!
Там, где
Реализовано вычитание количества при заказе через тв-параметр.
Сделать проверку нового значения тв-параметра, если равно нулю, то делаем документ неопубликованным. Примерно так:
//$docid - id документа (товара)
//$new_tv_value - новое значение тв (кол-во на складе)
if(empty($new_tv_value)){
  $modx->db->update(array('published'=>'0'),$modx->getFullTableName('site_content'),'id='.intval($docid));
}

}
  • avatar Dmi3yy
  • 0
Ниже подсказали как делать правильно на DocLister )
а на Дитто тоже можно через снипет иф и проверку плейсхолдеров :) но лучше Доклистер )