Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/smart-sl.../Nextend/Framewor.../Font
File: FontRenderer.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace Nextend\Framework\Font;
[2] Fix | Delete
[3] Fix | Delete
use Nextend\Framework\Settings;
[4] Fix | Delete
[5] Fix | Delete
class FontRenderer {
[6] Fix | Delete
[7] Fix | Delete
public static $defaultFont = 'Montserrat';
[8] Fix | Delete
[9] Fix | Delete
public static $pre = '';
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* @var FontStyle
[13] Fix | Delete
*/
[14] Fix | Delete
public static $style;
[15] Fix | Delete
[16] Fix | Delete
public static $mode;
[17] Fix | Delete
[18] Fix | Delete
public static function setDefaultFont($fontFamily) {
[19] Fix | Delete
self::$defaultFont = $fontFamily;
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
public static function render($font, $mode, $pre = '', $fontSize = false) {
[23] Fix | Delete
self::$pre = $pre;
[24] Fix | Delete
[25] Fix | Delete
if (!empty($font)) {
[26] Fix | Delete
$value = json_decode($font, true);
[27] Fix | Delete
if ($value) {
[28] Fix | Delete
$selector = 'n2-font-' . md5($font) . '-' . $mode;
[29] Fix | Delete
[30] Fix | Delete
return array(
[31] Fix | Delete
$selector . ' ',
[32] Fix | Delete
self::renderFont($mode, $pre, $selector, $value['data'], $fontSize)
[33] Fix | Delete
);
[34] Fix | Delete
}
[35] Fix | Delete
}
[36] Fix | Delete
[37] Fix | Delete
return false;
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
private static function renderFont($mode, $pre, $selector, $tabs, $fontSize) {
[41] Fix | Delete
$search = array(
[42] Fix | Delete
'@pre',
[43] Fix | Delete
'@selector'
[44] Fix | Delete
);
[45] Fix | Delete
$replace = array(
[46] Fix | Delete
$pre,
[47] Fix | Delete
'.' . $selector
[48] Fix | Delete
);
[49] Fix | Delete
$tabs[0] = array_merge(array(
[50] Fix | Delete
'afont' => self::$defaultFont,
[51] Fix | Delete
'color' => '000000ff',
[52] Fix | Delete
'size' => '14||px',
[53] Fix | Delete
'tshadow' => '0|*|0|*|0|*|000000ff',
[54] Fix | Delete
'lineheight' => '1.5',
[55] Fix | Delete
'bold' => 0,
[56] Fix | Delete
'italic' => 0,
[57] Fix | Delete
'underline' => 0,
[58] Fix | Delete
'align' => 'left',
[59] Fix | Delete
'letterspacing' => "normal",
[60] Fix | Delete
'wordspacing' => "normal",
[61] Fix | Delete
'texttransform' => "none",
[62] Fix | Delete
'extra' => ''
[63] Fix | Delete
), $tabs[0]);
[64] Fix | Delete
[65] Fix | Delete
if (self::$mode[$mode]['renderOptions']['combined']) {
[66] Fix | Delete
for ($i = 1; $i < count($tabs); $i++) {
[67] Fix | Delete
$tabs[$i] = array_merge($tabs[$i - 1], $tabs[$i]);
[68] Fix | Delete
if ($tabs[$i]['size'] == $tabs[0]['size']) {
[69] Fix | Delete
$tabs[$i]['size'] = '100||%';
[70] Fix | Delete
} else {
[71] Fix | Delete
$size1 = explode('||', $tabs[0]['size']);
[72] Fix | Delete
$size2 = explode('||', $tabs[$i]['size']);
[73] Fix | Delete
if (isset($size1[1]) && isset($size2[1]) && $size1[1] == 'px' && $size2[1] == 'px') {
[74] Fix | Delete
$tabs[$i]['size'] = round($size2[0] / $size1[0] * 100) . '||%';
[75] Fix | Delete
}
[76] Fix | Delete
}
[77] Fix | Delete
}
[78] Fix | Delete
}
[79] Fix | Delete
foreach ($tabs as $k => $tab) {
[80] Fix | Delete
$search[] = '@tab' . $k;
[81] Fix | Delete
FontStyle::$fontSize = $fontSize;
[82] Fix | Delete
$replace[] = self::$style->style($tab);
[83] Fix | Delete
}
[84] Fix | Delete
[85] Fix | Delete
$template = '';
[86] Fix | Delete
foreach (self::$mode[$mode]['selectors'] as $s => $style) {
[87] Fix | Delete
$key = array_search($style, $search);
[88] Fix | Delete
if (is_numeric($key) && !empty($replace[$key])) {
[89] Fix | Delete
$template .= $s . "{" . $style . "}";
[90] Fix | Delete
}
[91] Fix | Delete
}
[92] Fix | Delete
[93] Fix | Delete
return str_replace($search, $replace, $template);
[94] Fix | Delete
}
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
$frontendAccessibility = intval(Settings::get('frontend-accessibility', 1));
[98] Fix | Delete
[99] Fix | Delete
FontRenderer::$mode = array(
[100] Fix | Delete
'0' => array(
[101] Fix | Delete
'id' => '0',
[102] Fix | Delete
'label' => n2_('Text'),
[103] Fix | Delete
'tabs' => array(
[104] Fix | Delete
n2_('Text')
[105] Fix | Delete
),
[106] Fix | Delete
'renderOptions' => array(
[107] Fix | Delete
'combined' => false
[108] Fix | Delete
),
[109] Fix | Delete
'preview' => '<div class="{fontClassName}">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>',
[110] Fix | Delete
'selectors' => array(
[111] Fix | Delete
'@pre@selector' => '@tab0'
[112] Fix | Delete
)
[113] Fix | Delete
),
[114] Fix | Delete
'simple' => array(
[115] Fix | Delete
'id' => 'simple',
[116] Fix | Delete
'label' => n2_('Text'),
[117] Fix | Delete
'tabs' => array(
[118] Fix | Delete
n2_('Text')
[119] Fix | Delete
),
[120] Fix | Delete
'renderOptions' => array(
[121] Fix | Delete
'combined' => false
[122] Fix | Delete
),
[123] Fix | Delete
'preview' => '<div class="{fontClassName}">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>',
[124] Fix | Delete
'selectors' => array(
[125] Fix | Delete
'@pre@selector' => '@tab0'
[126] Fix | Delete
)
[127] Fix | Delete
),
[128] Fix | Delete
'hover' => array(
[129] Fix | Delete
'id' => 'hover',
[130] Fix | Delete
'label' => n2_('Hover'),
[131] Fix | Delete
'tabs' => array(
[132] Fix | Delete
n2_('Text'),
[133] Fix | Delete
n2_('Hover')
[134] Fix | Delete
),
[135] Fix | Delete
'renderOptions' => array(
[136] Fix | Delete
'combined' => false
[137] Fix | Delete
),
[138] Fix | Delete
'preview' => '<div class="{fontClassName}">' . n2_('Heading') . '</div>',
[139] Fix | Delete
'selectors' => $frontendAccessibility ? array(
[140] Fix | Delete
'@pre@selector' => '@tab0',
[141] Fix | Delete
'@pre@selector:HOVER, @pre@selector:ACTIVE, @pre@selector:FOCUS' => '@tab1'
[142] Fix | Delete
) : array(
[143] Fix | Delete
'@pre@selector, @pre@selector:FOCUS' => '@tab0',
[144] Fix | Delete
'@pre@selector:HOVER, @pre@selector:ACTIVE' => '@tab1'
[145] Fix | Delete
)
[146] Fix | Delete
),
[147] Fix | Delete
'link' => array(
[148] Fix | Delete
'id' => 'link',
[149] Fix | Delete
'label' => n2_('Link'),
[150] Fix | Delete
'tabs' => array(
[151] Fix | Delete
n2_('Text'),
[152] Fix | Delete
n2_('Hover')
[153] Fix | Delete
),
[154] Fix | Delete
'renderOptions' => array(
[155] Fix | Delete
'combined' => false
[156] Fix | Delete
),
[157] Fix | Delete
'preview' => '<div class="{fontClassName}"><a href="#" onclick="return false;">' . n2_('Button') . '</a></div>',
[158] Fix | Delete
'selectors' => $frontendAccessibility ? array(
[159] Fix | Delete
'@pre@selector a' => '@tab0',
[160] Fix | Delete
'@pre@selector a:HOVER, @pre@selector a:ACTIVE, @pre@selector a:FOCUS' => '@tab1'
[161] Fix | Delete
) : array(
[162] Fix | Delete
'@pre@selector a, @pre@selector a:FOCUS' => '@tab0',
[163] Fix | Delete
'@pre@selector a:HOVER, @pre@selector a:ACTIVE' => '@tab1'
[164] Fix | Delete
)
[165] Fix | Delete
),
[166] Fix | Delete
'paragraph' => array(
[167] Fix | Delete
'id' => 'paragraph',
[168] Fix | Delete
'label' => n2_('Paragraph'),
[169] Fix | Delete
'tabs' => array(
[170] Fix | Delete
n2_('Text'),
[171] Fix | Delete
n2_('Link'),
[172] Fix | Delete
n2_('Hover')
[173] Fix | Delete
),
[174] Fix | Delete
'renderOptions' => array(
[175] Fix | Delete
'combined' => true
[176] Fix | Delete
),
[177] Fix | Delete
'preview' => '<div class="{fontClassName}">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do <a href="#">test link</a> incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in <a href="#">test link</a> velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat <a href="#">test link</a>, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>',
[178] Fix | Delete
'selectors' => array(
[179] Fix | Delete
'@pre@selector' => '@tab0',
[180] Fix | Delete
'@pre@selector a, @pre@selector a:FOCUS' => '@tab1',
[181] Fix | Delete
'@pre@selector a:HOVER, @pre@selector a:ACTIVE' => '@tab2'
[182] Fix | Delete
)
[183] Fix | Delete
),
[184] Fix | Delete
'input' => array(
[185] Fix | Delete
'id' => 'input',
[186] Fix | Delete
'label' => 'Input',
[187] Fix | Delete
'tabs' => array(
[188] Fix | Delete
n2_('Text'),
[189] Fix | Delete
n2_('Hover')
[190] Fix | Delete
),
[191] Fix | Delete
'renderOptions' => array(
[192] Fix | Delete
'combined' => false
[193] Fix | Delete
),
[194] Fix | Delete
'preview' => '<div class="{fontClassName}">Excepteur sint occaecat</div>',
[195] Fix | Delete
'selectors' => array(
[196] Fix | Delete
'@pre@selector' => '@tab0',
[197] Fix | Delete
'@pre@selector:HOVER, @pre@selector:FOCUS' => '@tab2'
[198] Fix | Delete
)
[199] Fix | Delete
),
[200] Fix | Delete
'dot' => array(
[201] Fix | Delete
'id' => 'dot',
[202] Fix | Delete
'label' => n2_('Dot'),
[203] Fix | Delete
'tabs' => array(
[204] Fix | Delete
n2_('Text'),
[205] Fix | Delete
n2_('Active')
[206] Fix | Delete
),
[207] Fix | Delete
'renderOptions' => array(
[208] Fix | Delete
'combined' => false
[209] Fix | Delete
),
[210] Fix | Delete
'preview' => '',
[211] Fix | Delete
'selectors' => array(
[212] Fix | Delete
'@pre@selector, @pre@selector:FOCUS' => '@tab0',
[213] Fix | Delete
'@pre@selector.n2-active, @pre@selector:HOVER, @pre@selector:ACTIVE' => '@tab1'
[214] Fix | Delete
)
[215] Fix | Delete
),
[216] Fix | Delete
'list' => array(
[217] Fix | Delete
'id' => 'list',
[218] Fix | Delete
'label' => n2_('List'),
[219] Fix | Delete
'tabs' => array(
[220] Fix | Delete
n2_('Text'),
[221] Fix | Delete
n2_('Link'),
[222] Fix | Delete
n2_('Hover')
[223] Fix | Delete
),
[224] Fix | Delete
'renderOptions' => array(
[225] Fix | Delete
'combined' => false
[226] Fix | Delete
),
[227] Fix | Delete
'preview' => '',
[228] Fix | Delete
'selectors' => array(
[229] Fix | Delete
'@pre@selector li' => '@tab0',
[230] Fix | Delete
'@pre@selector li a, @pre@selector li a:FOCUS' => '@tab1',
[231] Fix | Delete
'@pre@selector li a:HOVER, @pre@selector li a:ACTIVE' => '@tab2'
[232] Fix | Delete
)
[233] Fix | Delete
),
[234] Fix | Delete
'highlight' => array(
[235] Fix | Delete
'id' => 'highlight',
[236] Fix | Delete
'label' => n2_('Highlight'),
[237] Fix | Delete
'tabs' => array(
[238] Fix | Delete
n2_('Text'),
[239] Fix | Delete
n2_('Highlight'),
[240] Fix | Delete
n2_('Hover')
[241] Fix | Delete
),
[242] Fix | Delete
'renderOptions' => array(
[243] Fix | Delete
'combined' => true
[244] Fix | Delete
),
[245] Fix | Delete
'preview' => '<div class="{fontClassName}">' . n2_('Button') . '</div>',
[246] Fix | Delete
'selectors' => $frontendAccessibility ? array(
[247] Fix | Delete
'@pre@selector' => '@tab0',
[248] Fix | Delete
'@pre@selector .n2-highlighted' => '@tab1',
[249] Fix | Delete
'@pre@selector .n2-highlighted:HOVER, @pre@selector .n2-highlighted:ACTIVE, @pre@selector .n2-highlighted:FOCUS' => '@tab2'
[250] Fix | Delete
) : array(
[251] Fix | Delete
'@pre@selector' => '@tab0',
[252] Fix | Delete
'@pre@selector .n2-highlighted, @pre@selector .n2-highlighted:FOCUS' => '@tab1',
[253] Fix | Delete
'@pre@selector .n2-highlighted:HOVER, @pre@selector .n2-highlighted:ACTIVE' => '@tab2'
[254] Fix | Delete
)
[255] Fix | Delete
),
[256] Fix | Delete
);
[257] Fix | Delete
[258] Fix | Delete
FontRenderer::$style = new FontStyle();
[259] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function