Browse Source

Поменял cdn-ссылку, регистрацию css в yii-1 только один раз

master v5.15.4-r4
parent
commit
9499e88bf8
  1. 7
      README.md
  2. 25
      protected/components/FontAwesome5Component.php

7
README.md

@ -21,11 +21,10 @@
/*
'debug' => false, // bool, вкл-выкл подключение минифицированных версий css
'cdn' => false, // bool, включает использование cdn (cloudflare)
'localUrl' => '/css/fontawesome,
'localUrl' => 'css/fontawesome,
// string, ссылка на локальные файлы в document_root
'cdnUrl' => 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome',
// string, ссылка на путь в cdn. по-умолчанию добавляется /{version}/css.
// если указать свою - то не добавляется
'cdnUrl' => 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/{version}/css',
// string, ссылка на путь в cdn. по-умолчанию заменяется {version} на версию шрифта.
'tag' => 'i', // string, название тега для вывода иконки
'baseCss' => 'fontawesome.css'
// string, название файла базовых стилей

25
protected/components/FontAwesome5Component.php

@ -24,9 +24,9 @@ class FontAwesome5Component extends CApplicationComponent
public $cdn = false;
public $localUrl = '/css/fontawesome';
public $localUrl = 'css/fontawesome';
public $cdnUrl = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome';
public $cdnUrl = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/{version}/css';
public $baseCss = 'fontawesome.css';
public $solidCss = 'solid.css';
@ -36,9 +36,12 @@ class FontAwesome5Component extends CApplicationComponent
public $tag = 'i';
private $_registered = array();
public function init()
{
$this->cdnUrl .= '/' . self::VERSION . '/css';
$this->cdnUrl = str_replace('{version}', self::VERSION, $this->cdnUrl);
if ($this->debug === null) {
if (defined('YII_DEBUG') && YII_DEBUG === true) {
@ -72,23 +75,23 @@ class FontAwesome5Component extends CApplicationComponent
*/
public function icon($code, $options = [], $mode=self::MODE_DEFAULT)
{
Yii::app()->clientScript->registerCssFile($this->_getAwesomeUrl($this->baseCss));
$this->_registerCssFile($this->baseCss);
$class = '';
if (!$mode) $mode = self::MODE_DEFAULT;
if ($mode == self::MODE_DEFAULT) $class = 'fa';
if ($mode == self::MODE_SOLID) {
$class = 'fas';
Yii::app()->clientScript->registerCssFile($this->_getAwesomeUrl($this->solidCss));
$this->_registerCssFile($this->solidCss);
}
if ($mode == self::MODE_REGULAR) {
$class = 'far';
Yii::app()->clientScript->registerCssFile($this->_getAwesomeUrl($this->regularCss));
$this->__registerCssFile($this->regularCss);
}
if ($mode == self::MODE_LIGHT) $class = 'fal';
if ($mode == self::MODE_BRANDS) {
$class = 'fab';
Yii::app()->clientScript->registerCssFile($this->_getAwesomeUrl($this->brandsCss));
$this->_registerCssFile($this->brandsCss);
}
$options['class'] = $class . ' fa-' . $code . (!empty($options['class']) ? " " . $options['class'] : "");
CHtml::$closeSingleTags = false;
@ -114,6 +117,14 @@ class FontAwesome5Component extends CApplicationComponent
return $url;
}
protected function _registerCssFile($cssFile)
{
if (empty($this->_registered[$cssFile])) {
Yii::app()->clientScript->registerCssFile($this->_getAwesomeUrl($cssFile));
$this->_registered[$cssFile] = true;
}
}
/** Простые alias для иконок */

Loading…
Cancel
Save