*/
protected $smileyCount = 0;
- /**
- * list of smilies by smiley code
- * @var Smiley[]
- */
- protected $smilies = [];
-
/**
* @var string[]
*/
*/
protected static $illegalChars = '[^\x0-\x2C\x2E\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]+';
+ /**
+ * list of smilies by smiley code
+ * @var Smiley[]
+ */
+ protected static $smilies;
+
/**
* regex for user mentions
* @var string
if (MODULE_SMILEY) {
$this->smileyCount = $smileyCount;
- // get smilies
- $smilies = SmileyCache::getInstance()->getSmilies();
- $categories = SmileyCache::getInstance()->getCategories();
-
- foreach ($smilies as $categoryID => $categorySmilies) {
- if (!array_key_exists($categoryID ?: null, $categories) || $categories[$categoryID ?: null]->isDisabled) continue;
+ if (self::$smilies === null) {
+ self::$smilies = [];
- /** @var Smiley $smiley */
- foreach ($categorySmilies as $smiley) {
- foreach ($smiley->smileyCodes as $smileyCode) {
- $this->smilies[$smileyCode] = $smiley;
- }
- }
- }
-
- uksort($this->smilies, function($a, $b) {
- $lengthA = mb_strlen($a);
- $lengthB = mb_strlen($b);
+ // get smilies
+ $smilies = SmileyCache::getInstance()->getSmilies();
+ $categories = SmileyCache::getInstance()->getCategories();
- if ($lengthA < $lengthB) {
- return 1;
- }
- else if ($lengthA === $lengthB) {
- return 0;
+ foreach ($smilies as $categoryID => $categorySmilies) {
+ if (!array_key_exists($categoryID ?: null, $categories) || $categories[$categoryID ?: null]->isDisabled) continue;
+
+ /** @var Smiley $smiley */
+ foreach ($categorySmilies as $smiley) {
+ foreach ($smiley->smileyCodes as $smileyCode) {
+ self::$smilies[$smileyCode] = $smiley;
+ }
+ }
}
- return -1;
- });
+ uksort(self::$smilies, function ($a, $b) {
+ $lengthA = mb_strlen($a);
+ $lengthB = mb_strlen($b);
+
+ if ($lengthA < $lengthB) {
+ return 1;
+ }
+ else {
+ if ($lengthA === $lengthB) {
+ return 0;
+ }
+ }
+
+ return -1;
+ });
+ }
}
}
'difficult' => []
];
- foreach ($this->smilies as $smileyCode => $smiley) {
+ foreach (self::$smilies as $smileyCode => $smiley) {
$smileyCode = preg_quote($smileyCode, '~');
if (preg_match('~^\\\:.+\\\:$~', $smileyCode)) {
}
$this->smileyCount++;
- $smiley = $this->smilies[$smileyCode];
+ $smiley = self::$smilies[$smileyCode];
$element = $text->ownerDocument->createElement('img');
$element->setAttribute('src', $smiley->getURL());
$element->setAttribute('class', 'smiley');