Your IP : 216.73.216.224


Current Path : /var/www/html/tmp/install_663b780918c7a/packages/lib_noboss/util/
Upload File :
Current File : /var/www/html/tmp/install_663b780918c7a/packages/lib_noboss/util/jsconstants.php

<?php
/**
 * @package			No Boss Extensions
 * @subpackage  	No Boss Library
 * @author			No Boss Technology <contact@nobosstechnology.com>
 * @copyright		Copyright (C) 2024 No Boss Technology. All rights reserved.
 * @license			GNU Lesser General Public License version 3 or later; see <https://www.gnu.org/licenses/lgpl-3.0.en.html>
 */

\defined('_JEXEC') or die;

jimport('noboss.util.url');

class NoBossUtilJsconstants {

    // Funcao que adiciona variaveis uteis e padroes no site via JS
    public static function addConstantsDefault(){
        $doc = JFactory::getDocument();

        // Define variavel JS 'basenameUrl' caso ja nao esteja definido
        if ((version_compare(JVERSION, '4', '>=')) || @!strpos($doc->_script["text/javascript"], "baseNameUrl =")) {
            $doc->addScriptDeclaration('var baseNameUrl =  "'.JUri::root().'";');
        }
        // Define variavel JS 'nbExtensionsUrl' caso ja nao esteja definido
        if ((version_compare(JVERSION, '4', '>=')) || @!strpos($doc->_script["text/javascript"], "nbExtensionsUrl =")) {
            $doc->addScriptDeclaration('var nbExtensionsUrl =  "'.NoBossUtilUrl::getUrlNbExtensions().'";');
        }        
        // Define variavel JS 'majorVersionJoomla' (versao macro do Joomla. ex: '4') caso ja nao esteja definido
        if ((version_compare(JVERSION, '4', '>=')) || @!strpos($doc->_script["text/javascript"], "majorVersionJoomla")) {
            $doc->addScriptDeclaration('var majorVersionJoomla =  "'.substr(JVERSION, 0, 1).'";');
        }
        // Define variavel JS 'completeVersionJoomla' (versao completa do Joomla. ex: '4.0.1') caso ja nao esteja definido
        if ((version_compare(JVERSION, '4', '>=')) || @!strpos($doc->_script["text/javascript"], "completeVersionJoomla")) {
            $doc->addScriptDeclaration('var completeVersionJoomla =  "'.JVERSION.'";');
        }

        // Obtem a tag do idioma que esta sendo navegado
        $currentLanguage = JFactory::getLanguage()->getTag();

        /* TODO: modificado para pegar sef do idioma direto no idioma corrente cortando estring (ex: extraimos 'pt' de 'pt-BR')
                - Anteriormente buscavamos o sef dos idiomas de conteúdo instalados, mas isso poderia dar problema pq eles podem estar desabilitados sem que o acesso pelo idioma esteja desabilitado
        */
        // $languages = JLanguageHelper::getLanguages('lang_code');
        // $langSef = $languages[$currentLanguage];
        // $langSef = $langSef->sef;
        $langSef = substr($currentLanguage, 0, 2);

        // Define sefLanguage caso ja nao definido
        if ((version_compare(JVERSION, '4', '>=')) || @!strpos($doc->_script["text/javascript"], "sefLanguage")) {
            $doc->addScriptDeclaration('var sefLanguage =  "'.$langSef.'";');
        }
    }

    /**
     * Funcao que executa solucao de sprintf do Joomla, mas colocando a variavel no JS
     * Para constante normal sem replace temos o Text::script, mas essa funcao resolve os casos em que temos replace
     * 
     * @param   string  $string  The format string.
     */
    public static function sprintfJS($string){
        $doc = JFactory::getDocument();

        // Obtem todos os argumentos de parametros enviados na funcao
        $args  = \func_get_args();

        // Obtem array com todas variaveis ja adicionadas no Joomla.Text._
        $strings = $doc->getScriptOptions('joomla.jtext');

        // Executa funcao JText::sprintf do joomla passando os parametros recebidos na funcao atual
        $strings[$string] = call_user_func_array("JText::sprintf", $args);

        // Update Joomla.Text script options
        $doc->addScriptOptions('joomla.jtext', $strings, false);
    }
}