dszymczuk/dsEventCalendar57

View on GitHub
controllers/single_page/dashboard/event_calendar/settings.php

Summary

Maintainability
C
7 hrs
Test Coverage
<?php
namespace Concrete\Package\Dseventcalendar\Controller\SinglePage\Dashboard\EventCalendar;

use \Concrete\Core\Page\Controller\DashboardPageController;
use Loader;

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

class Settings extends DashboardPageController
{
    public function view()
    {
        $this->addFooterItem(Loader::helper('html')->css('colorpicker.min.css', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->javascript('colorpicker.min.js', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->css('dsStyle.css', 'dsEventCalendar'));
        $this->requireAsset('javascript', 'jquery');
        $this->set('pageTitle', t("Settings"));

        $db = Loader::db();
        if (!empty($_POST)) {


            if (!array_key_exists('scrollTime', $_POST)) {
                $_POST['scrollTime'] = '0';
            }
            if (!array_key_exists('scrollMonth', $_POST)) {
                $_POST['scrollMonth'] = '0';
            }

            if (!array_key_exists('scrollInput', $_POST)) {
                $_POST['scrollInput'] = '0';
            }

            $isSomeValueEmpty = false;
            foreach ($_POST as $key => $value) {
                if ($value === "" && $key !== "default_name") {
                    $isSomeValueEmpty = true;
                }
            }

            if (!$isSomeValueEmpty) {


                //I know is not optimally but universally to new settings
                foreach ($_POST as $key => $value) {
                    $sql = "UPDATE dsEventCalendarSettings SET value = '" . $value . "' WHERE opt= '" . $key . "'";
                    $db->Execute($sql);
                }

                $this->set('success', t('Settings have been updated.'));
                unset($_POST);
            } else {
                $this->set('error', t('Error while adding. Maybe some values were empty?'));
            }
        }

        $lang_list = array("ar-ma", "ar-sa", "ar", "bg", "ca", "cs", "da", "de-at", "de", "el", "en-au", "en-ca", "en-gb", "es", "fa", "fi", "fr-ca", "fr", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "ko", "lt", "lv", "nl", "pl", "pt-br", "pt", "ro", "ru", "sk", "sl", "sr-cyrl", "sr", "sv", "th", "tr", "uk", "vi", "zh-cn", "zh-tw");
        $this->set('lang_list', $lang_list);

        $days = array(t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday'));
        $this->set('days', $days);

        $lang_datepicker_list = array("ar", "az", "bg", "bs", "ca", "ch", "cs", "da", "de", "en", "en-GB", "es", "et", "eu", "fa", "fi", "fr", "gl", "he", "hr", "hu", "id", "it", "ja", "ko", "kr", "lt", "lv", "mk", "mn", "nl", "no", "pl", "pt", "pt-BR", "ro", "ru", "se", "sk", "sl", "sq", "sr", "sr-YU", "sv", "th", "tr", "uk", "vi", "zh", "zh-TW");
        $this->set('lang_datepicker_list', $lang_datepicker_list);


        $settings = $db->GetAll("SELECT * FROM dsEventCalendarSettings");

        foreach ($settings as $s) {
            $this->set($s['opt'], $s['value']);
        }
    }

}