Перейти к содержанию
IPS Invision Community 🇷🇺

Модуль страницы


yiuryumtsev

Рекомендуемые сообщения

Господа выручайте, все перерыл немогу понять!

Пытаюсь ссылки модуля статьи привести к другому виду.

в данный момент вот так: mysite.ru/{URL категории, задаются в настройка категории}/{название статьи}-r{id статьи}/

хотелось бы к примеру вот так: mysite.ru/{URL категории, задаются в настройка категории}/{id статьи}.html

Где, что прописать?

Спасибо!

Ссылка на комментарий

Откройте файл applications\cms\sources\Records\Records.php

Найдите строку:

preg_match( '#-r(\d+?)$#', $slug, $matches );

Замените на:

preg_match( '#(\d+?).html$#', $slug, $matches );

Найдите строку:

$recordSlug = ! $this->record_static_furl ? $this->record_dynamic_furl . '-r' . $this->primary_id_field : $this->record_static_furl;

Замените на:

$recordSlug = ! $this->record_static_furl ? $this->primary_id_field . '.html' : $this->record_static_furl;

 

  • Спасибо 1
Ссылка на комментарий

Спасибо! Работает!

Пытаюсь переделать под себя, чет туплю:

Хочу вот так: 1-bla-bla-bla.html

preg_match( '#(\d+?)-[a-z-]+\.html$#', $slug, $matches );

var_dump($matches)  возвращяет array(2) { [0]=> string(18) "1-bla-bla-bla.html" [1]=> string(1) "1" }

а все равно не работает!

 

 

Ссылка на комментарий

Ошибка какая?

Нужно изменить тогда и код где собирается URL-адрес записи.

2 часа назад, anufmikh сказал:

$recordSlug = ! $this->record_static_furl ? $this->primary_id_field . '.html' : $this->record_static_furl;

$recordSlug = ! $this->record_static_furl ? $this->primary_id_field . '-' . $this->record_dynamic_furl . '.html' : $this->record_static_furl;

 

  • Спасибо 1
Ссылка на комментарий

вообщем упростил задачу, исключил переменную:

собираем URL:  $recordSlug = ! $this->record_static_furl ? $this->primary_id_field . '-blabla.html' : $this->record_static_furl;

переходим по ссылке, вот с этим кодом:

preg_match( '#(\d+?)\-blabla.html$#', $slug, $matches );
var_dump($matches);

получаю:

Скрытый текст

1.PNG.0b8821599c8b7b345f1250f66b03740d.PNG

комментирую вар дамп:

preg_match( '#(\d+?)\-blabla.html$#', $slug, $matches );
//var_dump($matches);

получаю страница не доступна:

Скрытый текст

2.PNG.a35dc7b22e0f9699111c616f1ab98062.PNG

вот сам URL

Скрытый текст

3.PNG.e37808ac838e8e8c27d50c2ec3bb5143.PNG

Где собака зарыта?

Ссылка на комментарий

Выражение не верное, и абы лишь бы нельзя подставлять слова. Название статьи должно совпадать со значением в базе данных.

Иначе IPS пытается переадресовать Вас на правильный URL-адрес, но натыкается опять на неверный, итак происходит бесконечно.

  • Спасибо 1
Ссылка на комментарий

Выражение

preg_match( '#(\d+?)-(.*).html$#', $slug, $matches );

Формирование URL-адреса

$recordSlug = ! $this->record_static_furl ? $this->primary_id_field . '-' . $this->record_dynamic_furl . '.html' : $this->record_static_furl;

И еще найдите фрагмент условия

urldecode( str_replace( $matches[0], '', $slug ) ) !== $record->record_dynamic_furl

и замените на

urldecode( $matches[2] ) !== $record->record_dynamic_furl

 

  • Спасибо 1
Ссылка на комментарий

Отлично, помогло!

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

т.е. в корне страницы, категории и базы данных должно прибавляться .html

 

Ссылка на комментарий

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти
×
×
  • Создать...
Вверх
Вверх