77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * @author          Tassos Marinos <info@tassos.gr>
 | |
|  * @link            https://www.tassos.gr
 | |
|  * @copyright       Copyright © 2024 Tassos All Rights Reserved
 | |
|  * @license         GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
 | |
| */
 | |
| 
 | |
| // No direct access to this file
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| use Joomla\CMS\Layout\FileLayout;
 | |
| use Joomla\CMS\Language\Text;
 | |
| 
 | |
| require_once dirname(__DIR__) . '/helpers/field.php';
 | |
| 
 | |
| class JFormFieldNR_Freetext extends NRFormField
 | |
| {
 | |
|     /**
 | |
|      * The field type.
 | |
|      *
 | |
|      * @var         string
 | |
|      */
 | |
|     public $type = 'freetext';
 | |
| 
 | |
|     /**
 | |
|      *  Method to render the input field
 | |
|      *
 | |
|      *  @return  string  
 | |
|      */
 | |
|     protected function getInput()
 | |
|     {   
 | |
|         $file  = $this->get("file", false);
 | |
|         $text  = $this->get("text", false);
 | |
|         $label = $this->get("label", false);
 | |
|         $description = $this->get("description", false);
 | |
| 
 | |
|         if (!$label)
 | |
|         {
 | |
|             $html[] = '</div><div class="freetext '.$this->get("class").'">';
 | |
|         }
 | |
| 
 | |
|         if ($file)
 | |
|         {
 | |
|             $html[] = $this->renderContent($this->get("file"), $this->get("path"), $this);        
 | |
|         }
 | |
| 
 | |
|         if ($text)
 | |
|         {
 | |
|             $html[] = $this->prepareText($text);
 | |
| 
 | |
|             if (!defined('nrJ4') && $description)
 | |
|             {
 | |
|                 $html[] = '<p class="description">' . Text::_($description) . '</p>';
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return implode(" ", $html);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      *  Render PHP file with data
 | |
|      *
 | |
|      *  @param   string  $file         The file name
 | |
|      *  @param   string  $path         The pathname
 | |
|      *  @param   mixed   $displayData  The data object passed to template file
 | |
|      *
 | |
|      *  @return  string                HTML rendered
 | |
|      */
 | |
|     private function renderContent($file, $path, $displayData = null) 
 | |
|     {
 | |
|         $layout = new FileLayout($file, JPATH_SITE . $path, array('debug' => 0));
 | |
|         return $layout->render($displayData);
 | |
|     }
 | |
| 
 | |
| } |