Kontaktformular

Hier dreht sich alles um die auf der Webseite veröffentlichten Tutorials. // This forum is all about the APF tutorials.
hansjo
Beiträge: 38
Registriert: 02.03.2009, 16:22:16
Wohnort: München

Kontaktformular

Beitrag von hansjo » 09.04.2009, 10:36:08

Hi,

zur Einarbeitung in das apf habe ich eine kleine einfache Seite gebaut. Dabei ein bisschen mit documentcontroller und tagLib herumgefummelt (z.B. zur Erzeugung von dynamischen Menüs). Ich bin also dabei so langsam ein bisschen was zu verstehen (Betonung auf "bisschen"). Nun will ich etwas in die höheren Spähren einsteigen und ein Kontaktformular einbinden. Da gibt es ja schließlich auch ein schönes Tutorial! Nach der Lektüre des selbigen habe ich nun versucht das bei mir mal einzubinden - aber ich habe offensichtlich nichts verstanden. Daher wäre es ganz lieb, wenn mir jemand ganz konkret aufschreiben könnte was ich machen muss damit ich wenigstens mal das formular sehe. Also in der Form:
1. unter <pfad> eine datei <name> anlegen mit dem <inhalt>.
2. in Datei <...> folgendes hinzufügen <...>
3. ...usw."

Wenn ich erstmal was lauffähiges habe kann ich dann die Erklärungen im Tutorial besser nachvollziehen. (Ein ENVIRONMENT oder Languageswitch habe ich natürlich nicht und würde es ggf. gerne weglassen)

Folgendes habe ich also bisher gemacht (aus tutorial zusammenkopiert):
Seite kontaktform.html in meine Seite eingebunden

Code: Alles auswählen

<core:addtaglib namespace="tools::html::taglib" prefix="html" class="getstring" />
<font style="font-size: 26px; font weight: bold;"><html:getstring namespace="modules::kontakt4" config="language" entry="header.title" /></font>
<br />
<core:importdesign namespace="modules::kontakt4::pres::templates" template="[pagepart=formular]" />
unter /config/modules/kontakt4/<context> die datei DEFAULT_empfaenger.ini: (context= 'sites/website')

Code: Alles auswählen

[de]
Contact.EMail.InputRequired = "Herber Tester"
Contact.EMail.InputWrong = "test@test.de"
[en]
Contact.EMail.InputRequired = "Herber Tester"
Contact.EMail.InputWrong = "test@test.de"
unter /config/modules/kontakt4/<context> die datei DEFAULT_language.ini:

Code: Alles auswählen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Language file for the contact form module                                                        ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[de]
; header
header.title = "Kontakt"
; hints on the form
formhint.text = "Wenn Sie mit mir in Kontakt treten möchten, dann benutzen Sie einfach dieses Formular. Geben Sie Ihre Nachricht ein und schon kann es los gehen. Ich werden mich dann umgehend mit Ihnen in Verbindung setzten. Bitte füllen Sie das Formular vollständig aus!"
; form labels
form.person = "Person / Gruppe: "
... usw ...
unter /config/tools/form/taglib/<context> die datei DEFAULT_formconfig.ini

Code: Alles auswählen

[de]
Contact.Warning.Image
==> natürlich läuft das nicht sondern endet mit Error-ID 'b9057a8128a0ffd66f767c1e851a4b31' :-) Was muss ich tun um zumindest mal das Formular zur Anzeige zu bekommen???

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 12.04.2009, 16:58:35

Hallo hansjo,
==> natürlich läuft das nicht sondern endet mit Error-ID 'b9057a8128a0ffd66f767c1e851a4b31' :-) Was muss ich tun um zumindest mal das Formular zur Anzeige zu bekommen???
Die Fehler-ID ist nur ein Teil der Fehlermeldung. Kannst du mir nochmal die komplette Meldung (bestehend aus Datei, Zeile und Meldung) posten?

Um dir den Einstieg zu erleichtern, hier ein copy&paste-Rezept für die Einbindung des Kontaktformulars:

1. Herunterladen und entpacken eines Releases:

Code: Alles auswählen

[root@centos53 apftut]# pwd
/var/www/html/apftut
[root@centos53 apftut]# ll
total 0
[root@centos53 apftut]# mkdir apps
[root@centos53 apftut]# cd apps
[root@centos53 apps]# wget http://files.adventure-php-framework.org/1.8/download/adventure-codepack-1.8-2009-01-09-2214-php5.tar.bz2
[root@centos53 apps]# tar -xjf adventure-codepack-1.8-2009-01-09-2214-php5.tar.bz2
[root@centos53 apps]# ll
total 308
-rw-r--r--  1 root root 251079 Jan 13 22:38 adventure-codepack-1.8-2009-01-09-2214-php5.tar.bz2
drwxr-xr-x 16  500  513   4096 Jan 13 22:25 core
-rwxr-xr-x  1  500  513  35821 Jan  9 22:16 gpl-3.0.txt
-rwxr-xr-x  1  500  513   7802 Jan  9 22:16 lgpl-3.0.txt
drwxr-xr-x 11  500  513   4096 Jan 13 22:25 modules
drwxr-xr-x 15  500  513   4096 Jan 13 22:25 tools
2. Herunterladen der Beispiel-Konfigurationsdateien:

Code: Alles auswählen

[root@centos53 apps]# pwd
/var/www/html/apftut/apps
[root@centos53 apps]# mkdir config
[root@centos53 apps]# cd config/
[root@centos53 config]# wget http://files.adventure-php-framework.org/1.8/download/adventure-configpack-1.8-2009-01-09-2214-noarch.tar.bz2
[root@centos53 config]# tar -xjf adventure-configpack-1.8-2009-01-09-2214-noarch.tar.bz2
3. Erstellen eines Start-Templates:

Code: Alles auswählen

[root@centos53 apps]# pwd
/var/www/html/apftut/apps
[root@centos53 apps]# ll
total 312
-rw-r--r--  1 root root 251079 Jan 13 22:38 adventure-codepack-1.8-2009-01-09-2214-php5.tar.bz2
drwxr-xr-x  5 root root   4096 Apr 12 15:57 config
drwxr-xr-x 16  500  513   4096 Jan 13 22:25 core
-rwxr-xr-x  1  500  513  35821 Jan  9 22:16 gpl-3.0.txt
-rwxr-xr-x  1  500  513   7802 Jan  9 22:16 lgpl-3.0.txt
drwxr-xr-x 11  500  513   4096 Jan 13 22:25 modules
drwxr-xr-x 15  500  513   4096 Jan 13 22:25 tools
[root@centos53 apps]# mkdir -p tut/site/pres/templates/ tut/site/pres/controller/
[root@centos53 apps]# vim tut/site/pres/templates/start.html
[root@centos53 apps]# cat tut/site/pres/templates/start.html
Hallo Welt!
4. Erstellen einer Boostrap-Datei
In der Boostrap-Datei wird das zuvor erstellte Template geladen uns ausgegeben. Dies passiert wie folgt:

Code: Alles auswählen

[root@centos53 apps]# cd ..
[root@centos53 apftut]# pwd
/var/www/html/apftut
[root@centos53 apftut]# vim index.php
[root@centos53 apftut]# cat index.php
<?php
   require('./apps/core/pagecontroller/pagecontroller.php');

   $page = new Page();
   $page->set('Context','dev');
   $page->loadDesign('tut::site::pres::templates','start');
   echo $page->transform();
?>
Anschließend kann die index.php im Browser aufgerufen werden und es sollte ein
Hallo Welt!
erscheinen.

5. Konfigurieren des Kontaktformulars:
Das Kontaktformular benötigt folgende Konfigurationen:
  • *_empfaenger.ini (Namespace: modules::kontakt4): Konfiguration der Empfänger
  • *_language.ini (Namespace: modules::kontakt4): Konfiguration der sprachabängigen Texte
  • *_formconfig.ini (Namespace: tools::form::taglib): Konfiguration der abhängigen Konfiguration für die Formular-TagLibs
Um die Inbetriebnahme möglichst kurz zu gestalten, bedienen wir uns einfach der Beispiel-Konfigurationsdateien, in dem wir diese in den richtigen Ordner kopieren und korrekt benennen. In der index.php wurde der Context auf dev eingesetellt, das Environment wurde nicht verändert. Diese besitzt damit den Wert DEFAULT. Es sind also folgende Schritte notwendig:

Code: Alles auswählen

[root@centos53 config]# pwd
/var/www/html/apftut/apps/config
[root@centos53 config]# mkdir -p modules/kontakt4/dev/
[root@centos53 config]# cp modules/kontakt4/EXAMPLE_empfaenger.ini modules/kontakt4/dev/DEFAULT_empfaenger.ini
[root@centos53 config]# cp modules/kontakt4/EXAMPLE_language.ini modules/kontakt4/dev/DEFAULT_language.ini
[root@centos53 config]# mkdir -p tools/form/taglib/dev
[root@centos53 config]# cp tools/form/taglib/EXAMPLE_formconfig.ini tools/form/taglib/dev/DEFAULT_formconfig.ini
6. Einspielen des CAPTCHA-Modul-Fixes:
Leider ist erst nach dem Release aufgefallen, dass das CAPTCHA-Modul nicht mit ausgeliefert wurde. Dieses muss daher nachinstalliert werden. Ich kann mir gut vorstellen, dass das der aufgetretene Fehler ist. Dieser lautet:
[import()] The given module (/var/www/html/apftut/apps/modules/captcha/pres/taglib/form_taglib_captcha.php) cannot be loaded! (Number: 1024, File: /var/www/html/apftut/apps/core/pagecontroller/pagecontroller.php, Line: 159)
Die Installation geht wie folgt:

Code: Alles auswählen

[root@centos53 modules]# pwd
/var/www/html/apftut/apps/modules
[root@centos53 modules]# wget http://files.adventure-php-framework.org/1.8/download/modules_captcha_1.8-2009-01-09-2214-noarch.zip
[root@centos53 modules]# unzip modules_captcha_1.8-2009-01-09-2214-noarch.zip
7. Inbetriebnahme / Einbindung des Formulars:
Nun können wir das Kontaktformular in das oben angelegte Template - und damit in jedes APF-Template - per TagLib einbinden. Hierzu muss der Inhalt von start.html wie folgt aussehen:

Code: Alles auswählen

[root@centos53 templates]# pwd
/var/www/html/apftut/apps/tut/site/pres/templates
[root@centos53 templates]# vim start.html
[root@centos53 templates]# cat start.html
<core:importdesign namespace="modules::kontakt4::pres::templates" template="kontakt" />
Bei Aufruf der index.php im Browser erscheint nun das Formular. Wie dir sicher schnell auffällt, fehlt das CAPTCHA-Bild. Hintergrund dafür ist, dass das Bild dynamisch erzeugt und mit Hilfe einer Frontcontroller-Action ausgeliefert wird. Die Konfiguration desselben erfordert folgende weitere Schritte:

8. Umbau index.php auf Frontcontroller:
Zur Nutzung des Frontcontrollers muss die index.php wie folgt umgestaltet werden:

Code: Alles auswählen

[root@centos53 apftut]# pwd
/var/www/html/apftut
[root@centos53 apftut]# vim index.php
[root@centos53 apftut]# cat index.php
<?php
   require('./apps/core/pagecontroller/pagecontroller.php');

   //$page = new Page();
   //$page->set('Context','dev');
   //$page->loadDesign('tut::site::pres::templates','start');
   //echo $page->transform();

   import('core::frontcontroller','Frontcontroller');

   $fC = &Singleton::getInstance('Frontcontroller');
   $fC->set('Context','dev');
   $fC->start('tut::site::pres::templates','start');
?>
9. Konfiguration der CAPTCHA-Bild-Action:
Damit das Bild ausgeliefert wird, muss die Acti[*]on, die dazu genutzt wird noch für den Frontcontroller konfiguriert werden. Dazu kopieren wir auch dieses mal einfach die Beispiel-Konfigurationsdateien:

Code: Alles auswählen

[root@centos53 config]# pwd
/var/www/html/apftut/apps/config
[root@centos53 config]# mkdir -p modules/captcha/biz/actions/dev/
[root@centos53 config]# cp modules/captcha/biz/actions/EXAMPLE_actionconfig.ini modules/captcha/biz/actions/dev//DEFAULT_actionconfig.ini
Nach einem F5 wird nun auch das CAPTCHA-Bild angezeigt.

10. Literatur:
Folgende Stellen im Tutorial sollten zum weiteren Verständnis helfen: 11. Einstieg:
Für den Einstieg in das Framework empfiehlt es sich, das demopack-Release herunter zu laden. Dieses kann sehr einfach als "Entwicklungsumgebung" genutzt werden. Zudem ist der Thread viewtopic.php?f=1&t=80 hier im Forum sehr hilfreich, da gerade auf das Thema Konfiguration nochmal in der Tiefe eingegangen wird.

Ich hoffe, ich konnte dir mit den vorangegangenen Zeilen helfen. Du hast - so denke ich - mehr verstanden, als du denkst!

Sollten bei der Einarbeitung Fragen auftauchen, dann scheue dich nicht, sie hier zu stellen. Offene Fragen sollten immer gleich geklärt werden, dann gestaltet sich die Einarbeitung einfacher.

Viele Grüße,
Christian
Viele Grüße,
Christian

hansjo
Beiträge: 38
Registriert: 02.03.2009, 16:22:16
Wohnort: München

Re: Kontaktformular

Beitrag von hansjo » 20.04.2009, 23:30:52

Ich sage ganz herzlichen DANK!!!! für die immer schnelle uns extrem ausführliche Hilfe!!! (dies gilt auch für alle weiteren Antworten auf meine weiteren Fragen um nicht jedes mal das Forum mit Dankesfloskeln voll zu schreiben! ;-) )

Also mit der Anleitung habe ich es spielend hinbekommen. Problem war natürlich die Sache mit dem captcha ... das hatte ich zwar irgendwo gelesen, aber mir war nicht klar dass es hier gleich mitverwendet wird. Nun kann ich herumspielen und weitere Zusammenhänge ergründen!

Also nochmal vielen Danke - ich melde mich wieder :o

Avedo

Re: Kontaktformular

Beitrag von Avedo » 18.03.2010, 15:26:43

Guten Morgen!

Ich krame diesen Thread, auch wenn er schon etwas älter ist, nochmals aus, da ich denke, dass es schöner ist, wenn die Fragen zu diesem Thema nicht auf zwanzig verschiedene Topics verteilt sind.

Die Einbindung des Kontakt-Formulars in meine momentane Seite, war bisher nicht wirklich schwer. Allerdings möchte ich, anders als hansjo, meine Website mehrsprachig halten. Nun ist mir aber nicht klar, wie ich das im Fall des Kontakt-Formulars erreiche. Ich habe bisher einfach in den Verzeichnissen /var/www/avedo_projects/apps/sites/avedo_projectspres/templates/en/content und
/var/www/avedo_projects/apps/sites/avedo_projectspres/pres/templates/de/content die Datei kontakt.html mit dem Inhalt

Code: Alles auswählen

<core:importdesign namespace="modules::kontakt4::pres::templates" template="kontakt" />
abgelegt. EInen unterschied bei der Sprachumstellung gibt es natürlich noch nicht, wobei ich auch nicht weiß, wie ich das veranlassen sollte. Außerdem wundert es mich, dass sowohl in der *_language.ini, als auch in der *_formconfig.ini Konfigurationsdatei die deutschen und englischen Fehlermeldungen und Eingabefeld-Beschriftungen enthalten sind.

Ein weiteres Problem habe ich bei der Anpassung der contact.css. Ich kann diese sowohl einbinden, als auch löschen und es passiert rein garnichts. Wo soll diese denn dazu gelinkt werden? Muss ich das selbst machen?

Liebe Grüsse,

Andreas

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 18.03.2010, 19:29:32

Hallo Andreas,
EInen unterschied bei der Sprachumstellung gibt es natürlich noch nicht, wobei ich auch nicht weiß, wie ich das veranlassen sollte. Außerdem wundert es mich, dass sowohl in der *_language.ini, als auch in der *_formconfig.ini Konfigurationsdatei die deutschen und englischen Fehlermeldungen und Eingabefeld-Beschriftungen enthalten sind.
Hinsichtlich der Mehrsprachigkeit ist das APF so ausgelegt, dass an Hand der Sprache des DOM-Baumes entschieden wird, welche Sprach-Sektion aus der Konfiguration gezogen wird. Ist also die Sprache "de" gewählt, wird der deutsche Teil angezeigt, im Fall von "en" der englische. Tipps zur Umschaltung der Sprache kannst du dir aus dem Thread Mehrsprachige Absendebuttons holen.
Ein weiteres Problem habe ich bei der Anpassung der contact.css. Ich kann diese sowohl einbinden, als auch löschen und es passiert rein garnichts. Wo soll diese denn dazu gelinkt werden? Muss ich das selbst machen?
Die Einbindung muss im Head der Seite erfolgen. Diese Änderung musst du selbst vornehmen, kannst aber die mitgelieferte Datei aus dem Verzeichnis /apps/modules/kontakt4/pres/css/ nutzen. Grund hierfür ist, dass das APF das Modul zwar anbieten kann, aber nicht genau weiß wo es eingebunden wird. Du hingegen kennst die konkrete Struktur deiner Seite und kannst daher das CSS-File sehr einfach einbinden.

Kommst du mit dieser Information zurecht?
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 18.03.2010, 20:10:22

Danke für deine Antwort. Die CSS-Datei ist nun korrekt eingebunden und durch ein einfaches

Code: Alles auswählen

$fC->setLanguage("en")
in der entsprechenden Index-Datei wurde auch das Problem der Mehrsprachigkeit gelöst. Leider habe ich nun noch ein Problem mit dem Captcha. Es wird zwar angezeigt, sendet man jedoch die Email ab, so wird das Feld gelehrt und nicht anerkannt. Eine Fehlermeldung gibt es weder vom Framework noch vom Formular. Woran kann das liegen?

Liebe Grüße,

Andreas

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 18.03.2010, 23:10:03

Hallo Andreas,
Leider habe ich nun noch ein Problem mit dem Captcha. Es wird zwar angezeigt, sendet man jedoch die Email ab, so wird das Feld gelehrt und nicht anerkannt. Eine Fehlermeldung gibt es weder vom Framework noch vom Formular. Woran kann das liegen?
Das kann u.U. daran liegen, dass die relevanten CSS-Styles für die Formatierung der Fehlermeldungen nicht vorhanden sind oder die Datei mit den Fehlermeldungen einen leeren Wert für die CAPTCHA-Meldung enthält.

Die Vorgehensweise kannst du dir schnell klar machen:
In formular.html unter /apps/modules/kontakt4/pres/templates/ ist ein Listener für das CAPTCHA definiert:

Code: Alles auswählen

<form:listener control="captcha" id="captcha-error">
   <li><listener:placeholder name="content" /></li>
</form:listener>
Der Platzhalter wird im Controller auf Zeile 121 per

Code: Alles auswählen

$captchaError = &$form->getFormElementByID('captcha-error');
$captchaError->setPlaceHolder('content',$config->getValue($this->__Language,'form.captcha.error'));
gefüllt. Das setzt voraus, dass in der Konfigurations-Datei DEFAULT_language.ini im Ordner /apps/config/modules/kontakt4/{CONTEXT}/ der Konfigurations-Schlüssel form.captcha.error für die gerade gewählte Sprache gefüllt ist.

Sollte das der Fall sein, kannst du mal im Quelltext der abgesendeten Seite prüfen, ob das Text-Feld die Klasse apf-form-error besitzt. Falls ja, fehlen einfach die Styles.

Sollte das alles nichts helfen, habe ich noch eine andere Idee.
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 19.03.2010, 17:26:48

Hallo!

Habe mir mal das ganze angesehen und musste leider feststellen, das keines der oben aufgeführten Dinge zutraf. Ich habe also den Listener, das Setzen des Platzhalters und die Sprachdefinition an den entsprechenden Stellen eingefügt. Die Klasse oFormData war im übrigen auch nicht im Kopf des Controllers eingebunden.

Es wird nun die richtige Fehlermeldung ausgegeben. Leider wird das Captcha jedoch nie akzeptiert. Es wird einfach immer die Fehlermeldung ausgegeben. Das kann aber auch an dem merkwürdigen Namen des Captcha-Felds liegen. Das ist nämlich nur eine wilde Zahlenkombination. Bin etwas ratlos.

Liebe Grüße,

Andreas

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Kontaktformular

Beitrag von Screeze » 19.03.2010, 18:05:29

Hi,
Der name des captchas ist in ordnung so.
Hast du cookies eingeschalten, ich glaub das funktioniert nur mit.

Grüsse

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 19.03.2010, 18:41:21

Hallo Andreas,

wenn das alles nichts hilft, fürchte ich, dass es ein Fehler im APF ist. Welche Version benutzt du? Falls 1.11, lade dir mal die neueste Version unter http://adventure-php-framework.org/Seit ... Repository herunter und versuche es damit nochmal. Sollte auch das nichts helfen, schlage ich vor, dass du deine aktuelle Installation als ZIP zur Verfügung stellst, dann prüfe ich das bei mir lokal mal. Leider kann ich deinen Effekt so nicht nachvollziehen. :?
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 19.03.2010, 22:32:02

Guten Abend!

Also ich habe nun ein kleines Update von Version 1.1 auf 1.2 vorgenommen und nun funktioniert fast alles. Lag wohl an der alten Version. Die Mails werden nun also versendet. Leider wird der Absender nicht angezeigt. Es ist nur ""<> zu sehen. In der Config ist aber eigentlich alles richtig eingetragen

Code: Alles auswählen

[Kontakt 1]
EmpfaengerName = "Support"
EmpfaengerAdresse = "info@avedo.net"

[Kontakt 2]
EmpfaengerName = "BugReport"
EmpfaengerAdresse = "info@avedo.net"

[Kontakt 3]
EmpfaengerName = "Feature Request"
EmpfaengerAdresse = "info@avedo.net"
Hat jemand eine Idee, wo der Fehler liegen könnte?

Liebe Grüße,

Andreas

EDIT: In der kontakt.html wird die formular.html via [pagepart=formular] eingebunden. Das funktioniert nicht. Es muss nur formular heißen, dann funktioniert es. Außerdem heißt es im kontakt_v4_controller, dass dieser von baseController erbt. Es muss dort aber base_controller heißen, dann funktioniert es auch.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 20.03.2010, 01:39:51

Hallo Andreas,

ich hatte fast vermutet, dass eine inkonsistente Version am Verhalten Schuld sein muss. Im aktuellen Branch des 1.12er Release erbt der Controller des Kontakt-Formular-Moduls jedoch korrekt von base_controller (siehe http://adventurephpfra.svn.sourceforge. ... iew=markup). Sofern du mit der aktuellen SVN-Version arbeitest, bietet es sich an, diese als TGZ unter http://adventurephpfra.svn.sourceforge. ... z?view=tar herunter zu laden. Damit hast du alle aktuellen Versionen der Files.

Nach dem Update sollte der Controller richtig erben und auch das Template sollte korrekt eingebunden werden. Die Notation

Code: Alles auswählen

<core:importdesign namespace="modules::kontakt4::pres::templates" template="[pagepart=formular]" />
bedeutet, dass der URL-Parameter pagepart dazu genutzt wird zu entscheiden, welches Template aus dem Namespace modules::kontakt4::pres::templates eingebunden werden soll. Ist er nicht gesetzt, wird das Template formular.html geladen, ist er mit meldung gefüllt, wird meldung.html gezogen. Dieser Mechanismus kann beispielsweise dazu genutzt werden um verschiedene Bereiche der Seite dynamisch mit Inhalt zu füllen. Siehe hierzu auch http://adventure-php-framework.org/Seit ... portdesign.
Hat jemand eine Idee, wo der Fehler liegen könnte?
Die Ursache liegt darin, dass für den mailSender eine eigene Konfiguration angelegt sein muss, der den Absender für einen definierten Einsatz spezifiziert. Leider ist die Dokumentation oben diesbezüglich etwas lückenhaft. Sie verschweigt, dass beim Download der Beispiel-Konfiguration noch die Datei EXAMPLE_mailsender.ini in das Verzeichnis /apps/config/tools/mail/{CONTEXT}/ kopiert und zu DEFAULT_mailsender.ini umbenannt werden muss. Diese definiert in der Sektion ContactForm die relevanten Absender. Beispiel:

Code: Alles auswählen

[ContactForm]
Mail.SenderName = "The contact form"
Mail.SenderEMail = "foo@bar.com"
Mail.ReturnPath = "foo@bar.com"
Mail.ContentType = "text/plain; charset=UTF-8"
Hintergrund hierfür ist, dass der mailSender immer mit einer Konfiguration als Init-Parameter erzeugt werden muss - so sagt es die Implementierung. Ich werde daher das obige Tutorial am Wochenende ergänzen und ins Wiki umziehen, dann ist es vollständig.

Ich hoffe, damit kommst du weiter und hast ein richtiges Erfolgserlebnis. :roll:
Zuletzt geändert von dr.e. am 23.03.2010, 08:46:34, insgesamt 1-mal geändert.
Grund: Beispiel für mailsender.ini ergänzt
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 20.03.2010, 22:17:58

Hallo Andreas,

bist du weiterkommen?
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 21.03.2010, 14:58:51

Einen wunderschönen guten Morgen!

Habe es gestern leider nicht mehr geschafft alles zu testen. Habe nun die aktuellste der aktuellen Versionen aus dem SVN gezogen und leider tritt der Fehler weiter auf. Die Seite Kontakt (zu finden unter Impressum) wird nicht angezeigt, sondern nur ein 500er. Ändere ich die betreffende Zeile in der kontakt.html wird alles wieder angezeigt. Auch der Name und die Email-Adresse werden trotz korrekt eingebundener DEFAULT_mailsender.ini nicht angezeigt. Die Emails an das Mail-Konto und den Anfragenden werden jedoch korrekt verschickt. Habe mal das Passwort in der connections.ini geändert und dir meine aktuelle Version zusammen gepackt. Wäre wirklich nett, wenn du mal einen Blick drauf werfen könntest.

Liebe Grüße,

Andreas

PS: Hattest du eigentlich meine Email "Das APF - Ein paar Fragen" erhalten?
EDIT: Die Datei war zu groß. Habe sie dir deshalb in einer Email ("APF-Kontaktformular") geschickt. Hoffe das ist ok für dich.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 21.03.2010, 21:42:51

Hallo Andreas,

ich habe deine Mail bekommen und auch schon heruntergeladen. Mail ist beantwortet, nur den Foren-Beitrag hatte ich noch nicht beantworten können.

Nun habe dein Package lokal entpackt und getestet. Ich bekomme jedoch den Fehler
Fatal error: Maximum function nesting level of '100' reached, aborting! in D:\Apache2\htdocs\www\test.de\avedo\apps\core\singleton\Singleton.php on line 101
Das Problem dabei ist, dass der Inhalt der Seite mit dem selben Parameter in der <core:importdesign /> eingebunden wird, wie das Kontakt-Formular. Damit versucht der Page-Controller auch immer wieder dasselbe einzubinden -> Rekursion + 500er. Das bedeutet für dich, dass du den URL-Parameter für die Einbindung der Templates ändern musst. Dies kannst du mit dem Setzen des Tag-Attributes incparam tun wie unter http://adventure-php-framework.org/Seit ... portdesign beschrieben ist. Ich persönlich würde daher in der Datei website.html statt

Code: Alles auswählen

<core:importdesign namespace="sites::avedo_projects::pres::templates::de::content" template="[pagepart = start]" />
ein

Code: Alles auswählen

<core:importdesign namespace="sites::avedo_projects::pres::templates::de::content" incparam="page" template="[page = start]" />
schreiben und die Links entsprechend anpassen. Beim Absenden funktioniert dann auch das Captcha.

Ich hoffe, damit kommst du weiter!
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast