public function preDispatch() { $this->getHelper('viewRenderer')->setNoController(true); $this->getHelper('viewRenderer')->setViewScriptPathNoControllerSpec('user/:action.:suffix'); if (!$this->_getParam('user') && $this->getRequest()->getActionName() != 'error') { $code = $this->_getParam('code'); if (!preg_match('#^(.*)-(\\w*)$#', $code, $m)) { $this->getRequest()->setParam('errorMessage', trlKwf("Activation code is invalid. Maybe the URL wasn't copied completely?")); $this->forward('error'); } else { $userId = $m[1]; $code = $m[2]; $userModel = Kwf_Registry::get('userModel'); $user = $userModel->getRow($userId); $this->getRequest()->setParam('user', $user); if (!$user) { $this->getRequest()->setParam('errorMessage', trlKwf("Activation code is invalid. Maybe the URL wasn't copied completely?")); $this->forward('error'); } else { if (!$user->validateActivationToken($code) && $user->isActivated()) { $this->getRequest()->setParam('errorMessage', trlKwf("This account has already been activated.")); $this->forward('error'); } else { if (!$user->validateActivationToken($code)) { $this->getRequest()->setParam('errorMessage', trlKwf("Activation code is invalid. Maybe your account has already been activated, the URL was not copied completely, or the password has already been set?")); $this->forward('error'); } } } } } $this->view->dep = Kwf_Assets_Package_Default::getInstance('Admin'); parent::preDispatch(); }
public function getTemplateVars() { $ret = parent::getTemplateVars(); $ret['language'] = $this->getData()->getLanguage(); $ret['assetsPackage'] = Kwf_Assets_Package_Default::getInstance('Frontend'); return $ret; }
protected function _build($options) { $package = Kwf_Assets_Package_Default::getInstance('Frontend'); $ret = array(); foreach ($package->getDependency()->getFilteredUniqueDependencies('text/css') as $dep) { $ret = array_merge($ret, Kwc_Basic_Text_StylesModel::parseMasterStyles($dep->getContentsSourceString())); } $fileName = 'build/assets/rte-styles'; file_put_contents($fileName, json_encode($ret)); }
public function preDispatch() { if ($this->getRequest()->getActionName() == 'success') { if (!$this->getRequest()->getParam('row') instanceof Kwf_Model_Row_Interface) { //don't allow call to successAction directly, allow only forward from indexAction throw new Kwf_Exception_AccessDenied(); } } $this->view->dep = Kwf_Assets_Package_Default::getInstance('Admin'); parent::preDispatch(); }
public function ext($class, $config = array(), $viewport = null) { //das ist nötig weil wenn $config ein leeres Array ist, kommt sonst [] //raus aber {} wird benötigt (array als config ist ungültig) $config = (object) $config; $vars = get_object_vars($this); foreach ($vars as $key => $value) { if ('_' != substr($key, 0, 1)) { $config->{$key} = $value; } } // View einrichten $ext['class'] = $class; if (!isset($config->id)) { $config->id = 'mainPanel'; } if (!isset($config->region)) { $config->region = 'center'; } if (isset($config->assetsPackage)) { $ext['assetsPackage'] = $config->assetsPackage; unset($config->assetsPackage); } else { $ext['assetsPackage'] = Kwf_Assets_Package_Default::getInstance('Admin'); } $ext['config'] = $config; if (!$viewport) { if (isset($config->viewport)) { $viewport = $config->viewport; } else { $viewport = Zend_Registry::get('config')->ext->defaultViewport; } } $ext['viewport'] = $viewport; $ext['userRole'] = 'guest'; if (Zend_Registry::get('userModel')) { $ext['userRole'] = Zend_Registry::get('userModel')->getAuthedUserRole(); $user = Zend_Registry::get('userModel')->getAuthedUser(); if ($user) { $ext['user'] = "******"; } } $this->ext = $ext; $this->extTemplate = 'ext.tpl'; if (Kwf_Util_SessionToken::getSessionToken()) { $this->sessionToken = Kwf_Util_SessionToken::getSessionToken(); } $this->applicationName = Zend_Registry::get('config')->application->name; $this->favicon = self::getFavicon(); $this->uniquePrefix = Kwf_Config::getValue('application.uniquePrefix'); }
public static function getMasterStyles() { $cacheId = 'textMasterSyles'; $ret = Kwf_Cache_SimpleStatic::fetch($cacheId); if ($ret !== false) { return $ret; } $package = Kwf_Assets_Package_Default::getInstance('Frontend'); $ret = array(); foreach ($package->getDependency()->getFilteredUniqueDependencies('text/css') as $dep) { $ret = array_merge($ret, self::parseMasterStyles($dep->getContentsSourceString())); } Kwf_Cache_SimpleStatic::add($cacheId, $ret); return $ret; }
public function showFrontendAssetSizesAction() { $packages = array(Kwf_Assets_Package_Default::getInstance('Frontend')); $mimeTypes = array('text/javascript', 'text/javascript; defer', 'text/css', 'text/css; defer', 'text/css; ie8'); foreach ($packages as $p) { foreach ($mimeTypes as $mimeType) { $sizes = array(); echo "\n" . $p->getDependencyName() . " {$mimeType}\n"; foreach ($p->getFilteredUniqueDependencies($mimeType) as $i) { $sizes[(string) $i] = strlen(gzencode($i->getContentsPacked()->getFileContents(), 9, FORCE_GZIP)); } arsort($sizes); $sumSize = array_sum($sizes); $topSizes = array_slice($sizes, 0, 10); foreach ($topSizes as $name => $size) { echo "" . str_pad(number_format(round($size / $sumSize * 100, 1), 1) . '%', 5) . ' ' . str_pad(Kwf_View_Helper_FileSize::fileSize($size), 10) . " {$name}\n"; } } } }
protected function _getFilteredUniqueDependencies($mimeType) { $ret = parent::_getFilteredUniqueDependencies($mimeType); $loadedDeps = array(); foreach ($this->_loadedDependencies as $d) { if ($this->_providerList === Kwf_Assets_Package_Default::getDefaultProviderList()) { $pkg = Kwf_Assets_Package_Default::getInstance($d); } else { $pkg = new Kwf_Assets_Package($this->_providerList, $d); } $loadedDeps = array_merge($loadedDeps, $pkg->_getFilteredUniqueDependencies($mimeType)); } foreach ($ret as $k => $i) { if (in_array($i, $loadedDeps, true)) { unset($ret[$k]); } } $ret = array_values($ret); return $ret; }
public function __construct($name, $class, $id = null) { $this->setModel(Kwc_Basic_Text_Component::createOwnModel($class)); parent::__construct($name, $class, $id); $field = new Kwf_Form_Field_HtmlEditor('content', trlKwf('Text')); $field->setData(new Kwf_Data_Kwc_ComponentIds('content')); $field->setHideLabel(true); $ignoreSettings = array('tablename', 'componentName', 'default', 'assets', 'assetsAdmin', 'placeholder', 'plugins'); $c = strpos($class, '.') ? substr($class, 0, strpos($class, '.')) : $class; foreach (call_user_func(array($c, 'getSettings')) as $key => $val) { if (!in_array($key, $ignoreSettings)) { $method = 'set' . ucfirst($key); $field->{$method}($val); } } $generators = Kwc_Abstract::getSetting($this->getClass(), 'generators'); $classes = $generators['child']['component']; if ($classes['link']) { $cfg = new Kwf_Component_Abstract_ExtConfig_Form($classes['link']); $c = $cfg->getConfig(Kwf_Component_Abstract_ExtConfig_Abstract::TYPE_DEFAULT); $field->setLinkComponentConfig($c['form']); } if ($classes['image']) { $c = Kwc_Admin::getInstance($classes['image'])->getExtConfig(); $field->setImageComponentConfig($c['form']); } if ($classes['download']) { $c = Kwc_Admin::getInstance($classes['download'])->getExtConfig(); $field->setDownloadComponentConfig($c['form']); } if (Kwc_Abstract::getSetting($this->getClass(), 'enableStylesEditor')) { $admin = Kwc_Admin::getInstance($class); $field->setStylesEditorConfig(array('xtype' => 'kwc.basic.text.styleseditor', 'blockStyleUrl' => $admin->getControllerUrl('BlockStyle'), 'inlineStyleUrl' => $admin->getControllerUrl('InlineStyle'), 'masterStyleUrl' => $admin->getControllerUrl('MasterStyle'))); } $t = Kwf_Model_Abstract::getInstance(Kwc_Abstract::getSetting($class, 'stylesModel')); $field->setStyles($t->getStyles()); $field->setComponentClass($class); $field->setControllerUrl(Kwc_Admin::getInstance($class)->getControllerUrl()); $this->fields->add($field); $this->setAssetsPackage(Kwf_Assets_Package_Default::getInstance('Frontend')); }
public function errorAction() { $this->getHelper('viewRenderer')->setNoController(true); $this->getHelper('viewRenderer')->setViewScriptPathNoControllerSpec('user/:action.:suffix'); $this->view->dep = Kwf_Assets_Package_Default::getInstance('Admin'); $this->view->contentScript = $this->getHelper('viewRenderer')->getViewScript('login-error'); $this->view->errorMessage = $this->_getParam('errorMessage'); $redirect = $this->_getParam('redirect'); if ($redirect == 'jsCallback') { $redirect = 'javascript:window.close();'; } $this->view->redirect = $redirect; }
public function includeCode($position) { $data = $this->_getView()->component; $ret = ''; if ($position == 'header') { $helper = new Kwf_View_Helper_DebugData(); $ret .= $helper->debugData(); } $flag = $position == 'header' ? 'hasHeaderIncludeCode' : 'hasFooterIncludeCode'; $cmps = $data->getPage()->getRecursiveChildComponents(array('flags' => array($flag => true))); if (Kwc_Abstract::getFlag($data->componentClass, $flag)) { $cmps[] = $data; } $statisticsBoxUsed = false; $assetsBoxUsed = false; foreach ($cmps as $c) { $includeCode = $c->getComponent()->getIncludeCode($position); if (is_string($includeCode)) { $ret .= $includeCode; } else { if (is_object($includeCode) && $includeCode instanceof Kwf_Component_Data) { $componentHelper = new Kwf_Component_View_Helper_Component(); $componentHelper->setRenderer($this->_getRenderer()); $componentHelper->setView($this->_getView()); $ret .= $componentHelper->component($includeCode); if (is_instance_of($includeCode->componentClass, 'Kwc_Statistics_Analytics_Component') || is_instance_of($includeCode->componentClass, 'Kwc_Statistics_Piwik_Component')) { $statisticsBoxUsed = true; } if (is_instance_of($includeCode->componentClass, 'Kwc_Box_Assets_Component')) { $assetsBoxUsed = true; } } else { if (is_null($includeCode)) { } else { throw new Kwf_Exception("invalid getIncludeCode return type"); } } } } if ($position == 'header') { if ($v = Kwf_Config::getValue('kwc.favicon')) { $ret .= "<link rel=\"shortcut icon\" href=\"{$v}\" />\n"; } if (!$assetsBoxUsed) { //add default assets if there was no box $a = new Kwf_View_Helper_Assets(); $ret .= $a->assets(Kwf_Assets_Package_Default::getInstance('Frontend'), null); } $helper = new Kwf_Component_View_Helper_Dynamic(); $helper->setRenderer($this->_getRenderer()); $helper->setView($this->_getView()); $ret .= $helper->dynamic('SessionToken'); } else { if ($position == 'footer') { if (!$statisticsBoxUsed) { //if there was no statistics box output default code //box is required for eg. multidomains $cfg = Kwf_Config::getValueArray('statistics'); if (isset($cfg['analytics']['code']) && $cfg['analytics']['code']) { throw new Kwf_Exception('To support analytics add Kwc_Statistics_Analytics_Component as a box.'); } if (isset($cfg['piwik']['id']) && $cfg['piwik']['id']) { throw new Kwf_Exception('To support piwik add Kwc_Statistics_Piwik_Component as a box.'); } } //see http://nexxar.wordpress.com/2010/10/07/speeding-up-jquery-ready-on-ie/ $ret .= "\n"; $ret .= "<!--[if lt IE 9]>\n"; $ret .= "<script type=\"text/javascript\">\n"; $ret .= " jQuery.ready();\n"; $ret .= "</script>\n"; $ret .= "<![endif]-->\n"; } } return $ret; }
public function includeCode($position) { $data = $this->_getView()->component; $ret = ''; if ($position == 'header') { if (Kwf_Config::getValue('application.kwf.name') == 'Koala Framework') { $ret .= "<!--\n"; $ret .= " This website is powered by Koala Web Framework CMS Version " . Kwf_Config::getValue('application.kwf.version') . ".\n"; $ret .= " Koala Framework is a free open source Content Management Framework licensed under BSD.\n"; $ret .= " http://www.koala-framework.org\n"; $ret .= "-->\n"; } $helper = new Kwf_View_Helper_DebugData(); $ret .= $helper->debugData(); } $flag = $position == 'header' ? 'hasHeaderIncludeCode' : 'hasFooterIncludeCode'; $cmps = $data->getPage()->getRecursiveChildComponents(array('flags' => array($flag => true))); if (Kwc_Abstract::getFlag($data->componentClass, $flag)) { $cmps[] = $data; } $statisticsBoxUsed = false; $assetsBoxUsed = false; foreach ($cmps as $c) { $includeCode = $c->getComponent()->getIncludeCode($position); if (is_string($includeCode)) { $ret .= $includeCode; } else { if (is_object($includeCode) && $includeCode instanceof Kwf_Component_Data) { $componentHelper = new Kwf_Component_View_Helper_Component(); $componentHelper->setRenderer($this->_getRenderer()); $componentHelper->setView($this->_getView()); $ret .= $componentHelper->component($includeCode); if (is_instance_of($includeCode->componentClass, 'Kwc_Statistics_Analytics_Component') || is_instance_of($includeCode->componentClass, 'Kwc_Statistics_Piwik_Component')) { $statisticsBoxUsed = true; } if (is_instance_of($includeCode->componentClass, 'Kwc_Box_Assets_Component')) { $assetsBoxUsed = true; } } else { if (is_null($includeCode)) { } else { throw new Kwf_Exception("invalid getIncludeCode return type"); } } } } if ($position == 'header') { if ($v = Kwf_Config::getValue('kwc.favicon')) { $v = Kwf_Setup::getBaseUrl() . $v; $ret .= "<link rel=\"shortcut icon\" href=\"{$v}\" />\n"; } if (!$assetsBoxUsed) { //add default assets if there was no box $a = new Kwf_View_Helper_Assets(); $ret .= $a->assets(Kwf_Assets_Package_Default::getInstance('Frontend'), null); } $helper = new Kwf_Component_View_Helper_Dynamic(); $helper->setRenderer($this->_getRenderer()); $helper->setView($this->_getView()); $ret .= $helper->dynamic('SessionToken'); } else { if ($position == 'footer') { if (!$statisticsBoxUsed) { //if there was no statistics box output default code //box is required for eg. multidomains $cfg = Kwf_Config::getValueArray('statistics'); if (isset($cfg['analytics']['code']) && $cfg['analytics']['code']) { throw new Kwf_Exception('To support analytics add Kwc_Statistics_Analytics_Component as a box.'); } if (isset($cfg['piwik']['id']) && $cfg['piwik']['id']) { throw new Kwf_Exception('To support piwik add Kwc_Statistics_Piwik_Component as a box.'); } } } } return $ret; }