Beispiel #1
0
 public static function init($config = array())
 {
     if (self::$_initialized) {
         return;
     }
     self::$_loadedConfig = $config;
     if (array_key_exists('supportsInternal', $config) && Saf_Filter_Truthy::filter($config['supportsInternal'])) {
         self::$_activePlugin = new Saf_Auth_Plugin_Local();
         self::$_supportsInternal = TRUE;
     }
     $plugins = array_key_exists('plugin', $config) ? Saf_Array::isNumericArray($config['plugin']) ? $config['plugin'] : array($config['plugin']) : array();
     self::$_autocreate = array_key_exists('autocreateUsers', $config) ? $config['autocreateUsers'] : FALSE;
     $firstPass = TRUE;
     foreach ($plugins as $pluginConfig) {
         if (is_array($pluginConfig) && array_key_exists('name', $pluginConfig)) {
             $pluginName = $pluginConfig['name'];
             $pluginConfig = $pluginConfig;
         } else {
             $pluginName = trim($pluginConfig);
             $pluginConfig = array();
         }
         if ($firstPass) {
             self::$_defaultPlugins[] = $pluginName;
             self::$_defaultPluginName = $pluginName;
         } else {
             if (array_key_exists('default', $pluginConfig) && $pluginConfig['default']) {
                 self::$_defaultPlugins[] = $pluginName;
             }
         }
         if (!in_array($pluginName, self::$_loadedPlugins)) {
             self::$_loadedPlugins[] = $pluginName;
             $className = 'Saf_Auth_Plugin_' . $pluginName;
             $classPath = LIBRARY_PATH . '/' . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
             if (!file_exists($classPath)) {
                 $className = $pluginName;
                 Saf_Kickstart::autoload($className);
             } else {
                 Saf_Kickstart::autoload($className);
             }
             if ($pluginConfig) {
                 self::$_classMap[$pluginName] = array($className => $pluginConfig);
             } else {
                 self::$_classMap[$pluginName] = $className;
             }
         }
         $firstPass = FALSE;
     }
     self::$_initialized = TRUE;
 }
Beispiel #2
0
 public static function fixElement($element)
 {
     $element->removeDecorator('DtDdWrapper');
     $element->removeDecorator('HtmlTag');
     if ($element->getAttrib('wrapperclass')) {
         $wrapperClass = 'formElementWrapper ' . $element->getAttrib('wrapperclass');
         $element->addDecorator('HtmlTag', array('tag' => 'div', 'id' => $element->getId() . 'Wrapper', 'class' => $wrapperClass));
         $element->setAttribs(Saf_Array::excludeKeys('wrapperclass', $element->getAttribs()));
         unset($element->wrapperclass);
     } else {
         $element->addDecorator('HtmlTag', array('tag' => 'div', 'id' => $element->getId() . 'Wrapper', 'class' => 'formElementWrapper'));
     }
     $labelDecorator = $element->getDecorator('Label');
     if ($labelDecorator) {
         $labelDecorator->setTag('');
     }
     $validators = $element->getValidators();
     if ($validators) {
     }
 }
Beispiel #3
0
 public static function setCrumbsFromConfig($config = array())
 {
     $baseUrl = Zend_Registry::get('baseUrl');
     if (is_null($config)) {
         $config = array();
     } else {
         if (is_object($config) && method_exists($config, 'toArray')) {
             $config = $config->toArray();
         }
     }
     $crumbs = array();
     if (count($config) == 1) {
         reset($config);
         $sample = current($config);
         if (Saf_Array::isNumericArray($sample)) {
             $config = $sample;
         }
     } else {
         if (array_key_exists('url', $config) && array_key_exists('label', $config)) {
             $config = array(array('url' => $config['url'], 'label' => $config['label']));
         }
     }
     foreach ($config as $fallBackLabel => $linkConfig) {
         if (is_object($linkConfig) && method_exists($linkConfig, 'toArray')) {
             $linkConfig = $linkConfig->toArray();
         }
         if (is_array($linkConfig)) {
             $label = array_key_exists('label', $linkConfig) ? $linkConfig['label'] : $fallBackLabel;
             if (array_key_exists('url', $linkConfig)) {
                 $url = str_replace('[[baseUrl]]', $baseUrl, $linkConfig['url']);
                 $crumbs[$label] = array('url' => $url);
             } else {
                 $crumbs[$label] = array('status' => 'current');
             }
         } else {
             $crumbs[$linkConfig] = array('status' => 'current');
         }
     }
     self::setCrumbs($crumbs);
 }
Beispiel #4
0
 public static function dereference($string, &$config = array(), $depth = 0)
 {
     $zendAutoloader = Zend_Loader_Autoloader::getInstance();
     $currentZendAutoloaderSetting = $zendAutoloader->suppressNotFoundWarnings();
     $zendAutoloader->suppressNotFoundWarnings(TRUE);
     if ($depth > self::MAX_DEREF_DEPTH) {
         throw new Exepction('Model Reflection error: dereferenced too deeply.');
     }
     $myMute = Saf_Debug::mute();
     if (!array_key_exists('_lateBindingParams', $config)) {
         $config['_lateBindingParams'] = array();
     }
     $supplement = Saf_Debug::isEnabled() && is_array($config) && array_key_exists('derefSource', $config) ? ' in ' . Saf_Array::extract('derefSource', $config, 'undisclosed_source') : '';
     $newString = self::_encodeEscaped($string);
     //for ($i=0; $i < self::MAX_DEREF_DEPTH; $i++){
     $startCut = strpos($newString, '[[');
     while ($startCut !== FALSE) {
         $endCut = strpos($newString, ']]', $startCut);
         if ($endCut !== FALSE) {
             $term = substr($newString, $startCut + 2, $endCut - ($startCut + 2));
             try {
                 $translatedTerm = self::translate($term, $config, $depth + 1);
             } catch (Exception $e) {
                 Saf_Debug::unmute($myMute);
                 throw $e;
             }
             $unique = strpos($term, '*') === 0;
             $newString = $unique ? str_replace("[[{$term}]]", $translatedTerm, $newString, $unique) : str_replace("[[{$term}]]", $translatedTerm, $newString);
         } else {
             Saf_Debug::unmute($myMute);
             throw new Exception("Model Reflection Error: Unterminated term {$supplemental}");
         }
         $startCut = strpos($newString, '[[', $startCut + 2);
         //#TODO #2.0.0 make sure we skip anything just transplanted in
     }
     Saf_Debug::unmute($myMute);
     $zendAutoloader->suppressNotFoundWarnings($currentZendAutoloaderSetting);
     return $newString;
 }
Beispiel #5
0
 public function __construct($config = array())
 {
     //#TODO unmuddle some of this...
     $this->_hostId = Saf_Array::extract('hostId', $config, APPLICATION_ENV . '.' . APPLICATION_HOST);
     $this->_productId = Saf_Array::extract('productId', $config, APPLICATION_ID . '.' . APPLICATION_INSTANCE);
     $this->_baseTime = (int) Saf_Array::extract('baseTime', $config, self::$_systemBaseTime);
     $this->_timeInterval = (int) Saf_Array::extract('timeInterval', $config, $this->_timeInterval);
     $this->_method = Saf_Array::extractOptional('method', $config);
     $this->_id = Saf_Array::extractOptional('id', $config);
     switch ($this->_method) {
         case self::METHOD_REQUEST:
             $this->setMethodRequest();
             break;
         case self::METHOD_PUBLISH:
             $this->setMethodPublish();
             break;
         case self::METHOD_CANCEL:
             $this->setMethodCancel();
             break;
     }
     if (!is_null($this->_id) && (!is_array($this->_id) || count($this->_id) > 0)) {
         $this->generate($config);
     }
 }
Beispiel #6
0
    /**
     * output all breadcrumbs
     */
    public static function printBreadCrumbs()
    {
        $crumbs = Saf_Layout_Location::getCrumbs();
        if (count($crumbs) > 0) {
            ?>
		<ul class="breadcrumbs">
<?php 
            foreach ($crumbs as $label => $info) {
                $url = is_array($info) ? array_key_exists('url', $info) ? $info['url'] : '' : $info;
                $class = is_array($info) && array_key_exists('status', $info) ? " class=\"{$info['status']}\"" : '';
                if (is_array($info) && Saf_Array::keyExistsAndIsArray('options', $info)) {
                    $prefix = Saf_Array::keyExistsAndNotBlank('prefix', $info['options']) ? $info['options']['prefix'] : '';
                } else {
                    $prefix = '';
                }
                if ('' != $url) {
                    $baseUrl = Zend_Registry::get('baseUrl');
                    $url = str_replace('[[baseUrl]]', $baseUrl, $url);
                    ?>
		<li<?php 
                    print $class;
                    ?>
><?php 
                    print $prefix;
                    ?>
<a href="<?php 
                    print $url;
                    ?>
"><?php 
                    print $label;
                    ?>
</a></li>
<?php 
                } else {
                    ?>
		<li<?php 
                    print $class;
                    ?>
><?php 
                    print $prefix . $label;
                    ?>
</li>
<?php 
                }
            }
            ?>
		</ul>
<?php 
        }
    }
Beispiel #7
0
 protected function _applyConfig()
 {
     //#TODO #2.0.0 loop through the tags instead
     $autoLoad = $this->_config->getOptional('autoLoad', FALSE);
     $debugMode = $this->_config->getOptional('debug:mode', Saf_Debug::DEBUG_MODE_OFF);
     $errorMode = $this->_config->getOptional('error:mode', Saf_Debug::ERROR_MODE_DEFAULT);
     Saf_Debug::init($debugMode, $errorMode, FALSE);
     if ($autoLoad) {
         $autoLoadTakeover = array_key_exists('takeover', $autoLoad) && Saf_Filter_Truthy::filter($autoLoad['takeover']);
         Saf_Kickstart::initializeAutoloader($autoLoad);
         if (array_key_exists('loader', $autoLoad)) {
             $loaders = Saf_Config::autoGroup($autoLoad['loader']);
             foreach ($loaders as $loader) {
                 $loaderParts = explode(':', Saf_Filter_ConfigString($loader), 2);
                 !array_key_exists(1, $loaderParts) ? Saf_Kickstart::addAutoloader($loaderParts[0]) : Saf_Kickstart::addAutoloader($loaderParts[0], $loaderParts[1]);
             }
         }
         if (array_key_exists('library', $autoLoad)) {
             $libraries = Saf_Config::autoGroup($autoLoad['library']);
             foreach ($libraries as $library) {
                 $libParts = explode(':', Saf_Filter_ConfigString($library), 2);
                 !array_key_exists(1, $libParts) ? Saf_Kickstart::addLibrary($libParts[0]) : Saf_Kickstart::addLibrary(array($libParts[0], $libParts[1]));
             }
         }
         if (array_key_exists('special', $autoLoad)) {
             $specialLoaders = Saf_Config::autoGroup($autoLoad['special']);
             foreach ($specialLoaders as $special) {
                 $specialParts = explode(':', Saf_Filter_ConfigString($special), 2);
                 !array_key_exists(1, $specialParts) ? Saf_Kickstart::addLibrary(array($specialParts[0])) : Saf_Kickstart::addLibrary(array($specialParts[0], $specialParts[1]));
             }
         }
     }
     $this->_bootstrapConfig = $this->_config->getOptional('bootstrap', NULL);
     if ($this->_config->has('resources')) {
         $resources = Saf_Array::coerce($this->_config->get('resources:+'), Saf_Array::MODE_TRUNCATE);
         foreach ($resources as $pluginName => $pluginConfig) {
             $this->provision($pluginName, $pluginConfig);
         }
     }
 }