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); }
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')); }