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 |
manager.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 namespace phpbb\textreparser;
015
016 class manager
017 {
018 /**
019 * @var \phpbb\config\config
020 */
021 protected $config;
022
023 /**
024 * @var \phpbb\config\db_text
025 */
026 protected $config_text;
027
028 /**
029 * @var \phpbb\di\service_collection
030 */
031 protected $reparsers;
032
033 /**
034 * @var array
035 */
036 protected $resume_data;
037
038 /**
039 * Constructor
040 *
041 * @param \phpbb\config\config $config
042 * @param \phpbb\config\db_text $config_text
043 * @param \phpbb\di\service_collection $reparsers
044 */
045 public function __construct(\phpbb\config\config $config, \phpbb\config\db_text $config_text, \phpbb\di\service_collection $reparsers)
046 {
047 $this->config = $config;
048 $this->config_text = $config_text;
049 $this->reparsers = $reparsers;
050 }
051
052 /**
053 * Loads resume data from the database
054 *
055 * @param string $name Name of the reparser to which the resume data belongs
056 *
057 * @return array
058 */
059 public function get_resume_data($name)
060 {
061 if ($this->resume_data === null)
062 {
063 $resume_data = $this->config_text->get('reparser_resume');
064 $this->resume_data = !empty($resume_data) ? unserialize($resume_data) : array();
065 }
066
067 return isset($this->resume_data[$name]) ? $this->resume_data[$name] : array();
068 }
069
070 /**
071 * Updates the resume data in the database
072 *
073 * @param string $name Name of the reparser to which the resume data belongs
074 * @param int $min Lowest record ID
075 * @param int $current Current record ID
076 * @param int $size Number of records to process at a time
077 * @param bool $update_db True if the resume data should be written to the database, false if not. (default: true)
078 */
079 public function update_resume_data($name, $min, $current, $size, $update_db = true)
080 {
081 // Prevent overwriting the old, stored array
082 if ($this->resume_data === null)
083 {
084 $this->get_resume_data('');
085 }
086
087 $this->resume_data[$name] = array(
088 'range-min' => $min,
089 'range-max' => $current,
090 'range-size' => $size,
091 );
092
093 if ($update_db)
094 {
095 $this->config_text->set('reparser_resume', serialize($this->resume_data));
096 }
097 }
098
099 /**
100 * Sets the interval for a text_reparser cron task
101 *
102 * @param string $name Name of the reparser to schedule
103 * @param int $interval Interval in seconds, 0 to disable the cron task
104 */
105 public function schedule($name, $interval)
106 {
107 if (isset($this->reparsers[$name]) && isset($this->config[$name . '_cron_interval']))
108 {
109 $this->config->set($name . '_cron_interval', $interval);
110 }
111 }
112
113 /**
114 * Sets the interval for all text_reparser cron tasks
115 *
116 * @param int $interval Interval in seconds, 0 to disable the cron task
117 */
118 public function schedule_all($interval)
119 {
120 // This way we don't construct every registered reparser
121 $reparser_array = array_keys($this->reparsers->getArrayCopy());
122
123 foreach ($reparser_array as $reparser)
124 {
125 $this->schedule($reparser, $interval);
126 }
127 }
128
129 /**
130 * Finds a reparser by name.
131 *
132 * If there is no reparser with the specified name, null is returned.
133 *
134 * @param string $name Name of the reparser to look up.
135 * @return string A reparser service name, or null.
136 */
137 public function find_reparser($name)
138 {
139 foreach ($this->reparsers as $service => $reparser)
140 {
141 if ($reparser->get_name() == $name)
142 {
143 return $service;
144 }
145 }
146 return null;
147 }
148 }
149