grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 * @link http://www.regularlabs.com * @copyright Copyright © 2018 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ namespace RegularLabs\Library; defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper as JComponentHelper; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\HTML\HTMLHelper as JHtml; use Joomla\CMS\Language\Text as JText; use Joomla\CMS\Router\Route as JRoute; use Joomla\CMS\Session\Session as JSession; use Joomla\CMS\Uri\Uri as JUri; jimport('joomla.filesystem.file'); /** * Class Version * @package RegularLabs\Library */ class Version { /** * Get the version of the given extension * * @param $alias * @param string $type * @param string $folder * * @return string */ public static function get($alias, $type = 'component', $folder = 'system') { return trim(Extension::getXmlValue('version', $alias, $type, $folder)); } /** * Get the version of the given plugin * * @param $alias * @param string $folder * * @return string */ public static function getPluginVersion($alias, $folder = 'system') { return self::get($alias, 'plugin', $folder); } /** * Get the version of the given component * * @param $alias * * @return string */ public static function getComponentVersion($alias) { return self::get($alias, 'component'); } /** * Get the version of the given module * * @param $alias * * @return string */ public static function getModuleVersion($alias) { return self::get($alias, 'module'); } /** * Get the version message * * @param $alias * * @return string */ public static function getMessage($alias) { if ( ! $alias) { return ''; } $name = Extension::getNameByAlias($alias); $alias = Extension::getAliasByName($alias); if ( ! $version = self::get($alias)) { return ''; } Document::loadMainDependencies(); $url = 'download.regularlabs.com/extensions.xml?j=3&e=' . $alias; $script = " jQuery(document).ready(function() { RegularLabsScripts.loadajax( '" . $url . "', 'RegularLabsScripts.displayVersion( data, \"" . $alias . "\", \"" . str_replace(['FREE', 'PRO'], '', $version) . "\" )', 'RegularLabsScripts.displayVersion( \"\" )', null, null, null, (60 * 60) ); }); "; JFactory::getDocument()->addScriptDeclaration($script); return ''; } /** * Get the full footer * * @param $name * @param int $copyright * * @return string */ public static function getFooter($name, $copyright = true) { Document::loadMainDependencies(); $html = []; $html[] = ''; if ($copyright) { $html[] = ''; $html[] = ''; $html[] = ''; } return ''; } /** * Get the version message text * * @param $alias * @param $name * @param $version * * @return array|string */ private static function getMessageText($alias, $name, $version) { list($url, $onclick) = self::getUpdateLink($alias, $version); $href = $onclick ? '' : 'href="' . $url . '" target="_blank" '; $onclick = $onclick ? 'onclick="' . $onclick . '" ' : ''; $is_pro = strpos($version, 'PRO') !== false; $version = str_replace(['FREE', 'PRO'], ['', ' [PRO]'], $version); $msg = '
' . '' . JText::sprintf('RL_NEW_VERSION_OF_AVAILABLE', JText::_($name)) . '' . '
' . '' . ' ' . StringHelper::html_entity_decoder(JText::sprintf('RL_UPDATE_TO', '')) . ''; if ( ! $is_pro) { $msg .= ' ' . ' ' . JText::_('RL_GO_PRO') . ''; } $msg .= '
' . '' . '[ ' . JText::_('RL_CHANGELOG') . ' ]' . '
' . JText::sprintf('RL_CURRENT_VERSION', $version) . '
' . '
'; return StringHelper::html_entity_decoder($msg); } /** * Get the url and onclick function for the update link * * @param $alias * @param $version * * @return array */ private static function getUpdateLink($alias, $version) { $is_pro = strpos($version, 'PRO') !== false; if ( ! file_exists(JPATH_ADMINISTRATOR . '/components/com_regularlabsmanager/regularlabsmanager.xml') || ! JComponentHelper::isInstalled('com_regularlabsmanager') || ! JComponentHelper::isEnabled('com_regularlabsmanager') ) { $url = $is_pro ? 'https://www.regularlabs.com/' . $alias . '/features' : JRoute::_('index.php?option=com_installer&view=update'); return [$url, '']; } $config = JComponentHelper::getParams('com_regularlabsmanager'); $key = trim($config->get('key')); if ($is_pro && ! $key) { return ['index.php?option=com_regularlabsmanager', '']; } jimport('joomla.filesystem.file'); Document::loadMainDependencies(); JHtml::_('behavior.modal'); JFactory::getDocument()->addScriptDeclaration( " var RLEM_TIMEOUT = " . (int) $config->get('timeout', 5) . "; var RLEM_TOKEN = '" . JSession::getFormToken() . "'; " ); Document::script('regularlabsmanager/script.min.js', '18.12.19593'); $url = 'https://download.regularlabs.com?ext=' . $alias . '&j=3'; if ($is_pro) { $url .= '&k=' . strtolower(substr($key, 0, 8) . md5(substr($key, 8))); } return ['', 'RegularLabsManager.openModal(\'update\', [\'' . $alias . '\'], [\'' . $url . '\'], true);']; } /** * Get the extension name and version for the footer * * @param $name * * @return string */ private static function getFooterName($name) { $name = JText::_($name); if ( ! $version = self::get($name)) { return $name; } if (strpos($version, 'PRO') !== false) { return $name . ' v' . str_replace('PRO', '', $version) . ' [PRO]'; } if (strpos($version, 'FREE') !== false) { return $name . ' v' . str_replace('FREE', '', $version) . ' [FREE]'; } return $name . ' v' . $version; } /** * Get the review text for the footer * * @param $name * * @return string */ private static function getFooterReview($name) { $alias = Extension::getAliasByName($name); $jed_url = 'http://regl.io/jed-' . $alias . '#reviews'; return StringHelper::html_entity_decoder( JText::sprintf( 'RL_JED_REVIEW', '', '' . ' ' . str_repeat('', 5) . '' ) ); } /** * Get the Regular Labs logo for the footer * * @return string */ private static function getFooterLogo() { return JText::sprintf( 'RL_POWERED_BY', '' . 'Regular Labs' . '' ); } /** * Get the copyright text for the footer * * @return string */ private static function getFooterCopyright() { return JText::_('RL_COPYRIGHT') . ' © ' . date('Y') . ' Regular Labs - ' . JText::_('RL_ALL_RIGHTS_RESERVED'); } }