вопрос
Всем привет, нужна помощь с дополнительными полями в ДЛЕ 9.7.
Суть проблемы - я в настройках доп. полей ставлю отображение в виде ссылки.
Пример.
Содержимое дополнительного поля: "Два Слова"
Полученная ссылка http://site.ru/xfsearch/Два+Слова/
Меня такой расклад не устраивает, хочу чтоб ссылка выглядела http://site.ru/xfsearch/dva-slova/
Для этого в файлах
функцию относящуюся к дополнительным полям urlencode поменял на totranslit
Было
Получилось
После проделанных манипуляций, ссылка в дополнительных полях стала показываться в нужном мне виде, т. е. http://site.ru/xfsearch/dva-slova/
но при переходе по ней сайт выдает ошибку
А если вручную в адресной строке прописать http://site.ru/xfsearch/Два+Слова/ , то новости отображаются нормально.
В чем может быть проблема? Может надо еще и .htaccess "рихтовать", но я не особый специалист в этом, вот его содержимое по доп полям
Буду благодарен любой помощи.
Суть проблемы - я в настройках доп. полей ставлю отображение в виде ссылки.
Пример.
Содержимое дополнительного поля: "Два Слова"
Полученная ссылка 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]
Буду благодарен любой помощи.
Для корректной работы нужно делать обратную транслитерацию перед поиском.
Т.е. после .htaccess, но перед самим поиском. В DLE такая процедура не предусмотрена, и не уверен, что эта транслитерация будет работать корректно...
В общем я немного сомневаюсь в успехе этой затеи.
Зачем делать обратную транслитерацию, потому что в базе хранится не "dva+slova", а "два+слова".
Лично я не вижу особого смысла переделывать таким образом...
Т.е. после .htaccess, но перед самим поиском. В DLE такая процедура не предусмотрена, и не уверен, что эта транслитерация будет работать корректно...
В общем я немного сомневаюсь в успехе этой затеи.
Зачем делать обратную транслитерацию, потому что в базе хранится не "dva+slova", а "два+слова".
Лично я не вижу особого смысла переделывать таким образом...