[gelöst] View in einem Block anzeigen, $user->profile als Argument verwenden
am 21.09.2009 - 14:13 Uhr in
Hi,
ich versuche in einem Block weitere Artikel eines Users über eine View anzuzeigen.
Als Argument verwende ich ein CCK Feld. Das funktioniert auch wunderbar.
Jetzt habe ich einen weiteren Content typen. Dort möchte ich ähnlich vorgehen.
Jedoch möchte ich hier als Argument ein Feld aus ($user->profile) verwenden.
Der Inhalt der View wird nicht angezeigt, in der Views Vorschau,
wenn ich ein Argument eingebe funtioniert es.
Wenn ich die View als Seite aufrufe funktionert es auch.
Ich bekomm es nicht zum laufen, kann jemand nen Blick auf den (schlechten) Code werfen.
Vielleicht gibt es jemanden der etwas ähnliches schon gelöst hat.
Nachstehend der Code den ich in den Block eingefügt habe:
<?php
$nid = arg(1);
$node = node_load($nid);
if($node->type == archiv)
{
$user = '';
$user = user_load(array('uid' => $node->uid));
$args = $user->profile_ort;
print theme('view', 'meldung', 3, false, 'block', array($args));
print ('<h3 class="title">');
print_r ($user->profile_ort);
print ('</h3>');
print views_embed_view('meldung', 'block_1', $args);
}
else
{
$args = $node->field_company_lable[0][value];
print theme('view', 'company', 3, false, 'block', array($args));?>
<h3 class="title" >
<?php print_r ($node->field_ort[0][value]); ?></h3>
<?php print views_embed_view('company', 'block_1', $args);
print('<a href="http://www.domain.de/archiv/'.$args.'/feed" class="feed-icon"><img src="/misc/feed.png" alt="Meldungen von '.$args.' abonieren" title="'.$args.' RSS Newsfeed" width="16" height="16"></a>');
print(' Meldungen von<br><a href="http://www.domain.de/archiv/'.$args.'/feed"><strong>'.$args.'</strong><br>als Newsfeed abonieren!</a>');
}
?>
Vielen Dank vorab,
Ralph
- Anmelden oder Registrieren um Kommentare zu schreiben
Views erlaubt doch von Hause
am 21.09.2009 - 15:43 Uhr
Views erlaubt doch von Hause aus, daß bei fehlenden Argumenten (sprich bei einem Block) ein default Argument übergeben wird. Dieses Argument kannst Du mittels PHP-Code erzeugen. Hier ist zwei kleine Beispiele, wie der Block die Url der Seite, auf der er erscheint, auswertet und den Titel des Nodes (sprich den Seitentitel) als Argument bekommt:
$node = node_load(arg(1));
return ($node->title);
oder bei einem URL-Alias das Element nach mannschaft:
$path = drupal_get_path_alias($_GET['q']); //get alias of URL
$path = explode('/', $path); //break path into an array
if ($path[0] == 'mannschaft' && $path[1] != '') {
return$path[1];
}
Entsprechend kannst Du doch Deine User Profile ebenso als Argument in den View einbringen. Ich hoffe, das hilft Dir weiter.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich habe es gelöst. Vielen
am 30.09.2009 - 13:27 Uhr
Ich habe es gelöst. Vielen Dank für Deine Hilfe!
Grüße,
Ralph