Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сформировать ЧПУ новости с помощью дополнительного поля?

Как сформировать ЧПУ новости с помощью дополнительного поля?


     03.03.2016    Все вопросы » Общие вопросы по PHP    1584

вопрос
Подскажите пожалуйста, как сформировать ЧПУ с помощью дополнительного поля.

Например было:
/1-news.html


Должно быть:
/1-news-2016.html


Пытаюсь сделать вот так:
Нахожу файлы правки добавление новости: engine/inc/addnews.php | engine/inc/editnews.php

Нахожу:
if( trim( $_POST['alt_name'] ) == "" or ! $_POST['alt_name'] ) $alt_name = totranslit( stripslashes( $title ) );
    else $alt_name = totranslit( stripslashes( $_POST['alt_name'] ) );


Правлю до такого состояния:


$xfields_pole = xfieldsdataload($row['xfields']);

if( trim( $_POST['alt_name'] ) == "" or ! $_POST['alt_name'] ) $alt_name = totranslit( stripslashes( $title . "-" . $xfields_pole['year'] ) );
else $alt_name = totranslit( stripslashes( $_POST['alt_name'] ) );


Подскажите что мне еще нужно добавить чтобы заработало???

Ответил: PunPun


Открыть файлы /engine/inc/addnews.php найти
if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $title ), true, false );
else $alt_name = totranslit( stripslashes( $alt_name ), true, false );
Заменить на :
$year = $db->safesql($_POST['xfield']['year']);
if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $alt_name . "-" . $year ), true, false );
else $alt_name = totranslit( stripslashes( $alt_name . "-" . $year ), true, false );
Открыть /engine/inc/editnews.php найти
if( trim( $_POST['alt_name'] ) == "" or ! $_POST['alt_name'] ) $alt_name = totranslit( stripslashes( $title ) );
else $alt_name = totranslit( stripslashes( $_POST['alt_name'] ) );
Заменить на :
$year = $db->safesql($_POST['xfield']['year']);    
if( trim( $_POST['alt_name'] ) == "" or ! $_POST['alt_name'] ) $alt_name = totranslit( stripslashes( $title . "-" . $year ) );
else $alt_name = totranslit( stripslashes( $_POST['alt_name'] ) );

6 комментариев

aluminoter
Юзер

aluminoter - 3 марта 2016 22:44 -

А без дополнительного запроса в БД никак нельзя?

LazyDev
PHP-developer

LazyDev - 3 марта 2016 22:46 -

aluminoter, :D какой запрос?

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

aluminoter
Юзер

aluminoter - 3 марта 2016 22:48 -

Туплю!!!

aluminoter
Юзер

aluminoter - 3 марта 2016 22:47 -

Спасибо все четко!!!!

aluminoter
Юзер

aluminoter - 3 марта 2016 22:53 -

Хотя вот так нельзя делать:


else $alt_name = totranslit( stripslashes( $_POST['alt_name'] . "-" . $year ) );


При каждом редактировании новости будет добавляться год.

Лучше чтобы это строчка оставалась в исходном состоянии.


else $alt_name = totranslit( stripslashes( $_POST['alt_name'] ) );

LazyDev
PHP-developer

LazyDev - 3 марта 2016 23:00 -

aluminoter, я уже подправил это в коде.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх