Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

В одном из разделов название элемента в адресной строке

00 голосов
6
Есть ссылка /odinrazdel/detail.php?SECTION_ID=&ELEMENT_ID=379
Как сделать чтобы только в этом разделе были ссылки /odinrazdel/summoning где summoning название элемента?
спросил 24 Сен, 13 от Kiriel (2,010 баллов)

6 Ответы

00 голосов
Можно записывать название в символьный код элемента (автоматически или руками) и использовать стандартный механизм чпу /odinrazdel/"CODE"/
ответил 02 Окт, 13 от smileplz (8,020 баллов)
00 голосов
Цитата
Max Pryazhevsky пишет:
Можно записывать название в символьный код элемента (автоматически или руками) и использовать стандартный механизм чпу /odinrazdel/"CODE"/

А что можно сделать с кирилицей и названиями в которых несколько слов? Можно кирилицу как-нибудь перевести в транслит, а несколько слов делать так: neskolko_slov_v_nazvanii?
ответил 02 Янв, 14 от Kiriel (2,010 баллов)
00 голосов
Конечно можно. Добавьте функцию перевода кирилицы в транслит и далее сохранение в символьный код элемента.

Т.е. в обрабочике события перед сохранением элемента будет примерно так:
Код
$arFields["CODE"] = ToLower(imTranslite($arFields["NAME"]));
где imTranslite() - ваша функция по переводу в транслит.

Вот пример такой функции:
Код
function imTranslite($str)
{ 
   static $tbl= array( 
      'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ж'=>'g', 'з'=>'z', 
      'и'=>'i', 'й'=>'y', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p', 
      'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'ы'=>'y', 'э'=>'e', 'А'=>'A', 
      'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ж'=>'G', 'З'=>'Z', 'И'=>'I', 
      'Й'=>'Y', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R', 
      'С'=>'S', 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ы'=>'Y', 'Э'=>'E', 'ё'=>"yo", 'х'=>"h", 
      'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"shch", 'ъ'=>"", 'ь'=>"", 'ю'=>"yu", 'я'=>"ya", 
      'Ё'=>"YO", 'Х'=>"H", 'Ц'=>"TS", 'Ч'=>"CH", 'Ш'=>"SH", 'Щ'=>"SHCH", 'Ъ'=>"", 'Ь'=>"", 
      'Ю'=>"YU", 'Я'=>"YA", '.'=>"", '&'=>"i", '"'=>"", ' '=>"_", '№'=>"", '«'=>"", '»'=>"",
      '('=>"", ')'=>"", '—'=>"-", ','=>""
   ); 
   return strtr($str, $tbl); 
}
ответил 18 Апр, 14 от smileplz (8,020 баллов)
00 голосов
Max Pryazhevsky,
А в catalog.section разве можно сделать ЧПУ? Я знаю что ЧПУ можно в news.list
ответил 12 Авг, 14 от Kiriel (2,010 баллов)
00 голосов
А почему нет? Пути к разделам и элементам по умолчанию берутся из настроек инфоблока.
ответил 17 Дек, 14 от smileplz (8,020 баллов)
00 голосов
Цитата
Max Pryazhevsky пишет:
А почему нет? Пути к разделам и элементам по умолчанию берутся из настроек инфоблока.

В настройках каталога единственное что нашел это URL, ведущий на страницу с содержимым элемента раздела
Максимум что смог изменить чтобы ссылка работала это /odinrazdel/detail.php?ELEMENT_ID=#ELEMENT_ID#
В свойствах инфоблока название элемента это othername, но куда его вставить я не понял.
ответил 07 Апр, 15 от Kiriel (2,010 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
0 ответов
0 голосов
3 ответов