Classes

File phpboost/environment/AbstractDisplayGraphicalEnvironment.class.php

File phpboost/environment/AbstractDisplayGraphicalEnvironment.class.php

  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 
<?php
/**
 * This class contains the content of the writing pad which is on the home page
 * of the administration panel.
 * @package     PHPBoost
 * @subpackage  Environment
 * @copyright   &copy; 2005-2019 PHPBoost
 * @license     https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL-3.0
 * @author      Benoit SAUTEL <ben.popeye@phpboost.com>
 * @version     PHPBoost 5.2 - last update: 2018 10 23
 * @since       PHPBoost 3.0 - 2009 10 06
 * @contributor Julien BRISWALTER <j1.seth@phpboost.com>
 * @contributor Kevin MASSY <reidlos@phpboost.com>
*/

 abstract class AbstractDisplayGraphicalEnvironment extends AbstractGraphicalEnvironment
{
    /**
     * @var SEOMetaData
     */
    private $seo_meta_data = null;

    private $location_id = '';

    public function __construct()
    {
        $this->seo_meta_data = new SEOMetaData();
    }

    protected function get_modules_css_files_html_code()
    {
        $css_cache_config = CSSCacheConfig::load();
        $css_files = array_merge(ModulesCssFilesService::get_css_files_always_displayed(), ModulesCssFilesService::get_css_files_running_module_displayed());
        if ($css_cache_config->is_enabled())
        {
            $html_code = '<link rel="stylesheet" href="' . CSSCacheManager::get_css_path($css_files) . '" type="text/css" media="screen, print" />';
        }
        else
        {
            $html_code = '';
            foreach ($css_files as $file)
            {
                $html_code .= '<link rel="stylesheet" href="' . Url::to_rel($file) . '" type="text/css" media="screen, print" />';
            }
        }
        return $html_code;
    }

    public function get_location_id()
    {
        return $this->location_id;
    }

    public function set_location_id($location_id)
    {
        $this->location_id = $location_id;
    }

    public function get_seo_meta_data()
    {
        return $this->seo_meta_data;
    }

    public function set_seo_meta_data(SEOMetaData $seo_meta_data)
    {
        $this->seo_meta_data = $seo_meta_data;
    }

    public function get_page_title()
    {
        return $this->get_seo_meta_data()->get_title();
    }

    public function set_page_title($title, $section = '', $page = 1)
    {
        $this->get_seo_meta_data()->set_title($title, $section, $page);

        defined('TITLE') or define('TITLE', $this->get_page_title());

        self::set_page_localization($this->get_page_title(), $this->get_location_id());
    }

    protected function retrieve_kernel_message()
    {
        $kernel_message = array(
            'message' => '',
            'message_type' => MessageHelper::SUCCESS,
            'message_duration' => 5
        );

        $request = AppContext::get_request();
        if ($request->has_cookieparameter('message'))
        {
            $kernel_message['message'] = $request->get_cookie('message');
            $kernel_message['message_type'] = $request->has_cookieparameter('message_type') ? $request->get_cookie('message_type') : $kernel_message['message_type'];
            $kernel_message['message_duration'] = $request->has_cookieparameter('message_duration') ? $request->get_cookie('message_duration') : $kernel_message['message_duration'];

            $response = AppContext::get_response();
            $response->delete_cookie('message');
            $response->delete_cookie('message_type');
            $response->delete_cookie('message_duration');
        }

        return $kernel_message;
    }

    public function display_kernel_message(View $template)
    {
        $this->display_install_or_update_folders_kernel_message($template);

        $kernel_message = $this->retrieve_kernel_message();
        if (!empty($kernel_message['message']))
            $template->put('KERNEL_MESSAGE', MessageHelper::display($kernel_message['message'], $kernel_message['message_type'], $kernel_message['message_duration']));
    }

    private function is_folder_deleted($folder_name)
    {
        $folder = new Folder(PATH_TO_ROOT . '/' . $folder_name);
        return !$folder->exists();
    }

    private function delete_folder($folder_name)
    {
        $folder = new Folder(PATH_TO_ROOT . '/' . $folder_name);
        if ($folder->exists())
            $folder->delete();
    }

    private function display_install_or_update_folders_kernel_message(View $template)
    {
        if (AppContext::get_current_user()->is_admin() && !AppContext::get_request()->get_is_localhost())
        {
            $display_message_install = !$this->is_folder_deleted('install');
            $display_message_update = !$this->is_folder_deleted('update');

            if ($display_message_install || $display_message_update)
            {
                $form = new HTMLForm('kerner_message_form', '', false);

                $submit_button = new FormButtonSubmit(LangLoader::get_message('delete', 'common'), 'delete_install');
                $form->add_button($submit_button);

                if ($submit_button->has_been_submited() && $form->validate())
                {
                    $this->delete_folder('install');
                    $this->delete_folder('update');
                    $display_message_install = $display_message_update = false;
                }
            }

            if ($display_message_install || $display_message_update)
            {
                $message = ($display_message_install && $display_message_update ? LangLoader::get_message('message.delete_install_and_update_folders', 'status-messages-common') : StringVars::replace_vars(LangLoader::get_message('message.delete_install_or_update_folders', 'status-messages-common'), array('folder' => $display_message_install ? 'install' : 'update')));
                $template->put('KERNEL_MESSAGE', MessageHelper::display($message . ' ' . $form->display()->render(), MessageHelper::WARNING));
            }
        }
    }
}
?>