function helpers() { $helpers = array(); if (moojon_config::has('helpers')) { $helpers = explode(', ', moojon_config::get('helpers')); } foreach (explode(', ', moojon_config::get('default_helpers')) as $helper) { if (!in_array($helper, $helpers)) { $helpers[] = $helper; } } return $helpers; }
protected static function post_set($key, $value = null, $data = null) { if ($value !== null) { $_COOKIE[$key] = $value; if (moojon_config::has('cookie_expiry')) { if (is_int(moojon_config::get('cookie_expiry'))) { $cookie_expiry = time() + moojon_config::get('cookie_expiry'); } else { throw new moojon_exception('cookie_expiry must be an integer (' . moojon_config::get('cookie_expiry') . ')'); } } setcookie($key, $value, $cookie_expiry, '/'); } else { $_COOKIE[$key] = null; setcookie($key, null, -1, '/'); unset($_COOKIE[$key]); } }
private function __construct() { $db_driver = moojon_config::get('db_driver'); if (substr($db_driver, -1) == ':') { $db_driver = substr($db_driver, -1); } if (moojon_config::has('db_dsn')) { $db_dsn = moojon_config::get('db_dsn'); } else { if (moojon_config::has('cli_db_dsn')) { $db_dsn = moojon_config::get('cli_db_dsn'); } else { $keys = array(); switch ($db_driver) { case 'sybase': case 'mssql': case 'dblib': $keys['host'] = 'db_host'; $keys['dbname'] = 'db_dbname'; $keys['charset'] = 'db_charset'; $keys['appname'] = 'db_appname'; $keys['secure'] = 'db_secure'; break; case 'firebird': $keys['dbname'] = 'db_dbname'; $keys['charset'] = 'db_charset'; $keys['role'] = 'db_role'; break; case 'ibm': $keys['database'] = 'db_database'; $keys['hostname'] = 'db_hostname'; $keys['port'] = 'db_port'; $keys['username'] = UI == 'CLI' ? 'cli_db_username' : 'db_username'; $keys['password'] = UI == 'CLI' ? 'cli_db_password' : 'db_password'; break; case 'informix': case 'sqlite': case 'sqlite2': throw new moojon_exception("db_driver ({$db_driver}) requires db_dsn config key"); break; case 'mysql': $keys['host'] = 'db_host'; $keys['port'] = 'db_port'; $keys['dbname'] = 'db_dbname'; $keys['unix_socket'] = 'db_unix_socket'; $keys['username'] = UI == 'CLI' ? 'cli_db_username' : 'db_username'; $keys['password'] = UI == 'CLI' ? 'cli_db_password' : 'db_password'; break; case 'oci': $keys['dbname'] = 'db_dbname'; $keys['charset'] = 'db_charset'; break; case 'odbc': $keys['dsn'] = 'db_dsn_name'; $keys['uid'] = UI == 'CLI' ? 'cli_db_uid' : 'db_uid'; $keys['pwd'] = UI == 'CLI' ? 'cli_db_pwd' : 'db_pwd'; break; case 'pgsql': $keys['host'] = 'db_host'; $keys['port'] = 'db_port'; $keys['dbname'] = 'db_dbname'; $keys['user'] = UI == 'CLI' ? 'cli_db_user' : 'db_user'; $keys['password'] = UI == 'CLI' ? 'cli_db_password' : 'db_password'; break; case '4D': $keys['host'] = 'db_host'; $keys['port'] = 'db_port'; $keys['dbname'] = 'db_dbname'; $keys['chars_set'] = 'db_chars_set'; break; default: throw new moojon_exception("Unsupported database driver ({$db_driver})"); break; } $db_dsn = ''; foreach ($keys as $key => $value) { if (moojon_config::has($value)) { $db_dsn .= "{$key}=" . moojon_config::get($value) . ';'; } } $db_dsn = substr($db_dsn, 0, strlen($db_dsn) - 1); } } $db_username = moojon_config::get_or_null(moojon_config::get_or_null('username', $keys)); $db_password = moojon_config::get_or_null(moojon_config::get_or_null('password', $keys)); $db_driver_options = moojon_config::get_or_null('db_driver_options'); $this->data = new PDO("{$db_driver}:{$db_dsn}", $db_username, $db_password, $db_driver_options); $this->data->setAttribute(self::ATTR_ERRMODE, self::ERRMODE_EXCEPTION); }
public static function get_column_paths() { $paths = array(); if (moojon_config::has('db_driver')) { $paths[] = self::get_columns_directory(); } return $paths; }