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

theme_node_preview() aendern?

Eingetragen von quiptime (4972)
am 03.12.2007 - 12:41 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Ich arbeite am neuen Googlemap Modul.

Beim Erstellen einer Map Node wird in der Vorschau die Map nicht angezeigt weil sie die 2. Map zur bereits angezeigten Map im Bearbeitenformular ist und die Map div der Preview die gleiche ID hat wie die Map div im Bearbeitenformular. Ich muss also fuer die 2. Map die Map div ID aendern.

Es geht also nicht darum theme_node_preview() per Template sondern per Modul zu aendern. Nun suche ich nach einer Moeglichkeit dafuer und sehe gerade keine.

Hat Jemand eine Idee?

Hier der Vollstaendigkeit halber Code der theme_node_preview()

<?php
function theme_node_preview($node) {
 
$output = '<div class="preview">';
  if (
$node->teaser && $node->teaser != $node->body) {
   
drupal_set_message(t('The trimmed version of your post shows what your post looks like when promoted to the main page or when exported for syndication. You can insert the delimiter "&lt;!--break--&gt;" (without the quotes) to fine-tune where your post gets split.'));
   
$output .= '<h3>'. t('Preview trimmed version') .'</h3>';
   
$output .= node_view(drupal_clone($node), 1, FALSE, 0);
   
$output .= '<h3>'. t('Preview full version') .'</h3>';
   
$output .= node_view($node, 0, FALSE, 0);
  }
  else {
   
$output .= node_view($node, 0, FALSE, 0);
  }
 
$output .= "</div>\n";

  return
$output;
}
?>

-----------------
quiptime

‹ hook_form() und Nichtform-Seitenelemente In page content einfügen? nodeapi? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

@traxer

Eingetragen von quiptime (4972)
am 04.12.2007 - 02:47 Uhr

@traxer, hast Du eventuell eine Idee?

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

hook_nodeapi($op = view)

Eingetragen von traxer (1009)
am 04.12.2007 - 03:47 Uhr
quiptime schrieb

@traxer, hast Du eventuell eine Idee?

Du kannst in hook_nodeapi($op = view) die '#id' des entsprechenden Eintrages in $node->content ändern. Der hook wird auch für die Vorschau ausgeführt.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

@traxer, das ist nicht das Problem

Eingetragen von quiptime (4972)
am 05.12.2007 - 02:30 Uhr
Zitat:

Du kannst in hook_nodeapi($op = view) die '#id' des entsprechenden Eintrages in $node->content ändern. Der hook wird auch für die Vorschau ausgeführt.

Genau an der Stelle setzt meine Frage an.

Ich verwende bereits hook_nodeapi($op = view).

Die Vorschau wird auch angezeigt - das ist nicht das Problem.

Das Problem ist, wenn mit der Preview eine div mit der gleichen ID wie im Bearbeitenformular angezeigt wird so kann mit der Vorschau div eine Googlemap gezeigt werden. Da aber auf der gleichen Seite im Bearbeitenformular die div mit gleicher ID existiert wird wird in dieser div die Googlemap nicht angezeigt da die div fuer die Googlemap schon verwendet wird.

Man kann in einer Website nur dann mehrere Googlemaps anzeigen, wenn die basierenden div der Maps unterschiedliche ID's haben.

Deswegen meine Ueberlegung, die ID div in der Preview zu aendern. Damit werden dann beide Googlemaps angezeigt - die Preview- und Bearbeiten-Map.

Eigentlich wuerde ich ein hook_nodeapi($op = preview) brauchen. Aber genau das gibt es ja nicht.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie Previews gerendert werden

Eingetragen von traxer (1009)
am 05.12.2007 - 12:23 Uhr
quiptime schrieb

Deswegen meine Ueberlegung, die ID div in der Preview zu aendern. Damit werden dann beide Googlemaps angezeigt - die Preview- und Bearbeiten-Map.

Das habe ich schon verstanden.

quiptime schrieb

Eigentlich wuerde ich ein hook_nodeapi($op = preview) brauchen.

Eigentlich nicht. Der Aufrufstapel sieht ja so aus

  1. menu_execute_active_handler
  2. node_page_edit
  3. drupal_get_form
  4. drupal_render_form
  5. drupal_render
  6. node_preview
    Hier wird eine Kopie des Nodes angelegt und damit weitergearbeitet. Außerdem setzt die Funktion $node->in_preview=true. Weiter geht es mit
  7. theme('node_preview')
  8. theme_node_preview
  9. node_view($node)
  10. node_build_content($node)
  11. node_invoke_nodeapi($node, 'view')
  12. googlemap_nodeapi($node, 'view')
    Hier ist es möglich, das id-Attribut des erzeugten div-Elementes zu manipulieren.

Nachdem der Aufrufstapel wieder bei Punkt 5 angelangt ist, wird das eigentliche Formular gerendert.

Falls das nicht funktioniert, könnte ich mal einen Blick auf den Quelltext werfen. Ist der im contrib-CVS?

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mhm, den Ablauf des

Eingetragen von quiptime (4972)
am 05.12.2007 - 13:35 Uhr

Mhm, den Ablauf des Aufrufstapel kannte ich bisher nicht.

Nun stellt sich mein Problem in einem anderen Licht dar. Ich habe dazu einen neuen Thread eroeffnet.

hook_form() und Nichtform-Seitenelemente: http://www.drupalcenter.de/node/6926

Ich denke ich muss dort ansetzen um mein Problem auf der richtigen Basis zu loesen.

@traxer, eventuell hast Du bei der Problemstellung im anderen Thread auch einen Ansatz?

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

War ungenau von mir

Eingetragen von traxer (1009)
am 05.12.2007 - 14:45 Uhr
quiptime schrieb

Mhm, den Ablauf des Aufrufstapel kannte ich bisher nicht.

War auch nicht ganz korrekt von mir. Richtig ist
11. node_invoke($node, 'view')
12. googlemap_view($node)

Weil es sich ja um Daten eines Inhaltstyps handelt, den das Modul selbst definiert.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuinstallation: vermutlich ein rewrite-Problem
  • 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
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 1 Woche 4 Tagen
  • Wenn die Subdomain auf
    vor 1 Woche 6 Tagen
  • ordnerstruktur
    vor 1 Woche 6 Tagen
  • Die Subdomain muß auf den
    vor 2 Wochen 1 Tag
  • Verwende doch das Tag dafür,
    vor 5 Wochen 3 Tagen
  • Guckst du hier: step by step
    vor 5 Wochen 3 Tagen
  • Guckst du hier: step by step
    vor 5 Wochen 3 Tagen
  • Ich habe ja keine Angst vor
    vor 6 Wochen 5 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 7 Wochen 1 Tag
  • Vielen Dank erst einmal, aber
    vor 7 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250289
Registrierte User: 20518

Neue User:

  • Wolf Dab
  • Scottteday
  • MichaelPeeno

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 28 Gäste online.

Benutzer online

  • wla

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