Генерация URL с учетом всех родительских элементов

Главные вкладки

Аватар пользователя Raul Raul 31 октября 2008 в 16:56

Есть каталог: неизвестное число вложенных категорий плюс местами сами объекты.

С помощью CCK создал новый материал "Категория". У него два поля - заголовок и идентификатор (для url). У объекта свои поля, но идентификатор тоже имеется.

Цель - получать автоматически пути для объектов вида:

/<category>/<subcategory>/.../<sub...subcategory>/<object>

Есть ли какие-либо готовые модули или дописывать вручную /node/add?

Комментарии

Аватар пользователя Raul Raul 31 октября 2008 в 18:23

fairwind wrote:
хм... а таксономия не подходит для категорий?

Таксономия обеспечит наследование родительских категорий в url?

Аватар пользователя whisk@drupal.org whisk@drupal.org 1 ноября 2008 в 13:27

Сталкивался с этой задачей. Дело в том, что стандартный pathauto предоставляет только токены для цепочек из имен категорий, а не для их CCK-полей, насколько я помню по 5.x.
Решается это написанием модуля на с использованием token API.

cat pathauto_my.module

<?php
function pathauto_my_token_values ($type, $object = null) {
$tokens = array();

if ($type == 'node') {
$node =& $object;
if (module_exists('category') && !empty($node->category)) {
// конструируем строку типа "//.../"
// из информации в $node->category
$tokens['my_token_name'] = $my_nice_category_path;
}
}

return $tokens;
}

function pathauto_my_token_list ($type = 'all') {
$tokens = array();

if ($type == 'node' || $type == 'all') {
if (module_exists('category')) {
$tokens['node']['my_token_name'] = t("My token description.");
}
}

return $tokens;
}

?>

После этого в настройках pathauto появится токен [my_token_name], который можно будет применять для нод.