예제 #1
0
 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);
 }
예제 #2
0
 /**
  * {@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);
 }
예제 #3
0
 /**
  * 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);
 }
예제 #4
0
 /**
  * @testdox "B\n" is invalid (no newlines allowed)
  */
 public function testInvalid6343D666()
 {
     $this->assertFalse(TagName::isValid("B\n"));
 }