protected static function factory($class) { if (!self::$instance) { self::$instance = new $class(); } return self::$instance; }
public static function destroy() { $security_token = self::get_security_token(); $security_token_key = moojon_config::get('security_token_key'); moojon_session::set($security_token_key, null); moojon_cookie::set($security_token_key, null); moojon_request::set(moojon_config::get('security_identity_key'), null); moojon_request::set(moojon_config::get('security_password_key'), null); }
public static function app_from_uri($uri) { $uri = moojon_uri::clean_uri($uri); $route_match = moojon_routes::map($uri); $data = $route_match->get_params(); foreach ($data as $key => $value) { moojon_request::set($key, $value); } $app = $data['app']; self::require_view_functions(); require_once moojon_paths::get_app_path($app); $app_class = self::get_app_class($app); return new $app_class($uri); }
function belongs_to_tag(moojon_model_collection $models = null, moojon_base_model $model, moojon_base_column $column, moojon_base_relationship $relationship, $attributes = array()) { $return = false; $name = $column->get_name(); $attributes = try_set_name_and_id_attributes($attributes, $model, $column); $foreign_key = $relationship->get_foreign_key(); $key = $relationship->get_key(); $return = div_tag(); if ($value = moojon_request::get_or_null($name)) { $return->add_child(redirection_tag(moojon_server::redirection())); if ($foreign_key_value = moojon_request::get_or_null($foreign_key)) { $value = $foreign_key_value; } else { if ($model->{$key} == $value) { $value = 0; } } } else { $value = 0; } $attributes['value'] = $value; $return->add_child(hidden_input_tag($attributes)); return $return; }
function model_from_id($symbol) { $class = moojon_inflect::singularize($symbol); $id = moojon_primary_key::NAME; $model = new $class(); $method_name = "read_by_{$id}"; return $model->{$method_name}(moojon_request::get($id)); }
public static function get_column_upload_paths(moojon_base_model $model, $paths = array(), $exceptions = array()) { $return = array(); $columns = moojon_request::get(get_class($model)); foreach ($model->get_file_column_names($exceptions) as $column_name) { if (moojon_files::has($column_name, $columns) && $model->{$column_name}) { $column = moojon_files::get($column_name, $columns); if (array_key_exists($column_name, $paths)) { $value = $paths[$column_name]; } else { $value = self::get_column_upload_path($model, $column_name); } if (get_class($column) == 'moojon_uploaded_file' && $column->get_error() == UPLOAD_ERR_OK) { $return[$column_name] = $value; } } } return $return; }
public static function redirection($fallback = null) { $redirection = moojon_request::get_or_null(moojon_config::get('redirection_key')); $referer = self::get_or_null('HTTP_REFERER'); if ($redirection) { $return = $redirection; } else { if ($fallback) { $return = $fallback; } else { if ($referer) { $return = $referer; } else { $return = '#'; } } } return $return; }
function paginator_ul($records, $limit = null, $page_symbol_name = null, $limit_symbol_name = null, $attributes = array()) { if (!is_integer($records)) { $records = count($records); } $limit_symbol_name = $limit_symbol_name ? $limit_symbol_name : moojon_config::get('paginator_limit_symbol_name'); if (!$limit) { $limit = moojon_request::has($limit_symbol_name) ? moojon_request::get($limit_symbol_name) : moojon_config::get('paginator_limit'); } if ($records > $limit) { $page_symbol_name = $page_symbol_name ? $page_symbol_name : moojon_config::get('paginator_page_symbol_name'); $page = moojon_request::has($page_symbol_name) ? moojon_request::get($page_symbol_name) : 1; $page = $page < 1 ? 1 : (int) $page; $children = array(); $params = moojon_get::get_data(); $get = $params; if (array_key_exists($limit_symbol_name, $get)) { $get[$limit_symbol_name] = $limit; } $get[$page_symbol_name] = ":{$page_symbol_name}"; foreach ($get as $key => $value) { $get[$key] = "{$key}={$value}"; } $querystring = moojon_uri::get_uri() . '?' . implode('&', $get); for ($i = 1; $i < ceil($records / $limit) + 1; $i++) { $params[$page_symbol_name] = $i; $attributes = $i == $page ? array('class' => 'selected') : array(); $children[] = li_tag(a_tag($i, moojon_base::parse_symbols($querystring, $params), $attributes)); } $return = ul_tag($children); } else { $return = ''; } return $return; }