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. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Configurator.php
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 }