[gelöst] View Inline Style behalten
am 18.04.2015 - 19:23 Uhr in
Ein Feld in einer View bekommt per Rewrite einen Style verpasst, also so:
<span style='color:irgendwas;'>mein Feld </style>
Nun ist es ja so, daß Views diese Inline-Style angaben entfernen.
Das würde ich gerne umgehen, weil das Feld in einen Newsletter integriert wird und den kann ich an der Stelle nicht mit einer CSS-Klasse stylen.
Die Ausgabe in den Newsletter erfolgt via $view->execute_display.
Deshalb werden auch keine Template-Dateien genommen, wo ich den Style evt. einbauen könnte.
Ich habe gelesen, daß bei einer Ausgabe via View PHP die Style-Angaben erhalten bleiben.
Ich möchte aber nicht unbedingt das View PHP Modul installieren.
Gibt es noch weitere Möglichkeiten, diese Style-Angabe in der View zu behalten?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Regina, in der Tat
am 18.04.2015 - 22:59 Uhr
Hallo Regina,
in der Tat werden die inline Styles alle herausgelöscht.
Eine vernünftige Lösung habe ich auch nicht für dich, nur mal so eine Idee.
Das Filtern der Ausabe findet in der Datei:
\sites\all\modules\views\handlers\views_handler_field.inc
statt.
Es ist die Funktion: render_altered, wo mit dem Aufruf:
// $value = filter_xss_admin($alter['text']);
Die inline Styles herausgelöscht werden.
Du kannst das natürlich leicht unterdrücken, indem du dort hineinschreibst:
$value = $alter['text'];
Dann ist der Filter, wie man sieht, ausgeschaltet und alles kommt durch.
Ich habe es bei mir lokal ausprobiert und es funktioniert einwandfrei.
Da es bei dir ein Newsletter ist, kannst du den Filter vielleicht abschalten, den Newsletter erzeugen und dann den Filter wieder einschalten.
Ich weiß nicht, ob das für dich ein gangbarer Weg ist, aber vielleicht kannst du ja mal in diese Richtung denken.
Gruß
Berthold
Drupal Video-Tutorials
Hi Berthold, danke, so was
am 19.04.2015 - 10:11 Uhr
Hi Berthold,
danke, so was ähnliches habe ich schon in einem Thread gelesen.
Auf einem anderen System wo das Modul schon installiert ist, habe ich getestet, daß es mit Views PHP auch klappt.
Jetzt müssen wir mal intern besprechen, was die bessere Lösung ist.
Gruß, Regina
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Template
am 19.04.2015 - 15:51 Uhr
moin.
Du kannst auch einfach für dieses Feld ein eigenes Template anlegen und dort dann die gewünschte HTML-Ausgabe definieren. Siehe hierzu auch stackexchange.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
@Stefan der Artikel ist mir
am 19.04.2015 - 22:21 Uhr
@Stefan
der Artikel ist mir auch bekannt, ich glaube aber nicht, dass sich damit die Probleme von Regina mit den inline Styles in dem Newsletter lösen lassen.
Gruß
Berthold
Drupal Video-Tutorials
@Stefan, bei der speziellen
am 20.04.2015 - 06:12 Uhr
@Stefan, bei der speziellen Kombination (Aufruf der View programmatisch für Newsletter-Ausgabe) werden die Templates nicht übernommen.
Keine Ahnung, ob wir das auf die Schnelle anders machen könnten.
Es geht um ein Upgrade von Drupal 6 > 7 das im Punkt simplenews sowieso schon eine Katastrophe ist...
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ich habe es jetzt via View
am 20.04.2015 - 09:19 Uhr
Ich habe es jetzt via View PHP gelöst.
Alle anderen Lösungsansätze sind im konkreten Fall zu aufwändig.
Man legt dafür das Feld an, das gestylt ausgegeben werden soll und setzt es auf unsichtbar.
Dann fügt man ein Global:PHP Feld dazu und schreibt in das Feld "value code" sowas in der Art:
<?php
return "<span style='meinstyle'>".$row->title. "</style>";
?>
Dann kann man den Wert im Feld output value so ausgeben:
<?php
print $value;
?>
Es funktioniert nicht, wenn man die Styleausgabe direkt im Feld output value machen möchte, weil der Style in dem Fall auch entfernt wird.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de