コード例 #1
0
ファイル: rest.helper.php プロジェクト: steview/moojon
function get_collection_uri(moojon_base_model $model)
{
    $route = get_collection_rest_route($model);
    $parent_resource = '';
    $pattern = $route->get_pattern();
    if ($resource = moojon_uri::get_or_null('resource')) {
        $resource = moojon_inflect::singularize($resource);
        $resource_model = new $resource();
        $table = $model->get_table();
        $class = $model->get_class();
        if ($resource_model->has_has_many_relationship($table) || $resource_model->has_has_many_to_many_relationship($table)) {
            $parent_resource = moojon_uri::get_uri() . '/';
        } else {
            if ($resource == $class) {
                $parent_resource = moojon_uri::get_uri();
                $parent_resource_id = substr($parent_resource, strrpos($parent_resource, '/') + 1);
                if ($parent_resource_id == $table) {
                    $parent_resource_id = '';
                }
                $parent_resource = substr($parent_resource, 0, strrpos($parent_resource, '/'));
                if ($parent_resource) {
                    $pattern = '';
                }
                if ($resource_model->is_belongs_to_relationship_column(moojon_primary_key::get_foreign_key($class))) {
                    $slash = $parent_resource_id ? '/' : '';
                    $pattern .= "{$slash}{$parent_resource_id}/{$table}";
                }
            } else {
                if ($resource_model->has_relationship($class)) {
                    $belongs_to_relationship = $resource_model->get_relationship($class);
                    if (get_class($belongs_to_relationship) == 'moojon_belongs_to_relationship') {
                        $parent_resource = moojon_uri::get_uri() . '/';
                    }
                }
            }
        }
    }
    return moojon_config::get('index_file') . $parent_resource . $pattern . '/';
}
コード例 #2
0
ファイル: model.tag.helper.php プロジェクト: steview/moojon
function has_one_tag(moojon_model_collection $models = null, moojon_base_model $model, moojon_base_column $column, moojon_base_relationship $relationship, $attributes = array())
{
    $return = null;
    $name = $column->get_name();
    $attributes = try_set_name_and_id_attributes($attributes, $model, $column);
    if ($value = moojon_request::get_or_null($name)) {
        $attributes['value'] = $value;
        $return = div_tag(array(hidden_input_tag($attributes), redirection_tag(moojon_server::redirection())));
    } else {
        $foreign_key = $relationship->get_foreign_key();
        $key = $relationship->get_key();
        $relationship_name = $relationship->get_class($model);
        $relationship = new $relationship_name();
        $models = $models ? $models : $relationship->read();
        $options = array();
        if ($column->get_null()) {
            $options['Please select...'] = 0;
        }
        foreach ($models as $option) {
            $options[(string) $option] = $option->{$key};
        }
        $selected = $model->{$name} ? $model->{$name} : moojon_uri::get_or_null($foreign_key);
        $return = select_options($options, $selected, $attributes);
    }
    return $return;
}