The form class in APPLICATION_PATH\forms\Login.php

class Form_Login extends Zend_Form
{
    public function init() {
        $this->setAction('/login')
             ->setMethod('post')
             ->setName('formlogin')
             ->setAttrib('id', 'formlogin');

        // Create and configure username element
        $username = $this->createElement('text', 'username');
        $username->setLabel('User')
                 ->addValidator('alnum')
                 ->addValidator('stringLength', false, array(3, 15))
                 ->setRequired(true)
                 ->setAttrib("size", 20)
                 ->setAttrib('maxLength', 20);

        // Create and configure password element
        $password = $this->createElement('password', 'password');
        $password->setLabel('Password')
                 ->addValidator('StringLength', false, array(3, 15))
                 ->setAttrib("size", 20)
                 ->setAttrib('maxLength', 20)
                 ->setRequired(true);

        // Create and configure submit button element
        $submit = $this->createElement('submit', 'submit');
        $submit->setRequired(false)
               ->setIgnore(true)
               ->setLabel('Login');

        // Add elements to form
        $this->addElement($username)
             ->addElement($password)
             ->addElement($submit);

        return $this;
    }
}

Thanks for the support
holo


2009/4/27 Matthew Weier O'Phinney <[email protected]>

> -- holografix . <[email protected]> wrote
> (on Monday, 27 April 2009, 04:18 PM +0100):
> > problem
> > I forgot to tell that this dev box is Win Vista 32
> >
> > In bootstrap.php:
> >
> > $module = new Zend_Application_Module_Autoloader(array(
> >        'namespace' => '',
> >        'basePath'  => APPLICATION_PATH . '/forms'
> >  ));
> > Warning: include(C:\wwwroot\devapp\application/forms/forms//Login.php) [
> > function.include]: failed to open stream: No such file or directory
> >
> > I change 'basePath' from APPLICATION_PATH . '/forms' to APPLICATION_PATH
> >
> > $module = new Zend_Application_Module_Autoloader(array(
> >        'namespace' => '',
> >        'basePath'  => APPLICATION_PATH
> >  ));
> > Renamed APPLICATION_PATH\forms\Form_Login.php to Login.php and removed
> the
> > include of this file in controller action.
>
> My bad -- I jumped the gun. Yes, basePath => APPLICATION_PATH is what I
> meant to write.
>
> > The file is loaded but the output is the same:
> >
> > <form action="/login"
> >       method="post"
> >       id="formlogin"
> >       name="loginform">
> >
> > <fieldset>
> >     <legend>Login</legend>
> >
> >     <form id="username"></form>
> >     <form id="password"></form>
> >     <form id="submit"></form>
> > </fieldset>
> > </form>
>
> Can you provide the form class itself so I can take a look at it? Right
> now, I have no idea what's wrong, nor how it could be generated.
>
> Thanks!
>
> > Cheers
> > holo
> > 2009/4/27 Matthew Weier O'Phinney <[email protected]>
> >
> >     -- holografix . <[email protected]> wrote
> >     (on Monday, 27 April 2009, 02:34 PM +0100):
> >     > I have an application developed with ZF 1.7 and it works fine up to
> ZF
> >     1.7.8.
> >     > After update developpment box to ZF to latest trunk version,
> >     > starting to get notices about Zend_Loader::registerAutoload(),
> saying
> >     it's
> >     > deprecated and will be removed in 2.0.0.
> >     > This application follows ZF directory structure and it registers a
> front
> >     > controller plugin where resources are initialized.
> >     >
> >     > New code in bootstrap.php:
> >     >
> >     > require_once 'Zend/Loader/Autoloader.php';
> >     >
> >     > $loader =
> Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader
> >     (true);
> >     > $loader->registerNamespace('ZendExt_');
> >     >
> >     > $front = Zend_Controller_Front::getInstance();
> >     > $front->registerPlugin(new
> ZendExt_Plugin_Initialize(APPLICATION_ENV));
> >     >
> >     > Resources are initialized but have some problems with loading a
> form.
> >     >
> >     > When opening the application, if one is not logged in, it redirects
> to
> >     index/
> >     > login (Form_Login.php)
> >     > http://application => http://application/login
> >     >
> >     > Forms are in a dir called forms under application dir.
> >     > In login action I have this code
> >     >
> >     > public function loginAction()
> >     > {
> >     >     include APPLICATION_PATH . "/forms/Form_Login.php";
> >     >
> >     >     $loginForm = new Form_Login();
> >     >
> >     >     ... validation and authentication
> >     > }
> >     >
> >     > The output is wrong
> >     >
> >     > <form action="/login" method="post" id="formlogin"
> name="formlogin">
> >     > <fieldset>
> >     >     <legend>Login</legend>
> >     >     <form id="username"></form>
> >     >     <form id="password"></form>
> >     >     <form id="submit"></form>
> >     > </fieldset>
> >     > </form>
> >     >
> >     >
> >     > With Zend_Loader there are no problems.
> >     > How can I fix the problem ?
> >
> >     Use a module autoloader:
> >
> >        $module = new Zend_Application_Module_Autoloader(array(
> >            'namespace' => '',
> >            'basePath'  => APPLICATION_PATH . '/forms',
> >        ));
> >
> >     Then make sure your form is in the file:
> >
> >        APPLICATION_PATH/
> >            forms/
> >                Login.php
> >
> >     and contains the clas 'Form_Login'.
> >
> >     You can do that anywhere -- your bootstrapping code is probably the
> best
> >     place, however. Once you have, you will not need to do an
> >     include/include_once to get your form -- just 'new Form_Login()'.
> >
> >     --
> >     Matthew Weier O'Phinney
> >     Project Lead            | [email protected]
> >     Zend Framework          | http://framework.zend.com/
> >
> >
>
> --
>  Matthew Weier O'Phinney
> Project Lead            | [email protected]
> Zend Framework          | http://framework.zend.com/
>

Reply via email to