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

Text Zweispaltig rendern (mit Quickedit)

Eingetragen von c4-andy (11)
am 09.02.2015 - 17:26 Uhr in
  • Themes & Theming
  • Drupal 7.x

Hallo,

also seit letzter Woche muss ich mich das erste Mal mit Drupal auseinander setzen - habe bis dato noch gar nicht mit Drupal gearbeitet.
Nun bin ich leider an einem Problem angekommen, das mir schon den ganzen Tag Kopfschmerzen bereitet.
Die Seite soll nachher von oben bis unten Resonsive sein - dafür benutze ich das Bootstrap-Grid.

Nun hatte ich erstmal das Problem, dass ich einen Block gerne zweispaltig anzeigen wollte.
Dazu muss der Text erstmal irgendwie gesplittet und dann in zwei <div class="span6"> ... </div> gepackt werden.

Also habe ich mir eine Funktion geschrieben, die das kann und sie einfach mal ins Template eingebaut - da kam dann
schon das große Problem: Wie krieg ich Drupal dazu meine Funktion auf den Content (im Array #markup) anzuwenden und das dann zu rendern?
Da ich das nicht ordentlich hinbekommen habe war mein Ansatz nun:

<?php print makeTwoColumns(render($page['content_col2-1']['block_6']['#markup'])); ?>

Das ist ja aber irgendwie totaler Quatsch... Wie würde man das in Drupal denn besser lösen?

Größtes Problem an der Sache: Mir fehlen ja nun die contextual_links die ich eigentlich verwenden möchte, damit
er mir direkt inline das Bearbeiten-Icon anzeigt.

Ich möchte also aus einem Drupal-Block gerne ca. folgendes erzeugen:

<div contextual_links-zeug und wrapper-box>

<div class="row"><div class="span12">title</div></div>
<div class="row">
<div class="span6">erste haelfte text</div>
<div class="span6">zweite haelfte text</div>
</div>

</div>

Tut mir Leid, wenn ich wesentliches vergessen oder schlecht formuliert habe. Einfach nachfragen. Bin seit Stunden nur mit diesem Problem beschäftigt und
bin jetzt langsam im Kopf total kaputt. ;-)

Liebe Grüße,
Andy

Kurzfassung

Zitat:

Was ich konkret brauche ist:

Die Möglichkeit den Content aus dem Drupal-Block mit einer PHP-Funktion zu verändern, sowie die Möglichkeit ein anderes als Normales Template auszuwählen, in dem ich zwei Variablen für die Textteile definiert habe.
Das Template würde dann ungefähr so aussehen:

<div class="row"><div class="span12"><?php print $title; ?></div></div>
<div class="row"><div class="span12">
<div class="span6"><?php print $text[0]; ?></div>
<div class="span6"><?php print $text[1]; ?></div>
</div></div>

Da ich mich nun mit der Entwicklung in Drupal noch nicht so gut auskenne wäre ich sehr dankbar, wenn mir jemand sagen könnte, wie ich das umsetzen kann.

‹ [gelöst] DS Layout bei Mobil über- statt nebeneinander Text Zweispaltig rendern (mit Quickedit) ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Geht es dir um einen Block

Eingetragen von Jenna (1883)
am 09.02.2015 - 19:22 Uhr

Geht es dir um einen Block den du händisch füllst oder ein Views Block der automatisch 2 zeilig angezeigt werden soll, also mit Inhalten aus vorhandenen Nodes?

Falls einfacher Block mit 2 Spalten im Block kannst du direkt das Grid in den Block einbauen, hier sind alle Gridcontainer genau bezeichnet, das klappt bestens, zeige so meinen Footer innerhalb eines Blocks in 4 Spalten nebeneinander an, bzw. mobil dann natürlich untereinander.

Die Beispiele sind ja direkt vorgegeben, brauchst du dir eigentlich nur in den Block kopieren und per CSS anpassen und im Block Full HTML wählen.

http://getbootstrap.com/css/#grid

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir geht es nicht um den

Eingetragen von c4-andy (11)
am 09.02.2015 - 19:30 Uhr

Mir geht es nicht um den Bootstrap-Grid oder CSS Teil. Damit kenne ich mich aus. Es geht mir um die Drupal-Implementierung.
Es soll ein Block sein, den mein Kunde dann später bearbeiten können soll. Also Titel und Text. Der Text soll auf der Seite dann
in zwei gleich großen Spalten dargestellt werden. Um den Text so aufzuteilen habe ich eine Funktion in PHP geschrieben. Die soll
jetzt auf den Content beim darstellen angewendet werden und dann soll der Content halt in diesem Bootstrap-Div-Konstrukt eingefügt werden.
Auf der Seite selbst soll der Block dann die Möglichkeit bieten per Quickedit den Inhalt zu ändern.
Ich hoffe das hilft, die Problemstellung etwas besser zu verstehen.

LG,
Andy

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das kannst du mit dem

Eingetragen von Jenna (1883)
am 09.02.2015 - 22:08 Uhr

Das kannst du mit dem Original Block und https://www.drupal.org/project/block_class lösen.
Damit kannst du jedem Block eine eigene Klasse zuweisen und behälst die Contextual Links.

Hier das Beispiel mit .newspaper, dieses ist ein dreispaltiges Beispiel, dementsprechend dann auf 2 Spalten anpassen.

http://www.w3schools.com/css/css3_multiple_columns.asp

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Damit kann ich doch aber

Eingetragen von c4-andy (11)
am 09.02.2015 - 22:30 Uhr

Damit kann ich doch aber trotzdem nicht bei der Darstellung aus einem Div-Block 2 Div-Blöcke machen ohne das als HTML im Content in den Drupal-Block zu schreiben.
Außerdem kann ich column-count nicht benutzen, da die Seite responsive sein soll und auch im Internet Explorer 9 korrekt dargestellt werden muss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was ich konkret brauche

Eingetragen von c4-andy (11)
am 09.02.2015 - 22:37 Uhr

Was ich konkret brauche ist:

Die Möglichkeit den Content aus dem Drupal-Block mit einer PHP-Funktion zu verändern, sowie die Möglichkeit ein anderes als Normales Template auszuwählen, in dem ich zwei Variablen für die Textteile definiert habe.
Das Template würde dann ungefähr so aussehen:

<div class="row"><div class="span12"><?php print $title; ?></div></div>
<div class="row"><div class="span12">
<div class="span6"><?php print $text[0]; ?></div>
<div class="span6"><?php print $text[1]; ?></div>
</div></div>

Da ich mich nun mit der Entwicklung in Drupal noch nicht so gut auskenne wäre ich sehr dankbar, wenn mir jemand sagen könnte, wie ich das umsetzen kann.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Alternativ könntest du zwei

Eingetragen von Goekmen (1013)
am 09.02.2015 - 22:46 Uhr

Alternativ könntest du zwei Textfelder in deinem Content Type erstellen und diese als Blöcke rendern.
Mit einem Modul wie z.B. CCK Blocks geht so etwas.
In deinem Template definierst du einfach zwei neue Regions für deine Blöcke.
https://www.drupal.org/project/cck_blocks

Den Bootstrap Code kann man schnell einfügen, indem man z.B. das Block Template (block.tpl.php) in sein Theme einfügt und diese durch eigene Versionen überschreibt:
block--fieldname1.tpl
block--fieldname2.tpl

  • Anmelden oder Registrieren um Kommentare zu schreiben

Damit müsste man doch die

Eingetragen von c4-andy (11)
am 09.02.2015 - 23:01 Uhr

Damit müsste man doch die zwei Textteile selbst in zwei Felder aufteilen oder nicht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, macht ja auch irgendwie

Eingetragen von Goekmen (1013)
am 09.02.2015 - 23:44 Uhr

Ja, macht ja auch irgendwie Sinn wenn es zwei Textblöcke sind.

Noch eine andere Möglichkeit:
In einem Editor (wie zB CKEditor) hinterlegst du einfach zwei CSS Klassen. Eine für den linken Block und eine für den zweiten Block.
Du könntest so die Bootstrap Klassen hinterlegen. Der Kunde müsste einfach nur den Abschnitt markieren und die richtige Klasse wählen.

Ich persönlich würde CCK Blocks verwenden. Zwei unabhängige Felder die als Blöcke wiedergegeben werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist aber nicht das was

Eingetragen von c4-andy (11)
am 09.02.2015 - 23:53 Uhr

Das ist aber nicht das was ich möchte.
Also ich hab mir eben erstmal gegen den Kopf gehauen, den Inhalt kann ich ganz leicht durch meine Funktion parsen indem ich (Pseudocode:) #markup = meine_funktion (#markup) schreibe.
Jetzt müsste ich nur noch rausbekommen, wie ich für diesen Block ein anderes Template nutzen kann. Das müsste doch über den Dateinamen des Templates machbar sein oder?

Es sollen übrigens nur in der Ausgabe zwei Div-Blöcke sein. In Drupal soll es nur ein Block sein, in welchen man nachher einen Fließtext schreibt, der dann in zwei Texte gesplittet wird (gleich große Texte),
die dann in den zwei Div-Blöcken ausgegeben werden.

Hätte ich zwei Blöcke gewollt würde ich gar nichts von alledem brauchen, da ich dafür auch einfach zwei Blöcke anlegen kann die ich in zwei Regionen auf meinem Template platziere.
Das ist aber nicht das was ich möchte. Siehe oben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:Damit kann ich doch

Eingetragen von Jenna (1883)
am 10.02.2015 - 00:06 Uhr
Zitat:

Damit kann ich doch aber trotzdem nicht bei der Darstellung aus einem Div-Block 2 Div-Blöcke machen ohne das als HTML im Content in den Drupal-Block zu schreiben.

Doch, genau das geht, hab es selbst getestet. Der Nutzer/ Kunde gibt lediglich Fließtext ein, den Rest übernimmt das CSS.

Grüße Jenna

edit:

Zitat:

Außerdem kann ich column-count nicht benutzen, da die Seite responsive sein soll und auch im Internet Explorer 9 korrekt dargestellt werden muss.

Das ließe sich ja regeln indem du die CSS Anweisung in Media Queries packst und dementsprechend ein oder zweispaltig ausgibst.
Ich bin sicher, auch der IE9 kann schon Media Queries lesen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Es sollen übrigens nur

Eingetragen von Jenna (1883)
am 10.02.2015 - 12:25 Uhr
Zitat:

Es sollen übrigens nur in der Ausgabe zwei Div-Blöcke sein.

Ich sehe gerade das ich deinen Wunsch nach 2 Div Blöcken überlesen habe.

Reicht es dir nicht aus das der Text mit der CSS in 2 Spalten ausgegeben wird, warum müssen es 2 Div Blöcke sein für Fließtext, würde mich interessieren, da mir der Hintergrund /Zweck nicht klar ist? Geht es dir um gesonderte Formatierung?

Grüße Jenna

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