コード例 #1
0
ファイル: Admin.php プロジェクト: HaldunA/phpwebsite
 public static function main()
 {
     $tpl['MESSAGE'] = NULL;
     $message = RSS_Admin::getMessage();
     PHPWS_Core::initModClass('rss', 'Feed.php');
     PHPWS_Core::initModClass('rss', 'Channel.php');
     if (!Current_User::allow('rss')) {
         Current_User::disallow();
     }
     $panel = RSS_Admin::adminPanel();
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } elseif (isset($_REQUEST['tab'])) {
         $command = $_REQUEST['tab'];
     } else {
         $command = $panel->getCurrentTab();
     }
     if (isset($_REQUEST['channel_id'])) {
         $channel = new RSS_Channel($_REQUEST['channel_id']);
     } else {
         $channel = new RSS_Channel();
     }
     if (isset($_REQUEST['feed_id'])) {
         $feed = new RSS_Feed($_REQUEST['feed_id']);
     } else {
         $feed = new RSS_Feed();
     }
     switch ($command) {
         case 'channels':
             $tpl = RSS_Admin::channels();
             break;
         case 'settings':
             $tpl = RSS_Admin::settings();
             break;
         case 'save_settings':
             $result = RSS_Admin::save_settings();
             if (!$result) {
                 PHPWS_Settings::save('rss');
                 $result = dgettext('rss', 'Settings saved successfully.');
             }
             $tpl = RSS_Admin::settings();
             $tpl['MESSAGE'] =& $result;
             break;
         case 'feedInfo':
             $feed = new RSS_Feed(filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT));
             echo json_encode($feed);
             exit;
             break;
         case 'save_feed':
             $result = $feed->post();
             if (is_array($result)) {
                 $tpl['CONTENT'] = RSS_Admin::editFeed($feed, true);
                 $tpl['MESSAGE'] = implode('<br />', $result);
             } else {
                 $result = $feed->save();
                 PHPWS_Core::reroute('index.php?module=rss&tab=import');
             }
             break;
         case 'edit_channel':
             $tpl = RSS_Admin::editChannel($channel);
             break;
         case 'post_channel':
             $result = $channel->post();
             if (is_array($result)) {
                 $message = implode('<br />', $result);
                 $tpl = RSS_Admin::editChannel($channel);
             } else {
                 $result = $channel->save();
                 if (PHPWS_Error::isError($result)) {
                     RSS_Admin::sendMessage(dgettext('rss', 'An error occurred when saving your channel.'), 'channels');
                 } else {
                     RSS_Admin::sendMessage(dgettext('rss', 'Channel saved.'), 'channels');
                 }
             }
             break;
         case 'reset_feed':
             $feed->reset();
         case 'import':
             $tpl = RSS_Admin::import();
             break;
         case 'turn_on_display':
             $feed->display = 1;
             $feed->save();
             $tpl = RSS_Admin::import();
             break;
         case 'turn_off_display':
             $feed->display = 0;
             $feed->save();
             $tpl = RSS_Admin::import();
             break;
         case 'add_feed':
             $tpl = RSS_Admin::editFeed($feed);
             Layout::nakedDisplay(PHPWS_Template::process($tpl, 'rss', 'main.tpl'));
             exit;
             break;
         case 'edit_feed':
             $tpl = RSS_Admin::editFeed($feed);
             Layout::nakedDisplay(PHPWS_Template::process($tpl, 'rss', 'main.tpl'));
             exit;
             break;
         case 'delete_feed':
             $feed->delete();
             $tpl = RSS_Admin::import();
             break;
         default:
             PHPWS_Core::errorPage('404');
             break;
     }
     if (!empty($message)) {
         $tpl['MESSAGE'] = $message;
     }
     $content = PHPWS_Template::process($tpl, 'rss', 'main.tpl');
     $panel->setContent($content);
     $content = $panel->display();
     Layout::add(PHPWS_ControlPanel::display($content));
 }