26 Nachrichten unter 10 Themen von 14 Mitgliedern
[SilverStripe Roadmap][Changelog]

Extension für Page_Controller [Gelöst]

Seite: 1 2062 mal gelesen
  • Lukin
    Lukin Community Member
    120 Beiträge

    Extension für Page_Controller [Gelöst]

    Hi Leute,

    ich bastle gerade an einem Neslettermodul und möchte in diesem Zusammenhang den Page_Controller um eine Funktion erweiternn.
    Dies aber nicht hardcoden sondern über eine Extension lösen.

    Ich habe mir einige Beiträge angesehen und bin zu dieser Lösung gekommen. Allerdings bekomme ich, wenn ich nun im Template meine Funktion aufrufe folgeden Fehler:
    --Call to undefined method NewsletterExtension::hasMethod()--

    Hier der Code

    NewsletterExtension

    <?php

    class NewsletterExtension extends Extension {
       public static $allowed_actions = array (
          'AnmeldeformularNewsletter'
       );
       public function AnmeldeformularNewsletter(){
          $form = new Form (
                   $this,
                   "AnmeldeformularNewsletter",
                   new FieldSet (
                      new LiteralField('Formulardetails',_t('Newsletter.HEADLINE','<h3 style="font-size:20px">Newsletteranmeldung</h3>')),
                      new TextField('Email', _t('Newsletter.EMAIL','Ihre E-Mail-Adresse*')),
                      new CheckboxField('Abmeldung', _t('Newsletter.SIGNOFF','Vom Newsletter abmelden'))
                   ),
                   new FieldSet (
                      new FormAction('ApplyNewsletter', _t('Newsletter.APPLYNOW','Absenden')),
                      new FormAction('CancelNewsletter', _t('Newsletter.CANCEL','Abbrechen'))
                   )
                   ,new RequiredFields()
                );
                return $form->forAjaxTemplate();   
       }
    }


    _config des Newlettermodul


    <?php

    Director::addRules(100, array(
    'newsletter//$Action/$NewsletterRecipinetID' => 'Newsletter_Controller'
    ));

    Object::add_extension('Controller', 'NewsletterExtension');



    Bin für alle Tipps dankbar.
    Ich habs auch anstatt mit Extension mit DataExtension/SiteTreeExtension, was den selben Fehler produziert

    Viele Dank und Grüße
  • Lukin
    Lukin Community Member
    120 Beiträge

    Re: Extension für Page_Controller [Gelöst]


       public function AnmeldeformularNewsletter(){
          $form = new Form (
                   $this->getOwner(), // anstatt $this

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: Jerryvaf