Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Theming für angehängte Bilder im Teaser u. in Views

Eingetragen von DrupalFan (1646)
am 07.04.2009 - 21:29 Uhr in
  • Themes & Theming
  • Drupal 6.x

Angehängte Bilder werden in Drupal in der Beitragsvorschau (Teaser) rechts unten angezeigt und nach dem Text.

Ich möchte das für den Teaser (Beitragsvorschau) ändern, dass das Bild zuerst kommt und rechts daneben der Text. Das soll für bestimmte Content Typen geändert werden.

Jetzt ist die Frage, wo man hier ansetzt und welche Templates man überschreibt: Ein Template vom Modul views überschreiben? Habe mir alle angesehen, da gibt es keinen Bereich, wo Attachements ausgegeben werden, alles spielt sich in
<?php print $rows; ?>
ab, auch die Attachements, also die angehängten Bilder, scheinen dort drinnen ausgegeben zu werden.

Kann man da trotzdem noch tiefer reingehen und eine tpl.php für die entsprechenden Views erstellen, damit das angehängte Bild vor dem Text und der Text rechts davon ausgegeben wird?

Oder ist der Startpunkt für diese Änderung das Upload-Modul? Dieses Modul hat leider keine Template Dateien (tpl.php).

Oder ist der Startpunkt für diese Änderung das Template für Nodes allgemein? Dort habe ich nichts über Attachements gefunden.

Bitte um Tipps oder eine Lösung.
vielen Dank.

‹ Welches Theme sieht dem von Webmiles ähnlich Startseiten Verweis auf jeder Seite ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

node.tpl.php

Eingetragen von stBorchert (6003)
am 07.04.2009 - 22:04 Uhr

Moin!
Mach mal in Deiner node.tpl.php oder node-<Typ>.tpl.php ein <?php drupal_set_message('<pre>'. print_r($node, 1) .'</pre>'); ?>.
Dann siehst Du alles, was im Node-Objekt enthalten ist.
Mit diesen Informationen kannst Du dann die entsprechenden Daten an der gewünschten Stelle ausgeben.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie geht es weiter?

Eingetragen von DrupalFan (1646)
am 07.04.2009 - 22:09 Uhr

Danke!!

Genau das habe ich in der Views-Doku gelesen. Aber wie geht es dann weiter?

Einfacher wäre es doch, man müsste nur eine bestehende tpl.php hernehmen, wo das enthalten ist, und dann an der Reihenfolge und am Styling etwas ändern. Gibt es in dieser tiefen ebene keine Default-Templates? Oder was ist der Grund, warum ich das nirgendwo finde, wo die attached Bilder ausgegeben werden im Teaser eines Nodes, eines Views und im Content eines Nodes?

Was genau muss ich dann weiter machen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo ist das Theming für das Attachment?

Eingetragen von DrupalFan (1646)
am 07.04.2009 - 22:20 Uhr

Wenn ich

<?php
drupal_set_message
('<pre>'. print_r($node, 1) .'</pre>');
?>
.
in die node.tpl.php eingebe, erhalte ich ein riesiges Arry über mehrer hundert Zeilen mit vielen Infos (auch die ganzen Arrayfelder der Views), aber nichts über das angehängte Bild (attachment). Gar nichts.

  • Anmelden oder Registrieren um Kommentare zu schreiben

node.tpl.php

Eingetragen von stBorchert (6003)
am 07.04.2009 - 22:48 Uhr

Wie bereits gesagt: Du siehst dann alle Daten des Node-Objektes. Inklusive der Dateien.
Ich hab das Node-Objekt jetzt mal bei mir mit der Funktion dsm() (devel.module) ausgegeben:
array files
Da haben wir doch ein schönes Array mit sämtlichen an das Node-Objekte angehängten Dateien. Diese können jetzt ganz einfach über die Funktion theme_upload_attachments() an beliebiger Stellen in der node.tpl.php ausgegeben werden.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine Ebene zu tief

Eingetragen von DrupalFan (1646)
am 07.04.2009 - 22:54 Uhr

Danke.

So weit war ich auch schon, habe mir das schon zuvor im Modul upload.module angesehen. Aber hier ist man schon eine ebene zu tief, hier kann ich nur noch verändern, welche Info vom Attachment ausgegeben werden soll.

Ich will aber das Attachement so belassen, wie es ist, es aber weiter nach vor schieben, also vor den Content.

In der node.tpl.php ist nirgendwo ein Code dafür!!!! Und daher kann ich ihn auch nicht nach vor verschieben. Wenn ich hier in der node.tpl.php wie Du schreibst an beliebiger Stelle was ausgeben, dann würde das Image doppelt im Node erscheinen!!!

Daher bleibt noch die Frage: Wo wird das derzeit ausgegeben an welcher Stelle im Node und wie kann ich es dort wegtun und weiter nach vor rücken, vor dem Content-Text?

Merci.

  • Anmelden oder Registrieren um Kommentare zu schreiben

node.tpl.php

Eingetragen von stBorchert (6003)
am 07.04.2009 - 23:05 Uhr

Ich zitier mich mal selbst: "Mit diesen Informationen kannst Du dann die entsprechenden Daten an der gewünschten Stelle ausgeben.".
Soll heissen: alle Daten. Also alles das, was normalerweise in $content drinsteht, gibst Du jetzt selbst aus.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oder anderst ausgedrückt.

Eingetragen von PowerMan (274)
am 08.04.2009 - 00:06 Uhr

Oder anderst ausgedrückt. Du musst dir alles das was sonst in $content ausgegeben wird, direkt in der node.tpl.php aus den gewünschten Variablen zusammensetzen.

Sehr gut ist auch das Modul Contemplate. Damit kann man sich auch alles anzeigen lassen. Es werden alle Variablen und und dessen Kind-Arrays mit Inhalte ausgeben. Dann kann man sich entscheiden welche Variablen für die Ausgabe am besten ist. Also ob nur der reine Wert oder gleich mit eingebettenen HTML -Code und bereinigt.

Wobei ich die Variante mit:

<?php
drupal_set_message
('<pre>'. print_r($node, 1) .'</pre>');
?>

besser finde.

--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo ist der Code, wo Attachments im Node angehängt werden???

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 09:24 Uhr

Ich will aber nicht $content selbst neu ausgeben, das ist doch ein voller Eingriff in Drupal. Hier was zu verändern ist nur dann sinnvoll, wenn man eine tpl.-Datei hat, die genau dies ausgibt in seinen Einzelteilen und man dann diese tpl anpasst und die Einzelteile in der Reihenfolge verschiebt. Das will ich machen und nicht mehr. Keinesfalls den ganzen $content selbst ausgeben ohne, dass ich mehr als eine kleine Verschiebung machen muss. Es geht hier nämlich nicht nur um einen einzigen Content-Typ sondern um alle, da überall Bilder angehängt werden können. Dies bedeutet, dass ich mit $content so gut wie alles was im Contentbereich ausgegeben wird, verändere. Nein, das ist zu viel.

Es muss doch eine Stelle geben im upload-Modul oder im image-Modul oder einem anderen Modul, wo das angehängte Bild zum Content hinzugefügt wird. Und diese Stelle will ich überschreiben, egal ob nun mit einem Template oder einer Funktion (lieber wäre mir tpl). Und dann gebe ich einfach das Attachment vor dem Content aus, also eine reine Verschiebung (statt $output = $content.$attachment --> $output = $attachment.$content, das ist prinzipell das, was zu tun ist, real etwas anders aber ähnlich).

Wo ist diese Stelle nur?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ähm ... trau mich fast

Eingetragen von Thoor (3678)
am 08.04.2009 - 11:45 Uhr

Ähm ... trau mich fast nicht, das dazu zu schreiben, weil es so banal ist ... warum packst Du Dein Bildfeld nicht einfach in der Felder-Verwaltung Deiner Inhaltstypen vor Deinen Text?

Dann lässt Du das Bild mit CSS floaten und fertig ist ...

Dafür musst du weder deine node.tpl.php ändern, noch sonst irgendwelche Verrenkungen anstellen.

-------------------------------------------------------------------------------
Drupal ist das "Coolste", was mir in 10 Jahren Webworking untergekommen ist!
Meine persönliche Drupal Spielwiese

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das dachte ich gestern auch

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 12:22 Uhr

Es geht aber um die vordefinierten Inhaltstpyen, dort kann man zwar die Felder in der Reihenfolge erstellen, wie es dann unter "Inhalt erstellen" - "irgendein Typ" erscheint, aber nicht, wie das Endergebnis, die erstellte Seite aussehen soll.

Dies müsste nämlich unter "Felder anzeigen" eingestellt werden, hier findet man aber nur den Satz

Zitat:

"Für diesen Inhaltstyp sind keine Felder konfiguriert. Neue Felder können auf der Felder verwalten-Seite hinzugefügt werden."

Ist ja auch klar, ich habe ja nicht das Attachment dem Inhaltstyp hinzugefügt unter diesem Menüpunkt, sondern die Attachments sind automatisch dazugekommen durch das Modul Upload oder Image oder Image Attach oder so ähnlich.

Man muss unterscheiden zwischen "Dateianhänge" - darum geht es nicht, das ist ein anderes Modul, ich will keine Dateien anhängen, sondern ein Bild in/vor/nach den Text einfügen und zwar als Attachment - und zweitens "Angehängte Bilder" - genau darum geht es! Und die angehängten Bilder kann man nicht verschieben!!!!

Welche Lösung gibt es daher wirklich?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das kannst du alles mit dem

Eingetragen von PowerMan (274)
am 08.04.2009 - 12:27 Uhr

Das kannst du alles mit dem Mpdul Contemplate machen.
http://drupal.org/project/contemplate

--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Contemplate - verschieben der angehängten Bilder?

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 12:36 Uhr

Ja, danke!!!

Das habe ich installiert und verwende es zusammen mit dem FlashVideo-Modul, wo ich im Teaser [thumbnail] ausgebe.

Allerdings wie soll das hier gehen?
Wie spreche ich das angehängte Image an?
Und wie erreiche ich vorallem , dass das Modul das Image dann unten nicht noch ein zweites Mal ausgibt???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Content Template - verschieben der angehänten Bilder vor d. Text

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 12:49 Uhr
PowerMan schrieb

Das kannst du alles mit dem Mpdul Contemplate machen.
http://drupal.org/project/contemplate

Aber ich glaube, Du hast recht, es dürfte damit gehen, ich experimentiere gerade und suche die richtigen Variablen um einen neuen Teaser zusammenzustellen, der

Zitat:

<?php
print $teaser
?>

ersetzt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke an PowerMan - Content Template einfach genial

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 16:46 Uhr

Danke an PowerMan!

Content Templates sind genial uns so einfach ist es nun:

<?php print $node->content['image_attach']['#value']; ?>
<?php print $node->content['body']['#value']; ?>

statt
<?php print $teaser ?>

und mit CSS

.view-front-topnews .image-attach-teaser {
   float:left;
   margin-left:0px;
   margin-top:10px;
   margin-right:25px;
   margin-bottom:10px;
}

.view-front-topnews .image-attach-teaser img {
   border:1px dashed #000000;
   padding:5px;
}

erhält man ein sehr schönes Ergebnis, wo das angefügte Bild links vom Beitrag angezeigt wird und mit einem tollen Rahmen umgeben ist.

Merci.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Unglaublich einfache Lösung: angehängte Bilder im Teaser u Views

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 18:41 Uhr

Es ist einfach unglaublich, wie kompliziert wir alle zusammen (ich auch) gedacht haben, dabei gibt es eine noch viel einfachere Lösung, obwohl die Lösung mit Content Templates auch einfach ist:

Einfach unter Verwalten .. Inhaltstypen bei den Einstellungen eines Inhaltstyps unten bei "Einstellungen für Bildanhang" den Wert für "Bildreihenfolge im Anrisstext" auf einen negativen Wert setzen (z. Bsp. -5).

Und dann noch mit CSS formatieren (float: left, etc, wie oben).

SO EINFACH, aber keiner hat daran gedacht.
Drupal ist genial.

Dann kann man aber nicht so gut mit CSS formatieren, wenn man zusätzlich auch noch Kategorien bei den Artikeln verwendet (Taxonomie). Dann kann man per CSS nur alle Node aller Contentbereiche links floatend formatieren aber nicht selektiv. Daher ist die Variante mit Content Template mächtiger, hier kann man umhüllend auch noch jeweils eine div-Klasse ausgeben und schon ist das gelöst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

div (Klasse) bei Kategorien fehlt

Eingetragen von DrupalFan (1646)
am 08.04.2009 - 18:52 Uhr

Warum liefern Kategorien (Taxonomie) eigentlich keine eigene Klasse (<div>) im Node oder im Contentbereich des Nodes?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Um Rechnenleistung und

Eingetragen von PowerMan (274)
am 09.04.2009 - 10:05 Uhr

Um Rechnenleistung und Arbeitsspeicher zu sparen kannst du Contemplate auch nur dafür nutzen um dir die Variablen raus zu suchen. Und diese dann in die richtige Templatedatei (node.tpl.php) ausgeben. So muss Drupal nicht erst das modul laden, die ganzen Sachen parsen, die Variablen neu zusammenstellen.

Hier musst du nur aufpassen, das die Variablen nicht ausgegeben werden, wenn Sie auch keinen Inhalt enthalten. Dadurch kannst du dann das überflüssige drumherum auch weglassen.
Es gibt für den gleichen Inhalt immer mehrere Variablen. Mit eingebetteten HTML-Code, ohne HTML, überprüft (Filter) und nur die reine Benutzereingabe. Da musst du gucken was die Variablen enthalten, wenn nix drin steht. Sind Sie vollständig leer, also auch ohne den umgebenen HTML-Code kannste einfach nur ausgeben.

Terms kannst du dir mit folgendem Code auseinanderbauen und gestalten:

<?php
   
if (is_numeric($node->nid) && $page!=0) {
       
$terms = taxonomy_node_get_terms($node->nid);
       
$items = array();
       
$items_tag = array();
        foreach (
$terms as $term) {
           
$items[] = l($term->name, 'taxonomy/term/'. $term->tid);
        }
        if (!empty(
$items)) {
            print
'<div class="taxonomy-terms">'.theme('item_list', $items).'</div>';
        }
     }
?>

--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wozu dient dieser Code?

Eingetragen von DrupalFan (1646)
am 09.04.2009 - 16:46 Uhr

Wozu dient dieser Code?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Damit kannst dir innerhalb

Eingetragen von PowerMan (274)
am 09.04.2009 - 18:08 Uhr

Damit kannst dir innerhalb einer node.tpl.php alle Terms ausgeben lassen.
--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Node-Layout komplett verschieben?

Eingetragen von DrupalFan (1646)
am 15.04.2009 - 19:46 Uhr

Neuen Thread gestartet: hier

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, an dieser Stelle

Eingetragen von efendi (18)
am 29.06.2009 - 13:55 Uhr

Hallo,

an dieser Stelle würde ich mich gerne einklinken.

DrupalFan schrieb

Einfach unter Verwalten .. Inhaltstypen bei den Einstellungen eines Inhaltstyps unten bei "Einstellungen für Bildanhang" den Wert für "Bildreihenfolge im Anrisstext" auf einen negativen Wert setzen (z. Bsp. -5).

Wo genau finde ich diese Einstellung? Sehe ich bei meinen Inhaltstypen nach, ist nichts dergleichen zu finden.

Vielen Dank einstweilen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja das würde mich auch

Eingetragen von PowerMan (274)
am 29.06.2009 - 14:20 Uhr

Ja das würde mich auch einmal interessieren wo diese Einstellung sein soll. Kann vieleicht sein, das du ein spezielles Modul installiert hast. Nach Möglichkeit bitte mit Screeshot posten und falls du ein spezielles Modul verwendet hast, welches diese Konfiguration erlaubt auch den Pfad dorthin.

Dank wenns auch leichter geht
--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einstellungen für Bildanhang

Eingetragen von DrupalFan (1646)
am 01.07.2009 - 11:09 Uhr

Der Pfad dorthin:
/admin/content/node-type/story

(story ist der Inhaltstyp mit dem Namen "Artikel", geht aber bei jedem Inhaltstyp).

Und dort auf "Einstellungen für Bildanhang" klicken.

Module: Image, Image attach, Upload

Ich hoffe, das hilft weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aha, da liegt der Haken, du

Eingetragen von PowerMan (274)
am 01.07.2009 - 11:52 Uhr

Aha, da liegt der Haken, du hast das Modul Image installiert. Soweit ich das hier verstanden habe, wurde hier das Modul CCK Image verwendet. Und dort geht das ganze nämlich nicht.
--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, Image ist elementar, und

Eingetragen von DrupalFan (1646)
am 01.07.2009 - 17:43 Uhr

Ja, Image ist elementar, und wie man sieht funktionierts.

  • 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 2 Wochen 12 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 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 6 Wochen 9 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

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