1
0

Update the developer module to allow the internal name and display name to be supplied seperately. Also update so menus are generated as part of the event mechanism.

This commit is contained in:
Tim Almdal 2009-10-29 08:04:38 -07:00
parent 8d01f7f7d1
commit b8a4029fb4
6 changed files with 62 additions and 88 deletions

View File

@ -49,9 +49,9 @@ $config["methods"] = array(
"thumb_bottom" => t("Bottom of thumbnail"), "thumb_bottom" => t("Bottom of thumbnail"),
"thumb_info" => t("Thumbnail information"), "thumb_info" => t("Thumbnail information"),
"thumb_top" => t("Top of thumbnail display")), "thumb_top" => t("Top of thumbnail display")),
"menu" => array("album" => t("Add an album menu element"), "event" => array("admin_menu" => t("Add an admin menu element"),
"photo" => t("Add an photo menu element")), "album_menu" => t("Add an album menu element"),
"event" => array("batch_complete" => t("Batch completion"), "batch_complete" => t("Batch completion"),
"comment_add_form" => t("Comment add form creation"), "comment_add_form" => t("Comment add form creation"),
"comment_created" => t("Comment created"), "comment_created" => t("Comment created"),
"comment_updated" => t("Comment updated"), "comment_updated" => t("Comment updated"),
@ -62,8 +62,9 @@ $config["methods"] = array(
"item_related_update" => t("Photo meta data update"), "item_related_update" => t("Photo meta data update"),
"item_related_update_batch" => t("Photo meta data update"), "item_related_update_batch" => t("Photo meta data update"),
"item_updated" => t("Album or photo update"), "item_updated" => t("Album or photo update"),
"photo_menu" => t("Add a photo menu element"),
"site_menu" => t("Add a site menu element"),
"user_before_delete" => t("Before user deletion"), "user_before_delete" => t("Before user deletion"),
"user_created" => t("User created"), "user_created" => t("User created"),
"user_login" => t("User login"), "user_login" => t("User login"),
"user_logout" => t("User logout"))); "user_logout" => t("User logout")));

View File

@ -49,6 +49,7 @@ class Admin_Developer_Controller extends Admin_Controller {
$post = new Validation($_POST); $post = new Validation($_POST);
$post->add_rules("name", "required"); $post->add_rules("name", "required");
$post->add_rules("display_name", "required");
$post->add_rules("description", "required"); $post->add_rules("description", "required");
$post->add_callbacks("name", array($this, "_is_module_defined")); $post->add_callbacks("name", array($this, "_is_module_defined"));
@ -216,7 +217,7 @@ class Admin_Developer_Controller extends Admin_Controller {
} }
private function _get_module_form() { private function _get_module_form() {
$form = array("name" => "", "description" => "", "theme[]" => array(), "menu[]" => array(), $form = array("name" => "", "display_name" => "", "description" => "", "theme[]" => array(),
"event[]" => array()); "event[]" => array());
$errors = array_fill_keys(array_keys($form), ""); $errors = array_fill_keys(array_keys($form), "");
@ -231,7 +232,6 @@ class Admin_Developer_Controller extends Admin_Controller {
$v->hidden = array("csrf" => access::csrf_token()); $v->hidden = array("csrf" => access::csrf_token());
$v->theme = $config["theme"]; $v->theme = $config["theme"];
$v->event = $config["event"]; $v->event = $config["event"];
$v->menu = $config["menu"];
$v->form = $form; $v->form = $form;
$v->errors = $errors; $v->errors = $errors;
return $v; return $v;

View File

@ -54,14 +54,10 @@ class developer_task_Core {
$context["block"] = array(); $context["block"] = array();
self::_render_helper_file($context, "block"); self::_render_helper_file($context, "block");
break; break;
case 4: // Generate menu helper case 4: // Generate event helper
$context["menu"] = !isset($context["menu"]) ? array() : $context["menu"];
self::_render_helper_file($context, "menu");
break;
case 5: // Generate event helper
self::_render_helper_file($context, "event"); self::_render_helper_file($context, "event");
break; break;
case 6: // Generate admin controller case 5: // Generate admin controller
$file = "{$context['module_path']}/controllers/admin_{$context['module']}.php"; $file = "{$context['module_path']}/controllers/admin_{$context['module']}.php";
ob_start(); ob_start();
$v = new View("admin_controller.txt"); $v = new View("admin_controller.txt");
@ -72,7 +68,7 @@ class developer_task_Core {
file_put_contents($file, ob_get_contents()); file_put_contents($file, ob_get_contents());
ob_end_clean(); ob_end_clean();
break; break;
case 7: // Generate admin form case 6: // Generate admin form
$file = "{$context['module_path']}/views/admin_{$context['module']}.html.php"; $file = "{$context['module_path']}/views/admin_{$context['module']}.html.php";
ob_start(); ob_start();
$v = new View("admin_html.txt"); $v = new View("admin_html.txt");
@ -83,7 +79,7 @@ class developer_task_Core {
file_put_contents($file, ob_get_contents()); file_put_contents($file, ob_get_contents());
ob_end_clean(); ob_end_clean();
break; break;
case 8: // Generate controller case 7: // Generate controller
$file = "{$context['module_path']}/controllers/{$context['module']}.php"; $file = "{$context['module_path']}/controllers/{$context['module']}.php";
ob_start(); ob_start();
$v = new View("controller.txt"); $v = new View("controller.txt");
@ -95,7 +91,7 @@ class developer_task_Core {
file_put_contents($file, ob_get_contents()); file_put_contents($file, ob_get_contents());
ob_end_clean(); ob_end_clean();
break; break;
case 9: // Generate sidebar block view case 8: // Generate sidebar block view
$file = "{$context['module_path']}/views/{$context['module']}_block.html.php"; $file = "{$context['module_path']}/views/{$context['module']}_block.html.php";
ob_start(); ob_start();
$v = new View("block_html.txt"); $v = new View("block_html.txt");
@ -107,11 +103,11 @@ class developer_task_Core {
file_put_contents($file, ob_get_contents()); file_put_contents($file, ob_get_contents());
ob_end_clean(); ob_end_clean();
break; break;
case 10: // Generate module.info (do last) case 9: // Generate module.info (do last)
$file = "{$context["module_path"]}/module.info"; $file = "{$context["module_path"]}/module.info";
ob_start(); ob_start();
$v = new View("module_info.txt"); $v = new View("module_info.txt");
$v->module_name = $context["name"]; $v->module_name = $context["display_name"];
$v->module_description = $context["description"]; $v->module_description = $context["description"];
print $v->render(); print $v->render();
file_put_contents($file, ob_get_contents()); file_put_contents($file, ob_get_contents());

View File

@ -13,6 +13,13 @@
<p class="g-error"><?= t("Module is already implemented") ?></p> <p class="g-error"><?= t("Module is already implemented") ?></p>
<? endif ?> <? endif ?>
</li> </li>
<li <? if (!empty($errors["display_name"])): ?> class="g-error"<? endif ?>>
<?= form::label("display_name", t("Display name")) ?>
<?= form::input("display_name", $form["display_name"]) ?>
<? if (!empty($errors["display_name"]) && $errors["display_name"] == "required"): ?>
<p class="g-error"><?= t("Module display_name is required")?></p>
<? endif ?>
</li>
<li <? if (!empty($errors["description"])): ?> class="g-error"<? endif ?>> <li <? if (!empty($errors["description"])): ?> class="g-error"<? endif ?>>
<?= form::label("description", t("Description")) ?> <?= form::label("description", t("Description")) ?>
<?= form::input("description", $form["description"]) ?> <?= form::input("description", $form["description"]) ?>
@ -23,15 +30,11 @@
<li> <li>
<ul> <ul>
<li> <li>
<?= form::label("theme[]", t("Theme Callbacks")) ?> <?= form::label("theme[]", t("Theme callbacks")) ?>
<?= form::dropdown(array("name" => "theme[]", "multiple" => true, "size" => 6), $theme, $form["theme[]"]) ?> <?= form::dropdown(array("name" => "theme[]", "multiple" => true, "size" => 6), $theme, $form["theme[]"]) ?>
</li> </li>
<li> <li>
<?= form::label("menu[]", t("Menu Callback")) ?> <?= form::label("event[]", t("Gallery event handlers")) ?>
<?= form::dropdown(array("name" => "menu[]", "multiple" => true, "size" => 6), $menu, $form["menu[]"]) ?>
</li>
<li>
<?= form::label("event[]", t("Gallery Event Handlers")) ?>
<?= form::dropdown(array("name" => "event[]", "multiple" => true, "size" => 6), $event, $form["event[]"]) ?> <?= form::dropdown(array("name" => "event[]", "multiple" => true, "size" => 6), $event, $form["event[]"]) ?>
</li> </li>
</ul> </ul>

View File

@ -19,75 +19,100 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
class <?= $module ?>_event { class <?= $module ?>_event {
<? if (!empty($callbacks["admin_menu"])): ?>
static function admin_menu($menu, $theme) {
}
<? endif ?>
<? if (!empty($callbacks["album_menu"])): ?>
static function album_menu($menu, $theme) {
}
<? endif ?>
<? if (!empty($callbacks["admin_menu"])): ?>
static function admin_menu($menu, $theme) {
}
<? endif ?>
<? if (!empty($callbacks["batch_complete"])): ?> <? if (!empty($callbacks["batch_complete"])): ?>
static function batch_complete() { static function batch_complete() {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["comment_add_form"])): ?> <? if (!empty($callbacks["comment_add_form"])): ?>
static function comment_add_form($form) { static function comment_add_form($form) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["comment_created"])): ?> <? if (!empty($callbacks["comment_created"])): ?>
static function comment_created($theme, $args) { static function comment_created($theme, $args) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["comment_updated"])): ?> <? if (!empty($callbacks["comment_updated"])): ?>
static function comment_updated($old, $new) { static function comment_updated($old, $new) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["group_before_delete"])): ?> <? if (!empty($callbacks["group_before_delete"])): ?>
static function group_before_delete($group) { static function group_before_delete($group) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["group_created"])): ?> <? if (!empty($callbacks["group_created"])): ?>
static function group_created($group) { static function group_created($group) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["item_before_delete"])): ?> <? if (!empty($callbacks["item_before_delete"])): ?>
static function item_before_delete($item) { static function item_before_delete($item) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["item_created"])): ?> <? if (!empty($callbacks["item_created"])): ?>
static function item_created($item) { static function item_created($item) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["item_related_update"])): ?> <? if (!empty($callbacks["item_related_update"])): ?>
static function item_related_update($item) { static function item_related_update($item) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["item_related_update_batch"])): ?> <? if (!empty($callbacks["item_related_update_batch"])): ?>
static function item_related_update_batch($sql) { static function item_related_update_batch($sql) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["item_updated"])): ?> <? if (!empty($callbacks["item_updated"])): ?>
static function item_updated($old, $new) { static function item_updated($old, $new) {
} }
<? endif ?>
<? if (!empty($callbacks["photo_menu"])): ?>
static function photo_menu($menu, $theme) {
}
<? endif ?>
<? if (!empty($callbacks["site_menu"])): ?>
static function site_menu($menu, $theme) {
}
<? endif ?> <? endif ?>
<? if (!empty($callbacks["user_before_delete"])): ?> <? if (!empty($callbacks["user_before_delete"])): ?>
static function user_before_delete($user) { static function user_before_delete($user) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["user_created"])): ?> <? if (!empty($callbacks["user_created"])): ?>
static function user_created($user) { static function user_created($user) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["user_login"])): ?> <? if (!empty($callbacks["user_login"])): ?>
static function user_login($user) { static function user_login($user) {
} }
<? endif ?> <? endif ?>
<? if (!empty($callbacks["user_logout"])): ?> <? if (!empty($callbacks["user_logout"])): ?>
static function user_logout($user) { static function user_logout($user) {

View File

@ -1,51 +0,0 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<?= "<?php defined(\"SYSPATH\") or die(\"No direct script access.\");" ?>
/**
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2009 Bharat Mediratta
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class <?= $module ?>_menu {
static function admin($menu, $theme) {
$menu->get("settings_menu")
->append(Menu::factory("link")
->id("<?= $module ?>_menu")
->label(t("<?= $module_name ?> Administration"))
->url(url::site("admin/<?= $module ?>")));
}
<? if (!empty($callbacks["album"])): ?>
static function album($menu, $theme) {
}
<? endif ?>
<? if (!empty($callbacks["photo"])): ?>
static function photo($menu, $theme) {
}
<? endif ?>
static function site($menu, $theme) {
$item = $theme->item();
if ($item && access::can("edit", $item)) {
$options_menu = $menu->get("options_menu")
->append(Menu::factory("dialog")
->id("<?= $module ?>")
->label(t("Peform <?= $module_name ?> Processing"))
->url(url::site("<?= $module ?>/index/$item->id")));
}
}
}