Автоматическое формирование урла блога

Делается так:

Возьмём случай, когда урл совсем руками запрещаем добавлять (прощё описывать)

1. Убираем с формы поле для урла.

2. В \classes\actions\ActionBlog.class.php
protected function checkBlogFields($oBlog=null) {


добавим перед
/**
* Проверяем есть ли название блога
*/

следующие строки
$_REQUEST['blog_url'] = strtolower($this->translitMe(getRequest('blog_title')));

и добавим в этом классе метод

	/**
	 * Переводим название блога в транслит
	 *
	 * @return unknown
	 */
	protected function translitMe($title) {
		$iso = array(
		   "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
		   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
		   "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
		   "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
		   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
		   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
		   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
		   "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
		   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
		   "е"=>"e","ё"=>"yo","ж"=>"zh",
		   "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
		   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
		   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
		   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
		   "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
		);
		return strtr($title, $iso);
	}

3 комментария

avatar
Мне на эту тему предлагали сразу такое название:

— Конкурсные работы в номинации «Дизайн проекта Live Street по умолчанию»

И кстати, оформите это как код плиз. Иначе как это будет работать вообще:
«»«=>»«,»«»=>«»,«—»=>«-»
  • Carw
  • 0
avatar
Ага изменил.

По хорошему должна быть возможность вводить руками и автоматическое формирование. Это просто пример того как можно сделать в самом простом случае.
avatar
Я по сути тоже эту задачу решал здесь: http://livestreet.ru/blog/tips_and_tricks/746.html. Вроде работает :-)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.