Page 1 of 1

Модуль TranslitAlias

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

Также форкнул и доработал несколько старых модулей, чтобы они могли работать с cmsms 2.x: MysqlDump2, FileBackup2, IPLock2.
Если есть идеи, какие ещё модули имеет смысл реанимировать, напишите здесь.

Re: Модуль TranslitAlias

Posted: Sun Mar 14, 2021 3:56 am
by iturbay
Реально ли оживить FEU_Auth_LDAP?

Re: Модуль TranslitAlias

Posted: Sun Mar 14, 2021 8:06 pm
by wdwp
Пока доделываю Ajax Made Simple и Polls Made Simple. Потом взгляну на этот.
btAdminer ещё восстановил и обновил до последней версии.

Re: Модуль TranslitAlias

Posted: Fri Mar 19, 2021 9:15 am
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

Re: Модуль TranslitAlias

Posted: Sat Nov 13, 2021 8:05 am
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']);
}

Re: Модуль TranslitAlias

Posted: Tue Nov 30, 2021 7:37 am
by wdwp
UDT для модуля LISE:

Code: Select all

$obj = $params['item_object'];
$mod = cms_utils::get_module('TranslitAlias');
$obj->alias = $mod->Translit($obj->title);
Тег надо добавить в событие PreItemSave

Re: Модуль TranslitAlias

Posted: Tue Nov 30, 2021 8:49 am
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