Example #1
0
 public function fetch(CM_Params $renderParams, CM_Frontend_ViewResponse &$viewResponse = null)
 {
     $field = $this->_getFormField();
     $frontend = $this->getRender()->getGlobalResponse();
     $viewResponse = new CM_Frontend_ViewResponse($field);
     $viewResponse->setTemplateName('default');
     $field->prepare($renderParams, $this->getRender()->getEnvironment(), $viewResponse);
     $viewResponse->set('field', $field);
     $viewResponse->set('inputId', $viewResponse->getAutoIdTagged('input'));
     $viewResponse->set('name', $field->getName());
     $viewResponse->set('value', $field->getValue());
     $viewResponse->set('options', $field->getOptions());
     $viewResponse->getJs()->setProperty('fieldOptions', $field->getOptions());
     $frontend->treeExpand($viewResponse);
     $html = '<div class="' . implode(' ', $viewResponse->getCssClasses()) . '" id="' . $viewResponse->getAutoId() . '">';
     $html .= trim($this->getRender()->fetchViewResponse($viewResponse));
     if (!$field instanceof CM_FormField_Hidden) {
         $html .= '<span class="messages"></span>';
     }
     $html .= '</div>';
     $formViewResponse = $frontend->getClosestViewResponse('CM_Form_Abstract');
     if ($formViewResponse) {
         $formViewResponse->getJs()->append("this.registerField(cm.views['{$viewResponse->getAutoId()}']);");
     }
     $frontend->treeCollapse();
     return $html;
 }
Example #2
0
 public function fetch(CM_Params $renderParams, CM_Frontend_ViewResponse &$viewResponse = null)
 {
     $field = $this->_getFormField();
     $frontend = $this->getRender()->getGlobalResponse();
     $viewResponse = new CM_Frontend_ViewResponse($field);
     $viewResponse->setTemplateName('default');
     $field->prepare($renderParams, $this->getRender()->getEnvironment(), $viewResponse);
     $viewResponse->set('field', $field);
     $viewResponse->set('inputId', $viewResponse->getAutoIdTagged('input'));
     $viewResponse->set('name', $field->getName());
     $viewResponse->set('value', $field->getValue());
     $viewResponse->set('options', $field->getOptions());
     $viewResponse->getJs()->setProperty('fieldOptions', $field->getOptions());
     $frontend->treeExpand($viewResponse);
     $content = trim($this->getRender()->fetchViewResponse($viewResponse));
     if (!$field instanceof CM_FormField_Hidden) {
         $content .= '<span class="messages"></span>';
     }
     $tagAttributes = ['id' => $viewResponse->getAutoId(), 'class' => join(' ', $viewResponse->getCssClasses())];
     $tagRenderer = new CM_Frontend_HtmlTagRenderer();
     $html = $tagRenderer->renderTag('div', $content, $tagAttributes, $viewResponse->getDataAttributes());
     $formViewResponse = $frontend->getClosestViewResponse('CM_Form_Abstract');
     if ($formViewResponse) {
         $formViewResponse->getJs()->append("this.registerField(cm.views['{$viewResponse->getAutoId()}']);");
     }
     $frontend->treeCollapse();
     return $html;
 }
Example #3
0
 /**
  * @return CM_Frontend_ViewResponse
  */
 protected function _getViewResponse()
 {
     if (null === $this->_viewResponse) {
         $component = $this->_getComponent();
         $environment = $this->getRender()->getEnvironment();
         $viewResponse = new CM_Frontend_ViewResponse($component);
         $templateName = $component->getParams()->getString('template', 'default');
         $viewResponse->setTemplateName($templateName);
         $component->prepare($environment, $viewResponse);
         $viewResponse->set('viewObj', $component);
         $this->_viewResponse = $viewResponse;
     }
     return $this->_viewResponse;
 }
Example #4
0
 public function testGetCssClasses()
 {
     $view = $this->getMock('CM_View_Abstract', ['getClassHierarchy']);
     $classNames = ['foo', 'bar'];
     $view->expects($this->any())->method('getClassHierarchy')->will($this->returnValue($classNames));
     /** @var CM_View_Abstract $view */
     $viewResponse = new CM_Frontend_ViewResponse($view);
     $this->assertSame($classNames, $viewResponse->getCssClasses());
     $viewResponse->addCssClass('jar');
     $classNames[] = 'jar';
     $this->assertSame($classNames, $viewResponse->getCssClasses());
     $viewResponse->setTemplateName('zoo');
     $classNames[] = 'zoo';
     $this->assertSame($classNames, $viewResponse->getCssClasses());
     $viewResponse->addCssClass('zoo');
     $this->assertSame($classNames, $viewResponse->getCssClasses());
 }
Example #5
0
 /**
  * @return string
  */
 public function fetch()
 {
     $page = $this->_getPage();
     $layout = $this->_getLayout();
     $page->checkAccessible($this->getRender()->getEnvironment());
     $frontend = $this->getRender()->getGlobalResponse();
     $viewResponse = new CM_Frontend_ViewResponse($layout);
     $viewResponse->setTemplateName('default');
     $layout->prepare($this->getRender()->getEnvironment(), $viewResponse);
     $viewResponse->set('viewResponse', $viewResponse);
     $viewResponse->set('page', $page);
     $viewResponse->set('pageTitle', $this->fetchTitle());
     $viewResponse->set('pageDescription', $this->fetchDescription());
     $viewResponse->set('pageKeywords', $this->fetchKeywords());
     $viewResponse->set('renderAdapter', $this);
     $environmentDefault = new CM_Frontend_Environment($this->getRender()->getEnvironment()->getSite());
     $renderDefault = new CM_Frontend_Render($environmentDefault);
     $viewResponse->set('renderDefault', $renderDefault);
     $viewResponse->set('languageList', new CM_Paging_Language_Enabled());
     $serviceManager = CM_Service_Manager::getInstance();
     $options = array();
     $options['deployVersion'] = CM_App::getInstance()->getDeployVersion();
     $options['renderStamp'] = floor(microtime(true) * 1000);
     $options['site'] = CM_Params::encode($this->getRender()->getSite());
     $options['url'] = $this->getRender()->getSite()->getUrl();
     $options['urlCdn'] = $this->getRender()->getSite()->getUrlCdn();
     $options['urlUserContentList'] = $serviceManager->getUserContent()->getUrlList();
     $options['language'] = $this->getRender()->getLanguage();
     $options['debug'] = CM_Bootloader::getInstance()->isDebug();
     $options['stream'] = $serviceManager->getStreamMessage()->getClientOptions();
     if ($viewer = $this->getRender()->getViewer()) {
         $options['stream']['channel']['key'] = CM_Model_StreamChannel_Message_User::getKeyByUser($viewer);
         $options['stream']['channel']['type'] = CM_Model_StreamChannel_Message_User::getTypeStatic();
     }
     $frontend->getOnloadHeaderJs()->append('cm.options = ' . CM_Params::encode($options, true));
     if ($viewer = $this->getRender()->getViewer()) {
         $frontend->getOnloadHeaderJs()->append('cm.viewer = ' . CM_Params::encode($viewer, true));
     }
     $frontend->treeExpand($viewResponse);
     $frontend->getOnloadReadyJs()->append('cm.getLayout()._ready();');
     $frontend->getOnloadHeaderJs()->append('cm.ready();');
     $html = $this->getRender()->fetchViewResponse($viewResponse);
     $frontend->treeCollapse();
     return $html;
 }