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; }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $text = $this->getParams()->has('text') ? $renderParams->getString('text') : null; $skipDropZone = $renderParams->getBoolean('skipDropZone', false); $viewResponse->set('text', $text); $viewResponse->set('skipDropZone', $skipDropZone); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('class', $renderParams->has('class') ? $renderParams->getString('class') : null); $viewResponse->set('optionList', $this->_getOptionList()); $viewResponse->set('translate', $renderParams->getBoolean('translate', $this->_translate) || $renderParams->has('translatePrefix')); $viewResponse->set('translatePrefix', $renderParams->has('translatePrefix') ? $renderParams->getString('translatePrefix') : null); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $level = $this->_params->has('level') ? $this->_params->getInt('level') : null; if (null !== $level && !CM_Log_Logger::hasLevel($level)) { throw new CM_Exception_InvalidParam('Invalid `level` param'); } $levelList = $level ? [$level] : null; $type = $this->_params->has('type') ? $this->_params->getInt('type') : null; if (null !== $type && !CM_Paging_Log::isValidType($type)) { throw new CM_Exception_InvalidParam('Invalid `type` param'); } $aggregate = $this->_params->has('aggregate') ? $this->_params->getInt('aggregate') : null; $urlPage = $this->_params->has('urlPage') ? $this->_params->getString('urlPage') : null; $urlParams = $this->_params->has('urlParams') ? $this->_params->getArray('urlParams') : null; $aggregationPeriod = $aggregate; if (0 === $aggregationPeriod) { $deployStamp = CM_App::getInstance()->getDeployVersion(); $aggregationPeriod = time() - $deployStamp; } $logList = new CM_Paging_Log($levelList, $type, (bool) $aggregationPeriod, $aggregationPeriod); $logList->setPage($this->_params->getPage(), $this->_params->getInt('count', 50)); $viewResponse->setData(['level' => $level, 'type' => $type, 'logList' => $logList, 'aggregate' => $aggregate, 'aggregationPeriod' => $aggregationPeriod, 'aggregationPeriodList' => array(3600, 86400, 7 * 86400, 31 * 86400), 'urlPage' => $urlPage, 'urlParams' => $urlParams, 'levelMap' => array_flip(CM_Log_Logger::getLevels())]); $viewResponse->getJs()->setProperty('level', $level); $viewResponse->getJs()->setProperty('type', $type); }
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; }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $foo = $this->_params->getString('foo', 'value1'); $colorStyles = $this->_getColorStyles(); $icons = $this->_getIcons(); $viewResponse->setData(array('now' => time(), 'foo' => $foo, 'colorStyles' => $colorStyles, 'icons' => $icons)); $viewResponse->getJs()->setProperty('uname', 'uname'); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { /** @var CM_Geometry_Vector2 $value */ $value = $this->getValue(); $x = $value ? $value->getX() : null; $y = $value ? $value->getY() : null; $viewResponse->set('x', $x); $viewResponse->set('y', $y); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { /** @var CM_Geo_Point $value */ $value = $this->getValue(); $latitude = $value ? $value->getLatitude() : null; $longitude = $value ? $value->getLongitude() : null; $viewResponse->set('latitude', $latitude); $viewResponse->set('longitude', $longitude); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $debug = CM_Service_Manager::getInstance()->getDebug(); $stats = $debug->getStats(); ksort($stats); $viewResponse->set('stats', $stats); $cacheNames = array('CM_Cache_Storage_Memcache', 'CM_Cache_Storage_Apc', 'CM_Cache_Storage_File'); $viewResponse->getJs()->setProperty('cacheNames', $cacheNames); $viewResponse->set('cacheNames', $cacheNames); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $email = $this->_params->get('email'); if (!$email instanceof CM_Mail_Mailable) { throw new CM_Exception_InvalidParam('Invalid `email` param'); } list($subject, $html, $plainText) = $email->render(); $viewResponse->set('plainText', $plainText); $viewResponse->getJs()->setProperty('html', $html); }
/** * @param CM_Frontend_Render $render * @param string|null $urlPage * @param array $urlParams * @param CM_Frontend_ViewResponse $component * @param int $page * @param string[] $linkParams * @param Smarty_Internal_Template $template * @return string */ function _smarty_function_paging_link(CM_Frontend_Render $render, $urlPage, array $urlParams, CM_Frontend_ViewResponse $component, $page, array $linkParams, Smarty_Internal_Template $template) { if (empty($urlPage)) { $javascript = 'cm.views["' . $component->getAutoId() . '"].reload(' . json_encode(array('page' => $page)) . ')'; $linkParams['onclick'] = $javascript . ';return false;'; } else { $linkParams['href'] = $render->getUrlPage($urlPage, array_merge($urlParams, array('page' => $page))); } return smarty_function_link($linkParams, $template); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $text = $renderParams->has('text') ? $renderParams->getString('text') : null; $buttonTheme = $this->_params->getString('buttonTheme', 'default'); $skipPreviews = $this->_params->getBoolean('skipPreviews', false); $viewResponse->set('text', $text); $viewResponse->set('buttonTheme', $buttonTheme); if ($skipPreviews) { $viewResponse->setDataAttributes(['skip-previews' => '']); } }
/** * @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; }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $type = $this->_params->getInt('type'); $aggregate = $this->_params->has('aggregate') ? $this->_params->getInt('aggregate') : null; $urlPage = $this->_params->has('urlPage') ? $this->_params->getString('urlPage') : null; $urlParams = $this->_params->has('urlParams') ? $this->_params->getArray('urlParams') : null; $aggregationPeriod = $aggregate; if (0 === $aggregationPeriod) { $deployStamp = CM_App::getInstance()->getDeployVersion(); $aggregationPeriod = time() - $deployStamp; } $logList = CM_Paging_Log_Abstract::factory($type, (bool) $aggregationPeriod, $aggregationPeriod); $logList->setPage($this->_params->getPage(), $this->_params->getInt('count', 50)); $viewResponse->setData(['type' => $type, 'logList' => $logList, 'aggregate' => $aggregate, 'aggregationPeriod' => $aggregationPeriod, 'aggregationPeriodList' => array(3600, 86400, 7 * 86400, 31 * 86400), 'urlPage' => $urlPage, 'urlParams' => $urlParams]); $viewResponse->getJs()->setProperty('type', $type); }
/** * @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; }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('autocorrect', $renderParams->has('autocorrect') ? $renderParams->getString('autocorrect') : null); $viewResponse->set('autocapitalize', $renderParams->has('autocapitalize') ? $renderParams->getString('autocapitalize') : null); $viewResponse->set('autocomplete', $renderParams->has('autocomplete') ? $renderParams->getString('autocomplete') : null); $viewResponse->set('tabindex', $renderParams->has('tabindex') ? $renderParams->getInt('tabindex') : null); $viewResponse->set('class', $renderParams->has('class') ? $renderParams->getString('class') : null); $viewResponse->set('placeholder', $renderParams->has('placeholder') ? $renderParams->getString('placeholder') : null); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $xmode = $this->_params->has('xmode') ? $this->_params->get('xmode') : 'time'; $stack = $this->_params->has('stack') ? $this->_params->get('stack') : false; $legend = $this->_params->has('legend') ? $this->_params->get('legend') : true; $series = $this->_params->get('series'); $numPoints = 0; $valueMin = 0; foreach ($series as &$serie) { $serie['label'] = (string) $serie['label']; foreach ($serie['data'] as $key => &$value) { $value = (double) $value; $valueMin = min($valueMin, $value); } $numPoints = max($numPoints, count($serie['data'])); } $flotOptions = array(); $flotOptions['series'] = array(); $flotOptions['xaxis'] = array(); $flotOptions['yaxis'] = array('min' => $valueMin); $flotOptions['points'] = array('show' => true, 'radius' => 1.5); $flotOptions['series']['lines'] = array('show' => true); $flotOptions['legend'] = array('position' => 'nw', 'show' => $legend); if ($stack) { $flotOptions['series']['lines']['fill'] = 0.7; $flotOptions['series']['stack'] = 'stack'; } if ($xmode == 'time') { $flotOptions['xaxis']['mode'] = 'time'; } if ($numPoints > 0 && 700 / $numPoints < 10) { $flotOptions['points']['show'] = false; } $viewResponse->getJs()->setProperty('series', $series); $viewResponse->getJs()->setProperty('flotOptions', $flotOptions); }
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()); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('class', $renderParams->has('class') ? $renderParams->getString('class') : null); $years = range($this->_yearFirst, $this->_yearLast); $months = range(1, 12); $days = range(1, 31); $viewResponse->set('years', array_combine($years, $years)); $viewResponse->set('months', array_combine($months, $months)); $viewResponse->set('days', array_combine($days, $days)); /** @var DateTime|null $value */ $value = $this->getValue(); $year = $month = $day = null; if (null !== $value) { $value->setTimezone($this->_getTimeZone($environment)); $year = $value->format('Y'); $month = $value->format('n'); $day = $value->format('j'); } $viewResponse->set('yy', $year); $viewResponse->set('mm', $month); $viewResponse->set('dd', $day); $viewResponse->set('placeholderStart', $renderParams->has('placeholderStart') ? $renderParams->getString('placeholderStart') : null); $viewResponse->set('placeholderEnd', $renderParams->has('placeholderEnd') ? $renderParams->getString('placeholderEnd') : null); }
public function testAddGetSetDataAttributes() { /** @var CM_View_Abstract $viewMock */ $viewMock = $this->getMockBuilder('CM_View_Abstract')->getMock(); $viewResponse = new CM_Frontend_ViewResponse($viewMock); $this->assertSame([], $viewResponse->getDataAttributes()); $viewResponse->setDataAttributes(['foo' => 'bar', 'baz' => 'quux']); $this->assertSame(['foo' => 'bar', 'baz' => 'quux'], $viewResponse->getDataAttributes()); $viewResponse->addDataAttribute('fooBar', 'barFoo'); $this->assertSame(['foo' => 'bar', 'baz' => 'quux', 'fooBar' => 'barFoo'], $viewResponse->getDataAttributes()); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $display = $renderParams->get('display', self::DISPLAY_CHECKBOX); if (!in_array($display, array(self::DISPLAY_CHECKBOX, self::DISPLAY_SWITCH))) { throw new CM_Exception_InvalidParam('Display needs to be either `checkbox` or `switch`'); } $viewResponse->set('display', $display); $viewResponse->set('tabindex', $renderParams->has('tabindex') ? $renderParams->getInt('tabindex') : null); $viewResponse->set('class', $renderParams->has('class') ? $renderParams->getString('class') : null); $viewResponse->set('checked', $this->getValue() ? 'checked' : null); $viewResponse->set('text', $renderParams->has('text') ? $renderParams->getString('text') : null); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('class', $renderParams->has('class') ? $renderParams->getString('class') : null); $viewResponse->set('placeholder', $renderParams->has('placeholder') ? $renderParams->getString('placeholder') : null); }
/** * @param CM_View_Abstract $view * @param string $methodName * @param array|null $params * @param CM_Frontend_ViewResponse|null $viewResponse * @param CM_Frontend_ViewResponse|null $componentResponse * @throws CM_Exception_Invalid * @return CM_Http_Request_Post|\Mocka\AbstractClassTrait */ public function createRequestAjax(CM_View_Abstract $view, $methodName, array $params = null, CM_Frontend_ViewResponse $viewResponse = null, CM_Frontend_ViewResponse $componentResponse = null) { if (null === $viewResponse) { $viewResponse = new CM_Frontend_ViewResponse($view); } else { if ($viewResponse->getView() !== $view) { throw new CM_Exception_Invalid("View doesn't match value from scopeView"); } } if (null === $componentResponse) { if ($viewResponse->getView() instanceof CM_Component_Abstract) { $componentResponse = $viewResponse; } else { /** @var CM_Component_Abstract $component */ $component = $this->mockClass('CM_Component_Abstract')->newInstance(); $componentResponse = new CM_Frontend_ViewResponse($component); } } else { if (!$componentResponse->getView() instanceof CM_Component_Abstract) { throw new CM_Exception_Invalid("ScopeComponent's view is not a component"); } } $query = array('method' => (string) $methodName, 'params' => (array) $params); return $this->createRequest('/ajax/null', $query, null, $viewResponse, $componentResponse); }
/** * @param CM_Frontend_ViewResponse $viewResponse * @return string */ public function fetchViewResponse(CM_Frontend_ViewResponse $viewResponse) { return $this->fetchViewTemplate($viewResponse->getView(), $viewResponse->getTemplateName(), $viewResponse->getData()); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('tree', $this->_tree); }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('itemValue', $renderParams->get('item')); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { /** @var CM_Page_Abstract $page */ $page = $this->_params->has('page') ? $this->_params->getObject('page', CM_Page_Abstract::class) : null; $viewResponse->set('page', $page); }
protected function _prepareViewResponse(CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('pageTitle', $this->fetchTitle()); }
public function prepare(CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { if ($this->_params->has('entity')) { $entity = $this->_params->getEntity('entity'); $viewResponse->set('entity', $entity); } }
public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse) { $viewResponse->set('imageId', CM_Captcha::create()->getId()); }