Minimales Modul

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
phpdummi
Beiträge: 18
Registriert: 23.11.2007, 16:15:15

Re: Minimales Modul

Beitrag von phpdummi » 20.05.2009, 19:50:46

Hi,

ich möchte, ohne viel selbst implementieren zu müssen, Fehlermeldung vom Validator ausgeben.
Quasi im Template definieren was angezeigt werden soll wenn der Validator die Felder rot markiert.

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

Re: Minimales Modul

Beitrag von dr.e. » 21.05.2009, 00:02:40

Hallo Alex,

dann definiere einfach ein Textfeld per <form:text /> und einen zugehörigen <form:genericval /> der die Fehlermeldungen enthält. Das sieht dann in etwa so aus:

Code: Alles auswählen

<html:form name="myform">
   <form:genericval  button="send" field="searchterm" validator="text">Bitte geben Sie einen Text ein!<br /></form:genericval>
   <form:text name="searchterm" />
   <br />
   <br />
   <form:button name="send" value="OK" />
</html:form>
Wenn du nun auf den Button drückst, wird der Inhalt des <form:genericval />-Tags ausgegeben. Möchtest du noch einen roten Rand um das Suchfeld zeichnen, müssen die Attribute

Code: Alles auswählen

validate="true" button="send"
noch zusätzlich gesetzt werden.

Beispiele zu Formularen findest du auch unter http://adventure-php-framework.org/Seit ... onsschicht.

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

phpdummi
Beiträge: 18
Registriert: 23.11.2007, 16:15:15

Re: Minimales Modul

Beitrag von phpdummi » 21.05.2009, 14:26:29

Danke, genau das wollte ich erreichen.

Sonic
Beiträge: 15
Registriert: 26.12.2010, 17:51:17

Re: Minimales Modul

Beitrag von Sonic » 31.12.2010, 12:49:24

Hi,
wärst du bitte so nett und passt das Tutorial an die aktuelle Version an?

Ich habe nämlich auch noch einige Schwierigkeiten mit der Funktionsweise(ähnlich wie de Threadersteller damals ;)).

LG und Danke

Sonic

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

Re: Minimales Modul

Beitrag von dr.e. » 31.12.2010, 18:03:14

Hi Sonic,

ich bau den Code die nächsten Tage mal auf 1.13 um, so dass es auch für dich nutzbar ist. Grundsätzlich kannst du das Tutorial jedoch zusammen mit der aktuellen Doku versuchen mal anzufangen (zumindest mit dem Setup der Code-Basis bzw. der Sandbox). Geändert hat sich im wesentlichen folgendes:
  • Statt $form->get('isSent') jetzt $form->isSent() und statt $form->get('isValid') jetzt $form->isValid() im Controller verwenden.
  • Validatoren nicht in den Feldern definieren, sondern wie unter http://adventure-php-framework.org/Seit ... alidierung beschrieben "von aussen" mit einem extra Tag an die Felder hängen.
Ich melde mich sobald ich eine saubere Code-Basis habe. Solltest du inzwischen Fragen haben, meld dich einfach direkt hier.
Viele Grüße,
Christian

Sonic
Beiträge: 15
Registriert: 26.12.2010, 17:51:17

Re: Minimales Modul

Beitrag von Sonic » 01.01.2011, 12:04:39

Hi,
danke für deine schnelle Antwort.

LG Sonic

Sonic
Beiträge: 15
Registriert: 26.12.2010, 17:51:17

Re: Minimales Modul

Beitrag von Sonic » 01.01.2011, 13:05:16

Hi,
ich habe mich jetzt bis 3.8 vorgearbeitet und habe schon ein Problem:

Anstatt der Ausgabe der Formularfelder wird der Inhalt der calc.html ungeprased ausgeliefert. Es kommt auch keine Fehlermeldung o.Ä.

LG Sonic

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

Re: Minimales Modul

Beitrag von Screeze » 01.01.2011, 13:22:40

Ohne quellcode kann ich nur raten, aber ich schätze du hast die Controller-angabe, die in 3.5 gemacht wurde wieder aus dem template entfernt?

Code: Alles auswählen

<@controller namespace="modules::calc::pres::documentcontroller" file="calc_controller" class="calc_controller" @>

Sonic
Beiträge: 15
Registriert: 26.12.2010, 17:51:17

Re: Minimales Modul

Beitrag von Sonic » 01.01.2011, 14:12:20

Hi,

vielen Dan. Genau das war es. Doch jetzt kommt folgende Fehlermeldung:

Fatal error: Class 'baseController' not found in C:\xampp\apf\apps\modules\calc\pres\documentcontroller\calc_controller.php on line 3

Und der Quellcode ist folgender(calc_controller.php):

Code: Alles auswählen

<?php
 class calc_controller extends baseController
   {
      function calc_controller(){
      }

      function transformContent(){
         $Form__CalcForm = &$this->__getForm('CalcForm');
         $Form__CalcForm->transformOnPlace();
      }

   }
?>
Und die calc.html:

Code: Alles auswählen

<core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<@controller namespace="modules::calc::pres::documentcontroller" file="calc_controller" class="calc_controller" @>
<html:form name="CalcForm" method="post" action="">
    <form:placeholder name="Operand1Error" />
    Operand1: <form:text name="operand1" class="eingabe_feld" validate="true" button="docalc" />
    Operation:
    <form:select name="operation">
       <select:option value="plus">+</select:option>
       <select:option value="minus">-</select:option>
       <select:option value="dividieren">/</select:option>
       <select:option value="multiplizieren">*</select:option>
    </form:select>
    <form:placeholder name="operand2error" />
    Operand2: <form:text name="operand2" class="eingabe_feld" validate="true" button="docalc" />
    <br />
    <form:button name="docalc" value="Berechnen" />
</html:form>
LG Sonic

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

Re: Minimales Modul

Beitrag von Screeze » 01.01.2011, 14:44:37

Das ist an einer API-änderung geschuldet, die gemacht wurde um der Namenskonvention zu entsprechen.
baseController heißt jetzt base_controller.

Sonic
Beiträge: 15
Registriert: 26.12.2010, 17:51:17

Re: Minimales Modul

Beitrag von Sonic » 01.01.2011, 15:10:39

Hey, cool tausend Dank. Das Modul läuft. Ich hätte aber noch eine Frage:
  • Wenn apps/ der einzige ordner im Verzeichnis apf/ warum gibt es dann den Ordner apf/ überhaupt?
LG Sonic

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

Re: Minimales Modul

Beitrag von Screeze » 01.01.2011, 15:13:46

Gute Frage - Geschmackssache.
Ich habe beispielsweise pro server / lokaler installation EINEN zentralen Ordner fürs apf, in dem die einzelnen versionen liegen - ohne apps ordner.
Diese Ordner hab ich unter versionscontrolle mit dem SVN gestellt, dass ich die per klick updaten kann.
also z.b.

Code: Alles auswählen

/apf/
---1.12/
*******core/
*******modules/
*******tools/
[...]
---1.13/
******core/
[...]
Und in meinen Projekten habe ich dann einfach symlinks auf diesen zentralen ordner, somit ist jedes projekt sofort auf der aktuellen APF version, wenn ich den zentralen ordner update.

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

Re: Minimales Modul

Beitrag von dr.e. » 03.01.2011, 23:27:14

Hallo Sonic,

anbei habe ich eine überarbeitete Version zum Download angehängt. Dieses kannst du als Beispiel für die Implementierung des Moduls nutzen. Es ist im Prinzip alles bis 3.12 enthalten. Zur Installation/Nutzung brauchst du noch das aktuelle apf-codepack-1.13-RC1*-Package. Dieses noch in den Haupt-Ordner entpacken, so dass die Ordner core, modules, ... in apps ergänzt wird.
apf-examples-calc-1.13-RC1-2011-01-03-2220.zip
(3.25 KiB) 139-mal heruntergeladen
Die Einbindung in die aktuelle Sandbox kannst du unter Template-Wizzard ein

Code: Alles auswählen

<core:importdesign namespace="examples::calc::pres::templates" template="calc" />
einfügen und das Modul direkt testen.

Wie weit bist du bisher gekommen?
Viele Grüße,
Christian

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

Re: Minimales Modul

Beitrag von dr.e. » 04.01.2011, 21:27:48

Hallo Sonic,

hast du dir das ZIP mal angesehen?
Viele Grüße,
Christian

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

Re: Minimales Modul

Beitrag von dr.e. » 28.01.2011, 14:20:38

Hallo Sonic,

hat dir das ZIP schon weitergeholfen? Falls zu Fragen hast, immer her damit! :)
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast