/**
  * Diese Methode returned. Die eigentliche (obere) funktion wurde aus
  * rückwärtskompatibilität belassen. Diese Methode wird zB im
  * getTemplateVars der MultiCheckbox verwendet.
  */
 public function returnFormField($vars)
 {
     extract($vars);
     $ret = '';
     if (isset($mask)) {
         $ret .= '{' . $mask . '}';
     }
     if (isset($preHtml)) {
         $ret .= $preHtml;
     }
     if (isset($html)) {
         $ret .= $html;
     } elseif (isset($items)) {
         foreach ($items as $i) {
             $ret .= $this->returnFormField($i);
         }
     } elseif (isset($component)) {
         $view = new Kwf_Component_Renderer();
         $ret .= $view->renderComponent($component);
     }
     if (isset($postHtml)) {
         $ret .= $postHtml;
     }
     if (isset($mask)) {
         $ret .= '{/' . $mask . '}';
     }
     return $ret;
 }
 public function replaceOutput($renderer)
 {
     if ($this->isLoggedIn()) {
         return false;
     }
     $template = Kwc_Admin::getComponentFile($this, 'Component', 'tpl');
     $renderer = new Kwf_Component_Renderer();
     $view = new Kwf_Component_View($renderer);
     $view->assign($this->getTemplateVars());
     return $renderer->render($view->render($template));
 }
 public function processOutput($output, $renderer)
 {
     // Da das Plugin nach dem Rendern ausgeführt wird, muss schon der
     // fertige Content hier reinkommen
     if ($output != 'root plugin(plugin(c1_child c1_childchild))') {
         return 'not ok from plugin. output was: ' . $output;
     } else {
         $template = Kwc_Admin::getComponentFile($this, 'Component', 'tpl');
         $renderer = new Kwf_Component_Renderer();
         $view = new Kwf_Component_View($renderer);
         $view->child = Kwf_Component_Data_Root::getInstance()->getComponentById($this->_componentId)->getChildComponent('-pluginChild');
         return $renderer->render($view->render($template));
     }
 }
示例#4
0
 public function testHasContent()
 {
     $this->_init('Kwf_Component_Output_HasContent_Component');
     $output = new Kwf_Component_Renderer();
     $value = $output->renderMaster(Kwf_Component_Data_Root::getInstance());
     $this->assertRegExp('#root #', $value);
 }
 protected function _render()
 {
     $view = new Kwf_Component_Renderer();
     return $view->renderComponent($this->_data);
 }
示例#6
0
 /**
  * Render the component
  *
  * Usually only used internally or for debugging
  *
  * @param bool if view cache should be used, if null config setting will be used
  * @param bool if master should be rendered
  * @return string
  */
 public function render($enableCache = null, $renderMaster = false, &$hasDynamicParts = false)
 {
     $output = new Kwf_Component_Renderer();
     if ($enableCache !== null) {
         $output->setEnableCache($enableCache);
     }
     if ($renderMaster) {
         $hasDynamicParts = true;
         return $output->renderMaster($this);
     } else {
         return $output->renderComponent($this, $hasDynamicParts);
     }
 }
 public function jsonSaveAction()
 {
     $postData = $this->getRequest()->getParams();
     if (!isset($postData['componentId'])) {
         throw new Kwf_Exception_Client('component not found');
     }
     $component = Kwf_Component_Data_Root::getInstance()->getComponentById((string) $postData['componentId'], array('ignoreVisible' => true));
     if (!$component) {
         throw new Kwf_Exception_Client('component not found');
     }
     $component = $component->getComponent();
     $postData['doNotRelocate'] = true;
     $component->preProcessInput($postData);
     $component->processInput($postData);
     $errors = $component->getErrors();
     $this->view->errorPlaceholder = $component->getPlaceholder('error');
     $this->view->errorFields = array();
     $this->view->errorMessages = array();
     foreach ($errors as $error) {
         if (isset($error['message'])) {
             $error['messages'] = array($error['message']);
         }
         $msgs = array();
         foreach ($error['messages'] as $msg) {
             $msgs[] = htmlspecialchars($msg);
         }
         if (isset($error['field'])) {
             //if message is associated with a specific field show it there
             $this->view->errorFields[$error['field']->getFieldName()] = implode('<br />', $msgs);
         } else {
             //else just above the form
             $this->view->errorMessages = array_merge($this->view->errorMessages, $msgs);
         }
     }
     $this->view->successContent = null;
     if (!$this->view->errorMessages && !$this->view->errorFields) {
         $success = $component->getData()->getComponent()->getSuccessComponent();
         if ($success instanceof Kwf_Component_Data) {
             if ($success->isPage) {
                 $this->view->successUrl = $success->url;
             } else {
                 $process = $success->getRecursiveChildComponents(array('page' => false, 'flags' => array('processInput' => true)));
                 if (Kwf_Component_Abstract::getFlag($success->componentClass, 'processInput')) {
                     $process[] = $success;
                 }
                 $postData = array();
                 //empty because there can't be anything as we didn't display the success yet
                 foreach ($process as $i) {
                     if (method_exists($i->getComponent(), 'preProcessInput')) {
                         $i->getComponent()->preProcessInput($postData);
                     }
                 }
                 foreach ($process as $i) {
                     if (method_exists($i->getComponent(), 'processInput')) {
                         $i->getComponent()->processInput($postData);
                     }
                 }
                 if (class_exists('Kwf_Events_ModelObserver', false)) {
                     //Nur wenn klasse jemals geladen wurde kann auch was zu processen drin sein
                     Kwf_Events_ModelObserver::getInstance()->process(false);
                 }
                 $renderer = new Kwf_Component_Renderer();
                 $this->view->successContent = $renderer->renderComponent($success);
             }
         } else {
             if (is_string($success)) {
                 $this->view->successUrl = $success;
             }
         }
     }
     $this->view->errorFields = (object) $this->view->errorFields;
 }