@danil_linkins

Навигация по страницам путем Next и Prev?

Сейчас навигация на соседние страницы производится по родителю и соседним элементам. То есть навигация работает только относительно детей родительского элемента.

Код PHP:
<?php
$id = $modx->resource->get('id');
$parentId = $modx->resource->get('parent');

// $children = $modx->getChildIds($parentId,1,array("published"=>1));



$order = "ORDER BY menuindex asc";
$wh=" where published=1 and parent = $parentId ";
$table = 'modx_site_content';
$sql = "SELECT id FROM `$table` ".$wh." ".$order;
$query = new xPDOCriteria($modx, $sql, array());
$children = array();
if ($query->prepare() && $query->stmt->execute()){
    $res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($res as $row){
        $children[]=$row["id"];
    }
}

// echo "<pre>";
// print_r($children);die;

if (count($children)>0) {
    $key = -1;
    while($key == -1){
     	$key = array_search($id,$children);
    }
    
    $next = (($key+1) == count($children) ? -1 :($key+1));
    $prev = $key-1;
    
    if ($next>=0) {
            $object = $modx->getObject('modResource', $children[$next]);
        	$modx->setPlaceholder('next','<p class="title-next"><a href="/'.$modx->makeUrl($object->get('id')).'">'.$object->get('pagetitle').'</a></p><a href="/'.$modx->makeUrl($object->get('id')).'" class="next"><em></em></a>');
    } else {
            $object = $modx->getObject('modResource', $children[$next]);
	        $modx->setPlaceholder('next','<p class="title-next"></p>');
    }
    if ($prev>=0) {
        $object = $modx->getObject('modResource', $children[$prev]);
    	$modx->setPlaceholder('prev','<a href="/'.$modx->makeUrl($object->get('id')).'" class="prev"><em></em></a><p class="title-prev"><a href="/'.$modx->makeUrl($object->get('id')).'">'.$object->get('pagetitle').'</a></p>');
    } else {
        $object = $modx->getObject('modResource', $children[$next]);
        $modx->setPlaceholder('prev','<p class="title-prev"></p>');
    }
}


В такой структуре: 014da1c4924441c183287caa5c88084b.png

Вопрос в том, можно ли такую же навигацию реализовать только по "нужным" страницам без родителя, например по тегу, или по id, но номер не всегда идет по порядку. Подскажите пожалуйста.
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ответы на вопрос 1
Чуть подкорректировать запрос к бд и можно и по тегам, или по названию...
Я так понимаю, как работает сей сниппет, Вы понятия не имеете?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы