user = $user; $this->config = $config; $this->auth = $auth; $this->global = $global; $this->ucp = $ucp; $this->is_phpbb31 = phpbb_version_compare($config['version'], '3.1.0@dev', '>=') && phpbb_version_compare($config['version'], '3.2.0@dev', '<'); $this->is_phpbb32 = phpbb_version_compare($config['version'], '3.2.0@dev', '>=') && phpbb_version_compare($config['version'], '3.3.0@dev', '<'); $this->inject_core_config_values(); } /** * Writes phpBB config values into the mChat config for validating input data */ protected function inject_core_config_values() { // Limit mChat session timeout to phpBB session length $this->global['mchat_timeout']['validation'][self::VALIDATE_MAX_VALUE] = (int) $this->cfg('session_length'); } /** * @param string $config * @param bool $force_global * @return string */ public function cfg($config, $force_global = false) { return $this->cfg_user($config, $this->user->data, $this->auth, $force_global); } /** * @param string $config * @param array $user_data * @param \phpbb\auth\auth $auth * @param bool $force_global * @return string */ public function cfg_user($config, $user_data, $auth, $force_global = false) { if (!$force_global && isset($this->ucp[$config]) && $auth->acl_get('u_' . $config)) { return $user_data['user_' . $config]; } return $this->config[$config]; } /** * @param $config * @param $value */ public function set_cfg($config, $value) { $this->config->set($config, $value); } /** * @param string $selected * @return array */ public function get_date_template_data($selected) { $dateformat_options = ''; foreach ($this->user->lang['dateformats'] as $format => $null) { $dateformat_options .= ''; } $s_custom = false; $dateformat_options .= ''; return array( 'S_MCHAT_DATEFORMAT_OPTIONS' => $dateformat_options, 'A_MCHAT_DEFAULT_DATEFORMAT' => addslashes($this->ucp['mchat_date']['default']), 'S_MCHAT_CUSTOM_DATEFORMAT' => $s_custom, ); } /** * @return string */ public function get_enabled_post_notifications_lang() { $enabled_notifications_lang = array(); foreach (array('topic', 'reply', 'quote', 'edit') as $notification) { if ($this->cfg('mchat_posts_' . $notification)) { $enabled_notifications_lang[] = $this->user->lang('MCHAT_POSTS_' . strtoupper($notification)); } } return implode($this->user->lang('COMMA_SEPARATOR'), $enabled_notifications_lang); } }