Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Нужна помощь с отображением ссылок в дополнительных полях

Нужна помощь с отображением ссылок в дополнительных полях


     08.10.2012    Общие вопросы по PHP    2495

вопрос
Всем привет, нужна помощь с дополнительными полями в ДЛЕ 9.7.
Суть проблемы - я в настройках доп. полей ставлю отображение в виде ссылки.
Пример.
Содержимое дополнительного поля: "Два Слова"
Полученная ссылка http://site.ru/xfsearch/Два+Слова/
Меня такой расклад не устраивает, хочу чтоб ссылка выглядела http://site.ru/xfsearch/dva-slova/
Для этого в файлах
\engine\engine.php
\engine\modules\functions.php
\engine\modules\search.php
\engine\modules\show.custom.php
\engine\modules\show.full.php
\engine\modules\show.short.php
\engine\modules\topnews.php

функцию относящуюся к дополнительным полям urlencode поменял на totranslit
Было
foreach ($temp_array as $value2) {
                
                                        $value2 = trim($value2);
                                        $value2 = str_replace("'", "'", $value2);
                
                                        if( $config['allow_alt_url'] == "yes" ) $value3[] = "" . $value2 . "";
                                        else $value3[] = "" . $value2 . "";
                                    }

Получилось

foreach ($temp_array as $value2) {
                
                                        $value2 = trim($value2);
                                        $value2 = str_replace("'", "'", $value2);
                
                                        if( $config['allow_alt_url'] == "yes" ) $value3[] = "" . $value2 . "";
                                        else $value3[] = "" . $value2 . "";
                                    }

После проделанных манипуляций, ссылка в дополнительных полях стала показываться в нужном мне виде, т. е. http://site.ru/xfsearch/dva-slova/
но при переходе по ней сайт выдает ошибку
Внимание, обнаружена ошибка
По данному адресу публикаций на сайте не найдено, либо у вас нет доступа для просмотра информации по данному адресу.

А если вручную в адресной строке прописать http://site.ru/xfsearch/Два+Слова/ , то новости отображаются нормально.

В чем может быть проблема? Может надо еще и .htaccess "рихтовать", но я не особый специалист в этом, вот его содержимое по доп полям
# поиск по доп полям
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]

Буду благодарен любой помощи.

Ответил: Sander


Для корректной работы нужно делать обратную транслитерацию перед поиском.
Т.е. после .htaccess, но перед самим поиском. В DLE такая процедура не предусмотрена, и не уверен, что эта транслитерация будет работать корректно...
В общем я немного сомневаюсь в успехе этой затеи.
Зачем делать обратную транслитерацию, потому что в базе хранится не "dva+slova", а "два+слова".
Лично я не вижу особого смысла переделывать таким образом...
Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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