[#] Relatywne segmenty według terminów

( Ostatnio zmieniony śr., 11/06/2008 - 13:11 )
 

Wynik działania, jest uzależniony od tego do jakich terminów należy wybrany segment.

<?php

  $max=5;

  if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) {

    $nid = (int)arg(1);
    $terms = taxonomy_node_get_terms($nid);
    $output = "<ul>";

    foreach($terms as $term){

      $sql  = "SELECT n.title, n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid ";
      $sql .= "WHERE tn.tid = %d AND n.nid != %d LIMIT %d";

      $result = db_query(db_rewrite_sql($sql, $term->tid, $nid, $max));

      if (db_num_rows($result)) {
        $output .="<li>$term->name</li><ul>";

        while ($anode = db_fetch_object($result)) {
          $output .= "<li>".l($anode->title, "node/$anode->nid")."</li>";
        }

        $output.="</ul>";
      }
    }
    $output .= "</ul>";
    echo $output;
  }
?>

Jeśli chcesz, aby wyświetlane pozycje były brane pod uwagę względem daty utworzenia, zmień zmienną $sql na:

$sql = "SELECT n.title, n.created, n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid ";
$sql .= "WHERE tn.tid = $term->tid AND n.nid != $nid ORDER BY n.created DESC LIMIT $max";

Porada:

„return $zmienna“, zwróci wynik i zakończy działanie kodu php. jeśli chcesz coś później jeszcze wyświetlić, użyj „echo $zmienna“ lub print $zmienna

Przydatne może okazać się również <?php unset ($output); ?>

Twoja ocena: Brak Średnio: 5 (1 vote)

Dodaj nową odpowiedź

Informacja:

Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich, mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną. Upewnij się, że twoja wypowiedź nie godzi w niczyje mienie.

  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <strong> <blockquote> <code>
  • Znaki końca linii i akapitu dodawane są automatycznie.

Więcej informacji na temat formatowania

Łapirobot
Proszę odpowiedzieć
H
e
3
i
Z
z
M
V
s
t
Enter the code without spaces and pay attention to upper/lower case.