[gelöst] Gethemten Block einer View in einem Template ausgeben?

am 28.09.2010 - 09:27 Uhr in
Hallo,
ich habe eine View mit mehreren Blöcken erstellt.
Einen Block davon habe ich gethemt (views-view-fields--person--block-2.tpl).
Diesen gethemten Block möchte ich gerne in einem Template anzeigen lassen. Aber ich weiß leider nicht wie :(
Habe nur folgenden Code-Snipsel gefunden:
<?php
$block = module_invoke('person', 'block', 'view');
print $block['content'];
?>
Kann damit leider nicht wirklich was anfangen bzw. es funktioniert nicht.
Kann mir jemand verraten wie ich den gethemten Block in einem Template ausgebe?
Vielen Dank,
viele Grüße Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
Verstehe ich nicht ganz. Die
am 28.09.2010 - 09:48 Uhr
Verstehe ich nicht ganz.
Die Ansicht/Ausgabe der Blöcke kannst Du doch über admin/build/block regeln!
Andere Möglichkeit wäre
<?php
print views_embed_view('Name_Deines_Views', 'block_1');
?>
(oder block_2 - block_3 usw.)
Hallo, danke für deine
am 28.09.2010 - 10:11 Uhr
Hallo,
danke für deine schnelle Hilfe.
Leider funktioniert die Funktion bei mir nicht.
Ich möchte die user-profile.tpl.php komplett themen, um der ganzen panel+ctools geschichte aus dem weg zu gehen. Diese ressourcenfressenden Module für mein schlankes Userprofil nicht.
Deshalb muss ich den Block "per Hand" laden.
Der Name des Blocks lautet: block2
Der Name der View lautet: person
<?php
print views_embed_view('person', 'block2');
?>
Somit müsste obiger Code doch funktionieren, oder? Funktioniert aber nicht. Die Anzeige bleibt weiß. Wenn ich "Hallo" reinschreibe, erscheint das Wort auch. Also das Template wird gefunden.
Woran könnte das liegen?
Vielen Dank,
viele Grüße Stefan
Soweit ich weiß darf nicht
am 28.09.2010 - 10:22 Uhr
Soweit ich weiß darf nicht der "Name" des Blocks angegeben werden.
Dein erster Block (egal wie Du ihn benannt hast) ist block_1 !
Der zweite (egal wie der Name ist) ist block_2
usw.
Daher musst Du das so schreiben.
<?php
print views_embed_view('person', 'block_1'); <- für den ersten View-Block
?>
<?php
print views_embed_view('person', 'block_2'); <- für den zweiten View-Block
?>
usw.
Ich frage mich immer noch warum Du die Ansicht der Blöcke nicht über admin/build/block steuerst? Da kannst Du doch angeben wo der Block erscheinen soll!
Nachtrag: Hast Du in der View
am 28.09.2010 - 10:24 Uhr
Nachtrag:
Hast Du in der View die Argumente angegeben?
Danke für deine Hilfe. Genau
am 28.09.2010 - 11:00 Uhr
Danke für deine Hilfe.
Genau daran wird es liegen! In der Preview der View wird nur was ausgeführt wenn ich ein Argument angebe.
Leider kann ich auf durpal.org nicht die Parameterliste zu views_embed_view finden :(
Kannst du mir sagen wie ich zB. die UID als Parameter übergebe?
Danke,
viele Grüße Stefan
Der Aufruf von
am 28.09.2010 - 11:07 Uhr
Der Aufruf von views_embed_view ist wie folgt:
views_embed_view('Names des Views'. 'Name des Displays', arg1, arg2, ........ )
Argumente:
Die Blöcke oder Pages werden für sich jeweils hochgezählt unabhänging von der Reihenfolge von Block- und Page-Displays
Beste Grüße
Werner
Das Argument musst Du in
am 28.09.2010 - 11:09 Uhr
Das Argument kannst Du auch in Views angeben.
Ich weiß ja nicht was Du im Block ausgeben willst aber .....
Geh in den View
Dort findest Du den Punkt "Argumente" - klicke auf das "Pluszeichen" .... wähle aus "Benutzer: UID" .... es öffnet sich unten der Einstellunsgbereich ....
Dort wähle "Standardargument zu Verfügung stellen" -> dann darunter "Standardtyp für Argumente" -> "Benutzer-ID aus der URL" ....
Danach auf "Aktualisieren" klicken und den View speichern. Jetzt den Block nochmal aufrufen/reload des Profiles!
DANKE
am 28.09.2010 - 11:09 Uhr
Super es klappt.
Danke euch Beiden für die super Unterstützung :)
Viele Grüße Stefan