Як автоматично встановити псевдонім URL для типу вмісту БЕЗ використання Pathauto? Який гачок здійснити?


11

Pathauto може легко виконати роботу для всіх типів вмісту, але в моєму випадку у мене є лише одна URL-адреса типу вмісту, яку потрібно налаштувати, і я вважаю за краще не встановлювати Pathauto та Token.

Хтось може порадити мені, як це зробити?


2
Збережіть собі головний біль і просто використовуйте патавто. Ця проблема вже вирішена, навіщо її вирішувати? Pathauto спричиняє хіт продуктивності лише тоді, коли ви зберігаєте вузли (і навіть тоді лише мінімальні).
Меттью Шарлі

4
Оскільки можна генерувати приємніші URL-адреси, ніж pathauto, і якщо все, що вам потрібно, це генерувати URL-адреси для одного або двох типів, ви можете позбутися двох модулів, реалізуючи один гак. Крім того, масовий імпорт є досить повільним (і навіть в якийсь момент він зламався, він просто відмовляється імпортувати що-небудь після 400 вузлів), тоді як мій легкий сценарій cron / bulk зумів імпортувати 500 вузлів в секунду, що цілком приємно, коли у вас є 100k вузлів для створення псевдонімів для.
wildpeaks

Відповіді:


12
/**
 * Implements hook_node_insert()
 */
 function mymodule_node_insert($node) {
   if ($node->type == 'mytype') {
     $node->path['alias'] = 'mytype/' . $node->nid;
   }
 }

Додатково, ви можете додати цей код у kuk_node_update ()


1

Див. С. 149 програми Pro Drupal Development, використовуйте mock_insert (). Коли новий вузол зберігається, викликується гачка_insert (). Це місце для обробки будь-якої спеціальної обробки вмісту вузла до збереження вузла. Також дивіться на с. 152-156 Pro Drupal Development, в якому йдеться про всі різні функції_укр___xxxx ().

Я думаю, що використання kuk_node_insert (), як було запропоновано в попередній відповіді, призведе до причеплення до ВСІХ творінь вузла, які не вирішать вашу потребу змінити певний тип вмісту.


Подивіться, що повідомляється у moll_insert () , який містить таке речення: "Цей гачок викликається лише у модулі, який визначає тип вмісту вузла (використовувати hook_node_insert()для дії у всіх вставках вузла)."
kiamlaluno
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.