76 lines
2.4 KiB
PHP
76 lines
2.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @copyright Copyright (c) 2009-2022 Ryan Demmer. All rights reserved
|
|
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
* JCE is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses
|
|
*/
|
|
|
|
class JceViewPopup extends JViewLegacy
|
|
{
|
|
public function display($tpl = null)
|
|
{
|
|
$app = JFactory::getApplication();
|
|
$document = JFactory::getDocument();
|
|
|
|
$document->addScript(JURI::root(true) . '/media/com_jce/js/popup.min.js');
|
|
$document->addStylesheet(JURI::root(true) . '/media/com_jce/css/popup.min.css');
|
|
|
|
// Get variables
|
|
$img = $app->input->get('img', '', 'STRING');
|
|
$title = $app->input->getWord('title');
|
|
$mode = $app->input->getInt('mode', '0');
|
|
$click = $app->input->getInt('click', '0');
|
|
$print = $app->input->getInt('print', '0');
|
|
|
|
$dim = array('', '');
|
|
|
|
if (strpos('://', $img) === false) {
|
|
$path = JPATH_SITE . '/' . trim(str_replace(JURI::root(), '', $img), '/');
|
|
if (is_file($path)) {
|
|
$dim = @getimagesize($path);
|
|
}
|
|
}
|
|
|
|
$width = $app->input->getInt('w', $app->input->getInt('width', ''));
|
|
$height = $app->input->getInt('h', $app->input->getInt('height', ''));
|
|
|
|
if (!$width) {
|
|
$width = $dim[0];
|
|
}
|
|
|
|
if (!$height) {
|
|
$height = $dim[1];
|
|
}
|
|
|
|
// Cleanup img variable
|
|
$img = preg_replace('/[^a-z0-9\.\/_-]/i', '', $img);
|
|
|
|
$title = isset($title) ? str_replace('_', ' ', $title) : basename($img);
|
|
// img src must be passed
|
|
if ($img) {
|
|
$features = array(
|
|
'img' => str_replace(JURI::root(), '', $img),
|
|
'title' => $title,
|
|
'alt' => $title,
|
|
'mode' => $mode,
|
|
'click' => $click,
|
|
'print' => $print,
|
|
'width' => $width,
|
|
'height' => $height,
|
|
);
|
|
|
|
$document->addScriptDeclaration('(function(){WfWindowPopup.init(' . $width . ', ' . $height . ', ' . $click . ');})();');
|
|
|
|
$this->features = $features;
|
|
} else {
|
|
$app->redirect('index.php');
|
|
}
|
|
|
|
parent::display($tpl);
|
|
}
|
|
}
|