Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Configurator.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 3.70 KiB


001  <?php
002   
003  /*
004  * @package   s9e\TextFormatter
005  * @copyright Copyright (c) 2010-2016 The s9e Authors
006  * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
007  */
008  namespace s9e\TextFormatter\Plugins\BBCodes;
009  use ArrayAccess;
010  use Countable;
011  use InvalidArgumentException;
012  use Iterator;
013  use RuntimeException;
014  use s9e\TextFormatter\Configurator\Helpers\RegexpBuilder;
015  use s9e\TextFormatter\Configurator\Helpers\RegexpParser;
016  use s9e\TextFormatter\Configurator\JavaScript\Dictionary;
017  use s9e\TextFormatter\Configurator\Traits\CollectionProxy;
018  use s9e\TextFormatter\Plugins\BBCodes\Configurator\BBCode;
019  use s9e\TextFormatter\Plugins\BBCodes\Configurator\BBCodeCollection;
020  use s9e\TextFormatter\Plugins\BBCodes\Configurator\BBCodeMonkey;
021  use s9e\TextFormatter\Plugins\BBCodes\Configurator\Repository;
022  use s9e\TextFormatter\Plugins\BBCodes\Configurator\RepositoryCollection;
023  use s9e\TextFormatter\Plugins\ConfiguratorBase;
024  class Configurator extends ConfiguratorBase implements ArrayAccess, Countable, Iterator
025  {
026      public function __call($methodName, $args)
027      {
028          return \call_user_func_array(array($this->collection, $methodName), $args);
029      }
030      public function offsetExists($offset)
031      {
032          return isset($this->collection[$offset]);
033      }
034      public function offsetGet($offset)
035      {
036          return $this->collection[$offset];
037      }
038      public function offsetSet($offset, $value)
039      {
040          $this->collection[$offset] = $value;
041      }
042      public function offsetUnset($offset)
043      {
044          unset($this->collection[$offset]);
045      }
046      public function count()
047      {
048          return \count($this->collection);
049      }
050      public function current()
051      {
052          return $this->collection->current();
053      }
054      public function key()
055      {
056          return $this->collection->key();
057      }
058      public function next()
059      {
060          return $this->collection->next();
061      }
062      public function rewind()
063      {
064          $this->collection->rewind();
065      }
066      public function valid()
067      {
068          return $this->collection->valid();
069      }
070      public $bbcodeMonkey;
071      public $collection;
072      protected $quickMatch = '[';
073      protected $regexp = '#\\[/?(\\*|[-\\w]+)(?=[\\]\\s=:/])#';
074      public $repositories;
075      protected function setUp()
076      {
077          $this->bbcodeMonkey = new BBCodeMonkey($this->configurator);
078          $this->collection   = new BBCodeCollection;
079          $this->repositories = new RepositoryCollection($this->bbcodeMonkey);
080          $this->repositories->add('default', __DIR__ . '/Configurator/repository.xml');
081      }
082      public function addCustom($usage, $template, array $options = array())
083      {
084          $config = $this->bbcodeMonkey->create($usage, $template);
085          if (isset($options['tagName']))
086              $config['bbcode']->tagName = $options['tagName'];
087          if (isset($options['rules']))
088              $config['tag']->rules->merge($options['rules']);
089          return $this->addFromConfig($config);
090      }
091      public function addFromRepository($name, $repository = 'default', array $vars = array())
092      {
093          if (!($repository instanceof Repository))
094          {
095              if (!$this->repositories->exists($repository))
096                  throw new InvalidArgumentException("Repository '" . $repository . "' does not exist");
097              $repository = $this->repositories->get($repository);
098          }
099          return $this->addFromConfig($repository->get($name, $vars));
100      }
101      protected function addFromConfig(array $config)
102      {
103          $bbcodeName = $config['bbcodeName'];
104          $bbcode     = $config['bbcode'];
105          $tag        = $config['tag'];
106          if (!isset($bbcode->tagName))
107              $bbcode->tagName = $bbcodeName;
108          $this->configurator->templateNormalizer->normalizeTag($tag);
109          $this->configurator->templateChecker->checkTag($tag);
110          $this->collection->add($bbcodeName, $bbcode);
111          $this->configurator->tags->add($bbcode->tagName, $tag);
112          return $bbcode;
113      }
114      public function asConfig()
115      {
116          if (!\count($this->collection))
117              return;
118          return array(
119              'bbcodes'    => $this->collection->asConfig(),
120              'quickMatch' => $this->quickMatch,
121              'regexp'     => $this->regexp
122          );
123      }
124  }