dszymczuk/dsEventCalendar57

View on GitHub
controller.php

Summary

Maintainability
B
5 hrs
Test Coverage
<?php

namespace Concrete\Package\Dseventcalendar;
use Package;
use BlockType;
use SinglePage;
use Loader;

defined('C5_EXECUTE') or die(_("Access Denied."));

class Controller extends Package {

    protected $pkgHandle = 'dsEventCalendar';
    protected $appVersionRequired = '5.7.0.4';
    protected $pkgVersion = '3.4.1';
    protected $pkgAutoloaderRegistries = array(
        'src/dsEventCalendar' => '\dsEventCalendar'
    );

    public function getPackageDescription()
    {
        return t('Event Calendar - you can add, edit and remove one day events on your page');
    }

    public function getPackageName()
    {
        return t('Event Calendar');
    }

    public function install() {
        $pkg = parent::install();

        // install block
        BlockType::installBlockTypeFromPackage('event_calendar', $pkg);


        $p2 = SinglePage::add('/dashboard/event_calendar/list_calendar', $pkg);
        if (is_object($p2)) {
            $p2->update(array('cName' => t('Calendars list'), 'cDescription' => ''));
        }

        $p4 = SinglePage::add('/dashboard/event_calendar/list_event', $pkg);
        if (is_object($p4)) {
            $p4->update(array('cName' => t('Events list'), 'cDescription' => ''));
        }

        $p3 = SinglePage::add('/dashboard/event_calendar/calendar', $pkg);
        if (is_object($p3)) {
            $p3->update(array('cName' => t('Add / edit calendar'), 'cDescription' => ''));
        }

        $p5 = SinglePage::add('/dashboard/event_calendar/event', $pkg);
        if (is_object($p5)) {
            $p5->update(array('cName' => t('Add / edit event'), 'cDescription' => ''));
        }

        $p6 = SinglePage::add('/dashboard/event_calendar/types', $pkg);
        if (is_object($p6)) {
            $p6->update(array('cName' => t('Type of events'), 'cDescription' => ''));
        }

        $p7 = SinglePage::add('/dashboard/event_calendar/settings', $pkg);
        if (is_object($p7)) {
            $p7->update(array('cName' => t('Settings'), 'cDescription' => ''));
        }

        $this->installSettings();
    }


    private function installSettings()
    {
        $db = Loader::db();

        //check is settings are duplicate

        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'lang'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'lang' , value='en-gb'";
            $db->Execute($sql);
        }

        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'lang_datepicker'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'lang_datepicker' , value='en-GB'";
            $db->Execute($sql);
        }


        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'formatEvent'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'formatEvent' , value='DD MMMM YYYY'";
            $db->Execute($sql);
        }


        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'startFrom'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'startFrom' , value='1'";
            $db->Execute($sql);
        }


        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'eventsInDay'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'eventsInDay' , value='3'";
            $db->Execute($sql);
        }


        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'default_color'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'default_color' , value='#808080'";
            $db->Execute($sql);
        }


        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'timeFormat'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'timeFormat' , value='HH:mm'";
            $db->Execute($sql);
        }

        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'scrollTime'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'scrollTime' , value='1'";
            $db->Execute($sql);
        }

        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'scrollMonth'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'scrollMonth' , value='1'";
            $db->Execute($sql);
        }

        $sql = "select count(*) as count from dsEventCalendarSettings where opt= 'scrollInput'";
        $row = $db->GetRow($sql);
        if ($row['count'] == 0) {
            $sql = "INSERT INTO dsEventCalendarSettings SET opt= 'scrollInput' , value='1'";
            $db->Execute($sql);
        }

        //remove duplicate
        $sql = "DELETE s1 FROM dsEventCalendarSettings s1, dsEventCalendarSettings s2 WHERE s1.opt = s2.opt AND s1.settingID > s2.settingID";
        $db->Execute($sql);

    }

}


?>