Ejemplo n.º 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);
 }
Ejemplo n.º 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);
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function asConfig()
 {
     $plugins = parent::asConfig();
     // Adjust plugins' default properties
     foreach ($plugins as $pluginName => &$pluginConfig) {
         $plugin = $this->get($pluginName);
         // Add base properties
         $pluginConfig += $plugin->getBaseProperties();
         // Remove quickMatch if it's false
         if ($pluginConfig['quickMatch'] === false) {
             unset($pluginConfig['quickMatch']);
         }
         // Remove regexpLimit if there's no regexp
         if (!isset($pluginConfig['regexp'])) {
             unset($pluginConfig['regexpLimit']);
         }
         // Add the JavaScript parser (generated dynamically)
         if (!isset($pluginConfig['parser'])) {
             $pluginConfig['parser'] = new Variant();
             $pluginConfig['parser']->setDynamic('JS', [$plugin, 'getJSParser']);
         }
         // Remove className if it's a default plugin using its default name. Its class name will
         // be generated by the parser automatically
         $className = 's9e\\TextFormatter\\Plugins\\' . $pluginName . '\\Parser';
         if ($pluginConfig['className'] === $className) {
             unset($pluginConfig['className']);
         }
     }
     unset($pluginConfig);
     return $plugins;
 }
 /**
  * @testdox asConfig() returns the elements in lexical order
  */
 public function testAsConfigLexicalOrder()
 {
     $collection = new NormalizedCollection();
     $collection->add('foo', 'foo');
     $collection->add('bar', 'bar');
     $this->assertSame(['bar' => 'bar', 'foo' => 'foo'], $collection->asConfig());
 }