AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/c/o/o/coopiak/amisdesseniors-fr/lemans/components/com_djcatalog2/helpers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/c/o/o/coopiak/amisdesseniors-fr/lemans/components/com_djcatalog2/helpers/djcatalog2.php
<?php
/**
 * @package DJ-Catalog2
 * @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
 * @license http://www.gnu.org/licenses GNU/GPL
 * @author url: http://dj-extensions.com
 * @author email contact@dj-extensions.com
 */


defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Factory;
use Joomla\Registry\Registry;
use Joomla\CMS\User\UserHelper;
use Joomla\CMS\Filesystem\Path;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Application\ApplicationHelper;
use Joomla\CMS\Filesystem\File;
if (!defined('DS')) {
	define('DS', DIRECTORY_SEPARATOR);
}

require_once(JPATH_ROOT.'/administrator/components/com_djcatalog2/lib/categories.php');
require_once(JPATH_ROOT.'/components/com_djcatalog2/helpers/user.php');

class Djcatalog2Helper {
	static $params = null;
	static $recentItems = array();
	static $languageLoaded = false;

	static $vendor = array();
	static $vendorUsers = array();

	public static function getParams($reload = false) {
		if (!self::$params || $reload == true) {
			$app		= Factory::getApplication();

			// our params
			$params = new Registry();

			// component's global params
			$cparams = ComponentHelper::getParams( 'com_djcatalog2' );
			$mparams = null;

			if ($app->isClient('site')) {
				// current params - all
				$aparams = $app->getParams();

				// first let's use all current params
				$params->merge($aparams);

				// curent params - djc2 only
				$mparams = $app->getParams('com_djcatalog2');
			}

			// then override them with djc2 global settings - in case some other extension share's the same parameter name
			$params->merge($cparams);

			if ($app->input->getCmd('option') == 'com_djcatalog2' && $mparams) {
				// finally, override settings with current params, but only related to djc2.
				$params->merge($mparams);
			}

			// ...and then, override with category specific params
			$option = $app->input->get('option');
			$view = $app->input->get('view');

			if ($option = 'com_djcatalog2' && ($view = 'item' || $view = 'items' || $view = 'archived')) {

				$user	= Factory::getUser();
				$groups	= $user->getAuthorisedViewLevels();

				$categories = Djc2Categories::getInstance(array('state' => '1', 'access' => $groups));
				$category = $categories->get((int) $app->input->get('cid',0,'int'));
				if (!empty($category)) {
					$catpath = array_reverse($category->getPath());
					foreach($catpath as $k=>$v) {
						$parentCat = $categories->get((int)$v);
						if (!empty($parentCat) && !empty($category->params)) {
							$catparams = new Registry($parentCat->params);
							$params->merge($catparams);
						}
					}
				}
			}

			$listLayout = $app->input->get('l', $app->getUserState('com_djcatalog2.list_layout', null), 'cmd');
			if ($listLayout == 'items') {
				$app->setUserState('com_djcatalog2.list_layout', 'items');
				$params->set('list_layout', 'items');
			} else if ($listLayout == 'table') {
				$app->setUserState('com_djcatalog2.list_layout', 'table');
				$params->set('list_layout', 'table');
			}

			$catalogMode = $app->input->get('cm', null, 'int');
			$indexSearch = $app->input->get('ind', null, 'string');

			$globalSearch = urldecode($app->input->get( 'search','','string' ));
			$globalSearch = trim(\Joomla\String\StringHelper::strtolower( $globalSearch ));
			if (substr($globalSearch,0,1) == '"' && substr($globalSearch, -1) == '"') {
				$globalSearch = substr($globalSearch,1,-1);
			}
			if (strlen($globalSearch) > 0 && (strlen($globalSearch)) < 3 || strlen($globalSearch) > 20) {
				$globalSearch = null;
			}
			if ($catalogMode === 0 || $globalSearch || $indexSearch) {
				$params->set('product_catalogue','0');
				// set 'filtering' variable in REQUEST
				// so we could hide for example sub-categories
				// when searching/filtering is performed
				$app->input->set('filtering', true);
			}

			self::$params = $params;
		}
		return self::$params;
	}

	public static function loadComponentLanguage() {
		if (!self::$languageLoaded /*&& Factory::getApplication()->input->getCmd('option') != 'com_djcatalog2'*/) {

			$lang = Factory::getApplication()->getLanguage();

			if ($lang->getTag() != 'en-GB') {
				$lang->load('com_djcatalog2', Path::clean(JPATH_ADMINISTRATOR.'/components/com_djcatalog2'), 'en-GB', false, false);
				$lang->load('com_djcatalog2', JPATH_ADMINISTRATOR, 'en-GB', false, false);
				$lang->load('com_djcatalog2', Path::clean(JPATH_ROOT.'/components/com_djcatalog2'), 'en-GB', false, false);
				$lang->load('com_djcatalog2', JPATH_ROOT, 'en-GB', false, false);
			}

			$lang->load('com_djcatalog2', Path::clean(JPATH_ADMINISTRATOR.'/components/com_djcatalog2'), null, true, false);
			$lang->load('com_djcatalog2', JPATH_ADMINISTRATOR, null, true, false);
			$lang->load('com_djcatalog2', Path::clean(JPATH_ROOT.'/components/com_djcatalog2'), null, true, false);
			$lang->load('com_djcatalog2', JPATH_ROOT, null, true, false);

			self::$languageLoaded = true;
		}
	}

	public static function getUser($id = null) {
		return Djcatalog2HelperUser::getUserProfile($id);
	}

	public static function getSecureToken($forceNew = false) {
		$app = Factory::getApplication();
		$token = $app->getUserState('com_djcatalog2.secure_token', $app->input->cookie->get('djc2token', false));

		if ($token == false || $forceNew) {
			$token = static::createSecureToken();
		}

		$app->setUserState('com_djcatalog2.secure_token', $token);
		$app->input->cookie->set('djc2token', $token, (time() + (86400)), $app->get('cookie_path', '/'), $app->get('cookie_domain', ''));

		return $token;
	}

	public static function createSecureToken() {
		$app = Factory::getApplication();
		$user = Factory::getUser();

		$token = ApplicationHelper::getHash((int)$user->id . UserHelper::genRandomPassword(8));

		return $token;
	}

	public static function isViesValid( $vatId, $countryCode )
	{
		$vatId = trim((string)$vatId);
		$app = Factory::getApplication();

		$codeAssoc = array(
			'AT' => 'AT',
			'BE' => 'BE',
			'BG' => 'BG',
			'HR' => 'HR',
			'CY' => 'CY',
			'CZ' => 'CZ',
			'DK' => 'DK',
			'EE' => 'EE',
			'FI' => 'FI',
			'FR' => 'FR',
			'DE' => 'DE',
			'GR' => 'EL',
			'HU' => 'HU',
			'IE' => 'IE',
			'IT' => 'IT',
			'LV' => 'LV',
			'LT' => 'LT',
			'LU' => 'LU',
			'MT' => 'MT',
			'NL' => 'NL',
			'PL' => 'PL',
			'PT' => 'PT',
			'RO' => 'RO',
			'SK' => 'SK',
			'SI' => 'SI',
			'ES' => 'ES',
			'SE' => 'SE',
			'GB' => 'GB'
		);

		$number = substr($vatId, 2);
		$country = $countryCode; //substr($vatId, 0, 2);
		if (isset($codeAssoc[$country])) {
			$country = $codeAssoc[$country];
		}

		$vatId = trim((string)$country).$number;
		$hash = md5($countryCode.':'.$vatId);

		if ($app->getUserState('com_djcatalog2.vies_valid.'.$hash) == '-1') {
			return false;
		} else if ($app->getUserState('com_djcatalog2.vies_valid.'.$hash)) {
			return true;
		}

		$response = false;
		$soapOpts = array('connection_timeout' => 5);
		try {
			$client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl", $soapOpts);
			$response = $client->checkVat(array(
				'countryCode' => $country,
				'vatNumber' => $number
			));
		} catch(Exception $e) {
			sleep(2);
			try {
				$client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl", $soapOpts);
				$response = $client->checkVat(array(
					'countryCode' => $country,
					'vatNumber' => $number
				));
			} catch(Exception $e) {
				//$app->setUserState('com_djcatalog2.vies_valid.'.$vatId, '-1');
				$app->setUserState('com_djcatalog2.vies_valid.'.$hash, '-1');
				return false;
				//return $e->getMessage();
			}
		}
		if (empty($response)) {
			//$app->setUserState('com_djcatalog2.vies_valid.'.$vatId, null);
			$app->setUserState('com_djcatalog2.vies_valid.'.$hash, null);
			return null;
		}

		if (isset($response->valid)) {
			//$app->setUserState('com_djcatalog2.vies_valid.'.$vatId, (int)$response->valid);
			$app->setUserState('com_djcatalog2.vies_valid.'.$hash, (int)$response->valid);
			return (int)$response->valid;
		} else {
			//$app->setUserState('com_djcatalog2.vies_valid.'.$vatId, '-1');
			$app->setUserState('com_djcatalog2.vies_valid.'.$hash, '-1');
		}

		return false;
	}

	public static function getUserProfile($id = null) {
		$user = self::getUser($id);
		$data = array();

		if (!empty($user->djcatalog2profile)) {
			$data = $user->djcatalog2profile;
		}

		return $data;
	}

	public static function isDefaultLanguage() {
		$lang = Factory::getApplication()->getLanguage();
		$default = ComponentHelper::getParams('com_languages')->get('site', $lang->getDefault());
		if (\Joomla\String\StringHelper::strcmp($default, $lang->getTag()) === 0) {
			return true;
		}
		return false;
	}
	public static function getLangId(){
		$lang = Factory::getApplication()->getLanguage();
		$db = Factory::getDbo();
		$db->setQuery('select lang_id from #__languages where lang_code='.$db->quote($lang->getTag()));

		return $db->loadResult();
	}
	public static function isFalang() {
		return (bool)class_exists('plgSystemFalangdriver');
	}
	public static function getRecentItems() {
		if (empty(self::$recentItems)) {
			$app = Factory::getApplication();
			$sessionItems = $app->getUserState('com_djcatalog2.items.recent', array());
			self::$recentItems = $sessionItems;
		}
		return self::$recentItems;
	}
	public static function pushRecentItem($id) {
		$app = Factory::getApplication();
		$sessionItems = $app->getUserState('com_djcatalog2.items.recent', array());
		$sessionItems[] = (int)$id;
		self::$recentItems = array_values(array_unique($sessionItems));
		$app->setUserState('com_djcatalog2.items.recent', self::$recentItems);

		return true;
	}

	public static function getVendors($user_id = null) {
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select('DISTINCT u.*, c.customer_id');
		$query->from('#__users AS u');
		$query->join('inner', '#__djc2_vendors AS v ON v.user_id=u.id');
		$query->join('left', '#__djc2_vendors_customers AS c ON c.vendor_id = v.id');
		if ($user_id) {
			$query->where('(c.customer_id IS NULL OR c.customer_id = '.(int)$user_id.')');
		} else {
			$query->where('c.customer_id IS NULL');
		}

		$db->setQuery($query);
		$vendors = $db->loadObjectList();

		if (empty($vendors)) {
			return array();
		}

		if (!$user_id) {
			return $vendors;
		}

		$general = array();
		$userAssigned = array();

		foreach($vendors as $vendor){
			if ($vendor->customer_id == $user_id) {
				$userAssigned[] = $vendor;
			} else {
				$general[] = $vendor;
			}
		}

		return (count($userAssigned) > 0) ? $userAssigned : $general;
	}

	public static function getVendor($user_id = null) {
		$user_id = ($user_id === null) ? (int)Factory::getUser()->id : (int)$user_id;

		if (!isset(static::$vendor[$user_id])) {
			$db = Factory::getDbo();
			$query = $db->getQuery(true);
			$query->select('u.*, v.id AS vendor_id');
			$query->from('#__users AS u');
			$query->join('inner', '#__djc2_vendors AS v ON v.user_id=u.id');
			$query->where('u.id='.$user_id);
			$db->setQuery($query);

			static::$vendor[$user_id] = $db->loadObject();
		}

		return static::$vendor[$user_id];
	}

	public static function getVendorUsers($user_id = null, $ids_only = false) {
		$vendor = static::getVendor($user_id);

		if (empty($vendor)) {
			return false;
		}

		if (!isset(static::$vendorUsers[$user_id])) {
			$db = Factory::getDbo();
			$query = $db->getQuery(true);
			$query->select('u.*');
			$query->from('#__users AS u');
			$query->join('inner', '#__djc2_vendors_customers AS vc ON vc.customer_id = u.id');
			$query->where('vc.vendor_id='.$vendor->vendor_id);
			$db->setQuery($query);

			static::$vendorUsers[$user_id] = $db->loadObjectList('id');
		}

		return $ids_only ? array_keys(static::$vendorUsers[$user_id]) : static::$vendorUsers[$user_id];
	}

	public static function isOnUserWishlist($user_id, $item_id) {
		$app = Factory::getApplication();

		if(!$user_id) {
			$items = $app->getUserState('com_djcatalog2.wishlist', array());

			return (bool) in_array($item_id, $items);
		} else {
			$db = Factory::getDbo();
			$query = $db->getQuery(true);

			$query->select('Count(*)');
			$query->from($db->quoteName('#__djc2_wishes'));
			$query->where($db->quoteName('user_id') . ' = '. (int)$user_id . ' AND ' . $db->quoteName('item_id') . ' = ' . (int)$item_id);

			$db->setQuery($query);

			return (bool) $db->loadResult();
		}
	}

	public static function importTCPDF() {
		$libfile = JPATH_LIBRARIES . '/tcpdf/tcpdf.php';
		if (File::exists($libfile) == false) {
			return false;
		}

		require_once $libfile;
		return true;
	}
}

Anon7 - 2022
AnonSec Team