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

Simples Modul Content Links

Eingetragen von HaPe (50)
am 13.08.2008 - 11:21 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Hallo zusammen,

nachdem ich kein Modul gefunden habe, dass mir auf einfache Art und Weise alle Content Titel als Links oberhalb der Seite anzeigt
(linktocontent brachte bei mir leider kein Ergebnis / theme??) und ich mit dem Modul Views (noch) nicht umgehen kann, habe ich mir etwas ganz simples selbst ausgedacht und programmiert:

// Modul contentlinks
function contentlinks_help($section='') {

  $output = '';
  switch ($section) {
    case "admin/modules#description":
      $output = t("Zeigt die Content Links einer Seite oberhalb der Seite an.");
      break;
  }

  return $output;
}

function contentlinks_nodeapi(&$node, $op, $a3 = NULL, $page = FALSE) {
$arr_node = (array)$node;
if ($op == 'load') {
   foreach($arr_node as $key => $wert){
      if ($key == 'nid'){
         drupal_set_message(l($arr_node['title'],'node/'.$arr_node[nid]));
      }
   }
}
}
// Ende Modul contentlinks

Diese Funktion liefert mir als Ergebnis genau das was ich benötige. Das ganze kann man jetzt noch mit Permissions und ähnlichem erweitern wenn man möchte.
Wenn man jetzt noch als Konvention den Titel als Anker eingibt und den Link mit einer Sprungadresse versieht, kann man sogar noch
auf der Seite bleiben.

Vielleicht hat der eine oder andere ja noch eine Anmerkung oder kann es für sich selbst gebrauchen.

Gruß HaPe

‹ Virtuelles Userprofil Cache-Menü (hook_menu) neu aufbauen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktion?

Eingetragen von Kars-T (1473)
am 13.08.2008 - 13:15 Uhr

Hi,

ich verstehe leider nicht so ganz, was du mit dem Modul erreichen willst?

Du schreibst in das für Messages vorgesehene Feld einen Link zum gerade geladenen Node?
Zum einen kann es gut sein, das die Nutzer das garnicht sehen können und zum anderen verstehe ich leider nicht wozu du das tust.

Wenn du eine Liste aller Überschriften mit der Möglichkeit zu diesen zu springen willst, guck dir doch mal das Modul an:

http://drupal.org/project/tableofcontents

Und du müsstest $node nicht in ein Array casten und loopen. $node->nid tut auch das was du willst.

Hab ich aber nicht getestet:

<?php
function contentlinks_nodeapi(&$node, $op, $a3 = NULL, $page = FALSE) {
    if (
$op == 'load') {
       
drupal_set_message(l($node->title,'node/'.$node->nid));
    }
}
?>

Wenn du verschiedenartige Nodes auflisten willst, guck dir doch bitte mal, wie du schon schreibst, Views an. Das ist nicht schwer und auch gut anpassbar. Und es kann so vieles :)

---

Viele Grüße,

Kars-T

Arbeit: comm-press

Hobbies: Tower Defense HQ, plamo.de, Blog

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ Kars-TIch möchte auf

Eingetragen von HaPe (50)
am 13.08.2008 - 14:03 Uhr

@ Kars-T
Ich möchte auf jeder Seite mit mehrerem Inhalt im Header ein Inhaltsverzeichnis anzeigen (Bsp.: Wiki Seiten).
Probiere das Modul doch einfach mal aus, dann siehst Du was ich damit erreiche.

Wie ich schon schrieb, brachte das Modul tableofcontent bei mir leider keine Ausgabe.

Casten muss ich bei mir das Array, wenn ich das nicht tue, bekomme ich eine leere Seite als Ausgabe.
Die Schleife brauche ich natürlich nicht da hast Du Recht.

Da ich beim klick auf die Content links nicht auf die einzelnen Nodes sondern auf die komplette Seite verlinken möchte habe ich das
ganze wie folgt umgebaut:

function contentlinks_nodeapi(&$node, $op, $a3 = NULL, $page = FALSE) {

if ($op == 'load') {
   $arr_node = (array)$node;
   $title    = menu_get_active_title();
   $title    = "'".$title."'";
   $query = "SELECT path FROM menu WHERE title={$title}";
   $queryResult = db_query($query);
   $link = db_fetch_object($queryResult);
   drupal_set_message(l($arr_node['title'],$link->path.'#'.$arr_node['title']));
}
}

Ich bin noch Drupal Anfänger, deshalb mag das ganze für die Profis etwas seltsam wirken.
Allerdings bin ich auf für simple Lösungen und das ist eine, die für meine Belange funktioniert.

Gruß HaPe

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo HaPe, da Du lieber ein

Eingetragen von klapper@drupal.org (85)
am 13.08.2008 - 17:55 Uhr

Hallo HaPe,

da Du lieber ein neues Modul schreibst, als Views zu erlernen (was ich in gewisser Weise sogar verstehen kann, obwohl es sich echt lohnt sich in Views durchzukämpfen!!) und vielleicht ein paar Tipps gebrauchen kannst, will ich auch hier nochmal meinen Senf dazugeben (schadet hoffentlich keinem).

Also "hook_nodeapi" und "drupal_set_message" ist nicht so doll geeignet, weil der hook nur aufgerufen wird, weil Du noch "node" als Startseite verwendest und die "drupal_set_messages" - naja - auch mal etwas anderes anzeigen, was Deine Liste lustig aussehen läßt (und überhaupt für was ganz anderes gedacht ist, blablabla ...).

Wenn ein neues Modul, dann schau Dir bitte mal die Funktion "node_page_default" im node.module an. Auch, wie es von "node_menu" aus aufgerufen wird. Das ist nämlich die Standard-Startseite. Wenn Du den Code kopierst, alles unnötige rausschmeißt und mit neuem Pfad zur neuen Startseite machst, dann hast Du eine super Lösung.

Viele Grüße
Edmund
------
Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Neues Modul

Eingetragen von HaPe (50)
am 14.08.2008 - 11:54 Uhr

@klapper
Ich würde (werde) auch gerne das Modul Views erlernen, aber leider fehlt mir dafür momentan die Zeit.

Du schreibst der hook_nodeapi wird nur aufgerufen, weil ich node als Startseite benutze. Das verstehe ich leider nicht so ganz. Könntest Du mir das bitte näher erklären?
Dass die Funktion drupal_set_messages auch mal was anderes anzeigen könnte, ist natürlich ein Problem, allerdings bisher noch nicht passiert.

Den Ratschlag mit der Funktion node_page_default nehme ich gerne an. Ich werde mir diese Funktion jetzt mal genau anschauen und dann gezielt Fragen stellen.

Vielen Dank für die Hilfe

Gruß HaPe

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 5 Tagen 18 Stunden
  • Guckst du hier: step by step
    vor 5 Tagen 8 Stunden
  • Guckst du hier: step by step
    vor 5 Tagen 8 Stunden
  • Ich habe ja keine Angst vor
    vor 2 Wochen 17 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 3 Tagen
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 4 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 5 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 3 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 5 Wochen 12 Stunden
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20499

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 15 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