function handler($arguments = array(), $options = array()) { $class = !empty($arguments['module']) ? 'Mojo' . $arguments['module'] : false; $action = !empty($arguments['action']) ? $arguments['action'] : false; if (file_exists(MojoConfig::get('mojo_task_lib') . $class . '.class.php')) { include_once MojoConfig::get('mojo_task_lib') . $class . '.class.php'; ${$class} = new $class($options); if (count($arguments) < 2 || array_key_exists("help", $options)) { if (method_exists(${$class}, "Help")) { ${$class}->Help(); } else { MojoHelp::Setup(); } } if (method_exists(${$class}, $action)) { ${$class}->{$action}(); } else { MojoConfig::Setup(); } } else { if (MojoConfig::get('mojo_task_lib')) { MojoHelp::Docs(); } else { MojoConfig::Setup(); } } }
public function Setup($prompt = true) { $config = array(); foreach ($_SESSION as $k => $v) { $config[$k] = $v; } if ($prompt) { $config['mojo_js_dir'] = promptUser('Please provide the full system path to your Mojo installation ' . '- This is directory that contains SiteMap.js - (Include trailing slash)'); $arr = explode(DIRECTORY_SEPARATOR, $config['mojo_js_dir']); $config['mojo_app_name'] = $arr[count($arr) - 2]; } $arr = explode(DIRECTORY_SEPARATOR, self::get('mojo_task_lib')); $config['mojo_bin_dir'] = join(DIRECTORY_SEPARATOR, array_slice($arr, 0, count($arr) - 2)) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR; foreach ($config as $key => $value) { switch ($key) { case 'mojo_js_dir': $sitemap = getFile('SiteMap.js', $value); if ($sitemap) { $value = str_replace(basename($sitemap), "", $sitemap); } else { self::Clear(false); Mojo::exception('SiteMap.js not found at ' . $value); } break; } $_SESSION[$key] = $value; if ($prompt) { Mojo::prompt('Updated config for ' . $key . ' to ' . $value); } } MojoFile::write(self::get('mojo_task_lib') . 'mojo.config', json_encode($_SESSION)); if (array_key_exists('mojo_js_dir', $config) && $prompt) { Mojo::prompt('Congratulations, your project is now setup, please read the docs below:'); MojoHelp::Docs(); } }