Блин.. все сделал на примере. Помогите разобраться...
Вывожу фотоальбомы (обложки и прочее) через catalog.section.list
Тут все нормально. Получается красиво (как я и хотел).
А вот при Выводе через news.list встретился с проблемой.
Если символьный код простой (без тире), например: Ворота (vorota) - URL: сайт.ру/foto/vorota - то все нормально показывает с нужной папки ИБ.
А вот если код ЧЕРЕЗ ДЕФИС/ТИРЕ - то получается бред. Выводятся все элементы из всех папок =(
Полагаю это можно исправить подправив правило в urlrewrite.php - но не хватает квалификации.. Посмотрел доки, но все равное не понятно как правильно в выражение поставить условие. Помогите с этим!
И ещё странная вещь. Нет защиты от дурака. Если написать любой несуществующий код, например: сайт.ру/foto/leviykod ,то так же выводятся ВСЕ ЭЛЕМЕНТЫ всех папок... А нужно выдавать 404 =(
1. Помогите пожалуйста советом. Что подправить.. Чтобы выводилось содержимое папки foto/stroitelstvo-domov нормально, а не все элементы со всех папок.. Стараюсь разобраться сам, не хватает пару советов нормальных.
2. Подскажите внятно, для новичков, что делает конструкция: "ELEMENT_ID" => $_GET["photo"]
3. Подскажите внятно, для новичков, что делает конструкция: "FILTER_NAME" => "galleryFilter"
P.S. Заранее большое спасибо за советы и понимание!
Содержимое сайт.ру/foto/index.php
Содержимое news.list (fotki):
Содержимое urlrewrite.php
Вывожу фотоальбомы (обложки и прочее) через catalog.section.list
Тут все нормально. Получается красиво (как я и хотел).
А вот при Выводе через news.list встретился с проблемой.
Если символьный код простой (без тире), например: Ворота (vorota) - URL: сайт.ру/foto/vorota - то все нормально показывает с нужной папки ИБ.
А вот если код ЧЕРЕЗ ДЕФИС/ТИРЕ - то получается бред. Выводятся все элементы из всех папок =(
Полагаю это можно исправить подправив правило в urlrewrite.php - но не хватает квалификации.. Посмотрел доки, но все равное не понятно как правильно в выражение поставить условие. Помогите с этим!
И ещё странная вещь. Нет защиты от дурака. Если написать любой несуществующий код, например: сайт.ру/foto/leviykod ,то так же выводятся ВСЕ ЭЛЕМЕНТЫ всех папок... А нужно выдавать 404 =(
1. Помогите пожалуйста советом. Что подправить.. Чтобы выводилось содержимое папки foto/stroitelstvo-domov нормально, а не все элементы со всех папок.. Стараюсь разобраться сам, не хватает пару советов нормальных.
2. Подскажите внятно, для новичков, что делает конструкция: "ELEMENT_ID" => $_GET["photo"]
3. Подскажите внятно, для новичков, что делает конструкция: "FILTER_NAME" => "galleryFilter"
P.S. Заранее большое спасибо за советы и понимание!
Содержимое сайт.ру/foto/index.php
Код |
---|
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetPageProperty("title", "Фотогалерея"); $APPLICATION->SetTitle("Фото"); ?> <?if (!isset($_GET["album"]) && !isset($_GET["photo"])):?> <?$APPLICATION->IncludeComponent( "bitrix:catalog.section.list", "phototree", array( "IBLOCK_TYPE" => "photos", "IBLOCK_ID" => "2", "SECTION_ID" => "", "SECTION_CODE" => "", "COUNT_ELEMENTS" => "Y", "TOP_DEPTH" => "2", "SECTION_FIELDS" => array( 0 => "NAME", 1 => "PICTURE", 2 => "", ), "SECTION_USER_FIELDS" => array( 0 => "", 1 => "", ), "VIEW_MODE" => "LIST", "SHOW_PARENT_NAME" => "Y", "SECTION_URL" => "", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "CACHE_GROUPS" => "Y", "ADD_SECTIONS_CHAIN" => "Y" ), false );?> <?endif?> <?if (isset($_GET["album"]) && !isset($_GET["photo"])):?> <?$APPLICATION->IncludeComponent( "bitrix:news.list", "fotki", array( "IBLOCK_TYPE" => "photos", "IBLOCK_ID" => "2", "NEWS_COUNT" => "20", "SORT_BY1" => "SORT", "SORT_ORDER1" => "DESC", "SORT_BY2" => "TIMESTAMP_X", "SORT_ORDER2" => "ASC", "FILTER_NAME" => "galleryFilter", "FIELD_CODE" => array( 0 => "DETAIL_PICTURE", 1 => "", ), "PROPERTY_CODE" => array( 0 => "category", 1 => "", ), "CHECK_DATES" => "Y", "DETAIL_URL" => "", "AJAX_MODE" => "N", "AJAX_OPTION_SHADOW" => "Y", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N", "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "CACHE_FILTER" => "N", "CACHE_GROUPS" => "Y", "PREVIEW_TRUNCATE_LEN" => "", "ACTIVE_DATE_FORMAT" => "d.m.Y", "SET_TITLE" => "N", "SET_STATUS_404" => "N", "INCLUDE_IBLOCK_INTO_CHAIN" => "N", "ADD_SECTIONS_CHAIN" => "Y", "HIDE_LINK_WHEN_NO_DETAIL" => "N", "PARENT_SECTION" => "", "PARENT_SECTION_CODE" => $_GET["album"], "DISPLAY_TOP_PAGER" => "N", "DISPLAY_BOTTOM_PAGER" => "Y", "PAGER_TITLE" => "Фотографии", "PAGER_SHOW_ALWAYS" => "N", "PAGER_TEMPLATE" => "custom", "PAGER_DESC_NUMBERING" => "N", "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", "PAGER_SHOW_ALL" => "Y", "DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "AJAX_OPTION_ADDITIONAL" => "", "SET_BROWSER_TITLE" => "Y", "SET_META_KEYWORDS" => "Y", "SET_META_DESCRIPTION" => "Y", "INCLUDE_SUBSECTIONS" => "Y" ), false );?> <?endif?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> |
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <div class="row"> <ul class="portfolio-list" data-sort-id="portfolio"> <?foreach($arResult["ITEMS"] as $arItem):?> <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <li class="col-md-3 <?=$arProperty["VALUE_XML_ID"];?>"> <div class="portfolio-item"> <a href="<?=$arItem["DETAIL_PICTURE"]["SRC"]?>" class="thumb-i" title="<?=$arItem["NAME"]?>"> <img alt="<?=$arItem["NAME"]?>" class="img-res" src="<?=$arItem["DETAIL_PICTURE"]["SRC"]?>"> <span class="thumb"> <span class="thumb new"><?=$arItem["NAME"]?></span> <span class="thumbl"><?=$arProperty["DISPLAY_VALUE"];?></span> </span> </a> </div> </li> <?endforeach;?> <?endforeach;?> </ul> </div> |
Код |
---|
<? $arUrlRewrite = array( array( "CONDITION" => "#^/foto/([0-9,a-z,-,_]+)/([0-9,a-z,-,_]+)#", "RULE" => "album=$1&photo=$2&misc=$3", "ID" => "", "PATH" => "/foto/index.php", ), array( "CONDITION" => "#^/foto/([0-9,a-z,-,_]+)#", "RULE" => "album=$1&misc=$2", "ID" => "", "PATH" => "/foto/index.php", ), ); ?> |