Во views можно использовать несколько аргументов, например - category/%/%
У меня есть два словаря. Первый - категории, второй - типы (свойства) объектов. Соответственно в views два аргумента - термины первого и второго словаря.
Как сформировать ссылки подобного вида category/%/% (т.е. category/kubik/krasnyj)?
Хочется на странице термина первого словаря (category/kubik) вывести блок с такими ссылками:
category/kubik/krasnyj category/kubik/zelenyj category/kubik/zheltyj и т.д.
Комментарии
толькое если так
category/12/16/67/78
аргумент брать "Сырое значение из URL"
Примерно понял что Вы говорите.
Но я даже не могу понять как на странице термина первого словаря (category/kubik) вывести список связанных терминов из второго словаря (т.е. именно тех терминов которые используются в нодах вместе с термином kubik)
через вьюшку это можно сделать
Я пробовал, но ничего не получается.
Создал вьюс (термины). Добавил контекстный фильтр - термин таксономии. При подстановке в аргумент ID термина первого словаря, этот же термин выводится в блоке, а нужно чтобы выводились термины из второго словаря.
правильно начали. теперь добавьте relationship к нодам и оттуда вытащите нужные термины
q2_faith, большое спасибо! У меня получилось вывести связанные термины из другого словаря.
Остался вопрос с алиасами терминов. Можно их как-то использовать или получится только так, как советует kervi - category/12/16/67/78
Объясню в чем сложность:
category/kubik/krasnyj - тут kubik - термин первого словаря, krasnyj - термин второго словаря
как задать алиас для терминов второго словаря, ведь термины первого словаря могут меняться, например:
category/kirpich/krasnyj
category/myachik/krasnyj
через токены можно сформировать алиасы.
например на странице термина кубик у терминов убираете галочку вести на страницу термина и ставите галочку выводить это поле в виде ссылки, там пишите примерно следующее category/%1/[name] - последний токен посмотрите в доступных для этого поля
Почему то ссылки формируются без транслитерации, такого вида - category/кубик/красный category/мячик/красный
а как потом другим вьюсом (category/%/%), который формирует страницу с материалами, получить термины из этих ссылок - category/мячик/красный ?
вьюс не умеет транслителировать
через аргументы, нужное подставить "сырое" значение из урл
Предлагаю 1000 руб. за решение проблемы, либо за помощь в решении проблемы.
вот это очень плохо!!!!!! у меня сейчас такая трабла и не знаю, что делать блин((
Я заказывал модуль. Смысл его работы в том, что у термина создается еще одно поле "Синоним" (field_alias) и при сохранении термина в это поле записывается транслитерация термина. Во аргументах views это поле используется как "сырое" значение из урл - http://tamadec.ru/pozdravleniya/s-dnem-rozhdeniya
Вот функции (вставлять в свой модуль). С помощью первой получаем имя термина на основе "Синоноима". А вторая создает "Синонимы"
<?php/**
* Return term name by field_alias.
*/
function helper_get_term_by_alias($alias) {
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'taxonomy_term');
$query->fieldCondition('field_alias', 'value', $alias);
$query->range(0, 1);
$result = $query->execute();
if ($result) {
$tid = current($result['taxonomy_term'])->tid;
return taxonomy_term_load($tid);
}
}
/**
* Implements hook_taxonomy_term_presave().
*/
function helper_taxonomy_term_presave($term) {
if (in_array($term->vocabulary_machine_name, array('ИМЯ_СЛОВАРЯ_1', 'ИМЯ_СЛОВАРЯ_2'))) {
$term_alias = transliteration_get($term->name);
if(module_load_include('inc','pathauto','pathauto') !== FALSE) {$term_alias = pathauto_cleanstring($term_alias);}
$term->field_alias[LANGUAGE_NONE][0]['value'] = $term_alias;
}
}?>
то есть мне надо самому создавая модуль с расширением *.modul вставить этот код?
Если да, то как быть или что писать во второй функции во второй строчке где array('ИМЯ_СЛОВАРЯ_1', 'ИМЯ_СЛОВАРЯ_2') что вот тут писать? или так оставить?
дело в том, что у меня один словарь Каталог у которого штук 10 терминов в которых еще по 10 терминов
дело в том, что я еще новичок в друпале поэтому может быть такие туповатые вопросы))
С одним словарем можно справиться средствами views. http://yandex.ru/yandsearch?text=drupal%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB...
нее я на счет адресов , дело в том, что в views стандартными средствами не справиться как раз таки, то есть меня интересует именно то, чем вы интересовались выше, а именно :
Почему то ссылки формируются без транслитерации, такого вида - category/кубик/красный category/мячик/красный
и вам был ответ: вьюс не умеет транслитерировать
ибо когда я создаю views под именем catalog , далее мне нужно будет переходить на страницу термина словаря то есть catalog/armatura и вот чтобы настройки и дубликатов и вообще для простоты действия достаточно указать в качестве аргумента (%) на страницу catalog/% -- синоним системной ссылки термина таксономии, а именно термина по имени Арматура у которого системная ссылка tsxonomy/term/2 , а синоним catalog/armatura
И вот когда я создаю контекстный фильтр, там нету пункта "Синоним термина таксономии" ,а все остальные есть типа "Идентификатор термина! , "Имя термина" и вот кстати ваш вопрос основан на "Имени термина таксономии" который и идет в аргумент таким каким он есть тоесть кирилицей, в моём случае так и пишется catalog/арматура и оно работает, но меня не устраивает такой вид ссылок, мне нужно catalog/armatura , но так не работает и решения пока не нашел?
Но за ссыль спасибо! посмотрю обязательно, ибо как то же делают нормальные каталоги с нормальными ссылками в адресной строке))