| Server IP : 46.105.57.169 / Your IP : 216.73.216.144 Web Server : Apache System : Linux webd003.cluster120.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 : maitricfuz ( 93378) PHP Version : 8.4.10 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/maitricfuz/www/saint-martin-lg/plugins/system/nrframework/ |
Upload File : |
<?php
/**
* @author Tassos Marinos <info@tassos.gr>
* @link https://www.tassos.gr
* @copyright Copyright © 2024 Tassos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\String\StringHelper;
use Tassos\Framework\HTML;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Language\Text;
use Joomla\Filesystem\File;
use Joomla\Registry\Registry;
// Initialize Tassos Library
require_once __DIR__ . '/autoload.php';
class plgSystemNRFramework extends CMSPlugin
{
/**
* Auto load plugin language
*
* @var boolean
*/
protected $autoloadLanguage = true;
/**
* The Joomla Application object
*
* @var object
*/
protected $app;
/**
* Update UpdateSites after the user has entered a Download Key
*
* @param string $context The component context
* @param string $table
* @param boolean $isNew
*
* @return void
*/
public function onExtensionAfterSave($context, $table, $isNew)
{
// Run only on Tassos Framework edit form
if (
$this->app->isClient('site')
|| $context != 'com_plugins.plugin'
|| $table->element != 'nrframework'
|| !isset($table->params)
)
{
return;
}
// Set Download Key & fix Update Sites
$upds = new Tassos\Framework\Updatesites();
$upds->update();
}
/**
* Handling of PRO for extensions
* Throws a notice message if the Download Key is missing before downloading the package
*
* @param string &$url Update Site URL
* @param array &$headers
*/
public function onInstallerBeforePackageDownload(&$url, &$headers)
{
$uri = Uri::getInstance($url);
$host = $uri->getHost();
// This is not a Tassos.gr extension
if (strpos($host, 'tassos.gr') === false)
{
return true;
}
// If it's a Free version. No need to check for the Download Key.
if (strpos($url, 'free') !== false)
{
return true;
}
// This is a Pro version. Let's validate the Download Key.
$download_id = $this->params->get('key', '');
// Append it to the URL
if (!empty($download_id))
{
$uri->setVar('dlid', $download_id);
$url = $uri->toString();
return true;
}
$this->app->enqueueMessage('To be able to update the Pro version of this extension via the Joomla updater, you will need enter your Download Key in the settings of the <a href="' . Uri::base() . 'index.php?option=com_plugins&view=plugins&filter_search=tassos">Tassos Framework System Plugin</a>');
return true;
}
/**
* Unified AJAX endpoint for all Tassos Framework AJAX requests.
*
* This method serves as the central router for all AJAX handlers in the framework.
* It validates CSRF tokens, identifies the requested handler, and delegates execution
* to the appropriate handler class in the Ajax/Handlers/ directory.
*
* URL Structure: ?option=com_ajax&format=raw&plugin=nrframework&handler={handler_name}
*
* @return void
*/
public function onAjaxNrframework()
{
Session::checkToken('request') or jexit(Text::_('JINVALID_TOKEN'));
$handler_name = $this->app->input->getCmd('handler');
// Validate input
if (empty($handler_name))
{
http_response_code(400);
die('MISSING_HANDLER');
}
try
{
\Tassos\Framework\Ajax\AjaxHandlerRegistry::executeHandler($handler_name);
}
catch (\Exception $e)
{
http_response_code(404);
die($e->getMessage());
}
}
}