Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Anpassung einer Funktion zum Vor und Zurück Blättern in Artikeln

Eingetragen von holger@drupal.org (544)
am 17.12.2008 - 12:08 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo allerseits,

ich nutze auf meiner Seite in den Artikeln eine Funktion um zwischen den Beiträgen zu blättern (previous node - next node) Das Ganze basiert auf der Anleitung auf http://drupal.org/node/117140

Funktionieren tut das soweit aber eine Frage dazu habe ich:
Wie kann man den Title Tag (title="") bei mouseover da noch einbringen?

Realisiert ist das alles über die template.php des Themes und Contemplate.

Der Code aus der template.php:

function next_prev_same_type($nid=null, $path=null, $direction=null)
{
  if($nid){
    // gather some node information
    $node = node_load($nid);
    $type = $node->type;
    $created = $node->created;
  
    // retrieve all node ids of this nodes' translations
    $translation_ids = array();
    foreach($node->translation as $translation) {
      if($translation->status == 1){
        $translation_ids[$key] = $translation->nid;
      }
    }
  
    // switch some vars depending on direction
    switch ($direction){
      case 'next':
        $modifier = ">";
        $order = "ASC";
        $link_str = " Zum nächsten Beitrag ››";
        break;
      case 'prev':
      default:
        $modifier = "<";
        $order = "DESC";
        $link_str = "‹‹ Zum vorherigen Beitrag ";
    }
  
    // get next / prev element from database
    $query = db_query('select nid from {node} where type=\'%s\' AND status=1 AND nid!=%d AND created'.$modifier.'%d ORDER BY created %s, nid %s Limit 1',$type,$nid,$created,$order,$order);
    while ($item = db_fetch_object($query)){
      if($item->nid!=$nid && !in_array($item->nid,$translation_ids)){
        $nav_nid = $item->nid;
      }else{
        // skip element, if it is a translation of the current node
        return next_prev_same_type($item->nid,$path,$direction);
      }
    }
    if($nav_nid){
      return l(t($link_str),$path."/".$nav_nid);;
    }
  }
}

und der Code aus Contemplate:

<?php
 
print next_prev_same_type($node->nid, "node", "prev"); ?>
|
  <?php
 
print next_prev_same_type($node->nid, "node", "next");
?>

Weiß jemand wie ich den title-tag da einbringen kann um bessere Validität zu erzeugen?

Danke

‹ Anfängerfrage: Startseite einrichten Blocks werdem nicht auf den jeweiligen Seiten angezeigt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

ich vermute mal das dies

Eingetragen von holger@drupal.org (544)
am 17.12.2008 - 23:05 Uhr

ich vermute mal das dies irgendwie im Bereich

return l(t($link_str),$path."/".$nav_nid);;
angepasst wird oder?
Auf Drupal.org hab ich da auch schon gesucht, aber zu $link_str hab ich da auch nichts effektives gefunden.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist es nicht einfacher das

Eingetragen von caw (2762)
am 18.12.2008 - 07:29 Uhr

Ist es nicht einfacher das book Modul zu nutzen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

theme?

Eingetragen von McGo (145)
am 18.12.2008 - 08:53 Uhr

Moin Holger,

vllt. hilft dir ja das Überschreiben der Theme Funktion weiter: http://api.drupal.org/api/function/theme_links/6

Alternativ kannst du der l() Funktion auch attribute übergeben, die dann an den Link angehängt werden. Javascript müsste eigentlich auch gehen: http://api.drupal.org/api/function/l/6

Viel Erfolg,
Mirko

  • Anmelden oder Registrieren um Kommentare zu schreiben

Anpassung einer Funktion

Eingetragen von holger@drupal.org (544)
am 18.12.2008 - 10:08 Uhr

Ich habe jetzt mal versuch folgendes im oben genannten Code zu ändern:

return l(t($link_str), $link['title'],$path."/".$nav_nid);;

Dann bekomm ich leider nur eine weiße Seite zu sehen.

Ich habe mir auch mal die Codes wie im Buchmodul und Pager angesehen, fie Funktion ist ansich ja änlich, aber dort werden die Links mit <a href .... dann im Theme eingebracht, was in meinem Code ja nicht der Fall ist.
Warscheinlich ist die Lösung mal wieder echt einfach aber ich bin nunmal kein Programmierer ;-)

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Fehler: Wrong parameter count for in_array()

Eingetragen von holger@drupal.org (544)
am 20.12.2008 - 12:58 Uhr

Ich hab das Ganze jetzt zwar so hinbekommen, das es auf der Seite für den User sichtbar funktioniert, aber in den Logs kommt folgender Fehler

Zitat:

Wrong parameter count for in_array() in /web/1/000/014/453/10569/htdocs/drupal/themes/garland/template.php in Zeile 164.

Die Zeile 164 in meiner template.php sieht so aus:
if($item->nid!=$nid && !in_array($item->nid)){

und hier nochmal die komplette Funktion in der template.php

/** Vor- und Zurück Navi im Artikel**/
function next_prev_same_type($nid=null, $path=null, $direction=null)
{
  if($nid){
    // gather some node information
    $node = node_load($nid);
    $type = $node->type;
    $created = $node->created;
  
   
  
    // switch some vars depending on direction
    switch ($direction){
      case 'next':
        $modifier = ">";
        $order = "ASC";
        $link_str = " Zum nächsten Beitrag ››";
        break;
      case 'prev':
      default:
        $modifier = "<";
        $order = "DESC";
        $link_str = "‹‹ Zum vorherigen Beitrag ";
    }
  
    // get next / prev element from database
    $query = db_query('select nid from {node} where type=\'%s\' AND status=1 AND nid!=%d AND created'.$modifier.'%d ORDER BY created %s, nid %s Limit 1',$type,$nid,$created,$order,$order);
    while ($item = db_fetch_object($query)){
      if($item->nid!=$nid && !in_array($item->nid)){
        $nav_nid = $item->nid;
      }else{
        // skip element, if it is a translation of the current node
        return next_prev_same_type($item->nid,$path,$direction);
      }
    }
    if($nav_nid){
      return l(t($link_str),$path."/".$nav_nid);;
    }
  }
}

Auf Drupal.org habe ich dazu leider nichts gefunden, weiß da jemand Rat?

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einfach und modifizierbar:

Eingetragen von japanitrat (11)
am 20.12.2008 - 19:37 Uhr

Einfach und modifizierbar: Custom Pagers

  • Anmelden oder Registrieren um Kommentare zu schreiben

Anpassung einer Funktion zum Vor und Zurück Blättern in Artikeln

Eingetragen von holger@drupal.org (544)
am 20.12.2008 - 22:00 Uhr

Danke für den Hinweis japanitrat aber das beantwortet ja die Frage nicht ;-)
Custom Pager hatte ich schonmal angesehen aber das Modul ist wenn ich es nicht falsch verstehe ja ehr dafür gedacht wenn man einen node auf mehrere Seiten verteilt oder?

Die Funktion welche bei mir nicht funktioniert ist ein blättern zwischen den Artikeln (Story).
Bis auf den oben benannten Fehler funktionierts ja bereits nur was ist am Code falsch das diese Fehlermeldung kommt?

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

oeh, also das modul ist

Eingetragen von japanitrat (11)
am 21.12.2008 - 07:52 Uhr

oeh, also das modul ist dafür da, dass du auf node-views (also voll ansicht einer node) zus#tzlich einen vor/zurueck pager hast, der aus einer View berechnet wirst.

Bsp.: du hast Blogartikelt und willlst bei der Vollansicht zwei Links haben, die auf den Blogpost dafvor und danach zeigen. dafür musst du nur eine View erstellen, die dir alle Blogposts in einer bestimmten Reihenfolge gibt und diese in den Custom Pagers Settings angeben. Das Modul lädt diese View immer, wenn eine bestimmte Condition für die URL zutrifft (in der UI ist es standardmäßig der Nodetyp, aber du kannst auch eine PHP condition einfügen) und sucht dann die beiden Einträge raus, die davor/danach liegen. Du kannst diese Links wahlweise im Content-bereich der Node, oder in einem Block dann ausgeben.

Furthermore, statt "previous/next" kannst du mit ein wenig PHP code auch die Seitentitel einblenden. Einfach mal drupal.org und die Projekseite von Custom Pagers anchecken, ich glaube, das is genau das, was du brauchst :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Error! Wrong parameter count for in_array()

Eingetragen von holger@drupal.org (544)
am 23.12.2008 - 20:04 Uhr

Der Code den ich momentan nutze funktioniert ja - nur das eben in den Logs immer die benannte Fehlermeldung steht. Ich weiß nicht ob das irgendwo schädlich ist, auf die Funktion der Seite hat es soweit ichs sehe keinen Einfluss.
Hat niemand eine Idee was im Code geändert werden muss damit der PHP-Fehler behoben wird?

Kurz noch zu CustomPager: ich nutze Contemplate und damit scheinzt sich das Modul nicht zu vertragen bzw. da wird kein Pager angezeigt. Das war allerdings nicht meine Frage. Danke trotzdem

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

"in_array" erwartet zwei

Eingetragen von japanitrat (11)
am 24.12.2008 - 19:54 Uhr

"in_array" erwartet zwei parameter: den array in dem du suchen möchtest (haystack) und das element nach dem du suchst (needle) ..

in deiner variante uebergibst du aber nur einen parameter, die node-id ... worin soll er also danach suchen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

in_array - welcher Parameter fehlt?

Eingetragen von holger@drupal.org (544)
am 18.01.2009 - 11:07 Uhr

Mag ja sein, aber für mich bleibt die Frage, welcher Parameter fehlt???

In den Artikeln wird das Script ja korrekt dargestellt und auch das vorblättern und zurückblättern klappt. Nur ist eben bei jeder Aktion eines Users dieser Warnhinweis in den Logs.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

suchte zufällig zu dem

Eingetragen von sachbearbeiter (205)
am 18.01.2009 - 13:17 Uhr

suchte zufällig zu dem thema gerade - danke für die ausführliche behandlung ...

sg ds

  • Anmelden oder Registrieren um Kommentare zu schreiben

noch nicht ganz gelöst

Eingetragen von holger@drupal.org (544)
am 18.01.2009 - 13:33 Uhr

Das Ganze funktioniert zwar aber die benannte Fehlermeldung in den Logs ist trotzdem da.
Ich bin kein Programmierer und suche mir Lösungen auch immer üner Postings auf Drupal.org oder Drupalcenter zusammen.
Leider sind hier die beschriebenen Hinweise oft so geschrieben, das vorausgesetzt wird, dass man entspechende Kenntnisse in Sachen Programmierung hat. Wünschenswert wäre es, wenn die Fragen allgemeinverständlicher beantwortet werden würden.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

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

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 22 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