first commit
This commit is contained in:
72
layouts/joomla/icon/iconclass.php
Normal file
72
layouts/joomla/icon/iconclass.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage Layout
|
||||
*
|
||||
* @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
// Convert icomoon to fa
|
||||
$icon = $displayData['icon'];
|
||||
|
||||
// Get fixed width icon or not
|
||||
$iconFixed = $displayData['fixed'] ?? null;
|
||||
|
||||
// Set default prefix to be fontawesome
|
||||
$iconPrefix = $displayData['prefix'] ?? 'icon-';
|
||||
|
||||
// Get other classNames if set, like icon-white, text-danger
|
||||
$iconSuffix = $displayData['suffix'] ?? null;
|
||||
|
||||
// Get other attributes besides classNames
|
||||
$tabindex = $displayData['tabindex'] ?? null;
|
||||
$title = $displayData['title'] ?? null;
|
||||
|
||||
// Default output in <span>. ClassNames if set to false
|
||||
$html = $displayData['html'] ?? true;
|
||||
|
||||
// Replace double set icon-icon-
|
||||
// @todo: Joomla should be cleaned so this replacement is not needed.
|
||||
$icon = str_replace('icon-icon-', 'icon-', $icon);
|
||||
|
||||
switch ($icon) {
|
||||
case (strpos($icon, 'icon-') !== false):
|
||||
$iconPrefix = $displayData['prefix'] ?? null;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if ($iconFixed) {
|
||||
$iconFixed = 'icon-fw';
|
||||
}
|
||||
|
||||
// Just render icon as className
|
||||
$icon = trim(implode(' ', [$iconPrefix . $icon, $iconFixed, $iconSuffix]));
|
||||
|
||||
// Convert icon to html output when HTML !== false
|
||||
if ($html !== false) {
|
||||
$iconAttribs = [
|
||||
'class' => $icon,
|
||||
'aria-hidden' => "true"
|
||||
];
|
||||
|
||||
if ($tabindex) {
|
||||
$iconAttribs['tabindex'] = $tabindex;
|
||||
}
|
||||
|
||||
if ($title) {
|
||||
$iconAttribs['title'] = $title;
|
||||
}
|
||||
|
||||
$icon = '<span ' . ArrayHelper::toString($iconAttribs) . '></span>';
|
||||
}
|
||||
|
||||
echo $icon;
|
||||
Reference in New Issue
Block a user