[ Index ]

PHP Cross Reference of phpBB-3.3.11-deutsch

title

Body

[close]

/phpbb/message/ -> form.php (source)

   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\message;
  15  
  16  /**
  17  * Abstract class form
  18  */
  19  abstract class form
  20  {
  21      /** @var \phpbb\auth\auth */
  22      protected $auth;
  23      /** @var \phpbb\config\config */
  24      protected $config;
  25      /** @var \phpbb\db\driver\driver_interface */
  26      protected $db;
  27      /** @var \phpbb\message\message */
  28      protected $message;
  29      /** @var \phpbb\user */
  30      protected $user;
  31  
  32      /** @var string */
  33      protected $phpbb_root_path;
  34      /** @var string */
  35      protected $phpEx;
  36  
  37      /** @var array */
  38      protected $errors = array();
  39      /** @var bool */
  40      protected $cc_sender;
  41      /** @var string */
  42      protected $body;
  43  
  44      /**
  45      * Construct
  46      *
  47      * @param \phpbb\auth\auth $auth
  48      * @param \phpbb\config\config $config
  49      * @param \phpbb\db\driver\driver_interface $db
  50      * @param \phpbb\user $user
  51      * @param string $phpbb_root_path
  52      * @param string $phpEx
  53      */
  54  	public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $phpEx)
  55      {
  56          $this->phpbb_root_path = $phpbb_root_path;
  57          $this->phpEx = $phpEx;
  58          $this->user = $user;
  59          $this->auth = $auth;
  60          $this->config = $config;
  61          $this->db = $db;
  62  
  63          $this->message = new message($config['server_name']);
  64          $this->message->set_sender_from_user($this->user);
  65      }
  66  
  67      /**
  68      * Returns the title for the email form page
  69      *
  70      * @return string
  71      */
  72  	public function get_page_title()
  73      {
  74          return $this->user->lang['SEND_EMAIL'];
  75      }
  76  
  77      /**
  78      * Returns the file name of the form template
  79      *
  80      * @return string
  81      */
  82  	public function get_template_file()
  83      {
  84          return 'memberlist_email.html';
  85      }
  86  
  87      /**
  88      * Checks whether the user is allowed to use the form
  89      *
  90      * @return false|string    Error string if not allowed, false otherwise
  91      */
  92  	public function check_allow()
  93      {
  94          if (!$this->config['email_enable'])
  95          {
  96              return 'EMAIL_DISABLED';
  97          }
  98  
  99          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[] = $this->user->lang('FORM_INVALID');
 140          }
 141  
 142          if (!count($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 && $this->user->data['is_registered'])
 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'        => (count($this->errors)) ? implode('<br />', $this->errors) : '',
 173          ));
 174      }
 175  }


Generated: Sat Nov 4 14:26:03 2023 Cross-referenced by PHPXref 0.7.1