Zend_Form özel bir form öğesi oluşturma

2 Cevap php

Ben SWFUpload tarafından (flash dosya yükleyici amaçları için) gerekli olan HTML parçacığını saklamak için Zend_Form özel bir form alanı oluşturmak için çalışılıyor.

Ben birkaç farklı öğreticiler aşağıdaki denedim ama şimdiye kadar bu i ne var, oldukça karışık alıyorum:

/application/forms/elements/SwfUpload.php
                            SwfUploadHelper.php

Bu dosyalar (iyi, SwfUpload.php kesinlikle) Bootstrap özdevinimli edilir.

SwfUpload.php:

class Custom_Form_Element_SwfUpload extends Zend_Form_Element
{
    public $helper = 'swfUpload';
}

SwfUploadHelper.php:

class Custom_Form_Helper_SwfUpload extends Zend_View_Helper_FormElement
{
    public function swfUpload()
    {
        $html = '<div id="swfupload-control">
                    <p>Upload upto 5 image files(jpg, png, gif), each having maximum size of 1MB(Use Ctrl/Shift to select multiple files)</p>
                    <input type="button" id="button" />
                    <p id="queuestatus" ></p>
                    <ol id="log"></ol>
                </div>';
        return $html;
    }
}

Ben böyle bu sınıf örneğini zaman:

class Form_ApplicationForm extends Zend_Form
{
    public function init()
    {
        $custom = new Custom_Form_Element_SwfUpload('swfupload');
        // etc etc

Ben bu hatayı alıyorum:

Message: Plugin by name 'SwfUpload' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:/home/mysite/application/views/helpers/

O benim yardımcı "home/mysite/application/views/helpers/" olması bekliyor bu durumda? Ben dosya "SwfUpload.php" ile orada aynı yardımcıyı oluşturma denedim ama hata kalır. Bu tamamen bir dosya / yol sorunu veya başka bir şey i emin değil.

teşekkürler.

2 Cevap

Bu, i ile sona erdi nedir bu başkası yardımcı olur umarım:

in /application/forms/elements/SwfUpload.php

class Custom_Form_Element_SwfUpload extends Zend_Form_Element
{
    public $helper = 'swfUpload'; # maps to method name in SwfUpload helper
    public function init()
    {
        $view = $this->getView();
        $view->addHelperPath(APPLICATION_PATH.'/views/helpers/', 'Custom_Form_Helper');
    }
}

in /application/views/helpers/SwfUpload.php

class Custom_Form_Helper_SwfUpload extends Zend_View_Helper_FormElement
{
    public function init(){} 

    public function swfUpload()
    {
        $html = '<div id="swfupload-control">
                    <p>Upload upto 5 image files(jpg, png, gif), each having maximum size of 1MB(Use Ctrl/Shift to select multiple files)</p>
                    <input type="button" id="button" />
                    <p id="queuestatus" ></p>
                    <ol id="log"></ol>
                </div>';
        return $html;
    }
}

API Docs for Zend_Form_Element

void __construct (string|array|Zend_Config $spec, [ $options = null])

    * string|array|Zend_Config $spec
    * $options

$spec may be:

    * string: name of element
    * array: options with which to configure element
    * Zend_Config: Zend_Config with options for configuring element

    * throws: Zend_Form_Exception if no element name after initialization
    * access: public

O atar bakın? Denemek

$custom = new Custom_Form_Element_SwfUpload('upload');