User sollen nach einem Kommentar nicht mehr die Möglichkeit haben ihre Beiträge nachträgich zu editieren
Eingetragen von soks (6)
am 09.03.2009 - 12:21 Uhr in
am 09.03.2009 - 12:21 Uhr in
Hallo!
Arbeite gerade zum ersten mal mit drupal und habe oben erwähntes Problem.
Ich möchte das user kommentieren können, es ihnen allerdings nicht möglich sein soll ihren Kommentar nachträglich zu ändern. (Antworten soll aber erhalten bleiben)
Hat jemand vielleicht einen Lösungsansatz?
lg
- Anmelden oder Registrieren um Kommentare zu schreiben
edit comment
am 09.03.2009 - 12:39 Uhr
Moin!
Hm, bisher ist dieses Feature noch nicht eingebaut. Es gibt zwar einen Patch, ob der funktioniert, kann ich jedoch nicht sagen.
Eine simple Lösung (fürs Erste) wäre sicherlich ein Minimodul, das einfach den Menüeintrag "comment/edit" für Nicht-Admins überschreibt. Oder eine neue Berechtigung hinzufügt.
<?php
/**
* Implementation of hook_menu().
*/
function nocommentedit_menu() {
$items['comment/edit'] = array(
'title' => 'Edit comment',
'page callback' => 'comment_edit',
'access arguments' => array('edit own comments'),
'type' => MENU_CALLBACK,
'file' => 'comment.pages.inc',
);
}
/**
* Implementation of hook_perm().
*/
function nocommentedit_perm() {
return array('edit own comments');
}
?>
So dürfen nur die Benutzer mit der entsprechenden Berechtigung Kommentare bearbeiten.
Das könnte so funktionieren.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke für den Tipp!
am 09.03.2009 - 12:57 Uhr
Bin leider gerade erst am Drupal entdecken, hast du einen Link, wie ich sehe, wie ich ein Minimodul angehen muss? Habe das leider noch nie gemacht.
lg
Danke für den Tipp!
am 09.03.2009 - 12:57 Uhr
Bin leider gerade erst am Drupal entdecken, hast du einen Link, wie ich sehe, wie ich ein Minimodul angehen muss? Habe das leider noch nie gemacht.
lg
Minimodul
am 09.03.2009 - 13:20 Uhr
hast du einen Link, wie ich sehe, wie ich ein Minimodul angehen muss?
Der Link ist in obigem Beitrag enthalten.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Habe ich das richtig verstanden
am 09.03.2009 - 13:54 Uhr
muss 2 Text files installieren
.info
name = kommentar bearbeitungsfunktion deaktiviert
description = erlaubt es usern nicht eigene Kommentare zu bearbeiten
core = 6.x
(wenn ich 6.9 als meine Version eintippe, deaktiviert drupal das modul und meint nicht kompatibel)
.modul
das was du mir oben netterweise geschrieben hast
habe das in den Ordner sites/all modules kopiert, modul kann auch aktiviert werden, habe dann jedoch bei der Berechtigung etc. keinen neuen Menüpunkt.
Sorry das ich lästig bin, bin dankbar für jede Hilfe!
lg
Modul
am 09.03.2009 - 14:39 Uhr
Einguter Start für Module ist immer das Handbuch.
Die Moduldatei (und die .info) müssen gleich heissen (z.B. "nocommentedit.info" und "nocommentedit.module"). Zusätzlich müssen die speziellen Funktionen (die ich hier auch verwendet habe), mit dem Modulnamen beginnen (also z.B. "nocommentedit_menu").
Wenn das alles zusammenpasst, sollte das Modul auch die neue Berechtigung hinzufügen.
Allerdings konnte das so noch nicht wirkllich funktionieren. Ich habs gerade mal bei mir getestet und es noch ein wenig umgeschrieben.
nocommentedit.module:
<?php
/**
* Implementation of hook_menu_alter().
*/
function nocommentedit_menu_alter(&$items) {
$items['comment/edit']['access arguments'][0] = 'edit own comments';
}
/**
* Implementation of hook_perm().
*/
function nocommentedit_perm() {
return array('edit own comments');
}
nocommentedit.info:
name = No comment edit
description = "Deactivate the ability to edit own comments."
core = 6.x
Den "edit"-Link müsstest Du dann noch im Template entfernen (Stichwort theme_links()).
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke für deine Mühe!
am 09.03.2009 - 15:06 Uhr
So das ganze funktioniert nun erst einmal.
Wie ich den "edit-Link" entferne kapiere ich leider nicht (mein englisch ist nicht gut, ist nicht existent)
Habe mit diese datei in includes/theme inc. von meinem Server heruntergeladen, aber der code ist ja genau gleich wie bei deinem link oben beschrieben.
Falls möglich würde ich dich um eine kurze erklärung bitten
theme_links
am 09.03.2009 - 15:25 Uhr
theme_links kommt in die Datei template.php Deines Themes und heisst da z.B.
garland_links/<code>.
Innerhalb dieser Funktion kannst Du das Array <code>$links
foreach()
durchlaufen und den entsprechenden Eintrag mittelsunset()
entfernen.Falls der letzte Satz so in Richtung Bahnhof geht, solltest Du Dir unbedingt mal PHH zu Gemüte führen ;-)
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Banhof trifft zu
am 09.03.2009 - 15:37 Uhr
Danke für deine Geduld und rasche Antwort, werde mich jetzt mal intensiv damit auseinander setzen.
Mit PHH meinst du PHP oder?
lg
PHP
am 09.03.2009 - 15:44 Uhr
Mit PHH meinst du PHP oder?
Äh ja. Klar. Zu schnell geschrieben und zu wenig drübergelesen.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.