/*==============================================================================
Title: AutoAliasRus2Lat
Category: Plugin
Author: Predvoditelev Sergey
Author URI: http://predvoditelev.ru/blog/
Version: 1.0.0
Last Update: 07.12.2007 19:30
==============================================================================*/
/*==============================================================================
Описание:
Данный плагин при сохранении страницы автоматически создает псевдоним (Alias)
для страницы на основе её заголовка (Page Title), при этом символы кирилицы
заменяются на транслит.
==============================================================================*/
/*==============================================================================
Данный плагин основан на популярном плагине для WordPress - RusToLat.
Побробнее об RusToLat:
Plugin Name: RusToLat
Plugin URI: http://mywordpress.ru/plugins/rustolat/
Description: This plugin convert cyrillic characters in post title to latin characters. Very usefull for russian-speaking users of Wordpress. You can use this plugin for creating human-readable links. Thanks to Alexander Shilyaev for idea. Send your suggestions and critics to <a href="mailto:[email protected]">[email protected]</a>.
Author: Anton Skorobogatov <[email protected]>
Contributor: Andrey Serebryakov <[email protected]>
Author URI: http://skorobogatov.ru/
Version: 0.3
==============================================================================*/
// Вы можете выбрать стандарт, по которому будет производится транслитерация заголовков.
// off - Отключена
// iso - ISO 9-95
// gost - ГОСТ 16876-71
// По-умолчанию используется ISO 9-95
$rtl_standard = 'iso';
global $alias;
global $pagetitle;
$gost = array(
"Є"=>"EH","І"=>"I","і"=>"i","№"=>"#","є"=>"eh",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"jo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya"
);
$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"
);
switch ($rtl_standard) {
case 'off':
$alias = $pagetitle;
break;
case 'gost':
$alias = strtr($pagetitle, $gost);
break;
default:
$alias = strtr($pagetitle, $iso);
break;
}
$alias = strtolower( $alias );
$alias = preg_replace('/&.+?;/', '', $alias); // kill entities
$alias = str_replace( '_', '-', $alias );
$alias = preg_replace('/[^a-z0-9\s-.]/', '', $alias);
$alias = preg_replace('/\s+/', '-', $alias);
$alias = preg_replace('|-+|', '-', $alias);
$alias = trim($alias, '-');
Висит на событии OnBeforeDocFormSave.