удаление левой и правой кавычек из URL

Аватар пользователя y-vo y-vo 10 апреля в 7:08

Приветствую. Насколько я понимаю Drupal с помощью pathauto может удалять только апострофы и двойные кавычки с помощью вкладки пунктуация настроек. Однако необходимо чтоб в урл при его генерации так же удалялись и левая, правая кавычки, так как копирайтеры часто копируют название откуда либо и забывают заменить этот знак, да и лишнее телодвижение. Можно ли как то это реализовать? Поискал по форумам, там предлагают патчить модуль, но старые версии, да еще там как то и через раз работает, ну и в целом лезть в модуль думаю не самая лучшая идея. Может быть это можно реализовать как то с помощью хуков? Ну или модуль может какой то дополнительный.

Лучший ответ

Аватар пользователя adano adano 11 апреля в 7:55
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-ка).

Комментарии

Аватар пользователя y-vo y-vo 11 апреля в 7:01

Да, можно, но только сразу пару кавычек либо апостроф, но есть такие знаки в юникод таблице как открывающая, закрывающая кавычки https://unicode-table.com/ru/2019/ .Иногда их используют в тексте вместо апострофа, а копирайтеры часто копируют такие названия и вставляют на сайт как есть, в итоге получаются url с как бы апострофами.

Аватар пользователя marassa marassa 11 апреля в 7:45
3

Там есть ещё настройка (по крайней мере в восьмерке) убрать все, кроме букв и цифр. Не годится?

Аватар пользователя y-vo y-vo 11 апреля в 9:04

В принципе да, тоже как вариант по идее, спасибо. Он тут хочет именно эти кавычки исключить, но наверное тоже выход.

Аватар пользователя adano adano 11 апреля в 7:55
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-ка).

Аватар пользователя y-vo y-vo 11 апреля в 9:37

Большое спасибо, все заработало, согласен, мой косяк, с API слабо умею работать пока что. Будем учиться)