I want to add more colums in menu like “col-2” is used in it. Please help me, thanks a lot! Here is the original code
<?php $ collection = Mage::getModel('cmsadvanced/page') ->getCollection() ->addAttributeToSelect(array('name','url_key')) ->addExcludeRootFilter() ->addActiveFilter() ->addAttributeToFilter('include_in_menu', 1) ; ?> <?php $ result = []; $ _result = ""; $ value1 = Mage::getModel('catalog/category')->load(4)->getData("mega_menu_description"); $ value2 = Mage::getModel('catalog/category')->load(3)->getData("mega_menu_description"); $ value3 = Mage::getModel('catalog/category')->load(13)->getData("mega_menu_description"); $ value4 = Mage::getModel('catalog/category')->load(12)->getData("mega_menu_description"); $ value5 = Mage::getModel('catalog/category')->load(14)->getData("mega_menu_description"); $ value6 = Mage::getModel('catalog/category')->load(6)->getData("mega_menu_description"); $ value7 = Mage::getModel('catalog/category')->load(15)->getData("mega_menu_description"); if(!empty($ value1) && isset($ value1)) { $ value1 = explode("),(", $ value1); $ value_1_2 = trim(preg_replace("/[\(\)]+/", "", $ value1[0])); $ value_1_3 = trim(preg_replace("/[\(\)]+/", "", $ value1[1])); if(!empty($ value_1_2)) { $ value_1_2 = explode(",", $ value_1_2); } if(!empty($ value_1_3)) { $ value_1_3 = explode(",", $ value_1_3); } if(!empty($ value_1_2)) { for($ i = 0; $ i < count($ value_1_2); $ i++) { $ t_value = explode("\", $ value_1_2[$ i]); $ result[0]["col2"][] = $ t_value; } } if(!empty($ value_1_3)) { for($ i = 0; $ i < count($ value_1_3); $ i++) { $ t_value = explode("\", $ value_1_3[$ i]); $ result[0]["col3"][] = $ t_value; } } } if(!empty($ value2) && isset($ value2)) { $ value2 = explode("),(", $ value2); $ value_2_2 = trim(preg_replace("/[\(\)]+/", "", $ value2[0])); $ value_2_3 = trim(preg_replace("/[\(\)]+/", "", $ value2[1])); if(!empty($ value_2_2)) { $ value_2_2 = explode(",", $ value_2_2); } if(!empty($ value_2_3)) { $ value_2_3 = explode(",", $ value_2_3); } if(!empty($ value_2_2)) { for($ i = 0; $ i < count($ value_2_2); $ i++) { $ t_value = explode("\", $ value_2_2[$ i]); $ result[1]["col2"][] = $ t_value; } } if(!empty($ value_2_3)) { for($ i = 0; $ i < count($ value_2_3); $ i++) { $ t_value = explode("\", $ value_2_3[$ i]); $ result[1]["col3"][] = $ t_value; } } } if(!empty($ value3) && isset($ value3)) { $ value3 = explode("),(", $ value3); $ value_3_2 = trim(preg_replace("/[\(\)]+/", "", $ value3[0])); $ value_3_3 = trim(preg_replace("/[\(\)]+/", "", $ value3[1])); if(!empty($ value_3_2)) { $ value_3_2 = explode(",", $ value_3_2); } if(!empty($ value_3_3)) { $ value_3_3 = explode(",", $ value_3_3); } if(!empty($ value_3_2)) { for($ i = 0; $ i < count($ value_3_2); $ i++) { $ t_value = explode("\", $ value_3_2[$ i]); $ result[2]["col2"][] = $ t_value; } } if(!empty($ value_3_3)) { for($ i = 0; $ i < count($ value_3_3); $ i++) { $ t_value = explode("\", $ value_3_3[$ i]); $ result[2]["col3"][] = $ t_value; } } } if(!empty($ value4) && isset($ value4)) { $ value4 = explode("),(", $ value4); $ value_4_2 = trim(preg_replace("/[\(\)]+/", "", $ value4[0])); $ value_4_3 = trim(preg_replace("/[\(\)]+/", "", $ value4[1])); if(!empty($ value_4_2)) { $ value_4_2 = explode(",", $ value_4_2); } if(!empty($ value_4_3)) { $ value_4_3 = explode(",", $ value_4_3); } if(!empty($ value_4_2)) { for($ i = 0; $ i < count($ value_4_2); $ i++) { $ t_value = explode("\", $ value_4_2[$ i]); $ result[3]["col2"][] = $ t_value; } } if(!empty($ value_4_3)) { for($ i = 0; $ i < count($ value_4_3); $ i++) { $ t_value = explode("\", $ value_4_3[$ i]); $ result[3]["col3"][] = $ t_value; } } } if(!empty($ value5) && isset($ value5)) { $ value5 = explode("),(", $ value5); $ value_5_2 = trim(preg_replace("/[\(\)]+/", "", $ value5[0])); $ value_5_3 = trim(preg_replace("/[\(\)]+/", "", $ value5[1])); if(!empty($ value_5_2)) { $ value_5_2 = explode(",", $ value_5_2); } if(!empty($ value_5_3)) { $ value_5_3 = explode(",", $ value_5_3); } if(!empty($ value_5_2)) { for($ i = 0; $ i < count($ value_5_2); $ i++) { $ t_value = explode("\", $ value_5_2[$ i]); $ result[4]["col2"][] = $ t_value; } } if(!empty($ value_5_3)) { for($ i = 0; $ i < count($ value_5_3); $ i++) { $ t_value = explode("\", $ value_5_3[$ i]); $ result[4]["col3"][] = $ t_value; } } } if(!empty($ value6) && isset($ value6)) { $ value6 = explode("),(", $ value6); $ value_6_2 = trim(preg_replace("/[\(\)]+/", "", $ value6[0])); $ value_6_3 = trim(preg_replace("/[\(\)]+/", "", $ value6[1])); if(!empty($ value_6_2)) { $ value_6_2 = explode(",", $ value_6_2); } if(!empty($ value_6_3)) { $ value_6_3 = explode(",", $ value_6_3); } if(!empty($ value_6_2)) { for($ i = 0; $ i < count($ value_6_2); $ i++) { $ t_value = explode("\", $ value_6_2[$ i]); $ result[5]["col2"][] = $ t_value; } } if(!empty($ value_6_3)) { for($ i = 0; $ i < count($ value_6_3); $ i++) { $ t_value = explode("\", $ value_6_3[$ i]); $ result[5]["col3"][] = $ t_value; } } } if(!empty($ value7) && isset($ value7)) { $ value7 = explode("),(", $ value7); $ value_7_2 = trim(preg_replace("/[\(\)]+/", "", $ value7[0])); $ value_7_3 = trim(preg_replace("/[\(\)]+/", "", $ value7[1])); if(!empty($ value_7_2)) { $ value_7_2 = explode(",", $ value_7_2); } if(!empty($ value_7_3)) { $ value_7_3 = explode(",", $ value_7_3); } if(!empty($ value_7_2)) { for($ i = 0; $ i < count($ value_7_2); $ i++) { $ t_value = explode("\", $ value_7_2[$ i]); $ result[6]["col2"][] = $ t_value; } } if(!empty($ value_7_3)) { for($ i = 0; $ i < count($ value_7_3); $ i++) { $ t_value = explode("\", $ value_7_3[$ i]); $ result[6]["col3"][] = $ t_value; } } } if(!empty($ result)) { foreach($ result as $ k => $ v) { $ col = $ v; $ _result[$ k] = ""; if(!empty($ col["col2"])) { $ _result[$ k]["col2"] .= "<ul class='nav-col-2'>"; for($ j1 = 0; $ j1 < count($ col["col2"]); $ j1++) { $ _result[$ k]["col2"] .= "<li><a href='". trim($ col["col2"][$ j1][0]) ."'>".trim($ col["col2"][$ j1][1])."</a></li>"; } $ _result[$ k]["col2"] .= "</ul>"; } if(!empty($ col["col3"])) { $ _result[$ k]["col3"] .= "<ul class='nav-col-3' >"; for($ j1 = 0; $ j1 < count($ col["col3"]); $ j1++) { $ _result[$ k]["col3"] .= "<li><a href='". trim($ col["col3"][$ j1][0]) ."'><img src='/brand_img/".trim($ col["col3"][$ j1][1]).".png' alt='' /></a></li>"; } $ _result[$ k]["col3"] .= "</ul>"; } } } /*echo "<pre>"; print_r($ _result); echo "</pre>";*/ ?> <?php $ _menu = $ this->getHtml('level-top') ?> <?php if($ _menu): ?> <div class="nav-container"> <ul id="nav"> <?php echo $ _menu ?> <?php if ($ collection->getSize()): ?> <?php $ _curPage = $ this->helper('cmsadvanced')->getCurrentPage(); $ _curPageId = $ _curPage ? $ _curPage->getEntityId() : 0; foreach ($ collection as $ page): ?> <li class="highlighted<?php if ($ page->getEntityId() == $ _curPageId): ?> active<?php endif ?>"> <a href="<?php echo $ this->getUrl($ page->getUrlKey()); ?>"> <?php echo $ this->__($ page->getName()) ?> </a> </li> <?php endforeach ?> <?php endif ?> </ul> </div> <?php endif ?> <script> jQuery(document).ready( function() { var num_r = <?php echo count($ result)?>; var menu_data = [ <?php for($ i = 0; $ i < count($ result); $ i++) { print_r('"'); echo !empty($ _result[$ i]["col2"]) ? $ _result[$ i]["col2"] : ""; echo !empty($ _result[$ i]["col3"]) ? $ _result[$ i]["col3"] : ""; print_r('"'); if($ i < count($ result) - 1) { print_r(','); } } ?> ] for(var i = 0; i < num_r; i++) { if(!jQuery("#nav>li:eq("+i+")").hasClass("parent")) { jQuery("#nav>li:eq("+i+")").addClass("parent"); } jQuery("#nav>li:eq("+i+")").append(menu_data[i]); if(!jQuery("#nav>li:eq("+i+") ul.level10").length) { jQuery("#nav>li:eq("+i+") ul:eq(0)").addClass("level10"); jQuery("#nav>li:eq("+i+") ul:eq(0)").removeClass("nav-col-3 nav-col-2"); jQuery("#nav>li:eq("+i+") ul:eq(0) + ul").removeClass("nav-col-3 nav-col-2").addClass("nav-col-2"); } if(jQuery("#nav>li:eq("+i+") ul.nav-col-2").length || jQuery("#nav>li:eq("+i+") ul.nav-col-3").length) { jQuery("#nav>li:eq("+i+") > ul:eq(0)").width(410); } if(jQuery("#nav>li:eq("+i+") ul.nav-col-2").length && jQuery("#nav>li:eq("+i+") ul.nav-col-3").length) { jQuery("#nav>li:eq("+i+") > ul:eq(0)").width(650); } } }); </script>
Here i have added col4 (similar to col2).
<?php $ collection = Mage::getModel('cmsadvanced/page') ->getCollection() ->addAttributeToSelect(array('name','url_key')) ->addExcludeRootFilter() ->addActiveFilter() ->addAttributeToFilter('include_in_menu', 1) ; ?> <?php $ result = []; $ _result = ""; $ value1 = Mage::getModel('catalog/category')->load(4)->getData("mega_menu_description"); $ value2 = Mage::getModel('catalog/category')->load(3)->getData("mega_menu_description"); $ value3 = Mage::getModel('catalog/category')->load(13)->getData("mega_menu_description"); $ value4 = Mage::getModel('catalog/category')->load(12)->getData("mega_menu_description"); $ value5 = Mage::getModel('catalog/category')->load(14)->getData("mega_menu_description"); $ value6 = Mage::getModel('catalog/category')->load(6)->getData("mega_menu_description"); $ value7 = Mage::getModel('catalog/category')->load(15)->getData("mega_menu_description"); if(!empty($ value1) && isset($ value1)) { $ value1 = explode("),(", $ value1); $ value_1_2 = trim(preg_replace("/[\(\)]+/", "", $ value1[0])); $ value_1_3 = trim(preg_replace("/[\(\)]+/", "", $ value1[1])); $ value_1_4 = trim(preg_replace("/[\(\)]+/", "", $ value1[0])); if(!empty($ value_1_2)) { $ value_1_2 = explode(",", $ value_1_2); } if(!empty($ value_1_3)) { $ value_1_3 = explode(",", $ value_1_3); } if(!empty($ value_1_4)) { $ value_1_4 = explode(",", $ value_1_4); } if(!empty($ value_1_2)) { for($ i = 0; $ i < count($ value_1_2); $ i++) { $ t_value = explode("\", $ value_1_2[$ i]); $ result[0]["col2"][] = $ t_value; } } if(!empty($ value_1_3)) { for($ i = 0; $ i < count($ value_1_3); $ i++) { $ t_value = explode("\", $ value_1_3[$ i]); $ result[0]["col3"][] = $ t_value; } } if(!empty($ value_1_4)) { for($ i = 0; $ i < count($ value_1_4); $ i++) { $ t_value = explode("\", $ value_1_4[$ i]); $ result[0]["col4"][] = $ t_value; } } } if(!empty($ value2) && isset($ value2)) { $ value2 = explode("),(", $ value2); $ value_2_2 = trim(preg_replace("/[\(\)]+/", "", $ value2[0])); $ value_2_3 = trim(preg_replace("/[\(\)]+/", "", $ value2[1])); if(!empty($ value_2_2)) { $ value_2_2 = explode(",", $ value_2_2); } if(!empty($ value_2_3)) { $ value_2_3 = explode(",", $ value_2_3); } if(!empty($ value_2_2)) { for($ i = 0; $ i < count($ value_2_2); $ i++) { $ t_value = explode("\", $ value_2_2[$ i]); $ result[1]["col2"][] = $ t_value; } } if(!empty($ value_2_3)) { for($ i = 0; $ i < count($ value_2_3); $ i++) { $ t_value = explode("\", $ value_2_3[$ i]); $ result[1]["col3"][] = $ t_value; } } } if(!empty($ value3) && isset($ value3)) { $ value3 = explode("),(", $ value3); $ value_3_2 = trim(preg_replace("/[\(\)]+/", "", $ value3[0])); $ value_3_3 = trim(preg_replace("/[\(\)]+/", "", $ value3[1])); if(!empty($ value_3_2)) { $ value_3_2 = explode(",", $ value_3_2); } if(!empty($ value_3_3)) { $ value_3_3 = explode(",", $ value_3_3); } if(!empty($ value_3_2)) { for($ i = 0; $ i < count($ value_3_2); $ i++) { $ t_value = explode("\", $ value_3_2[$ i]); $ result[2]["col2"][] = $ t_value; } } if(!empty($ value_3_3)) { for($ i = 0; $ i < count($ value_3_3); $ i++) { $ t_value = explode("\", $ value_3_3[$ i]); $ result[2]["col3"][] = $ t_value; } } } if(!empty($ value4) && isset($ value4)) { $ value4 = explode("),(", $ value4); $ value_4_2 = trim(preg_replace("/[\(\)]+/", "", $ value4[0])); $ value_4_3 = trim(preg_replace("/[\(\)]+/", "", $ value4[1])); if(!empty($ value_4_2)) { $ value_4_2 = explode(",", $ value_4_2); } if(!empty($ value_4_3)) { $ value_4_3 = explode(",", $ value_4_3); } if(!empty($ value_4_2)) { for($ i = 0; $ i < count($ value_4_2); $ i++) { $ t_value = explode("\", $ value_4_2[$ i]); $ result[3]["col2"][] = $ t_value; } } if(!empty($ value_4_3)) { for($ i = 0; $ i < count($ value_4_3); $ i++) { $ t_value = explode("\", $ value_4_3[$ i]); $ result[3]["col3"][] = $ t_value; } } } if(!empty($ value5) && isset($ value5)) { $ value5 = explode("),(", $ value5); $ value_5_2 = trim(preg_replace("/[\(\)]+/", "", $ value5[0])); $ value_5_3 = trim(preg_replace("/[\(\)]+/", "", $ value5[1])); if(!empty($ value_5_2)) { $ value_5_2 = explode(",", $ value_5_2); } if(!empty($ value_5_3)) { $ value_5_3 = explode(",", $ value_5_3); } if(!empty($ value_5_2)) { for($ i = 0; $ i < count($ value_5_2); $ i++) { $ t_value = explode("\", $ value_5_2[$ i]); $ result[4]["col2"][] = $ t_value; } } if(!empty($ value_5_3)) { for($ i = 0; $ i < count($ value_5_3); $ i++) { $ t_value = explode("\", $ value_5_3[$ i]); $ result[4]["col3"][] = $ t_value; } } } if(!empty($ value6) && isset($ value6)) { $ value6 = explode("),(", $ value6); $ value_6_2 = trim(preg_replace("/[\(\)]+/", "", $ value6[0])); $ value_6_3 = trim(preg_replace("/[\(\)]+/", "", $ value6[1])); if(!empty($ value_6_2)) { $ value_6_2 = explode(",", $ value_6_2); } if(!empty($ value_6_3)) { $ value_6_3 = explode(",", $ value_6_3); } if(!empty($ value_6_2)) { for($ i = 0; $ i < count($ value_6_2); $ i++) { $ t_value = explode("\", $ value_6_2[$ i]); $ result[5]["col2"][] = $ t_value; } } if(!empty($ value_6_3)) { for($ i = 0; $ i < count($ value_6_3); $ i++) { $ t_value = explode("\", $ value_6_3[$ i]); $ result[5]["col3"][] = $ t_value; } } } if(!empty($ value7) && isset($ value7)) { $ value7 = explode("),(", $ value7); $ value_7_2 = trim(preg_replace("/[\(\)]+/", "", $ value7[0])); $ value_7_3 = trim(preg_replace("/[\(\)]+/", "", $ value7[1])); if(!empty($ value_7_2)) { $ value_7_2 = explode(",", $ value_7_2); } if(!empty($ value_7_3)) { $ value_7_3 = explode(",", $ value_7_3); } if(!empty($ value_7_2)) { for($ i = 0; $ i < count($ value_7_2); $ i++) { $ t_value = explode("\", $ value_7_2[$ i]); $ result[6]["col2"][] = $ t_value; } } if(!empty($ value_7_3)) { for($ i = 0; $ i < count($ value_7_3); $ i++) { $ t_value = explode("\", $ value_7_3[$ i]); $ result[6]["col3"][] = $ t_value; } } } if(!empty($ result)) { foreach($ result as $ k => $ v) { $ col = $ v; $ _result[$ k] = ""; if(!empty($ col["col2"])) { $ _result[$ k]["col2"] .= "<ul class='nav-col-2'>"; for($ j1 = 0; $ j1 < count($ col["col2"]); $ j1++) { $ _result[$ k]["col2"] .= "<li><a href='". trim($ col["col2"][$ j1][0]) ."'>".trim($ col["col2"][$ j1][1])."</a></li>"; } $ _result[$ k]["col2"] .= "</ul>"; } if(!empty($ col["col3"])) { $ _result[$ k]["col3"] .= "<ul class='nav-col-3' >"; for($ j1 = 0; $ j1 < count($ col["col3"]); $ j1++) { $ _result[$ k]["col3"] .= "<li><a href='". trim($ col["col3"][$ j1][0]) ."'><img src='/brand_img/".trim($ col["col3"][$ j1][1]).".png' alt='' /></a></li>"; } $ _result[$ k]["col3"] .= "</ul>"; } if(!empty($ col["col4"])) { $ _result[$ k]["col4"] .= "<ul class='nav-col-4'>"; for($ j1 = 0; $ j1 < count($ col["col4"]); $ j1++) { $ _result[$ k]["col4"] .= "<li><a href='". trim($ col["col4"][$ j1][0]) ."'>".trim($ col["col4"][$ j1][1])."</a></li>"; } $ _result[$ k]["col4"] .= "</ul>"; } } } /*echo "<pre>"; print_r($ _result); echo "</pre>";*/ ?> <?php $ _menu = $ this->getHtml('level-top') ?> <?php if($ _menu): ?> <div class="nav-container"> <ul id="nav"> <?php echo $ _menu ?> <?php if ($ collection->getSize()): ?> <?php $ _curPage = $ this->helper('cmsadvanced')->getCurrentPage(); $ _curPageId = $ _curPage ? $ _curPage->getEntityId() : 0; foreach ($ collection as $ page): ?> <li class="highlighted<?php if ($ page->getEntityId() == $ _curPageId): ?> active<?php endif ?>"> <a href="<?php echo $ this->getUrl($ page->getUrlKey()); ?>"> <?php echo $ this->__($ page->getName()) ?> </a> </li> <?php endforeach ?> <?php endif ?> </ul> </div> <?php endif ?> <script> jQuery(document).ready( function() { var num_r = <?php echo count($ result)?>; var menu_data = [ <?php for($ i = 0; $ i < count($ result); $ i++) { print_r('"'); echo !empty($ _result[$ i]["col2"]) ? $ _result[$ i]["col2"] : ""; echo !empty($ _result[$ i]["col3"]) ? $ _result[$ i]["col3"] : ""; print_r('"'); if($ i < count($ result) - 1) { print_r(','); } } ?> ] for(var i = 0; i < num_r; i++) { if(!jQuery("#nav>li:eq("+i+")").hasClass("parent")) { jQuery("#nav>li:eq("+i+")").addClass("parent"); } jQuery("#nav>li:eq("+i+")").append(menu_data[i]); if(!jQuery("#nav>li:eq("+i+") ul.level10").length) { jQuery("#nav>li:eq("+i+") ul:eq(0)").addClass("level10"); jQuery("#nav>li:eq("+i+") ul:eq(0)").removeClass("nav-col-3 nav-col-2"); jQuery("#nav>li:eq("+i+") ul:eq(0) + ul").removeClass("nav-col-3 nav-col-2").addClass("nav-col-2"); } if(jQuery("#nav>li:eq("+i+") ul.nav-col-2").length || jQuery("#nav>li:eq("+i+") ul.nav-col-3").length) { jQuery("#nav>li:eq("+i+") > ul:eq(0)").width(410); } if(jQuery("#nav>li:eq("+i+") ul.nav-col-2").length && jQuery("#nav>li:eq("+i+") ul.nav-col-3").length) { jQuery("#nav>li:eq("+i+") > ul:eq(0)").width(650); } } }); </script>
What is wrong? Script? Appreciate your help!