PageRenderTime 63ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 1ms

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

https://github.com/viollarr/alab
PHP | 1819 lines | 1484 code | 232 blank | 103 comment | 394 complexity | 8f4ed9e1a005d55607ade2458a46d43e MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0, AGPL-3.0, Apache-2.0, BSD-3-Clause, GPL-3.0

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

  1. <?php
  2. /**
  3. * swmenufree v6.0
  4. * http://swmenufree.com
  5. * Copyright 2006 Sean White
  6. * */
  7. defined('_JEXEC') or die('Restricted access');
  8. function swGetMenuFree($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. $swmenufree_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. $swmenufree_array = swGetMenuLinksFree($menu, $id, $hybrid, $use_table);
  21. $final_menu = get_Final_MenuFree($swmenufree_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. $swmenufree_array = swGetMenuLinksFree($menu, $id, $hybrid, $use_table);
  27. $final_menu = get_Final_MenuFree($swmenufree_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. $swmenufree_array = swGetMenuLinksFree($menu, $id, $hybrid, $use_table);
  39. $final_menu = get_Final_MenuFree($swmenufree_array, $parent_id, $levels);
  40. }
  41. return $final_menu;
  42. }
  43. function get_Final_MenuFree($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 = chainFree('ID', 'PARENT', 'ORDER', $final_menu, $parent_id, 25);
  63. } else {
  64. $final_menu = array();
  65. }
  66. return $final_menu;
  67. }
  68. function swGetMenuLinksFree($menu, $id, $hybrid, $use_tables) {
  69. global $lang, $database, $my, $absolute_path, $offset,$Itemid;
  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" || $menu == "virtueprod") {
  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=" . ($Itemid) . "&swid=" . ($result2->category_id + 10000);
  141. $swmenufree_array[] = array(
  142. "TITLE" => $result2->category_name,
  143. "URL" => $url,
  144. "ID" => ($result2->category_id + 10000),
  145. "SECURE" => 0,
  146. "PARENT" => ($result2->category_parent_id ? (($result2->category_parent_id + 10000)) : 0),
  147. "ORDER" => $result2->list_order,
  148. "TARGET" => 0,
  149. "ACCESS" => 0,
  150. );
  151. if ($menu == "virtueprod") {
  152. $sql = "SELECT #__vm_product.* ,#__vm_product_category_xref.*
  153. FROM #__vm_product
  154. INNER JOIN #__vm_product_category_xref ON #__vm_product_category_xref.product_id= #__vm_product.product_id
  155. AND #__vm_product.product_publish = 'Y'
  156. AND #__vm_product_category_xref.category_id = $result2->category_id
  157. ";
  158. $database->setQuery($sql);
  159. $result3 = $database->loadObjectList();
  160. for ($j = 0; $j < count($result3); $j++) {
  161. $result4 = $result3[$j];
  162. $url = "index.php?option=com_virtuemart&page=shop.product_details&flypage=shop.flypage&product_id=" . $result4->product_id . "&category_id=" . $result4->category_id . "&manufacturer_id=" . $result4->vendor_id . "&Itemid=" . ($Itemid) . "&swid=" . ($result4->product_id + 100000);
  163. $swmenufree_array[] = array(
  164. "TITLE" => $result4->product_name,
  165. "URL" => $url,
  166. "ID" => ($result4->product_id + 100000),
  167. "SECURE" => 0,
  168. "PARENT" => ($result2->category_id ? (($result2->category_id + 10000)) : 0),
  169. "ORDER" => $result2->list_order,
  170. "TARGET" => 0,
  171. "ACCESS" => 0,
  172. );
  173. }
  174. }
  175. }
  176. } else if ($menu == "virtuemart2" || $menu == "virtueprod2") {
  177. $sql = "SELECT #__virtuemart_categories_en_gb.* ,#__virtuemart_category_categories.*,#__virtuemart_categories.*
  178. FROM #__virtuemart_categories,#__virtuemart_categories_en_gb
  179. INNER JOIN #__virtuemart_category_categories ON #__virtuemart_category_categories.category_child_id= #__virtuemart_categories_en_gb.virtuemart_category_id
  180. WHERE #__virtuemart_categories.virtuemart_category_id=#__virtuemart_categories_en_gb.virtuemart_category_id
  181. AND #__virtuemart_categories.published='1'
  182. ORDER BY #__virtuemart_categories.ordering
  183. ";
  184. $database->setQuery($sql);
  185. $result = $database->loadObjectList();
  186. for ($i = 0; $i < count($result); $i++) {
  187. $result2 = $result[$i];
  188. $url = "index.php?option=com_virtuemart&view=category&virtuemart_category_id=" . $result2->virtuemart_category_id ;
  189. $swmenufree_array[] = array(
  190. "TITLE" => $result2->category_name,
  191. "URL" => $url,
  192. "ID" => ($result2->virtuemart_category_id + 10000),
  193. "SECURE" => 0,
  194. "PARENT" => ($result2->category_parent_id ? (($result2->category_parent_id + 10000)) : 0),
  195. "ORDER" => $result2->ordering,
  196. "TARGET" => 0,
  197. "ACCESS" => 0,
  198. );
  199. if ($menu == "virtueprod2") {
  200. $sql = "SELECT #__virtuemart_products_en_gb.* ,#__virtuemart_product_categories.*,#__virtuemart_products.*
  201. FROM #__virtuemart_products,#__virtuemart_products_en_gb
  202. INNER JOIN #__virtuemart_product_categories ON #__virtuemart_product_categories.virtuemart_product_id= #__virtuemart_products_en_gb.virtuemart_product_id
  203. WHERE #__virtuemart_products.virtuemart_product_id=#__virtuemart_products_en_gb.virtuemart_product_id
  204. AND #__virtuemart_product_categories.virtuemart_category_id = $result2->virtuemart_category_id
  205. AND #__virtuemart_products.published='1'
  206. ";
  207. $database->setQuery($sql);
  208. $result3 = $database->loadObjectList();
  209. // echo count($result3);
  210. for ($j = 0; $j < count($result3); $j++) {
  211. $result4 = $result3[$j];
  212. $url = "index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=" . $result4->virtuemart_product_id . "&virtuemart_category_id=" . $result4->virtuemart_category_id;
  213. $swmenufree_array[] = array(
  214. "TITLE" => $result4->product_name,
  215. "URL" => $url,
  216. "ID" => ($result4->virtuemart_product_id + 100000),
  217. "SECURE" => 0,
  218. "PARENT" => ($result2->virtuemart_category_id ? (($result2->virtuemart_category_id + 10000)) : 0),
  219. "ORDER" => $result2->ordering,
  220. "TARGET" => 0,
  221. "ACCESS" => 0,
  222. );
  223. }
  224. }
  225. }
  226. } else {
  227. if ($hybrid) {
  228. $sql = "SELECT #__content.*
  229. FROM #__content
  230. INNER JOIN #__categories ON #__content.catid = #__categories.id
  231. AND #__content.state = 1
  232. AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
  233. AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
  234. ORDER BY #__content.catid,#__content.ordering
  235. ";
  236. $database->setQuery($sql);
  237. $hybrid_content = $database->loadObjectList();
  238. $sql = "SELECT #__categories.*
  239. FROM #__categories
  240. WHERE #__categories.published = 1
  241. ORDER BY #__categories.ordering
  242. ";
  243. $database->setQuery($sql);
  244. $hybrid_cat = $database->loadObjectList();
  245. }
  246. $sql = "SELECT #__menu.*
  247. FROM #__menu
  248. WHERE #__menu.menutype = '" . $menu . "' AND published = '1'
  249. ORDER BY parent, ordering
  250. ";
  251. $database->setQuery($sql);
  252. $result = $database->loadObjectList();
  253. $swmenufree_array = array();
  254. for ($i = 0; $i < count($result); $i++) {
  255. $result2 = $result[$i];
  256. switch ($result2->type) {
  257. case 'separator';
  258. $mylink = "javascript:void(0);";
  259. break;
  260. case 'url':
  261. $mylink = $result2->link;
  262. if (preg_match("/index.php\?/i", $result2->link)) {
  263. if (!preg_match("/Itemid=/i", $result2->link)) {
  264. $mylink .= "&Itemid=$result2->id";
  265. }
  266. }
  267. break;
  268. case 'menulink';
  269. $mylink = $result2->link;
  270. break;
  271. default:
  272. $mylink = "index.php?Itemid=" . $result2->id;
  273. break;
  274. }
  275. $swmenufree_array[] = array("TITLE" => $result2->name, "URL" => $mylink, "ID" => $result2->id, "PARENT" => $result2->parent, "ORDER" => $result2->ordering, "TARGET" => $result2->browserNav, "ACCESS" => $result2->access);
  276. if ($hybrid) {
  277. $opt = array();
  278. parse_str($result2->link, $opt);
  279. $opt['view'] = @$opt['view'] ? $opt['view'] : 0;
  280. $opt['id'] = @$opt['id'] ? $opt['id'] : 0;
  281. if ($opt['view'] == "blogcategory" || $opt['view'] == "category") {
  282. for ($j = 0; $j < count($hybrid_content); $j++) {
  283. $row = $hybrid_content[$j];
  284. if ($row->catid == $opt['id']) {
  285. $url = "index.php?option=com_content&view=article&catid=" . $row->catid . "&id=" . $row->id . "&Itemid=" . $result2->id;
  286. $swmenufree_array[] = array("TITLE" => $row->title, "URL" => $url, "ID" => $row->id + 100000, "PARENT" => $result2->id, "ORDER" => $row->ordering, "TARGET" => 0, "ACCESS" => $row->access);
  287. }
  288. }
  289. } else if ($opt['view'] == "blogsection" || $opt['view'] == "section") {
  290. //echo "hello";
  291. for ($j = 0; $j < count($hybrid_cat); $j++) {
  292. $row = $hybrid_cat[$j];
  293. if ($row->section == $opt['id'] && $opt['id']) {
  294. //$j=count($hybrid_cat);
  295. if ($use_tables) {
  296. $url = "index.php?option=com_content&view=category&id=" . $row->id . "&Itemid=" . $result2->id;
  297. } else {
  298. $url = "index.php?option=com_content&view=category&layout=blog&id=" . $row->id . "&Itemid=" . $result2->id;
  299. }
  300. $swmenufree_array[] = array("TITLE" => $row->title, "URL" => $url, "ID" => $row->id + 10000, "PARENT" => $result2->id, "ORDER" => $row->ordering, "TARGET" => 0, "ACCESS" => $row->access);
  301. for ($k = 0; $k < count($hybrid_content); $k++) {
  302. $row2 = $hybrid_content[$k];
  303. if ($row2->catid == $row->id) {
  304. $url = "index.php?option=com_content&view=article&catid=" . $row->id . "&id=" . $row2->id . "&Itemid=" . $result2->id;
  305. $swmenufree_array[] = array("TITLE" => $row2->title, "URL" => $url, "ID" => $row2->id + 100000, "PARENT" => $row->id + 10000, "ORDER" => $row2->ordering, "TARGET" => 0, "ACCESS" => $row2->access);
  306. }
  307. }
  308. }
  309. }
  310. }
  311. }
  312. }
  313. }
  314. return $swmenufree_array;
  315. }
  316. function chainFree($primary_field, $parent_field, $sort_field, $rows, $root_id = 0, $maxlevel = 25) {
  317. $c = new chainFree($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel);
  318. return $c->chainFreemenu_table;
  319. }
  320. class chainFree {
  321. var $table;
  322. var $rows;
  323. var $chainFreemenu_table;
  324. var $primary_field;
  325. var $parent_field;
  326. var $sort_field;
  327. function chainFree($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel) {
  328. $this->rows = $rows;
  329. $this->primary_field = $primary_field;
  330. $this->parent_field = $parent_field;
  331. $this->sort_field = $sort_field;
  332. $this->buildchainFree($root_id, $maxlevel);
  333. }
  334. function buildchainFree($rootcatid, $maxlevel) {
  335. foreach ($this->rows as $row) {
  336. $this->table[$row[$this->parent_field]][$row[$this->primary_field]] = $row;
  337. }
  338. $this->makeBranch($rootcatid, 0, $maxlevel);
  339. }
  340. function makeBranch($parent_id, $level, $maxlevel) {
  341. $rows = $this->table[$parent_id];
  342. $key_array1 = array_keys($rows);
  343. $key_array_size1 = sizeOf($key_array1);
  344. //for ($j=0;$j<$key_array_size1;$j++)
  345. foreach ($rows as $key => $value) {
  346. //$key = $key_array1[$j];
  347. $rows[$key]['key'] = $this->sort_field;
  348. }
  349. usort($rows, 'chainFreemenuCMP');
  350. $row_array = array_values($rows);
  351. $row_array_size = sizeOf($row_array);
  352. $i = 0;
  353. foreach ($rows as $item) {
  354. //$item = $row_array[$i];
  355. $item['ORDER'] = ($i + 1);
  356. $item['indent'] = $level;
  357. $i++;
  358. $this->chainFreemenu_table[] = $item;
  359. if ((isset($this->table[$item[$this->primary_field]])) && (($maxlevel > $level + 1) || ($maxlevel == 0))) {
  360. $this->makeBranch($item[$this->primary_field], $level + 1, $maxlevel);
  361. }
  362. }
  363. }
  364. }
  365. function chainFreemenuCMP($a, $b) {
  366. if ($a[$a['key']] == $b[$b['key']]) {
  367. return 0;
  368. }
  369. return($a[$a['key']] < $b[$b['key']]) ? -1 : 1;
  370. }
  371. function transMenuFree($ordered, $swmenufree, $active_menu, $sub_indicator, $parent_id, $selectbox_hack, $auto_position, $overlay_hack) {
  372. global $mainframe;
  373. $live_site = $mainframe->isAdmin() ? $mainframe->getSiteURL() : JURI::base();
  374. if (substr($live_site, (strlen($live_site) - 1), 1) == "/") {
  375. $live_site = substr($live_site, 0, (strlen($live_site) - 1));
  376. }
  377. $str = "";
  378. $name = "";
  379. $topcounter = 0;
  380. $counter = 0;
  381. $number = count(chainFree('ID', 'PARENT', 'ORDER', $ordered, $parent_id, 1));
  382. $registry = new JRegistry();
  383. $registry->loadINI($swmenufree['sub_indicator']);
  384. $sub_indicator = $registry->toObject();
  385. $top_sub_indicator = $sub_indicator->top_sub_indicator ? $sub_indicator->top_sub_indicator : '';
  386. $sub_sub_indicator = $sub_indicator->sub_sub_indicator ? $sub_indicator->sub_sub_indicator : '';
  387. $sub_indicator_align = $sub_indicator->sub_indicator_align ? $sub_indicator->sub_indicator_align : 'left';
  388. $sub_indicator_top = $sub_indicator->sub_indicator_top ? $sub_indicator->sub_indicator_top : 0;
  389. $sub_indicator_left = $sub_indicator->sub_indicator_left ? $sub_indicator->sub_indicator_left : 0;
  390. $str .= "<table id=\"menu_wrap\" class=\"swmenu\" align=\"" . $swmenufree['position'] . "\"><tr><td id=\"td_menu_wrap\" class=\"td_menu_wrap\">\n";
  391. $str .= "<table cellspacing=\"0\" cellpadding=\"0\" id=\"swmenu\" class=\"swmenu\" > \n";
  392. if (substr($swmenufree['orientation'], 0, 10) == "horizontal") {
  393. $str.= "<tr> \n";
  394. }
  395. foreach ($ordered as $top) {
  396. if ($top['indent'] == 0) {
  397. $top['URL'] = str_replace('&', '&amp;', $top['URL']);
  398. $topcounter++;
  399. $name = $top['TITLE'];
  400. if (substr($swmenufree['orientation'], 0, 8) == "vertical") {
  401. $str.= "<tr> \n";
  402. }
  403. if (($topcounter == $number) && ($top["ID"] == $active_menu)) {
  404. $str.= "<td id=\"trans-active\" class='last'> \n";
  405. } else if ($top["ID"] == $active_menu) {
  406. $str.= "<td id='trans-active'> \n";
  407. } else if ($topcounter == $number) {
  408. $str.= "<td class=\"last\"> \n";
  409. } else {
  410. $str.= "<td> \n";
  411. }
  412. if ((@$ordered[$counter + 1]['indent'] > $top['indent']) && $top_sub_indicator) {
  413. $name = "<img src='" . $live_site . $top_sub_indicator . "' align='" . $sub_indicator_align . "' style='position:relative;left:" . $sub_indicator_left . "px;top:" . $sub_indicator_top . "px;' alt='' border='0' />" . $name;
  414. }
  415. switch ($top['TARGET']) {
  416. // cases are slightly different
  417. case 1:
  418. // open in a new window
  419. $str.= '<a id="menu' . $top['ID'] . '" href="' . $top['URL'] . '" target="_blank" >' . $name . '</a>' . "\n";
  420. break;
  421. case 2:
  422. // open in a popup window
  423. $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";
  424. break;
  425. case 3:
  426. // don't link it
  427. $str.= '<a id="menu' . $top['ID'] . '" >' . $name . '</a>' . "\n";
  428. break;
  429. default: // formerly case 2
  430. $str.= '<a id="menu' . $top['ID'] . '" href="' . $top['URL'] . '" >';
  431. $str.= $name . '</a>' . "\n";
  432. break;
  433. }
  434. //$counter++;
  435. $str.= "</td> \n";
  436. if (substr($swmenufree['orientation'], 0, 8) == "vertical") {
  437. $str.= "</tr> \n";
  438. }
  439. }
  440. $counter++;
  441. }
  442. if (substr($swmenufree['orientation'], 0, 10) == "horizontal") {
  443. $str.= "</tr> \n";
  444. }
  445. $str .= "</table></td></tr></table><hr style=\"display:block;clear:left;margin:-0.66em 0;visibility:hidden;\" /> \n";
  446. $str.= "<div id=\"subwrap\"> \n";
  447. $str.="<script type=\"text/javascript\">\n";
  448. $str.="<!--\n";
  449. $str.="if (TransMenu.isSupported()) {\n";
  450. if ($swmenufree['orientation'] == "horizontal/down") {
  451. $str.= "var ms = new TransMenuSet(TransMenu.direction.down, " . $swmenufree['level1_sub_left'] . "," . $swmenufree['level1_sub_top'] . ", TransMenu.reference.bottomLeft);\n";
  452. } elseif ($swmenufree['orientation'] == "horizontal/up") {
  453. $str.= "var ms = new TransMenuSet(TransMenu.direction.up, " . $swmenufree['level1_sub_left'] . ", " . $swmenufree['level1_sub_top'] . ", TransMenu.reference.topLeft);\n";
  454. } elseif ($swmenufree['orientation'] == "horizontal/left") {
  455. $str.= "var ms = new TransMenuSet(TransMenu.direction.dleft, " . $swmenufree['level1_sub_left'] . "," . $swmenufree['level1_sub_top'] . ", TransMenu.reference.bottomRight);\n";
  456. } elseif ($swmenufree['orientation'] == "vertical/right") {
  457. $str.= "var ms = new TransMenuSet(TransMenu.direction.right, " . $swmenufree['level1_sub_left'] . ", " . $swmenufree['level1_sub_top'] . ", TransMenu.reference.topRight);\n";
  458. } elseif ($swmenufree['orientation'] == "vertical/left") {
  459. $str.= "var ms = new TransMenuSet(TransMenu.direction.left, " . $swmenufree['level1_sub_left'] . ", " . $swmenufree['level1_sub_top'] . ", TransMenu.reference.topLeft);\n";
  460. } elseif ($swmenufree['orientation'] == "vertical") {
  461. $str.= "var ms = new TransMenuSet(TransMenu.direction.right, " . $swmenufree['level1_sub_left'] . ", " . $swmenufree['level1_sub_top'] . ", TransMenu.reference.topRight);\n";
  462. } elseif ($swmenufree['orientation'] == "horizontal") {
  463. $str.= "var ms = new TransMenuSet(TransMenu.direction.down, " . $swmenufree['level1_sub_left'] . ", " . $swmenufree['level1_sub_top'] . ", TransMenu.reference.bottomLeft);\n";
  464. }
  465. $par = $ordered[0];
  466. foreach ($ordered as $sub) {
  467. $name = $sub['TITLE'];
  468. $sub2 = next($ordered);
  469. if ($sub['TARGET'] == "3") {
  470. $sub['TARGET'] = 0;
  471. $sub['URL'] = "javascript:void(0);";
  472. }
  473. if (($sub['indent'] == 0) && (($sub2['indent']) == 1)) {
  474. $str.= "var menu" . $sub['ID'] . " = ms.addMenu(document.getElementById(\"menu" . $sub['ID'] . "\"));\n ";
  475. } else if (($sub['ORDER'] == 1) && ($sub['indent'] > 1)) {
  476. $str.= "var menu" . ($sub['ID']) . " = menu" . findParFree($ordered, $par) . ".addMenu(menu" . findParFree($ordered, $par) . ".items[" . ($par['ORDER'] - 1) . "]," . $swmenufree['level2_sub_left'] . "," . $swmenufree['level2_sub_top'] . ");\n";
  477. }
  478. if ($sub['indent'] > 0) {
  479. $str.= "menu" . findParFree($ordered, $sub) . ".addItem(\"" . addslashes($name) . "\", \"" . addslashes($sub['URL']) . "\", \"" . $sub['TARGET'] . "\");\n";
  480. }
  481. $par = $sub;
  482. }
  483. if ($swmenufree['top_ttf']) {
  484. $registry = new JRegistry();
  485. $registry->loadINI($swmenufree['top_ttf']);
  486. $params = $registry->toObject();
  487. $topfontface = @$params->fontFace ? $params->fontFace : 'none';
  488. } else {
  489. $topfontface = "";
  490. }
  491. $str.="function init() {\n";
  492. $str.="if (TransMenu.isSupported()) {\n";
  493. $str.="TransMenu.initialize();\n";
  494. $counter = 0;
  495. for ($i = 0; $i < count($ordered); $i++) {
  496. if ($ordered[$i]['indent'] == 0) {
  497. $counter++;
  498. if (@$ordered[$i + 1]['indent'] == 1) {
  499. $str.= "menu" . ($ordered[$i]['ID']) . ".onactivate = function() {document.getElementById(\"menu" . $ordered[$i]['ID'] . "\").className = \"hover\"; };\n ";
  500. $str.= "menu" . ($ordered[$i]['ID']) . ".ondeactivate = function() {document.getElementById(\"menu" . $ordered[$i]['ID'] . "\").className = \"\"; };\n ";
  501. } else {
  502. $str.= "document.getElementById(\"menu" . $ordered[$i]['ID'] . "\").onmouseover = function() {\n";
  503. $str.= "ms.hideCurrent();\n";
  504. $str.= "this.className = \"hover\";\n";
  505. $str.= "}\n";
  506. $str.= "document.getElementById(\"menu" . $ordered[$i]['ID'] . "\").onmouseout = function() { this.className = \"\"; }\n";
  507. }
  508. }
  509. }
  510. $str.="}}\n";
  511. if ($sub_sub_indicator) {
  512. $str.="TransMenu.spacerGif = \"" . $live_site . "/modules/mod_swmenufree/images/transmenu/x.gif\";\n";
  513. $str.="TransMenu.dingbatOn = \"" . $live_site . $sub_sub_indicator . "\";\n";
  514. $str.="TransMenu.dingbatOff = \"" . $live_site . $sub_sub_indicator . "\"; \n";
  515. $str.="TransMenu.sub_indicator = true; \n";
  516. } else {
  517. $str.="TransMenu.dingbatSize = 0;\n";
  518. $str.="TransMenu.spacerGif = \"\";\n";
  519. $str.="TransMenu.dingbatOn = \"\";\n";
  520. $str.="TransMenu.dingbatOff = \"\"; \n";
  521. $str.="TransMenu.sub_indicator = false;\n";
  522. }
  523. $str.="TransMenu.menuPadding = 0;\n";
  524. $str.="TransMenu.itemPadding = 0;\n";
  525. $str.="TransMenu.shadowSize = 2;\n";
  526. $str.="TransMenu.shadowOffset = 3;\n";
  527. $str.="TransMenu.shadowColor = \"#888\";\n";
  528. $str.="TransMenu.shadowPng = \"" . $live_site . "/modules/mod_swmenufree/images/transmenu/grey-40.png\";\n";
  529. $str.="TransMenu.backgroundColor = \"" . $swmenufree['sub_back'] . "\";\n";
  530. $str.="TransMenu.backgroundPng = \"" . $live_site . "/modules/mod_swmenufree/images/transmenu/white-90.png\";\n";
  531. $str.="TransMenu.hideDelay = " . ($swmenufree['specialB'] * 2) . ";\n";
  532. $str.="TransMenu.slideTime = " . $swmenufree['specialB'] . ";\n";
  533. $str .= "TransMenu.selecthack = " . $selectbox_hack . ";\n";
  534. $str .= "TransMenu.autoposition = " . $auto_position . ";\n";
  535. $str .= "TransMenu.fontFace = \"" . $topfontface . "\";\n";
  536. $str .= "TransMenu.fontColor = \"" . $swmenufree['main_font_color'] . "\";\n";
  537. // $str .= "TransMenu.activeId = \"" . $active_id . "\";\n";
  538. // $str .= "TransMenu.preview = \"" . $preview . "\";\n";
  539. $str .= "TransMenu.renderAll();\n";
  540. $str.="if ( typeof window.addEventListener != \"undefined\" )\n";
  541. $str.="window.addEventListener( \"load\", init, false );\n";
  542. $str.="else if ( typeof window.attachEvent != \"undefined\" ) {\n";
  543. $str.="window.attachEvent( \"onload\", init);\n";
  544. $str.="}else{\n";
  545. $str.="if ( window.onload != null ) {\n";
  546. $str.="var oldOnload = window.onload;\n";
  547. $str.="window.onload = function ( e ) {\n";
  548. $str.="oldOnload( e );\n";
  549. $str.="init();\n";
  550. $str.="}\n}else\n";
  551. $str.="window.onload = init();\n";
  552. $str.="}\n}\n\n";
  553. $border1 = explode(" ", $swmenufree['main_border']);
  554. $border2 = explode(" ", $swmenufree['sub_border']);
  555. $border1[0] = rtrim(trim($border1[0]), 'px');
  556. $border2[0] = rtrim(trim($border2[0]), 'px');
  557. $border1[1] = trim($border1[1]);
  558. $border2[1] = trim($border2[1]);
  559. $border1[2] = trim($border1[2]);
  560. $border2[2] = trim($border2[2]);
  561. $border3 = explode(" ", $swmenufree['main_border_over']);
  562. $border4 = explode(" ", $swmenufree['sub_border_over']);
  563. $border3[0] = rtrim(trim($border3[0]), 'px');
  564. $border4[0] = rtrim(trim($border4[0]), 'px');
  565. $border3[1] = trim($border3[1]);
  566. $border4[1] = trim($border4[1]);
  567. $border3[2] = trim($border3[2]);
  568. $border4[2] = trim($border4[2]);
  569. if ($swmenufree['corners']) {
  570. $registry = new JRegistry();
  571. $registry->loadINI($swmenufree['corners']);
  572. $params = $registry->toObject();
  573. $c_corner_style = @$params->c_corner_style ? $params->c_corner_style : 0;
  574. if (($c_corner_style != 'none') && $c_corner_style) {
  575. $c_corner_size = @$params->c_corner_size ? $params->c_corner_size : 10;
  576. $ctl_corner = @$params->ctl_corner ? $params->ctl_corner : 0;
  577. $ctr_corner = @$params->ctr_corner ? $params->ctr_corner : 0;
  578. $cbl_corner = @$params->cbl_corner ? $params->cbl_corner : 0;
  579. $cbr_corner = @$params->cbr_corner ? $params->cbr_corner : 0;
  580. if (($border1[0] > 0) && ($border1[1] != 'none')) {
  581. $str .= "if (jQuery.browser.msie) {\n";
  582. // $str .= "jQuery('#menu_wrap').css('z-index','-1');\n";
  583. // $str .= "jQuery('#td_menu_wrap').css('z-index','-1');\n";
  584. // $str .= "jQuery('#td_menu_wrap').css('position','relative');\n";
  585. $str .= "}\n";
  586. // $str .= "jQuery('#outertable').css('border', '0');\n";
  587. $str .= "jQuery('#td_menu_wrap').css('border', '0');\n";
  588. $str .= "jQuery('#menu_wrap').wrap('<table ><tr><td id=\"#swwmenu_wrap\"></td></tr></table>');\n";
  589. $str .= "jQuery('#menu_wrap').parent().css('background-color', '" . $border1[2] . "');\n";
  590. //$str .= "jQuery('#menu_wrap').parent().css('position', 'relative');\n";
  591. // $str .= "jQuery('#menu_wrap').parent().position({left:" . $swmenufree['main_left'] . "});\n";
  592. $str .= "jQuery('#menu_wrap').parent().css('padding', '" . $border1[0] . "px');\n";
  593. $str .= "jQuery('#menu_wrap').parent().corner('" . $c_corner_style . " " . ($ctl_corner ? 'tl' : '') . " " . ($ctr_corner ? 'tr' : '') . " " . ($cbl_corner ? 'bl' : '') . " " . ($cbr_corner ? 'br' : '') . " " . ($c_corner_size + $border1[0]) . "px');\n";
  594. //$str .= "jQuery('#td_menu_wrap').css('z-index','1');\n";
  595. }
  596. //$str .= "jQuery('#wrap').wrap('<div></div>');\n";
  597. //$str .= "jQuery('#td_menu_wrap').css('z-index','-1');\n";
  598. $str .= "jQuery('#td_menu_wrap ').corner('" . $c_corner_style . " " . ($ctl_corner ? 'tl' : '') . " " . ($ctr_corner ? 'tr' : '') . " " . ($cbl_corner ? 'bl' : '') . " " . ($cbr_corner ? 'br' : '') . " " . $c_corner_size . "px');\n";
  599. // $str .= "jQuery('div#wrap').css('position','absolute');\n";
  600. }
  601. $t_corner_style = @$params->t_corner_style ? $params->t_corner_style : 0;
  602. if (($t_corner_style != 'none') && $t_corner_style) {
  603. $t_corner_size = @$params->t_corner_size ? $params->t_corner_size : 10;
  604. $ttl_corner = @$params->ttl_corner ? $params->ttl_corner : 0;
  605. $ttr_corner = @$params->ttr_corner ? $params->ttr_corner : 0;
  606. $tbl_corner = @$params->tbl_corner ? $params->tbl_corner : 0;
  607. $tbr_corner = @$params->tbr_corner ? $params->tbr_corner : 0;
  608. $str .= "jQuery('#menu_wrap a').corner('" . $t_corner_style . " " . ($ttl_corner ? 'tl' : '') . " " . ($ttr_corner ? 'tr' : '') . " " . ($tbl_corner ? 'bl' : '') . " " . ($tbr_corner ? 'br' : '') . " " . $t_corner_size . "px');\n";
  609. }
  610. $s_corner_style = @$params->s_corner_style ? $params->s_corner_style : 0;
  611. if (($s_corner_style != 'none') && $s_corner_style) {
  612. $s_corner_size = @$params->s_corner_size ? $params->s_corner_size : 10;
  613. $stl_corner = @$params->stl_corner ? $params->stl_corner : 0;
  614. $str_corner = @$params->str_corner ? $params->str_corner : 0;
  615. $sbl_corner = @$params->sbl_corner ? $params->sbl_corner : 0;
  616. $sbr_corner = @$params->sbr_corner ? $params->sbr_corner : 0;
  617. $str .= "jQuery('#subwrap .background').corner('" . $s_corner_style . " " . ($stl_corner ? 'tl' : '') . " " . ($str_corner ? 'tr' : '') . " " . ($sbl_corner ? 'bl' : '') . " " . ($sbr_corner ? 'br' : '') . " " . $s_corner_size . "px');\n";
  618. $str .= "jQuery('#subwrap .item.hover td ').corner('" . $s_corner_style . " " . ($stl_corner ? 'tl' : '') . " " . ($str_corner ? 'tr' : '') . " " . ($sbl_corner ? 'bl' : '') . " " . ($sbr_corner ? 'br' : '') . " " . $s_corner_size . "px');\n";
  619. }
  620. }
  621. if ($swmenufree['top_ttf']) {
  622. $registry = new JRegistry();
  623. $registry->loadINI($swmenufree['top_ttf']);
  624. $params = $registry->toObject();
  625. $topfontface = @$params->fontFace ? $params->fontFace : 'none';
  626. $str .= "Cufon.replace('table.swmenu a',{hover: true, fontFamily: '" . $topfontface . "' });\n";
  627. }
  628. if ($swmenufree['sub_ttf']) {
  629. $registry = new JRegistry();
  630. $registry->loadINI($swmenufree['sub_ttf']);
  631. $params = $registry->toObject();
  632. $subfontface = @$params->fontFace ? $params->fontFace : 'none';
  633. $str .= "Cufon.replace('#subwrap .item ',{hover: true, fontFamily: '" . $subfontface . "' });\n";
  634. }
  635. if ($overlay_hack) {
  636. $str .= "jQuery(document).ready(function($){\n";
  637. $str .= "jQuery('#menu_wrap').parents().css('overflow','visible');\n";
  638. $str .= "jQuery('html').css('overflow','auto');\n";
  639. $str .= "jQuery('#menu_wrap').parents().css('z-index','1');\n";
  640. $str .= "jQuery('#menu_wrap').css('z-index','101');\n";
  641. $str .= "});\n";
  642. }
  643. $str .= "//--> \n";
  644. $str .= "</script></div> \n";
  645. return $str;
  646. }
  647. function findParFree($ordered, $sub) {
  648. $submenu = chainFree('ID', 'PARENT', 'ORDER', $ordered, $sub['PARENT'], 1);
  649. if ($sub['indent'] == 1) {
  650. return $submenu[0]['PARENT'];
  651. } else {
  652. return $submenu[0]['ID'];
  653. }
  654. }
  655. function GosuMenuFree($ordered, $swmenufree, $active_menu, $selectbox_hack, $auto_position, $overlay_hack) {
  656. global $mainframe, $Itemid;
  657. $absolute_path = JPATH_ROOT;
  658. $live_site = $mainframe->isAdmin() ? $mainframe->getSiteURL() : JURI::base();
  659. if (substr($live_site, (strlen($live_site) - 1), 1) == "/") {
  660. $live_site = substr($live_site, 0, (strlen($live_site) - 1));
  661. }
  662. $sub_active = 0;
  663. $name = "";
  664. $counter = 0;
  665. $doMenu = 1;
  666. $uniqueID = $swmenufree['id'];
  667. $number = count($ordered);
  668. $activesub = -1;
  669. $activesub2 = -1;
  670. $topcount = 0;
  671. $subcounter = 0;
  672. $registry = new JRegistry();
  673. $registry->loadINI($swmenufree['sub_indicator']);
  674. $sub_indicator = $registry->toObject();
  675. $top_sub_indicator = $sub_indicator->top_sub_indicator ? $sub_indicator->top_sub_indicator : '';
  676. $sub_sub_indicator = $sub_indicator->sub_sub_indicator ? $sub_indicator->sub_sub_indicator : '';
  677. $sub_indicator_align = $sub_indicator->sub_indicator_align ? $sub_indicator->sub_indicator_align : 'left';
  678. $sub_indicator_top = $sub_indicator->sub_indicator_top ? $sub_indicator->sub_indicator_top : 0;
  679. $sub_indicator_left = $sub_indicator->sub_indicator_left ? $sub_indicator->sub_indicator_left : 0;
  680. $str = "<table id=\"outertable\" align=\"" . $swmenufree['position'] . "\" class=\"outer\"><tr><td><div id=\"outerwrap\">\n";
  681. $str .= "<table cellspacing=\"0\" border=\"0\" cellpadding=\"0\" id=\"menu\" class=\"ddmx\" > \n";
  682. if ($swmenufree['orientation'] == "horizontal/down" || $swmenufree['orientation'] == "horizontal" || $swmenufree['orientation'] == "horizontal/left" || $swmenufree['orientation'] == "horizontal/up") {
  683. $str .= "<tr> \n";
  684. }
  685. while ($doMenu) {
  686. if ($ordered[$counter]['indent'] == 0) {
  687. $ordered[$counter]['URL'] = str_replace('&', '&amp;', $ordered[$counter]['URL']);
  688. $name = ($ordered[$counter]['TITLE']);
  689. if ($swmenufree['orientation'] == "vertical/right" || $swmenufree['orientation'] == "vertical" || $swmenufree['orientation'] == "vertical/left") {
  690. $str .= "<tr> \n";
  691. }
  692. $act = 0;
  693. if (islastFree($ordered, $counter)) {
  694. if (($ordered[$counter]['ID'] == $active_menu)) {
  695. $str .= "<td class='item11 acton last'> \n";
  696. $act = 1;
  697. $activesub = $topcount;
  698. } else {
  699. $str .= "<td class='item11 last'> \n";
  700. }
  701. } else {
  702. if (($ordered[$counter]['ID'] == $active_menu)) {
  703. $str .= "<td class='item11 acton'> \n";
  704. $act = 1;
  705. $activesub = $topcount;
  706. } else {
  707. $str .= "<td class='item11'> \n";
  708. }
  709. }
  710. $topcount++;
  711. // echo $top_sub_indicator;
  712. $classname = "item1";
  713. if ($ordered[$counter]['indent'] > @$ordered[$counter - 1]['indent']) {
  714. $classname .= " first";
  715. }
  716. if (($counter + 1 == $number) || islastFree($ordered, $counter)) {
  717. $classname .= " last";
  718. }
  719. if (($counter + 1 != $number) && ($ordered[$counter + 1]['indent'] > $ordered[$counter]['indent']) && $top_sub_indicator) {
  720. $name = "<img src='" . $live_site . $top_sub_indicator . "' align='" . $sub_indicator_align . "' style='position:relative;left:" . $sub_indicator_left . "px;top:" . $sub_indicator_top . "px;' alt='' />" . $name;
  721. }
  722. switch ($ordered[$counter]['TARGET']) {
  723. case 1:
  724. $str .= '<a href="' . $ordered[$counter]['URL'] . '" target="_blank" class="' . $classname . '" >' . $name . '</a>';
  725. break;
  726. case 2:
  727. $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='" . $classname . "'>" . $name . "</a>\n";
  728. break;
  729. case 3:
  730. $str .= '<a class="' . $classname . '" >' . $name . '</a>';
  731. break;
  732. default:
  733. $str .= '<a href="' . $ordered[$counter]['URL'] . '" class="' . $classname . '">' . $name . '</a>';
  734. break;
  735. }
  736. if ($counter + 1 == $number) {
  737. $doSubMenu = 0;
  738. $doMenu = 0;
  739. $str .= "<div class=\"section\" style=\"border:0 !important;display:none;\"></div> \n";
  740. } elseif ($ordered[$counter + 1]['indent'] == 0) {
  741. $doSubMenu = 0;
  742. $str .= "<div class=\"section\" style=\"border:0 !important;display:none;\"></div> \n";
  743. } else {
  744. $doSubMenu = 1;
  745. }
  746. $counter++;
  747. if ($activesub2 == -1) {
  748. $subcounter = 0;
  749. }
  750. while ($doSubMenu) {
  751. if ($ordered[$counter]['indent'] != 0) {
  752. if ($ordered[$counter]['indent'] > $ordered[$counter - 1]['indent']) {
  753. if ($act && $sub_active && ($swmenufree['orientation'] == "vertical/right")) {
  754. $str .= '<div class="subsection" >';
  755. } else {
  756. $str .= '<div class="section" >';
  757. }
  758. }
  759. $ordered[$counter]['URL'] = str_replace('&', '&amp;', $ordered[$counter]['URL']);
  760. $name = ($ordered[$counter]['TITLE']);
  761. if (($counter + 1 == $number) || ($ordered[$counter + 1]['indent'] == 0)) {
  762. $doSubMenu = 0;
  763. }
  764. $style = " style=\"";
  765. $classname = "item2";
  766. if ($ordered[$counter]['indent'] > $ordered[$counter - 1]['indent']) {
  767. $classname .= " first";
  768. }
  769. if (($counter + 1 == $number) || islastFree($ordered, $counter)) {
  770. $classname .= " last";
  771. }
  772. if (($counter + 1 != $number) && ($ordered[$counter + 1]['indent'] > $ordered[$counter]['indent']) && $sub_sub_indicator) {
  773. $name = "<img src='" . $live_site . $sub_sub_indicator . "' align='" . $sub_indicator_align . "' style='position:relative;left:" . $sub_indicator_left . "px;top:" . $sub_indicator_top . "px;' alt='' />" . $name;
  774. }
  775. $style .= "\" ";
  776. switch ($ordered[$counter]['TARGET']) {
  777. case 1:
  778. $str .= '<a href="' . $ordered[$counter]['URL'] . '" ' . $style . ' target="_blank" class="' . $classname . '" >' . $name . '</a>';
  779. break;
  780. case 2:
  781. $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=\"" . $classname . "\">" . $name . "</a>\n";
  782. break;
  783. case 3:
  784. $str .= '<a class="' . $classname . '" ' . $style . ' >' . $name . '</a>';
  785. break;
  786. default:
  787. $str .= "<a href=\"" . $ordered[$counter]['URL'] . "\" class=\"" . $classname . "\" " . $style . ">" . $name . "</a>\n";
  788. break;
  789. }
  790. if (($counter + 1 == $number) || ($ordered[$counter + 1]['indent'] < $ordered[$counter]['indent'])) {
  791. $str .= str_repeat('</div>', (($ordered[$counter]['indent']) - (@$ordered[$counter + 1]['indent'])));
  792. }
  793. $counter++;
  794. }
  795. }
  796. }
  797. $str .= "</td> \n";
  798. if ($swmenufree['orientation'] == "vertical/right" || $swmenufree['orientation'] == "vertical/left" || $swmenufree['orientation'] == "vertical") {
  799. $str .= "</tr> \n";
  800. }
  801. if ($counter == ($number)) {
  802. $doMenu = 0;
  803. }
  804. }
  805. if ($swmenufree['orientation'] == "horizontal/down" || $swmenufree['orientation'] == "horizontal/left" || $swmenufree['orientation'] == "horizontal/up" || $swmenufree['orientation'] == "horizontal") {
  806. $str .= "</tr> \n";
  807. }
  808. $str .= "</table></div></td></tr></table><hr style=\"display:block;clear:left;margin:-0.66em 0;visibility:hidden;\" /> \n";
  809. $str .= "<script type=\"text/javascript\">\n";
  810. $str .= "<!--\n";
  811. $str .= "function makemenu(){\n";
  812. $str .= "var ddmx = new DropDownMenuX('menu');\n";
  813. $str .= "ddmx.type = '" . $swmenufree['orientation'] . "'; \n";
  814. $str .= "ddmx.delay.show = 0;\n";
  815. $str .= "ddmx.iframename = 'ddmx';\n";
  816. $str .= "ddmx.delay.hide = " . $swmenufree['specialB'] . ";\n";
  817. $str .= "ddmx.effect = '" . ($swmenufree['extra'] ? $swmenufree['extra'] : 'none') . "';\n";
  818. $str .= "ddmx.position.levelX.left = " . $swmenufree['level2_sub_left'] . ";\n";
  819. $str .= "ddmx.position.levelX.top = " . $swmenufree['level2_sub_top'] . ";\n";
  820. $str .= "ddmx.position.level1.left = " . $swmenufree['level1_sub_left'] . ";\n";
  821. $str .= "ddmx.position.level1.top = " . $swmenufree['level1_sub_top'] . "; \n";
  822. $str .= "ddmx.fixIeSelectBoxBug = " . ($selectbox_hack ? 'true' : 'false') . ";\n";
  823. $str .= "ddmx.autoposition = " . ($auto_position ? 'true' : 'false') . ";\n";
  824. if ($sub_active && ($swmenufree['orientation'] == "horizontal")) {
  825. $str .= "ddmx.activesub='menu-" . $activesub . "-section' ;\n";
  826. } else {
  827. $str .= "ddmx.activesub='' ;\n";
  828. }
  829. $str .= "ddmx.init(); \n";
  830. $str .= "}\n";
  831. $str .= "if ( typeof window.addEventListener != \"undefined\" )\n";
  832. $str .= "window.addEventListener( \"load\", makemenu, false );\n";
  833. $str .= "else if ( typeof window.attachEvent != \"undefined\" ) { \n";
  834. $str .= "window.attachEvent( \"onload\", makemenu );\n";
  835. $str .= "}\n";
  836. $str .= "else {\n";
  837. $str .= "if ( window.onload != null ) {\n";
  838. $str .= "var oldOnload = window.onload;\n";
  839. $str .= "window.onload = function ( e ) { \n";
  840. $str .= "oldOnload( e ); \n";
  841. $str .= "makemenu() \n";
  842. $str .= "} \n";
  843. $str .= "} \n";
  844. $str .= "else { \n";
  845. $str .= "window.onload = makemenu();\n";
  846. $str .= "} }\n";
  847. $str .= "//--> \n";
  848. $str .= "</script> \n";
  849. $str .= "<script type=\"text/javascript\">\n";
  850. $str .= "<!--\n";
  851. $border1 = explode(" ", $swmenufree['main_border']);
  852. $border2 = explode(" ", $swmenufree['sub_border']);
  853. $border1[0] = rtrim(trim($border1[0]), 'px');
  854. $border2[0] = rtrim(trim($border2[0]), 'px');
  855. $border1[1] = trim($border1[1]);
  856. $border2[1] = trim($border2[1]);
  857. $border1[2] = trim($border1[2]);
  858. $border2[2] = trim($border2[2]);
  859. $border3 = explode(" ", $swmenufree['main_border_over']);
  860. $border4 = explode(" ", $swmenufree['sub_border_over']);
  861. $border3[0] = rtrim(trim($border3[0]), 'px');
  862. $border4[0] = rtrim(trim($border4

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