Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

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

form.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 3.84 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\message;
015   
016  /**
017  * Abstract class form
018  */
019  abstract class form
020  {
021      /** @var \phpbb\auth\auth */
022      protected $auth;
023      /** @var \phpbb\config\config */
024      protected $config;
025      /** @var \phpbb\db\driver\driver_interface */
026      protected $db;
027      /** @var \phpbb\message\message */
028      protected $message;
029      /** @var \phpbb\user */
030      protected $user;
031   
032      /** @var string */
033      protected $phpbb_root_path;
034      /** @var string */
035      protected $phpEx;
036   
037      /** @var array */
038      protected $errors = array();
039      /** @var bool */
040      protected $cc_sender;
041      /** @var string */
042      protected $body;
043   
044      /**
045      * Construct
046      *
047      * @param \phpbb\auth\auth $auth
048      * @param \phpbb\config\config $config
049      * @param \phpbb\db\driver\driver_interface $db
050      * @param \phpbb\user $user
051      * @param string $phpbb_root_path
052      * @param string $phpEx
053      */
054      public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $phpEx)
055      {
056          $this->phpbb_root_path = $phpbb_root_path;
057          $this->phpEx = $phpEx;
058          $this->user = $user;
059          $this->auth = $auth;
060          $this->config = $config;
061          $this->db = $db;
062   
063          $this->message = new message($config['server_name']);
064          $this->message->set_sender_from_user($this->user);
065      }
066   
067      /**
068      * Returns the title for the email form page
069      *
070      * @return string
071      */
072      public function get_page_title()
073      {
074          return $this->user->lang['SEND_EMAIL'];
075      }
076   
077      /**
078      * Returns the file name of the form template
079      *
080      * @return string
081      */
082      public function get_template_file()
083      {
084          return 'memberlist_email.html';
085      }
086   
087      /**
088      * Checks whether the user is allowed to use the form
089      *
090      * @return false|string    Error string if not allowed, false otherwise
091      */
092      public function check_allow()
093      {
094          if (!$this->config['email_enable'])
095          {
096              return 'EMAIL_DISABLED';
097          }
098   
099          if (time() - $this->user->data['user_emailtime'] < $this->config['flood_interval'])
100          {
101              return 'FLOOD_EMAIL_LIMIT';
102          }
103   
104          return false;
105      }
106   
107      /**
108      * Get the return link after the message has been sent
109      *
110      * @return string
111      */
112      public function get_return_message()
113      {
114          return sprintf($this->user->lang['RETURN_INDEX'], '<a href="' . append_sid($this->phpbb_root_path . 'index.' . $this->phpEx) . '">', '</a>');
115      }
116   
117      /**
118      * Bind the values of the request to the form
119      *
120      * @param \phpbb\request\request_interface $request
121      * @return null
122      */
123      public function bind(\phpbb\request\request_interface $request)
124      {
125          $this->cc_sender = $request->is_set_post('cc_sender');
126          $this->body = $request->variable('message', '', true);
127      }
128   
129      /**
130      * Submit form, generate the email and send it
131      *
132      * @param \messenger $messenger
133      * @return null
134      */
135      public function submit(\messenger $messenger)
136      {
137          if (!check_form_key('memberlist_email'))
138          {
139              $this->errors[] = 'FORM_INVALID';
140          }
141   
142          if (!sizeof($this->errors))
143          {
144              $sql = 'UPDATE ' . USERS_TABLE . '
145                  SET user_emailtime = ' . time() . '
146                  WHERE user_id = ' . $this->user->data['user_id'];
147              $this->db->sql_query($sql);
148   
149              if ($this->cc_sender)
150              {
151                  $this->message->cc_sender();
152              }
153   
154              $this->message->send($messenger, phpbb_get_board_contact($this->config, $this->phpEx));
155   
156              meta_refresh(3, append_sid($this->phpbb_root_path . 'index.' . $this->phpEx));
157              trigger_error($this->user->lang['EMAIL_SENT'] . '<br /><br />' . $this->get_return_message());
158          }
159      }
160   
161      /**
162      * Render the template of the form
163      *
164      * @param \phpbb\template\template $template
165      * @return null
166      */
167      public function render(\phpbb\template\template $template)
168      {
169          add_form_key('memberlist_email');
170   
171          $template->assign_vars(array(
172              'ERROR_MESSAGE'        => (sizeof($this->errors)) ? implode('<br />', $this->errors) : '',
173          ));
174      }
175  }
176