Forums / National / Russian / Тех. поддержка / Как в comments.tpl получить условие родительской категории страницы

Kopusha
#1 2020-06-11 17:10

Мне надо выводить функционал только если page в категории guide или ее дочерних категориях.
Как выловить этот момент, дочерние будут добавляться/меняться а 
<!-- IF {PHP.usr.id} > 0 AND {PHP.env.ext} == 'page' AND {PHP.c} == 'guide' -->
работает естественно только в guide. Городить отдельный comments и подгружать его это явно костыль, переписывать функционал не охота. Может есть проще способ?
Спасибо.

jCube Group
#2 2020-06-11 18:21

А почему не отключить в структуру для всех категориях и оставить только там где нужно?

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#3 2020-06-11 19:23

Есть плагин ratingslike, он работает через изменение стандартного плагина ratings который тоже используется, в плагине комментариев мне надо его выводить только в page/guide/дочерние. Так же рейтинги надо выводить не в коментах а в page в других категориях и в folio всех. К чему мне трогать то что работает если одним условием в comments.tpl это можно решить? Если нет (условие с перечислением PHP.c всех - не подойдет) то буду уже в коде плагинов рыться.

Added 4 minutes later:

PS можно конечно какой то white list сделать в админке плагина и туда вбивать руками нужные категории, и через какой то 

= "AND page_cat IN ('" . implode("','", $whitelist) . "')";

но блин, неужели нет простого способа проверить какая родительская категория.

jCube Group
#4 2020-06-12 04:32
#44889 Kopusha:

Есть плагин ratingslike, он работает через изменение стандартного плагина ratings который тоже используется, в плагине комментариев мне надо его выводить только в page/guide/дочерние. Так же рейтинги надо выводить не в коментах а в page в других категориях и в folio всех. К чему мне трогать то что работает если одним условием в comments.tpl это можно решить? Если нет (условие с перечислением PHP.c всех - не подойдет) то буду уже в коде плагинов рыться.

Added 4 minutes later:

PS можно конечно какой то white list сделать в админке плагина и туда вбивать руками нужные категории, и через какой то 

= "AND page_cat IN ('" . implode("','", $whitelist) . "')";

но блин, неужели нет простого способа проверить какая родительская категория.

нету.

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#5 2020-06-12 06:50

Ну значит доставать structure_path и смотреть с чего он начинается до точки.... 997 у меня guide,

997.009 - значит родительская - guide

Added 24 minutes later:

Как то так получается {PHP.cat.rpath|substr($this, 0, 3)}

Added 3 days later:

#44891 jCube Group:
 

нету.

Есть. Как то так 

function get_root_cat($code)
    {
        global $structure;
        return mb_substr($structure['page'][$code]['path'], 0, mb_strpos($structure['page'][$code]['path'], '.'));
    }

В comments.tpl

<!-- IF {PHP.usr.id} > 0 AND {PHP.env.ext} == 'page' AND {PHP.pag.page_cat|get_root_cat($this)} == 'guide' -->

This post was edited by Kopusha (2020-06-15 21:24, 3 years ago)