Jump to content
  • 0

Как попасть на страницу детального отображения элемента?


maritca
 Share

Question

Создала новый инфоблок.

Страница со списком элементов - http://www.shark.ru/sharknew/production.php

В инфоблоке, в полях URL страницы раздела и URL детального просмотра прописала, соответственно:

#SITE_DIR#/sharknew/production.php?SECTION_ID=#ID#

#SITE_DIR#/sharknew/production.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ID#

Не могу попасть со страницы со списком на страницу детального просмотра. Где может быть ошибка? Что ещё может быть в URL'ах, кроме production.php? Как узнать, что именно нужно прописать?

На всякий случай, кидаю php код страницы production.php (может, с ним что-то не так?):

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Продукция");
?><?$APPLICATION->IncludeComponent(
"bitrix:catalog.section",
"",
Array(
"AJAX_MODE" => "N",
"IBLOCK_TYPE" => "shark_catalog",
"IBLOCK_ID" => "22",
"SECTION_ID" => "316",
"SECTION_CODE" => "",
"SECTION_USER_FIELDS" => array(),
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"FILTER_NAME" => "arrFilter",
"INCLUDE_SUBSECTIONS" => "Y",
"SHOW_ALL_WO_SECTION" => "N",
"SECTION_URL" => "",
"DETAIL_URL" => "",
"BASKET_URL" => "/personal/basket.php",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"ADD_SECTIONS_CHAIN" => "N",
"DISPLAY_COMPARE" => "N",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "N",
"PAGE_ELEMENT_COUNT" => "30",
"LINE_ELEMENT_COUNT" => "3",
"PROPERTY_CODE" => array(),
"PRICE_CODE" => array(),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRODUCT_PROPERTIES" => array(),
"USE_PRODUCT_QUANTITY" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_NOTES" => "",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "Y",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_ADDITIONAL" => ""
),
false
);?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Edited by maritca
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

в битриксе стандартная страница детального просмотра - detail.php, это если старые компоненты.

Если новые, то все на index.php работает

у вас доступ же есть к админке? зайдите в нужный каталог и посмотрите, какие там файлы лежат, в них посмотрите, какие компоненты подключены.

у вас подключен компонент bitrix:catalog.section - это отображение разделов

чтобы сделать детальный просмотр, нужна страница, на которой будет компонент bitrix:catalog.element, по-моему так называется

Link to comment
Share on other sites

  • 0

Просто неправильно выбран компонент.

Следует использовать комплексный компонент catalog. Он содержит в себе и список разделов, и список товаров в разделе, и детальную страницу товара.

И ещё лучше не делать страницы с именами вида production.php, а создавать разделы, и в них ставить вызовы компонентов в index.php. Тогда будет несколько проще настроить красивые адреса чпу.

Link to comment
Share on other sites

  • 0

Я ничего не поняла.

Люди добрые, объясните кто-нибудь пошагово, пожалуйста.

У меня сейчас ситуация такая.

Есть инфоблок "IBLOCK_TYPE" => "shark_catalog"

Есть страница http://www.shark.ru/auto_id/s%D1%81anners.php, с которой я хочу обращаться к части каталога, которая начинается с "SECTION_ID" => "316"

Код страницы:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Продукция");
?><?$APPLICATION->IncludeComponent(
"bitrix:catalog.section",
".default-2",
Array(
"AJAX_MODE" => "N",
"IBLOCK_TYPE" => "shark_catalog",
"IBLOCK_ID" => "22",
"SECTION_ID" => "316",
"SECTION_CODE" => "",
"SECTION_USER_FIELDS" => array(),
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"FILTER_NAME" => "arrFilter",
"INCLUDE_SUBSECTIONS" => "Y",
"SHOW_ALL_WO_SECTION" => "N",
"SECTION_URL" => "",
"DETAIL_URL" => "",
"BASKET_URL" => "/personal/basket.php",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"ADD_SECTIONS_CHAIN" => "N",
"DISPLAY_COMPARE" => "N",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "N",
"PAGE_ELEMENT_COUNT" => "30",
"LINE_ELEMENT_COUNT" => "3",
"PROPERTY_CODE" => array(),
"PRICE_CODE" => array(),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRODUCT_PROPERTIES" => array(),
"USE_PRODUCT_QUANTITY" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_NOTES" => "",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "Y",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_ADDITIONAL" => ""
),
false
);?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

На этапе отображения секции 316 всё нормально. Но если я дальше жму, чтобы попасть в детальное описание элемента, происходит ошибка.

В редактировании инфоблока в строчке "URL страницы детального просмотра" прописано: #SITE_DIR#/products.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ID#

Я создала новую страницу products.php, где прописала следующее:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Продукция");
?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.element", ".default", array(
"IBLOCK_TYPE" => "shark_catalog",
"IBLOCK_ID" => "12",
"BASKET_URL" => "/personal/basket.php",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"SEF_MODE" => "N",
"SEF_FOLDER" => "/html/",
"AJAX_MODE" => "N",
"AJAX_OPTION_SHADOW" => "Y",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "N",
"USE_FILTER" => "N",
"USE_REVIEW" => "N",
"USE_COMPARE" => "N",
"PRICE_CODE" => array(
),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRICE_VAT_SHOW_VALUE" => "N",
"SHOW_TOP_ELEMENTS" => "N",
"TOP_ELEMENT_COUNT" => "9",
"TOP_LINE_ELEMENT_COUNT" => "2",
"TOP_ELEMENT_SORT_FIELD" => "sort",
"TOP_ELEMENT_SORT_ORDER" => "asc",
"TOP_PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"PAGE_ELEMENT_COUNT" => "30",
"LINE_ELEMENT_COUNT" => "2",
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"LIST_PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"INCLUDE_SUBSECTIONS" => "Y",
"LIST_META_KEYWORDS" => "-",
"LIST_META_DESCRIPTION" => "-",
"LIST_BROWSER_TITLE" => "-",
"DETAIL_PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"DETAIL_META_KEYWORDS" => "-",
"DETAIL_META_DESCRIPTION" => "-",
"DETAIL_BROWSER_TITLE" => "-",
"LINK_IBLOCK_TYPE" => "",
"LINK_IBLOCK_ID" => "",
"LINK_PROPERTY_SID" => "",
"LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "Y",
"AJAX_OPTION_ADDITIONAL" => "",
"VARIABLE_ALIASES" => array(
"SECTION_ID" => "SECTION_ID",
"ELEMENT_ID" => "ELEMENT_ID",
)
),
false
);?>
<div style="text-align: justify; "></div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

По-прежнему не могу попасть на страницу детального просмотра. В чём ошибка/недоработка?

Пробовала в IncludeComponent писать как "bitrix:catalog.element", так и "bitrix:catalog".

Link to comment
Share on other sites

  • 0

зря конечно вы идёте самым сложным путём.

Вам будет сильно неудобно убрать все эти нагромождения и вместо них поставить один комплексный компонент, который просто работает?

Если такое допустимо, сделайте так. Убережёт ещё от ряда проблем в будущем.

Здесь же навскидку вижу например такую ошибку: в параметрах детального компонента начисто отсутствует ELEMENT_ID, а он нужен. Без него компонент просто не знает, какой элемент отображать.

допишите "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"] в параметры.

вдогонку: http://dev.1c-bitrix.ru/user_help/content/iblock/components_2/catalog/catalog_element.php

Link to comment
Share on other sites

  • 0

зря конечно вы идёте самым сложным путём.

Вам будет сильно неудобно убрать все эти нагромождения и вместо них поставить один комплексный компонент, который просто работает?

Для меня битрикс - тёмный лес (равно как и программирование вообще). Я делаю всё по образцу сделанных раннее каталогов, а так я вообще не понимаю, что делать, что значит "убрать все нагромождения и поставить один комплексный компонент"? Откуда убрать? Что именно и куда поставить? %)

И куда именно прописать "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"]? Если в products.php, то не помогло...

Edited by maritca
Link to comment
Share on other sites

  • 0

зря конечно вы идёте самым сложным путём.

Вам будет сильно неудобно убрать все эти нагромождения и вместо них поставить один комплексный компонент, который просто работает?

Для меня битрикс - тёмный лес (равно как и программирование вообще). Я делаю всё по образцу сделанных раннее каталогов, а так я вообще не понимаю, что делать, что значит "убрать все нагромождения и поставить один комплексный компонент"? Откуда убрать? Что именно и куда поставить? %)

А в вашем случае программирования не требуется вообще.

Если следовать уже этому ошибочному пути до конца, то надо в параметры ELEMENT_ID добавить. Но есть вариант куда более простой и чистый. Через несколько минут нарисую небольшую инструкцию.

Link to comment
Share on other sites

  • 0

А как сделать так, чтобы попадать не в весь каталог, а какую-то определённую его часть?

Я добавила в код

"SECTION_ID" => "316",

"SECTION_CODE" => "",

Но тогда опять не могу попасть на страницу детального просмотра компонента

Edited by maritca
Link to comment
Share on other sites

  • 0

ёлки ж :)

в вашем случае самое правильное — закрыть код и не вспоминать о его существовании, пока не научитесь простое делать просто.

Ведь действительно через режим правки параметры устанавливаются удобнее и нагляднее, и вероятность накосячить там существенно меньше.

Часть каталога — это один из его разделов?

Вообще, какова общая задача? Нужно сделать каталог, а затем в отдельный раздел сайта вывести одну из его секций?

Если так, то на отдельном разделе всё же ставится catalog.section, но в нём главное прописать адреса правильно.

И в настройках самого инфоблока должны быть прописаны адреса.

Это всё можно сделать, ни разу не открывая код. Настоятельно рекомендую именно так и сделать.

На форуме я не постоянно, если что, skype: syabrowka, gtalk/gmail: wildhind@tut.by

Link to comment
Share on other sites

  • 0

ёлки ж :)

в вашем случае самое правильное — закрыть код и не вспоминать о его существовании, пока не научитесь простое делать просто.

Ведь действительно через режим правки параметры устанавливаются удобнее и нагляднее, и вероятность накосячить там существенно меньше.

Часть каталога — это один из его разделов?

Вообще, какова общая задача? Нужно сделать каталог, а затем в отдельный раздел сайта вывести одну из его секций?

Если так, то на отдельном разделе всё же ставится catalog.section, но в нём главное прописать адреса правильно.

И в настройках самого инфоблока должны быть прописаны адреса.

Это всё можно сделать, ни разу не открывая код. Настоятельно рекомендую именно так и сделать.

На форуме я не постоянно, если что, skype: syabrowka, gtalk/gmail: wildhind@tut.by

Да, часть каталога - это его раздел.

catalog.section я поставила, номер секции тоже. Собственно, в итоговом варианте вышло всё так, как и было сначала. То есть ничего не изменилось.

Постучалась к Вам в скайп.

Кстати, если я на вновь созданной странице убираю в адресной строке часть, которая ведёт к элементу, то есть остаётся - http://www.shark.ru/auto_id/skans/316, то тоже ничего не происходит. Я думала, по идее, что должен остаться один раздел...

Edited by maritca
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy