В предыдущих версиях cmsms 1.9, 1.12 алиас страницы автоматически записывался латинскими буквами, соответственно адрес страницы состоял только из латинских букв. Это было удобно. В версии 2.х данный функционал был удалён. В результате приходится заполнять алиас вручную, иначе адрес страницы будет состоять из кириллицы.
Данный модуль возвращает прежний функционал. Он не вносит каких либо изменений в код движка. Скачать можно здесь:
http://dev.cmsmadesimple.org/projects/translitalias
Также форкнул и доработал несколько старых модулей, чтобы они могли работать с cmsms 2.x: MysqlDump2, FileBackup2, IPLock2.
Если есть идеи, какие ещё модули имеет смысл реанимировать, напишите здесь.
Модуль TranslitAlias
Re: Модуль TranslitAlias
Реально ли оживить FEU_Auth_LDAP?
Re: Модуль TranslitAlias
Пока доделываю Ajax Made Simple и Polls Made Simple. Потом взгляну на этот.
btAdminer ещё восстановил и обновил до последней версии.
btAdminer ещё восстановил и обновил до последней версии.
Re: Модуль TranslitAlias
Чтобы сделать транслит адресов для новостей, создайте такой UDT:
И добавте его в События NewsArticleAdded и NewsArticleEdited
Code: Select all
$mod = cms_utils::get_module('TranslitAlias');
$db = cmsms()->GetDb();
if ( !isset($params['news_url']) || $params['news_url'] == '' ) {
$news_url = $params['news_id'] . '/' . $mod->Translit($params['title']);
$query = 'UPDATE ' . cms_db_prefix() . 'module_news SET news_url = ? WHERE news_id = ?';
$db->Execute($query, array($news_url, $params['news_id']));
}
Re: Модуль TranslitAlias
Забыл добавить новые адреса в таблицу роутинга.
Исправленный UDT будет выглядеть так:
Исправленный UDT будет выглядеть так:
Code: Select all
$mod = cms_utils::get_module('TranslitAlias');
$db = cmsms()->GetDb();
if ( !isset($params['news_url']) || $params['news_url'] == '' ) {
$news_url = 'news/'.$params['news_id'].'/'.$mod->Translit($params['title']);
$query = 'UPDATE ' . cms_db_prefix() . 'module_news SET news_url = ? WHERE news_id = ?';
$db->Execute($query, array($news_url, $params['news_id']));
news_admin_ops::delete_static_route($params['news_id']);
news_admin_ops::register_static_route($news_url, $params['news_id']);
}
Re: Модуль TranslitAlias
UDT для модуля LISE:
Тег надо добавить в событие PreItemSave
Code: Select all
$obj = $params['item_object'];
$mod = cms_utils::get_module('TranslitAlias');
$obj->alias = $mod->Translit($obj->title);
Re: Модуль TranslitAlias
UDT для модуля CGBlog:
Добавить в события: CGBlogArticleAdded, CGBlogArticleEdited
Code: Select all
$mod = cms_utils::get_module('TranslitAlias');
$db = cmsms()->GetDb();
if ( !isset($params['url']) || $params['url'] == '' ) {
$url = 'blog/'.$params['cgblog_id'].'/'.$mod->Translit($params['title']);
$query = 'UPDATE ' . cms_db_prefix() . 'module_cgblog SET url = ? WHERE cgblog_id = ?';
$db->Execute($query, array($url, $params['cgblog_id']));
}
Re: Модуль TranslitAlias
Здравствуйте!
Подскажите пожалуйста куда (вернее в какой шаблон или как правильно называется) вставить ваш код?
сам модуль я скачал и установил, при создании страницы на кириллице алиас появляется только после сохранении её, а вот как вы пишите что и основной URL будет транслитом у меня не получилось - основной урл все так же на кириллице идет, в более ранних версиях (кажется 1.9) все как то было автоматом и я даже не парился, а со второй версией как на вордпресс перешёл - очень неудобная и запутанная система получилась...
Буду признателен за помощь!
Подскажите пожалуйста куда (вернее в какой шаблон или как правильно называется) вставить ваш код?
сам модуль я скачал и установил, при создании страницы на кириллице алиас появляется только после сохранении её, а вот как вы пишите что и основной URL будет транслитом у меня не получилось - основной урл все так же на кириллице идет, в более ранних версиях (кажется 1.9) все как то было автоматом и я даже не парился, а со второй версией как на вордпресс перешёл - очень неудобная и запутанная система получилась...
Буду признателен за помощь!