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

helper.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 5.94 KiB


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\controller;
015   
016  use Symfony\Component\HttpFoundation\JsonResponse;
017  use Symfony\Component\HttpFoundation\Response;
018  use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
019   
020  /**
021  * Controller helper class, contains methods that do things for controllers
022  */
023  class helper
024  {
025      /**
026      * Template object
027      * @var \phpbb\template\template
028      */
029      protected $template;
030   
031      /**
032      * User object
033      * @var \phpbb\user
034      */
035      protected $user;
036   
037      /**
038      * config object
039      * @var \phpbb\config\config
040      */
041      protected $config;
042   
043      /* @var \phpbb\symfony_request */
044      protected $symfony_request;
045   
046      /* @var \phpbb\request\request_interface */
047      protected $request;
048   
049      /**
050       * @var \phpbb\routing\helper
051       */
052      protected $routing_helper;
053   
054      /**
055       * Constructor
056       *
057       * @param \phpbb\template\template $template Template object
058       * @param \phpbb\user $user User object
059       * @param \phpbb\config\config $config Config object
060       * @param \phpbb\symfony_request $symfony_request Symfony Request object
061       * @param \phpbb\request\request_interface $request phpBB request object
062       * @param \phpbb\routing\helper $routing_helper Helper to generate the routes
063       */
064      public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, \phpbb\symfony_request $symfony_request, \phpbb\request\request_interface $request, \phpbb\routing\helper $routing_helper)
065      {
066          $this->template = $template;
067          $this->user = $user;
068          $this->config = $config;
069          $this->symfony_request = $symfony_request;
070          $this->request = $request;
071          $this->routing_helper = $routing_helper;
072      }
073   
074      /**
075      * Automate setting up the page and creating the response object.
076      *
077      * @param string $template_file The template handle to render
078      * @param string $page_title The title of the page to output
079      * @param int $status_code The status code to be sent to the page header
080      * @param bool $display_online_list Do we display online users list
081      * @param int $item_id Restrict online users to item id
082      * @param string $item Restrict online users to a certain session item, e.g. forum for session_forum_id
083      * @param bool $send_headers Whether headers should be sent by page_header(). Defaults to false for controllers.
084      *
085      * @return Response object containing rendered page
086      */
087      public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = false)
088      {
089          page_header($page_title, $display_online_list, $item_id, $item, $send_headers);
090   
091          $this->template->set_filenames(array(
092              'body'    => $template_file,
093          ));
094   
095          page_footer(true, false, false);
096   
097          $headers = !empty($this->user->data['is_bot']) ? array('X-PHPBB-IS-BOT' => 'yes') : array();
098   
099          return new Response($this->template->assign_display('body'), $status_code, $headers);
100      }
101   
102      /**
103      * Generate a URL to a route
104      *
105      * @param string    $route        Name of the route to travel
106      * @param array    $params        String or array of additional url parameters
107      * @param bool    $is_amp        Is url using &amp; (true) or & (false)
108      * @param string|bool        $session_id    Possibility to use a custom session id instead of the global one
109      * @param bool|string        $reference_type The type of reference to be generated (one of the constants)
110      * @return string The URL already passed through append_sid()
111      */
112      public function route($route, array $params = array(), $is_amp = true, $session_id = false, $reference_type = UrlGeneratorInterface::ABSOLUTE_PATH)
113      {
114          return $this->routing_helper->route($route, $params, $is_amp, $session_id, $reference_type);
115      }
116   
117      /**
118      * Output an error, effectively the same thing as trigger_error
119      *
120      * @param string $message The error message
121      * @param int $code The error code (e.g. 404, 500, 503, etc.)
122      * @return Response A Response instance
123      *
124      * @deprecated 3.1.3 (To be removed: 3.3.0) Use exceptions instead.
125      */
126      public function error($message, $code = 500)
127      {
128          return $this->message($message, array(), 'INFORMATION', $code);
129      }
130   
131      /**
132       * Output a message
133       *
134       * In case of an error, please throw an exception instead
135       *
136       * @param string $message The message to display (must be a language variable)
137       * @param array $parameters The parameters to use with the language var
138       * @param string $title Title for the message (must be a language variable)
139       * @param int $code The HTTP status code (e.g. 404, 500, 503, etc.)
140       * @return Response A Response instance
141       */
142      public function message($message, array $parameters = array(), $title = 'INFORMATION', $code = 200)
143      {
144          array_unshift($parameters, $message);
145          $message_text = call_user_func_array(array($this->user, 'lang'), $parameters);
146          $message_title = $this->user->lang($title);
147   
148          if ($this->request->is_ajax())
149          {
150              global $refresh_data;
151   
152              return new JsonResponse(
153                  array(
154                      'MESSAGE_TITLE'        => $message_title,
155                      'MESSAGE_TEXT'        => $message_text,
156                      'S_USER_WARNING'    => false,
157                      'S_USER_NOTICE'        => false,
158                      'REFRESH_DATA'        => (!empty($refresh_data)) ? $refresh_data : null
159                  ),
160                  $code
161              );
162          }
163   
164          $this->template->assign_vars(array(
165              'MESSAGE_TEXT'    => $message_text,
166              'MESSAGE_TITLE'    => $message_title,
167          ));
168   
169          return $this->render('message_body.html', $message_title, $code);
170      }
171   
172      /**
173       * Assigns automatic refresh time meta tag in template
174       *
175       * @param    int        $time    time in seconds, when redirection should occur
176       * @param    string    $url    the URL where the user should be redirected
177       * @return    null
178       */
179      public function assign_meta_refresh_var($time, $url)
180      {
181          $this->template->assign_vars(array(
182              'META' => '<meta http-equiv="refresh" content="' . $time . '; url=' . $url . '" />',
183          ));
184      }
185   
186      /**
187      * Return the current url
188      *
189      * @return string
190      */
191      public function get_current_url()
192      {
193          return generate_board_url(true) . $this->request->escape($this->symfony_request->getRequestUri(), true);
194      }
195  }
196