Convert the dynamic module admin screen to use tabs.
This commit is contained in:
parent
daf5030e84
commit
88bd22641e
@ -25,33 +25,58 @@ class Admin_Dynamic_Controller extends Admin_Controller {
|
||||
access::verify_csrf();
|
||||
|
||||
$form = $this->_get_form();
|
||||
if ($form->validate()) {
|
||||
$errors = array_fill_keys(array_keys($form), "");
|
||||
if ($_POST) {
|
||||
$post = new Validation($_POST);
|
||||
$post->add_rules("updates_enabled", array("valid", "numeric"));
|
||||
$post->add_rules("popular_enabled", array("valid", "numeric"));
|
||||
$post->add_rules("updates_limit", array("valid", "numeric"));
|
||||
$post->add_rules("popular_limit", array("valid", "numeric"));
|
||||
$post->add_rules("updates_description", "length[0,2048]");
|
||||
$post->add_rules("popular_description", "length[0,2048]");
|
||||
if ($post->validate()) {
|
||||
foreach (array("updates", "popular") as $album) {
|
||||
$album_defn = unserialize(module::get_var("dynamic", $album));
|
||||
$group = $form->inputs[$album];
|
||||
$album_defn->enabled = $group->inputs["{$album}_enabled"]->value;
|
||||
$album_defn->description = $group->inputs["{$album}_description"]->value;
|
||||
$album_defn->limit = $group->inputs["{$album}_limit"] === "" ? null :
|
||||
$group->inputs["{$album}_limit"]->value;
|
||||
$album_defn->enabled = $post["{$album}_enabled"];
|
||||
$album_defn->description = $post["{$album}_description"];
|
||||
$album_defn->limit = $post["{$album}_limit"] === "" ? null : $post["{$album}_limit"];
|
||||
module::set_var("dynamic", $album, serialize($album_defn));
|
||||
}
|
||||
|
||||
message::success(t("Dynamic Albums Configured"));
|
||||
|
||||
url::redirect("admin/dynamic");
|
||||
} else {
|
||||
$form = arr::overwrite($form, $post->as_array());
|
||||
$errors = arr::overwrite($errors, $post->errors());
|
||||
}
|
||||
}
|
||||
|
||||
print $this->_get_view($form);
|
||||
print $this->_get_view($form, $errors);
|
||||
}
|
||||
|
||||
private function _get_view($form=null) {
|
||||
private function _get_view($form=null, $errors=null) {
|
||||
$v = new Admin_View("admin.html");
|
||||
$v->content = new View("admin_dynamic.html");
|
||||
$v->content->form = empty($form) ? $this->_get_form() : $form;
|
||||
$v->content->tabs = array("updates" => t("Recent changes"), "popular" => t("Most viewed"));
|
||||
$v->content->errors = $errors;
|
||||
return $v;
|
||||
}
|
||||
|
||||
private function _get_form() {
|
||||
$form = array();
|
||||
foreach (array("updates", "popular") as $album) {
|
||||
$album_defn = unserialize(module::get_var("dynamic", $album));
|
||||
$form["{$album}_enabled"] = $album_defn->enabled;
|
||||
$form["{$album}_limit"] = $album_defn->limit;
|
||||
$form["{$album}_description"] = $album_defn->description;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private function _get_form2() {
|
||||
|
||||
$form = new Forge("admin/dynamic/handler", "", "post",
|
||||
array("id" => "g-admin-form"));
|
||||
|
@ -1,8 +1,40 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
</script>
|
||||
<div id="g-dyanmic-block" class="g-block ui-helper-clearfix">
|
||||
<h1> <?= t("Dynamic Albums") ?> </h1>
|
||||
|
||||
<div class="g-block-content">
|
||||
<?= $form ?>
|
||||
<?= form::open("admin/dynamic/handler", array("id" => "g-admin-form")) ?>
|
||||
<?= access::csrf_form_field() ?>
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<? foreach ($tabs as $album => $label): ?>
|
||||
<li><a href="#<?= $album ?>"><?= $label ?></a></li>
|
||||
<? endforeach ?>
|
||||
</ul>
|
||||
<? foreach (array("updates", "popular") as $album): ?>
|
||||
<div id="<?= $album ?>">
|
||||
<ul>
|
||||
<li>
|
||||
<?= form::label("{$album}_enabled", t("Enable")) ?>
|
||||
<?= form::checkbox("{$album}_enabled", 1, $form["{$album}_enabled"], "style='float: none'") ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= form::label("{$album}_limit", t("Limit (leave empty for unlimited)")) ?>
|
||||
<?= form::input("{$album}_limit", $form["{$album}_limit"]) ?>
|
||||
<?= empty($errors["{$album}_limit"]) ? "" : "<span class='g-error'>" . t("Limit must be numeric") ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= form::label("{$album}_description", t("Description")) ?>
|
||||
<?= form::textarea("{$album}_description", $form["{$album}_description"]) ?>
|
||||
<?= empty($errors["{$album}_description"]) ? "" : "<span class='g-error'>" . t("Description must be less than 2048 bytes") ?>
|
||||
</li>
|
||||
<ul>
|
||||
</div>
|
||||
<? endforeach ?>
|
||||
</div>
|
||||
<?= form::submit("submit", t("Submit")) ?>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user