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_info" => t("Thumbnail information"),
"thumb_top" => t("Top of thumbnail display")),
"menu" => array("album" => t("Add an album menu element"),
"photo" => t("Add an photo menu element")),
"event" => array("batch_complete" => t("Batch completion"),
"event" => array("admin_menu" => t("Add an admin menu element"),
"album_menu" => t("Add an album menu element"),
"batch_complete" => t("Batch completion"),
"comment_add_form" => t("Comment add form creation"),
"comment_created" => t("Comment created"),
"comment_updated" => t("Comment updated"),
@ -62,8 +62,9 @@ $config["methods"] = array(
"item_related_update" => t("Photo meta data update"),
"item_related_update_batch" => t("Photo meta data 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_created" => t("User created"),
"user_login" => t("User login"),
"user_logout" => t("User logout")));

View File

@ -49,6 +49,7 @@ class Admin_Developer_Controller extends Admin_Controller {
$post = new Validation($_POST);
$post->add_rules("name", "required");
$post->add_rules("display_name", "required");
$post->add_rules("description", "required");
$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() {
$form = array("name" => "", "description" => "", "theme[]" => array(), "menu[]" => array(),
$form = array("name" => "", "display_name" => "", "description" => "", "theme[]" => array(),
"event[]" => array());
$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->theme = $config["theme"];
$v->event = $config["event"];
$v->menu = $config["menu"];
$v->form = $form;
$v->errors = $errors;
return $v;

View File

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

View File

@ -13,6 +13,13 @@
<p class="g-error"><?= t("Module is already implemented") ?></p>
<? endif ?>
</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 ?>>
<?= form::label("description", t("Description")) ?>
<?= form::input("description", $form["description"]) ?>
@ -23,15 +30,11 @@
<li>
<ul>
<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[]"]) ?>
</li>
<li>
<?= form::label("menu[]", t("Menu Callback")) ?>
<?= form::dropdown(array("name" => "menu[]", "multiple" => true, "size" => 6), $menu, $form["menu[]"]) ?>
</li>
<li>
<?= form::label("event[]", t("Gallery Event Handlers")) ?>
<?= form::label("event[]", t("Gallery event handlers")) ?>
<?= form::dropdown(array("name" => "event[]", "multiple" => true, "size" => 6), $event, $form["event[]"]) ?>
</li>
</ul>

View File

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