/** * Returns an Atomik_Db_Script object * * @return Atomik_Db_Script */ public static function getDbScript($filter = array(), $echo = false) { $filter = array_map('ucfirst', $filter); require_once 'Atomik/Db/Script.php'; require_once 'Atomik/Db/Script/Output/Text.php'; require_once 'Atomik/Db/Script/File.php'; $script = new Atomik_Db_Script(); $script->setOutputHandler(new Atomik_Db_Script_Output_Text($echo)); // plugins foreach (Atomik::getLoadedPlugins(true) as $plugin => $path) { if ((count($filter) && in_array($plugin, $filter)) || !count($filter)) { if (@is_dir($path . '/models')) { $script->addScripts(Atomik_Db_Script_Model::getScriptFromDir($path . '/models')); } if (@is_dir($path . '/sql')) { $script->addScripts(Atomik_Db_Script_File::getScriptFromDir($path . '/sql')); } } } // app if ((count($filter) && in_array('App', $filter)) || !count($filter)) { foreach (Atomik::path(self::$config['model_dirs'], true) as $path) { if (@is_dir($path)) { $script->addScripts(Atomik_Db_Script_Model::getScriptFromDir($path)); } } foreach (Atomik::path(self::$config['sql_dirs'], true) as $path) { if (@is_dir($path)) { $script->addScripts(Atomik_Db_Script_File::getScriptFromDir($path)); } } } Atomik::fireEvent('Db::Script', array($script, $paths)); return $script; }