1
0

Merge remote branch 'gallery3-contrib/master'

This commit is contained in:
rWatcher 2011-06-12 02:18:27 -04:00
commit 3b67c7dc81
2 changed files with 74 additions and 17 deletions

View File

@ -25,33 +25,58 @@ class Admin_Dynamic_Controller extends Admin_Controller {
access::verify_csrf();
$form = $this->_get_form();
if ($form->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;
module::set_var("dynamic", $album, serialize($album_defn));
$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));
$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());
}
message::success(t("Dynamic Albums Configured"));
url::redirect("admin/dynamic");
}
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"));

View File

@ -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>