"idea|tip|trick", // if you don't want this feature, just remove these entries or comment them out with /* */
"theme" => "theme|template",
"plugin" => "plugin|extension",
"alert" => "test|testing|attention|warning|alert|error",
"wordpress" => "wordpress",
"bbpress" => "bbpress"
);
$topic_icons['forums']=array( // keyword group to show based on forum number as fallback if none of the rules above are matched
"1" => "bbpress", // to get a list of your forums by number when this plugin is active: add ?forumlist to your url
"2" => "plugin", // if you don't want this feature, just remove these entries or comment them out with /* */
"3" => "plugin",
"5" => "theme", // example where order doesn't matter
"4" => "wordpress"
);
$topic_icons['graphics']=array( // graphics to assign to keyword groups (now you must specify extension)
"alert" => "exclamation.png",
"idea" => "lightbulb.png",
"theme" => "layout_content.png",
"plugin" => "plugin.png",
"wordpress" => "wordpress.png",
"bbpress" => "bbpress.png",
"sticky" => "star.png",
"closed" => "lock.png",
"poll" => "chart_bar.png",
"resolved" => "flag_green.png",
"unresolved" => "flag_red.png"
);
$topic_icons['style']=".topic_icons {width:16px; height:16px; text-decoration:none; border: 0; padding: 1px; vertical-align: text-top; background:none;}";
/* stop editing here */
$topic_icons['url']=bb_get_option('uri').trim(str_replace(array(trim(BBPATH,"/\\"),"\\"),array("","/"),dirname(__FILE__)),' /\\').'/icons/';
add_action('bb_init','topic_icons_init');
if ($topic_icons['style']) {add_action('bb_head', 'topic_icons_add_css');}
if ($topic_icons['automatic']) { // in_array(bb_get_location(),array('front-page','forum-page', 'tag-page','search-page','favorites-page','profile-page','view-page'))) {
$bb_location=bb_get_location();
if ($bb_location!='feed-page') {
add_filter( 'forum_name', 'forum_icon_automatic',9,2);
if ($bb_location!='topic-page') {add_filter( 'topic_title', 'topic_icon_automatic',9,2);}
}
}
function topic_icons_init() {
global $bb_current_user;
if ((isset($_GET['listforums']) || isset($_GET['forumlist'])) && 'keymaster'==@reset($bb_current_user->roles)) {echo "
Forum List
"; foreach (get_forums() as $forum) {echo "$forum->forum_id -> $forum->forum_name
";} exit();}
}
function topic_icon_automatic($title,$id) {if (topic_icon(true,$id)) {echo " ";} return $title;}
function forum_icon_automatic($name,$id) {if (forum_icon(true,$id)) {echo " ";} return $name;}
function topic_icon($automatic=false,$id=0) {
global $topic_icons,$topic; // print " "; // diagnostic
if ($id && (!isset($topic->topic_id) || $topic->topic_id!=$id) ) {$topic=get_topic($id);} // handles searches albeit with too many queries - needs fix
elseif (!$id && isset($topic->topic_id)) {$id=$topic->topic_id;}
if ($automatic==false && $topic_icons['automatic']) {
remove_filter( 'forum_name', 'forum_icon_automatic',9);
remove_filter( 'topic_title', 'topic_icon_automatic',9);
}
if ($topic->topic_sticky) {echo topic_icons_graphic("sticky");}
elseif (!$topic->topic_open) {echo topic_icons_graphic("closed");}
elseif (isset($topic->poll_options)) {echo topic_icons_graphic("poll");}
elseif ($temp=topic_icons_keyword($topic->topic_title)) {echo $temp;}
elseif (isset($topic->topic_resolved) && $topic->topic_resolved!="mu") {
if ($topic->topic_resolved=="yes") {echo topic_icons_graphic("resolved");}
if ($topic->topic_resolved=="no") {echo topic_icons_graphic("unresolved");}
}
else { // no topic icon found, check for forum icon fallback
if ($topic->topic_id==$id) {$forum_id=$topic->forum_id;} else {$temp=get_topic($id); $forum_id=$temp->forum_id;}
if ($temp=topic_icons_forum($forum_id)) {echo $temp;}
else {return false;} // nope, nothing found
}
return true;
}
function forum_icon($automatic=false,$id=0) {
global $topic_icons,$forum;
if (!$id && isset($forum->forum_id)) {$id=$forum->forum_id;}
if ($automatic==false && $topic_icons['automatic']) {
remove_filter( 'forum_name', 'forum_icon_automatic',9);
remove_filter( 'topic_title', 'topic_icon_automatic',9);
}
if ($temp=topic_icons_forum($id)) {echo $temp;}
elseif ($temp=topic_icons_keyword($forum->forum_name)) {echo $temp;}
else {return false;} // nope, nothing found
return true;
}
function topic_icons_keyword($item) {
global $topic_icons; $temp="";
if (isset($topic_icons['rules']) && is_array($topic_icons['rules'])) {
foreach ($topic_icons['rules'] as $keyword=>$rule) {
if (eregi("(^|[^\w])(".$rule.")(s?)($|[^\w])",$item)) {$temp=topic_icons_graphic($keyword); break;}
}
}
return $temp;
}
function topic_icons_forum($item) {
global $topic_icons; $temp="";
if (isset($topic_icons['forums'][$item])) {$temp=topic_icons_graphic($topic_icons['forums'][$item]);}
return $temp;
}
function topic_icons_graphic($keyword) {
global $topic_icons;
return "
";
}
function topic_icons_add_css() { global $topic_icons; echo '';} // inject css
?>