Seditio Source
Root |
./othercms/elxis_5.3_atlas_rev2452/components/com_emedia/controllers/common.php
<?php
/**
* @version        $Id: common.php 2363 2020-12-06 16:42:39Z IOS $
* @package        Elxis
* @subpackage    Component eMedia
* @copyright    Copyright (c) 2006-2021 Elxis CMS (https://www.elxis.org). All rights reserved.
* @license        Elxis Public License ( https://www.elxis.org/elxis-public-license.html )
* @author        Elxis Team ( https://www.elxis.org )
* @description     Elxis CMS is free software. Read the license for copyright notices and details
*/

defined('_ELXIS_') or die ('Direct access to this location is not allowed');


class
emediaController {

    protected
$view = null;
    protected
$model = null;
    protected
$relpath = 'media/';
    protected
$max_upload_size = 3145728; //3mb
   
protected $theme = 'default';
    protected
$defviewmode = 'grid';
    protected
$tree_show_files = 0;
    protected
$connector;
    protected
$is_editor = false;


   
/*********************/
    /* MAGIC CONSTRUCTOR */
    /*********************/
   
protected function __construct($view=null, $is_editor=false) {
       
$this->view = $view;
       
$this->is_editor = (bool)$is_editor;
        if (
defined('ELXIS_MULTISITE')) {
            if (
ELXIS_MULTISITE > 1) {
               
$this->relpath = 'media/images/site'.ELXIS_MULTISITE.'/';
            }
        }

       
$this->loadParameters();
    }


   
/****************************/
    /* GET COMPONENT PARAMETERS */
    /****************************/
   
private function loadParameters() {
       
$db = eFactory::getDB();

       
$sql = "SELECT ".$db->quoteId('params')." FROM ".$db->quoteId('#__components')." WHERE ".$db->quoteId('component')." = ".$db->quote('com_emedia');
       
$stmt = $db->prepareLimit($sql, 0, 1);
       
$stmt->execute();
       
$params_str = (string)$stmt->fetchResult();
       
elxisLoader::loadFile('includes/libraries/elxis/parameters.class.php');
       
$params = new elxisParameters($params_str, '', 'component');

       
$this->tree_show_files = (int)$params->get('tree_show_files', 0);
       
$val = trim($params->get('max_upload_size', '5.0'));
        if ((
$val == '') || !is_numeric($val)) { $val = 5.0; }
        if (
$val <= 0) { $val = 5.0; }
       
$max_upload_size = round($val, 1);
       
$this->max_upload_size = $max_upload_size * 1048576;

       
$val = trim($params->get('theme', 'default'));
        if ((
$val != '') && file_exists(ELXIS_PATH.'/components/com_emedia/themes/'.$val.'/')) { $this->theme = $val; }
       
$val = trim($params->get('defviewmode', 'grid'));
        if (
$val != '') { $this->defviewmode = $val; }
    }


   
/***********************************/
    /* IMPORT STYLE SHEETS TO DOCUMENT */
    /***********************************/
   
protected function importCSS() {
       
$eDoc = eFactory::getDocument();

       
$baseurl = eFactory::getElxis()->secureBase().'/components/com_emedia';
        if (
$this->is_editor) {
           
$eDoc->addStyleLink($baseurl.'/styles/reset.css');
        }
       
$eDoc->addStyleLink($baseurl.'/scripts/jquery.filetree/jqueryFileTree.css');
       
$eDoc->addStyleLink($baseurl.'/scripts/jquery.contextmenu/jquery.contextMenu-1.01.css');
       
$eDoc->addStyleLink($baseurl.'/scripts/custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css');
    }


   
/***************************************/
    /* IMPORT JAVASCRIPT FILES TO DOCUMENT */
    /***************************************/
   
protected function importJS() {
       
$elxis = eFactory::getElxis();
       
$eDoc = eFactory::getDocument();

       
$baseurl = $elxis->secureBase().'/components/com_emedia';
       
$configurl = $elxis->makeAURL('emedia:config', 'inner.php');
       
$configurl .= ($this->is_editor) ? '?editor=1' : '?editor=0';

       
$eDoc->addJQuery();
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery-browser.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.form-3.24.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.splitter/jquery.splitter-1.5.1.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.filetree/jqueryFileTree.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.contextmenu/jquery.contextMenu-1.01.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.impromptu-3.2.min.js');
       
$eDoc->addScriptLink($baseurl.'/scripts/jquery.tablesorter-2.7.2.min.js');
       
$eDoc->addScriptLink($configurl);
       
$eDoc->addScriptLink($baseurl.'/scripts/filemanager.js');
    }


   
/******************************************/
    /* ECHO PAGE HEADERS FOR SPECIAL REQUESTS */
    /******************************************/
   
protected function pageHeaders($type='text/html') {
        if(
ob_get_length() > 0) { ob_end_clean(); }
       
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
       
header('Last-Modified: '.gmdate('D, d M Y H:i:s').'GMT');
       
header('Cache-Control: no-cache, must-revalidate');
       
header('Pragma: no-cache');
       
header('Content-type: '.$type.'; charset=utf-8');
    }


   
/***************************/
    /* ALLOWED FILE EXTENSIONS */
    /***************************/
   
protected function allowedExtensions() {
       
$exts = array(
           
'png', 'jpg', 'jpeg', 'gif', 'ico', 'svg', 'psd', 'bmp', 'tiff', 'tif',
           
'mp3', 'ogg', 'ogv', 'avi', 'mpg', 'mpeg', 'wma', 'wmv', 'mkv', 'aac', 'mp4', 'webm', 'm4v',
           
'mpa', '3gp', 'asf', 'asx', 'mov', 'rm', 'ra', 'm4a', 'mid', 'wav', 'flv', 'swf',
           
'doc', 'docx', 'pps', 'ppt', 'pptx', 'smil', 'xlsx', 'xls', 'csv', 'odt', 'odp', 'odf', 'ods', 'rtf', 'pdf', 'txt', 'srt', 'vtt',
           
'xsl', 'xslt', 'css', 'xml',
           
'zip', 'rar', 'tar', 'gz', 'bzip2', 'gzip'
       
);

        return
$exts;
    }

}

?>