yiuryumtsev Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Господа выручайте, все перерыл немогу понять! Пытаюсь ссылки модуля статьи привести к другому виду. в данный момент вот так: mysite.ru/{URL категории, задаются в настройка категории}/{название статьи}-r{id статьи}/ хотелось бы к примеру вот так: mysite.ru/{URL категории, задаются в настройка категории}/{id статьи}.html Где, что прописать? Спасибо! Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Это можно делать вручную при создании статьи. Скрытый текст 1 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 при создании статьи можно сделать индивидуально для каждой статьи, а как сделать массово на подобии переопределения для ЧПУ? Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Просто так это не изменить, в любом случае нужно лезть в код или писать плагин. 1 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 Только что, anufmikh сказал: Просто так это не изменить, в любом случае нужно лезть в код или писать плагин. Собственно в этом и вопрос! Куда именно в код? Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Сейчас напишу, ждите. 1 Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Откройте файл 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 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 Спасибо! Работает! Пытаюсь переделать под себя, чет туплю: Хочу вот так: 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" } а все равно не работает! Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Ошибка какая? Нужно изменить тогда и код где собирается 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 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 вообщем упростил задачу, исключил переменную: собираем 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); получаю: Скрытый текст комментирую вар дамп: preg_match( '#(\d+?)\-blabla.html$#', $slug, $matches ); //var_dump($matches); получаю страница не доступна: Скрытый текст вот сам URL Скрытый текст Где собака зарыта? Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 регулярка вроде правильная regex101.com/r/wfS4nn/1 Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Ошибка "Сайт ... выполнил переадресацию слишком много раз."? 1 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 Да она самая! Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Выражение не верное, и абы лишь бы нельзя подставлять слова. Название статьи должно совпадать со значением в базе данных. Иначе IPS пытается переадресовать Вас на правильный URL-адрес, но натыкается опять на неверный, итак происходит бесконечно. 1 Ссылка на комментарий
anufmikh Опубликовано 2 декабря, 2018 Поделиться Опубликовано 2 декабря, 2018 Выражение 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 Ссылка на комментарий
yiuryumtsev Опубликовано 2 декабря, 2018 Автор Поделиться Опубликовано 2 декабря, 2018 Отлично, помогло! Очередной вопрос, как все остальные ссылки "страница, база данных, категория" привести к тому же виду. т.е. в корне страницы, категории и базы данных должно прибавляться .html Ссылка на комментарий
Рекомендуемые сообщения
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти