Joomla 1.5 Как делать? Фишки Убираем ограничение на использование кириллицы в URL в стандартных материалах
set3-24

Убираем ограничение на использование кириллицы в URL в стандартных материалах

Рейтинг пользователей: / 12
ХудшийЛучший 

Возникла задача - разрешить русские алиасы для статей для использования кириллицы в URL. Многие сторонние компоненты , например SH404SEF позволяют это делать, однако при сохранении стандартного материала в Joomla 1.5 система не позволяет использовать кириллицу и подставляет вместо нее дату, в случае использования либо заменяет на "-".

Конечно, такая ситуация меня не устраивала, пришлось углубиться в код CMS.

Опущу  тут методы, дам сразу результат - нам необходимо сделать правку в файле /libraries/joomla/database/table/content.php

Ищем нижеследующий кусок

		$this->alias = JFilterOutput::stringURLSafe($this->alias);

		if(trim(str_replace('-','',$this->alias)) == '') {
			$datenow =& JFactory::getDate();
			$this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S");
		}

	

и просто комментируем его.

/*		$this->alias = JFilterOutput::stringURLSafe($this->alias);

		if(trim(str_replace('-','',$this->alias)) == '') {
			$datenow =& JFactory::getDate();
			$this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S");
		}

		
*/

ВНИМАНИЕ!!! Закомментировав все эти строки мы также отключили проверку на не-HTML символы, поэтому если воспользуетесь советом, то ОБЯЗАТЕЛЬНО заполняйте алиас к статье, не использую пробелы и другие спецсимволы!!

Если Вы также хотите использовать кириллицу в алиасах в категориях и разделах необходимо сделать точно такие же правки в /libraries/joomla/database/table/section.php и /libraries/joomla/database/table/category.php

 
Интересная статья? Поделись ей с другими:

Комментарии  

 
0 #25 Юрий_Ю 2011-10-25 14:57
Если кому интересно, то для Joomla 1.7 добавить возможность написания в url-ах нижнее подчеркивание "_"(вместо дефиса или с ним) надо в файле /libraries/joomla/filter/filteroutput.php заменить строку в функции stringURLSafe (у меня строка 77):
$str = preg_replace(ar ray('/\s+/','/[^A-Za-z0-9\-]/'), array('-',''), $str);
на
$str = preg_replace(ar ray('/\s+/','/[^A-Za-z0-9\-_]/'), array('-',''), $str);

в перечне символов добавилось подчеркивание. И геморрой успешно вылечен.
Цитировать
 
 
0 #24 Юлия 2011-02-26 06:09 Спасибо большое! Очень помогло. Но теперь, если название пункта меню состоит более чем из одного слова, вместо пробела появляется "%20". Как это исправить на тире, как у Вас на сайте? Цитировать
 
 
0 #23 Евген 2011-01-06 10:18 не подскажете как тоже самое сделать для компонента MyBlog Цитировать
 
 
0 #22 Евген 2010-12-24 22:39 Спасибо!!! Цитировать
 
 
0 #21 Евген 2010-12-24 22:38 Спасибо, очень помогло! Цитировать
 
 
+1 #20 Alexx1 2010-12-19 22:58 Добрый день! ваша тема помогла очень! переношу статический сайт на джумлу и много урл было с подчеркиванием, одна проблема решилась. но есть еще одна. некоторые урл начинаются с заглавной буквы, т.е. с верхнего регистра. sh404sef не решает проблему, так как переводит все урл в верхний регистр, а править каждый утомительно, да и все остальные ссылки переименовывает . Подскажите как зделать что бы джумла не переводила автоматом все урл в нижний регистр? Цитировать
 
 
+3 #19 Administrator 2010-11-12 18:45 Более правильный вариант - заменяем в preg_match параметр на '/[^A-Za-zА-Яа-яЁё0-9\-]/u'.
В файле libraries\joomla\filter\filteroutpu t.php.
Для yootheme zoo 1.0 также нужно править файлы \administrat or\components\com_zoo\tables\category.php …tables\item.php …tables\catalog.php …framewor k\filteroutpu t.php …controll ers\item.php …controll ers\category.php …controll er\catalog.php
Цитировать
 
 
0 #18 Костас 2010-06-25 09:19 Цитирую Administrator:
Цитирую Костас:
че то вопрос так и остался незамеченным, может все таки кто нибудь поможет? буду ну прям очень благодарен!

Переименовать htaccess.txt в .htaccess и в настройках выставить использовать его (или режим mod_rewrite при использовании 404sef)


СПАСИБО ОГРОМНЕЙШЕЕ!!!! ! ))))
Цитировать
 
 
0 #17 Administrator 2010-06-25 00:18 Цитирую Костас:
че то вопрос так и остался незамеченным, может все таки кто нибудь поможет? буду ну прям очень благодарен!

Переименовать htaccess.txt в .htaccess и в настройках выставить использовать его (или режим mod_rewrite при использовании 404sef)
Цитировать
 
 
0 #16 Костас 2010-06-24 21:08 че то вопрос так и остался незамеченным, может все таки кто нибудь поможет? буду ну прям очень благодарен! Цитировать
 
 
+1 #15 megaultraseo 2010-06-24 10:18 Цитирую Борис:
Не не не, ты это брось.

Вапще не надо core ломать для кирилика. Как ты сказал компонент sh404sef решает замечательно эту проблему.
У меня прекрасные урлы на русском на нескольких сайтах благодаря ш404сеф.

Но кирилик в урле - зло вселснское, это ИМХО.

Кроме всего прочего я немного порылся в Артио и ш404 соввместил некоторые части - реализацию можешь посмотреть на d3rc.ru.


JPAGE_CURRENT_O F_TOTAL - обнови язык
otbaldy.ru
Цитировать
 
 
+1 #14 Костас 2010-06-15 10:01 Поздскажите пожалуйста почему у меня при включении SEO в Joomla 1.5 все ссылки начинаются от /index.php ? К примеру /index.php/страница к примеру на этом сайте ссылки сразу начинаются с кирилицы /как-делать/фишки Подскажите как убрать index.php в начале ссылки. Спасибо. Цитировать
 
 
0 #13 Administrator 2010-06-15 03:17 Цитирую naskolumbia:
То есть вопрос в том - как лучше так "localsite/index.php/Фичи для интерфейса" или так "localsite/index.php/Фичи_для_интерф ейса"??
Подскажите

А с каких пор в ссылках можно ставить пробелы?
Цитировать
 
 
0 #12 naskolumbia 2010-06-15 02:37 То есть вопрос в том - как лучше так "localsite/index.php/Фичи для интерфейса" или так "localsite/index.php/Фичи_для_интерф ейса"??
Подскажите
Цитировать
 
 
+2 #11 tim 2010-05-25 02:31 Цитирую Administrator:
Маленькая добавка - возникла необходимость добавить символ _ в число разрешенных - делаем правку в libraries\joomla\filter\filteroutpu t.php строка 91
[^A-Za-z_0-9\-]/ - тут просто добавили символ _

а как это в резукльтате должно выглядеть в коде? подскажите
Цитировать
 
 
0 #10 Руслан 2010-03-09 15:26 Здравствуйте!
Как можно сделать в sh404sef, чтобы в админке когда переписываешь алисы на русские буквы, все отображалось или по-русски, или хотя бы по латински, но ровно? Потому что, когда прописываешь русские буквы, сохраняешь, смотришь, а всё кракозябрами непонятными и кривыми буквами. Потом не ясно где какой алиас и пункт меню, что к чему подписано, и каждый раз так не на подписываешься. После каждой очистки, очень затруднительно вспомнить.
В идеале отлично было бы, если бы установленный sh404SEF брал алиасы из алисов материалов, пунктов меню, либо разделов, или категорий. Т.е. в материале прописал русскими буквами и сколько раз не чисти, всегда русские и остались, пока на что-то другое не прописал. Очень удобно.

Буду очень благодарен тому кто подскажет как такой вариант реализовать!
Заранее спасибо!
Цитировать
 
 
+1 #9 shapeout 2010-01-09 13:06 Спасибо Вам огромное… Очень помогли… перевозил сайт на новый движок (джумлу), а на старом почти все ссылки с нижним подчеркиванием. вот я и мучился-маялся… а на эти страницы ведь ссылок куча… теперь все буду править. :) СПАСИБО!
ЗЫ: сайт вот этот - www.clubtitan.ru - если вдруг кому нужна помощь с байком - вэлкам.
Цитировать
 
 
0 #8 doc 2009-10-06 08:13 можно ли разрешить УРЛ оканчиваться на слеш? - если да, то как. Цитировать
 
 
0 #7 goodbasis.com 2009-10-01 11:50 Спасибо за инфо. Цитировать
 
 
0 #6 7 2009-09-26 15:24 Бальшое спасибо. Вы мне очень помогли. Цитировать
 

Добавить комментарий


Защитный код
Обновить

Войти на сайт

Ваше мнение

А если бы плагин rusbuttons стал платным?