Модуль TranslitAlias

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Модуль TranslitAlias

Post by wdwp »

В предыдущих версиях cmsms 1.9, 1.12 алиас страницы автоматически записывался латинскими буквами, соответственно адрес страницы состоял только из латинских букв. Это было удобно. В версии 2.х данный функционал был удалён. В результате приходится заполнять алиас вручную, иначе адрес страницы будет состоять из кириллицы.
Данный модуль возвращает прежний функционал. Он не вносит каких либо изменений в код движка. Скачать можно здесь:
http://dev.cmsmadesimple.org/projects/translitalias

Также форкнул и доработал несколько старых модулей, чтобы они могли работать с cmsms 2.x: MysqlDump2, FileBackup2, IPLock2.
Если есть идеи, какие ещё модули имеет смысл реанимировать, напишите здесь.
User avatar
iturbay
Forum Members
Forum Members
Posts: 85
Joined: Mon Sep 29, 2014 5:38 am

Re: Модуль TranslitAlias

Post by iturbay »

Реально ли оживить FEU_Auth_LDAP?
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Re: Модуль TranslitAlias

Post by wdwp »

Пока доделываю Ajax Made Simple и Polls Made Simple. Потом взгляну на этот.
btAdminer ещё восстановил и обновил до последней версии.
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Re: Модуль TranslitAlias

Post by wdwp »

Чтобы сделать транслит адресов для новостей, создайте такой UDT:

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']));
}
И добавте его в События NewsArticleAdded и NewsArticleEdited
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Re: Модуль TranslitAlias

Post by wdwp »

Забыл добавить новые адреса в таблицу роутинга.
Исправленный 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']);
}
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Re: Модуль TranslitAlias

Post by wdwp »

UDT для модуля LISE:

Code: Select all

$obj = $params['item_object'];
$mod = cms_utils::get_module('TranslitAlias');
$obj->alias = $mod->Translit($obj->title);
Тег надо добавить в событие PreItemSave
wdwp
Forum Members
Forum Members
Posts: 10
Joined: Tue Dec 18, 2012 10:29 am

Re: Модуль TranslitAlias

Post by wdwp »

UDT для модуля CGBlog:

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']));  
}
Добавить в события: CGBlogArticleAdded, CGBlogArticleEdited
Post Reply

Return to “Russian - русский”