Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Front/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Front/TfViewDisplayTrait.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library\View\Front;

\defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use TechFry\Library\View\Sky\Date;
use TechFry\Library\View\Html\TfHtml;

trait TfViewDisplayTrait
{
    // get_div, get_alert, get_badge, get_binary, get_button, get_date, get_icon, get_image, get_link
    
    public function get_div($content, $config = [])
    {
        // $config - class
        
        $output = '';

        if (isset($config['class']) && $config['class'])
        {
            $output .= '<div class="' . $config['class'] . '">' . $content . '</div>';
        }
        else
        {
            $output .= '<div>' . $content . '</div>';
        }

        return $output;
    }
    
    // 01. Display alert message
    public function get_alert($message, $config = [])
    {
        $output = '';

        $type = $config['type'] ?? '';
        $icon = $config['icon'] ?? '';
        
        $output .= '<div class="alert alert-' . $type . '">';
            if ($icon)
            {
                $output .= '<span class="' . $icon . '" aria-hidden="true"></span> ';
            }
            $output .= $message;
        $output .= '</div>';

        return $output;
    }

    // 02. Display badges or labels
    public function get_badge($labels, $config = [])
    {
        // $config - class
        
        $output = '';

        if (!$labels)
        {
            return;
        }

        $class = $config['class'] ? $config['class'] : 'primary';

        if (\is_array($labels))
        {
            foreach ($labels as $label)
	        {
                $output .= '<span class="badge text-bg-' . $class . '">' . $label . '</span> ';
	        }
        }
        else
        {
            $output .= '<span class="badge text-bg-' . $class . '">' . $labels . '</span> ';
        }
        
        return $output;
    }
    
    // 03. Display data in the form of 0 or 1
    public function get_binary($value, $config = [])
    {
        $color = $value ? 'Green' : 'Red';
        
        $output = '';
        
        $output .= '<span style="color: ' . $color . ';" class="fas fa-';
        $output .= $value ? 'check' : 'times';
        $output .= '" aria-hidden="true"></span>';
        
        return $output;
    }

    // 04. Display action button
    public function get_button($link, $config = [])
    {
        $output = '';
        
        $output .= '<a class="btn btn-sm btn-' . $type . '" href="' . Route::_($link) . '">' . Text::_($text) . '</a> ';
        
        return $output;
    }

    // 05. Display date
    public function get_date($date, $config = [])
    {
        $output = '';

        $date_params = array(
            'format' => $this->cparams->get('date_format', 'DATE_FORMAT_LC3'),
            'tag' => 'div',
            'class' => $config['class'],
        );

        $d = new Date($date, $date_params);
        $output .= $d->display();
        
        return $output;
    }

    public function get_icon($icon, $config = [])
    {
        // $config - class
        
        $output = '<i class="' . $icon . ' ' . $config['class'] . '"></i>';

        return $output;
    }

    public function get_image($src, $config = [])
    {
        // $config - class
        
        $output = TfHtml::get_img($src, '', array('class' => $config['class']));

        return $output;
    }
    
    // 08. Display title with link to view
    public function get_link($title, $config = [])
    {
        // $config - class, url
        
        $output = '<a class="' . $config['class'] . '" href="' . $config['url'] . '" title="' . $title . '">' . $title . '</a>';

        return $output;
    }
}