Как я могу включить автоматическое создание пути для всех узлов?
В Drupal 7.12 я использую pathauto, cleanurls, транслитерацию, i18n.
Когда я редактировал один узел, я увидел, что "Автоматически генерировать псевдоним URL" не отмечено. Затем я проверил другие узлы и увидел, что для всех типов узлов он стал непроверенным.
Я почти уверен, что это проверялось до прошлой недели.
Последние изменения, которые я сделал: Я обновил модуль Pathauto, установил транслитерацию, установил модуль отладки Cron.
Итак, как я могу снова включить это флажок на странице настроек узла автоматически?
(Конечно, я могу сделать это вручную, отредактировав каждый узел и установив флажок)
Большое вам спасибо за вашу помощь.
6 answers
Если у вас установлен Pathauto, он будет генерировать псевдонимы путей для ваших узлов. Он снимает флажок, когда уже есть псевдоним пути, давая вам знать, что он не изменит псевдоним, если вы измените содержимое. Вы можете изменить это поведение с помощью параметра "Действие обновления" здесь: /admin/config/search/path/settings
Прочитайте страницу документации на Как Pathauto определяет, следует ли устанавливать флажок "Автоматический псевдоним URL" или нет?.
Если флажок снят на существующих узлах, это означает, что текущий псевдоним для узла не совпадает с псевдонимом, который Pathauto "создаст" для узла. Возможно, если бы вы изменили шаблоны для своих узлов, это означало бы, что они "не синхронизированы" с реальными шаблонами, а затем Pathauto по умолчанию снимает флажок.
Если вы хотите принудительно включить его, даже если он не отмечен, просто создайте модуль следующим образом:
<?php
function pathauto_checkbox_node_presave($node){
global $user;
if($node->type=='you_content_type'){
$node->path['pathauto']=1;
}
}
?>
Если вы хотите для каждого типа, просто удалите условие "если"
Также вы можете сделать это с помощью:
$node->path['pathauto'] = TRUE;
Некоторые URL-адреса моего содержимого были сгенерированы вручную, некоторые другие - нет. Я хотел гомогенизировать весь контент по типам контента и не хотел делать это по одному
Я определил шаблоны в
admin/config/search/path/patterns
Затем
delete all alias and did a bulk update
Это действие сбрасывает все содержимое на автоматически созданный псевдоним
Вы можете сделать это с помощью произвольного скрипта View также для узла, который уже создан, и автоматическое создание пути для всех узлов в false (т.е. "Создать автоматический псевдоним URL" не проверено.)
Здесь я создал представление для обновления пути от "узел/[идентификатор узла]" до "автоматически сгенерированный URL".
Выполните следующие действия.
- Создайте представление, как показано на рисунке выше
- Перейдите к просмотру страница.
Выберите опцию из выпадающего списка и узел из списка, для которого вы хотите установить флажок "Автоматически генерировать псевдоним URL", как показано на рисунке ниже.
Нажмите на кнопку Выполнить. Теперь на следующем шаге введите код. Затем
$node = node_load($entity->nid); $node->path['pathauto'] = TRUE; node_save($entity);