Добрый день!
Весь день мучаюсь, не могу сделать латиницей ЧПУ, токо на русском получаются, кто-нить знает как в Revo сделать?
ТрансАлиас, наверно, еще не сделали
Интересно, ... опишите поподробней - как это?
У Вас включен ЧПУ и в качестве сервера используется Апач (идет в комплекте Денвера)
И:
- Вы создаете документ, в Алиасе ничего не пишите (потому что стоит в конфигурации "автоматически проставлять алиас") или пишите алиас но на русском, и алиас берется из pagetitle (заголовок документа то есть) -> там же у Вас все на русском и в результате у Вас получается ссылка вида
хттп://site_name/информационные_системы.htmlвместо того что Вы хотели (приближенно)
хттп://site_name/informacionnye_sistemy.html
Вы хотите чтобы алиас на русском транслитерировался на Английский?
Если да - то проще самому прописать на английском алиас или написать алиас на русском..
И да, еще что - еслив pagetitle только русские символы - то алиас то же будет на русском, а если используется сочетание русских и английских символов, то в алиас попадут только английские символы...
if ($modx->event->name == ’OnDocFormSave’)
{
if (!strlen($_POST[’alias’]))
{
$id = $scriptProperties[’id’];
$resource = $modx->getObject(’modResource’, $id);
$trans = array("а"=>"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", " "=>"-", "."=>"-",", "=>"-", "_"=>"-", "+"=>"-", ":"=>"-", ";"=>"-", "!"=>"-", "?"=>"-");
$alias = mysql_escape_string($_POST[’pagetitle’]);
$alias = strip_tags(strtr($alias, $trans));
$alias = preg_replace(’/&.+?;/’, ’’, $alias);
$alias = preg_replace("/[^a-zA-Z0-9-]/", "", $alias);
$alias = preg_replace(’/([-]){2,}/’, ’\1’, $alias);
$docArray = $modx->getCollection(’modResource’, "id<>’$id’ AND alias=’$alias’");
if ($docArray)
{
$alias .= "-".$id;
}
$resource->set(’alias’, $alias);
$resource->save();
}
}
Я себе от Evolution плагин rustulatalias переписал под Revo.
if ($modx->event->name == ’OnDocFormSave’)
{
if (!strlen($_POST[’alias’]))
{
$id = $scriptProperties[’id’];
$resource = $modx->getObject(’modResource’, $id);
$trans = array("а"=>"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", " "=>"-", "."=>"-",", "=>"-", "_"=>"-", "+"=>"-", ":"=>"-", ";"=>"-", "!"=>"-", "?"=>"-");
$alias = mysql_escape_string($_POST[’pagetitle’]);
$alias = strip_tags(strtr($alias, $trans));
$alias = preg_replace(’/&.+?;/’, ’’, $alias);
$alias = preg_replace("/[^a-zA-Z0-9-]/", "", $alias);
$alias = preg_replace(’/([-]){2,}/’, ’\1’, $alias);
$docArray = $modx->getCollection(’modResource’, "id<>’$id’ AND alias=’$alias’");
if ($docArray)
{
$alias .= "-".$id;
}
$resource->set(’alias’, $alias);
$resource->save();
}
}
$alias .= "-".$id;
$alias .= $modx->getOption('setting_friendly_alias_word_delimiter').$id;Без всяких плагинов
1) во-первых надо исправить в коде:заменить на$alias .= "-".$id;$alias .= $modx->getOption('setting_friendly_alias_word_delimiter').$id;
2) есть небольшая проблема при обновлении материала: когда я удаляю псевдоним, а после жму сохранить, то страница не перегружается целиком, а только аяксом перегружаются значения. И псевдоним становится русским с разделителем ’-’. Т.е. без обработки плагином.
Если страницу перегрузить целиком, то оказывается, что значение этого псевдонима верное!
засада в том, что если продолжить редактирование после сохранения, то после окончательного сохранения сохранится русский псевдоним!!!