* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\message;
/**
* Abstract class form
*/
abstract class form
{
/** @var \phpbb\auth\auth */
protected $auth;
/** @var \phpbb\config\config */
protected $config;
/** @var \phpbb\db\driver\driver_interface */
protected $db;
/** @var \phpbb\message\message */
protected $message;
/** @var \phpbb\user */
protected $user;
/** @var string */
protected $phpbb_root_path;
/** @var string */
protected $phpEx;
/** @var array */
protected $errors = array();
/** @var bool */
protected $cc_sender;
/** @var string */
protected $body;
/**
* Construct
*
* @param \phpbb\auth\auth $auth
* @param \phpbb\config\config $config
* @param \phpbb\db\driver\driver_interface $db
* @param \phpbb\user $user
* @param string $phpbb_root_path
* @param string $phpEx
*/
public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $phpEx)
{
$this->phpbb_root_path = $phpbb_root_path;
$this->phpEx = $phpEx;
$this->user = $user;
$this->auth = $auth;
$this->config = $config;
$this->db = $db;
$this->message = new message($config['server_name']);
$this->message->set_sender_from_user($this->user);
}
/**
* Returns the title for the email form page
*
* @return string
*/
public function get_page_title()
{
return $this->user->lang['SEND_EMAIL'];
}
/**
* Returns the file name of the form template
*
* @return string
*/
public function get_template_file()
{
return 'memberlist_email.html';
}
/**
* Checks whether the user is allowed to use the form
*
* @return false|string Error string if not allowed, false otherwise
*/
public function check_allow()
{
if (!$this->config['email_enable'])
{
return 'EMAIL_DISABLED';
}
if (time() - $this->user->data['user_emailtime'] < $this->config['flood_interval'])
{
return 'FLOOD_EMAIL_LIMIT';
}
return false;
}
/**
* Get the return link after the message has been sent
*
* @return string
*/
public function get_return_message()
{
return sprintf($this->user->lang['RETURN_INDEX'], '', '');
}
/**
* Bind the values of the request to the form
*
* @param \phpbb\request\request_interface $request
* @return null
*/
public function bind(\phpbb\request\request_interface $request)
{
$this->cc_sender = $request->is_set_post('cc_sender');
$this->body = $request->variable('message', '', true);
}
/**
* Submit form, generate the email and send it
*
* @param \messenger $messenger
* @return null
*/
public function submit(\messenger $messenger)
{
if (!check_form_key('memberlist_email'))
{
$this->errors[] = 'FORM_INVALID';
}
if (!sizeof($this->errors))
{
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_emailtime = ' . time() . '
WHERE user_id = ' . $this->user->data['user_id'];
$this->db->sql_query($sql);
if ($this->cc_sender && $this->user->data['is_registered'])
{
$this->message->cc_sender();
}
$this->message->send($messenger, phpbb_get_board_contact($this->config, $this->phpEx));
meta_refresh(3, append_sid($this->phpbb_root_path . 'index.' . $this->phpEx));
trigger_error($this->user->lang['EMAIL_SENT'] . '
' . $this->get_return_message());
}
}
/**
* Render the template of the form
*
* @param \phpbb\template\template $template
* @return null
*/
public function render(\phpbb\template\template $template)
{
add_form_key('memberlist_email');
$template->assign_vars(array(
'ERROR_MESSAGE' => (sizeof($this->errors)) ? implode('
', $this->errors) : '',
));
}
}
eY,FUYS%dɄ2J֕kR6Ԛ$ l<Oʼ7_{|!sj!(1>ߛ&fo^q R~:[L7f#Fk
&zvzG*k-5MeYL&K%bdMeYiZe$7,,LS%Qږ%K,K
>HC[KcLD¿&2YS*0,-e+W6dEYV1dM`YdDU9ʆOV4f7-K*%g5kg$q3jVX4 1E>{m6k.8\ Ys:f\2"Wu(D^9 c|SCGh=ΜytYFkrPqqontsNgeэU$>;sĻd5Smgbg|ujpZiWO龧i?#>hx
>İe4yL4u萶c&?D1x4"@2fEBw.Rgp%i2K"1/Z!HCߢòf JǙdK)!y ?T?32Ov5IJ%bܾy:/B@Uz*ZBNEca7=L>;@A
Z7rϱ+}T1^Y~#gܟ3!2F)&ķleVfqݖ9ݱi`inIE-E$Eyt[e[+Kd=n{YrW̒f`ٛd<[ʘ jG!Nb^'5Y$ ^^zbAg 2`07a`ZdSz${̙l;;iaV%&7M{;o#oqPEB-ChBcf]8,Kw$I%88 B `bd|S${_K6qrU=!o9f$D0&B63S!,_ID\gjR^X+eF~9̛#|?GDb?m2)!G(EU[?o&s6~a)=ݖ؋!4s#O
A&1A0s$u{"Y&e! 2H6bTb E8Pфү>nK@6ZЈA'xI҈-x3x)3MTIykv0^11U+<.?][Q!e6 _k@]LICUP;@VZX5jX ^,LCO!RSA7)xB!e&v{?|ί7n#'i~2yx@P11#k#p#5EB3H,lm/?t<~q
2Omو);y9x01bx
ӻA3ADAB]NU!}R11o'N;[!%$U&8->x.դFQ%3
RR!6 fHٓ3FfeLʫi
JO"KǸE6$$}H^R2kGs2.hP~V4y$ZP9Qɋ)xFLͺ(>]e_OPeB,48#[Ck7ƍ,B6{Ŧ+CCiЎȕ7ćgvzۇWw;4:cWluF1v튍nP364x5!)!QH|z!{~'V>gvlJa>*M,'JICeJx0p64X7V罂b:pt8pӆ9as
@%CRNB٤)ÏzI4Bc]3S$ꩥ;=2#Fxbi&vQGqzji&<:1IjN~<>]0
5Ϫ%fG0Bz+bX ȒzbZCJ
ۻ[ѣ`@σvb .t([Kc:=RdѺ>jIĞ(:qWWw&2_'<0ujִy(y?'NCO=}^;d/!9$Qj!mâ zޅ|1J̓(b\(kji-[qd
!" B$k;Hf* +LMyi"%d`K$MD1iiV]M.
D"^;W{w{jɹtvYW,'J1l<'!YeD\^!օ9O؋Œ蓇s7kdq&x˜[чK/.-BᅠpFD,O Fi?pU\Rw^M7SOÓ݄a>zܚ|m);JHkͺ1Ww
.{q${eNOڎI!(0Y8(X9C7Ƴ ,fh0DF1`=SSц0Xs3`l=U1oI2ř!f.C!^Dê~ibŔF+tkL=zys&1pܜ ^xxv<&H{]u#f >aAf@5 PD47JH_d]8l= i,d"oa@D%+'Ej]xti_lwCcG1n*;>s64OjMcKݟ' Ǹ$&7/I"^ܣq.Zp8[8}$:_&''ɥ4(=t'ul+xExrבǞB|vb`n˘15c ;2%.rEVhu&T9gTr LE!b`2"GttrTY