Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
Netcat 6: профессиональный конструктор сайтов Netcat 6
20.02.2013, 10:13
Gorjelin
Угаев Евгений Анатольевич

Зарегистрирован:
2010-02-26
Сообщений: 18

Здравствуйте!

Делаю портал на NetCat5 Corporate.

есть раздел - спецпредложения на туристическом сайте, они находятся внутри раздела личный кабинет (являются инфоблоком), то есть урл у них /lk/спецпредложения...
спецпр. геренируются зарегистрированными юзерами-турфирамаи в личном кабинете и выводятся в разных разделах, типа так: http://74tyra.ur-web.ru/country/country_28.html
есть задачи:
1. нужно вывести список всех предложений с фильтром поиска по ним.
2. нужно чтобы УРЛ этого списка не содержал /LK/ - и были хлебные крошки без "Личный кабинет"
3 у спецпр. есть подробное описание, ссылка на подробное описание содержит в адресе /lk/ , и соотсетсвующие хлебные крошки - а мне этого совсем не надо

Подскажите пожалуйста, как реализовать правильно и без "костылей" - вывод списка спецпредложений, и их подробного описания так, как это нужно.

Спасибо!
20.02.2013, 14:08
Gorjelin
Угаев Евгений Анатольевич

Зарегистрирован:
2010-02-26
Сообщений: 18

Проблему решили. Если кому нужно:

С версии 5.02 появилась возможность использовать "относительные ссылки" с помощью $ignore_link.
Подробнее есть в документации: http://netcat.ru/developes/docs/components/system-settings/

Спасибо техподдержке!
12.09.2013, 17:54
intrell
ООО "Интрелл"

Зарегистрирован:
2008-05-05
Сообщений: 60

Если ссылка состоит из ключевика, то при переходе по $fullLink отображается 404 ошибка. URL верный по ID открывает страницу нормально.

<a href="https://hubhost.ru/?ref=45">HUBHOST.ru</a> – использую хостинг для NetCat
25.09.2013, 14:53
Гость
Гость

та же проблема, при включенном $ignore_link по ключевику страница отображается только в родительском разделе. NetCat 5.20 Extra.
12.04.2019, 19:06
intrell
ООО "Интрелл"

Зарегистрирован:
2008-05-05
Сообщений: 60

Пишу решение здесь, чтобы не потерялось:

Следующий код решает проблему.

В файле s_e404.php в строке 91 добавить после:
Код:
Код:
$storage[$cache_key] = $nc_core->db->get_row(
"SELECT m.`Message_ID`, m.`Keyword`
FROM `Message{$classID}` AS m
WHERE m.`Sub_Class_ID` = {$cc}
AND m.`Keyword` = '{$nc_core->db->escape($keyword)}' {$date_condition}",
ARRAY_N
);



следующий код:

Код:
if(!$storage[$cache_key]) {
// загружаем настройки компоненты и смотрим значение переменной $ignore_link
$cc_env = $nc_core->sub_class->get_by_id($cc, null, $nc_ctpl);
$file_class = new nc_tpl_component_view($nc_core->CLASS_TEMPLATE_FOLDER, $nc_core->db);
$file_class->load($cc_ev['Real_Class_ID'], $cc_env['File_Path'], $cc_env['File_Hash']);
$nc_parent_field_path = $file_class->get_parent_field_path('Settings');
$nc_field_path = $file_class->get_field_path('Settings');
$component_body = nc_check_file($file_class->get_parent_field_path('Settings')) ? nc_get_file($file_class->get_parent_field_path('Settings')) : null;
$component_body .= nc_check_file($file_class->get_field_path('Settings')) ? nc_get_file($file_class->get_field_path('Settings')) : null;

// ищем $ignore_link = 1 или $ignore_link = true
preg_match('/\$ignore_link.*=[\s]*(1|true)/iu', $component_body, $match);

// если $ignore_link установлена, то ищем объект без учета $sub && $cc
if($match[0]) {
$storage[$cache_key] = $nc_core->db->get_row(
"SELECT m.`Message_ID`, m.`Keyword`
FROM `Message{$classID}` AS m
WHERE m.`Keyword` = '{$nc_core->db->escape($keyword)}' {$date_condition}",
ARRAY_N
);
}
}


<a href="https://hubhost.ru/?ref=45">HUBHOST.ru</a> – использую хостинг для NetCat
198 196 2019-04-12 19:06:29 12919
Описание проекта