public function asConfig() { $bbcodes = parent::asConfig(); foreach ($bbcodes as $bbcodeName => &$bbcode) { if (isset($bbcode['tagName']) && TagName::isValid($bbcodeName) && TagName::normalize($bbcodeName) === $bbcode['tagName']) { unset($bbcode['tagName']); } if (isset($bbcode['defaultAttribute']) && AttributeName::isValid($bbcodeName) && AttributeName::normalize($bbcodeName) === $bbcode['defaultAttribute']) { unset($bbcode['defaultAttribute']); } } unset($bbcode); return new Dictionary($bbcodes); }
/** * {@inheritdoc} * * This method will remove redundant info such as the BBCode's tagName or defaultAttribute values * if they are the same as their default values */ public function asConfig() { $bbcodes = parent::asConfig(); foreach ($bbcodes as $bbcodeName => &$bbcode) { // Remove the tag name if it's the same name as the BBCode if (isset($bbcode['tagName']) && TagName::isValid($bbcodeName) && TagName::normalize($bbcodeName) === $bbcode['tagName']) { unset($bbcode['tagName']); } // Remove the defaultAttribute name if it's the same name as the BBCode if (isset($bbcode['defaultAttribute']) && AttributeName::isValid($bbcodeName) && AttributeName::normalize($bbcodeName) === $bbcode['defaultAttribute']) { unset($bbcode['defaultAttribute']); } } unset($bbcode); return new Dictionary($bbcodes); }
/** * Normalize the name of a BBCode * * Follows the same rules as tag names with one exception: "*" is kept for compatibility with * other BBCode engines * * @param string $bbcodeName Original name * @return string Normalized name */ public static function normalizeName($bbcodeName) { if ($bbcodeName === '*') { return '*'; } if (!TagName::isValid($bbcodeName)) { throw new InvalidArgumentException("Invalid BBCode name '" . $bbcodeName . "'"); } return TagName::normalize($bbcodeName); }
/** * @testdox "B\n" is invalid (no newlines allowed) */ public function testInvalid6343D666() { $this->assertFalse(TagName::isValid("B\n")); }