public function saveSettings($settings) { $jsonTags = isset($settings) ? $settings['tags'] : ''; $aCoreTags = array('p', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'address', 'div'); if ($jsonTags) { $aNewJsonTags = array(); $aTags = json_decode($jsonTags, true); foreach ($aTags as $key => $aTag) { $key = preg_replace("/[^a-zA-Z0-9]/", "", $key); if ($key && isset($aTag['element'])) { $aNewTag = array('element' => preg_replace("/[^a-zA-Z0-9]/", "", $aTag['element'])); if (!empty($aTag['attributes']) && is_array($aTag['attributes'])) { $aNewTag['attributes'] = $aTag['attributes']; } if (empty($aTag['description']) && !in_array($key, $aCoreTags)) { $aNewTag['description'] = $aTag['element'] . " " . $key; } elseif (!in_array($key, $aCoreTags)) { $aNewTag['description'] = $aTag['description']; } $aNewJsonTags[$key] = $aNewTag; } } $settings['tags'] = json_encode($aNewJsonTags); } parent::saveSettings($settings); }