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.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Minimales Modul

Beitrag von dr.e. » 19.02.2011, 11:53:39

Hallo Sonic,

hat dir das ZIP weitergeholfen? Um das Beispiel in Zukunft immer up2date zu halten habe ich den Code in das SVN integriert. Das Setup ist in der README.txt beschrieben.
Viele Grüße,
Christian

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 18:07:05

Hi,

sorry, dass ich mich so lange nicht gemeldet habe. Ich habe mir jetzt die 1.13 geholt und jetzt die zip. Ich werde es demnächst ausprobieren. Leider hatte ich Stress und bis heute keine Zeit weiter zu arbeiten :(

Danke für deine Hilfe. Ich werde mich dann wieder melden :)


LG Sonic

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 19:13:18

Leider schon wieder ein Fehler:

[form_taglib_multiselect::onParseTime()] The attribute "name" of the <form:multiselect /> tag with name "operations[]" in form "CalcForm" and document controller "calc_controller" must not contain brackets! Please ensure, that the appropriate form control has a suitable name. The brackets are automatically generated by the taglib!

Ich habe bis 3.6 eig. nur copy+ paste verwendet.

LG und Danke

Sonic

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

Re: Minimales Modul

Beitrag von Screeze » 13.03.2011, 19:22:05

Laut Fehlermeldung verwendest du im Formular "CalcForm" ein multiselect Feld, dessen Name vermutlich eckige klammern [ ] enthält, was nicht sein darf, da die Taglib diese selber setzt.
Also einfach aus dem name="whatever[]" Attribut die [] entfernen.

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 20:03:12

Ok,

danke das wars :) Ist aber auch schon bei seinem Tut falsch(bitte ausbessern :)). Und der base_controller Fehler besteht leider immer noch.

Und ich habe schon wieder ein Problem :D:

Ich bekomme kein Ergebnis ausgegeben(aber auch keine Fehler):

calc_controller:

Code: Alles auswählen

<?php
 class calc_controller extends base_controller
   {

      function calc_controller(){
      }

      function transformContent(){

         // Formular-Objekt referenzieren
         $Form__CalcForm = &$this->__getForm('CalcForm');

         // Eingaben prüfen
         if($Form__CalcForm->get('isSent')){

            // Eingaben auslesen
            $Operand1 = &$Form__CalcForm->getFormElementByName('operand1');
            $Value1 = (int)$Operand1->getAttribute('value');
            $Operand2 = &$Form__CalcForm->getFormElementByName('operand2');
            $Value2 = (int)$Operand2->getAttribute('value');
            $Operator = &$Form__CalcForm->getFormElementByName('operation');
            $CurrentOperator = &$Operator->getSelectedOption();
            $OperaturType = $CurrentOperator->getAttribute('value');

            // Auf Division durch 0 prüfen
            if($OperaturType == 'dividieren' && intval($Value2) === 0){
               $Form__CalcForm->setPlaceHolder('operand2error','Fehler: Unerlaube Operation (Division durch Null)!');
             // end if
            }
            else{

               // Ergebnis errechnen
               $Value1 = (int)$Operand1->getAttribute('value');
               $Value2 = (int)$Operand2->getAttribute('value');

               if($OperaturType == 'plus'){
                  $Result = $Value1 + $Value2;
                // end if
               }
               elseif($OperaturType == 'minus'){
                  $Result = $Value1 - $Value2;
                // end elseif
               }
               elseif($OperaturType == 'dividieren'){
                  $Result = $Value1 / $Value2;
                // end elseif
               }
               else{
                  $Result = $Value1 * $Value2;
                // end else
               }

               // Ergebnis darstellen
               $Form__CalcForm->setPlaceHolder('operand2error','Ergebnis der Berechnung: '.$Result);

             // end else
            }

          // end if
         }

         // Formular darstellen
         $Form__CalcForm->transformOnPlace();

       // end function
      }

    // end class
   }
   ?>
calc:

Code: Alles auswählen

<@controller namespace="modules::calc::pres::documentcontroller" file="calc_controller" class="calc_controller" @>
<core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<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 und Danke
Sonic

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

Re: Minimales Modul

Beitrag von Screeze » 13.03.2011, 20:10:25

Und der base_controller Fehler besteht leider immer noch.
Welcher?

Ich bekomme kein Ergebnis ausgegeben(aber auch keine Fehler):
Ergebnis inwiefern? Zeigt er das Formular nicht an? oder ein Ergebnis einer Berechnung? über debug-ausgaben mal geprüft in welchen if-else zweigen du ankommst oder auch nicht?

Folgendes würde ich übrigens ändern:

Code: Alles auswählen

// Eingaben prüfen
         if($Form__CalcForm->get('isSent')){
in

Code: Alles auswählen

// Eingaben prüfen
if($Form__CalcForm->isSent() && $Form__CalcForm->isValid()){
Desweiteren frage ich mich grade was das "validate="true"" attribut in den textfeldern soll? :D

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 20:13:44

Hi,

der mit dem Namen es müsste base_controller heißen und vorne steht immer noch basecontroller.

Es wird kein Ergebnis angezeigt, dass Formular schon.

Der gesamte Quelltext ist 1:1 von vorne übernommen(außer Pfadangaben :D).

LG Sonic

Benutzeravatar
dave
Beiträge: 931
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Minimales Modul

Beitrag von dave » 13.03.2011, 20:20:09

Hi Sonic,

wenn du mal auf das Datum "von vorne" schaust, siehst du, dass die Posts dort schon zwei-drei Jahre alte sind. In der Zeit hat sich einiges getan am APF! ;)

Wie Screeze dir schon geraten hat:
Ändere

Code: Alles auswählen

if($Form__CalcForm->get('isSent')){ 
in

Code: Alles auswählen

if($Form__CalcForm->isSent() && $Form__CalcForm->isValid()){ 
dann solte schonmal deine Berehcnung klappen, bzw. eine Fehlermeldung auflaufen. :)

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

Re: Minimales Modul

Beitrag von Screeze » 13.03.2011, 20:21:20

der mit dem Namen es müsste base_controller heißen und vorne steht immer noch basecontroller.
Dann such halt mal in den angezeigten zeilen ob da noch was falsch ist...
Es wird kein Ergebnis angezeigt, dass Formular schon.
Dann gilt meine Aussage bezüglich debug-ausgaben von oben ;)


hast du das aktuelle paket aus
viewtopic.php?f=6&t=44&start=30#p5013
verwendet oder ein uraltes? ich denke eher ein älteres?

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 20:27:21

Hi,

ich dachte eig., dass das Tut an die Aktuelle Version angepasst wurde :)

Ich habe die neuste Version von apf .

Ich kenn mich mit apf noch überhaupt nicht aus, weil ich noch ein Verständnis Problem mit der Funktionsweisweise habe, und wollte deshalb das Tut durcharbeiten. Den base_controller Fehler wusste ich nur, weil das weiter oben schon Mal vorkam :)

Rentiert es sich dann überhaupt mit dem Tut weiterzumachen, wenn es nicht mehr uptodate ist?

LG sonic

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

Re: Minimales Modul

Beitrag von Screeze » 13.03.2011, 20:29:21

in dem zuletzt verlinkten paket ist die implementierung des moduls auf 1.13 angepasst, hat christian doch geschrieben?

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 20:37:14

Ja,

aber ich wollte es eig. Schritt für Schritt machen :). Sonst ist ja kein Lerneffekt da :D

Das

Benutzeravatar
dave
Beiträge: 931
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Minimales Modul

Beitrag von dave » 13.03.2011, 20:49:36

Wenn du etwas Schritt für Schritt machen willst, solltest du keine Codes aus dem Forum, vorallem welche, die von 2008 stammen, verwenden. Dann auf die Doku-Tutorials ausweichen oder das Wiki verwenden.

Der Einstieg ist wirklich schwer, ich bin auch noch dabei ;). Übriegns solltest du dann evtl. nicht gleich versuchen, ein eigenens Modul zu erstellen, wenn du komplett neu bist. Versuch dich doch erstmal an einer einfachen Seite :)

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

Re: Minimales Modul

Beitrag von Sonic » 13.03.2011, 21:14:12

Naja,

ich dachte das er mit den Zip auch das Tut geupdatet hat ^^

Benutzeravatar
dave
Beiträge: 931
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Minimales Modul

Beitrag von dave » 13.03.2011, 21:19:36

Um Problemen aus dem Weg zu gehen: Welches Tut nun genau? Schick mal einen Link dazu bitte :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast