[ Index ] |
PHP Cross Reference of phpBB-3.3.12-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 namespace phpbb\install\helper\iohandler; 15 16 use phpbb\install\exception\installer_exception; 17 use Symfony\Component\Console\Output\OutputInterface; 18 use Symfony\Component\Console\Style\OutputStyle; 19 20 /** 21 * Input-Output handler for the CLI frontend 22 */ 23 class cli_iohandler extends iohandler_base 24 { 25 /** 26 * @var OutputInterface 27 */ 28 protected $output; 29 30 /** 31 * @var OutputStyle 32 */ 33 protected $io; 34 35 /** 36 * @var array 37 */ 38 protected $input_values = array(); 39 40 /** 41 * @var \Symfony\Component\Console\Helper\ProgressBar 42 */ 43 protected $progress_bar; 44 45 /** 46 * Set the style and output used to display feedback; 47 * 48 * @param OutputStyle $style 49 * @param OutputInterface $output 50 */ 51 public function set_style(OutputStyle $style, OutputInterface $output) 52 { 53 $this->io = $style; 54 $this->output = $output; 55 } 56 57 /** 58 * {@inheritdoc} 59 */ 60 public function get_input($name, $default, $multibyte = false) 61 { 62 $result = $default; 63 64 if (isset($this->input_values[$name])) 65 { 66 $result = $this->input_values[$name]; 67 } 68 69 if ($multibyte) 70 { 71 return utf8_normalize_nfc($result); 72 } 73 74 return $result; 75 } 76 77 /** 78 * {@inheritdoc} 79 */ 80 public function get_raw_input($name, $default) 81 { 82 return $this->get_input($name, $default, true); 83 } 84 85 /** 86 * Set input variable 87 * 88 * @param string $name Name of input variable 89 * @param mixed $value Value of input variable 90 */ 91 public function set_input($name, $value) 92 { 93 $this->input_values[$name] = $value; 94 } 95 96 /** 97 * {@inheritdoc} 98 */ 99 public function get_server_variable($name, $default = '') 100 { 101 return $default; 102 } 103 104 /** 105 * {@inheritdoc} 106 */ 107 public function get_header_variable($name, $default = '') 108 { 109 return $default; 110 } 111 112 /** 113 * {@inheritdoc} 114 */ 115 public function is_secure() 116 { 117 return false; 118 } 119 120 /** 121 * {@inheritdoc} 122 */ 123 public function add_user_form_group($title, $form) 124 { 125 throw new installer_exception('MISSING_DATA'); 126 } 127 128 /** 129 * {@inheritdoc} 130 */ 131 public function send_response($no_more_output = false) 132 { 133 } 134 135 /** 136 * {@inheritdoc 137 */ 138 public function add_error_message($error_title, $error_description = false) 139 { 140 $this->io->newLine(); 141 $message = $this->translate_message($error_title, $error_description); 142 $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); 143 144 if (strpos($message_string, '<br />') !== false) 145 { 146 $message_string = strip_tags(str_replace('<br />', "\n", $message_string)); 147 } 148 149 $this->io->error($message_string); 150 151 if ($this->progress_bar !== null) 152 { 153 $this->io->newLine(2); 154 $this->progress_bar->display(); 155 } 156 } 157 158 /** 159 * {@inheritdoc 160 */ 161 public function add_warning_message($warning_title, $warning_description = false) 162 { 163 $this->io->newLine(); 164 165 $message = $this->translate_message($warning_title, $warning_description); 166 $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); 167 $this->io->warning($message_string); 168 169 if ($this->progress_bar !== null) 170 { 171 $this->io->newLine(2); 172 $this->progress_bar->display(); 173 } 174 } 175 176 /** 177 * {@inheritdoc 178 */ 179 public function add_log_message($log_title, $log_description = false) 180 { 181 if ($this->output->getVerbosity() > OutputInterface::VERBOSITY_NORMAL) 182 { 183 $message = $this->translate_message($log_title, $log_description); 184 $this->output->writeln(sprintf('[%3d/%-3d] ---- %s', $this->current_task_progress, $this->task_progress_count, $message['title'])); 185 } 186 } 187 188 /** 189 * {@inheritdoc 190 */ 191 public function add_success_message($error_title, $error_description = false) 192 { 193 $this->io->newLine(); 194 195 $message = $this->translate_message($error_title, $error_description); 196 $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); 197 $this->io->success($message_string); 198 199 if ($this->progress_bar !== null) 200 { 201 $this->io->newLine(2); 202 $this->progress_bar->display(); 203 } 204 } 205 206 /** 207 * {@inheritdoc} 208 */ 209 public function set_task_count($task_count, $restart = false) 210 { 211 parent::set_task_count($task_count, $restart); 212 213 if ($this->output->getVerbosity() === OutputInterface::VERBOSITY_NORMAL) 214 { 215 if ($this->progress_bar !== null) 216 { 217 // Symfony's ProgressBar is immutable regarding task_count, so delete the old and create a new one. 218 $this->progress_bar->clear(); 219 } 220 else 221 { 222 $this->io->newLine(2); 223 } 224 225 $this->progress_bar = $this->io->createProgressBar($task_count); 226 $this->progress_bar->setFormat( 227 " %current:3s%/%max:-3s% %bar% %percent:3s%%\n" . 228 " %message%\n"); 229 $this->progress_bar->setBarWidth(60); 230 231 if (!defined('PHP_WINDOWS_VERSION_BUILD')) 232 { 233 $this->progress_bar->setEmptyBarCharacter('░'); // light shade character \u2591 234 $this->progress_bar->setProgressCharacter(''); 235 $this->progress_bar->setBarCharacter('▓'); // dark shade character \u2593 236 } 237 238 $this->progress_bar->setMessage(''); 239 $this->progress_bar->start(); 240 } 241 } 242 243 /** 244 * {@inheritdoc} 245 */ 246 public function set_progress($task_lang_key, $task_number) 247 { 248 parent::set_progress($task_lang_key, $task_number); 249 250 if ($this->progress_bar !== null) 251 { 252 $this->progress_bar->setProgress($this->current_task_progress); 253 $this->progress_bar->setMessage($this->current_task_name); 254 } 255 else 256 { 257 $this->output->writeln(sprintf('[%3d/%-3d] %s', $this->current_task_progress, $this->task_progress_count, $this->current_task_name)); 258 } 259 } 260 261 /** 262 * {@inheritdoc} 263 */ 264 public function finish_progress($message_lang_key) 265 { 266 parent::finish_progress($message_lang_key); 267 268 if ($this->progress_bar !== null) 269 { 270 $this->progress_bar->finish(); 271 $this->progress_bar = null; 272 } 273 } 274 275 /** 276 * {@inheritdoc} 277 */ 278 public function request_refresh() 279 { 280 } 281 282 /** 283 * {@inheritdoc} 284 */ 285 public function set_active_stage_menu($menu_path) 286 { 287 } 288 289 /** 290 * {@inheritdoc} 291 */ 292 public function set_finished_stage_menu($menu_path) 293 { 294 } 295 296 /** 297 * {@inheritdoc} 298 */ 299 public function set_cookie($cookie_name, $cookie_value) 300 { 301 } 302 303 /** 304 * {@inheritdoc} 305 */ 306 public function add_download_link($route, $title, $msg = null) 307 { 308 } 309 310 /** 311 * {@inheritdoc} 312 */ 313 public function render_update_file_status($status_array) 314 { 315 } 316 317 /** 318 * {@inheritdoc} 319 */ 320 public function redirect($url, $use_ajax = false) 321 { 322 } 323 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Jun 23 12:25:44 2024 | Cross-referenced by PHPXref 0.7.1 |