рдирдорд╕реНрддреЗ рд▓рдВрдмреЗ рдкрд░рд┐рдЪрдп рдХреЗ рдмрд┐рдирд╛, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рддрддреНрд╡ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ:
рдореИрдВрдиреЗ рдЗрд╕реЗ RadioImage рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫреЛрдЯреЗ рдЖрдЗрдХрди рдЪреБрдирдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ (рдпрд╣ рддрд╕реНрд╡реАрд░ рдореЗрд░реА рдирд╣реАрдВ рд╣реИ):
(рдФрд░ рддрдм, рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдбреЗрдХреЛрд░реЗрдЯрд░ / рддрддреНрд╡ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджрд┐рдпрд╛)ред
рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░, рдЖрдЗрдХрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдмрдбрд╝реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдЦрдЯрдЦрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рдХрд░ рд▓рд┐рдпрд╛ рдерд╛ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдврд╝ рдЧрдпрд╛ рдерд╛:

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ рдлрд┐рд░ рд╕реЗ MultiImageCheckbox рдХрд╛ Zend_Form рддрддреНрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреГрд╢реНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реАрдзреЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ html рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдпрд╣ рджреВрд╕рд░реА рдмрд╛рд░ рдХрд╛рдо рдореЗрдВ рдЖрдпрд╛, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдорд╛рдирд╡реАрдп рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рдмрд╛рд░ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдЖрдЗрдХрди рдХрд╛ рдЪрдпрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рддрддреНрд╡ рдПрдХрд╛рдзрд┐рдХ рдЪрдпрди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ (рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдФрд░ рддрддреНрд╡ рдмрдирд╛рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреЗрдХрдЗрдореЗрдЬ)ред
рдПрдХ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - jQuery, рдореБрдЭреЗ ZendX_JQuery рдЬреИрд╕реЗ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк Zend_VIew_Helper_HeadScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ js рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЗрдП рдЪрд▓рддреЗ рд╣реИрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдбред рдореИрдВ рд╡рд╛рдкрд╕ рд╕рд╛рдордиреЗ рдЖрдирд╛ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ - рдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде:
рдЖрд╡реЗрджрди / рдкреНрд░рдкрддреНрд░ / ProductStatus.php<?php class Form_ProductStatus extends Zend_Form { public function init() { $this->setMethod('post'); $this->setName('statusform'); $this->setAttrib('enctype', 'multipart/form-data'); $this->addElement('text', 'prodstatus_name', array( 'required' => true, 'label' => 'Status Name', 'filters' => array('StringTrim') ));
рд╢рд╛рдпрдж рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрд╡ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИ:
$img = new App_Form_Element_SelectImage('prodstatus_icon', array( 'label' => 'Select Icon', 'width' => '48' )); $icons = App_Tool::scandir(PUBLIC_PATH.'/modules/products/icons', 'png'); foreach ($icons as $icon) { $img->addMultiOption($icon, $this->getView()->baseUrl().'/modules/products/icons/'.$icon); } $this->addElement($img);
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рддрддреНрд╡ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рдмрд╣реБрдд рд╣реА рдЪреАрдЬрд╝ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдРрдк / рдлреЙрд░реНрдо / рдПрд▓рд┐рдореЗрдВрдЯ / RadioImage.php <?php require_once 'Zend/Form/Element/Multi.php'; class App_Form_Element_RadioImage extends Zend_Form_Element_Multi { public $helper = 'FormRadioImage'; }
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Zend_Form рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдХреЗ рдЕрдиреБрд░реВрдк, рд╣рдорд╛рд░рд╛ рддрддреНрд╡ рдХреЗрд╡рд▓ FormRadioImage рд╕рд╣рд╛рдпрдХ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ:
App / рджреЗрдЦреЗрдВ / рд╕рд╣рд╛рдпрдХ / FormRadioImage.php <?php require_once 'Zend/View/Helper/FormElement.php'; class App_View_Helper_FormRadioImage extends Zend_View_Helper_FormElement { public function formRadioImage($name, $value = null, $attribs = null, $options = null) { $info = $this->_getInfo($name, $value, $attribs, $options); extract($info);
рд╡рд╣ рд╕рдм рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреВрд▓ рдЧрдпрд╛ рд╣реИред
рдлрд┐рд░ рд╕реЗ рдЪрд┐рддреНрд░, рддрд╛рдХрд┐ рд╕реНрдХреНрд░реЙрд▓ рди рд╣реЛ:
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред