コード例 #1
0
 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();
 }
コード例 #2
0
 public function getTemplateVars()
 {
     $ret = parent::getTemplateVars();
     $ret['language'] = $this->getData()->getLanguage();
     $ret['assetsPackage'] = Kwf_Assets_Package_Default::getInstance('Frontend');
     return $ret;
 }
コード例 #3
0
 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));
 }
コード例 #4
0
 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();
 }
コード例 #5
0
ファイル: Ext.php プロジェクト: xiaoguizhidao/koala-framework
 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');
 }
コード例 #6
0
 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;
 }
コード例 #7
0
 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";
             }
         }
     }
 }
コード例 #8
0
 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;
 }
コード例 #9
0
ファイル: Form.php プロジェクト: nsams/koala-framework
 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'));
 }
コード例 #10
0
 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;
 }
コード例 #11
0
ファイル: IncludeCode.php プロジェクト: nsams/koala-framework
 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;
 }
コード例 #12
0
 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;
 }