Как я могу получить предыдущие и следующие ссылки на страницах блога Magento?


В Magento 1.9.1 у меня есть шаблон записи в блоге, который имеет следующее:

<?php $post = $this->getPost(); ?>
<?php $next = Mage::getModel('blog/post')->load($post->getId()+1); ?>
<?php $prev = Mage::getModel('blog/post')->load($post->getId()-1); ?>

И в нижней части шаблона есть ссылки на следующую и предыдущую статью:

<a href="/blog/<?php echo $prev->getIdentifier(); ?>" class="prev">< Previous</a>
<a href="/blog/<?php echo $next->getIdentifier(); ?>" class="next">Next ></a>

Это работает нормально, но с одной проблемой; при этом не учитывается, включена или отключена статья.

Есть ли способ исключить "отключенные" статьи?

Author: Adam, 2016-08-03

1 answers

Замените свой код следующим кодом с некоторыми изменениями, такими как замена "id" на поле первичного ключа для таблицы записей и то же самое для поля "статус" с именем столбца статуса.

<?php $post = $this->getPost(); ?>  
<?php  
    $prevCollection = Mage::getModel('blog/post')->getCollection()
          ->addFieldToFilter('id', array('lt' => $post->getId()))
          ->addFieldToFilter('status', 'enabled')
          ->addOrder('id','DESC');
    $prevCollection->getSelect()->limit(1);
    if($prevCollection->count()){
      $prev = $prevCollection->getFirstItem();
    }

    $nextCollection = Mage::getModel('blog/post')->getCollection()
         ->addFieldToFilter('id', array('gt' => $post->getId()))
         ->addFieldToFilter('status', 'enabled');
    $nextCollection->getSelect()->limit(1);
    if($nextCollection->count()){
      $next = $nextCollection->getFirstItem();
    }
  ?>

И замените свой html-код на

    <?php if(isset($prev) && $prev->getId()):?>
          <a href="/blog/<?php echo $prev->getIdentifier(); ?>" class="prev">< Previous</a>
    <?php endif;?>
    <?php if(isset($next) && $next->getId()):?>
          <a href="/blog/<?php echo $next->getIdentifier(); ?>" class="next">Next ></a>
    <?php endif;?>

Надеюсь, это поможет вам.

 2
Author: Gulshan Maurya, 2016-09-12 05:35:41