| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 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/coopiak/amisdesseniors-fr/annonces/plugins/system/yootheme/ |
Upload File : |
<?php
defined('_JEXEC') or die;
use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Table\Table;
use Joomla\Event\DispatcherInterface;
// require classmap
require_once __DIR__ . '/classmap.php';
class plgSystemYOOtheme extends CMSPlugin
{
/**
* @var CMSApplication
*/
public $app;
/**
* Constructor.
*
* @param DispatcherInterface $subject
* @param array $config
*/
public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
$pattern = JPATH_ROOT . '/templates/*/template_bootstrap.php';
array_map([$this, 'loadFile'], glob($pattern) ?: array());
}
/**
* Loads a file.
*
* @param string $file
* @return void
*/
public function loadFile($file)
{
require $file;
}
/**
* Prevent removal of YOOtheme Installer plugin if other YOOtheme packages are installed.
*
* @param int $eid
*/
public function onExtensionBeforeUninstall($eid)
{
$elements = ['pkg_yootheme', 'pkg_zoo', 'pkg_widgetkit'];
$row = Table::getInstance('extension');
$row->load($eid);
$package = $row->get('element');
// uninstalling a yootheme package?
if (!in_array($package, $elements, true)) {
return;
}
$elements = array_diff($elements, [$package]);
$db = Factory::getDbo();
$query = $db->getQuery(true)
->select('extension_id')
->from('#__extensions')
->where('element IN (' . join(',', $db->quote($elements)) . ')');
// are other yootheme packages installed?
if (!$db->setQuery($query)->loadRowList()) {
return;
}
$manifest = JPATH_MANIFESTS . "/packages/{$package}.xml";
$contents = file_get_contents($manifest);
// remove installer from package manifest to prevent removal
$contents = preg_replace('/<file type="plugin" id="yootheme" group="installer">.+\.zip<\/file>/', '', $contents);
file_put_contents($manifest, $contents);
}
}