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

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


yiuryumtsev

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

Опубликовано

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

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

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

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

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

Спасибо!

Опубликовано

Это можно делать вручную при создании статьи.

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

image.png

 

  • Спасибо 1
Опубликовано

при создании статьи можно сделать индивидуально для каждой статьи, а как сделать массово на подобии переопределения для ЧПУ?

Опубликовано

Просто так это не изменить, в любом случае нужно лезть в код или писать плагин.

  • Спасибо 1
Опубликовано
Только что, anufmikh сказал:

Просто так это не изменить, в любом случае нужно лезть в код или писать плагин.

Собственно в этом и вопрос! Куда именно в код?

Опубликовано

Откройте файл 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

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

Опубликовано

Ошибка "Сайт ... выполнил переадресацию слишком много раз."?

  • Спасибо 1
Опубликовано

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

Иначе 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

 

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...