Извиняюсь за оффтопный subj, но как сделать нижеследующее?
Грубо говоря, на сайте есть 2 словаря - Цветы (Ромашки, Фиалки, Гладиолусы) и есть словарь Цветоводство (Free Tagging). Соответственно, есть три раздела - Ромашки, Фиалки, Гладиолусы, куда помещаются ноды, в которых редактор забивает произвольные термины из Цветоводства - типа посадка, прополка, продажа.
Как сделать tagadelic, который бы отображал на странице Ромашки только те тэги из Цветоводства, которые были поставлены в ноды про Ромашки? То же самое - с Фиалками и Гладиолусами.
Может, нужно создавать 3 разных Free Tagging словаря - типа Цветоводство-Ромашки, Цветоводство-Фиалки, Цветоводство-Гладиолусы?
Или есть механизм отбора, который будет высасывать все в определенный tagadelic раздела в зависимости от того, какая жесткая категория присвоена нодам?
Комментарии
+1
СОбственно, имхо, нужно прикрутить tagadelic к views. Чтобы ссылки из облака вели не в taxonomy, а на адрес текущего view (текущий адрес) + "/" + termid. В принципе, задача-то решаемая, попытаюсь сегодня прикрутить, но, может, кто уже это сделал?
Т.е. вы имеете в виду Views + аргумент? А что - выглядит как решение... И создавать лишние словари не надо.
Есть еще http://drupal.org/project/tagadelic_views
Прикрутил. Правда, без правки кода не обошлось.
В общем, если это все еще интересно, то вот как это можно сделать:
1. Нам понадобятся следующие модули: views, tagadelic, taxonomy_redirect. Спасибо, vadbars, tagadelic_views тоже пригодится (честно говоря, он у меня был установлен, но я об этом забыл - думал, что он шел в комплекте к тагаделик).
2. После установки taxonomy_redirect немножко исправим ему код. На самом деле, в модуле предусмотрен вызов специальной функции, переопределив которую (в шаблоне, например) можно обойтись без правки кода. Но хакнуть код - гораздо быстрее и понятнее, потому привожу именно этот вариант. Собственно, открываем файл /modules/taxonomy_redirect/taxonomy_redirect.module и добавляем в тело функции taxonomy_redirect_term_path строки:
{
$p = explode('/',$_GET['q']);
$p[count($p) - 1] = $term->tid;
return implode('/', $p);
}
В результате функция будет выглядеть так:
$path = db_result(db_query("SELECT path FROM {taxonomy_redirect} WHERE vid='%d'", $term->vid));
if (is_null($path))
return 'taxonomy/term/' . $term->tid;
if ($path == '!current')
{
$p = explode('/',$_GET['q']);
$p[count($p) - 1] = $term->tid;
return implode('/', $p);
}
if (function_exists('taxonomy_redirect_custom_term_path'))
return taxonomy_redirect_custom_term_path($term, $path);
return taxonomy_redirect_default_term_path($term, $path);
}
3. Создаем словарь категорий (в нашем примере - Цветоводство). Если он уже есть, то не создаем, используем готовый )). Заходим в Конструкция - taxonomy_redirect и перенаправляем путь нашего словаря в !current.
4. Создаем Views, начнем с двух, потом их расклонируем.
Теперь клонируем эти два View и исправляем в них фильтры - с ромашек на Фиалки и Гладиолусы. Всего у нас получится по 2 View на каждый тип цветов. Хотя, конечно было бы круто, чтобы это делалось само, но - ничто не совершенно (честно говоря, для моего приложения это не нужно, а потому дальше я разбираться не стал).
5. Создаем ярлыки в меню: romashki/all, fialki/all и т.д.
6. В блоках размещаем наши вьюшки (tags_...) там где мы хотим их видеть, не забывая указать "Показывать только на выбранных страницах" (например, romashki*)
Собственно, все, должно работать) Пример некоторе время можно будет посмотреть тут. Обращать внимание на названия городов в разделах Пользователи и Где купить.
Следующая итерация - заставить теги в тагаделике подсвечиваться. Но это потом, если руки дойдут)))
[вау] спасибо!
интересно.