/// Fix for catalog alias
$check = $this->checkCatalogAlias( $this->documentIdentifier );
if(strlen($check) > 0){
$_REQUEST['q']= $_GET['q']= $check;
$this->documentIdentifier = $check;
}
/// end of Fix for catalog alias
function checkCatalogAlias($alias)
{
$alias = str_replace('.html', '', $alias);
$blocks = explode ('/', $alias);
$cid = 0;
$iid = 0;
if(count($blocks) > 1)
{
$alias = $blocks[0];
$item_alias = $blocks[1];
}
$sql = 'SELECT id, parent, alias, count(p2c.itemid) pr_count FROM '.$this->getFullTableName('product_catalog').' pc '
.' LEFT JOIN '.$this->getFullTableName('product2catalog').' p2c ON pc.id = p2c.catalogid '
.' WHERE alias = "'.$alias.'" OR name = "'.$alias.'" GROUP BY pc.id';
if(intval($_GET['cid']) == 0){
//$sql = 'SELECT id FROM '.$this->getFullTableName('product_catalog').' WHERE alias = "'.$alias.'" OR name = "'.$alias.'" ';
$rs= $this->dbQuery($sql);
$r = mysql_fetch_array($rs);
if(intval($r['id']) > 0){
$_REQUEST['cid'] = $_GET['cid'] = $cid = intval($r['id']);
$icount = $r['pr_count'];
}
}
if($cid == 0 && strlen($item_alias) == 0){
$item_alias = $alias;
}
if(strlen($item_alias) > 0){
$sql_item = 'SELECT id FROM '.$this->getFullTableName('product_item').' WHERE alias = "'.$item_alias.'" OR name = "'.$item_alias.'" ';
$rs_item = $this->dbQuery($sql_item);
$r_item = mysql_fetch_assoc($rs_item);
if(intval($r_item['id']) != 0)
{
$_REQUEST['iid'] = $_GET['iid'] = $iid = intval($r_item['id']);
if($cid == 0){
$cat_sql = 'select p2c.catalogid, pc.alias, count(p2c.itemid) pr_count FROM '.$this->getFullTableName('product2catalog').' p2c
left join '.$this->getFullTableName('product_catalog').' pc ON p2c.catalogid = pc.id
where itemid = '.intval($iid).' GROUP BY pc.id';
$rs_cat = $this->dbQuery($cat_sql);
$r_cat = mysql_fetch_assoc($rs_cat);
$_REQUEST['cid'] = $_GET['cid'] = $cid = intval($r_cat['catalogid']);
$alias = $r_cat['alias'];
$icount = $r_cat['pr_count'];
}
}
}
$_REQUEST['g']= $_GET['g']= $alias;
if(intval($cid) != 0 && intval($iid) != 0){
return 'info';
} else if(intval($cid) != 0 && intval($icount) == 0){
return 'catalog';
} else if(intval($cid) != 0){
return 'list';
} else {
return '';
}
}
как к примеру выводится ГОСТЬ если пользователь не ввел имя :)
или как в теме отображается RE:
Dmi3y