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 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); }