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; }
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) { } }
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); }
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; }
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); } }
/** * 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 } }
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); } } }