|
|
@@ -31,6 +31,7 @@ require_once 'Zend/Form/Decorator/Abstract.php';
|
|
|
* - separator: separator to use between view script content and provided content (defaults to PHP_EOL)
|
|
|
* - placement: whether to append or prepend view script content to provided content (defaults to prepend)
|
|
|
* - viewScript: view script to use
|
|
|
+ * - viewModule: module that view script is in (optional)
|
|
|
*
|
|
|
* The view script is rendered as a partial; the element being decorated is
|
|
|
* passed in as the 'element' variable:
|
|
|
@@ -39,7 +40,7 @@ require_once 'Zend/Form/Decorator/Abstract.php';
|
|
|
* echo $this->element->getLabel();
|
|
|
* </code>
|
|
|
*
|
|
|
- * Any options other than separator, placement, and viewScript are passed to
|
|
|
+ * Any options other than separator, placement, viewScript, and viewModule are passed to
|
|
|
* the partial as local variables.
|
|
|
*
|
|
|
* @category Zend
|
|
|
@@ -64,6 +65,12 @@ class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract
|
|
|
protected $_viewScript;
|
|
|
|
|
|
/**
|
|
|
+ * View script module
|
|
|
+ * @var string
|
|
|
+ */
|
|
|
+ protected $_viewModule;
|
|
|
+
|
|
|
+ /**
|
|
|
* Set view script
|
|
|
*
|
|
|
* @param string $script
|
|
|
@@ -100,6 +107,42 @@ class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Set view script module
|
|
|
+ *
|
|
|
+ * @param string $module
|
|
|
+ * @return Zend_Form_Decorator_ViewScript
|
|
|
+ */
|
|
|
+ public function setViewModule($viewModule)
|
|
|
+ {
|
|
|
+ $this->_viewModule = (string) $viewModule;
|
|
|
+ return $this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get view script module
|
|
|
+ *
|
|
|
+ * @return string|null
|
|
|
+ */
|
|
|
+ public function getViewModule()
|
|
|
+ {
|
|
|
+ if (null === $this->_viewModule) {
|
|
|
+ if (null !== ($element = $this->getElement())) {
|
|
|
+ if (null !== ($viewModule = $element->getAttrib('viewModule'))) {
|
|
|
+ $this->setViewModule($viewModule);
|
|
|
+ return $viewModule;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (null !== ($viewModule = $this->getOption('viewModule'))) {
|
|
|
+ $this->setViewModule($viewModule)
|
|
|
+ ->removeOption('viewModule');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->_viewModule;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* Render a view script
|
|
|
*
|
|
|
* @param string $content
|
|
|
@@ -127,7 +170,12 @@ class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract
|
|
|
$vars['content'] = $content;
|
|
|
$vars['decorator'] = $this;
|
|
|
|
|
|
- $renderedContent = $view->partial($viewScript, $vars);
|
|
|
+ $viewModule = $this->getViewModule();
|
|
|
+ if (empty($viewModule)) {
|
|
|
+ $renderedContent = $view->partial($viewScript, $vars);
|
|
|
+ } else {
|
|
|
+ $renderedContent = $view->partial($viewScript, $viewModule, $vars);
|
|
|
+ }
|
|
|
|
|
|
// Get placement again to see if it has changed
|
|
|
$placement = $this->getPlacement();
|