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 - 11: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 - 01: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 - 02: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 - 01: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 - 11: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 - 12: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 - 13: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

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