Прошу помощи! Возникла задача менять шаблоны списка товаров (плиткой или списком) по желанию посетителя. Посмотрел варианты, нашел вот это (то что надо было):
[CODE]Для этого нужно добавить в файл: .../bitrix/имя шаблона/components/bitrix/catalog/имя каталога/section.php
следующий код:
============================================================ ==========
<?/* 1) Сначала считываем из cookie сайта параметр view каталога товаров, который отвечает за выбор шаблона. Если пустые, то ставим шаблон по умолчанию.*/?>
<?$templateName = $APPLICATION->get_cookie('view')?$APPLICATION->get_cookie("view"):"bar";?>
<?/*bar - это название папки с моим шаблоном - который я хочу использовать по умолчанию, свои названия шаблонов можно посмотреть по адресу: bitrix/имя шаблона/components/bitrix/catalog/имя каталога/bitrix/catalog.section/... */?>
<?/* РИСУЕМ КНОПОЧКИ*/?>
<span>ВИД:</span>
<form action="" method="POST">
<input type="submit" name="b1" value="Плитка" <?php if(isset($_POST["b1"])) echo "disabled"; ?>/>
<input type="submit" name="b2" value="Список" <?php if(isset($_POST["b2"])) echo "disabled"; ?>/>
<input type="submit" name="b3" value="Таблица" <?php if(isset($_POST["b3"])) echo "disabled"; ?>/>
</form>
<?/* далее, обрабатываем нажатие кнопок, передаем имя шаблона в переменную и сохраняем значение в cookie, чтобы потом считать, когда перезагрузим страницу*/?>
<?php
if(isset($_POST["b1"]))
{
$templateName = "bar";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b2"]))
{
$templateName = "list";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b3"]))
{
$templateName = "table";
$APPLICATION->set_cookie("view", $templateName);
}
?>
</div>
<?/* применяем шаблон к компоненту. (Заменяем то, что написано у Вас до знака открывающейся скобки массива значений "Array(" на этот код.*/?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.section", $templateName,
Array(
<?/* Сохраняем! Проверяем! Радуемся! =) */?>
[/CODE]сделал все по образу и подобию:
[CODE]<?$templateName = $APPLICATION->get_cookie('view')?$APPLICATION->get_cookie("view"):".default";?>
<?php
if(isset($_POST["b1"]))
{
$templateName = ".default";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b2"]))
{
$templateName = "list";
$APPLICATION->set_cookie("view", $templateName);
}
?>
<form action="" method="POST">
<input type="image" name="b1" value="Плитка" <?php if($templateName == ".default") {echo "src='/bitrix/templates/.../images/plit_red30.png'";} else {echo "src='/bitrix/templates/.../images/plit_grey30.png'";}?>/>
<input type="image" name="b2" value="Список" <?php if($templateName == "list") {echo "src='/bitrix/templates/.../images/line_red30.png'";} else {echo "src='/bitrix/templates/.../images/line_grey30.png'";}?>/>
</form>
[/CODE]кнопочки-картиночки, все меняется, все работает, но только в Chrome, а в других браузерах тыкаешь на смену вида, страница перегружается и ничего не меняется! IE, FireFox - ничего не понимают и я теперь тоже! Прошу помощи!!!
[CODE]Для этого нужно добавить в файл: .../bitrix/имя шаблона/components/bitrix/catalog/имя каталога/section.php
следующий код:
============================================================
<?/* 1) Сначала считываем из cookie сайта параметр view каталога товаров, который отвечает за выбор шаблона. Если пустые, то ставим шаблон по умолчанию.*/?>
<?$templateName = $APPLICATION->get_cookie('view')?$APPLICATION->get_cookie("view"):"bar";?>
<?/*bar - это название папки с моим шаблоном - который я хочу использовать по умолчанию, свои названия шаблонов можно посмотреть по адресу: bitrix/имя шаблона/components/bitrix/catalog/имя каталога/bitrix/catalog.section/... */?>
<?/* РИСУЕМ КНОПОЧКИ*/?>
<span>ВИД:</span>
<form action="" method="POST">
<input type="submit" name="b1" value="Плитка" <?php if(isset($_POST["b1"])) echo "disabled"; ?>/>
<input type="submit" name="b2" value="Список" <?php if(isset($_POST["b2"])) echo "disabled"; ?>/>
<input type="submit" name="b3" value="Таблица" <?php if(isset($_POST["b3"])) echo "disabled"; ?>/>
</form>
<?/* далее, обрабатываем нажатие кнопок, передаем имя шаблона в переменную и сохраняем значение в cookie, чтобы потом считать, когда перезагрузим страницу*/?>
<?php
if(isset($_POST["b1"]))
{
$templateName = "bar";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b2"]))
{
$templateName = "list";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b3"]))
{
$templateName = "table";
$APPLICATION->set_cookie("view", $templateName);
}
?>
</div>
<?/* применяем шаблон к компоненту. (Заменяем то, что написано у Вас до знака открывающейся скобки массива значений "Array(" на этот код.*/?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.section", $templateName,
Array(
<?/* Сохраняем! Проверяем! Радуемся! =) */?>
[/CODE]сделал все по образу и подобию:
[CODE]<?$templateName = $APPLICATION->get_cookie('view')?$APPLICATION->get_cookie("view"):".default";?>
<?php
if(isset($_POST["b1"]))
{
$templateName = ".default";
$APPLICATION->set_cookie("view", $templateName);
}
if(isset($_POST["b2"]))
{
$templateName = "list";
$APPLICATION->set_cookie("view", $templateName);
}
?>
<form action="" method="POST">
<input type="image" name="b1" value="Плитка" <?php if($templateName == ".default") {echo "src='/bitrix/templates/.../images/plit_red30.png'";} else {echo "src='/bitrix/templates/.../images/plit_grey30.png'";}?>/>
<input type="image" name="b2" value="Список" <?php if($templateName == "list") {echo "src='/bitrix/templates/.../images/line_red30.png'";} else {echo "src='/bitrix/templates/.../images/line_grey30.png'";}?>/>
</form>
[/CODE]кнопочки-картиночки, все меняется, все работает, но только в Chrome, а в других браузерах тыкаешь на смену вида, страница перегружается и ничего не меняется! IE, FireFox - ничего не понимают и я теперь тоже! Прошу помощи!!!