| 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/coopiak/amisdesseniors-fr/annonces/libraries/foundry/libraries/ |
Upload File : |
<?php
/**
* @package Foundry
* @copyright Copyright (C) Stack Ideas Sdn Bhd. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Foundry 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.
* See COPYRIGHT.php for copyright notices and details.
*/
namespace Foundry\Libraries;
defined('_JEXEC') or die('Unauthorized Access');
class Themes
{
// Access to foundry library
public $fd = null;
public $vars = [];
public function __construct($fd)
{
$this->fd = $fd;
}
/**
* Resolves a given namespace to the appropriate path
*
* @since 1.0.0
* @access public
*/
public function resolve($namespace = '', $extension = 'php')
{
static $cache = [];
$extension = '.' . $extension;
$index = $this->fd->getComponentName() . '/' . $namespace . $extension;
if (!isset($cache[$index])) {
// It needs to be in this ordering
$paths = (object) [
'default' => FD_THEMES . '/' . $namespace,
'component' => $this->fd->getOverridePath() . '/' . $namespace,
'override' => FD_THEMES_OVERRIDES . '/' . $namespace
];
// For modules / extensions which solely relies on theme files from foundry, we don't want to check for component / template overrides since we know it will not have them there
$isFoundry = $this->fd->getComponentName() === 'com_foundry';
// Check for component overrides
$path = $paths->component . $extension;
if (!$isFoundry && file_exists($path)) {
$cache[$index] = $paths->component;
return $cache[$index];
}
// Check for Joomla template overrides
$path = $paths->override . $extension;
if (!$isFoundry && file_exists($path)) {
$cache[$index] = $paths->override;
return $cache[$index];
}
$cache[$index] = $paths->default;
}
return $cache[$index];
}
/**
* Sets a variable on the template
*
* @since 1.0.0
* @access public
*/
public function set($name, $value)
{
$this->vars[$name] = $value;
}
/**
* New method to display contents from template files
*
* @since 1.0.0
* @access public
*/
public function output($namespace, $vars = [], $extension = 'php')
{
$path = $this->resolve($namespace, $extension);
// Extract template variables
if (!empty($vars)) {
extract($vars);
}
if (isset($this->vars)) {
extract($this->vars);
}
$templateFile = $path . '.' . $extension;
$templateContent = '';
ob_start();
include($templateFile);
$templateContent = ob_get_contents();
ob_end_clean();
// Embed script within template
$scriptFile = $path . '.js';
$scriptFileExists = file_exists($scriptFile);
if ($scriptFileExists) {
ob_start();
echo '<script type="text/javascript">';
include($scriptFile);
echo '</script>';
$scriptContent = ob_get_contents();
ob_end_clean();
// \EB::scripts()->add($scriptContent);
$templateContent .= $scriptContent;
}
return $templateContent;
}
}