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

Einfachen Inhaltstyp mit Bild rechts vom Text

Eingetragen von Topf (18)
am 28.11.2014 - 19:25 Uhr in
  • Modulsuche
  • Drupal 7.x

Hallo zusammen,

ich suche ein einfaches Modul (oder generell eine Lösung), welches mir ermöglicht, in einem einfachen Inhaltstyp ein Bild mit Text umfließen zu lassen, ohne WYSIWYG-Editor.

Ich möchte die Möglichkeit haben, den Inhaltstyp Kalenderereignis mit einem Bild verschönern zu können. Grundsätzlich ist das sehr einfach. Hab ein Feld "Bild" hinzugefügt. Schön daran ist schonmal, dass die Benutzung für den Nutzer wenig aufwändig ist, er muss nur den Text schreiben, das Datum ausfüllen und das Bild über Upload hochladen. Auch schön ist, dass der Ordner für diesen Upload eingestellt werden kann, sowie die Größe einheitlich ist, maximal-Dateigröße begrenzt werden kann, usw...

Was nicht schön ist, dass das Bild einfach so unter dem Text steht. Oder darüber (je nachdem wo ich das Feld hinschiebe). Ich möchte aber, dass das Bild schön rechts vom Text zu sehen ist, also umflossen wird. Das soll automatisch geschehen. Der Nutzer soll pro erstelltes Event ein Bild auswählen, und das wird automatisch schön an die richtige Stelle eingefügt. Ein rumfummeln im WYSIWYG-Editor kann ich leider nicht zumuten.

Ich verdeutliche das nochmal mit Screenshots (siehe Anhänge). Titel der Bilder sollten Aussagekräftig sein.

Ich habe nach einem Tag rumsuchen keine geeignete Lösung gefunden, dabei sollte es ja recht einfach sein. Ich bin mir auch nicht sicher, ob wirklich ein Modul notwendig ist, oder ob es nicht auch mit Bordmitteln zu lösen ist. Aber mit views ist es z.B. nicht so einfach.

Freue mich über Vorschläge und Ideen!

Viele Grüße
Topf

AnhangGröße
01 erstellen_funktioniert_so.png57.14 KB
02 aktuell_sieht_es_so_aus.png83.93 KB
03 so_soll_es_aussehen_photoshop.png90.08 KB
‹ Title im CKeditor bearbeiten Leaflet / OpenStreetMap und Routenplaner ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Es kommt ganz darauf an, wie

Eingetragen von torfnase (1525)
am 28.11.2014 - 22:05 Uhr

Es kommt ganz darauf an, wie flexibel du die Sache gestalten möchtest.

1. Szenario:
Es gibt immer einen Text und immer ein Bild und alle Bilder haben die gleiche Breite.
Es kann mehrere Zeilen geben, die immer einen Text und ein Bild enthalten.
Das ist ziemlich einfach mit field_collection oder paragaph und etwas css zu lösen.

2. Szenario:
Es gibt einen Text und manchmal dazu ein Bild.
Gibt es kein Bild, soll der Text den ganzen Raum ausfüllen.
Es kann auch hier mehrere "Zeilen", sprich Text-Bild Kombinationen geben .

Dann würde ich ein Ausgabetemplate für diesen Inhaltstyp anlegen, dort die Felder einlesen und in zwei verschachtelten Tabellen ausgeben, ungefähr so:

<table>
<tr>
<td>
<table>
<tr>
<td>Text</td>
<td>Bild (falls vorhanden)</td>
</tr>
</table>
</td>
</tr>
</table>

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also wenns nur ein Bild ist,

Eingetragen von leda.ch (977)
am 29.11.2014 - 00:39 Uhr

Also wenns nur ein Bild ist, dann musst Du nur das Bildfeld im Inhaltstyp bei der Anzeige (nicht bei der Felddefinition) an den Anfang schieben (vor den Text) und mit CSS rechts floaten lassen. Damit kommt der obere Rand des Bildes bündig mit dem Beginn des Textes.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank an

Eingetragen von Topf (18)
am 29.11.2014 - 15:07 Uhr

Vielen Dank für die schnellen Antworten.

@torfnase
Szenario 2 ist gewollt (nicht immer wird jemand ein Bild hochladen).
Meinst du damit, das mit einem View lösen? Oder wo erstelle ich ein Ausgabetemplate (google hat mir nicht wirklich weitergeholfen). Oder wo/wie erstelle ich ein Ausgabentemplate?
Den HTML-Code verstehe ich.
Zusätzlich soll das Kalender-Event auf der Startseite angezeigt werden, und der Nutzer soll auswählen können, ob dieses eine Event oben in Listen sein soll. Wüsste nicht wie ich das mit nem View mache.

@ leda.ch!
Klingt eigentlich logisch und einfach, aber wo stelle ich das CSS dann ein? Wenn ich das Bild-Feld bearbeite, kann ich nirgendwo CSS einfügen oder bearbeiten. Gibt es da einen Trick? Bzw. wo schreibe ich den floating-Code hin?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nun, das Stichwort heisst

Eingetragen von leda.ch (977)
am 29.11.2014 - 15:51 Uhr

Nun, das Stichwort heisst (Sub)Theming: Falls Du ein Drupal-Standard-Theme verwendet, dann musst Du dazu ein Subtheme erstellen. In der dortigen .info Datei gibst Du dann Deine eigene CSS-Datei an, und dort fügst Du dann den CSS-Code ein (Ziel: die Datei sollte bei einem Update dann nicht überschrieben werden).
Mit Googlen oder hier findest Du Infos dazu.
Bei einem andern Theme, das Du z.B. von Drupal.org herunterladen kannst, gibt es manchmal schon ein vorgegebenes "leeres" Stylsheeet, fresh.css oder custom.css zu diesem Zweck.

In Deinem Beispiel hast Du ja dann das Bild vor dem Text. Im Firefox kannst Du dann mit dem Plugin Firebug inspizieren, wie das Bildelement heisst und dann in Deinem Stylesheet ansprechen, z.B. so:

.node .field-name-field-bild {
  float: right;
  margin-left: 30px;
  margin-bottom: 10px;
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dankeschön

Eingetragen von Topf (18)
am 29.11.2014 - 16:56 Uhr

Vielen Dank, leda. Das probiere ich auch gleich mal aus!

@torfnase

Hab mich nochmal ein bisschen schlaugemacht wegen Templates. Verstehe was du meintest. Habe es jetzt auch schon fast geschafft! Meinen Code habe ich jetzt so:

    <table style="width: 100%">
      <tbody>
        <tr>
          <td style="width: 50%; vertical-align: top; text-align: left;"> 
  <?php print render($content['field_event_date'])?>
  <?php print render($content['field_ort'])?>
<?php print render($content['body'])?>
    <?php print render($content['field_kategorie'])?>
    </td>
          <td style="width: 50%; vertical-align: top; text-align: right;">
<?php print render($content['field_event_bild'])?>
          </td>
        </tr>
      </tbody>
    </table>

Das sieht auch schon gut aus. Allerdings nur wenn ein Bild vorhanden ist. Wie mache ich da die zugehörige If-Abfrage?

Viele Grüße
Topf

  • Anmelden oder Registrieren um Kommentare zu schreiben

laß mal die Breite der

Eingetragen von torfnase (1525)
am 29.11.2014 - 17:04 Uhr

laß mal die Breite der Tabelle (width=50%) weg, dann müßte es doch gehen oder ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

torfnase schrieb laß mal die

Eingetragen von Topf (18)
am 29.11.2014 - 17:49 Uhr
torfnase schrieb

laß mal die Breite der Tabelle (width=50%) weg, dann müßte es doch gehen oder ?

Hatte ich schon versucht. Also dann so:

    <table style="width: 100%">
      <tbody>
        <tr>
          <td style="vertical-align: top; text-align: left;"> 
  <?php print render($content['field_event_date'])?>
  <?php print render($content['field_ort'])?>
<?php print render($content['body'])?>
    <?php print render($content['field_kategorie'])?>
    </td>
          <td style="vertical-align: top; text-align: right;">
<?php print render($content['field_event_bild'])?>
          </td>
        </tr>
      </tbody>
    </table>

Dann wird mein Bild miniklein. Ich weiß nicht warum. Hab bei dem Bild-Feld die Pixelzahl 480x480 eingestellt. Sieht dann so aus, wie im Anhang (einmal mit Bild und einmal ohne).

AnhangGröße
04 width weg.png 91.6 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

leda.ch schrieb .node

Eingetragen von Topf (18)
am 29.11.2014 - 18:03 Uhr
leda.ch schrieb

.node .field-name-field-bild {
  float: right;
  margin-left: 30px;
  margin-bottom: 10px;
}

Hab das auch nochmal mit dem subtheme probiert. Aber das haut nicht so ganz hin. Sieht jetzt folgendermaßen aus (siehe Bildanhang). Witzig ist, dass alles blau wird (sehr merkwürdig).

AnhangGröße
05 subtheme.png 92.44 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

wenn du es so nicht

Eingetragen von torfnase (1525)
am 29.11.2014 - 18:48 Uhr

wenn du es so nicht hinbekommst, kannst du die zweite Tabellenspalte ja auch nur einblenden, wenn das Feld: $content['field_event_bild'] ungleich leer ist.
Und wenn du sie einblendest, gibst du ihr z.B. 50% Breite.
Das sollte doch in jedem Falle funktionieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

torfnase schriebwenn du es

Eingetragen von Topf (18)
am 29.11.2014 - 19:17 Uhr
torfnase schrieb

wenn du es so nicht hinbekommst, kannst du die zweite Tabellenspalte ja auch nur einblenden, wenn das Feld: $content['field_event_bild'] ungleich leer ist.
Und wenn du sie einblendest, gibst du ihr z.B. 50% Breite.
Das sollte doch in jedem Falle funktionieren.

Das meinte ich mit If-Abfrage. Aber die habe ich bisher nicht hinbekommen... Aber ich arbeite daran :-)

Edit:

Hat fast geklappt! Habe jetzt Fehlermeldungen an der Backe.

Wollte es so machen:

<?php if($content['field_event_bild'] == 0): ?>
<div>Keine Tabelle</div>
<?php else: ?>
<div>Tabelle</div>
<?php endif; ?>

Das dürfte doch keinen Fehler verursachen, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, war so nicht

Eingetragen von Topf (18)
am 29.11.2014 - 19:26 Uhr

Okay, war so nicht korrekt!

Jetzt klappts! Tausend Dank nochmal!

<?php if(!empty($content['field_event_bild'])): ?>
<table style="width: 100%">
      <tbody>
        <tr>
          <td style="width: 50%; vertical-align: top; text-align: left; background-color: white;border:0px; padding: 0px;"> 
  <?php print render($content['field_event_date'])?>
  <?php print render($content['field_ort'])?>
<?php print render($content['body'])?>
    <?php print render($content['field_kategorie'])?>
    </td>
          <td style="width: 50%; vertical-align: top; text-align: right; background-color: white;border:0px; padding: 10px;">
<?php print render($content['field_event_bild'])?>
          </td>
        </tr>
      </tbody>
</table>
<?php else: ?>
  <?php print render($content['field_event_date'])?>
  <?php print render($content['field_ort'])?>
<?php print render($content['body'])?>
    <?php print render($content['field_kategorie'])?>
<?php endif; ?>

Was ist der Vorteil an einem Sub-Theme? Gibt es da welche im Gegensatz zum Template?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Vorteil? Du musst dich

Eingetragen von leda.ch (977)
am 29.11.2014 - 22:25 Uhr

Der Vorteil? Du musst dich nicht mit Programmierung herumschlagen.... Ich sehe nicht, was bei im Bild Dir blau geworden ist, auch scheint mir das Bild zuweit hinaufgeschoben - ist es unmittelbar vor dem Textfeld? Und ob Du das richtige Element zum Floaten angesprochen hast, weiss ich auch nicht.
Es ist ja nicht falsch, das Problem mit einem Template und einer Table zu lösen, da hast Du wirklich was Tolles und Nützliches gelernt!

Persönlich bin ich davon abgekommen, Tables zu Designzwecken zu nutzen, wenn ich es mit CSS machen kann, vor allem auch deshalb, weil CSS im Kontext von responsive Design viel einfacher zu handhaben ist. UND ich kann testweise mit Firebug zusammen mit dem Kunden am Design rumspielen.
Das ist aber Geschmacksache und dem individuellen Anspruch überlassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hm, aber ich fand das mit dem

Eingetragen von Topf (18)
am 30.11.2014 - 14:10 Uhr

Hm, aber ich fand das mit dem Subtheme viel schwieriger und es hat auch irgendwie mein Design zerschmissen. Das Design ist blau geworden, obwohl ich rot eingestellt hatte.
Das Bild ist unmittelbar vor dem Datumsfeld, schließlich soll es ja rechts von "Datum, Ort, Text" sein. Wenn ich es tiefer schiebe, also direkt vor das Textfeld, dann sieht das nicht gut aus. Müsste man im CSS ändern, oder?

Tatsächlich sieht meine Lösung auf dem Handy scheiße aus (dank der Hardgecodeten Tabelle). Darum werde ich wohl mich nochmal mit Subthemes beschäftigen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube, am Thema

Eingetragen von leda.ch (977)
am 30.11.2014 - 15:12 Uhr

Ich glaube, am Thema Subtheming kommt man bei Drupal nicht drumrum...
Wenn Dein Bild rechts vom Datum sein soll, ist's ja OK. Ein gefloatetes Objekt flutscht sozusagen an die Seite des nachfolgenden Objekt.

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20457

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