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 - 10: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 - 12: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 - 13: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 - 16: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 - 10: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

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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