diff --git a/e107_files/shortcode/plugin.sc b/e107_files/shortcode/plugin.sc index 9b610fd0b..5299a2f69 100644 --- a/e107_files/shortcode/plugin.sc +++ b/e107_files/shortcode/plugin.sc @@ -6,66 +6,81 @@ $name = $tp -> toDB(basename($menu)); $plugin_file = ""; if($path == '.') { - $path = $menu; + $path = $menu; } if($sql->db_Select('menus','menu_id, menu_pages',"menu_name = '$name' AND (menu_path = '".$path."/' OR menu_path = '".$path."') AND menu_class IN (".USERCLASS_LIST.")")) { - $row = $sql->db_Fetch(); - $show_menu = TRUE; - if($row['menu_pages']){ - list($listtype,$listpages) = explode("-",$row['menu_pages']); - $pagelist = explode("|",$listpages); - $check_url = e_SELF."?".e_QUERY; - if($listtype == '1') //show menu + $row = $sql->db_Fetch(); + $show_menu = TRUE; + if($row['menu_pages']) + { + list($listtype,$listpages) = explode("-",$row['menu_pages']); + $pagelist = explode("|",$listpages); + $check_url = e_SELF."?".e_QUERY; + if($listtype == '1') //show menu + { + $show_menu = FALSE; + foreach($pagelist as $p) + { + if(strpos($check_url,$p) !== FALSE) { - $show_menu = FALSE; - foreach($pagelist as $p) - { - if(strpos($check_url,$p) !== FALSE) - { - $show_menu = TRUE; - } - } - } - elseif($listtype == '2') //hide menu - { - $show_menu = TRUE; - foreach($pagelist as $p) - { - if(strpos($check_url,$p) !== FALSE) - { - $show_menu = FALSE; - } - } + $show_menu = TRUE; + break; // Speed things up a bit } + } } + elseif($listtype == '2') //hide menu + { + $show_menu = TRUE; + foreach($pagelist as $p) + { + if(strpos($check_url,$p) !== FALSE) + { + $show_menu = FALSE; + break; // Speed things up a bit + } + } + } + } - if($show_menu) { - $sql->db_Mark_Time($name); - if($path != 'custom') - { - if(is_readable(e_PLUGIN.$path."/languages/".e_LANGUAGE.".php")){ - include_once(e_PLUGIN.$path."/languages/".e_LANGUAGE.".php"); - } - if(e_LANGUAGE != 'English' && is_readable(e_PLUGIN.$path."/languages/English.php")){ - include_once(e_PLUGIN.$path."/languages/English.php"); - } - } - $plugin_file = e_PLUGIN.$path."/".$name.".php"; - } + if($show_menu) + { + $sql->db_Mark_Time($name); + $plugin_file = e_PLUGIN.$path."/".$name.".php"; + } } else { - if(is_readable(e_PLUGIN.$path."/".$name.".php")) - { - $sql->db_Mark_Time($name); - include_lan(e_PLUGIN.$path."/languages/".e_LANGUAGE.".php"); - $plugin_file = e_PLUGIN.$path."/".$name.".php"; - } + if(is_readable(e_PLUGIN.$path."/".$name.".php")) + { + $sql->db_Mark_Time($name); + $plugin_file = e_PLUGIN.$path."/".$name.".php"; + } } if($plugin_file != "") { + // If we're showing anything, we'll need the lan file (unless 'custom') (use same logic as menu shortcode) + if($path != 'custom') + { + if (is_readable(e_PLUGIN.$path."/languages/".e_LANGUAGE.".php")) + { + include_once(e_PLUGIN.$path."/languages/".e_LANGUAGE.".php"); + } + elseif (is_readable(e_PLUGIN.$path."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php")) + { + include_once(e_PLUGIN.$path."/languages/".e_LANGUAGE."/".e_LANGUAGE.".php"); + } + elseif (is_readable(e_PLUGIN.$path."/languages/English.php")) + { + include_once(e_PLUGIN.$path."/languages/English.php"); + } + elseif (is_readable(e_PLUGIN.$path."/languages/English/English.php")) + { + include_once(e_PLUGIN.$path."/languages/English/English.php"); + } + } + ob_start(); include(e_PLUGIN.$path."/".$name.".php"); $buff = ob_get_contents();