[Gelöst] Views Feld mit PHP-Code anlegen - entweder als "Rewrite the output..." oder in "leerem Feld"
am 13.07.2011 - 21:00 Uhr in
Und schon wieder eine Views-Herausforderung...
Grob gesagt hätte ich in Views gerne bei den Optionen für Felder die "Rewrite the output of this field" mit PHP Code gefüllt, was aber offensichtlich nicht geht... das akzeptiert wohl nur Text, Token und max. noch HTML ... oder gibt es da einen Trick?!
Alternativ könnte ich auch ein "Blanko-Feld" anlegen, in dem ich PHP Code verwenden kann... aber auch hier fehlt mir die Idee, ob oder wie das geht...
Ganz konkret geht es darum (vielleicht hilft das ja bei der Lösungssuche...):
Mit einem View habe ich eine ganz spezielle Darstellung eines nodes realisiert und übergebe die nid dieses Nodes als Argument in den View.
Jetzt zeige ich diverse Felder des ursprünglichen nodes per View an und könnte ja auch das Feld Beitrag:Pfad in Textform anzeigen.
Was ich aber nun möchte ist, den Pfad in eine Funktion übergeben, die daraus einen QR Code macht, der aber auf den Ausgangsnode (und nicht diesen View!) verlinkt!
Die QR Code Geschichte ist als Modul eingebaut und aktiv und benötigt lediglich folgenden Aufruf:
<?php
print theme('qr_codes', [URL-Aufruf]);
?>
Für die "Rewrite the output..." Variante hätte ich mir vorgestellt, das Feld Beitrag:Pfad also einfach umzuschreiben und den Token [path] da irgendwie reinzubekommen (1. php geht wohl nicht als rewrite?, 2. wie käme ein Token in den php-Code?)
Wenn es denn irgendwie die Möglichkeit gäbe, ein "leeres" Feld zu definieren, dann bräuchte da ja nur rein:
<?php
$node = node_load(arg(2));
print theme('qr_codes', 'http://www.domain.com/' . $node->path);
?>
arg(2) ist dabei natürlich die nid und dieser Schnipsel funktioniert im Header oder Footer des Views auch einwandfrei - aber da will ich den QR Code ja nicht haben... sondern lieber als "Feld", das ich innerhalb der Anzeige verschieben kann.
Hat dazu irgendjemand eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Schau Dir mal das Modul
am 13.07.2011 - 21:54 Uhr
Schau Dir mal das Modul "Views Customfield" an. Damit kannst Du im View ein PHP-Feld anlegen in dem Du jeden beliebigen Code angeben/ausführen kannst.
Drupal rockt!!!
Wie immer kurz nach dem
am 13.07.2011 - 22:05 Uhr
Wie immer kurz nach dem Runterschreiben einer Frage ist mir dann doch noch ein Modul untergekommen... views_customfield
Das kann tatsächlich "leere" Felder, die dann auch PHP Code verarbeiten.
Dafür habe ich dann nur die node_load Geschichte geändert, was nun auch funktioniert.
<?php
$node = node_load($data->nid);
print theme('qr_codes', 'http://www.domain.com/' . $node->path, 150, 150);
?>
Jetzt bleibt eigentlich nur mein Problem, daß ich den Output in Seitendarstellungen etc. zwar sauber bekomme, er aber bei der pdf-Erzeugung (mit view_pdf) nicht verarbeitet wird.
Aber das wäre wohl off-topic für die Fragestellung im Titel...
Erstmal einen Dank @Ionit...
am 13.07.2011 - 23:51 Uhr
Erstmal einen Dank @Ionit... views_customfield war tatsächlich die Lösung - auf so einfache Sachen komme ich selbst aber auch immer erst, wenn ich dazu eine ellenlange Frage gepostet habe... ;-)
Nach einigen Stunden Spielerei habe ich jetzt auch die pdf-Erzeugung mit dem QR-Code geschafft, der aus dem Codeschnipsel oben rauskommt. Es wird mich zwar noch einige Stunden/Tage kosten, bis ich das in vollem Umfang und ausreichend gestylt zusammengebastelt habe, aber der Weg ist zumindest klar...