Приветствую еще раз)
Что то я запутался да и знания мои...))
Работаю с фильтром 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 сказал(а)
Еще бы один фильтрик только для групп, тогда работает чудесно и прицепить чегонить можно еще 🙂
Ну я код который дал он работает. Можно выводить и иконки групп и форумов на главной.
Для групп фильтра отдельного не надо, достаточно сделать что бы работала проверка на группу, сейчас такая проверка только через поиск в строке. Возможно это не критично, но просто не красиво, а так можно делать что угодно.