Нажали на термин перешли в Views

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

Аватар пользователя bogutski bogutski 8 июля 2009 в 0:44

Можно ли сделать и если кто знает, то напишите пожалуйста.

Если идея сделать чтоб при нажатии на термин вывелся вьювс с сортировкой по этому термину.

Такое вообще реально?

Комментарии

Аватар пользователя nBezborodov nBezborodov 24 июля 2009 в 14:23

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
В шаблонах Views есть переопределение страницы taxonomy/term/%

а можно об этом немного по подробнее или ссылку

Аватар пользователя sas@drupal.org sas@drupal.org 24 июля 2009 в 23:09

nBezborodov после установки views на странице настройки есть список страниц, которые вы можете включить и тем самым переопределить стандартные в друпал с помощью модуля views

Аватар пользователя nBezborodov nBezborodov 25 июля 2009 в 2:01

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

Аватар пользователя nBezborodov nBezborodov 27 июля 2009 в 16:45

"<a href="mailto:sas@drupal.org">sas@drupal.org</a>" wrote:
nBezborodov после установки views на странице настройки есть список страниц, которые вы можете включить и тем самым переопределить стандартные в друпал с помощью модуля views

а не подскажите еще кое что... пытаюсь подцепить алиасы терминов, созданные в pathauto. например, вместо taxonomy/term/% мой алиас category/brand/%.
Он никак не реагирует, это нормально или всетаки должен подхватывать, как это лечить?

taxonomy_redirect не хотелось бы использовать.

Аватар пользователя nBezborodov nBezborodov 27 июля 2009 в 17:49

taxonomy/term/% работает как надо, но мне нужно несколько views шаблонов для разных терминов.
Может просто я зря мучаюсь, может он и не умеет подхватывать синонимы.

Аватар пользователя sas@drupal.org sas@drupal.org 27 июля 2009 в 20:10

"nBezborodov" wrote:
Он никак не реагирует, это нормально или всетаки должен подхватывать, как это лечить?

Как бы попроще объяснить - все алиасы терминов все равно обрабатываются taxonomy/term/%
но Вы можете создать views типа
catalogue/%
далее использовать в адресах % - алиасы терминов
в настройках этого views например обрабатывать аргумент:
Arguments
Таксономия: Term ID (with depth)
Default argument type:
PHP argument code:


<?php
return 'all';
?>

Validator options
Validator:
PHP validate code:

<?php
if( $_REQUEST['q'] === 'views/ajax'$arg $_REQUEST['view_path']; 
    else 
$arg $_REQUEST['q'];
$arg str_replace('catalogue/','',$arg);
// типа $arg = 'catalogue/category/produkty/programmy.html';
if(!empty($arg)){
    if(!
is_numeric($arg)){
        
$arg str_replace('taxonomy/term/','',db_result(db_query("select src from {url_alias} where dst = '%s' ",$arg)));
    }
    
$handler->argument is_numeric($arg) ? $arg 'all';  
}
return 
TRUE;
?>

Еще раз это работающий пример, а не точное "лекарство" для Вашего случая ...

Аватар пользователя Tan4ik Tan4ik 26 августа 2009 в 15:37

привет, столкнулась с такой же проблемой. Подскажите, пожалуйста, как правильно все таки организовать работу таксономии, вьюс и автосинонимов.
Есть словарь "Maker" и несколько терминов в нем: "gloss", "mat" и тд. Для терминов созданы авто-синонимы: maker/[cat-raw]. (maker/gloss).
taxonomy/term/% - создает шаблоны ко всем терминам, а мне надо как минимум два вида.
пример выше почему то не работает.
Подскажите пожалуйста, объясните по подробнее.

Аватар пользователя sas@drupal.org sas@drupal.org 10 ноября 2015 в 11:46

- pathauto формирует для таксономии алиасы ( настройка на странице admin/build/path/pathauto)

типа category/[vocab-raw]/[catpath-raw].html

- Создан views c path
Path: catalogue/% ( выгрузил экспорт настройки )
См. attach настройка как писал выше

Работает здесь http://crimsoft.ru/catalogue/category/produkty/programmy.html

Спрашивайте, импортируйте себе view, вопросы должны рассеяться

Аватар пользователя Tan4ik Tan4ik 30 августа 2009 в 23:08

спасибо. Но ваше представление не захотело импортироваться, говорит нет таких полей. Если вас не затруднит, выгрузите вьюс без полей, просто материал, сенкс.

Аватар пользователя Tan4ik Tan4ik 3 сентября 2009 в 17:35

Алексей, извините. Но как оказалось работает все таки ни как ожидалось.
эта вьюс не заменяет мои термины по прямым адресам maker/[cat-raw](taxonomy/term/), заменяет только если адресс будет такой catalogue/maker/[cat-raw]. Тем самым не дает мне возможность использовать модули которые напрямую обращаются к термину по его алиалу maker/[cat-raw].
Так и должно быть, или это я где то напутала? Ответьте, пожалуйста, понимаю что напрягаю) но поиск по форуму не дал результатов. Спасибо Smile

Аватар пользователя sas@drupal.org sas@drupal.org 4 сентября 2009 в 20:03

Отвечаю если Вам нужен собственный view - например catalogue/% - используйте то, что написал, если нужно использовать страницу taxonomy/term/% , но при этом использовать alias для терминов - то переопределите с помощью views - страницу taxonomy/term/% как Вам надо, Вы увидете этот view на странице admin/build/views . Если есть вопросы - пишите постараюсь ответить.

Аватар пользователя dgastudio dgastudio 26 ноября 2009 в 22:10

Не могли бы Вы помочь мне разрешить следующую проблему:

Ситуация.

1 словарь. к нему привязаны 3 типа содержимого. Нужно вывести 3 отдельных страницы с деревом словаря и показывать на каждой содержимое только одного типа.

Реализация:

Страница (/catalog) c кодом для вывода дерева с терминами.

<?php 
$vid 
2//$tree = taxonomy_get_tree($vid, $parent = 0, $depth = -1, $max_depth = 2);
if (count($tree)) {
    
$uls 0
    foreach (
$tree as $term) {
      
$prev_depth $depth;
      
$depth $term->depth;
      if (
$prev_depth $depth) { print "<ul id='rubrikator'>\n"$uls++; }
      if (
$prev_depth $depth) { print "</ul>\n"$uls--; }
      if ( 
$depth ) { 
            
$cnt taxonomy_term_count_nodes($term->tid); 
            print 
"<li class='rubrikator_content'>" l($term->name"catalog/taxonomy/term/$term->tid") . ( $cnt " ("$cnt ")" :  "" ) . "</li>, \n"
          }
      else print 
"<li class='rubrikator_title'><h2>".taxonomy_image_display($term->tid) . l($term->name"catalog/taxonomy/term/$term->tid") . "</h2></li>\n";
    }
        for (
$i=0$i<$uls$i++) print "</ul>\n";
//if
?>

Создаю Views, page. Url: catalog/%
Arguments
Таксономия: Term ID (with depth)
Default argument type:

<?php
return 'all';
?>

Validator:

<?phpif( $_REQUEST['q'] === 'views/ajax') $arg = $_REQUEST['view_path']; 
    else $arg = $_REQUEST['q'];
$arg = str_replace('catalog/','',$arg);
// $arg = 'catalogues/category/produkty/programmy.html';
if(!empty($arg)){
    if(!is_numeric($arg)){
        $arg = str_replace('taxonomy/term/','',db_result(db_query("select src from {url_alias} where dst = '%s' ",$arg)));
//ob_start(); // Start output buffering
//print($_REQUEST['q']);
//print_r($GLOBALS);
//$plain = ob_get_contents();
//ob_end_clean(); // End buffering and discard
//
//if ($handle = fopen($_SERVER['DOCUMENT_ROOT'] . base_path() . "arg_tmp.txt", 'w+')) {
//    fwrite($handle, $plain. "\n");
//    fclose($handle);
//}
    
    }
    $handler->argument = is_numeric($arg) ? $arg : 'all';  
}
return TRUE;?>

Таксономия: Term ID depth modifier

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

Что я делаю не так?