: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Nextend\Framework\Font;
use Nextend\Framework\Pattern\SingletonTrait;
use Nextend\Framework\Plugin;
private $fonts = array();
private $fontsBySet = array();
private $fontsById = array();
protected function init() {
Plugin::addAction('systemfontset', array(
Plugin::addAction('systemfont', array(
Plugin::addAction('font', array(
private function load() {
Plugin::doAction('fontStorage', array(
for ($i = 0; $i < count($this->fonts); $i++) {
if (!isset($this->fontsBySet[$this->fonts[$i]['referencekey']])) {
$this->fontsBySet[$this->fonts[$i]['referencekey']] = array();
$this->fontsBySet[$this->fonts[$i]['referencekey']][] = &$this->fonts[$i];
$this->fontsById[$this->fonts[$i]['id']] = &$this->fonts[$i];
public function fontSet($referenceKey, &$sets) {
for ($i = count($this->sets) - 1; $i >= 0; $i--) {
$this->sets[$i]['isSystem'] = 1;
$this->sets[$i]['editable'] = 0;
array_unshift($sets, $this->sets[$i]);
public function fonts($referenceKey, &$fonts) {
if (isset($this->fontsBySet[$referenceKey])) {
$_fonts = &$this->fontsBySet[$referenceKey];
for ($i = count($_fonts) - 1; $i >= 0; $i--) {
$_fonts[$i]['isSystem'] = 1;
$_fonts[$i]['editable'] = 0;
array_unshift($fonts, $_fonts[$i]);
public function font($id, &$font) {
if (isset($this->fontsById[$id])) {
$this->fontsById[$id]['isSystem'] = 1;
$this->fontsById[$id]['editable'] = 0;
$font = $this->fontsById[$id];