Anmelden oder Registrieren um Kommentare zu schreiben unterdrücken
Eingetragen von spade (166)
am 30.06.2008 - 22:47 Uhr in
am 30.06.2008 - 22:47 Uhr in
Guten Tag!
Wie kann ich den Text "Anmelden oder Registrieren um Kommentare zu schreiben" unterdrücken. Unangemeldete Besucher sollen den Text nicht sehen. Nur eingeladene Benutzer können sich einloggen und dann Kommentare lesen und schreiben. Der Rest der Welt braucht von dieser Möglichkeit nichts zu wissen.
Ich habe auf Anraten in patch_drupal.css den folgenden Eintrag eingefügt, das funktioniert aber nicht mit allen Browsern:
ul.links li.comment_forbidden {
display: none;
}
Wie kann ich den Link zuverlässig unterdrücken?
- Anmelden oder Registrieren um Kommentare zu schreiben
Die Themefunktion für den
am 30.06.2008 - 23:16 Uhr
Die Themefunktion für den Titel ist
<?php
function phptemplate_comment_post_forbidden($nid) {
global $user;
if ($user->uid) {
return t("you can't post comments");
}
else {
// we cannot use drupal_get_destination() because these links sometimes appear on /node and taxo listing pages
if (variable_get('comment_form_location', COMMENT_FORM_SEPARATE_PAGE) == COMMENT_FORM_SEPARATE_PAGE) {
$destination = "destination=". drupal_urlencode("comment/reply/$nid#comment-form");
}
else {
$destination = "destination=". drupal_urlencode("node/$nid#comment-form");
}
}
}
?>
Diese Funktion einfach in die template.php des aktiven Themes einfügen
-> Fertig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Hat leider keine Wirkung
am 05.07.2008 - 18:18 Uhr
Hab die Funktion an's Ende der template.php gepastet, aber keine Änderung beobachtet. Der Link wird in Firefox immer noch angezeigt, in IE nicht (aber das war vorher schon so). Ich benutze Yaml, macht das einen Unterschied? Immerhin scheint die Funktion gelesen zu werden, denn als ich sie in eine andere template.php gepastet hatte bekam ich eine Fehlermeldung, dass die Funktion bereits definiert ist. Habe im Quellcode von Drupal jedoch keine Stelle gefunden wo diese oder eine Funktion ähnlichen Namens aufgerufen wird.
Macht es einen Unterschied, dass ich Drupal 6.2 benutze?
dereine schrieb Die
am 11.06.2012 - 05:31 Uhr
Die Themefunktion für den Titel ist
<?php
function phptemplate_comment_post_forbidden($nid) {
global $user;
if ($user->uid) {
return t("you can't post comments");
}
else {
// we cannot use drupal_get_destination() because these links sometimes appear on /node and taxo listing pages
if (variable_get('comment_form_location', COMMENT_FORM_SEPARATE_PAGE) == COMMENT_FORM_SEPARATE_PAGE) {
$destination = "destination=". drupal_urlencode("comment/reply/$nid#comment-form");
}
else {
$destination = "destination=". drupal_urlencode("node/$nid#comment-form");
}
}
}
?>
Diese Funktion einfach in die template.php des aktiven Themes einfügen
-> Fertig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
if ($user->uid) { muss heißen if (!$user->uid) {
Habe das gleiche Problem...
am 02.01.2013 - 21:54 Uhr
Im Einsatz ist D7, Funktion ist in die template.php des Themes eingefügt, mal mit, mal ohne "!".
Mein IE lässt sich davon nicht beeindrucken und zeigt nach wie vor den Text an.
Weiß noch jemand Rat?
"phptemplate_ " gibt es nicht
am 02.01.2013 - 22:30 Uhr
"phptemplate_ " gibt es nicht mehr in D7. Die neue Funktion findest Du hier. http://api.drupal.org/api/drupal/modules!comment!comment.module/function/theme_comment_post_forbidden/7
Müsste dann so lauten, habe mich nur am obigen Beispiel orientiert und nicht ausprobiert:
function deinthemename_comment_post_forbidden($variables) {
$node = $variables['node'];
global $user;
// Since this is expensive to compute, we cache it so that a page with many
// comments only has to query the database once for all the links.
$authenticated_post_comments = &drupal_static(__FUNCTION__, NULL);
if (!$user->uid) {
if (!isset($authenticated_post_comments)) {
// We only output a link if we are certain that users will get permission
// to post comments by logging in.
$comment_roles = user_roles(TRUE, 'post comments');
$authenticated_post_comments = isset($comment_roles[DRUPAL_AUTHENTICATED_RID]);
}
if ($authenticated_post_comments) {
// We cannot use drupal_get_destination() because these links
// sometimes appear on /node and taxonomy listing pages.
if (variable_get('comment_form_location_' . $node->type, COMMENT_FORM_BELOW) == COMMENT_FORM_SEPARATE_PAGE) {
$destination = array('destination' => "comment/reply/$node->nid#comment-form");
}
else {
$destination = array('destination' => "node/$node->nid#comment-form");
}
}
}
}
Super, funktioniert
am 03.01.2013 - 21:44 Uhr
Super, funktioniert perfekt.
Besten Dank!