Views und Blöcke mit Argumenten
Eingetragen von nils_r (11)
am 23.06.2010 - 11:35 Uhr in
am 23.06.2010 - 11:35 Uhr in
Hallo!
Folgende Situation: es gibt Detail-Seiten von Studios. Das sind ganz normale Nodes, die zB unter studios/stadtname
liegen. Nun sollen Studios auch eigene News schreiben können. Dazu habe ich entsprechend Benutzer angelegt, mit Stadtnamen als Benutzername. Für die Seiten-Ansicht habe ich das auch schon hinbekommen, dass unter studio-news/stadtname nur die jeweiligen Meldungen der entsprechenden Stadt stehen. Nur muss noch auf den studio/* seiten ein Block zu sehen sein, der die letzten 5 (oder so) Meldungen anzeigt. Bevor ich nun aber 11 Views anlege, wäre es natürlich sauberer das mit Argumenten zu lösen… das wird ja wohl irgendwie gehen, oder?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ein Block, auch ein Block in
am 23.06.2010 - 12:31 Uhr
Ein Block, auch ein Block in Views, kann kein Argument übernehmen. In Views behilft man sich dann mit dem Weg:
Was tun, wenn kein Argument vorhanden ist.
=> Standart-Argument zur Verfügung stellen
=> über PHP code:
Eine Möglichkeit: return arg(1); // das erste Argument zurückgeben
Es kann aber auch komplexerer PHP-Code zum ermitteln des entsprechenden Argumentes hier eingebaut werden.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hmm… Dann werde ich mal
am 23.06.2010 - 12:44 Uhr
Hmm…
Dann werde ich mal versuchen anhand der node_id, welche ich ja von arg(1) bekomme, die url zu bekommen, daraus den Stadtnamen und dann den entsprechenden User-Laden.
Dann wähle ich als Argument Benutzer: Name aus und im PHP code dann return "Benutzername"?
Wo ich bei einem anderen Problem wäre… wie erzeugt man dort Text-Ausgaben? echo(); hat irgendwie nix bewirkt.
Kann ich jetzt so nicht
am 23.06.2010 - 12:53 Uhr
Kann ich jetzt so nicht beantworten, denn dazu weiß ich zu wenig von der Struktur, die Du verwendest. Aber wo wolltest Du Text ausgeben?
Wenn Du Debug Ausgaben brauchst, löse ich das immer mit einer kleinen Hilfsroutine:
function wla_logging($text) {
$fp = fopen('C:\WLA\tmp\wla_log', "a+");
fputs($fp, $text, strlen($text));
fclose($fp);
}
Mit
wla_logging (print_r($node, TRUE));
kann ich dann in die Textdatei wla_log im Pfad C:\WLA\tmp meine Einträge machen und anschließend in Ruhe auswerten.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Habs jetzt einfach mal
am 23.06.2010 - 14:03 Uhr
Habs jetzt einfach mal mit drupal_set_message(); gemacht …
Klappt jetzt. Einfacher als gedacht, wenn man weiss wie. :)
Tausend Dank!
wieso verwendest du nicht den
am 25.06.2010 - 19:42 Uhr
wieso verwendest du nicht das Beitragsreferenz Feld und eventuel das Modul Node Reference
und dann beim Block bei Argument:
Verknüpfungsfeld (Beim Inhaltstyp muss das zuvor erstellt werden)
-Standartargument zur Verfügung stellen
--Beitragsid aus URL
Computerboard da wird dir geholfen
Klingt prinzipiell wirklich
am 25.06.2010 - 19:29 Uhr
Klingt prinzipiell wirklich klug. Nur läuft das jetzt schon so gut wie produktiv… werde es aber für das nächste mal im Hinterkopf behalten.
Danke für den Tipp! :D