menu.class.php 3.32 KB
<?php
Class Menu{
 private $db;
 private $lang;

 function __construct($lang){
  $this->db = sdb::getInstance();
  $this->lang = $lang;
 }
 

 public function view($id){
  return $this->db->getRow("select *,name_{$this->lang} as name,title_{$this->lang} as title,description_{$this->lang} as description,keywords_{$this->lang} as keywords,about_{$this->lang} as about from menu where id=?",array($id),DB_FETCHMODE_ASSOC);
 }
 
 public function view_params($param1,$value = null){
/*   $rt = explode("/" ,$rt);
   $rt = array_slice($rt, $offset,$length);
 print  $params = implode("/",$rt);
   if($params) $params .= "/";  */
   $params = ($value != null) ? $param1 . '/' . $value . '/' : (($param1 != null) ? $param1 . '/' : $param1);
 //$params = sprintf("%s/%s/",$param1,$value);
 return $this->db->getRow("select *,name_{$this->lang} as name,title_{$this->lang} as title,description_{$this->lang} as description,keywords_{$this->lang} as keywords,about_{$this->lang} as about from menu where params=?",array($params),DB_FETCHMODE_ASSOC);
 }
 
 public function getMenuUL($url,$id = 0,&$menu = ''){
   // global $menu;
    $q=$this->db->query("select *,name_{$this->lang} as name from menu where parent_id=? and is_menu=1 order by sort asc",array($id));
    if(!$q->numRows())
        return;
    $menu.= "<ul>\n";
	$i = 0;
    while($q->fetchInto($arr,DB_FETCHMODE_ASSOC))
    {$i++;
        $menu.= '<li id="item'.$i.'">';
        $menu.= '<a href="'.$url.'/'.$arr['params'].'">';
        $menu.= stripslashes($arr['name']);
        $menu.= '</a>';
        $this->getMenuUL($url,$arr['id'],$menu);
        $menu.= "</li>\n";
		if($i == 1){$i++;
        $menu.= '<li id="item'.$i.'">';
        $menu.= '<a href="#">';
        $menu.= 'ÏÐÎÄÓÊÒÈ';
        $menu.= '</a>';
		$menu.= $this->addULBrends();
        $menu.= "</li>\n";		
		}
    }
    $menu.= "</ul>\n";

  return $menu;
 }
 
 public function addULBrends(){
	$out = "<ul id='menu_brends'>\n";
	$res = $this->db->getAll("select * from catalogs_brends order by sort asc",array(),DB_FETCHMODE_ASSOC);
	foreach($res as $row){
		$out .= "<li class='row_brend'>";
		$out .= $row['name'];
		$out .= $this->addULRubrics($row['id']);
		$out .= "</li>\n";
	}
	$out .= "</ul>\n";
	return $out;
 }
 
 public function addULRubrics($brend_id){
	$out = "<ul>\n";
	$res = $this->db->getAll("select r.*,b.translit as brend_translit from catalogs_rubrics r LEFT JOIN catalogs_brends b ON b.id=r.brend_id where r.parent_id=? and r.brend_id=? order by r.sort asc",array(0,$brend_id),DB_FETCHMODE_ASSOC);
	foreach($res as $row){
		$out .= "<li>";
		$out .= '<a href="'.$url.'/products/'.$row['brend_translit'].'/'.$row['translit'].'/">';
		$out .= $row['name'];
		$out .= '</a>';
		$out .= "</li>\n";
	}
	$out .= "</ul>\n";
	return $out; 
 }
 
 public function getMenuBottomUL($url,$id = 0,&$menu = ''){
   // global $menu;
    $q=$this->db->query("select *,name_{$this->lang} as name from menu where parent_id=? and is_menu_bottom=1 order by sort asc",array($id));
    if(!$q->numRows())
        return;
    $menu.= "<ul>\n";
    while($q->fetchInto($arr,DB_FETCHMODE_ASSOC))
    {
        $menu.= '<li>';
        $menu.= '<a href="'.$url.'/'.$arr['params'].'">';
        $menu.= $arr['name'];
        $menu.= '</a>';
        $this->getMenuBottomUL($url,$arr['id'],$menu);
        $menu.= "</li>\n";
    }
    $menu.= "</ul>\n";

  return $menu;
 } 

}
?>