[GELÖST] FEU + SelfRegistration + FormBuilder + FormBrowser

Hilfe zu Modulen und Tags
Post Reply
dietzi

[GELÖST] FEU + SelfRegistration + FormBuilder + FormBrowser

Post by dietzi »

Hallo an alle!

Ich habe ein eher komplexes Projekt übernommen und hoffe jetzt inständig, daß ich mich damit nicht "übernommen" habe. Ich hoffe, ich kriege  es mit Eurer Unterstützung auf die Reihe. Günstigerweise kommt der Fertigstellungstermin per Jahresende mir entgegen. Aber jetzt zur Sache.

Ich möchte ein Projekt mit folgenden Anforderungen erstellen: Benutzer können sich registrieren und jeder registrierte User hat die Möglichkeit, nur für Ihn zugängliche Texte zu erstellen/zu bearbeiten/zu verwalten. Später vielleicht auch Dateien.

System: CMSMS 1.2 mit den aktuellen Modulen: FrontEndUsers 1.2.2, SelfRegistration 1.1.1, CustomContent 1.4.9, FormBuilder 0.4.4, Formbrowser 0.2, Uploads 1.3.0

So bin ich bis jetzt vorgegangen:

Über das SelfRegistration-Modul wurde einige Testuser registriert. Soweit alles klar und ohne Probleme.

Mit FormBuilder habe ich ein Formular erstellt, das als Maske für die Texteingabe dienen soll. Es besteht aus den Formularfeldern:
Textfeld "Name"
Textbereich "Nachricht"
Ergebnisse in Datenbank schreiben

Dieses Formular habe ich in eine eigene Seite "Text eingeben" integriert und durch CustomContent geschützt. Dann habe ich einen FormBrowser für dieses Formular erstellt, den Benutzern alle Rechte für die Bearbeitung der Daten gegeben (ohne erforderliche Prüfung) und ebenfalls in eine eigene, geschützte Seite "Text bearbeiten" integriert.

Beim Ausfüllen und in der DB speichern des Formulares über die Seite "Text eingeben" gibt es keine Probleme.

Aber jetzt kommt die essentielle Funktion. Ich melde mich als "Testuser" an, öffne die Seite mit dem Formbrowser und klicke auf Text bearbeiten. Nach Eingabe des neuen Textes sende ich das Formular ab. Es öffnet sich eine neue Seite mit den Buttons "Zurück" und nochmals "Formular absenden". Gut, dann nochmals, aber die Seite bleibt unverändert stehen. Also dann manuell zurück zur Seite mit dem Formbrowser. Aber keine Änderung des Textes.

Wie schaut es aus mit "Daten löschen"? Das funktioniert.

Und mit "Datensatz hinzufügen"? Wenn ich auf das Icon klicke, öffnet sich das Formular zur Eingabe. Wenn ich allerdings auf den Textlink klicke, kommt das Formular zur Eingabe und eine Warnung:

Code: Select all

Warning: Parameter message is not known... dropped in .../lib/misc.functions.php on line 1281
Wahrscheinlich harmlos, diesen Parameter im Textlink (m8message=Einen%20Datensatz%20hinzuf%26amp%3Buuml%3Bgen&) könnte man vielleicht auch herausnehmen. Wichtiger ist allerdings, daß das Ändern oder neu eingeben eines Textes nicht klappt, obwohl die Rechte dafür eingeräumt wurden.

Mir wäre es wichtig, zuerst zu klären ob mein "Plan" so funktionieren könnte und daß er funktioniert. Daß sich dann das Problem stellt, Formbrowser um Benutzer-IDs zu erweitern, ist der 2. Schritt.

Freue mich auf Rückmeldungen!

Dietmar
Last edited by dietzi on Mon Dec 10, 2007 8:46 am, edited 1 time in total.
cyberman

Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by cyberman »

Ist in der Tat eine relativ komplexe Geschichte :) ...
dietzi wrote: Wenn ich allerdings auf den Textlink klicke, kommt das Formular zur Eingabe und eine Warnung:

Code: Select all

Warning: Parameter message is not known... dropped in .../lib/misc.functions.php on line 1281
Lässt sich evtl. die Fehlermeldung mit der Einstellung aus dem menü Administrator > Globale Einstellungen unterdrücken?
dietzi

Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by dietzi »

@cyberman: Danke für deinen Tip, hab es noch nicht versucht, die Lösung anderer Probleme hat momentan mehr Priorität.

Ich versuche jetzt, das Problem einzuschränken und in kleineren "Scheibchen"zu analysieren und lasse FEU und SelfRegistration mal beiseite. Mit diesen Modulen klappt alles.

Grundsätzlich nochmal die Anforderung: Jeder registrierter und angemeldeter FEU kann eine bestimmte Anzahl eigener Texte über ein Formular eingeben und im "eigenen" Formbrowser verwalten. Also muß zu den Texten auch die UserID gespeichert werden.

In der FormBuilder-DB "..._fb_resp" gibt es zwar ein Feld "feuser_id", in diesem wird aber immer nur NULL gespeichert.

Also habe ich in den FormBuilder-Dateien mal nach den relevanten Funktionen gesucht.

In der FormBuilder.module.php gibt es
auf Zeile 265 die function GetResponse
auf Zeile 305 die function GetResponses
auf Zeile 376 die function GetSortedResponses
auf Zeile 490 die function ListResponses
 
Und in der /classes/Form.class.php sind es
auf Zeile 1633 die function LoadResponse
auf Zeile 1667 die function LoadResponseValues
auf Zeile 1707 die function DeleteResponse
auf Zeile 1734 die function StoreResponse

Die letzt aufgezählte sollte die richtige sein, da ist z. B. notiert:

Code: Select all

  {
    $db = $this->module_ptr->dbHandle;
    $fields = &$this->GetFields();
    $secret_code = '';
    $newrec = false;
    if ($response_id == -1)
      {
	$newrec = true;
      }
    if ($newrec)
      {
	// saving a new response
	$secret_code = substr(md5(session_id().'_'.time()),0,7);
	$response_id = $db->GenID(cms_db_prefix(). 'module_fb_resp_seq');
	$sql = 'INSERT INTO ' . cms_db_prefix().
	  'module_fb_resp (resp_id, form_id, submitted, secret_code)' .
	  ' VALUES (?, ?, ?, ?)';
	$res = $db->Execute($sql,
			    array($response_id,
				  $this->GetId(),
				  $this->clean_datetime($db->DBTimeStamp(time())),
				  $secret_code));
      }
Als PHP-Interessierter, aber es noch immer nicht ganz Checkender würde ich den Code folgendermaßen ergänzen:

Code: Select all

	$sql = 'INSERT INTO ' . cms_db_prefix().
	  'module_fb_resp (resp_id, form_id, feuser_id, submitted, secret_code)' .
	  ' VALUES (?, ?,[b] ?,[/b] ?, ?)';
 
Das alleine funktioniert natürlich noch nicht, ich muß wahrscheinlich vorher noch irgendwo und irgendwie die Variable einführen, ungefähr so:

Code: Select all

    $db = $this->module_ptr->dbHandle;
    $fields = &$this->GetFields();
    $feuser_id = '';
    $secret_code = '';
    $newrec = false;
Und danach noch irgendwie die UserID zuweisen, die bei angemeldetem User ja wahrscheinlich in der Session gespeichert ist.

Code: Select all

	$res = $db->Execute($sql,
			    array($response_id,
				  $this->GetId(),
				  $this->UserID???,
				  $this->clean_datetime($db->DBTimeStamp(time())),
				  $secret_code));
Aber da bin ich mit meinem Latein am Ende.
(Sind meine Änderungen halbwegs erkennbar? Leider kann man bei Code nichts mehr formatieren.)

Dietmar
 
cyberman

Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by cyberman »

dietzi wrote: In der FormBuilder-DB "..._fb_resp" gibt es zwar ein Feld "feuser_id", in diesem wird aber immer nur NULL gespeichert.
Der Autor des FEU-Moduls und des Formbuilder-Moduls ist ein und dieselbe Person - ist also sehr wahrscheinlich, dass da in der Richtung etwas für künftige Versionen angedacht ist.
Also habe ich in den FormBuilder-Dateien mal nach den relevanten Funktionen gesucht.
Da bist du schon tiefer in das Modul eingestiegen als ich es jemals war. Ich kämpfe derzeit mit einer anständigen Übersetzung :).
Und danach noch irgendwie die UserID zuweisen, die bei angemeldetem User ja wahrscheinlich in der Session gespeichert ist.
IMHO sind in der aktuellen Version Sessions und Cookies möglich. Entweder du holst sie dir aus Smarty. Oder du "verknüpfst" Formbuilder mit FEU.
(Sind meine Änderungen halbwegs erkennbar? Leider kann man bei Code nichts mehr formatieren.)
Yep. Verwende doch einfach die Quote- anstatt des Source-Modus ;).  
dietzi

Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by dietzi »

Hallo, ich habe den Thread nochmal im englischen Forum gepostet, denn dort erreiche ich den Autor der Module direkt.

http://forum.cmsmadesimple.org/index.php/topic,17460.0.html

@cyberman: Bitte korrigiere den Betreff den Forumsregeln entsprechend.

Dietmar
cyberman

Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by cyberman »

dietzi wrote: Bitte korrigiere den Betreff den Forumsregeln entsprechend.
Den kannst du selbst ändern - nimm einfach dein erstes Posting noch mal in die "Hand" ;).
dietzi

[GELÖST] Re: FEU + SelfRegistration + FormBuilder + FormBrowser

Post by dietzi »

Gelöst deshalb, weil ich begriffen habe, daß ich aus CMSMS etwas basteln wollte was es nicht ist. Ein Portalsystem nämlich.

Auf Dauer konnte das wahrscheinlich auch nicht gutgehen. Nutzen wir CMSMS in seiner ursprünglichen Konzeption, als gutes und leicht zu bedienendes CMS. Aber lassen wir uns nicht dazu verführen, es zu allen Webpublishing-Aufgaben zu mißbrauchen, nur weil es ein Modul dafür gibt.

Dietmar
cyberman

Re: [GELÖST] FEU + SelfRegistration + FormBuilder + FormBrowser

Post by cyberman »

In der Tat ist CMSms keine eierlegende Wollmilchsau.

Nur zu schade, dass es ein Portal made simple nicht gibt :) ...
McPaul
Forum Members
Forum Members
Posts: 48
Joined: Fri Dec 21, 2007 5:27 pm

Re: [GELÖST] FEU + SelfRegistration + FormBuilder + FormBrowser

Post by McPaul »

:-[ *hmmm* schade das dieser Eintrag so ein Ende nahm.

Wäre für mich interesant. Ich dachte, (da mein Hobby die Fotografie ist) das ich auf meiner Seite (welche ich mühsam mit eurer Hilfe =NOCH EINMAL DANKE!! umgesetzt habe) eine Möglichkeit den Mädels schaffe sich eine eigene Sedcard bei mir zu erstellen. Damit auch andere Fotografen mit Ihnen in verbindung treten können.

Tja, kein passendes Modul gefunden und zum selbsprogrammieren zu ..... , ach schade!  :-\
Post Reply

Return to “Module und Tags”