138 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| 
 | |
| namespace Nextend\Framework\Font;
 | |
| 
 | |
| 
 | |
| use Nextend\Framework\Data\Data;
 | |
| use Nextend\Framework\Model\Section;
 | |
| 
 | |
| class FontSettings {
 | |
| 
 | |
|     /**
 | |
|      * @var Data
 | |
|      */
 | |
|     private static $data;
 | |
| 
 | |
|     /**
 | |
|      * @var Data
 | |
|      */
 | |
|     private static $pluginsData;
 | |
| 
 | |
|     public function __construct() {
 | |
|         self::load();
 | |
|         FontRenderer::setDefaultFont(self::$data->get('default-family'));
 | |
|     }
 | |
| 
 | |
|     public static function load() {
 | |
| 
 | |
|         self::$data = new Data(array(
 | |
|             'default-family'  => n2_x('Roboto,Arial', 'Default font'),
 | |
|             'preset-families' => n2_x(implode("\n", array(
 | |
|                 "Abel",
 | |
|                 "Arial",
 | |
|                 "Arimo",
 | |
|                 "Average",
 | |
|                 "Bevan",
 | |
|                 "Bitter",
 | |
|                 "'Bree Serif'",
 | |
|                 "Cabin",
 | |
|                 "Calligraffitti",
 | |
|                 "Chewy",
 | |
|                 "Comfortaa",
 | |
|                 "'Covered By Your Grace'",
 | |
|                 "'Crafty Girls'",
 | |
|                 "'Dancing Script'",
 | |
|                 "'Noto Sans'",
 | |
|                 "'Noto Serif'",
 | |
|                 "'Francois One'",
 | |
|                 "'Fredoka One'",
 | |
|                 "'Gloria Hallelujah'",
 | |
|                 "'Happy Monkey'",
 | |
|                 "'Josefin Slab'",
 | |
|                 "Lato",
 | |
|                 "Lobster",
 | |
|                 "'Luckiest Guy'",
 | |
|                 "Montserrat",
 | |
|                 "'Nova Square'",
 | |
|                 "Nunito",
 | |
|                 "'Open Sans'",
 | |
|                 "Oswald",
 | |
|                 "Oxygen",
 | |
|                 "Pacifico",
 | |
|                 "'Permanent Marker'",
 | |
|                 "'Playfair Display'",
 | |
|                 "'PT Sans'",
 | |
|                 "'Poiret One'",
 | |
|                 "Raleway",
 | |
|                 "Roboto",
 | |
|                 "'Rock Salt'",
 | |
|                 "Quicksand",
 | |
|                 "Satisfy",
 | |
|                 "'Squada One'",
 | |
|                 "'The Girl Next Door'",
 | |
|                 "'Titillium Web'",
 | |
|                 "'Varela Round'",
 | |
|                 "Vollkorn",
 | |
|                 "'Walter Turncoat'"
 | |
|             )), 'Default font family list'),
 | |
|             'plugins'         => array()
 | |
|         ));
 | |
| 
 | |
|         foreach (Section::getAll('system', 'fonts') as $data) {
 | |
|             self::$data->set($data['referencekey'], $data['value']);
 | |
|         }
 | |
| 
 | |
|         self::$pluginsData = new Data(self::$data->get('plugins'), true);
 | |
|     }
 | |
| 
 | |
|     public static function store($data) {
 | |
|         if (is_array($data)) {
 | |
|             foreach ($data as $key => $value) {
 | |
|                 if (self::$data->has($key)) {
 | |
|                     self::$data->set($key, $value);
 | |
|                     Section::set('system', 'fonts', $key, $value, 1, 1);
 | |
|                     unset($data[$key]);
 | |
|                 }
 | |
|             }
 | |
|             if (count($data)) {
 | |
|                 self::$pluginsData = new Data($data);
 | |
|                 Section::set('system', 'fonts', 'plugins', self::$pluginsData->toJSON(), 1, 1);
 | |
| 
 | |
|             }
 | |
| 
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return Data
 | |
|      */
 | |
|     public static function getData() {
 | |
| 
 | |
|         return self::$data;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return Data
 | |
|      */
 | |
|     public static function getPluginsData() {
 | |
| 
 | |
|         return self::$pluginsData;
 | |
|     }
 | |
| 
 | |
|     public static function getDefaultFamily() {
 | |
|         return self::$data->get('default-family');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return array
 | |
|      */
 | |
|     public static function getPresetFamilies() {
 | |
|         return array_filter(explode("\n", self::$data->get('preset-families')));
 | |
|     }
 | |
| }
 | |
| 
 | |
| new FontSettings(); |