[gelöst] Sidebar mit weiteren Beiträgen von Autor
am 15.12.2010 - 23:37 Uhr in
Hallo zusammen,
ich habe auf meiner Webseite mehrere Autoren, die Beiträge veröffentlichen.
Ich möchte gerne deshalb in der Sidebar einen Block einrichten, in dem der Autorenname des jeweiligen Beitrages steht. Zudem sollen darunter dann die letzten 5 Beiträge des Autors noch angeteasert werden.
Lösen wollte ich dies über das Modul http://drupal.org/project/author_pane lösen, kann hier aber keine weiteren Beiträge des Autors anzeigen lassen.
Nun habe ich dies über Views probiert.
Ich wollte hier über "Filter" die User ID des neben der Sidebar erscheinenden Beitrags irgendwie verknüpfen, finde dafür aber leider keine Lösung.
Welche Möglichkeiten gibt es denn hierfür?
Vielen Dank für eure Hilfe.
- Anmelden oder Registrieren um Kommentare zu schreiben
Du mußt das über ein Argument
am 16.12.2010 - 11:02 Uhr
Du mußt das über ein Argument lösen. Argumente in Views sind wie dynamische Filter. Nun kann ein Block keine Argumente annehmen. Also muß man dann über die Methode Standard-Argument bereitstellen mittels PHP-Code sich die entsprechende UserID beschaffen:
<?php
if(arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load($nid);
return($node->uid);
}
?>
Jetzt bekommt der Block die gefragte UID als Argument. Dabei gehe ich allerdings davon aus, daß die Seite den Pfad node/xxx hat. Wenn der anders ist, muß die Abfrage entsprechend umbebaut werden.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
klappt noch nicht
am 16.12.2010 - 12:29 Uhr
Hallo Werner,
vielen Dank für Deine Hilfe, aber irgendwas klappt noch nicht.
Ich habe Dir mal ein Screenshot von meinem View gemacht. Dort habe ich auch Deinen Code eingetragen. (ich hoffe, man erkennt das gut)
Und ja, meine URL heißt zwar test/dies-ist-die-ueberschrift, aber dahinter liegt dann ganz normal node/1234
Was passiert denn? Gibt es
am 16.12.2010 - 13:15 Uhr
Was passiert denn? Gibt es eine Fehlermeldung? Ist die Nid richtig? Füge mal in den Code vor das return ein:
drupal_set_message('Nid = '. $nid . ' Uid = ' . $node->uid);
Dann solltest Du eine Statusmeldung erhalten mit den beiden Werten.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Es passiert gar nichts
am 16.12.2010 - 13:32 Uhr
Es passiert gar nichts.
Der Block wird rechts auch gar nicht angezeigt.
Ich habe deine Codezeile eingebaut.
Wenn ich unten auf Vorschau klicke, erhalte ich "Es wurde keine Abfrage ausgeführt"
Hm....
In der Vorschau kannst Du das
am 16.12.2010 - 15:12 Uhr
In der Vorschau kannst Du das auch nicht testen. Das muß auf einer "echten" Seite ausprobiert werden. Dann sollte es auch eine Drupal-Message geben.
Was passiert denn in der Vorschau, wenn Du eine passende UID einträgst?
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Vielen Dank für die Hilfe
am 16.12.2010 - 19:29 Uhr
Werner, vielen Dank für Deinen tollen Support.
Für alle, die das Problem auch noch haben:
if(arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load($nid);
return($node->uid);
}
Das ist die Lösung. Also ohne das "php", wie ganz oben angegeben.