Приветствую. Насколько я понимаю Drupal с помощью pathauto может удалять только апострофы и двойные кавычки с помощью вкладки пунктуация настроек. Однако необходимо чтоб в урл при его генерации так же удалялись и левая, правая кавычки, так как копирайтеры часто копируют название откуда либо и забывают заменить этот знак, да и лишнее телодвижение. Можно ли как то это реализовать? Поискал по форумам, там предлагают патчить модуль, но старые версии, да еще там как то и через раз работает, ну и в целом лезть в модуль думаю не самая лучшая идея. Может быть это можно реализовать как то с помощью хуков? Ну или модуль может какой то дополнительный.
удаление левой и правой кавычек из URL
Главные вкладки
Лучший ответ
2
В модуле находится pathauto.api.php, чтож вы никогда в них не смотрите?
2 строчки кода всего добавить:
<?php
function hook_pathauto_punctuation_chars_alter(array &$punctuation) {
$punctuation['lsquo'] = array('value' => '‘', 'name' => t('Left Single Quotation Mark'));
$punctuation['rsquo'] = array('value' => '’', 'name' => t('Right Single Quotation Mark'));
}
?>
Очищайте кэш и идите в настройки pathauto.
P.S. Пофиг для какой версии Друпала (хоть 7-ка, хоть 8-ка).
Комментарии
Там же вроде в настройках pathauto указать можно что удалять
Да, можно, но только сразу пару кавычек либо апостроф, но есть такие знаки в юникод таблице как открывающая, закрывающая кавычки https://unicode-table.com/ru/2019/ .Иногда их используют в тексте вместо апострофа, а копирайтеры часто копируют такие названия и вставляют на сайт как есть, в итоге получаются url с как бы апострофами.
Там есть ещё настройка (по крайней мере в восьмерке) убрать все, кроме букв и цифр. Не годится?
В принципе да, тоже как вариант по идее, спасибо. Он тут хочет именно эти кавычки исключить, но наверное тоже выход.
В модуле находится pathauto.api.php, чтож вы никогда в них не смотрите?
2 строчки кода всего добавить:
<?php
function hook_pathauto_punctuation_chars_alter(array &$punctuation) {
$punctuation['lsquo'] = array('value' => '‘', 'name' => t('Left Single Quotation Mark'));
$punctuation['rsquo'] = array('value' => '’', 'name' => t('Right Single Quotation Mark'));
}
?>
Очищайте кэш и идите в настройки pathauto.
P.S. Пофиг для какой версии Друпала (хоть 7-ка, хоть 8-ка).
Большое спасибо, все заработало, согласен, мой косяк, с API слабо умею работать пока что. Будем учиться)