mambax7/myconference

View on GitHub
admin/speeches.php

Summary

Maintainability
B
4 hrs
Test Coverage
<?php
// ------------------------------------------------------------------------- //
// Copyright 2004, Daniel Coletti (dcoletti@xtech.com.ar)                    //
// This file is part of myconference XOOPS' module.                          //
//                                                                           //
// 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA //
// ------------------------------------------------------------------------- //

use Xmf\Request;

include __DIR__ . '/admin_header.php';
include __DIR__ . '/conference.php';
require_once XOOPS_ROOT_PATH . '/class/module.errorhandler.php';

$eh = new ErrorHandler;

//if (isset($_POST['fct'])) {
//    $fct = trim($_POST['fct']);
//}
//if (isset($_GET['fct'])) {
//    $fct = trim($_GET['fct']);
//}
//
//if (!isset($fct)) {
//    $fct = '';
//}

$fct = Request::getString('fct', Request::getString('fct', '', 'GET'), 'POST');

switch ($fct) {
    case 'updspeech':
        $eh      = new ErrorHandler;
        $title   = Request::getString('title', '', 'POST');//$_POST['title'];
        $summary = Request::getText('summary', '', 'POST');//$_POST['summary'];
        $stime   = Request::getText('stime', '', 'POST');//$_POST['stime'];
        $date    = strtotime(array_shift($stime));
        $date += array_shift($stime);
        $stime     = $date;
        $speakerid = Request::getInt('speakerid', 0, 'POST');//(int)$_POST['speakerid'];
        $cid       = Request::getInt('cid', 0, 'POST');//$_POST['cid'];
        $tid       = Request::getInt('tid', 0, 'POST');//(int)$_POST['tid'];
        $duration  = Request::getInt('duration', 0, 'POST');//$_POST['duration'];
        $etime     = $stime + $duration * 60;
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[0]) //$_POST['xoops_upload_file'][0])
            && !empty(Request::getString('slides1', null, 'POST')) //$_POST['slides1'])
        ) {
            $slides1 = Request::getString('xoops_upload_file', null, 'POST')[0]; //$_POST['xoops_upload_file'][0];
            $slides1 = getFile($slides1);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[1]) //$_POST['xoops_upload_file'][1])
            && !empty(Request::getString('slides2', null, 'POST')) //$_POST['slides2'])
        ) {
            $slides2 = Request::getString('xoops_upload_file', null, 'POST')[1]; //$_POST['xoops_upload_file'][1];
            $slides2 = getFile($slides2);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[2]) //$_POST['xoops_upload_file'][2])
            && !empty(Request::getString('slides3', null, 'POST')) //$_POST['slides3'])
        ) {
            $slides3 = Request::getString('xoops_upload_file', null, 'POST')[2]; //$_POST['xoops_upload_file'][2];
            $slides3 = getFile($slides3);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[3]) //$_POST['xoops_upload_file'][3])
            && !empty(Request::getString('slides4', null, 'POST')) //$_POST['slides4'])
        ) {
            $slides4 = Request::getString('xoops_upload_file', null, 'POST')[3]; //$_POST['xoops_upload_file'][3];
            $slides4 = getFile($slides4);
        }
        $sid = Request::getInt('sid', 0, 'POST');//$_POST['sid'];
        $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('myconference_speeches')
                                  . " SET title='$title', summary='$summary', stime='$stime', etime='$etime', speakerid='$speakerid', cid='$cid', tid='$tid',duration='$duration', slides1='$slides1', slides2='$slides2', slides3='$slides3', slides4='$slides4' WHERE sid=$sid");// or $eh::show('0013');
        if ($result) {
            redirect_header('speeches.php', 2, _AM_MYCONFERENCE_DBUPDATED);
        }
        break;
    case 'editspeech':
        xoops_cp_header();

        $action = $action = Request::getString('action', 0, 'POST');//$_POST['action'];
        if ('upd' === $action) {
            $sid = Request::getInt('sid', 0, 'POST');//trim($_POST['sid']) or $eh::show('1001');
            $result = $xoopsDB->query('SELECT title,summary,stime,etime,speakerid,cid,tid,duration,slides1,slides2,slides3,slides4 FROM ' . $xoopsDB->prefix('myconference_speeches') . " WHERE sid=$sid");// or $eh::show('0013');
            list($title_v, $summary_v, $stime_v, $etime_v, $speakerid_v, $cid_v, $tid_v, $duration_v, $slides1_v, $slides2_v, $slides3_v, $slides4_v) = $xoopsDB->fetchRow($result);

            // Get the available Speakers
            $result = $xoopsDB->query('SELECT speakerid, name FROM ' . $xoopsDB->prefix('myconference_speakers') . ' ORDER BY Name ASC');// or $eh::show('0013');
            $speakerSelect = new \XoopsFormSelect(_AM_MYCONFERENCE_SPEAKERSNAME, 'speakerid', $speakerid_v);
            $speakerSelect->addOption(0, _AM_MYCONFERENCE_NONE);
            while (false !== (list($speakerid, $name) = $xoopsDB->fetchRow($result))) {
                $speakerSelect->addOption($speakerid, $name);
            }

            // Get the available congress
            $result = $xoopsDB->query('SELECT cid, title FROM ' . $xoopsDB->prefix('myconference_main') . ' ORDER BY Title ASC');// or $eh::show('0013');
            $cid_select = new \XoopsFormSelect(_AM_MYCONFERENCE_CONFERENCESTITLE, 'cid', $cid_v);
            $cid_select->addOption(0, _AM_MYCONFERENCE_NONE);
            while (false !== (list($cid, $title) = $xoopsDB->fetchRow($result))) {
                $cid_select->addOption($cid, $title);
            }

            // Get the available tracks
            $result = $xoopsDB->query('SELECT tid, title FROM ' . $xoopsDB->prefix('myconference_tracks') . ' ORDER BY Title ASC');// or $eh::show('0013');
            $trk_select = new \XoopsFormSelect(_AM_MYCONFERENCE_TRACKSTITLE, 'tid', $tid_v);
            $trk_select->addOption(0, _AM_MYCONFERENCE_NONE);
            while (false !== (list($tid, $title) = $xoopsDB->fetchRow($result))) {
                $trk_select->addOption($tid, $title);
            }

            $title = new \XoopsFormText(_AM_MYCONFERENCE_TITLE, 'title', 50, 100, $title_v);
            // $stime = new \XoopsFormText(_AM_MYCONFERENCE_STIME, "stime", 14, 16, date("Y-m-d H:i", $stime_v));
            $stime    = XoopsFormDateTimeI(_AM_MYCONFERENCE_STIME, 'stime', 10, $stime_v, 30);
            $duration = new \XoopsFormText(_AM_MYCONFERENCE_DURATION, 'duration', 3, 3, $duration_v);
            $fct      = new \XoopsFormHidden('fct', 'updspeech');
            $sid      = new \XoopsFormHidden('sid', $sid);
            $slides1  = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES1, 'slides1', 2048000);
            $slides2  = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES2, 'slides2', 2048000);
            $slides3  = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES3, 'slides3', 2048000);
            $slides4  = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES4, 'slides4', 2048000);
            $summary  = new \XoopsFormTextArea(_AM_MYCONFERENCE_SUMMARY, 'summary', '', 25, 100);
            $summary->setValue($summary_v);
            $submit_button = new \XoopsFormButton('', 'submit', _AM_MYCONFERENCE_UPDATE, 'submit');

            $form = new \XoopsThemeForm(_AM_MYCONFERENCE_UPDSPEECH, 'editspeechform', 'speeches.php');
            $form->setExtra('enctype="multipart/form-data"');
            $form->addElement($title, true);
            $form->addElement($stime);
            $form->addElement($speakerSelect, true);
            $form->addElement($cid_select);
            $form->addElement($trk_select);
            $form->addElement($duration, true);
            $form->addElement($slides1);
            $form->addElement($slides2);
            $form->addElement($slides3);
            $form->addElement($slides4);
            $form->addElement($summary, true);
            $form->addElement($fct);
            $form->addElement($sid);
            $form->addElement($submit_button);

            $form->display();

            xoops_cp_footer();
        } elseif ('del' === $action) {
            $sid = Request::getInt('sid', 0, 'POST');//trim($_POST['sid']) or $eh::show('1001');
            xoops_confirm(['fct' => 'delspeechok', 'sid' => $sid], 'speeches.php', _AM_MYCONFERENCE_DELSPEECH);
            xoops_cp_footer();
        }
        break;

    case 'delspeechok':
        $speakerid = Request::getInt('sid', 0, 'POST');//trim($_POST['sid']) or $eh::show('1001');
        $result = $xoopsDB->query('DELETE FROM ' . $xoopsDB->prefix('myconference_speeches') . " WHERE sid=$sid");// or $eh::show('0013');
        redirect_header('speeches.php', 2, _AM_MYCONFERENCE_DBUPDATED);
        break;
    case 'addspeech':
        $eh      = new ErrorHandler;
        $title   = Request::getString('title', '', 'POST');//$_POST['title'];
        $summary = Request::getText('summary', '', 'POST');//$_POST['summary'];

        $stime = Request::getString('stime', '', 'POST');//$_POST['stime'];
        $date  = strtotime(array_shift($stime));
        $date += array_shift($stime);
        $stime     = $date;
        $duration  = Request::getInt('duration', 0, 'POST');//$_POST['duration'];
        $etime     = $stime + $duration * 60;
        $speakerid = Request::getInt('speakerid', 0, 'POST');//$_POST['speakerid'];
        $cid       = Request::getInt('cid', 0, 'POST');//$_POST['cid'];
        $tid       = Request::getInt('tid', 0, 'POST');//$_POST['tid'];

        // strip time and date
        //reset($stime);
        //$date = strtotime(array_shift($stime));
        //$date += array_shift($stime);
        //$stime = $date;

        if (isset(Request::getString('xoops_upload_file', null, 'POST')[0]) //$_POST['xoops_upload_file'][0])
            && !empty(Request::getString('slides1', null, 'POST')) //$_POST['slides1'])
        ) {
            $slides1 = Request::getString('xoops_upload_file', null, 'POST')[0]; //$_POST['xoops_upload_file'][0];
            $slides1 = getFile($slides1);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[1]) //$_POST['xoops_upload_file'][1])
            && !empty(Request::getString('slides2', null, 'POST')) //$_POST['slides2'])
        ) {
            $slides2 = Request::getString('xoops_upload_file', null, 'POST')[1]; //$_POST['xoops_upload_file'][1];
            $slides2 = getFile($slides2);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[2]) //$_POST['xoops_upload_file'][2])
            && !empty(Request::getString('slides3', null, 'POST')) //$_POST['slides3'])
        ) {
            $slides3 = Request::getString('xoops_upload_file', null, 'POST')[2]; //$_POST['xoops_upload_file'][2];
            $slides3 = getFile($slides3);
        }
        if (isset(Request::getString('xoops_upload_file', null, 'POST')[3]) //$_POST['xoops_upload_file'][3])
            && !empty(Request::getString('slides4', null, 'POST')) //$_POST['slides4'])
        ) {
            $slides4 = Request::getString('xoops_upload_file', null, 'POST')[3]; //$_POST['xoops_upload_file'][3];
            $slides4 = getFile($slides4);
        }
        $sid = Request::getInt('sid', 0, 'POST');//$_POST['sid'];

        $result = $xoopsDB->query('INSERT INTO ' . $xoopsDB->prefix('myconference_speeches')
                                  . " (title,summary,stime,etime,speakerid,cid,tid,slides1,slides2,slides3,slides4,duration) VALUES (\"$title\",\"$summary\",\"$stime\",\"$etime\", \"$speakerid\",\"$cid\",\"$tid\",\"$slides1\",\"$slides2\",\"$slides3\",\"$slides4\",\"$duration\")");// or $eh::show('0013');
        if ($result) {
            redirect_header('speeches.php', 2, _AM_MYCONFERENCE_DBUPDATED);
        }
        break;
    default:
        xoops_cp_header();

        // Get available speeches for the Update/Delete form
        $result = $xoopsDB->query('SELECT sid, title FROM ' . $xoopsDB->prefix('myconference_speeches') . ' ORDER BY Title ASC');// or $eh::show('0013');
        $speech_select = new \XoopsFormSelect(_AM_MYCONFERENCE_TITLE, 'sid');
        while (false !== (list($sid, $title) = $xoopsDB->fetchRow($result))) {
            $speech_select->addOption($sid, $title);
        }
        $action_select = new \XoopsFormSelect(_AM_MYCONFERENCE_ACTION, 'action');
        $action_select->addOption('upd', _AM_MYCONFERENCE_EDIT);
        $action_select->addOption('del', _AM_MYCONFERENCE_DELE);
        $fct           = new \XoopsFormHidden('fct', 'editspeech');
        $submit_button = new \XoopsFormButton('', 'submit', _AM_MYCONFERENCE_SUBMIT, 'submit');

        $editform = new \XoopsThemeForm(_AM_MYCONFERENCE_EDITSPEECH, 'editspeechform', 'speeches.php');
        $editform->setExtra('enctype="multipart/form-data"');
        $editform->addElement($fct);
        $editform->addElement($speech_select);
        $editform->addElement($action_select);
        $editform->addElement($submit_button);

        $editform->display();

        $cid_v = '';
        // Get the available Speakers
        $result = $xoopsDB->query('SELECT speakerid, name FROM ' . $xoopsDB->prefix('myconference_speakers') . ' ORDER BY Name ASC');// or $eh::show('0013');
        $speakerSelect = new \XoopsFormSelect(_AM_MYCONFERENCE_SPEAKERSNAME, 'speakerid');
        $speakerSelect->addOption(0, _AM_MYCONFERENCE_NONE);
        while (false !== (list($speakerid, $name) = $xoopsDB->fetchRow($result))) {
            $speakerSelect->addOption($speakerid, $name);
        }

        // Get the available congress
        $result = $xoopsDB->query('SELECT cid, title FROM ' . $xoopsDB->prefix('myconference_main') . ' ORDER BY Title ASC');// or $eh::show('0013');
        $cid_select = new \XoopsFormSelect(_AM_MYCONFERENCE_CONFERENCESTITLE, 'cid', $cid_v);
        $cid_select->addOption(0, _AM_MYCONFERENCE_NONE);
        while (false !== (list($cid, $title) = $xoopsDB->fetchRow($result))) {
            $cid_select->addOption($cid, $title);
        }

        // Get the available tracks
        $result = $xoopsDB->query('SELECT tid, title FROM ' . $xoopsDB->prefix('myconference_tracks') . ' ORDER BY Title ASC');// or $eh::show('0013');
        $trk_select = new \XoopsFormSelect(_AM_MYCONFERENCE_TRACKSTITLE, 'tid', 0);
        $trk_select->addOption(0, _AM_MYCONFERENCE_NONE);
        while (false !== (list($tid, $title) = $xoopsDB->fetchRow($result))) {
            $trk_select->addOption($tid, $title);
        }

        $title         = new \XoopsFormText(_AM_MYCONFERENCE_TITLE, 'title', 50, 100);
        $stime         = XoopsFormDateTimeI(_AM_MYCONFERENCE_STIME, 'stime', 10, 0, 30);
        $duration      = new \XoopsFormText(_AM_MYCONFERENCE_DURATION, 'duration', 3, 3);
        $fct           = new \XoopsFormHidden('fct', 'addspeech');
        $slides1       = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES1, 'slides1', 2048000);
        $slides2       = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES2, 'slides2', 2048000);
        $slides3       = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES3, 'slides3', 2048000);
        $slides4       = new \XoopsFormFile(_AM_MYCONFERENCE_SLIDES4, 'slides4', 2048000);
        $summary       = new \XoopsFormTextArea(_AM_MYCONFERENCE_SUMMARY, 'summary', '', 25, 100);
        $submit_button = new \XoopsFormButton('', 'submit', _AM_MYCONFERENCE_UPDATE, 'submit');

        $form = new \XoopsThemeForm(_AM_MYCONFERENCE_ADDSPEECH, 'addspeechform', 'speeches.php');
        $form->setExtra('enctype="multipart/form-data"');
        $form->addElement($title, true);
        $form->addElement($speakerSelect, true);
        $form->addElement($cid_select);
        $form->addElement($trk_select);
        $form->addElement($stime, true);
        $form->addElement($duration, true);
        $form->addElement($slides1);
        $form->addElement($slides2);
        $form->addElement($slides3);
        $form->addElement($slides4);
        $form->addElement($summary, true);
        $form->addElement($fct);
        $form->addElement($submit_button);

        $form->display();

        xoops_cp_footer();
}