| Current Path : /home/gonzalx/www/administrator/components/com_sigpro/ |
| Current File : /home/gonzalx/www/administrator/components/com_sigpro/helper.php |
<?php
/**
* @version 3.8.x
* @package Simple Image Gallery Pro
* @author JoomlaWorks - https://www.joomlaworks.net
* @copyright Copyright (c) 2006 - 2021 JoomlaWorks Ltd. All rights reserved.
* @license https://www.joomlaworks.net/license
*/
// no direct access
defined('_JEXEC') or die;
class SigProHelper
{
public static $isK2v3Var = null;
public static function copyrights()
{
$document = JFactory::getDocument();
if ($document->getType() == 'html' && JRequest::getCmd('tmpl', 'index') == 'index') {
echo '<div id="sigProAdminFooter"><a href="https://www.joomlaworks.net/simple-image-gallery-pro" target="_blank">Simple Image Gallery Pro '.SIGPRO_VERSION.'</a><br />Copyright © 2006-'.date('Y').' <a href="https://www.joomlaworks.net/" target="_blank">JoomlaWorks Ltd.</a></div>';
}
}
public static function initialize()
{
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
JLoader::register('SigProController', JPATH_ADMINISTRATOR.'/components/com_sigpro/controllers/controller.php');
JLoader::register('SigProView', JPATH_ADMINISTRATOR.'/components/com_sigpro/views/view.php');
JLoader::register('SigProModel', JPATH_ADMINISTRATOR.'/components/com_sigpro/models/model.php');
SigProModel::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_sigpro/models');
}
public static function getLanguagesList()
{
$language = JFactory::getLanguage();
$languages = $language->getKnownLanguages(JPATH_SITE);
$active = JRequest::getCmd('sigLang');
if (!$active) {
$params = JComponentHelper::getParams('com_languages');
$active = $params->get('site');
}
return JHTML::_('select.genericlist', $languages, 'sigLang', '', 'tag', 'name', $active);
}
public static function getPath($type = 'site')
{
jimport('joomla.filesystem.file');
$app = JFactory::getApplication();
if ($type == 'k2') {
$path = JPATH_SITE.'/media/k2/galleries';
} elseif ($type == 'site') {
$user = JFactory::getUser();
if (version_compare(JVERSION, '2.5', 'ge')) {
$isAdmin = $user->authorise('core.admin', 'com_sigpro');
} else {
$isAdmin = $user->gid == 25;
}
if ($app->isAdmin() || $isAdmin) {
if (version_compare(JVERSION, '1.6.0', 'ge')) {
$defaultImagePath = 'images';
} else {
$defaultImagePath = 'images/stories';
}
$params = JComponentHelper::getParams('com_sigpro');
$path = JPATH_SITE.'/'.$params->get('galleries_rootfolder', $defaultImagePath);
} else {
$folder = self::getUserFolder();
$path = JPATH_SITE.'/media/jw_sigpro/users/'.$folder;
if (!JFolder::exists($path)) {
JFolder::create($path);
}
}
} elseif ($type == 'users') {
$path = JPATH_SITE.'/media/jw_sigpro/users';
}
$path = JPath::clean($path);
JPath::check($path);
if (JString::substr($path, -1, 1) == DIRECTORY_SEPARATOR) {
$path = JString::rtrim($path, DIRECTORY_SEPARATOR);
}
return $path;
}
public static function getHTTPPath($path)
{
$httpPath = JString::str_ireplace(JPATH_SITE, JURI::root(true), $path);
$httpPath = JString::str_ireplace(DIRECTORY_SEPARATOR, '/', $httpPath);
return $httpPath;
}
public static function getImageURL($url)
{
$url = JString::str_ireplace(' ', '%20', $url);
$imgResizingService = true;
//if (in_array($_SERVER['HTTP_HOST'], array('localhost', '127.0.0.1')))
if (preg_match("#localhost#s", $_SERVER['HTTP_HOST'], $matches) !== false || preg_match("#127\.0\.0\.1#s", $_SERVER['HTTP_HOST'], $matches) !== false) {
$imgResizingService = false;
}
if (JURI::root(true).'/' == '/') {
$absoluteURL = substr(JURI::root(false), 0, -1).$url;
} else {
$absoluteURL = JString::str_ireplace(JURI::root(true).'/', JURI::root(false), $url);
}
$preview = ($imgResizingService) ? 'https://images.weserv.nl/?url='.$absoluteURL.'&w=550' : $url;
return $preview;
}
public static function getVar($name)
{
$source = JRequest::getVar($name);
return self::cleanPath($source);
}
public static function cleanPath($source)
{
$pattern = '/^[a-zA-Z0-9_\-\.\,\/\x20\(\)\[\]]+$/';
preg_match($pattern, (string)$source, $matches);
$result = @(string)$matches[0];
$result = JString::str_ireplace('\'', '', $result);
return $result;
}
public static function getJSON($array = array())
{
if (function_exists('json_encode')) {
return json_encode($array);
}
$object = '{';
foreach ((array)$array as $k => $v) {
if (is_null($v)) {
continue;
}
if (!is_array($v) && !is_object($v)) {
$object .= ' "'.$k.'": ';
$object .= (is_numeric($v) || strpos($v, '\\') === 0) ? (is_numeric($v)) ? $v : substr($v, 1) : '"'.$v.'"';
$object .= ',';
} else {
$object .= ' '.$k.': '.SigProHelper::getJSON($v).',';
}
}
if (substr($object, -1) == ',') {
$object = substr($object, 0, -1);
}
$object .= '}';
return $object;
}
public static function getUserFolder()
{
$user = JFactory::getUser();
$folder = str_pad($user->id, 10, '0', STR_PAD_LEFT);
return $folder;
}
public static function checkPermissions($task)
{
$app = JFactory::getApplication();
$user = JFactory::getUser();
$result = true;
$view = JRequest::getCmd('view', 'galleries');
$type = JRequest::getCmd('type', 'site');
if ($app->isAdmin() && version_compare(JVERSION, '1.6.0', 'ge') && $type != 'k2') {
if ($view == 'galleries') {
switch ($task) {
case 'add':
case 'create':
$action = 'create';
break;
case 'delete':
$action = 'delete';
break;
}
} else {
switch ($task) {
case 'create':
$action = 'create';
break;
case 'save':
case 'apply':
case 'upload':
case 'delete':
$action = 'edit';
break;
}
}
if (isset($action)) {
$result = $user->authorise('core.'.$action, 'com_sigpro');
}
}
return $result;
}
public static function isK2v3()
{
if (self::$isK2v3Var === null) {
$isK2v3 = false;
if (version_compare(JVERSION, '3.2', 'ge')) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('manifest_cache'))->from($db->quoteName('#__extensions'))->where($db->quoteName('name').' = '.$db->quote('com_k2'));
$db->setQuery($query);
$manifest = json_decode($db->loadResult());
$installedVersion = $manifest->version;
if (version_compare($installedVersion, '3.0.0', 'ge')) {
$isK2v3 = true;
}
}
self::$isK2v3Var = $isK2v3;
}
return self::$isK2v3Var;
}
}