Your IP : 216.73.216.224


Current Path : /var/www/html/libraries/noboss/src/Form/Field/
Upload File :
Current File : /var/www/html/libraries/noboss/src/Form/Field/NbModulePreviewField.php

<?php
/**
 * @package			No Boss Extensions
 * @subpackage  	No Boss Library
 * @author			No Boss Technology <contact@nobosstechnology.com>
 * @copyright		Copyright (C) 2026 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>
 */

namespace Noboss\Library\Form\Field;

use Joomla\CMS\Form\FormField;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Noboss\Library\Util\NbUrlUtil;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/* 
 * Exibe um link de pre-visualizacao do modulo
 */
class NbModulePreviewField extends FormField {
  
    protected function getInput(){
        $app = Factory::getApplication();

        // Id do modulo
        $id = $app->input->get('id', 0);

        if(empty($id)){
            return '';
        }

        // Url do preview (site router + idioma quando multilíngue e tag do admin existe no site)
        $internalPreview = 'index.php?option=com_nobossajax&module-id=' . (int) $id . '&load-head=1';
        $internalPreview = NbUrlUtil::appendAdminMatchingSiteLanguage($internalPreview);
        $linkModulePreview = Route::link('site', $internalPreview, true, Route::TLS_IGNORE, true);

        $html = "<joomla-toolbar-button class='nblinkpreview'>
                    <a href='{$linkModulePreview}' target='_blank' class='btn btn-info' type='button'>
                        ".Text::_('NOBOSS_EXTENSIONS_BUTTON_TEXT')."
                    </a>
                </joomla-toolbar-button>";

        return $html;
    }
}