Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Taxonomy mit Views anpassen!?

Eingetragen von Junker (95)
am 30.01.2008 - 09:48 Uhr in
  • Views
  • Drupal 5.x oder neuer

Moin,

Habe in der Taxonomy einige Vokabulare mit verschiedenen Begriffen.

Vokabular1
-Begriff1
-Begriff2
...

Vokabular2
-Begriff1
-Begriff2
...

usw

Nun möchte ich mit Views die Node-Ansicht BESTIMMTER Vokabulare anders anzeigen. (Also beim Klicken auf einen Taxonomy-Begriff, soll eine "List-View" anstatt der standardmäßigen "Teaser-List" angezeigt werden.
Wichtig ist mir hierbei, dass sich das NUR AUF BESTIMMTE Vokabulare auswirkt. In meinem Beispiel nur auf die Taxonomybegriffe meines Inhaltstypen X und NICHT auf die Blog-Taxonomy.

Irgendwie bekomme ich das nicht hin, deshalb hier meine Gedankengänge:

1. Unter Views die Voreinstellung "taxonomy_term" einschalten und eine Views hinzufügen. Dadurch werden alle Taxonomy-Views überschrieben.

2. In den sich nun öffnenden Views-Einstellungen habe ich folgende Änderungen vorgenommen:

Problem: Diese Änderungen wirken sich auf ALLE Begriffe ALLER Vokabulare aus.

Frage: Wie kann diese Ansicht nur für BESTIMMTE Vokabulare / Begriffe beschränken??????

Danke für eure Hilfe!

‹ Views Member-Liste und Profil Checkboxen Fivestar und Views ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht kommst Du mit dem

Eingetragen von derhasi (221)
am 30.01.2008 - 09:56 Uhr

Vielleicht kommst Du mit dem VIEWS-Argument-Handling Code weiter. (unter den Argumenten zu finden)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Junker schrieb Frage: Wie

Eingetragen von ugerhard (60)
am 30.01.2008 - 09:57 Uhr
Junker schrieb

Frage: Wie kann diese Ansicht nur für BESTIMMTE Vokabulare / Begriffe beschränken??????

Das müsste mit einer Kombination aus einem View und dem Taxonomy Redirect Modul möglich sein:

http://drupal.org/project/taxonomy_redirect

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit dem Redirect modul

Eingetragen von Junker (95)
am 30.01.2008 - 10:20 Uhr

Mit dem Redirect modul funktioniert es nicht.

Und von Argument-Code habe ich keine Ahnung :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Weiß einfach nicht

Eingetragen von Junker (95)
am 30.01.2008 - 16:22 Uhr

Weiß einfach nicht weiter...
Sitz schon zwei Tage vor diesem Problem und komme nicht weiter...

Wäre super, wenn noch jemand einen Rat geben könnte...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine Idee: Theming

Eingetragen von derhasi (221)
am 30.01.2008 - 17:41 Uhr

Eine Idee: Theming
Für taxonomy/term nun eine neue template seite generieren - bin mir nicht sicher, könnte aber dann so aussehen
page-taxonomy-term.tpl.php

Und dort dann abhängig vom term bzw dessen Vokabular mit theme_views, das eine oder andere VIEW ausgeben.

<?php
$id
= arg(2); //arg(0) = 'taxonomy', arg(1) = 'term'
$term = taxonomy_get_term($tid)
if (
$term->vid == 1){
 
theme_views('taxview1',...);
}
else{
 
theme_views('taxviewsonst',...);
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab keine Ahnung wie ich das

Eingetragen von Junker (95)
am 30.01.2008 - 19:24 Uhr

Hab keine Ahnung wie ich das konkret machen soll :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Welches Theme benutzt Du denn?

Eingetragen von derhasi (221)
am 30.01.2008 - 19:52 Uhr

Welches Theme benutzt Du denn? ... bzw. Template?

http://drupal.org/node/104316

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich nutze das

Eingetragen von Junker (95)
am 31.01.2008 - 12:08 Uhr

@hasi
Auf diese Seite bin ich auch schon gestoßen, aber wie gesagt... das ist nicht so mein Ding.
Man müßte eine templateseite erstellen, für welche die "taxonomy/term" regeln nicht gelten / oder nur für diese gelten.
Wenn mir das jemand an einem Beispiel erklären könnte, wäre super...
Wenn das zu aufwendig ist, lasse ich mir das auch über Skype oder ICQ erklären.
Skpye: "jimmyjonnyjack"
ICQ: 81116166

Ich nutze das itheme
http://drupal.org/project/itheme

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe jetzt mal der

Eingetragen von derhasi (221)
am 31.01.2008 - 14:28 Uhr

Ich habe jetzt mal der template.php von itheme eine itheme_page()-function hinzugefügt.
Da die standard phptemplate_page dadurch überschrieben wird, musste deren ganzer Code kopiert werden.

Die drupal_add_js-Anweisungen sind noch aus dem orginal itheme template.php:

<?php
drupal_add_js
(drupal_get_path('theme', 'itheme') . '/js/jquery.cookie.js', 'theme');
drupal_add_js('cookiePath = "' . base_path() . '";', 'inline');
drupal_add_js(drupal_get_path('theme', 'itheme') . '/js/itheme.ui.js', 'theme');



function
itheme_page($content, $show_blocks = TRUE) {

 
/* Set title and breadcrumb to declared values */
 
if (drupal_is_front_page()) {
   
$mission = filter_xss_admin(theme_get_setting('mission'));
  }

 
/* Add favicon */
 
if (theme_get_setting('toggle_favicon')) {
   
drupal_set_html_head('<link rel="shortcut icon" href="'. check_url(theme_get_setting('favicon')) .'" type="image/x-icon" />');
  }

 
// Populate sidebars
 
$layout = 'none';
  if (
$show_blocks) {
    global
$sidebar_indicator;
   
/**
     * Sidebar_indicator tells the block counting code to count sidebars separately.
     */
   
$sidebar_indicator = 'left';
   
$sidebar_left = theme('blocks', 'left');
    if (
$sidebar_left != '') {
     
$layout = 'left';
    }

   
$sidebar_indicator = 'right';
   
$sidebar_right = theme('blocks', 'right');
    if (
$sidebar_right != '') {
     
$layout = ($layout == 'left') ? 'both' : 'right';
    }
   
$sidebar_indicator = NULL;
  }

 
// Construct page title
 
if (drupal_get_title()) {
   
$head_title = array(strip_tags(drupal_get_title()), variable_get('site_name', 'Drupal'));
  }
  else {
   
$head_title = array(variable_get('site_name', 'Drupal'));
    if (
variable_get('site_slogan', '')) {
     
$head_title[] = variable_get('site_slogan', '');
    }
  }

 
$variables = array(
   
'base_path'           => base_path(),
   
'breadcrumb'          => theme('breadcrumb', drupal_get_breadcrumb()),
   
'closure'             => theme('closure'),
   
'content'             => $content,
   
'feed_icons'          => drupal_get_feeds(),
   
'footer_message'      => filter_xss_admin(variable_get('site_footer', FALSE)) . "\n" . theme('blocks', 'footer'),
   
'head'                => drupal_get_html_head(),
   
'head_title'          => implode(' | ', $head_title),
   
'help'                => theme('help'),
   
'language'            => $GLOBALS['locale'],
   
'layout'              => $layout,
   
'logo'                => theme_get_setting('logo'),
   
'messages'            => theme('status_messages'),
   
'mission'             => isset($mission) ? $mission : '',
   
'primary_links'       => menu_primary_links(),
   
'search_box'          => (theme_get_setting('toggle_search') ? drupal_get_form('search_theme_form') : ''),
   
'secondary_links'     => menu_secondary_links(),
   
'sidebar_left'        => $sidebar_left,
   
'sidebar_right'       => $sidebar_right,
   
'site_name'           => (theme_get_setting('toggle_name') ? variable_get('site_name', 'Drupal') : ''),
   
'site_slogan'         => (theme_get_setting('toggle_slogan') ? variable_get('site_slogan', '') : ''),
   
'css'                 => drupal_add_css(),
   
'styles'              => drupal_get_css(),
   
'scripts'             => drupal_get_js(),
   
'tabs'                => theme('menu_local_tasks'),
   
'title'               => drupal_get_title()
  );

  if ((
arg(0) == 'node') && is_numeric(arg(1))) {
   
$variables['node'] = node_load(arg(1));
  }

 
// Build a list of suggested template files in order of specificity. One
  // suggestion is made for every element of the current path, though
  // numeric elements are not carried to subsequent suggestions. For example,
  // http://www.example.com/node/1/edit would result in the following
  // suggestions:
  //
  // page-node-edit.tpl.php
  // page-node-1.tpl.php
  // page-node.tpl.php
  // page.tpl.php
 
$i = 0;
 
$suggestion = 'page';
 
$suggestions = array($suggestion);
  while (
$arg = arg($i++)) {
   
$suggestions[] = $suggestion . '-' . $arg;
    if (!
is_numeric($arg)) {
     
$suggestion .= '-' . $arg;
    }
  }
  if (
drupal_is_front_page()) {
   
$suggestions[] = 'page-front';
  }
 
 
//Teil zum auswählen eines Templates für spezielles Vokabular
 
if (arg(0) == 'taxonomy' && arg(1) = 'term' && $id = arg(2)){
     
$term = taxonomy_get_term($tid)
   
$suggestions[] = 'taxonomy-vocabulary-'.$term->vid;
  } 

  return
_phptemplate_callback('page', $variables, $suggestions);
}
?>

Das letzte IF wurde von mir hinzugefügt um der callback noch einen Vorschlag zu übergeben. Der letzte Vorschlag wird anscheinend zuerst bearbeitet, daher dürfte man dann für vokabularspezifische Abfragen auf 'taxonomy/term/...' mit dem taxonomy-vocabulary-*vid*.tpl.php arbeiten können.

Hoffe das klappt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bin gerade auch noch auf

Eingetragen von derhasi (221)
am 31.01.2008 - 14:40 Uhr

Bin gerade auch noch auf eine vermutlich einfachere Anpassung der template.php gestoßen, indem man den template-variablen einen Wert für template_files oder template_file übergibt (siehe: _phptemplate_callback). Dies geschieht über die _phptemplate_variables (Diesmal wirklich _phptemplate_variables, nicht _itheme_variables):

<?php
function _phptemplate_variables($hook, $vars) {
  if (
$hook == 'page') {

    
//Teil zum auswählen eines Templates für spezielles Vokabular
     
if (arg(0) == 'taxonomy' && arg(1) = 'term' && $id = arg(2)){
         
$term = taxonomy_get_term($tid);
     
$vars['template_files'] = array('taxonomy-vocabulary-'.$term->vid);
    }
    return
$vars;
  }
  return array();
}
?>

So ist es nicht mehr notwendig die komplette phptemplate_page zu überschreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist echt zu viel für

Eingetragen von Junker (95)
am 31.01.2008 - 15:44 Uhr

Das ist echt zu viel für mich... Mein Kopf brennt...
Wäre nicht schlecht, wenn mir das jemand erklären könnte...

Um das Problem noch mal konkreter zu beschreiben... Vielleicht gibt es ja noch eine einfachere Lösung:

Die taxonomy/term soll für ALLE Vokabulare gelten, außer

Vokabular "Blogs" (ID: 2)
Begriff 1 "Hunde" (ID: 6)
Begriff 2 "Katzen" (ID: 7)
Begriff 3 "Kleintiere" (ID: 8)
Begriff 4 "Pferde" (ID: 9)
Begriff 5 "Fische" (ID: 10)
Begriff 6 "Sonstiges" (ID: 11)

Vielleicht kann man diese über das template der taxonomy/term ausschließen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du nur den

Eingetragen von derhasi (221)
am 31.01.2008 - 16:27 Uhr
  • Wenn Du nur den Ansichtentyp des Views ändern willst, wird der Argument-HandlingCode der einfachste Weg sein

    <?php
    $term
    = taxonomy_get_term($args[0]);
    if (
    $term->vid == 2)
    {
     
    $view->page_type = 'table'; // for vid = 2 we are showing table view
    }
    else {
     
    $view->page_type = 'teaser';
    }
    // for any other vocabulary we show Teaser view.
    return $args;
    ?>

    Da Vollansicht und Teaser die Angaben der Felder ignorieren, kannst Du diese für eine Tabellenansicht zum Beispiel normal einstellen.

    Mit dem Views Argument Handling Code lassen sich noch viele andere Sachen, Variablenspezifisch einstellen.

    An PHP-Code wirst Du nicht vorbeikommen.

  • Wenn es bei den wenigen Begriffen bleibt (Hund, Pferde,...) kannst Du auch mit Path URL Alias arbeiten.
  • Wenn Du die komplette Seitenasicht ändern willst, musst Du wahrscheinlich trotzdem die Templates bemühen. Mein vorheriger Ansatz war dazu gedacht, dass Du ein spezielles Template (Alternatvie zu page.tpl.php) erstellen kannst um dort einen gewissen Content direkt in diesem Template (z.B. theme_views statt $content) ausgeben zu lassen.
  • Es gibt auch noch das Modul NAT welches über die Erstellung eines Nodes auch die Erstellung eines Taxonomy-Terms verursacht. Für diese gekoppelten Taxonomieterme lässt sich dann eine Umleitung auf diese Nodes realisieren.
    An diese Nodes könnte in der Ansicht auch ein view angehängt werden.
  • Anmelden oder Registrieren um Kommentare zu schreiben

> Frage: Wie kann diese

Eingetragen von lemonis@drupal.org (3)
am 12.03.2008 - 12:42 Uhr

> Frage: Wie kann diese Ansicht nur für BESTIMMTE Vokabulare / Begriffe beschränken??????

Kannst du nicht einfach einen Filter auf "Taxonomy: Vocabulary Name" hinzufügen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Content template

Eingetragen von tiger (415)
am 12.03.2008 - 13:40 Uhr

Ich habe ein ähnliches Problem dem Modul content template gelöst. Da kannst du die Ausgabe einzelner Inhaltstypen anpassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie hast du das Problem denn

Eingetragen von FuXXz (174)
am 18.05.2009 - 05:04 Uhr

Wie hast du das Problem denn jetzt letzendlich gelöst?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association