Массовое обновление для снятого флажка "Автоматически генерировать псевдоним URL"


У меня есть много программных узлов с отключенной опцией " Генерировать автоматический псевдоним URL", поэтому я не могу использовать Массовое обновление модуля pathauto.

Как я могу массово генерировать псевдоним pathauto для этих узлов?

Изменить: я использую Drupal 7

Author: user1014351, 2012-09-04

7 answers

Пробовали ли вы использовать Массовую операцию просмотра . Все, что вам нужно будет сделать, это создать представление, в котором будут перечислены все узлы, соответствующие вашим критериям, а затем назначить действие "Создать псевдоним URL" (я еще не пробовал)

.
 6
Author: Gokul N K, 2012-12-22 19:40:21

У VBO нет возможности изменить статус "Автоматически генерировать псевдоним URL"

Вы можете выполнить следующий запрос mysql:

UPDATE `pathauto_state` SET `pathauto`=1 WHERE `entity_type` = 'node'

Или, если вы хотите обновить только точный тип контента:

UPDATE  `pathauto_state` p, `node` n SET `pathauto` = 1 WHERE
p.entity_id = n.nid and n.type = 'mycustontype'

Где "mycustomtype" - это имя компьютера типа контента.

Или если у вас установлен drush:

drush sqlq "UPDATE pathauto_state SET pathauto=1 WHERE entity_type = 'node'"

После этого вы можете массово генерировать новые пути, как обычно, в: admin/config/search/path/update_bulk

 6
Author: Rick B, 2017-03-08 21:14:21

В дополнение к ответу Рика Б вам также потребуется создать записи для узлов, которые никогда не проверялись. Это можно сделать, выполнив этот запрос:

INSERT INTO pathauto_state
SELECT 'node',n.nid ,1
FROM node n
WHERE n.type = 'api'
AND n.nid NOT IN (SELECT entity_id FROM pathauto_state)

, который можно запустить либо с помощью drush, либо непосредственно в базе данных, как описал Рик.

Для терминов таксономии определите идентификатор словаря вашего термина (3 в примере ниже) и выполните аналогичную вставку:

INSERT INTO pathauto_state
SELECT 'taxonomy_term', t.tid, 1
FROM taxonomy_term_data t
WHERE t.vid = 3
AND t.tid NOT IN (SELECT entity_id FROM pathauto_state)
 2
Author: Sherwin Harris, 2019-07-13 14:42:24

Я могу проверить, что это работает с Массовыми операциями просмотра (VBO).

Только что попробовал то, что упомянул Гокул Н К, потому что я столкнулся с той же проблемой и могу убедиться, что она все еще работает с реальными версиями модулей.

У меня были существующие термины таксономии с непроверенным "Генерировать автоматический псевдоним URL", и я хотел обновить их массово.

Моя настройка ниже: Drupal 7 (7.34) с представлениями (7.x-3.8), Pathauto (7.x-1.2) и VBO (7.x-3.2). Я предполагаю, что модули присутствуют / установленный настроенный.

  1. удалены все псевдонимы терминов таксономии/администратор/конфигурация/поиск/путь/delete_bulk
  2. создал новое представление в разделе /администратор/структура/представления и выбрал (Показать) термины таксономии (в моем случае я выбрал все для всех словарей, вы могли выбрать только определенный словарь)
  3. выберите "поля" в разделе "Формат отображения", при необходимости внесите дополнительные изменения, затем "Продолжить и отредактировать"
  4. В разделе поля нажмите "добавить" и найдите "Массовые операции: термин таксономии"., проверьте и примените
  5. затем установите флажок "Обновить псевдоним термина таксономии" и примените
  6. Сохраните свое представление и перейдите в расположение представлений и массово обновите все псевдонимы путей терминов таксономии
 1
Author: 4aficiona2, 2017-04-13 12:47:02

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

 0
Author: Ajay Kotian, 2012-09-05 20:43:12

Для тех из вас, кому это нужно в форме php для быстрого использования в модуле/теме/и т. Д.:

<?php
$update_auto_aliases = db_update('pathauto_state')
  ->fields(array(
    'pathauto' => 1,
  ))
  ->condition('entity_type', 'node', '=')
  ->execute();
?>
 0
Author: Daniel Rogers, 2017-03-01 17:23:03

Я думаю, что это можно сделать с помощью Drupal 8 и VBO (по крайней мере, это сработало для меня) - с помощью действия "Изменить значения полей", потому что " Автоматически генерировать псевдоним URL" - это просто поле , автоматически предоставляемое для каждого элемента контента. Предостережение заключается в том, что вам придется сделать это для каждого типа контента , но все это можно сделать в одной и той же форме следующим образом: -

  1. Выберите необходимые элементы в списке VBO (или Выберите все)
  2. Выберите действие "Изменить значения полей"
  3. Нажмите кнопку "Применить к выбранным элементам"
  4. Разверните каждый тип контента, к которому вы хотите применить это, и установите флажок "Псевдоним URL". Затем в развернутой форме должен появиться флажок "Автоматически генерировать псевдоним URL". Это значение по умолчанию помечено галочкой, поэтому вам не нужно ничего делать/менять. Не нажимайте кнопку Отправить еще...
  5. После выполнения шага № 4 для каждого типа контента нажмите кнопку "Отправить".

Впоследствии я не получил подтверждающего сообщения (что приводит в замешательство - вероятно, ошибка в отличном модуле VBO), но это сработало для меня (предположительно, в фоновом пакетном задании).

 0
Author: mautumn, 2019-10-16 12:47:59