[gelöst] Handisher Link in die node.tpl.php - quote
Eingetragen von Thoor (3678)
am 24.09.2010 - 12:20 Uhr in
am 24.09.2010 - 12:20 Uhr in
Hi zusammen,
ich hänge mal wieder an einem Problem, das ich mit meinen minimalistischen PHP Kenntnissen nicht zusammen bekomme.
Ich habe zum einen dieses ARRAY in einem Node:
[quote] => Array
(
[title] => Zitieren
[attributes] => Array
(
[title] => Quote this post in your reply.
)
[query] => quote=1
[fragment] => comment-form
[href] => comment/reply/49060
)
und möchte jetzt einfach den entsprechenden Link in einer node.tpl.php ausgeben. Nachdem mich diverse "Try and Errors" nicht zum Ziel brachten ... kann mir jemand den dazugehörigen PHP print-Befehl verraten?
Und als zweiten Punkt ... ein aktiviertes Kommentarformular unterhalb des contents hat doch einen Anker ... Da ich meine $links entfernt habe, bekomme ich den Link zum Formular nicht hin ... auch hier wäre ein kleiner Support toll ...
Danke schon mal ...
- Anmelden oder Registrieren um Kommentare zu schreiben
Link
am 24.09.2010 - 12:59 Uhr
Moin.
möchte jetzt einfach den entsprechenden Link in einer node.tpl.php ausgeben.
Ich nehme mal
$var
als Variable an, die "[ quote ]" enthält.<?php
print l($var['quote']['title'], $var['quote']['href'], $var['quote']);
?>
Und als zweiten Punkt ... ein aktiviertes Kommentarformular unterhalb des contents hat doch einen Anker ... Da ich meine $links entfernt habe, bekomme ich den Link zum Formular nicht hin ... auch hier wäre ein kleiner Support toll ...
Dies sollte mit obiger Lösung auch gleich funktionieren.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hi Stefan, Danke! Nur ... man
am 24.09.2010 - 15:31 Uhr
Hi Stefan, Danke! Nur ... man kann Deine Hilfestellung leider nicht lesen!? Schade, denn wie ich Dich kenne, hätte sie sicherlich funktioniert :-)
Wegen $var ... ich denke schon, dass das die Variable ist ... ich habe meine $links mit der Anleitung von mortndk gesplittet ... -> http://morten.dk/blog/links-garbage-can-nodetpl
Funktionierte auch ganz gut, wie man auf meiner Thoor.de sehen kann.
Nur für ein anderes Projekt bekomme ich die Links aktuell nur in die Teaseransicht unter
<?php if ($page == 0): ?>
mit den Aufrufen<?php if ($link_comment_add): ?>
<?php print $link_comment_add ?>
<?php endif;?>
<?php if ($link_comment): ?>
<?php print $link_comment;?>
<?php endif;?>
Wieso ich das nicht in die Full Node - Ansicht unter
<?php if ($page != 0): ?>
angezeigt bekomme, ist mir ein Rätsel?Drupal 7 Screencasts in deutsch!
Korrektur
am 24.09.2010 - 17:42 Uhr
Huch. Hab meinen Kommentar gerade mal korrigiert.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
stBorchert schrieb <?phpprint
am 24.09.2010 - 18:15 Uhr
<?php
print l($var['quote']['title'], $var['quote']['href'], $var['quote']);
?>
Danke fürs korrigieren ... aber das funzt auch nicht ... gibt nen "Fatal error: Unsupported operand types in /var/www/webxxx/html/includes/common.inc on line 1592"
Muss da nicht wie in MortenDK´s Beispiel erst in der template.php in der function meintheme_preprocess_node(&$vars) eine Definition gemacht werden?
Drupal 7 Screencasts in deutsch!
Variable
am 24.09.2010 - 19:06 Uhr
Wie gesagt, ich gehe davon aus, dass im Node-Template eine Variable namens "var" existiert, deren Inhalt man oben in Deinem ersten Post sieht.
Vermutlich ist das jedoch die Ausgabe von
$node->links
, oder?Dann müsstest Du in der preprocess-Funktion erst eine Variable bauen und diese dann ausgeben:
<?php
function dingens_preprocess_node(&$vars) {
if ($vars['node'] && $vars['node']->links && $vars['node']->links['quote']) {
$vars['quote_link'] = $vars['node']->links['quote'];
}
}
?>
Und dann im Template
<?php
print l($quote_link['title'], $quote_link['href'], $quote_link);
?>
So in etwa.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
stBorchert schrieb So in
am 25.09.2010 - 11:05 Uhr
So in etwa.
Ja so in etwa :-) ... Ne - wieder mal super der Code! Funktioniert einwandfrei. Vielen Dank dafür ...
Für meinen zweiten Punkt, den Link zum Kommentarformular unter der Nodeansicht habe ich mir jetzt mit nem Konstrukt beholfen, das ich mit meinen minimalistischen PHP Kenntnissen noch selbst hinbekomme ... einfach einen HTML TAG in dieser Form in die node.tpl.php:
<a title="Kommentar eintragen" href="<?php print '/comment/reply/'.$nid.'#comment-form'; ?>">Kommentar eintragen</a>
Ist vermutlich nicht schön, aber es funktioniert :-)
Nochmal Danke und Gruß!
Drupal 7 Screencasts in deutsch!
Ich weiß es ist schon ein
am 04.10.2010 - 23:26 Uhr
Ich weiß es ist schon ein paar Tage her aber hier ist eine weitere Möglichkeit. In dieser Konstellation allerdings nur wenn die Kommentare nicht auf einer extra Seite geschrieben werden.
<?php
print l(
'Kommentar eintragen',
"node/$node->nid",
array("fragment" => "comment-form")
);
?>
Der # wird übrigens durch Drupal selber beigefügt.