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

Modul-Daten in Seiten anzeigen

Eingetragen von saila (59)
am 09.03.2009 - 15:30 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

<?php

function mymodul_node_info() {
    return array(
'mymodul' => array('name' => t('MyModul'),
                                       
'module' => 'mymodul', ),);
}

function
mymodul_load($node) {
    if(isset(
$node)) {
       
$query = "SELECT savename, imgw, imgh FROM {mymodul} WHERE active = 1 AND nid = %n AND domain = '%s'";
        return
db_fetch_object(db_query($query), ($node = $node ? $node : 1), $_SERVER['HTTP_HOST'] );
    }
}

function
mymodul_view($node, $teaser = FALSE, $page = NULL) {
   
$node = node_prepare($node, $teaser);
   
$node->content['mymodul'] = array(
                                   
'#value' => theme('mymodul', $node),
                                   
'#weight' => 1, );
    return
$node;
}

function
mymodul_theme() {
    return array(
       
'mymodul' => array('arguments' => array('node'), ),
          
   );                  
}

function
theme_mymodul($node) {
   
$output = '<div class="teaerimage">';
   
$output .= 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH';
   
$output .= '</div>';
    return
$output;
}
?>

Die Frage zu obigem Beispiel ist nun, wie bekommt man die Daten aus der DB in eine Page?
Die/Das Beispiel, wie man ein Modul entwickeln kann habe ich x-mal durchgelesen und auch mehrfach übernommen. Jedoch wurde nicht ein einziges mal eine Ausgabe der DB-Daten dargestellt oder in die Seite eingebunden.

Als dies nicht funktionierte, habe ich es per preprocess versucht. Da wurden zwar die definierten Variablen für das Template übernommen, aber wiederum nicht die Daten aus der Datenbank.

‹ Statisktik nachbauen für Drupal 6 Vergleich von Serverlast für Anfrage ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Daten auf Seite

Eingetragen von stBorchert (6003)
am 09.03.2009 - 15:42 Uhr

Ok, dann wollen wir mal.
Wenn das Modul unter einem bestimmten Pfad eine Seite mit den Daten anzeigen soll, musst Du Drupal erstmal sagen, unter welchen Pfad eine solche Seite verfügbar sein soll. Dies ist unter Anderem auf dieser Seite beschrieben.
Kurzfassung: Du musst einen neuen "Menüpunkt" mittels hook_menu() hinzufügen, der als callback eine Funktion liefert, die die entsprechenden Inhalte darstellt.

In dieser entsprechenden Funktion kannst Du dann Deine Daten laden. Wenn es Daten aus der node-Tabelle (und den dazugehörigen Tabellen) sind, kannst Du node_load() verwenden, ansonsten db_query() in Verbindung mit SQL.

Reicht das erstmal als Ansatzpunkt?

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Indem man den Anleitungen

Eingetragen von wla (9461)
am 09.03.2009 - 15:52 Uhr

Indem man den Anleitungen folgt, die in diversen Büchern zu finden sind. Hier mal 2 Auszüge aus Pro Drupal Development zu hook_node_info

/**
* Implementation of hook_node_info().
*/
function joke_node_info() {
  // We return an array since a module can define multiple node types.
  // We're only defining one node type, type 'joke'.
  return array(
    'joke' => array(
      'name' => t('Joke'), // Required.
      'module' => 'joke', // Required.
      'description' => t('Tell us your favorite joke!'), // Required.
      'has_title' => TRUE,
      'title_label' => t('Title'),
      'has_body' => TRUE,
      'body_label' => t('Joke'),
      'min_word_count' => 2,
      'locked' => TRUE
    )
  );
}

und dann noch hook_load
/**
* Implementation of hook_load().
*/
function joke_load($node) {
  return db_fetch_object(db_query('SELECT punchline FROM {joke} WHERE vid = %d',
    $node->vid));
}

ich denke, daß man die Unterschiede schon sehen kann. Dein Code ist einfach falsch oder nicht vollständig.
Ich kann und will hier nicht das ganze bis ins Detail auswalzen, aber es hilft auch, wenn man sich mal entsprechende Module ansieht und feststellt, wie es da gelöst wurde. Du kannst kaum erwarten, daß man Dir mal so nebenbei ein komplettes Modul schreibt. Da solltest Du dich schon selbst einlesen.

Gruß
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Reichen würde das, wenn ich

Eingetragen von saila (59)
am 09.03.2009 - 15:56 Uhr

Reichen würde das, wenn ich das nicht schon mal versucht hätte. Wobei nun die Frage noch mal aufkommt, wenn ich alle Seiten - sprich somit egal welche Page/Artikel geladen wird erreichen möchte, was ist dann als items anzugeben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

wla schrieb Du kannst kaum

Eingetragen von saila (59)
am 09.03.2009 - 16:01 Uhr
wla schrieb

Du kannst kaum erwarten, daß man Dir mal so nebenbei ein komplettes Modul schreibt. Da solltest Du dich schon selbst einlesen.

Gruß
Werner

Danke für deine Bemühungen und dein Hinweis. Allerdings habe ich schon an x Stellen bereits genannt, dass ich kein Modul geschrieben haben möchte(kann man auch noch in font-size: 2em; darstellen!. Wenn dir der Aufwand Usern zu helfen zu viel ist, dann liegt es in deiner Entscheidung dies eben nicht zu tun. Und auch das Buch habe ich x mal durchgelesen und auch darauf vermerkt, das es mit der Übersetzung schwer fällt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich helfe gerne, wenn ich

Eingetragen von wla (9461)
am 09.03.2009 - 16:27 Uhr

Ich helfe gerne, wenn ich kann, wenn ich sehe, das der andere sich bemüht und nicht immer nur quengelt, weil man es immer noch nicht mundgerecht geliefert hat. Ansonsten verweise ich auf den alten Internetspruch: RTFM

Gruß
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na dann seh mal zu das sich

Eingetragen von saila (59)
am 09.03.2009 - 17:50 Uhr

Na dann seh mal zu das sich andere Bemühen...... (so ein Schwachsinn).
Na dann noch mal zu tiefstem Dank verpflichtet - du dich vom Trohn herabgestiegender wia!
Ob sich dein Hinweis als das Problem herausstellt werde ich dann noch mitteilen - nur um deinen Hochmut mal in Frage zu stellen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Modul-Daten in Seiten anzeigen

Eingetragen von traxer (1009)
am 09.03.2009 - 18:07 Uhr
saila schrieb

<?php

return db_fetch_object(db_query($query), ($node = $node ? $node : 1), $_SERVER['HTTP_HOST'] );
?>

Richtig wäre:

<?php
$result
= db_query($query, $node->nid, $_SERVER['HTTP_HOST']);
$record = db_fetch_object($result);
if (
$record) {
  return
$record;
} else {
  return new
stdClass;
}
?>

Deine Daten können natürlich nur dann richtig angezeigt werden, wenn sie vorher richtig geladen werden.

Außerdem wäre es günstiger, wenn deine Tabelle eine Spalte vid haben würde, da dein Modul dann unterschiedliche REvisionen des selben Nodes außeinanderhalten kann.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi traxer, danke für den

Eingetragen von saila (59)
am 09.03.2009 - 18:35 Uhr

Hi traxer,

danke für den Hinweis, da ist mir ein Fehler unterlaufen.
Die Verfeinerung auf vid (was bei node standard ist) werde ich noch ergänzen. Vorerst möchte ich ein Zwischenergebnis in Form der Datenausgabe.
Werde den Tipp sofort anpassen.

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

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