133 lines
2.2 KiB
PHP
133 lines
2.2 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
|
|
*/
|
|
|
|
namespace NRFramework;
|
|
|
|
defined( '_JEXEC' ) or die( 'Restricted access' );
|
|
|
|
use Joomla\CMS\Factory;
|
|
|
|
/**
|
|
* Fonts Class
|
|
*/
|
|
class Fonts
|
|
{
|
|
/**
|
|
* Classic Fonts
|
|
*
|
|
* @var array
|
|
*/
|
|
private static $classic = array(
|
|
'Arial',
|
|
'Arial Black',
|
|
'Georgia',
|
|
'Tahoma',
|
|
'Franklin Gothic Medium',
|
|
'Calibri',
|
|
'Cambria',
|
|
'Century Gothic',
|
|
'Consolas',
|
|
'Corbel',
|
|
'Courier New',
|
|
'Times New Roman',
|
|
'Impact',
|
|
'Lucida Console',
|
|
'Palatino Linotype',
|
|
'Trebuchet MS',
|
|
'Verdana'
|
|
);
|
|
|
|
/**
|
|
* Google Fonts List
|
|
*
|
|
* @var array
|
|
*/
|
|
private static $google = array(
|
|
'Roboto',
|
|
'Staatliches',
|
|
'Thasadith',
|
|
'Open Sans',
|
|
'Sarabun',
|
|
'Slabo 27px',
|
|
'Lato',
|
|
'Oswald',
|
|
'Charm',
|
|
'Roboto Condensed',
|
|
'Source Sans Pro',
|
|
'Montserrat',
|
|
'Raleway',
|
|
'PT Sans',
|
|
'Poppins',
|
|
'Roboto Slab',
|
|
'Lora',
|
|
'Droid Sans',
|
|
'Merriweather',
|
|
'Ubuntu',
|
|
'Droid Serif',
|
|
'Arimo',
|
|
'Noto Sans',
|
|
'PT Sans Narro'
|
|
);
|
|
|
|
/**
|
|
* Returns all font groups alphabetically sorted
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function getFontGroups()
|
|
{
|
|
return array(
|
|
'Google Fonts' => self::getFontGroup('google'),
|
|
'Classic' => self::getFontGroup('classic')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Returns a font group alphabetically sorted
|
|
*
|
|
* @param string $name The Font Group
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function getFontGroup($name)
|
|
{
|
|
$fonts = self::$$name;
|
|
sort($fonts);
|
|
return $fonts;
|
|
}
|
|
|
|
/**
|
|
* Loads Google font to the document
|
|
*
|
|
* @param mixed $name The Google font name
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function loadFont($names)
|
|
{
|
|
if (!$names)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!is_array($names))
|
|
{
|
|
$names = array($names);
|
|
}
|
|
|
|
foreach ($names as $key => $value)
|
|
{
|
|
// If font is a Google Font then load it into the document
|
|
if (in_array($value, self::$google))
|
|
{
|
|
Factory::getDocument()->addStylesheet('//fonts.googleapis.com/css?family=' . urlencode($value));
|
|
}
|
|
}
|
|
}
|
|
} |