/includes/inc_mainmenu_dev.php
PHP | 199 lines | 168 code | 13 blank | 18 comment | 46 complexity | f8b992200ef30a3b76b2f553e970339c MD5 | raw file
- <?php if ($config['enable_offcanvasmenu']) { echo '<a href="#" class="closeoffcanvas visible-xs"><img src="/images/icon_close.png" alt="Close"></a>'; } ?>
- <ul id="tabwrap" class="<?php echo ($config['enable_offcanvasmenu']) ? 'offcanvasnavwrap' : 'standardtabwrap'; ?>">
- <?php /*<li class="visible-xs <?php if (basename($_SERVER['PHP_SELF']) == 'index.php') { echo 'current'; } ?>"><a class="toplevelcat" href="/">HOME</a></li>*/?>
- <?php
- // top level categories
- $sql = "SELECT * FROM categories WHERE parent = '0' AND live = 'yes' ORDER BY sorder, name";
- $res2 = cache::query($sql, $db, 60);
- // ######################## SEPARATE CATEGORY MENUS ##############################
- $maxchars = 65; // number of menu characters before "more" menu
- $x = 0;
- foreach ($res2 as $rs) {
- // sub cats
- $sql = "SELECT catid, name, urlstring FROM categories WHERE parent = '" . $rs['catid'] . "' AND live = 'yes' ORDER BY sorder, name";
- $ressub = cache::query($sql, $db, 60);
- $tempcatidlist = getChildren($rs['catid'], 0);
- $sql = "
- SELECT brandid, name FROM (
- SELECT b.brandid, b.name, COUNT(p.prodid) AS qty
- FROM brands AS b
- LEFT JOIN products AS p ON p.brand = b.brandid
- LEFT JOIN productcategory AS pc ON p.prodid = pc.prodid
- WHERE pc.catid IN (".$tempcatidlist.")
- AND b.live = 'yes'
- AND (p.live = 'yes' OR p.live = '".$db->escape_string($_SESSION["accounttype"])."')
- GROUP BY b.brandid
- ORDER BY qty DESC, b.name ASC
- LIMIT 10
- ) AS temp
- ORDER BY name ASC
- ";
- $ressub2 = cache::query($sql, $db, 60);
- echo '<li class="toplevelcat ';
- if (isset($thiscatarray) && is_array($thiscatarray) && in_array($rs["catid"], $thiscatarray)) {
- echo 'current"';
- }
- echo '"><a href="/'.$rs["urlstring"].'/c'.$rs["catid"].'" class="toplevelcatlink'.(($config['enable_offcanvasmenu'] && count($ressub) > 0) ? ' offcanvassubitems' : '').'">'.strtoupper($rs["name"]).'</a>';
- $widemenu = true;
- if ($widemenu) {
- $maxcolumns = 6;
- } else {
- // if not using a "widemenu" work out the appropriate number of columns based on position in menu
- $temp = $x / $maxchars;
- $maxcolumns = floor(6 - (3 * $temp));
- }
- if (count($ressub) > 0 || count($ressub2) > 0){
- $columnsused = 0;
- echo '<ul class="' . ($widemenu ? 'widemenu ' : '') . 'offcanvasmenusection">';
- // show cat iamge if available
- if (file_exists($_SERVER["DOCUMENT_ROOT"].'/images/categories/'.$rs["catid"].'.jpg')) {
- $columnsused++;
- echo '<li class="col-sm-3 col-md-2 hidden-xs menucategoryimage"><img title="'.$rs["name"].'" alt="'.$rs["name"].'" src="/images/categories/'.$rs["catid"].'.jpg" /></li>';
- }
- // show sub cats
- if (count($ressub) > 0){
- $columnsrequired = $maxcolumns-$columnsused;
- $columnsused++;
- echo '<li class="col-sm-3 col-md-2"><em class="hidden-xs">View by category:</em> <br class="hidden-xs"/>';
- $i = 0;
- // get total number of cats
- $temp = array();
- foreach($ressub as $rowsub){
- $temp[] = $rowsub["catid"];
- }
- $sql = "SELECT catid FROM categories WHERE parent IN (".implode(",", $temp).") AND live = 'yes'";
- $tempsub = cache::query($sql, $db, 60);
- $totalcats = count($tempsub) + count($ressub);
- if ($totalcats > ($widemenu ? 5 : 15)) { $break = ceil(($totalcats/$columnsrequired)+1); } else { $break = 0; }
- // display them
- foreach($ressub as $rowsub){
- // sub sub cats
- $sqlsubsub = "SELECT catid, name, urlstring FROM categories WHERE parent = '" . $rowsub['catid'] . "' AND live = 'yes' ORDER BY sorder, name";
- $ressubsub = cache::query($sqlsubsub, $db, 60);
- // if we are close to the end of the column, start a new one
- if (count($ressubsub) > 0) {
- if ($i > ($break * 0.8)) {
- echo '</li><li class="col-sm-3 col-md-2"><span class="hidden-xs"> <br/></span>';
- $columnsused++;
- $i = 0;
- }
- }
- // output main cat
- echo '<a href="/'.$rowsub['urlstring'].'/c'.$rowsub['catid'].'" class="mainoption">'.htmlspecialchars($rowsub['name']).'</a>';
- $i++;
- // output sub cats
- if(count($ressubsub) > 0){
- foreach($ressubsub as $rowsubsub){
- echo '<a href="/'.$rowsubsub['urlstring'].'/c'.$rowsubsub['catid'].'" class="suboption">'.htmlspecialchars($rowsubsub['name']).'</a>';
- $i++;
- if ($i > $break && $break > 0) {
- echo '<a class="suboption" href="/' . sef($rowsub["name"]) . '/c' . $rowsub["catid"] . '-all">More ' . $rowsub["name"] . '</a>';
- break;
- }
- };
- }
- // column too long? start a new one
- if ($i > $break && $break > 0) {
- $columnsused++;
- echo '</li><li class="col-sm-3 col-md-2"><span class="hidden-xs"> <br/></span>';
- $i = 0;
- }
- }
- echo '<a class="all mainoption" href="/'.$rs["urlstring"].'/c'.$rs["catid"].'-all">All '.$rs["name"].'</a>';
- echo '</li>';
- }
- // show brands in this cat
- if ($columnsused < $maxcolumns) {
- $columnsrequired = 1;
- if (count($ressub2) > 8) { $break = ceil((count($ressub2)/$columnsrequired)+1); } else { $break = 0; }
- if (count($ressub2) > 0){
- $columnsused++;
- echo '<li class="col-sm-3 col-md-2"><em class="hidden-xs">View by brand:</em> <br class="hidden-xs"/>';
- $i = 0;
- foreach($ressub2 as $rowsub){
- $bname = sef($rowsub['name']);
- echo '<a href="/'.$rs["urlstring"].'/c'.$rs["catid"].'-'.$bname.'-b'.$rowsub['brandid'].'" class="suboption">'.htmlspecialchars($rowsub['name']).'</a>';
- $i++;
- if ($i == $break) { $columnsused++; $i = 0; echo '</li><li class="col-sm-3 col-md-2"><span class="hidden-xs"> <br/></span>'; }
- }
- echo '<a class="all suboption" href="/brands">All Brands</a>';
- echo '</li>';
- }
- }
- // show cat menu banner if available
- if ($columnsused < $maxcolumns && !$browser->isMobile()) {
- if (file_exists($_SERVER["DOCUMENT_ROOT"].'/images/categories/'.$rs["catid"].'_menu.jpg')) {
- $size = getimagesize($_SERVER["DOCUMENT_ROOT"].'/images/categories/'.$rs["catid"].'_menu.jpg');
- $bannerColumnsNeeded = min(6 - $columnsused, ceil($size[0] / 170));
- $columnsused = $columnsused + $bannerColumnsNeeded;
- echo '<li class="hidden-xs hidden-sm col-sm-'.(2*$bannerColumnsNeeded).' menubannerimage">';
- if (trim($rs["menuimagelink"]) != '') { echo '<a href="'.$rs["menuimagelink"].'">'; }
- echo '<img title="'.$rs["name"].'" alt="'.$rs["name"].'" src="/images/categories/'.$rs["catid"].'_menu.jpg" />';
- if (trim($rs["menuimagelink"]) != '') { echo '</a>'; }
- echo '</li>';
- }
- }
- if ($columnsused < $maxcolumns && $widemenu == true) {
- // get sub category id list
- $tempcatidlist = getChildren($rs["catid"], 0);
- // display featured products
- $sql = "SELECT p.* FROM products AS p LEFT JOIN productcategory AS pc ON p.prodid = pc.prodid WHERE p.featured = 'yes' AND (p.live = 'yes' OR p.live = '".$db->escape_string($_SESSION["accounttype"])."') AND pc.catid IN (".$tempcatidlist.") GROUP BY p.prodid ORDER BY RAND() ASC LIMIT ".($maxcolumns-$columnsused);
- $featresult = cache::query($sql, $db, 60);
- if (count($featresult) > 0) {
- foreach($featresult as $featrow) {
- ?>
- <li class="col-sm-3 col-md-2 hidden-xs hidden-sm">
- <div class="productframe">
- <div class="featimage">
- <?php shopping::showProductThumb($featrow['prodid'], $featrow['name'], 'small', 120, $featrow['overlayid']); ?>
- </div>
- <div class="name">
- <a href="/<?php echo sef($featrow['name']); ?>/p<?php echo sef($featrow['prodid']); ?>"><?php echo htmlspecialchars($featrow['name']); ?></a>
- <span class="price"><?php echo shopping::getPrice($featrow['prodid']); ?></span>
- </div>
- </div>
- </li>
- <?php
- }
- }
- }
- echo '</ul>';
- }
- echo '</li>';
- $x = $x + strlen($rs['name']) + 5; // extra 5 for padding
- if ($x > $maxchars) {
- $moremenu = $rs['catid']; // last category displayed in main menu
- break;
- }
- }
- ?>
- <?php
- // Display special offers link ONLY if any are listed
- $sql = "SELECT products.prodid
- FROM products
- INNER JOIN variants ON products.prodid = variants.prodid
- WHERE products.live = 'yes'
- AND variants.specialprice != '0'
- AND variants.vlive = 'yes'
- LIMIT 1
- ";
- $specialsresult = cache::query($sql, $db, 60);
- if (count($specialsresult) != 0) {
- echo '<li class="toplevelcat menu-special '.((basename($_SERVER['PHP_SELF']) == 'offers_products.php') ? 'current' : '').'"><a class="toplevelcatlink orange" href="/offer-products">SPECIAL OFFER</a></li>';
- }
- echo '<li class="menu-login hidden-sm right"><a class="menu-loginlink" href="/'.((isset($_SESSION['customerid']) && $_SESSION['active'] == 2) ? 'my-account' : 'login').'">'.((isset($_SESSION['customerid']) && $_SESSION['active'] == 2) ? 'MY ACCOUNT' : 'LOGIN').'</a></li>';
- ?>
- </ul>