示例#1
0
function table_for(moojon_model_collection $models, $column_names = array(), $attributes = array(), $no_records_message = null, $count = null)
{
    $no_records_message = $no_records_message ? $no_records_message : moojon_config::get('no_records_message');
    if ($models->count) {
        $attributes = try_set_attribute($attributes, 'cellpadding', '0');
        $attributes = try_set_attribute($attributes, 'cellspacing', '0');
        $model = $models->first;
        $model_class = get_class($model);
        $ths = array(th_tag(title_text($model->get_to_string_column())));
        $column_names = $column_names ? $column_names : $model->get_ui_column_names();
        foreach ($column_names as $column_name) {
            if ($model->to_string_column != $column_name) {
                $ths[] = th_tag(title_text($column_name));
            }
        }
        $ths[] = th_tag('Edit');
        $ths[] = th_tag('Delete');
        $trs = array();
        $primary_key = moojon_primary_key::NAME;
        $counter = 0;
        foreach ($models as $model) {
            $counter++;
            $tds = array(td_tag(member_tag($model)));
            foreach ($column_names as $column_name) {
                if ($model->to_string_column != $column_name) {
                    if (method_exists($model, "get_{$column_name}") || method_exists($model, $column_name)) {
                        $content = $model->{$column_name};
                        if (is_object($content) && is_subclass_of($content, 'moojon_base_column')) {
                            $column = $content;
                            $content = $column->get_value();
                        } else {
                            $column = new moojon_string_column($column_name);
                            $column->set_value($content);
                        }
                    } else {
                        $column = $model->get_column($column_name);
                        if ($relationship = find_has_one_relationship($model, $column_name)) {
                            $name = $relationship->get_name();
                            $content = member_tag($model->{$name});
                        } else {
                            if ($relationship = find_belongs_to_relationship($model, $column_name)) {
                                $name = $relationship->get_name();
                                $content = member_tag($model->{$name});
                            } else {
                                $content = $model->{$column_name};
                            }
                        }
                    }
                    $tds[] = td_tag(format_content($model, $column, $content));
                }
            }
            $tds[] = td_tag(edit_member_tag($model));
            $tds[] = td_tag(delete_member_tag($model));
            $trs[] = tr_tag($tds, array('class' => 'row' . $counter % 2));
        }
        $children = array(thead_tag(tr_tag($ths)), tbody_tag($trs));
        if ($count) {
            $ul = paginator_ul($count);
            $children[] = tfoot_tag(tr_tag(td_tag($ul, array('colspan' => count($column_names) + 2))));
        }
        $child = table_tag($children, $attributes);
    } else {
        $child = p_tag($no_records_message);
    }
    return div_tag($child);
}
示例#2
0
function login_form($authenticated = false, $message = null, $redirect = null, $attributes = array())
{
    if (!$authenticated) {
        $security_identity_label = moojon_config::get('security_identity_label');
        $security_password_label = moojon_config::get('security_password_label');
        $security_remember_label = moojon_config::get('security_remember_label');
        $security_key = moojon_config::get('security_key');
        $security_identity_key = moojon_config::get('security_identity_key');
        $security_password_key = moojon_config::get('security_password_key');
        $security_remember_key = moojon_config::get('security_remember_key');
        if (moojon_security::login_attempt($security_key)) {
            $security = moojon_request::get($security_key);
            $security_identity_value = $security[$security_identity_key];
            $security_password_value = $security[$security_password_key];
            $security_remember_value = $security[$security_remember_key];
        } else {
            $security_remember_value = null;
            $security_identity_value = null;
            $security_password_value = null;
            $security_checked_value = null;
        }
        $child = form_tag(null, array('action' => '#', 'method' => 'post'));
        if ($redirect) {
            $child->add_child(redirection_tag($redirect));
        }
        if ($message) {
            $child->add_child(p_tag($message, array('class' => 'error')));
        }
        $fieldset = fieldset_tag();
        $fieldset->add_child(label_tag($security_identity_label, $security_identity_key));
        $fieldset->add_child(text_input_tag(array('id' => $security_identity_key, 'name' => attribute_array_name($security_key, $security_identity_key), 'value' => $security_identity_value)));
        $fieldset->add_child(label_tag($security_password_label, $security_password_key));
        $fieldset->add_child(password_input_tag(array('id' => $security_password_key, 'name' => attribute_array_name($security_key, $security_password_key), 'value' => $security_password_value)));
        $div = div_tag(null, array('class' => 'checkbox'));
        $div->add_child(hidden_input_tag(array('name' => attribute_array_name($security_key, $security_remember_key), 'value' => 0)));
        $remember_attributes = array('name' => attribute_array_name($security_key, $security_remember_key), 'value' => 1, 'id' => $security_remember_key);
        if ($security_remember_value) {
            $remember_attributes['checked'] = 'checked';
        }
        $div->add_child(checkbox_input_tag($remember_attributes));
        $div->add_child(label_tag($security_remember_label, $security_remember_key));
        $fieldset->add_child($div);
        $child->add_child($fieldset);
        $child->add_child(submit_input_tag(array('name' => attribute_array_name($security_key, 'submit'), 'value' => 'Login')));
    } else {
        $child = p_tag('You are logged in.');
    }
    return div_tag($child, array('id' => 'login_div'));
}