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

Nodes mit bestimmter Taxonomie und bestimmtem Node Type auslesen

Eingetragen von djdops (30)
am 25.07.2008 - 11:29 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Moin Leute,

ich möchte auf einer Seite (kein View, leider nicht möglich) Nodes eines bestimmten Typs und mit einer bestimmten Taxonomie ausspielen. Vermutlich finde ich die Funktion(en) mit den dies möglich ist einfach nur nicht. Könnt ihr mir da auf die Sprünge helfen?

Beste Grüße
djdops

‹ update xmlsitemap module Frage zu Fck editor ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nodes mit bestimmter Taxonomie und bestimmtem Node Type auslesen

Eingetragen von traxer (1009)
am 26.07.2008 - 12:31 Uhr
djdops schrieb

ich möchte auf einer Seite (kein View, leider nicht möglich) ...

Glaube ich irgendwie nicht. Kannst du das näher erläutern?

djdops schrieb

... Nodes eines bestimmten Typs und mit einer bestimmten Taxonomie ausspielen.

Es gibt keine direkte Verbindung zwischen Nodes und Taxonomien. Es gibt eine Verbindung zwischen

  • Nodes und Begriffen (dadurch wird festgelegt, welche Begriffe mit einem Node verknüpft sind)
  • Inhaltstypen und Vokabularen (dadurch wird festgelegt, aus welchem Vokabularen die Begriffe kommne dürfen, die mit Nodes des Inhaltstyps verknüpft werden können)

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klar kannst du dir die

Eingetragen von dawehner (2639)
am 26.07.2008 - 12:42 Uhr

Klar kannst du dir die Datenbankquerries selber ausdenken, aber es gibt eine deutlich einfachere Methode: Views (warte...)

Wenn man eine View erstellt kann man mit dem Devel Modul die resultierende Query auslesen und benutzen, bzw. nach eigenen Vorlieben anpassen und für sein Modul/etc. nehmen

Also erstelle eine View mit einer definierten URL
dann geh auf diese Url und du wirst den Local Task "Dev Queries" sehen. Dort siehst du die Datenbankabfrage, viel Spaß damit

--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views und Positionierung

Eingetragen von djdops (30)
am 28.07.2008 - 09:24 Uhr

Moin traxer,

ich habe bislang noch keine Möglichekeit gefunden einen bestimmten Node in einem View an einer bestimmten Stelle auszuspielen. Und genau das muss ich tun. Ich setze mich allerdings auch noch nicht alzu lange mit Drupal auseinander. Die Architektur ist somit sicherlich auch nicht perfekt. Ich habe z.B. nur ein Vokabular, welches die Struktur der Site darstellt. Somit kann auch jeder Inhaltstyp auf das Vokabular zugreifen.

Du hast aber recht, das ich etwas unklar war.
Ein node eines bestimmten Typs ist einem bestimmten Begriff zugeordnet. Nun habe ich ein Template als Übersichtsseite gebaut, und möchte auf dieser Seite entweder bestimmte Nodes an bestimmten Positionen ausspielen, welche von einem Redakteur ausgewählt, oder aber (an den nicht besetzten Positionen) die neuesten Nodes eines bestimmten Typs mit einem bestimmten Begriff.

Beste Grüße
djdops

  • Anmelden oder Registrieren um Kommentare zu schreiben

SQL

Eingetragen von djdops (30)
am 28.07.2008 - 09:31 Uhr

Moin dereine,

an die Möglichkeit ein SQL-Statement zu schreiben habe ich auch gedacht. Allerdings würde ich lieber vorhandene Funktionen verwenden, sofern möglich. Daher ist die Idee mit einem View und dem Devel-Modul sehr gut, ich würde sie jedoch erst nutzen wollen wenn es keinen anderen Weg gibt.

Beste Grüße
djdops

  • Anmelden oder Registrieren um Kommentare zu schreiben

Verwende Drupals Node- und Taxonomyfunktionen

Eingetragen von quiptime (4972)
am 28.07.2008 - 10:56 Uhr

Sehe Dir auf http://api.drupal.org die Funktionen im Zusammenhang mit node, term, vocabulary und taxonomy an.

Die genannten Begriffe im Autocomplete field (oben links) eingeben.

Ich bin mir sicher Du findest eine Moeglichkeit, mittels PHP Code und Drupals Node- und Taxonomyfunktionen, innerhalb eines Nodetype Templates, Nodes eines bestimmten Typs und einer bestimmten Taxonomie anzuzeigen.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

taxonomy_select_nodes()

Eingetragen von djdops (30)
am 06.08.2008 - 14:20 Uhr

So, nach langem Suchen und Probieren hab ich mir nun die Funktion Taxonomy_select_nodes() angepasst. Ich übergebe einfach einen weiteren Parameter. Dieser enthält ein Array mit den Inhaltstypen, auf die das Ergebniss beschränkt werden soll.

Vielen Dank für eure Hilfe und Vorschläge.

Beste Grüße
djdops

  • Anmelden oder Registrieren um Kommentare zu schreiben

klingt interessant. kannst

Eingetragen von headkit (514)
am 18.11.2008 - 12:10 Uhr

klingt interessant.
kannst du den code posten?

danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kein Problem

Eingetragen von djdops (30)
am 18.11.2008 - 14:09 Uhr

function taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC', $exclusion = array(), $num = false, $node_type = array()) {
  if (count($tids) > 0) {
    // For each term ID, generate an array of descendant term IDs to the right depth.
    $descendant_tids = array();
    if ($depth === 'all') {
      $depth = NULL;
    }
    foreach ($tids as $index => $tid) {
      $term = taxonomy_get_term($tid);
      $tree = taxonomy_get_tree($term->vid, $tid, -1, $depth);
      $descendant_tids[] = array_merge(array($tid), array_map('_taxonomy_get_tid_from_term', $tree));
    }

    if ($operator == 'or') {
      $args = call_user_func_array('array_merge', $descendant_tids);
      $placeholders = implode(',', array_fill(0, count($args), '%d'));
      // Excludes the given node ids.
      $exclusion = (count($exclusion) > 0) ? ' AND n.nid NOT IN (' . implode(',', $exclusion) . ')' : '';
      // Selects only the node of a given type.
      if (is_array($node_type))
      {
      foreach ($node_type as &$type) { $type = '\'' . $type . '\''; }
      $node_type = (count($node_type) > 0) ? ' AND n.type IN (' . implode(',', $node_type) . ')' : '';
      }
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $placeholders .')' . $exclusion . ' ' . $node_type . ' AND n.status = 1 ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $placeholders .')' . $exclusion . ' ' . $node_type . ' AND n.status = 1';
    }
    else {
      $joins = '';
      $wheres = '';
      $args = array();
      foreach ($descendant_tids as $index => $tids) {
        $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid';
        $placeholders = implode(',', array_fill(0, count($tids), '%d'));
        $wheres .= ' AND tn'. $index .'.tid IN ('. $placeholders .')';
        $args = array_merge($args, $tids);
      }
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres;
    }
    $sql = db_rewrite_sql($sql);
    $sql_count = db_rewrite_sql($sql_count);
    if ($pager) {
    $sql_num = ($num !== false) ? $num : variable_get('default_nodes_main', 10);
      $result = pager_query($sql, $sql_num, 0, $sql_count, $args);
    }
    else {
    $sql_num = ($num !== false) ? $num : variable_get('feed_default_items', 10);
      $result = db_query_range($sql, $args, 0, $sql_num);
    }
  }

  return $result;
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

danke!

Eingetragen von headkit (514)
am 18.11.2008 - 14:28 Uhr

danke!

  • 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 2 Wochen 5 Tagen
  • Hey danke
    vor 2 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 3 Wochen 10 Stunden
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 2 Tagen
  • In der entsprechenden View
    vor 4 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 2 Tagen
  • gelöst
    vor 6 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20461

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» 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 16 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