Потребовалось в проекте на MODX Revolution сделать на странице материала навигацию, вида следующий материал и предыдущий материал. Облазил самые потаённые закоулки Интернета, для MODX Revo, ничего не нашел. Привлекать сюда разные тяжеловесные сниппеты желания не было, зачем. Поэтому написал небольшой сниппет, возможно кому-то будет полезен.
Сннипет генерирует два плэйсхолдера в виде готовых ссылок:
- [[+prev]] – предыдущая статья;
- [[+next]] – следующая статья.
Сначала вызываете сниппет, и уже после этого вставляете плэйсхолдеры в места, где должны быть ссылки на предыдущий ресурс и на следующий ресурс.
В сниппете в параметр title, тега ссылки прописывается поле longtitle, при необходимости можете поменять его на pagetitle.
Вот код сниппета:
$id = $modx->resource->get('id'); $parentId = $modx->resource->get('parent'); $children = $modx->getChildIds($parentId); $prevtxt = ($prev)? $prev : "предыдущая статья"; $nexttxt = ($next)? $next : "следующая статья"; if(!$showDel) $showDel = 0; else $showDel = 1; if(!$showUnpub) $showUnpub = 0; else $showUnpub = 1; $key = -1; while($key == -1){ $key = array_search($id,$children); } $out = ''; if(count($children) > 1 && isset($children[$key])){ $out = ''; return $out; } return $out;
П.С. от 20.08.2016: Усовершенствовал, теперь при вызове сниппета, можно задавать параметры: next и prev. Соответственно это текст ссылок на следующий материал и предыдущий. По умолчанию стоят, значения: "следующая статья" и "предыдущая статья".
П.С. от 16.12.2016: Усовершенствовал, теперь можно указывать, публиковать удалённые ресурсы или неопубликованные.
Список параметров, сниппета:
- prev - текст ссылки для предыдущей статьи (умолчание: предыдущая статья);
- next - текст ссылки для следующей статьи (умолчание: следующая статья);
- showDel - показывать удалённые статьи (1 - показать, 0 - непоказывать; умолчание: 0);
- showUnpub - показывать неопубликованные статьи (1 - показать, 0 - непоказывать; умолчание: 0);
Добра Вам и успеха в делах!
Роман
- 03 декабря 2014, 22:10 0 ↓Slava
- 22 ноября 2015, 13:40 0 ↓Роман
- 23 ноября 2015, 20:06 0 ↑ ↓Дима
- 07 декабря 2015, 00:20 0 ↓Роман
- 18 июля 2016, 18:42 0 ↑ ↓Павел
- 04 декабря 2016, 15:06 0 ↓НО показывает неопубликованные ресурсы, и удаленные.
Было бы интересно добавить параметры.
showHidden
showUnpublished
Роман
- 16 декабря 2016, 16:18 0 ↑ ↓Леша
- 14 июля 2017, 18:53 0 ↓Максим
- 12 января 2018, 02:22 0 ↓Всё круто работает! Но не могу понять как разделить в дизайне на предыдущий и следующий, у меня всё в одном блоке выводится. [[PrevNext?]] — это я вызвал сниппет, а как ему свойства прописать, чтобы только показывал предыдущий или следующий? СПАСИБО ЗА ПОМОЩЬ!
Роман
- 12 января 2018, 11:24 0 ↑ ↓Немного не понял, вопроса. То есть Вы хотите, что бы была возможность отображать навигацию только в одну сторону?
Максим
- 12 января 2018, 12:06 0 ↑ ↓игорь
- 18 января 2018, 15:18 0 ↑ ↓Максим
- 18 января 2018, 17:54 0 ↑ ↓Роман
- 19 января 2018, 00:05 0 ↑ ↓Татьяна
- 14 марта 2018, 15:01 0 ↓Александр
- 30 марта 2018, 11:46 0 ↓Спасибо за сниппет)
Только для меня не совсем подошел, потому что надо было чтоб он не только на следующую статью переводил, но и на следующую категорию после последней статьи.
Алейсей
- 13 марта 2019, 21:24 0 ↓Роман
- 07 апреля 2019, 23:39 0 ↓