PageRenderTime 57ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/administrator/components/com_swmenufree/modules/mod_swmenufree/functions.php

https://github.com/cavila/Astica
PHP | 1721 lines | 1339 code | 275 blank | 107 comment | 198 complexity | ad0670d334fa7bf2a8e34f460945e3bc MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0, Apache-2.0, BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. * swmenufree v6.0
  4. * http://swmenupro.com
  5. * Copyright 2006 Sean White
  6. **/
  7. defined( '_JEXEC' ) or die( 'Restricted access' );
  8. function swGetMenu($menu,$id,$hybrid,$cache,$cache_time,$use_table,$parent_id,$levels){
  9. global $my,$mainframe;
  10. $start=time();
  11. $absolute_path=JPATH_ROOT;
  12. $config=&JFactory::getConfig();
  13. $langsw=$config->getValue('language');
  14. $swmenupro_array=array();
  15. $ordered=array();
  16. $final_menu=array();
  17. $file=$absolute_path."/modules/mod_swmenufree/cache/$menu,$id,$hybrid,$cache,$cache_time,$use_table,$parent_id,$levels,$langsw.cache";
  18. if($cache){
  19. if ( !file_exists($file)){
  20. $swmenupro_array=swGetMenuLinks($menu,$id,$hybrid,$use_table);
  21. $final_menu=get_Final_Menu($swmenupro_array, $parent_id, $levels);
  22. $handle = fopen ($file, 'w');
  23. fwrite($handle,var_export($final_menu,1));
  24. fclose($handle);
  25. }else if(strtotime($cache_time,filemtime($file))< strtotime("now")&&is_writable($file)){
  26. $swmenupro_array=swGetMenuLinks($menu,$id,$hybrid,$use_table);
  27. $final_menu=get_Final_Menu($swmenupro_array, $parent_id, $levels);
  28. $handle = fopen ($file, 'w');
  29. fwrite($handle,var_export($final_menu,1));
  30. fclose($handle);
  31. }else if(file_exists($file)){
  32. $handle = fopen ($file, 'r');
  33. $import=fread($handle,1000000);
  34. fclose($handle);
  35. eval('$final_menu = '.$import. ';');
  36. }
  37. }else{
  38. $swmenupro_array=swGetMenuLinks($menu,$id,$hybrid,$use_table);
  39. $final_menu=get_Final_Menu($swmenupro_array, $parent_id, $levels);
  40. }
  41. return $final_menu;
  42. }
  43. function get_Final_Menu($swmenufree_array, $parent_id, $levels){
  44. global $mainframe;
  45. $valid=0;
  46. $my = & JFactory::getUser();
  47. $final_menu=array();
  48. for($i=0;$i<count($swmenufree_array);$i++){
  49. $swmenu=$swmenufree_array[$i];
  50. if($swmenu['ACCESS']<=$my->gid ){
  51. if ($swmenu['PARENT']==$parent_id) {
  52. $valid++;
  53. }
  54. if (strcasecmp(substr($swmenu['URL'],0,4),"http")) {
  55. $swmenu['URL'] = JRoute::_($swmenu['URL'],1);
  56. }
  57. $swmenu['URL']=str_replace('&amp;','&',$swmenu['URL']);
  58. $final_menu[] =array("TITLE" => $swmenu['TITLE'], "URL" => $swmenu['URL'] , "ID" => $swmenu['ID'] , "PARENT" => $swmenu['PARENT'] , "ORDER" => $swmenu['ORDER'], "TARGET" => $swmenu['TARGET'],"ACCESS" => $swmenu['ACCESS'] );
  59. }
  60. }
  61. if(count($final_menu)&&$valid){
  62. $final_menu = chain('ID', 'PARENT', 'ORDER', $final_menu, $parent_id, 25);
  63. }else{
  64. $final_menu=array();
  65. }
  66. return $final_menu;
  67. }
  68. function swGetMenuLinks($menu,$id,$hybrid,$use_tables){
  69. global $lang, $database,$my,$absolute_path,$offset;
  70. $database = &JFactory::getDBO();
  71. $config=&JFactory::getConfig();
  72. $time_offset=$config->getValue('offset');
  73. $now = date( "Y-m-d H:i:s", time()+$time_offset*60*60 );
  74. $swmenufree_array=array();
  75. if ($menu=="swcontentmenu") {
  76. $sql = "SELECT #__sections.*
  77. FROM #__sections
  78. INNER JOIN #__content ON #__content.sectionid = #__sections.id
  79. AND #__sections.published = 1
  80. AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
  81. AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
  82. ORDER BY #__content.ordering
  83. ";
  84. $database->setQuery( $sql );
  85. $result = $database->loadObjectList();
  86. for($i=0;$i<count($result);$i++) {
  87. $result2=$result[$i];
  88. if($use_tables){
  89. $url="index.php?option=com_content&view=section&id=".$result2->id;
  90. }else{
  91. $url="index.php?option=com_content&view=section&layout=blog&id=".$result2->id;
  92. }
  93. $swmenufree_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id , "PARENT" => 0 , "ORDER" => $result2->ordering, "TARGET" => 0,"ACCESS" => $result2->access );
  94. }
  95. $sql = "SELECT #__categories.*
  96. FROM #__categories
  97. INNER JOIN #__content ON #__content.catid = #__categories.id
  98. AND #__categories.published = 1
  99. AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
  100. AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
  101. ORDER BY #__content.ordering
  102. ";
  103. $database->setQuery( $sql );
  104. $result = $database->loadObjectList();
  105. for($i=0;$i<count($result);$i++) {
  106. $result2=$result[$i];
  107. if($use_tables){
  108. $url="index.php?option=com_content&view=category&id=".$result2->id;
  109. }else{
  110. $url="index.php?option=com_content&view=category&layout=blog&id=".$result2->id;
  111. }
  112. $swmenufree_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id+1000 , "PARENT" => $result2->section , "ORDER" => $result2->ordering, "TARGET" => 0,"ACCESS" => $result2->access );
  113. }
  114. $sql = "SELECT #__content.*
  115. FROM #__content
  116. INNER JOIN #__categories ON #__content.catid = #__categories.id
  117. AND #__content.state = 1
  118. AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
  119. AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
  120. ORDER BY #__content.ordering
  121. ";
  122. $database->setQuery( $sql );
  123. $result = $database->loadObjectList();
  124. for($i=0;$i<count($result);$i++) {
  125. $result2=$result[$i];
  126. $url="index.php?option=com_content&view=article&catid=".$result2->catid."&id=" . $result2->id ;
  127. $swmenufree_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id+10000 , "PARENT" => $result2->catid+1000 , "ORDER" => $result2->ordering, "TARGET" => 0,"ACCESS" => $result2->access );
  128. }
  129. }else if ($menu=="virtuemart") {
  130. $sql = "SELECT #__vm_category.* ,#__vm_category_xref.*
  131. FROM #__vm_category
  132. INNER JOIN #__vm_category_xref ON #__vm_category_xref.category_child_id= #__vm_category.category_id
  133. AND #__vm_category.category_publish = 'Y'
  134. ORDER BY #__vm_category.list_order
  135. ";
  136. $database->setQuery( $sql );
  137. $result = $database->loadObjectList();
  138. for($i=0;$i<count($result);$i++) {
  139. $result2=$result[$i];
  140. $url="index.php?option=com_virtuemart&page=shop.browse&category_id=" . $result2->category_id . "&Itemid=".($result2->category_id+10000) ;
  141. $swmenufree_array[] =array("TITLE" => $result2->category_name, "URL" => $url , "ID" => ($result2->category_id+10000) , "PARENT" => ($result2->category_parent_id?($result2->category_parent_id+10000):0) , "ORDER" => $result2->list_order, "TARGET" => 0,"ACCESS" => 0 );
  142. }
  143. }else{
  144. if ($hybrid){
  145. $sql = "SELECT #__content.*
  146. FROM #__content
  147. INNER JOIN #__categories ON #__content.catid = #__categories.id
  148. AND #__content.state = 1
  149. AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
  150. AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
  151. ORDER BY #__content.catid,#__content.ordering
  152. ";
  153. $database->setQuery( $sql );
  154. $hybrid_content = $database->loadObjectList();
  155. $sql = "SELECT #__categories.*
  156. FROM #__categories
  157. WHERE #__categories.published = 1
  158. ORDER BY #__categories.ordering
  159. ";
  160. $database->setQuery( $sql );
  161. $hybrid_cat = $database->loadObjectList();
  162. }
  163. $sql = "SELECT #__menu.*
  164. FROM #__menu
  165. WHERE #__menu.menutype = '".$menu."' AND published = '1'
  166. ORDER BY parent, ordering
  167. ";
  168. $database->setQuery( $sql );
  169. $result = $database->loadObjectList();
  170. $swmenufree_array=array();
  171. for($i=0;$i<count($result);$i++) {
  172. $result2=$result[$i];
  173. switch ($result2->type) {
  174. case 'separator';
  175. $mylink = "javascript:void(0);";
  176. break;
  177. case 'url':
  178. $mylink = $result2->link;
  179. if (preg_match( "/index.php\?/i", $result2->link )) {
  180. if (!preg_match( "/Itemid=/i", $result2->link )) {
  181. $mylink .= "&Itemid=$result2->id";
  182. }
  183. }
  184. break;
  185. case 'menulink';
  186. $mylink = $result2->link;
  187. break;
  188. default:
  189. $mylink = "index.php?Itemid=".$result2->id;
  190. break;
  191. }
  192. $swmenufree_array[] =array("TITLE" => $result2->name, "URL" => $mylink , "ID" => $result2->id , "PARENT" => $result2->parent , "ORDER" => $result2->ordering, "TARGET" => $result2->browserNav,"ACCESS" => $result2->access );
  193. if ($hybrid){
  194. $opt=array();
  195. parse_str($result2->link, $opt);
  196. $opt['view'] = @$opt['view'] ? $opt['view']: 0;
  197. $opt['id'] = @$opt['id'] ? $opt['id']: 0;
  198. if ($opt['view']=="blogcategory" || $opt['view']=="category" ) {
  199. for($j=0;$j<count($hybrid_content);$j++){
  200. $row=$hybrid_content[$j];
  201. if($row->catid==$opt['id']){
  202. $url="index.php?option=com_content&view=article&catid=".$row->catid."&id=" . $row->id ."&Itemid=".$result2->id;
  203. $swmenufree_array[] =array("TITLE" => $row->title, "URL" => $url , "ID" => $row->id+100000 , "PARENT" => $result2->id , "ORDER" => $row->ordering, "TARGET" => 0,"ACCESS" => $row->access );
  204. }
  205. }
  206. }else if ($opt['view']=="blogsection" || $opt['view']=="section" ) {
  207. //echo "hello";
  208. for($j=0;$j<count($hybrid_cat);$j++){
  209. $row=$hybrid_cat[$j];
  210. if($row->section==$opt['id'] && $opt['id']){
  211. //$j=count($hybrid_cat);
  212. if($use_tables){
  213. $url="index.php?option=com_content&view=category&id=".$row->id."&Itemid=".$result2->id;
  214. }else{
  215. $url="index.php?option=com_content&view=category&layout=blog&id=".$row->id."&Itemid=".$result2->id;
  216. }
  217. $swmenufree_array[] =array("TITLE" => $row->title, "URL" => $url , "ID" => $row->id+10000 , "PARENT" => $result2->id , "ORDER" => $row->ordering, "TARGET" => 0,"ACCESS" => $row->access );
  218. for($k=0;$k<count($hybrid_content);$k++){
  219. $row2=$hybrid_content[$k];
  220. if($row2->catid==$row->id){
  221. $url="index.php?option=com_content&view=article&catid=".$row->id."&id=" . $row2->id."&Itemid=".$result2->id ;
  222. $swmenufree_array[] =array("TITLE" => $row2->title, "URL" => $url , "ID" => $row2->id+100000 , "PARENT" => $row->id+10000 , "ORDER" => $row2->ordering, "TARGET" => 0,"ACCESS" => $row2->access );
  223. }
  224. }
  225. }
  226. }
  227. }
  228. }
  229. }
  230. }
  231. return $swmenufree_array;
  232. }
  233. function chain($primary_field, $parent_field, $sort_field, $rows, $root_id=0, $maxlevel=25)
  234. {
  235. $c = new chain($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel);
  236. return $c->chainmenu_table;
  237. }
  238. class chain
  239. {
  240. var $table;
  241. var $rows;
  242. var $chainmenu_table;
  243. var $primary_field;
  244. var $parent_field;
  245. var $sort_field;
  246. function chain($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel)
  247. {
  248. $this->rows = $rows;
  249. $this->primary_field = $primary_field;
  250. $this->parent_field = $parent_field;
  251. $this->sort_field = $sort_field;
  252. $this->buildchain($root_id,$maxlevel);
  253. }
  254. function buildChain($rootcatid,$maxlevel)
  255. {
  256. foreach($this->rows as $row)
  257. {
  258. $this->table[$row[$this->parent_field]][ $row[$this->primary_field]] = $row;
  259. }
  260. $this->makeBranch($rootcatid,0,$maxlevel);
  261. }
  262. function makeBranch($parent_id,$level,$maxlevel)
  263. {
  264. $rows=$this->table[$parent_id];
  265. $key_array1 = array_keys($rows);
  266. $key_array_size1 = sizeOf($key_array1);
  267. //for ($j=0;$j<$key_array_size1;$j++)
  268. foreach($rows as $key=>$value)
  269. {
  270. //$key = $key_array1[$j];
  271. $rows[$key]['key'] = $this->sort_field;
  272. }
  273. usort($rows,'chainmenuCMP');
  274. $row_array = array_values($rows);
  275. $row_array_size = sizeOf($row_array);
  276. $i=0;
  277. foreach($rows as $item)
  278. {
  279. //$item = $row_array[$i];
  280. $item['ORDER']=($i+1);
  281. $item['indent'] = $level;
  282. $i++;
  283. $this->chainmenu_table[] = $item;
  284. if((isset($this->table[$item[$this->primary_field]])) && (($maxlevel>$level+1) || ($maxlevel==0)))
  285. {
  286. $this->makeBranch($item[$this->primary_field], $level+1, $maxlevel);
  287. }
  288. }
  289. }
  290. }
  291. function chainmenuCMP($a,$b)
  292. {
  293. if($a[$a['key']] == $b[$b['key']])
  294. {
  295. return 0;
  296. }
  297. return($a[$a['key']]<$b[$b['key']])?-1:1;
  298. }
  299. function transMenu($ordered, $swmenufree, $active_menu, $sub_indicator, $parent_id,$selectbox_hack,$auto_position,$overlay_hack){
  300. global $mainframe;
  301. $live_site = $mainframe->isAdmin() ? $mainframe->getSiteURL() : JURI::base();
  302. if(substr($live_site,(strlen($live_site)-1),1)=="/"){$live_site=substr($live_site,0,(strlen($live_site)-1));}
  303. $str="";
  304. $name = "";
  305. $topcounter = 0;
  306. $counter = 0;
  307. $number = count(chain('ID', 'PARENT', 'ORDER', $ordered, $parent_id, 1));
  308. $str.= "<div id=\"sw-wrap\" class=\"swmenu\" align=\"".$swmenufree['position']."\">\n";
  309. $str.= "<table cellspacing=\"0\" cellpadding=\"0\" id=\"swmenu\" class=\"swmenu\" > \n";
  310. if (substr($swmenufree['orientation'],0,10)=="horizontal"){$str.= "<tr> \n";}
  311. foreach($ordered as $top){
  312. if ($top['indent'] == 0){
  313. $top['URL'] = str_replace( '&', '&amp;', $top['URL'] );
  314. $topcounter++;
  315. $name=$top['TITLE'];
  316. if (substr($swmenufree['orientation'],0,8)=="vertical"){
  317. $str.= "<tr> \n";
  318. }
  319. if(($topcounter==$number)&&($top["ID"]==$active_menu)){
  320. $str.= "<td id=\"trans-active\" class='last'> \n";
  321. }else if($top["ID"]==$active_menu){
  322. $str.= "<td id='trans-active'> \n";
  323. }else if($topcounter==$number){
  324. $str.= "<td class=\"last\"> \n";
  325. }else{
  326. $str.= "<td> \n";
  327. }
  328. switch ($top['TARGET']) {
  329. // cases are slightly different
  330. case 1:
  331. // open in a new window
  332. $str.= '<a id="menu'.$top['ID'].'" href="'. $top['URL'] .'" target="_blank" >'. $name .'</a>'."\n";
  333. break;
  334. case 2:
  335. // open in a popup window
  336. $str.= "<a href=\"#\" id=\"menu".$top['ID']."\" onclick=\"javascript: window.open('". $top['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" >". $name ."</a>\n";
  337. break;
  338. case 3:
  339. // don't link it
  340. $str.= '<a id="menu'.$top['ID'].'" >'. $name .'</a>'."\n";
  341. break;
  342. default: // formerly case 2
  343. $str.= '<a id="menu'.$top['ID'].'" href="'.$top['URL'] .'" >';
  344. $str.= $name .'</a>'."\n";
  345. break;
  346. }
  347. $counter++;
  348. $str.= "</td> \n";
  349. if (substr($swmenufree['orientation'],0,8)=="vertical"){
  350. $str.= "</tr> \n";
  351. }
  352. }
  353. }
  354. if (substr($swmenufree['orientation'],0,10)=="horizontal"){$str.= "</tr> \n";}
  355. $str.= "</table></div> \n";
  356. $str.= "<div id=\"subwrap\"> \n";
  357. $str.="<script type=\"text/javascript\">\n";
  358. $str.="<!--\n";
  359. $str.="if (TransMenu.isSupported()) {\n";
  360. if($swmenufree['orientation']=="horizontal/down"){
  361. $str.= "var ms = new TransMenuSet(TransMenu.direction.down, ".$swmenufree['level1_sub_left'].",".$swmenufree['level1_sub_top'].", TransMenu.reference.bottomLeft);\n";
  362. }elseif($swmenufree['orientation']=="horizontal/up"){
  363. $str.= "var ms = new TransMenuSet(TransMenu.direction.up, ".$swmenufree['level1_sub_left'].", ".$swmenufree['level1_sub_top'].", TransMenu.reference.topLeft);\n";
  364. }elseif($swmenufree['orientation']=="horizontal/left"){
  365. $str.= "var ms = new TransMenuSet(TransMenu.direction.dleft, ".$swmenufree['level1_sub_left'].",".$swmenufree['level1_sub_top'].", TransMenu.reference.bottomRight);\n";
  366. }elseif($swmenufree['orientation']=="vertical/right"){
  367. $str.= "var ms = new TransMenuSet(TransMenu.direction.right, ".$swmenufree['level1_sub_left'].", ".$swmenufree['level1_sub_top'].", TransMenu.reference.topRight);\n";
  368. }elseif($swmenufree['orientation']=="vertical/left"){
  369. $str.= "var ms = new TransMenuSet(TransMenu.direction.left, ".$swmenufree['level1_sub_left'].", ".$swmenufree['level1_sub_top'].", TransMenu.reference.topLeft);\n";
  370. }elseif($swmenufree['orientation']=="vertical"){
  371. $str.= "var ms = new TransMenuSet(TransMenu.direction.right, ".$swmenufree['level1_sub_left'].", ".$swmenufree['level1_sub_top'].", TransMenu.reference.topRight);\n";
  372. }elseif($swmenufree['orientation']=="horizontal"){
  373. $str.= "var ms = new TransMenuSet(TransMenu.direction.down, ".$swmenufree['level1_sub_left'].", ".$swmenufree['level1_sub_top'].", TransMenu.reference.bottomLeft);\n";
  374. }
  375. $par=$ordered[0];
  376. foreach($ordered as $sub){
  377. $name=$sub['TITLE'];
  378. $sub2=next($ordered);
  379. if ($sub['TARGET']=="3"){
  380. $sub['TARGET']=0;
  381. $sub['URL']="javascript:void(0);";
  382. }
  383. if(($sub['indent']==0)&&(($sub2['indent'])==1)){
  384. $str.= "var menu".$sub['ID']." = ms.addMenu(document.getElementById(\"menu".$sub['ID']."\"));\n ";
  385. }else if(($sub['ORDER']==1)&&($sub['indent']>1)){
  386. $str.= "var menu".($sub['ID'])." = menu".findPar($ordered,$par).".addMenu(menu".findPar($ordered,$par).".items[".($par['ORDER']-1)."],".$swmenufree['level2_sub_left'].",".$swmenufree['level2_sub_top'].");\n";
  387. }
  388. if($sub['indent']>0){
  389. $str.= "menu".findPar($ordered,$sub).".addItem(\"".addslashes($name)."\", \"".addslashes($sub['URL'])."\", \"".$sub['TARGET']."\");\n";
  390. }
  391. $par=$sub;
  392. }
  393. $str.="function init() {\n";
  394. $str.="if (TransMenu.isSupported()) {\n";
  395. $str.="TransMenu.initialize();\n";
  396. $counter=0;
  397. for($i=0;$i<count($ordered);$i++){
  398. if($ordered[$i]['indent']==0) {
  399. $counter++;
  400. if(@$ordered[$i+1]['indent']==1) {
  401. $str.= "menu".($ordered[$i]['ID']).".onactivate = function() {document.getElementById(\"menu".$ordered[$i]['ID']."\").className = \"hover\"; };\n ";
  402. $str.= "menu".($ordered[$i]['ID']).".ondeactivate = function() {document.getElementById(\"menu".$ordered[$i]['ID']."\").className = \"\"; };\n ";
  403. }else{
  404. $str.= "document.getElementById(\"menu".$ordered[$i]['ID']."\").onmouseover = function() {\n";
  405. $str.= "ms.hideCurrent();\n";
  406. $str.= "this.className = \"hover\";\n";
  407. $str.= "}\n";
  408. $str.= "document.getElementById(\"menu".$ordered[$i]['ID']."\").onmouseout = function() { this.className = \"\"; }\n";
  409. }
  410. }
  411. }
  412. $str.="}}\n";
  413. if($sub_indicator){
  414. $str.="TransMenu.spacerGif = \"".$live_site."/modules/mod_swmenufree/images/transmenu/x.gif\";\n";
  415. if($swmenufree['orientation']=="horizontal/left" || $swmenufree['orientation']=="vertical/left"){
  416. switch ($sub_indicator) {
  417. // cases are slightly different
  418. case 2:
  419. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/white-on.gif\";\n";
  420. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/white-off.gif\"; \n";
  421. break;
  422. case 3:
  423. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/black-on.gif\";\n";
  424. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/black-off.gif\"; \n";
  425. break;
  426. case 4:
  427. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/grey-on.gif\";\n";
  428. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/grey-off.gif\"; \n";
  429. break;
  430. case 5:
  431. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blue-on.gif\";\n";
  432. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blue-off.gif\"; \n";
  433. break;
  434. case 6:
  435. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/red-on.gif\";\n";
  436. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/red-off.gif\"; \n";
  437. break;
  438. case 7:
  439. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/green-on.gif\";\n";
  440. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/green-off.gif\"; \n";
  441. break;
  442. case 8:
  443. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/yellow-on.gif\";\n";
  444. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/yellow-off.gif\"; \n";
  445. break;
  446. default: // formerly case 2
  447. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/submenuleft-on.gif\";\n";
  448. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/submenuleft-off.gif\"; \n";
  449. break;
  450. }
  451. $str.="TransMenu.sub_indicator = true; \n";
  452. }else{
  453. switch ($sub_indicator) {
  454. // cases are slightly different
  455. case 2:
  456. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/whiteleft-on.gif\";\n";
  457. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/whiteleft-off.gif\"; \n";
  458. break;
  459. case 3:
  460. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blackleft-on.gif\";\n";
  461. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blackleft-off.gif\"; \n";
  462. break;
  463. case 4:
  464. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/greyleft-on.gif\";\n";
  465. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/greyleft-off.gif\"; \n";
  466. break;
  467. case 5:
  468. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blueleft-on.gif\";\n";
  469. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/blueleft-off.gif\"; \n";
  470. break;
  471. case 6:
  472. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/redleft-on.gif\";\n";
  473. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/redleft-off.gif\"; \n";
  474. break;
  475. case 7:
  476. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/greenleft-on.gif\";\n";
  477. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/greenleft-off.gif\"; \n";
  478. break;
  479. case 8:
  480. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/yellowleft-on.gif\";\n";
  481. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/yellowleft-off.gif\"; \n";
  482. break;
  483. default: // formerly case 2
  484. $str.="TransMenu.dingbatOn = \"".$live_site."/modules/mod_swmenufree/images/transmenu/submenu-on.gif\";\n";
  485. $str.="TransMenu.dingbatOff = \"".$live_site."/modules/mod_swmenufree/images/transmenu/submenu-off.gif\"; \n";
  486. break;
  487. }
  488. $str.="TransMenu.sub_indicator = true; \n";
  489. }
  490. }else{
  491. $str.="TransMenu.dingbatSize = 0;\n";
  492. $str.="TransMenu.spacerGif = \"\";\n";
  493. $str.="TransMenu.dingbatOn = \"\";\n";
  494. $str.="TransMenu.dingbatOff = \"\"; \n";
  495. $str.="TransMenu.sub_indicator = false;\n";
  496. }
  497. $str.="TransMenu.menuPadding = 0;\n";
  498. $str.="TransMenu.itemPadding = 0;\n";
  499. $str.="TransMenu.shadowSize = 2;\n";
  500. $str.="TransMenu.shadowOffset = 3;\n";
  501. $str.="TransMenu.shadowColor = \"#888\";\n";
  502. $str.="TransMenu.shadowPng = \"".$live_site."/modules/mod_swmenufree/images/transmenu/grey-40.png\";\n";
  503. $str.="TransMenu.backgroundColor = \"".$swmenufree['sub_back']."\";\n";
  504. $str.="TransMenu.backgroundPng = \"".$live_site."/modules/mod_swmenufree/images/transmenu/white-90.png\";\n";
  505. $str.="TransMenu.hideDelay = ".($swmenufree['specialB']*2).";\n";
  506. $str.="TransMenu.slideTime = ".$swmenufree['specialB'].";\n";
  507. $str.="TransMenu.selecthack = ".$selectbox_hack.";\n";
  508. $str.="TransMenu.autoposition = ".$auto_position.";\n";
  509. $str.="TransMenu.renderAll();\n";
  510. $str.="if ( typeof window.addEventListener != \"undefined\" )\n";
  511. $str.="window.addEventListener( \"load\", init, false );\n";
  512. $str.="else if ( typeof window.attachEvent != \"undefined\" ) {\n";
  513. $str.="window.attachEvent( \"onload\", init);\n";
  514. $str.="}else{\n";
  515. $str.="if ( window.onload != null ) {\n";
  516. $str.="var oldOnload = window.onload;\n";
  517. $str.="window.onload = function ( e ) {\n";
  518. $str.="oldOnload( e );\n";
  519. $str.="init();\n";
  520. $str.="}\n}else\n";
  521. $str.="window.onload = init();\n";
  522. $str.="}\n}\n-->\n</script>\n</div>\n";
  523. if($overlay_hack){
  524. $str.="<script type=\"text/javascript\">\n";
  525. $str.="<!--\n";
  526. $str.="jQuery.noConflict();\n";
  527. //$str.="alert($.topZIndex());\n";
  528. $str.="jQuery(document).ready(function($){\n";
  529. //$str.="alert($.topZIndex());\n";
  530. // $str.="$('#left_container').topZIndex();\n";
  531. $str.="$('#sw-wrap').parents().css('position','static');\n";
  532. // $str.="$('body').css('position','relative');\n";
  533. $str.="$('#sw-wrap').parents().css('z-index','100');\n";
  534. $str.="$('#sw-wrap').css('z-index','101');\n";
  535. $str.="});\n";
  536. $str.= "//--> \n";
  537. $str.= "</script> \n";
  538. }
  539. return $str;
  540. }
  541. function findPar($ordered,$sub){
  542. $submenu = chain('ID', 'PARENT', 'ORDER', $ordered, $sub['PARENT'], 1);
  543. if ($sub['indent']==1){
  544. return $submenu[0]['PARENT'];
  545. }else{
  546. return $submenu[0]['ID'];
  547. }
  548. }
  549. function GosuMenu($ordered, $swmenufree, $active_menu,$selectbox_hack,$overlay_hack){
  550. global $absolute_path, $live_site;
  551. $name = "";
  552. $counter = 0;
  553. $doMenu = 1;
  554. $number = count($ordered);
  555. $str= "<div id=\"sw-wrap\" align=\"".$swmenufree['position']."\">\n";
  556. $str.= "<table cellspacing=\"0\" cellpadding=\"0\" id=\"menu\" class=\"ddmx\" > \n";
  557. if ($swmenufree['orientation']=="horizontal"){$str.= "<tr> \n";}
  558. while ($doMenu){
  559. if ($ordered[$counter]['indent'] == 0){
  560. $ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  561. $name=$ordered[$counter]['TITLE'];
  562. if ($swmenufree['orientation']=="vertical"){
  563. $str.= "<tr> \n";
  564. }
  565. if(islast($ordered,$counter)){
  566. if (($ordered[$counter]['ID']==$active_menu)){$str.= "<td class='item11-acton-last'> \n";}
  567. else{ $str.= "<td class='item11-last'> \n"; }
  568. }else{
  569. if (($ordered[$counter]['ID']==$active_menu)){$str.= "<td class='item11-acton'> \n";}
  570. else{ $str.= "<td class='item11'> \n"; }
  571. }
  572. switch ($ordered[$counter]['TARGET']) {
  573. // cases are slightly different
  574. case 1:
  575. // open in a new window
  576. $str.= '<a href="'. $ordered[$counter]['URL'] .'" target="_blank" class="item1" >'. $name .'</a>';
  577. break;
  578. case 2:
  579. // open in a popup window
  580. $str.= "<a href=\"#\" onclick=\"javascript: window.open('". $ordered[$counter]['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"item1\">". $name ."</a>\n";
  581. break;
  582. case 3:
  583. // don't link it
  584. $str.= '<a class="item1" >'. $name .'</a>';
  585. break;
  586. default: // formerly case 2
  587. // open in parent window
  588. $str.= '<a href="'. $ordered[$counter]['URL'] .'" class="item1">'. $name .'</a>';
  589. break;
  590. }
  591. if ($counter+1 == $number){
  592. $doSubMenu = 0;
  593. $doMenu = 0;
  594. $str.= "<div class=\"section\" style=\"border:0 !important;\" ></div> \n";
  595. }elseif($ordered[$counter+1]['indent'] == 0){
  596. $doSubMenu = 0;
  597. $str.= "<div class=\"section\" style=\"border:0 !important;\" ></div> \n";
  598. }else{$doSubMenu = 1;}
  599. $counter++;
  600. while ($doSubMenu){
  601. if ($ordered[$counter]['indent'] != 0){
  602. if ($ordered[$counter]['indent'] > $ordered[$counter-1]['indent']){ $str.= '<div class="section" >';}
  603. $ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  604. $name=$ordered[$counter]['TITLE'];
  605. if (($counter+1 == $number) || ($ordered[$counter+1]['indent'] == 0) ){
  606. $doSubMenu = 0;
  607. }
  608. $style="";
  609. if (($counter+1 == $number) || islast($ordered,$counter)){
  610. $style=" style=\"border-bottom:".$swmenufree['sub_border_over']."\"";
  611. }
  612. switch ($ordered[$counter]['TARGET']) {
  613. // cases are slightly different
  614. case 1:
  615. // open in a new window
  616. $str.= '<a href="'. $ordered[$counter]['URL'] .'" '.$style.' target="_blank" class="item2" >'. $name .'</a>';
  617. break;
  618. case 2:
  619. // open in a popup window
  620. $str.= "<a href=\"#\" ".$style." onclick=\"javascript: window.open('". $ordered[$counter]['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"item2\">". $name ."</a>\n";
  621. break;
  622. case 3:
  623. // don't link it
  624. $str.= '<a class="item2" '.$style.' >'. $name .'</a>';
  625. break;
  626. default: // formerly case 2
  627. // open in parent window
  628. $str.= "<a href=\"". $ordered[$counter]['URL'] ."\" class=\"item2\" ".$style.">". $name ."</a>\n";
  629. break;
  630. }
  631. if (($counter+1 == $number) || ($ordered[$counter+1]['indent'] < $ordered[$counter]['indent'])){
  632. $str.= str_repeat('</div>',(($ordered[$counter]['indent'])-(@$ordered[$counter+1]['indent'])));
  633. }
  634. $counter++;
  635. }
  636. }
  637. }
  638. $str.= "</td> \n";
  639. if ($swmenufree['orientation']=="vertical"){
  640. $str.= "</tr> \n";
  641. }
  642. if ($counter == ($number)){ $doMenu = 0;}
  643. }
  644. if ($swmenufree['orientation']=="horizontal"){$str.= "</tr> \n";}
  645. $str.= "</table></div> \n";
  646. $str.= "<script type=\"text/javascript\">\n";
  647. $str.= "<!--\n";
  648. $str.= "function makemenu(){\n";
  649. $str.= "var ddmx = new DropDownMenuX('menu');\n";
  650. if ($swmenufree['orientation']=="vertical"){$str.= "ddmx.type = \"vertical\"; \n";}
  651. $str.= "ddmx.delay.show = 0;\n";
  652. $str.= "ddmx.iframename = 'ddmx';\n";
  653. $str.= "ddmx.delay.hide = ".$swmenufree['specialB'].";\n";
  654. $str.= "ddmx.position.levelX.left = ".$swmenufree['level2_sub_left'].";\n";
  655. $str.= "ddmx.position.levelX.top = ".$swmenufree['level2_sub_top'].";\n";
  656. $str.= "ddmx.position.level1.left = ".$swmenufree['level1_sub_left'].";\n";
  657. $str.= "ddmx.position.level1.top = ".$swmenufree['level1_sub_top']."; \n";
  658. $str.= "ddmx.fixIeSelectBoxBug = ".($selectbox_hack?'true':'false').";\n";
  659. $str.= "ddmx.init(); \n";
  660. $str.= "}\n";
  661. $str.= "if ( typeof window.addEventListener != \"undefined\" )\n";
  662. $str.= "window.addEventListener( \"load\", makemenu, false );\n";
  663. $str.= "else if ( typeof window.attachEvent != \"undefined\" ) { \n";
  664. $str.= "window.attachEvent( \"onload\", makemenu );\n";
  665. $str.= "}\n";
  666. $str.= "else {\n";
  667. $str.= "if ( window.onload != null ) {\n";
  668. $str.= "var oldOnload = window.onload;\n";
  669. $str.= "window.onload = function ( e ) { \n";
  670. $str.= "oldOnload( e ); \n";
  671. $str.= "makemenu() \n";
  672. $str.= "} \n";
  673. $str.= "} \n";
  674. $str.= "else { \n";
  675. $str.= "window.onload = makemenu();\n";
  676. $str.= "} }\n";
  677. $str.= "--> \n";
  678. $str.= "</script> \n";
  679. if($overlay_hack){
  680. $str.="<script type=\"text/javascript\">\n";
  681. $str.="<!--\n";
  682. $str.="jQuery.noConflict();\n";
  683. //$str.="alert($.topZIndex());\n";
  684. $str.="jQuery(document).ready(function($){\n";
  685. //$str.="alert($.topZIndex());\n";
  686. // $str.="$('#left_container').topZIndex();\n";
  687. // $str.="$('#sw-wrap').parents().css('position','static');\n";
  688. $str.="$('#sw-wrap').parents().css('overflow','visible');\n";
  689. $str.="$('html').css('overflow','auto');\n";
  690. $str.="$('#sw-wrap').parents().css('z-index','100');\n";
  691. //$str.="$('#sw-wrap').css('position','relative');\n";
  692. $str.="$('#sw-wrap').css('z-index','101');\n";
  693. $str.="});\n";
  694. $str.= "//--> \n";
  695. $str.= "</script> \n";
  696. }
  697. return $str;
  698. }
  699. function TigraMenu($ordered, $swmenufree,$active_menu,$overlay_hack){
  700. global $absolute_path, $live_site;
  701. $topcounter = 0;
  702. $counter = 0;
  703. $doMenu = 1;
  704. $uniqueID = $swmenufree['id'];
  705. $number = count($ordered);
  706. $mymenu_content ="\n<script type=\"text/javascript\">\n";
  707. $mymenu_content.="<!--\n";
  708. $mymenu_content.="var MENU_ITEMS = [";
  709. if ($swmenufree['orientation']=="vertical"){
  710. $swmenufree['level1_sub_left']=$swmenufree['level1_sub_left']+$swmenufree['main_width'];
  711. $swmenufree['level2_sub_left']=$swmenufree['level2_sub_left']+$swmenufree['sub_width'];
  712. }else{
  713. $swmenufree['level1_sub_top']=$swmenufree['level1_sub_top']+$swmenufree['main_height'];
  714. $swmenufree['level2_sub_left']=$swmenufree['level2_sub_left']+$swmenufree['sub_width'];
  715. }
  716. while ($doMenu){
  717. //$ordered[$counter]['TITLE']=str_replace("'","",$ordered[$counter]['TITLE']);
  718. if ($ordered[$counter]['indent'] == 0){
  719. //$ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  720. $hasSub = 0;
  721. $topcounter++;
  722. $name="'".(addslashes($ordered[$counter]['TITLE']))."',";
  723. //if ($ordered[$counter]['URL']!="seperator"){
  724. if ($ordered[$counter]['ID']==$active_menu){
  725. $name="'<sw_active>".(addslashes($ordered[$counter]['TITLE']))."',";
  726. }
  727. $name.="'".$ordered[$counter]['URL']."',";
  728. switch ($ordered[$counter]['TARGET']) {
  729. // cases are slightly different
  730. case 1:
  731. // open in a new window
  732. $name.= "{ 'tw' : '_blank' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  733. break;
  734. case 2:
  735. // open in a popup window
  736. $name.= "{ 'tw' : '_blank' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."', 'tl' : '1'}";
  737. break;
  738. case 3:
  739. // don't link it
  740. $name.= "{ 'tw' : '_self' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  741. break;
  742. default: // formerly case 2
  743. // open in parent window
  744. $name.= "{ 'tw' : '_self' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  745. break;
  746. }
  747. if ($counter+1 == $number){
  748. $mymenu_content.="\n [".$name."],";
  749. $doSubMenu = 0;
  750. $doMenu = 0;
  751. }elseif($ordered[$counter+1]['indent'] == 0){
  752. $mymenu_content.="\n [".$name."],";
  753. $doSubMenu = 0;
  754. }else{
  755. $mymenu_content.="\n [".$name.",";
  756. $doSubMenu = 1;
  757. }
  758. $counter++;
  759. while ($doSubMenu){
  760. if ($ordered[$counter]['indent'] != 0) {
  761. //$ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  762. $name=addslashes($ordered[$counter]['TITLE'])."',";
  763. $name.="'".$ordered[$counter]['URL']."',";
  764. switch ($ordered[$counter]['TARGET']) {
  765. // cases are slightly different
  766. case 1:
  767. // open in a new window
  768. $name.= "{ 'tw' : '_blank' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  769. break;
  770. case 2:
  771. // open in a popup window
  772. $name.= "{ 'tw' : '_blank' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."', 'tl' : '1'}";
  773. break;
  774. case 3:
  775. // don't link it
  776. $name.= "{ 'tw' : '_self' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  777. break;
  778. default: // formerly case 2
  779. // open in parent window
  780. $name.= "{ 'tw' : '_self' , 'sb' : '".addslashes($ordered[$counter]['TITLE'])."'}";
  781. break;
  782. }
  783. if ($counter+1 == $number){
  784. $mymenu_content.="\n ['".$name.str_repeat('],',($ordered[$counter]['indent']+1));
  785. // $mymenu_content.=")\n";
  786. $doSubMenu = 0;
  787. $doMenu = 0;
  788. }elseif ($ordered[$counter]['indent'] < $ordered[$counter+1]['indent']){
  789. $mymenu_content.="\n ['".$name.",";
  790. if ($ordered[$counter+1]['indent'] == 0){ $doSubMenu = 0;}
  791. }
  792. elseif ($ordered[$counter]['indent'] == $ordered[$counter+1]['indent']){
  793. $mymenu_content.="\n ['".$name."],";
  794. if ($ordered[$counter+1]['indent'] == 0){ $doSubMenu = 0;}
  795. }
  796. elseif (($ordered[$counter]['indent'] > $ordered[$counter+1]['indent'])){
  797. $mymenu_content.="\n ['".$name.str_repeat('],',(($ordered[$counter]['indent'])-($ordered[$counter+1]['indent'])+1));
  798. //$mymenu_content.="]),\n";
  799. if ($ordered[$counter+1]['indent'] == 0){ $doSubMenu = 0;}
  800. }
  801. $counter++;
  802. $hasSub++;
  803. }
  804. }
  805. }
  806. }
  807. $mymenu_content .= "\n ];";
  808. $mymenu_content .= "\n -->";
  809. $mymenu_content .= "\n </SCRIPT> \n";
  810. //echo $mymenu_content;
  811. $mymenu_content.= "<script type=\"text/javaScript\">\n";
  812. $mymenu_content.= "<!-- \n";
  813. $mymenu_content.= "var MENU_POS = [\n";
  814. $mymenu_content.= "{\n";
  815. // item sizes
  816. $mymenu_content.= "'height':";
  817. if (substr(swmenuGetBrowser(),0,5)=="MSIE6"){
  818. $border1 = explode(" ", $swmenufree['main_border']);
  819. $offset=rtrim(trim($border1[0]),'px');
  820. }else{ $offset=0;}
  821. $mymenu_content.=($swmenufree['main_height']+$offset);
  822. $mymenu_content.= ",\n";
  823. $mymenu_content.= "'width':".($swmenufree['main_width']+$offset);
  824. $mymenu_content.= ",\n";
  825. $mymenu_content.= "'block_top': ".$swmenufree['main_top'].",\n";
  826. $mymenu_content.= "'block_left': ".$swmenufree['main_left'].",\n";
  827. $mymenu_content.= "'top':";
  828. if ($swmenufree['orientation']=="vertical"){
  829. if (substr(swmenuGetBrowser(),0,5)!="MSIE6"){
  830. $border1 = explode(" ", $swmenufree['main_border']);
  831. $offset3=rtrim(trim($border1[0]),'px');
  832. }else{ $offset3=0;}
  833. $mymenu_content.= ($swmenufree['main_height']+$offset3);
  834. }else {$mymenu_content.= "0";}
  835. $mymenu_content.=",\n";
  836. $mymenu_content.="'left':";
  837. if ($swmenufree['orientation']=="vertical"){$mymenu_content.= "0";}
  838. else {$mymenu_content.= $swmenufree['main_width'];}
  839. $mymenu_content.=",\n";
  840. $mymenu_content.="'hide_delay':".$swmenufree['specialB'].",\n";
  841. $mymenu_content.="'expd_delay': ". $swmenufree['specialB'].",\n";
  842. $mymenu_content.="'css' : {\n";
  843. $mymenu_content.="'outer': ['m0l0oout', 'm0l0oover'],\n";
  844. $mymenu_content.="'inner': ['m0l0iout', 'm0l0iover']\n";
  845. $mymenu_content.="}\n";
  846. $mymenu_content.="}, \n";
  847. $mymenu_content.="{\n";
  848. $mymenu_content.="'height': ";
  849. if (substr(swmenuGetBrowser(),0,5)=="MSIE6"){
  850. $border2 = explode(" ", $swmenufree['sub_border']);
  851. $offset2=rtrim(trim($border2[0]),'px');
  852. }else{ $offset2=0;}
  853. $mymenu_content.= ($swmenufree['sub_height']+$offset2);
  854. $mymenu_content.=",\n";
  855. $mymenu_content.="'width':".($swmenufree['sub_width']+$offset2);
  856. $mymenu_content.=",\n";
  857. $mymenu_content.="'block_top': ". $swmenufree['level1_sub_top']." ,\n";
  858. $mymenu_content.="'block_left':".$swmenufree['level1_sub_left'].",\n";
  859. $mymenu_content.="'top': ";
  860. if (substr(swmenuGetBrowser(),0,5)!="MSIE6"){
  861. $border1 = explode(" ", $swmenufree['sub_border']);
  862. $offset3=rtrim(trim($border1[0]),'px');
  863. }else{ $offset3=0;}
  864. $mymenu_content.= ($swmenufree['sub_height']+$offset3);
  865. $mymenu_content.=",\n";
  866. $mymenu_content.="'left': 0, \n";
  867. $mymenu_content.="'css': {\n";
  868. $mymenu_content.="'outer' : ['m0l1oout', 'm0l1oover'],\n";
  869. $mymenu_content.="'inner' : ['m0l1iout', 'm0l1iover'] \n";
  870. $mymenu_content.="}\n";
  871. $mymenu_content.="}, \n";
  872. $mymenu_content.="{\n";
  873. $mymenu_content.="'block_top': ".$swmenufree['level2_sub_top'].",\n";
  874. $mymenu_content.="'block_left':".$swmenufree['level2_sub_left'].",\n";
  875. $mymenu_content.="'css': {\n";
  876. $mymenu_content.="'outer' : ['m0l1oout', 'm0l1oover'],\n";
  877. $mymenu_content.="'inner' : ['m0l1iout', 'm0l1iover'] \n";
  878. $mymenu_content.="} \n";
  879. $mymenu_content.="} \n";
  880. $mymenu_content.="] \n";
  881. $mymenu_content.="--> \n";
  882. $mymenu_content.="</script> \n";
  883. if (substr(swmenuGetBrowser(),0,5)!="MSIE6"){
  884. $border1 = explode(" ", $swmenufree['main_border']);
  885. $offset3=rtrim(trim($border1[0]),'px');
  886. $swmenufree['main_height'] = $swmenufree['main_height'] + $offset3;
  887. //$swmenufree['main_width'] = $swmenufree['main_width'] + $offset3;
  888. }
  889. $mymenu_content.= "<div id=\"sw-wrap\" style=\"position:".$swmenufree['position'].";z-index:1; top:0px; left:0px; width:";
  890. if ($swmenufree['orientation']=="vertical"){$mymenu_content.= $swmenufree['main_width']."px; height:".(($swmenufree['main_height']*$topcounter))."px \" >";}
  891. else {$mymenu_content.= (($swmenufree['main_width']*$topcounter))."px; height:".$swmenufree['main_height']."px \">";}
  892. $mymenu_content.= "\n<script type=\"text/javaScript\">\n";
  893. $mymenu_content.="<!--\n";
  894. $mymenu_content.= "new menu(MENU_ITEMS, MENU_POS);\n";
  895. $mymenu_content.="--> \n";
  896. $mymenu_content.="</script>\n";
  897. $mymenu_content.="</div>\n";
  898. if ($overlay_hack){
  899. $mymenu_content.="<script type=\"text/javascript\">\n";
  900. $mymenu_content.="<!--\n";
  901. $mymenu_content.="jQuery.noConflict();\n";
  902. //$str.="alert($.topZIndex());\n";
  903. $mymenu_content.="jQuery(document).ready(function($){\n";
  904. //$str.="alert($.topZIndex());\n";
  905. // $str.="$('#left_container').topZIndex();\n";
  906. // $str.="$('#sw-wrap').parents().css('position','static');\n";
  907. $mymenu_content.="$('#sw-wrap').parents().css('overflow','visible');\n";
  908. $mymenu_content.="$('html').css('overflow','auto');\n";
  909. $mymenu_content.="$('#sw-wrap').parents().css('z-index','100');\n";
  910. $mymenu_content.="$('#sw-wrap').css('z-index','101');\n";
  911. $mymenu_content.="});\n";
  912. $mymenu_content.= "//--> \n";
  913. $mymenu_content.= "</script> \n";
  914. }
  915. return $mymenu_content;
  916. }
  917. function SuperfishMenu($ordered, $swmenufree, $active_menu,$selectbox_hack,$sub_active,$show_shadow, $sub_indicator,$overlay_hack){
  918. global $mainframe,$Itemid;
  919. $absolute_path=JPATH_ROOT;
  920. $live_site = $mainframe->isAdmin() ? $mainframe->getSiteURL() : JURI::base();
  921. $name = "";
  922. $counter = 0;
  923. $doMenu = 1;
  924. //$uniqueID = $swmenufree['id'];
  925. $number = count($ordered);
  926. $activesub=-1;
  927. $activesub2=-1;
  928. $topcount=0;
  929. $subcounter=0;
  930. $str= "<div id=\"sfmenu\" align=\"".$swmenufree['position']."\" >\n";
  931. if ($swmenufree['orientation']=="horizontal"){
  932. $str.= "<ul id=\"menu\" class=\"sw-sf\" > \n";
  933. }else{
  934. $str.= "<ul id=\"menu\" class=\"sw-sf sf-vertical\" > \n";
  935. }
  936. //if ($swmenufree['orientation']=="horizontal"){$str.= "<tr> \n";}
  937. while ($doMenu){
  938. if ($ordered[$counter]['indent'] == 0){
  939. $ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  940. $name=$ordered[$counter]['TITLE'];
  941. if ($swmenufree['orientation']=="vertical"){
  942. // $str.= "<tr> \n";
  943. }
  944. $act=0;
  945. if(islast($ordered,$counter)){
  946. if (($ordered[$counter]['ID']==$active_menu)){$str.= "<li id='sf-".$ordered[$counter]['ID']."' class='current'> \n";$act=1;$activesub=$topcount;}
  947. else{ $str.= "<li id='sf-".$ordered[$counter]['ID']."' > \n"; }
  948. }else{
  949. if (($ordered[$counter]['ID']==$active_menu)){$str.= "<li id='sf-".$ordered[$counter]['ID']."' class='current'> \n";$act=1;$activesub=$topcount;}
  950. else{ $str.= "<li id='sf-".$ordered[$counter]['ID']."' > \n"; }
  951. }
  952. $topcount++;
  953. //echo $ordered[$counter]['URL']."<br />";
  954. switch ($ordered[$counter]['TARGET']) {
  955. // cases are slightly different
  956. case 1:
  957. // open in a new window
  958. if(islast($ordered,$counter)){
  959. $str.= '<a href="'. $ordered[$counter]['URL'] .'" target="_blank" class="item1 last" >'. $name .'</a>';
  960. }else{
  961. $str.= '<a href="'. $ordered[$counter]['URL'] .'" target="_blank" class="item1" >'. $name .'</a>';
  962. }
  963. break;
  964. case 2:
  965. // open in a popup window
  966. if(islast($ordered,$counter)){
  967. $str.= "<a href=\"#\" onclick=\"javascript: window.open('". $ordered[$counter]['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"item1 last\">". $name ."</a>\n";
  968. }else{
  969. $str.= "<a href=\"#\" onclick=\"javascript: window.open('". $ordered[$counter]['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"item1\">". $name ."</a>\n";
  970. }
  971. break;
  972. case 3:
  973. // don't link it
  974. if(islast($ordered,$counter)){
  975. $str.= '<a class="item1 last" >'. $name .'</a>';
  976. }else{
  977. $str.= '<a class="item1" >'. $name .'</a>';
  978. }
  979. break;
  980. default: // formerly case 2
  981. // open in parent window
  982. if(islast($ordered,$counter)){
  983. $str.= "<a href='". $ordered[$counter]['URL'] ."' class='item1 last'>". $name ."</a>\n";
  984. }else{
  985. $str.= "<a href='". $ordered[$counter]['URL'] ."' class='item1'>". $name ."</a>\n";
  986. }
  987. break;
  988. }
  989. if ($counter+1 == $number){
  990. $doSubMenu = 0;
  991. $doMenu = 0;
  992. //$str.= "<div class=\"section\" style=\"border:0 !important;\"></div> \n";
  993. }elseif($ordered[$counter+1]['indent'] == 0){
  994. $doSubMenu = 0;
  995. //$str.= "<div class=\"section\" style=\"border:0 !important;\"></div> \n";
  996. }else{$doSubMenu = 1;}
  997. $counter++;
  998. if($activesub2==-1){$subcounter=0;}
  999. while ($doSubMenu){
  1000. if ($ordered[$counter]['indent'] != 0){
  1001. if ($ordered[$counter]['indent'] > $ordered[$counter-1]['indent']){
  1002. $str.= "<ul class='sf-section' >\n";
  1003. }
  1004. $ordered[$counter]['URL'] = str_replace( '&', '&amp;', $ordered[$counter]['URL'] );
  1005. $name=$ordered[$counter]['TITLE'];
  1006. if (($counter+1 == $number) || ($ordered[$counter+1]['indent'] == 0) ){
  1007. $doSubMenu = 0;
  1008. //$str.= "</li> \n";
  1009. }
  1010. //$style=" style=\"";
  1011. $li_class="";
  1012. $a_class="";
  1013. if (($counter+1 == $number) || islast($ordered,$counter)){
  1014. $a_class.="item2 last";
  1015. }else{
  1016. $a_class.="item2";
  1017. }
  1018. if(($ordered[$counter]['ID']==$Itemid)){
  1019. $li_class="sf-".$ordered[$counter]['ID']."";
  1020. }else{
  1021. $li_class="sf-".$ordered[$counter]['ID']."";
  1022. }
  1023. $str.="<li id=\"".$li_class."\">";
  1024. switch ($ordered[$counter]['TARGET']) {
  1025. // cases are slightly different
  1026. case 1:
  1027. // open in a new window
  1028. $str.= '<a href="'. $ordered[$counter]['URL'] .'" target="_blank" class="'.$a_class.'" >'. $name .'</a>';
  1029. break;
  1030. case 2:
  1031. // open in a popup window
  1032. $str.= "<a href=\"#\" onclick=\"javascript: window.open('". $ordered[$counter]['URL'] ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"".$a_class."\">". $name ."</a>\n";
  1033. break;
  1034. case 3:
  1035. // don't link it
  1036. $str.= '<a class="'.$a_class.'" >'. $name .'</a>';
  1037. break;
  1038. default: // formerly case 2
  1039. // open in parent window
  1040. $str.= "<a href=\"". $ordered[$counter]['URL'] ."\" class=\"".$a_class."\" >". $name ."</a>\n";
  1041. break;
  1042. }
  1043. if (($counter+1 == $number) || ($ordered[$counter+1]['indent'] < $ordered[$counter]['indent'])){
  1044. $str.= "</li> \n";
  1045. $str.= str_repeat("</ul>\n",(($ordered[$counter]['indent'])-(@$ordered[$counter+1]['indent'])));
  1046. //$str.= "</ul> \n";
  1047. }else if (($ordered[$counter+1]['indent'] <= $ordered[$counter]['indent'])){
  1048. $str.= "</li> \n";
  1049. }
  1050. $counter++;
  1051. }
  1052. }
  1053. //$str.= "</li> \n";
  1054. }
  1055. $str.= "</li> \n";
  1056. if ($swmenufree['orientation']=="vertical"){
  1057. //$str.= "</tr> \n";
  1058. }
  1059. if ($counter == ($number)){ $doMenu = 0;}
  1060. }
  1061. //if ($swmenufree['orientation']=="horizontal"){$str.= "</tr> \n";}
  1062. $str.= "<hr /></ul></div> \n";
  1063. if($swmenufree['sub_width']>0){
  1064. $str.="<script type=\"text/javascript\">\n";
  1065. $str.="<!--\n";
  1066. $str.="jQuery.noConflict();\n";
  1067. $str.="jQuery(document).ready(function($){\n";
  1068. $str.="$('.sw-sf').superfish({\n";
  1069. switch ($swmenufree['extra']) {
  1070. // cases are slightly different
  1071. case 1:
  1072. $str.="animation: {opacity:'show'},";
  1073. $str.="speed: ".$swmenufree['specialB'].",";
  1074. break;
  1075. case 2:
  1076. $str.="animation: {height:'show'},";
  1077. $str.="speed: ".$swmenufree['specialB'].",";
  1078. break;
  1079. case 3:
  1080. $str.="animation: {width:'show'},";
  1081. $str.="speed: ".$swmenufree['specialB'].",";
  1082. break;
  1083. case 4:
  1084. $str.="animation: {opacity:'show',height:'show'},";
  1085. $str.="speed: ".$swmenufree['specialB'].",";
  1086. break;
  1087. case 5:
  1088. $str.="animation: {opacity:'show',width:'show'},";
  1089. $str.="speed: ".$swmenufree['specialB'].",";
  1090. break;
  1091. default:
  1092. $str.="speed: 1,";
  1093. break;
  1094. }
  1095. // $str.="animation: {opacity:'show',width:'show'},";
  1096. if($sub_indicator){
  1097. $str.="autoArrows: true\n";
  1098. }else{
  1099. $str.="autoArrows: false\n";
  1100. }
  1101. //$str.="dropShadows: true\n";
  1102. //$str.="pathClass: 'current' \n";
  1103. $str.="});\n";
  1104. if($overlay_hack){
  1105. //$str.="alert($.topZIndex());\n";
  1106. // $str.="$('#left_container').topZIndex();\n";
  1107. $str.="$('.sw-sf').parents().css('overflow','visible');\n";
  1108. $str.="$('html').css('overflow','auto');\n";
  1109. $str.="$('.sw-sf').parents().css('z-index','100');\n";
  1110. $str.="$('.sw-sf').css('z-index','101');\n";
  1111. }
  1112. /// $str.="$('#menu".$uniqueID." ).dropShadow();\n";
  1113. $str.="});\n";
  1114. }else{
  1115. $str.="<script type=\"text/javascript\">\n";
  1116. $str.="<!--\n";
  1117. $str.="jQuery.noConflict();\n";
  1118. //$str.="alert($.topZIndex());\n";
  1119. $str.="jQuery(document).ready(function($){\n";
  1120. $str.="$('.sw-sf').supersubs({ \n";
  1121. $str.="minWidth:8,\n";
  1122. $str.="maxWidth:80,\n";
  1123. $str.="extraWidth:2\n";
  1124. $str.="}).superfish({\n";
  1125. switch ($swmenufree['extra']) {
  1126. // cases are slightly different
  1127. case 1:
  1128. $str.="animation: {opacity:'show'},";
  1129. $str.="speed: ".$swmenufree['specialB'].",";
  1130. break;
  1131. case 2:
  1132. $str.="animation: {height:'show'},";
  1133. $str.="speed: ".$swmenufree['specialB'].",";
  1134. break;
  1135. case 3:
  1136. $str.="animation: {width:'show'},";
  1137. $str.="speed: ".$swmenufree['specialB'].",";
  1138. break;
  1139. case 4:
  1140. $str.="animation: {opacity:'show',height:'show'},";
  1141. $str.="speed: ".$swmenufree['specialB'].",";
  1142. break;
  1143. case 5:
  1144. $str.="animation: {opacity:'show',width:'show'},";
  1145. $str.="speed: ".$swmenufree['specialB'].",";
  1146. break;
  1147. default:
  1148. // $str.="animation: {opacity:'show'},";
  1149. $str.="speed: 1,";
  1150. break;
  1151. }
  1152. //$str.="animation: {opacity:'show',width:'show'},";
  1153. if($sub_indicator){
  1154. $str.="autoArrows: true\n";
  1155. }else{
  1156. $str.="autoArrows: false\n";
  1157. }
  1158. //$str.="dropShadows: true\n";
  1159. //$str.="pathClass: 'current' \n";
  1160. $str.="});\n";
  1161. //$str.="$.fx.off=true;\n";
  1162. if($overlay_hack){
  1163. //$str.="alert($.topZIndex());\n";
  1164. // $str.="$('#left_container').topZIndex();\n";
  1165. $str.="$('.sw-sf').parents().css('overflow','visible');\n";
  1166. $str.="$('html').css('overflow','auto');\n";
  1167. $str.="$('.sw-sf').parents().css('z-index','100');\n";
  1168. $str.="$('.sw-sf').css('z-index','101');\n";
  1169. }
  1170. $str.="});\n";
  1171. }
  1172. $str.= "//--> \n";
  1173. $str.= "</script> \n";
  1174. return $str;

Large files files are truncated, but you can click here to view the full file