Приветствую еще раз)
Что то я запутался да и знания мои...))
Работаю с фильтром pfm_icon, для чего то одного не могу сообразить как сделать, меняю сразу для всех и форумов и групп.
Не соображу как указать, что для групп, а что для форумов и уже туплю.
Otshelnik-Fm сказал(а)
Еще раз - цель какая? сменить разом одну иконку для всех форумов? И вторую для групп форумов?
У меня в допе реализована смена иконок форумов, просто подмена шаблона и там уже свой хук работает.
Сейчас появился фильтр и вот я хочу попробовать его использовать, что бы не подменять шаблоны. Изменять форумам и группам на выбранные иконки уже через этот фильтр.
Но если меняю для форума или группы, соответственно меняется везде, а раздельно для отдельно взятого форума и группы не затрагивая все остальное не поменять.))
Я туплю к вечеру и возможно криво объясняю.)
Вот что то типо того и оно работает как я писал, но естественно сразу для всего.
function my_custom_forum_icons(){ global $PrimeForum; $id_forum = получили $icon = получили; if (если выполнено условие){ $icon ='выводим иконку установленную к этому форуму'; } else if (если не выполнено){ $icon ='выводим дефолт'; } return $icon; } add_filter('pfm_icon', 'my_custom_forum_icons', 10, 1);
function fffffff($icon){ global $PrimeForum; if($PrimeForum->forum_id == 1) $icon = '<i class="fa fa-free-code-camp" aria-hidden="true"></i>'; else if($PrimeForum->forum_id == 3) $icon = '<i class="fa fa-eercast" aria-hidden="true"></i>'; return $icon; } add_filter('pfm_icon', 'fffffff');
- грубо так
Тут беда в том что не установить иконку для группы. т.к. в фильтре не работает проверка pfm_is_group() и не понятно как определить что фильтруется группа, а не форум. Ну точнее я придумал по поиску строки, т.к. для группы используется стандартная иконка fa-database, но должен быть какой то другой способ )
вот более подробно:
add_filter('pfm_icon', 'add_custom_icons'); function add_custom_icons($icon){ if(pfm_is_home()){ //находимся на главной, //выводится список групп и форумы внутри них //в $PrimeGroup данные текущей группы global $PrimeGroup, $PrimeForum; if($PrimeGroup->group_id == 1){ $icon = '<i class="fa fa-free-code-camp" aria-hidden="true"></i>'; } } if(pfm_is_group()){ //страница одиночной группы, //выводится список форумов //в $PrimeForum данные текущего форума global $PrimeForum; if($PrimeForum->forum_id == 1){ $icon = '<i class="fa fa-free-code-camp" aria-hidden="true"></i>'; } } if(pfm_is_forum()){ //страница отдельного форума, //выводится список тем //в $PrimeTopic данные текущей темы global $PrimeTopic; if($PrimeTopic->topic_id == 1){ $icon = '<i class="fa fa-free-code-camp" aria-hidden="true"></i>'; } } return $icon; }
Андрей, Владимир, Preci - спасибо вам большое.
Пока ездил по делам меня осенило. Тупо забыл вырубать иконки для групп если включен режим отображения форумов на главной
pfm_get_option('view-forums-home')
Но пока на этом остановился, теперь надо придумать как врубать на главной и то и другое без перекрытия друг друга, когда задействован режим вывода из определенных групп. Но начало уже положено))
Otshelnik-Fm сказал(а)
$PrimeGroup
- его если использовать?
Там если есть[forum_count] => 5
- значит мы в группе
Это не то.
Вот например на главной у меня выводится группа с иконкой стандартной и затем форумы этой группы. Так что никакая проверка что выводится группа не проходит и заменить иконку группы геморно.
Вот я про что
А этот forum_count указан не только у группы но и форума группы
garry сказал(а)
И мне не удалось, фильтр то один в итоге. И при варианте вывода из определенных групп не выходит. Где и у группы на главной и у форумов.
Пока как я и говорил только через поиск в строке, может Андрей просветит или поправит если есть проблема и можно будет иначе.
add_filter('pfm_icon', 'pfm_custom_forum_icon_fasdad'); function pfm_custom_forum_icon_fasdad($default_icon) { global $PrimeForum, $PrimeGroup; //Если в стандартной иконке есть вхождение fa-database значит выводится иконка группы if(stripos($default_icon, 'fa-database')) { //Вернем ID группы return $PrimeGroup->group_id; } return $default_icon; }
garry сказал(а)
Еще бы один фильтрик только для групп, тогда работает чудесно и прицепить чегонить можно еще 🙂
Ну я код который дал он работает. Можно выводить и иконки групп и форумов на главной.
Для групп фильтра отдельного не надо, достаточно сделать что бы работала проверка на группу, сейчас такая проверка только через поиск в строке. Возможно это не критично, но просто не красиво, а так можно делать что угодно.