public static function route($action) { $title = $content = NULL; $message = Block_Admin::getMessage(); if (isset($_REQUEST['block_id'])) { $block = new Block_Item($_REQUEST['block_id']); } else { $block = new Block_Item(); } switch ($action) { case 'new': $title = dgettext('block', 'New Block'); $content = Block_Admin::edit($block); break; case 'delete': if (!Current_User::authorized('block', 'delete_block', $_REQUEST['block_id'])) { Current_User::disallow(); } $block->kill(); Block_Admin::sendMessage(dgettext('block', 'Block deleted.')); PHPWS_Core::goBack(); break; case 'edit': if (!Current_User::authorized('block', 'edit_block', $_REQUEST['block_id'])) { Current_User::disallow(); } $title = 'Edit Block'; $content = Block_Admin::edit($block); break; case 'pin_all': if (!Current_User::authorized('block', 'delete_block', $_REQUEST['block_id'])) { Current_User::disallow(); } Block_Admin::pinBlockAll($block); Block_Admin::sendMessage(dgettext('block', 'Block pinned'), 'list'); break; case 'remove': if (!Current_User::authorized('block', 'edit_block', $_REQUEST['block_id'])) { Current_User::disallow(); } Block_Admin::removeBlock(); PHPWS_Core::goBack(); break; case 'postBlock': if (Block_Admin::postBlock($block)) { $result = $block->save(); Block_Admin::sendMessage(dgettext('block', 'Block saved'), 'list'); } else { $message = dgettext('block', 'Block must have a title, some content, or a file attachment.'); $title = 'Edit Block'; $content = Block_Admin::edit($block); } break; case 'settings': $title = dgettext('block', 'Settings'); $content = Block_Admin::settings(); break; case 'post_settings': $result = Block_Admin::postSettings(); if (is_array($result)) { $message = implode('<br />', $result); $title = dgettext('block', 'Settings'); $content = Block_Admin::settings(); } else { Block_Admin::sendMessage(dgettext('block', 'Settings saved'), 'settings'); } break; case 'postJSBlock': if (Block_Admin::postBlock($block)) { $result = $block->save(); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); } elseif (isset($_REQUEST['key_id'])) { Block_Admin::lockBlock($block->id, $_REQUEST['key_id']); } PHPWS_Core::goBack(); } else { $template['TITLE'] = dgettext('block', 'New Block'); $template['CONTENT'] = Block_Admin::edit($block, TRUE); $template['MESSAGE'] = dgettext('block', 'Block must have a title, some content, or a file attachment.'); $content = PHPWS_Template::process($template, 'block', 'admin.tpl'); Layout::nakedDisplay($content); } break; case 'lock': $result = Block_Admin::lockBlock($_GET['block_id'], $_GET['key_id']); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); } PHPWS_Core::goBack(); break; case 'list': $title = dgettext('block', 'Block list'); $content = Block_Admin::blockList(); break; case 'js_block_edit': $template['CONTENT'] = Block_Admin::edit($block, TRUE); echo PHPWS_Template::process($template, 'block', 'admin.tpl'); exit; break; } $template['TITLE'] =& $title; if (isset($message)) { $template['MESSAGE'] =& $message; } $template['CONTENT'] =& $content; return PHPWS_Template::process($template, 'block', 'admin.tpl'); }
<?php /** * @version $Id$ * @author Matthew McNaney <mcnaney at gmail dot com> */ if (!defined('PHPWS_SOURCE_DIR')) { include '../../core/conf/404.html'; exit; } if (!Current_User::authorized('block')) { Current_User::disallow(); return; } PHPWS_Core::initModClass('block', 'Block_Admin.php'); Block_Admin::action();