[XenConcept] Next Previous

[XenConcept] Next Previous 2.2.1

Нет прав для скачивания
Дополнение позволяет перейти к следующему или предыдущему контенту одним щелчком мыши.

baltun

Администратор
Сообщения
13.110
Реакции
3.334
Баллы
1.833
baltun разместил(а) новый ресурс:

[XenConcept] Next Previous - Дополнение позволяет перейти к следующему или предыдущему контенту одним щелчком мыши.

Краткое описание функций :
  • Опции:
    • Параметры темы
      • Замените "Следующая предыдущая" на название темы
      • Включите ограничение по количеству символов в названии темы "Следующая/предыдущая"
      • Включите предварительный просмотр темы
      • Положение отображения
        • Верхнее и нижнее положение
        • Верхнее
        • и нижнее положение
      • Поиск по типу темы
    • Параметры диалога
      • Замените "Следующий предыдущий" на заголовок беседы
      • Включите ограничение...

Посмотреть страницу этого ресурса...
 
Привет всем! А кто то уже использовал плагин? Выдал права, а кнопки так и не появились. XF 2.2.11. Вроде бы больше настроек нет.

1742284288504.png

Понял. Эта версия для 2.3. А нет ли версии для 2.2.?
 
Последнее редактирование:
Вроде нашёл толковый но он платный, если админ зальёт сюда то будет отлично
 
@Placeman, там ведь совместимость с 2.3+

тоже бы примерил такой плагин под 2.2

чёт похожа вроде https://xenweb.ru/resources/xenbros-next-and-previous-thread.3302/
Глючит. Кнопка Next показывает тему не по порядку, которая идет в разделе, полностью беспорядочно отображает темы

1742288593466.png

Как то он скачет через тему. Может кто сможет поправить ошибки вроде не глобальные? В целом плагин то рабочий
 
Последнее редактирование:
Глючит. Кнопка Next показывает тему не по порядку, которая идет в разделе, полностью беспорядочно отображает темы

Посмотреть вложение 37583

Как то он скачет через тему. Может кто сможет поправить ошибки вроде не глобальные? В целом плагин то рабочий
Для тем я использую - [XTR] Fantastic Style Properties
 
Спасибо за подсказку! Что то не могу тут найти его.
 
Если я не ошибаюсь темы перебираются не по порядку, а по последним сообщениям в теме судя по коду, если в темах нет сообщений тогда они идут по порядку.
По запросу трудящихся, чтобы был переход только по темам.
Найти:
PHP:
    public function getPrevThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
    {
        /** @var \XF\Finder\Thread $threadFinder */
        $threadFinder = $this->finder('XF:Thread');

        if (!$canViewOthers)
        {
            $threadFinder
                ->where('user_id', $visitor->user_id);
        }

        if (\XF::options()->xc_next_prev_searchByThreadType)
        {
            $threadFinder->where('discussion_type', $thread->discussion_type);
        }


        $threadFinder
            ->where('node_id', $thread->node_id)
            ->where('last_post_date', '<', $thread->last_post_date)
            ->where('discussion_state', 'visible')
            ->setDefaultOrder('last_post_date', 'DESC');

        return $threadFinder->fetchOne();
    }

    public function getNextThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
    {
        /** @var \XF\Finder\Thread $threadFinder */
        $threadFinder = $this->finder('XF:Thread');

        if (!$canViewOthers)
        {
            $threadFinder
                ->where('user_id', $visitor->user_id);
        }

        if (\XF::options()->xc_next_prev_searchByThreadType)
        {
            $threadFinder->where('discussion_type', $thread->discussion_type);
        }

        $threadFinder
            ->where('node_id', $thread->node_id)
            ->where('last_post_date', '>', $thread->last_post_date)
            ->where('discussion_state', 'visible')
            ->setDefaultOrder('last_post_date', 'ASC');

        return $threadFinder->fetchOne();
    }
Заменить:
PHP:
public function getPrevThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
{
    /** @var \XF\Finder\Thread $threadFinder */
    $threadFinder = $this->finder('XF:Thread');

    if (!$canViewOthers)
    {
        $threadFinder
            ->where('user_id', $visitor->user_id);
    }

    if (\XF::options()->xc_next_prev_searchByThreadType)
    {
        $threadFinder->where('discussion_type', $thread->discussion_type);
    }

    $threadFinder
        ->where('node_id', $thread->node_id)
        ->where('post_date', '<', $thread->post_date) // Условие по дате создания темы
        ->where('discussion_state', 'visible')
        ->setDefaultOrder('post_date', 'DESC'); // Сортировка по дате создания темы

    return $threadFinder->fetchOne();
}

public function getNextThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
{
    /** @var \XF\Finder\Thread $threadFinder */
    $threadFinder = $this->finder('XF:Thread');

    if (!$canViewOthers)
    {
        $threadFinder
            ->where('user_id', $visitor->user_id);
    }

    if (\XF::options()->xc_next_prev_searchByThreadType)
    {
        $threadFinder->where('discussion_type', $thread->discussion_type);
    }

    $threadFinder
        ->where('node_id', $thread->node_id)
        ->where('post_date', '>', $thread->post_date) // Условие по дате создания темы
        ->where('discussion_state', 'visible')
        ->setDefaultOrder('post_date', 'ASC'); // Сортировка по дате создания темы

    return $threadFinder->fetchOne();
}
Править нужно этот файл src\addons\XenConcept\NextPrev\Repository\NextPrev.php
 
Последнее редактирование:
Если я не ошибаюсь темы перебираются не по порядку, а по последним сообщениям в теме судя по коду, если в темах нет сообщений тогда они идут по порядку.
По запросу трудящихся, чтобы был переход только по темам.
Найти:
PHP:
    public function getPrevThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
    {
        /** @var \XF\Finder\Thread $threadFinder */
        $threadFinder = $this->finder('XF:Thread');

        if (!$canViewOthers)
        {
            $threadFinder
                ->where('user_id', $visitor->user_id);
        }

        if (\XF::options()->xc_next_prev_searchByThreadType)
        {
            $threadFinder->where('discussion_type', $thread->discussion_type);
        }


        $threadFinder
            ->where('node_id', $thread->node_id)
            ->where('last_post_date', '<', $thread->last_post_date)
            ->where('discussion_state', 'visible')
            ->setDefaultOrder('last_post_date', 'DESC');

        return $threadFinder->fetchOne();
    }

    public function getNextThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
    {
        /** @var \XF\Finder\Thread $threadFinder */
        $threadFinder = $this->finder('XF:Thread');

        if (!$canViewOthers)
        {
            $threadFinder
                ->where('user_id', $visitor->user_id);
        }

        if (\XF::options()->xc_next_prev_searchByThreadType)
        {
            $threadFinder->where('discussion_type', $thread->discussion_type);
        }

        $threadFinder
            ->where('node_id', $thread->node_id)
            ->where('last_post_date', '>', $thread->last_post_date)
            ->where('discussion_state', 'visible')
            ->setDefaultOrder('last_post_date', 'ASC');

        return $threadFinder->fetchOne();
    }
Заменить:
PHP:
public function getPrevThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
{
    /** @var \XF\Finder\Thread $threadFinder */
    $threadFinder = $this->finder('XF:Thread');

    if (!$canViewOthers)
    {
        $threadFinder
            ->where('user_id', $visitor->user_id);
    }

    if (\XF::options()->xc_next_prev_searchByThreadType)
    {
        $threadFinder->where('discussion_type', $thread->discussion_type);
    }

    $threadFinder
        ->where('node_id', $thread->node_id)
        ->where('post_date', '<', $thread->post_date) // Условие по дате создания темы
        ->where('discussion_state', 'visible')
        ->setDefaultOrder('post_date', 'DESC'); // Сортировка по дате создания темы

    return $threadFinder->fetchOne();
}

public function getNextThreadForThread(\XF\Entity\Thread $thread, \XF\Entity\User $visitor, $canViewOthers)
{
    /** @var \XF\Finder\Thread $threadFinder */
    $threadFinder = $this->finder('XF:Thread');

    if (!$canViewOthers)
    {
        $threadFinder
            ->where('user_id', $visitor->user_id);
    }

    if (\XF::options()->xc_next_prev_searchByThreadType)
    {
        $threadFinder->where('discussion_type', $thread->discussion_type);
    }

    $threadFinder
        ->where('node_id', $thread->node_id)
        ->where('post_date', '>', $thread->post_date) // Условие по дате создания темы
        ->where('discussion_state', 'visible')
        ->setDefaultOrder('post_date', 'ASC'); // Сортировка по дате создания темы

    return $threadFinder->fetchOne();
}
Править нужно этот файл src\addons\XenConcept\NextPrev\Repository\NextPrev.php
О, спасибо! Я правда в шаблоны не лезу, но попробую. И кстати, плагин же для 2.3, у меня версия 2.2.
 
Пересобрал пробуйте на 2.2 встанет по работе не проверял не знаю.
 

Вложения

  • XenConcept-NextPrev-2.2.1.zip
    31.7 КБ · Просмотры: 2
Попробовал поставить 2.2.1 кнопки не показало в теме, так же заменил код в NextPrev.php, без результата, права вроде выдал, других манипуляцией нет.
 
Там не сработала одна модификация, но когда ее правишь данные все равно не выводятся, значит нужно править код php для версии 2.2
 
Последнее редактирование:
Назад
Верх Низ