Заперт символов при автосоздании алиаса. Как сделать?
При автоматическом создании алиаса получается:
Книга «Название»
Создаётся адрес:
kniga-«nazvanie»
Как запретить кавычки, чтобы было:
kniga-nazvanie
И можно ли как-то перегенерировать все адреса на сайте уже без кавычек (или других символов), чтобы не править вручную?
Книга «Название»
Создаётся адрес:
kniga-«nazvanie»
Как запретить кавычки, чтобы было:
kniga-nazvanie
И можно ли как-то перегенерировать все адреса на сайте уже без кавычек (или других символов), чтобы не править вручную?
Комментарии: 10
Ключ friendly_alias_restrict_chars_pattern в настройках системы. Там подправить шаблон нужно.
Перегенерировать можно через «Управление -> Очистить кэш -> Обновить URI-ссылки»
Перегенерировать можно через «Управление -> Очистить кэш -> Обновить URI-ссылки»
благодарю. А есть возможность указать, чтобы определённое слово транслитировалось по моему правилу?
например, чтобы Юпитер был не yupiter а upiter, но там где ключ чтобы оставалось как klyuch
например, чтобы Юпитер был не yupiter а upiter, но там где ключ чтобы оставалось как klyuch
Ну, как вариант можно плагин повесить (вроде на OnDocFormSave), который будет нужные манипуляции с алиасом проводить. Например заменять ^yu на u
Также, если вопрос только в первой букве «Ю» и используется translit, то можно немного внести правки в его код. Сам процесс транслитерации находится тут:/core/components/translit/model/modx/translit
В modtransliterate.class.php, можно вставить после
простенькую замену:
Также, если вопрос только в первой букве «Ю» и используется translit, то можно немного внести правки в его код. Сам процесс транслитерации находится тут:/core/components/translit/model/modx/translit
В modtransliterate.class.php, можно вставить после
$ret = strtr($string, $table);
простенькую замену:
$ret = preg_replace('/^yu/', 'u', $ret);
Теперь, в случаи, если первые два символа в строке это yu — они будут заменены на u $ret = preg_replace('/^yu/', 'u', $ret);
Внёс, н тоже не срабатывает… Кеш очитил.вот что у меня:
public function translate($string, $table) {
$ret = $string;
$filePath = dirname(__FILE__) . '/tables/' . $table . '.php';
if (is_file($filePath)) {
$table = include $filePath;
if (is_array($table) && !empty($table)) {
$ret = strtr($string, $table);
$ret = preg_replace('/^yu/', 'u', $ret);
}
}
return $ret;
}
}
а при обновлении Translit это не слетит?
Слетит конечно ) Лучше плагин. Принцип такой же: (вешаем на OnDocFormSave)
Код плагина:
Код плагина:
if ($modx->event->name=="OnDocFormSave") {
$alias = $resource->get('alias');
$alias = preg_replace('/^yu/', 'u', $alias);
$resource->set('alias', $alias);
}
странно, новые алиасы создаются согласно внесённым изменениям в friendly_alias_restrict_chars_pattern а вот обновление «Управление -> Очистить кэш -> Обновить URI-ссылки» — не срабатывает. Что не так мог сделать? Кеш почистил…
Здравствуйте!
1) в MODX есть несколько методов фильтрации символов в URL — я ставлю alphanumeric (только буквы и цифры), см. в «Системные настройки -> Дружественные URL -> Метод фильтрации символов в псевдонимах» и править friendly_alias_restrict_chars_pattern не нужно.
2) Чтобы поправить транслитерацию символов заходите в /public_html/core/components/translit/model/modx/translit/tables/russian.php и правите на нужное сочетание, но при обновлении, как выше обсуждалось, может слететь, хотя translit не обновлялся, по-моему, никогда :)
1) в MODX есть несколько методов фильтрации символов в URL — я ставлю alphanumeric (только буквы и цифры), см. в «Системные настройки -> Дружественные URL -> Метод фильтрации символов в псевдонимах» и править friendly_alias_restrict_chars_pattern не нужно.
2) Чтобы поправить транслитерацию символов заходите в /public_html/core/components/translit/model/modx/translit/tables/russian.php и правите на нужное сочетание, но при обновлении, как выше обсуждалось, может слететь, хотя translit не обновлялся, по-моему, никогда :)
а если /public_html/core/components/translit/model/modx/translit/tables/russian.php не трогать а в Системных настройках friendly_alias_translit указать не russian а свой russianmod и изменения внести в дубликат russianmod.php
Так и обновление не помешает верно?
Так и обновление не помешает верно?
Не знаю даже, думаю, обновлению не помешает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.