Возникла задача - разрешить русские алиасы для статей для использования кириллицы в 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 #26 Алексей 15.12.2012 22:28
Подскажите пожалуйста. А как сделать, чтобы заглавная буква не менялась на главную?
Joomla 2.5
Юрий_Ю
+2 #25 Юрий_Ю 25.10.2011 14:57
:lol:
Если кому интересно, то для Joomla 1.7 добавить возможность написания в url-ах нижнее подчеркивание "_"(вместо дефиса или с ним) надо в файле /libraries/joom la/filter/filte routput.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 Юлия 26.02.2011 06:09
Спасибо большое! Очень помогло. Но теперь, если название пункта меню состоит более чем из одного слова, вместо пробела появляется "%20". Как это исправить на тире, как у Вас на сайте?
Евген
0 #23 Евген 06.01.2011 10:18
не подскажете как тоже самое сделать для компонента MyBlog
Евген
0 #22 Евген 24.12.2010 22:39
Спасибо!!!
Евген
0 #21 Евген 24.12.2010 22:38
Спасибо, очень помогло!
Alexx1
+1 #20 Alexx1 19.12.2010 22:58
Добрый день! ваша тема помогла очень! переношу статический сайт на джумлу и много урл было с подчеркиванием, одна проблема решилась. но есть еще одна. некоторые урл начинаются с заглавной буквы, т.е. с верхнего регистра. sh404sef не решает проблему, так как переводит все урл в верхний регистр, а править каждый утомительно, да и все остальные ссылки переименовывает . Подскажите как зделать что бы джумла не переводила автоматом все урл в нижний регистр?
Administrator
+3 #19 Administrator 12.11.2010 18:45
Более правильный вариант - заменяем в preg_match параметр на '/[^A-Za-zА-Яа-яЁё0-9\-]/u'.
В файле libraries\joomla\filter\filteroutput.php.
Для yootheme zoo 1.0 также нужно править файлы \administrator\ components\com_ zoo\tables\cate gory.php ...tables\item. php ...tables\catal og.php ...framework\fi lteroutput.php ...controllers\ item.php ...controllers\ category.php ...controller\c atalog.php
Костас
0 #18 Костас 25.06.2010 09:19
Цитирую Administrator:
Цитирую Костас:
че то вопрос так и остался незамеченным, может все таки кто нибудь поможет? буду ну прям очень благодарен!

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


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

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

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

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

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


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

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

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


В идеале отлично было бы, если бы установленный sh404SEF брал алиасы из алисов материалов, пунктов меню, либо разделов, или категорий. Т.е. в материале прописал русскими буквами и сколько раз не чисти, всегда русские и остались, пока на что-то другое не прописал. Очень удобно.

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

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


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

Последние комментарии

  • Данное сообщение размещено здесь с помощью XRumer + XEvil 4.0 XEvil 4.0 - революционное приложение, способное ...

    Подробнее...

     
  • Данное сообщение размещено здесь с помощью XRumer + XEvil 4.0 XEvil 4.0 - революционное приложение, способное ...

    Подробнее...

     
  • В любом случае это будет инструкция, постараюсь конечно максимально полно, но инструкция как выявлять ...

    Подробнее...

     
  • Ок жду. у меня почти 120 сайтов из них 90 на джумле разных версий ) так что мне это важно поэтому ...

    Подробнее...

     
  • Да, это важная часть. Проблема в том что айболит видит не всё. То есть это мера необходимая, но ...

    Подробнее...

Вы смотрели