Какой именно страницы? brand.php - это просто страница, там компоненты не используются.
А задача сделать что при нажатии на производителя в компоненте переходить на выборку по производителю из текущей категории.
Соответственно, шаблон компонента, где делаем кнопку этот: catalog.section/detail.section/
А brend.php отдельная страница, живет в каталоге /shop/
Код страницы прикладываю:
Код |
---|
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("");
?><?
function LoadJSImage($pic, $id, $close = false) {
static $start = 0;
if (!$start) {
echo '<script language="JavaScript" type="text/javaScript">
';
echo 'var imageArr = new Array();
';
$start = 1;
}
if (!$close) {
$src = CFile::GetPath($pic);
if (@strlen($src) > 0) {
echo 'imageArr[' .$id. '] = new Image();
';
echo 'imageArr['.$id. '].src = "' .$src. '";
';
}
}
else
echo '</script>
';
}
function GetPictureUrl($picId) {
$src = CFile::GetPath($picId);
return (strlen($src) > 0) ? $src : "/_.gif";
}
$cur_brand = $_GET['brand'];
$show = ($_REQUEST['show'] > 0) ? $_REQUEST['show'] : 0;
$section_id = ($_REQUEST['SECTION_ID'] > 0) ? $_REQUEST['SECTION_ID'] : 0;
$link = $APPLICATION->GetCurPage()."?brand=".$cur_brand."&show=".$show;
$nomgrup = array();
$asd=1; $asd1=0; $i=1;
$prices = array();
$elements = array();
?>
<div style="margin: 0 0 10px 20px;">
<a href="/shop">Интернет-магазин</a> / <a><?=$cur_brand;?></a>
</div>
<?php
$section = array();
$arOrder = array("NAME"=>"ASC");
$arFilter = array("PROPERTY_CML2_BRAND"=>$cur_brand, ">PROPERTY_CML2_ARTICLE"=>0, ">CATALOG_QUANTITY" =>);
$brand_elements = CIBlockElement::GetList($arOrder,$arFilter, false);
while ($cur_element = $brand_elements->fetch()) {
$section[ $cur_element['IBLOCK_SECTION_ID'] ] = 1;
}
$cur_page = ($_REQUEST['PAGEN_1'] > 0) ? ($_REQUEST['PAGEN_1']) : 1;
if ($show>0) { $arFilter['SECTION_ID'] = $show; }
$cur_brand_elements = CIBlockElement::GetList($arOrder, $arFilter, false, array("iNumPage" => $cur_page, "nPageSize" => 25));
#группировка по группам
while ($cur_element = $cur_brand_elements->fetch()) {
$element = CIBlockElement::GetProperty(6, $cur_element['ID']);
for ($j=0; $j <= 5; $j++)
$cur_element_list = $element->GetNext();
if ((strlen($cur_element_list['VALUE']) > 0) && ($cur_element_list['VALUE'] != 'Общая')) {
$elements[$cur_element_list['VALUE']][] = $cur_element;
LoadJSImage($cur_element['PREVIEW_PICTURE'], $cur_element['ID'], false);
}
else {
$key = $cur_element['NAME'];
// if ($elements[$key]) $key = $key." ";
$elements[$key] = array($cur_element);
}
}
LoadJSImage(null, null, true);
?>
<?$flag=true;$flag2=true;$idA="";?>
<link href="/bitrix/components/bitrix/system.pagenavigation/templates/orange/style.css?1239606849" type="text/css" rel="stylesheet" />
<div id="catalot_item">
<div style="padding: 10px; padding-top:0px; border-bottom: 3px solid #FFFFFF;width:33%;float:left;background-color:#fff;"><div id="navig" style="background-color:#fff;">
<?php
$aaa = CIBlockSection::GetList(Array("SORT"=>"ASC"),Array('IBLOCK_ID'=>6,'ID'=>array_keys($section)));
$count = $aaa->SelectedRowsCount();
$i = 0;
while($ar_result = $aaa->fetch())
{
$i++;
$iCount = CIBlockSection::GetSectionElementsCount($ar_result['ID'], array(">PROPERTY_CML2_ARTICLE"=>0, ">CATALOG_QUANTITY" => 0, "PROPERTY" => array("CML2_BRAND"=>$cur_brand) ));
if($_GET["show_block"]!=$idA){$cls="class='hideBlock'";}else{$cls="";};
if($ar_result["DEPTH_LEVEL"]=="3"){$idA=$ar_result["ID"];$style=" class='slider' ";}
if($ar_result["DEPTH_LEVEL"]>"3")$style=" style='background-image:none;' ";
if(($ar_result["DEPTH_LEVEL"]=="3")&&(!$flag2)){
$closeDiv = "</div>";$flag2=true;
}else{
if(($ar_result["DEPTH_LEVEL"]=="3")&&($flag2)){
$closeDiv = "";
}}
if(($ar_result["DEPTH_LEVEL"]=="3")&&($flag)){
$flag=false;}
if(($ar_result["DEPTH_LEVEL"]>"3")&&(!$flag)){
$closeDiv = "<div ".$cls." id=".$idA.">";$flag=true;$flag2=false;
}else{
if(($ar_result["DEPTH_LEVEL"]>"3")&&($flag))$closeDiv="";
}
?><?=$closeDiv;?><a <?=$style;?> href="/shop/brand.php?brand=<?=$cur_brand?>&show_block=<?=$idA;?>&show=<?= $ar_result["ID"] ?>" id="target<?=$ar_result["ID"];?>"><?
if( $show == $ar_result["ID"]) {
?><b style="color: #2968A4"><?= $ar_result["NAME"] ?></b></a><?
} else {
?><?= $ar_result["NAME"] ?></a><?
}
}
if(!$flag2)echo "</div>";
?>
</div></div>
<div style="width:63%; float:right">
<table cellpadding="0" cellspacing="0" width="100%" style="height:100%" class="goods">
<thead>
<tr>
<th width="120">Фото</th>
<th>Произодитель/Наименование</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Купить</th>
</tr>
</thead>
<tbody>
<?
foreach($elements as $arItemGroup => $arItem) {
$groupItem = array();
$showQuantity = 0;
$showPrice = 0;
if (@sizeof($arItem) > 1) {
$itemName = $arItemGroup;
$groupItem = $arItem;
$arItem = current($arItem);
} else {
$arItem = $arItem[0];
$itemName = $arItem['NAME'];
}
echo '<tr>';
echo '<td class="ph" width="112"><a style="background: url(\''.GetPictureUrl($arItem['PREVIEW_PICTURE']). '\') no-repeat scroll 50% 50% transparent;" href="/shop/detail/'.$arItem['IBLOCK_SECTION_ID'].'/'.$arItem['ID'].'/" id="photo_' .$i. '"></a></td>';
echo '<td>';
echo '<a href="/shop/detail/'.$arItem['IBLOCK_ID'].'/'.$arItem['ID'].'/">'.$itemName.'</a>';
if (@sizeof($groupItem) > 0) {
#вложенные элементы в данной группе
echo '<br><select align="right" id="grup_'.$i.'" style="width: 100%; padding: 2px; margin: 5px 0px;" onChange="JavaScript: ChangeItemInGroup(this.value, ' .$i. ', ' .$arItem["IBLOCK_ID"]. ')">';
foreach($groupItem as $arItemNested) {
$price[$arItemNested['ID']] = CPrice::GetBasePrice($arItemNested['ID']);
$price[$arItemNested['ID']]['PRICE'] = number_format($price[$arItemNested['ID']]['PRICE']);
$prod[$arItemNested['ID']] = CCatalogProduct::GetById($arItemNested['ID']);
echo '<option value="'.$arItemNested['ID'].'">'.$arItemNested['NAME'].' - '.$price[$arItemNested['ID']]['PRICE'].' руб. (ост: ' .$prod[$arItemNested['ID']]['QUANTITY']. ')</option>';
}
echo '</select>';
foreach($groupItem as $arItemNested) {
echo '<input type="hidden" id="price_value_' .$arItemNested['ID']. '" name="price_value_[]" value="' .$price[$arItemNested['ID']]['PRICE']. '">';
echo '<input type="hidden" id="quantity_value_' .$arItemNested['ID']. '" name="quantity_value_[]" value="' .$prod[$arItemNested['ID']]['QUANTITY']. '">';
}
$add = "onclick='basket_add2(\"".SITE_TEMPLATE_PATH."\",\"".$i."\");return false;'";
$item_id = $i;
} else {
#вложений нет
$add = "onclick='basket_add(\"".SITE_TEMPLATE_PATH."\",\"".$arItem['ID']."\");return false;'";
$item_id = $arItem['ID'];
}
$price = CPrice::GetBasePrice($arItem['ID']);
$showPrice = number_format($price['PRICE']);
$prod = CCatalogProduct::GetByID($arItem['ID']);
$showQuantity = $prod['QUANTITY'];
echo '</td>';
echo '<td class="price"><div id="price_' .$item_id. '"><span>'.$showPrice.' руб.</span></div></td>';
echo '<td class="q"><input type="text" value="1" id="'.$item_id.'_amount" name="'.$item_id.'_amount"/><div id="quantity_' .$item_id. '"><font size="-2">(ост: ' .$showQuantity. ')</font></div></td>
<td class="buy"><div id="'.$item_id.'_basket_pic"><a href="#" '.$add.'><img src="/bitrix/templates/carper_shop/img/icon_buy.gif" height="43" width="55" alt="купить" /></a></div></td>';
echo "</tr>";
$i++;
}
?>
</tbody>
</table>
<div align="center">
<?php
$cur_brand_elements->NavStart();
$cur_brand_elements->NavPrint("Товары", "true", "", "/bitrix/components/bitrix/system.pagenavigation/templates/orange/template.php");
?>
</div>
</div>
</div>
</div>
<script language="JavaScript" type="text/javascript">
function basket_add(path, id)
{
document.getElementById(id+'_basket_pic').innerHTML = '';
document.getElementById(id+'_basket_pic').innerHTML = '<img src="'+path+'/img/loading.gif" border="0">';
amount = document.getElementById(id+'_amount').value;
jsAjaxUtil.PostData(path+'/addtobasket.php', {id:id, amount:amount},
function(data)
{
document.getElementById('str_basket').innerHTML = '';
document.getElementById('str_basket').innerHTML = data;
}
);
document.getElementById(id+'_basket_pic').innerHTML = '<img border="0" src="'+path+'/img/bought11.png" height="43" width="55" style="border: 0px">';
document.getElementById('img_basket').src = path + '/img/basket_full.gif';
}
</script>
<script>
function basket_add2(path, id)
{
gid = "grup_"+id;
aid = document.getElementById(gid).value;
// document.getElementById(id+'_basket_pic').innerHTML = '';
// document.getElementById(id+'basket_pic').innerHTML = '<img src="'+path+'/img/loading.gif" border="0">';
amount = document.getElementById(id+'_amount').value;
jsAjaxUtil.PostData(path+'/addtobasket.php', {id:aid, amount:amount},
function(data)
{
document.getElementById('str_basket').innerHTML = '';
document.getElementById('str_basket').innerHTML = data;
}
);
document.getElementById(id+'_basket_pic').innerHTML = '<img border="0" src="'+path+'/img/bought.png" style="border: 0px">';
document.getElementById('img_basket').src = path + '/img/basket_full.gif';
}
</script>
<script language="JavaScript" type="text/javascript">
function ChangeItemInGroup(itemId, item, sectionId) {
document.getElementById('price_' + item).innerHTML = document.getElementById('price_value_' + itemId).value + " руб.";
document.getElementById('quantity_' + item).innerHTML = '<font size="-2">(ост: ' +document.getElementById('quantity_value_' + itemId).value + ')</font>';
backgroundSrc = (imageArr[itemId]) ? imageArr[itemId].src : "/_.gif";
document.getElementById("photo_" + item).style.backgroundImage = "url('" +backgroundSrc+ "')";
document.getElementById("photo_" + item).href = "/shop/detail/" + sectionId + "/" + itemId + "/";
}
</script>
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog.php");?> |