Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Gästebuch -> Edit -> für Admins

Eingetragen von Chuck (7)
am 01.12.2007 - 03:38 Uhr in
  • Module
  • Drupal 5.x

Hallo,

ich war auf der Suche nach einer Lösung Gästebuch Einträge als Admin zu editieren, dabei habe ich folgendes gefunden:

http://drupal.org/node/61968

Allerdings hatte ich damit (Drupal 5.3 und PHP5 im CGI Mode) folgenden Fehler im Webserver Log:

Premature end of script headers: php5

Mit diesem leicht abgewandelten Patch funktioniert es nun....

--- guestbook.module.orig       2007-12-01 01:07:59.000000000 +0100
+++ guestbook.module    2007-12-01 02:02:50.000000000 +0100
@@ -17,7 +17,7 @@
define('GUESTBOOK_PAGER_ABOVE', 0x0001);
define('GUESTBOOK_PAGER_BELOW', 0x0002);

-define('GUESTBOOK_TEXTAREA_ROWS', 8);
+define('GUESTBOOK_TEXTAREA_ROWS', 18);

/**
  *  Implementation of hook_menu()
@@ -285,6 +285,8 @@
   // Delete or comment an entry
   if (_guestbook_access('administer', $uid) && is_numeric($op_id)) {
     switch ($op) {
+      case "edit": //zelf toegevoegd
+         return guestbook_edit_entry($uid, $op_id);
       case 'delete':
         return guestbook_delete_entry_confirm_page($uid, $op_id);
       case 'comment':
@@ -534,6 +536,92 @@
        return drupal_get_form('guestbook_delete_entry_confirm', $uid, $entry_id );
}

+/**
+ * zelf toegevoegde functie om guestbook_entry bewerkformulier
+ *  gebaseerd op guestbook_form_entry() en guestbook_delete_entry_confirm()
+ *
+ * @param integer $uid nummer van het gastenboek
+ * @param integer $entry_id nummer van het gastenboekbericht
+ */
+function guestbook_edit_entry_form($uid, $entry_id) {
+  global $user;
+
+  $entry = db_fetch_array(db_query("SELECT * FROM {guestbook} WHERE id = %d", $entry_id));
+
+  $form = array();
+  $form['entry_id'] = array('#type' => 'value', '#value' => $entry['id']);
+  $form['author'] = array('#type' => 'value', '#value' => $entry['author']);
+  if ($entry['author'] == 0 ) {
+    // fields for anonymous poster
+    $form['anonname'] = array(
+      '#type' => 'textfield', '#title' => t('Name'),
+      '#size' => 32, '#maxlength' => 64, '#required' => TRUE,
+       '#default_value' => $entry['anonname']);
+    $anonymous_fields = (array) variable_get('guestbook_anonymous_fields', array('email','website'));
+    if (in_array('email', $anonymous_fields)) {
+      $form['anonemail'] = array(

+        '#type' => 'textfield', '#title' => t('E-Mail'),
+        '#size' => 32, '#maxlength' => 128,
+       '#default_value' => $entry['anonemail']);
+    }
+    if (in_array('website', $anonymous_fields)) {
+      $form['anonwebsite'] = array(
+        '#type' => 'textfield', '#title' => t('Homepage'),
+        '#size' => 32, '#maxlength' => 128,
+       '#default_value' => $entry['anonwebsite']);
+    }
+  }
+  $filter_tips = variable_get('guestbook_filter_tips', TRUE) ? _guestbook_form_filter_tips() : NULL;
+  $form['message'] = array(
+    '#type' => 'textarea', '#title' => t('Message'),
+    '#cols' => 32, '#rows' => GUESTBOOK_TEXTAREA_ROWS, '#description' => $filter_tips, '#required' => TRUE,
+    '#default_value' => $entry['message']);
+  $form['send'] = array(
+    '#type' => 'submit', '#value' => t('send'));
+  $form['uid'] = array(
+    '#type' => 'value', '#value' => $uid);
+  $form['access'] = array(
+    '#type' => 'value', '#value' => _guestbook_access('post', $uid));
+  $form['display'] = array(
+    '#type' => 'value', '#value' => 'page');
+  return $form;
+}
+
+function guestbook_edit_entry($uid, $entry_id) {
+  $output = drupal_get_form('guestbook_edit_entry_form', $uid, $entry_id);
+  return $output;
+}
+
+/**
+ * zelf toegevoegd om aangepaste guestbook entry op te slaan
+ *  gebaseerd op guestbook_delete_entry_confirm_submit() en guestbook_form_entry_submit()
+ *
+ * @param integer $uid nummer van het gastenboek
+ * @param integer $entry_id nummer van het gastenboekbericht
+ * @return string url
+ */
+function guestbook_edit_entry_form_submit($form_id, $form_values) {
+  global $user;
+
+  if (_guestbook_access('administer', $form_values['uid']) && $form_values['send']) {
+    if ($form_values['author'] == 0) {
+      // anonymous user
+      $result = db_query("UPDATE {guestbook}
+        SET anonname = '%s', anonemail = '%s', anonwebsite = '%s',
+        author = '%d', recipient = '%d', message = '%s'
+        WHERE id = %d", $form_values['anonname'], $form_values['anonemail'], $form_values['anonwebsite'],
+        $form_values['author'], $uid, $form_values['message'], $form_values['entry_id']);
+    }
+    else if ($form_values['author'] > 0) {
+      // registered user
+      $result = db_query("UPDATE {guestbook}
+        SET author = '%d', recipient = '%d', message = '%s'
+        WHERE id = %d", $form_values['author'], $uid, $form_values['message'], $form_values['entry_id']);
+    }
+  }
+  return 'guestbook/'. $form_values['uid'];
+}
+
function guestbook_delete_entry_confirm($uid, $entry_id) {
   $entry = db_fetch_array(db_query(
     "SELECT g.*, u1.name, u1.data, u1.picture, u2.name as commentby
@@ -639,6 +727,7 @@
       $pager = $_GET['page'] ? 'page='. $_GET['page'] : NULL;
       $output .= '<div class="links">&raquo; ';
       $output .= l(t('Delete entry'), "guestbook/$uid/delete/{$entry['id']}", array(), $pager) .'&nbsp;|&nbsp;';
+      $output .= l(t('edit entry'), "guestbook/$uid/edit/{$entry["id"]}", array(), $pager) ."&nbsp;|&nbsp;";
       $output .= l($entry['comment'] == '' ? t('Add comment') : t('Edit comment'), "guestbook/$uid/comment/{$entry['id']}", array(), $pager, 'comment-entry');
       $output .= '</div>';
     }

Ich wollte dies eigentlich auf drupal.org posten doch ich raffe es nicht wie mit den Userdaten von hier mich dort anmelden kann :( .

Gruß,
Chuck

‹ Bookmarken per Klick auf externer WebSite ModRewrite fuer andere imce Adresse ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Warum registrierst Du Dich

Eingetragen von quiptime (4972)
am 01.12.2007 - 04:20 Uhr

Warum registrierst Du Dich auf drupal.org nicht separat?

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

quiptime wrote: Warum

Eingetragen von Chuck (7)
am 01.12.2007 - 23:11 Uhr
quiptime schrieb

Warum registrierst Du Dich auf drupal.org nicht separat?

Hab ich ja jetzt auch gemacht....

Da ich mich aber gerade hier frisch angemeldet hatte und hier sowohl auch bei drupal.org stand das man sich dann nicht erneut registrieren müsste --> dachte ich lasse es mal sein....

Gruß,
Chuck

  • Anmelden oder Registrieren um Kommentare zu schreiben

welche datei ist das die ich

Eingetragen von Babalu (117)
am 11.08.2008 - 12:11 Uhr

welche datei ist das die ich umschreiben muss ?
ich nutze drupal 6.3, geht das dort auch mit dem guestbook modul ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
Weiter

Neue Kommentare

  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 5 Tagen 18 Stunden
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 1 Woche 2 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 5 Wochen 4 Tagen
  • Textboxen mit Tabelle
    vor 5 Wochen 4 Tagen
  • Du sollst ja auch keine
    vor 5 Wochen 4 Tagen
  • Theme
    vor 5 Wochen 4 Tagen
  • Welches Theme benutzt du
    vor 5 Wochen 5 Tagen
  • Mit Responsive Raster hatte
    vor 5 Wochen 5 Tagen
  • Hallo Alex,um das Häkchen
    vor 5 Wochen 5 Tagen
  • Modul view_unpublished
    vor 6 Wochen 2 Stunden

Statistik

Beiträge im Forum: 250275
Registrierte User: 20489

Neue User:

  • Robertolix
  • DavidBit
  • JeraldZeF

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 8 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association