Verzeichnisstruktur phpBB-3.3.15


Veröffentlicht
28.08.2024

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

ucp_prefs.php

Zuletzt modifiziert: 02.04.2025, 15:02 - Dateigröße: 19.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  /**
015  * @ignore
016  */
017  if (!defined('IN_PHPBB'))
018  {
019      exit;
020  }
021   
022  /**
023  * ucp_prefs
024  * Changing user preferences
025  */
026  class ucp_prefs
027  {
028      var $u_action;
029   
030      function main($id, $mode)
031      {
032          global $config, $db, $user, $auth, $template, $phpbb_dispatcher, $request;
033   
034          $submit = (isset($_POST['submit'])) ? true : false;
035          $error = $data = array();
036          $s_hidden_fields = '';
037   
038          switch ($mode)
039          {
040              case 'personal':
041                  add_form_key('ucp_prefs_personal');
042                  $data = array(
043                      'notifymethod'    => $request->variable('notifymethod', $user->data['user_notify_type']),
044                      'dateformat'    => $request->variable('dateformat', $user->data['user_dateformat'], true),
045                      'lang'            => basename($request->variable('lang', $user->data['user_lang'])),
046                      'user_style'        => $request->variable('user_style', (int) $user->data['user_style']),
047                      'tz'            => $request->variable('tz', $user->data['user_timezone']),
048   
049                      'viewemail'        => $request->variable('viewemail', (bool) $user->data['user_allow_viewemail']),
050                      'massemail'        => $request->variable('massemail', (bool) $user->data['user_allow_massemail']),
051                      'hideonline'    => $request->variable('hideonline', (bool) !$user->data['user_allow_viewonline']),
052                      'allowpm'        => $request->variable('allowpm', (bool) $user->data['user_allow_pm']),
053                  );
054   
055                  if ($data['notifymethod'] == NOTIFY_IM && (!$config['jab_enable'] || !$user->data['user_jabber'] || !@extension_loaded('xml')))
056                  {
057                      // Jabber isnt enabled, or no jabber field filled in. Update the users table to be sure its correct.
058                      $data['notifymethod'] = NOTIFY_BOTH;
059                  }
060   
061                  /**
062                  * Add UCP edit global settings data before they are assigned to the template or submitted
063                  *
064                  * To assign data to the template, use $template->assign_vars()
065                  *
066                  * @event core.ucp_prefs_personal_data
067                  * @var    bool    submit        Do we display the form only
068                  *                            or did the user press submit
069                  * @var    array    data        Array with current ucp options data
070                  * @var    array    error        Array with list of errors
071                  * @since 3.1.0-a1
072                  * @changed 3.1.4-RC1 Added error variable to the event
073                  */
074                  $vars = array('submit', 'data', 'error');
075                  extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_personal_data', compact($vars)));
076   
077                  if ($submit)
078                  {
079                      if ($config['override_user_style'])
080                      {
081                          $data['user_style'] = (int) $config['default_style'];
082                      }
083                      else if (!phpbb_style_is_active($data['user_style']))
084                      {
085                          $data['user_style'] = (int) $user->data['user_style'];
086                      }
087   
088                      $error = array_merge(validate_data($data, array(
089                          'dateformat'    => array('string', false, 1, 64),
090                          'lang'            => array('language_iso_name'),
091                          'tz'            => array('timezone'),
092                      )), $error);
093   
094                      if (!check_form_key('ucp_prefs_personal'))
095                      {
096                          $error[] = 'FORM_INVALID';
097                      }
098   
099                      if (!count($error))
100                      {
101                          $sql_ary = array(
102                              'user_allow_pm'            => $data['allowpm'],
103                              'user_allow_viewemail'    => $data['viewemail'],
104                              'user_allow_massemail'    => $data['massemail'],
105                              'user_allow_viewonline'    => ($auth->acl_get('u_hideonline')) ? !$data['hideonline'] : $user->data['user_allow_viewonline'],
106                              'user_notify_type'        => $data['notifymethod'],
107                              'user_options'            => $user->data['user_options'],
108   
109                              'user_dateformat'        => $data['dateformat'],
110                              'user_lang'                => $data['lang'],
111                              'user_timezone'            => $data['tz'],
112                              'user_style'            => $data['user_style'],
113                          );
114   
115                          /**
116                          * Update UCP edit global settings data on form submit
117                          *
118                          * @event core.ucp_prefs_personal_update_data
119                          * @var    array    data        Submitted display options data
120                          * @var    array    sql_ary        Display options data we update
121                          * @since 3.1.0-a1
122                          */
123                          $vars = array('data', 'sql_ary');
124                          extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_personal_update_data', compact($vars)));
125   
126                          $sql = 'UPDATE ' . USERS_TABLE . '
127                              SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
128                              WHERE user_id = ' . $user->data['user_id'];
129                          $db->sql_query($sql);
130   
131                          meta_refresh(3, $this->u_action);
132                          $message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
133                          trigger_error($message);
134                      }
135   
136                      // Replace "error" strings with their real, localised form
137                      $error = array_map(array($user, 'lang'), $error);
138                  }
139   
140                  $dateformat_options = '';
141   
142                  foreach ($user->lang['dateformats'] as $format => $null)
143                  {
144                      $dateformat_options .= '<option value="' . $format . '"' . (($format == $data['dateformat']) ? ' selected="selected"' : '') . '>';
145                      $dateformat_options .= $user->format_date(time(), $format, false) . ((strpos($format, '|') !== false) ? $user->lang['VARIANT_DATE_SEPARATOR'] . $user->format_date(time(), $format, true) : '');
146                      $dateformat_options .= '</option>';
147                  }
148   
149                  $s_custom = false;
150   
151                  $dateformat_options .= '<option value="custom"';
152                  if (!isset($user->lang['dateformats'][$data['dateformat']]))
153                  {
154                      $dateformat_options .= ' selected="selected"';
155                      $s_custom = true;
156                  }
157                  $dateformat_options .= '>' . $user->lang['CUSTOM_DATEFORMAT'] . '</option>';
158   
159                  phpbb_timezone_select($template, $user, $data['tz'], true);
160   
161                  // check if there are any user-selectable languages
162                  $sql = 'SELECT lang_iso, lang_local_name
163                      FROM ' . LANG_TABLE . '
164                      ORDER BY lang_english_name';
165                  $result = $db->sql_query($sql);
166                  $lang_row = (array) $db->sql_fetchrowset($result);
167                  $db->sql_freeresult($result);
168                  $s_more_languages = count($lang_row) > 1;
169   
170                  // check if there are any user-selectable styles
171                  $sql = 'SELECT style_id, style_name
172                      FROM ' . STYLES_TABLE . '
173                      WHERE style_active = 1
174                      ORDER BY style_name';
175                  $result = $db->sql_query($sql);
176                  $styles_row = (array) $db->sql_fetchrowset($result);
177                  $db->sql_freeresult($result);
178                  $s_more_styles = count($styles_row) > 1;
179   
180                  $template->assign_vars(array(
181                      'ERROR'                => (count($error)) ? implode('<br />', $error) : '',
182   
183                      'S_NOTIFY_EMAIL'    => ($data['notifymethod'] == NOTIFY_EMAIL) ? true : false,
184                      'S_NOTIFY_IM'        => ($data['notifymethod'] == NOTIFY_IM) ? true : false,
185                      'S_NOTIFY_BOTH'        => ($data['notifymethod'] == NOTIFY_BOTH) ? true : false,
186                      'S_VIEW_EMAIL'        => $data['viewemail'],
187                      'S_MASS_EMAIL'        => $data['massemail'],
188                      'S_ALLOW_PM'        => $data['allowpm'],
189                      'S_HIDE_ONLINE'        => $data['hideonline'],
190   
191                      'DATE_FORMAT'            => $data['dateformat'],
192                      'A_DATE_FORMAT'            => addslashes($data['dateformat']),
193                      'S_DATEFORMAT_OPTIONS'    => $dateformat_options,
194                      'S_CUSTOM_DATEFORMAT'    => $s_custom,
195                      'DEFAULT_DATEFORMAT'    => $config['default_dateformat'],
196                      'A_DEFAULT_DATEFORMAT'    => addslashes($config['default_dateformat']),
197   
198                      'S_MORE_LANGUAGES'        => $s_more_languages,
199                      'S_MORE_STYLES'            => $s_more_styles,
200   
201                      'S_LANG_OPTIONS'        => language_select($data['lang'], $lang_row),
202                      'S_STYLE_OPTIONS'        => ($config['override_user_style']) ? '' : style_select($data['user_style'], false, $styles_row),
203                      'S_CAN_HIDE_ONLINE'        => ($auth->acl_get('u_hideonline')) ? true : false,
204                      'S_SELECT_NOTIFY'        => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false)
205                  );
206   
207              break;
208   
209              case 'view':
210   
211                  add_form_key('ucp_prefs_view');
212   
213                  $data = array(
214                      'topic_sk'        => $request->variable('topic_sk', (!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't'),
215                      'topic_sd'        => $request->variable('topic_sd', (!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd'),
216                      'topic_st'        => $request->variable('topic_st', (!empty($user->data['user_topic_show_days'])) ? (int) $user->data['user_topic_show_days'] : 0),
217   
218                      'post_sk'        => $request->variable('post_sk', (!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't'),
219                      'post_sd'        => $request->variable('post_sd', (!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a'),
220                      'post_st'        => $request->variable('post_st', (!empty($user->data['user_post_show_days'])) ? (int) $user->data['user_post_show_days'] : 0),
221   
222                      'images'        => $request->variable('images', (bool) $user->optionget('viewimg')),
223                      'flash'            => $request->variable('flash', (bool) $user->optionget('viewflash')),
224                      'smilies'        => $request->variable('smilies', (bool) $user->optionget('viewsmilies')),
225                      'sigs'            => $request->variable('sigs', (bool) $user->optionget('viewsigs')),
226                      'avatars'        => $request->variable('avatars', (bool) $user->optionget('viewavatars')),
227                      'wordcensor'    => $request->variable('wordcensor', (bool) $user->optionget('viewcensors')),
228                  );
229   
230                  /**
231                  * Add UCP edit display options data before they are assigned to the template or submitted
232                  *
233                  * To assign data to the template, use $template->assign_vars()
234                  *
235                  * @event core.ucp_prefs_view_data
236                  * @var    bool    submit        Do we display the form only
237                  *                            or did the user press submit
238                  * @var    array    data        Array with current ucp options data
239                  * @since 3.1.0-a1
240                  */
241                  $vars = array('submit', 'data');
242                  extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_view_data', compact($vars)));
243   
244                  if ($submit)
245                  {
246                      $error = validate_data($data, array(
247                          'topic_sk'    => array(
248                              array('string', false, 1, 1),
249                              array('match', false, '#(a|r|s|t|v)#'),
250                          ),
251                          'topic_sd'    => array(
252                              array('string', false, 1, 1),
253                              array('match', false, '#(a|d)#'),
254                          ),
255                          'post_sk'    => array(
256                              array('string', false, 1, 1),
257                              array('match', false, '#(a|s|t)#'),
258                          ),
259                          'post_sd'    => array(
260                              array('string', false, 1, 1),
261                              array('match', false, '#(a|d)#'),
262                          ),
263                      ));
264   
265                      if (!check_form_key('ucp_prefs_view'))
266                      {
267                          $error[] = 'FORM_INVALID';
268                      }
269   
270                      if (!count($error))
271                      {
272                          $user->optionset('viewimg', $data['images']);
273                          $user->optionset('viewflash', $data['flash']);
274                          $user->optionset('viewsmilies', $data['smilies']);
275                          $user->optionset('viewsigs', $data['sigs']);
276                          $user->optionset('viewavatars', $data['avatars']);
277   
278                          if ($auth->acl_get('u_chgcensors'))
279                          {
280                              $user->optionset('viewcensors', $data['wordcensor']);
281                          }
282   
283                          $sql_ary = array(
284                              'user_options'                => $user->data['user_options'],
285                              'user_topic_sortby_type'    => $data['topic_sk'],
286                              'user_post_sortby_type'        => $data['post_sk'],
287                              'user_topic_sortby_dir'        => $data['topic_sd'],
288                              'user_post_sortby_dir'        => $data['post_sd'],
289   
290                              'user_topic_show_days'    => $data['topic_st'],
291                              'user_post_show_days'    => $data['post_st'],
292                          );
293   
294                          /**
295                          * Update UCP edit display options data on form submit
296                          *
297                          * @event core.ucp_prefs_view_update_data
298                          * @var    array    data        Submitted display options data
299                          * @var    array    sql_ary        Display options data we update
300                          * @since 3.1.0-a1
301                          */
302                          $vars = array('data', 'sql_ary');
303                          extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_view_update_data', compact($vars)));
304   
305                          $sql = 'UPDATE ' . USERS_TABLE . '
306                              SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
307                              WHERE user_id = ' . $user->data['user_id'];
308                          $db->sql_query($sql);
309   
310                          meta_refresh(3, $this->u_action);
311                          $message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
312                          trigger_error($message);
313                      }
314   
315                      // Replace "error" strings with their real, localised form
316                      $error = array_map(array($user, 'lang'), $error);
317                  }
318   
319                  $sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
320   
321                  // Topic ordering options
322                  $limit_topic_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);
323   
324                  $sort_by_topic_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']);
325                  $sort_by_topic_sql = array('a' => 't.topic_first_poster_name', 't' => array('t.topic_last_post_time', 't.topic_last_post_id'), 'r' => 't.topic_posts_approved', 's' => 't.topic_title', 'v' => 't.topic_views');
326   
327                  // Post ordering options
328                  $limit_post_days = array(0 => $user->lang['ALL_POSTS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);
329   
330                  $sort_by_post_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 's' => $user->lang['SUBJECT']);
331                  $sort_by_post_sql = array('a' => 'u.username_clean', 't' => 'p.post_id', 's' => 'p.post_subject');
332   
333                  $_options = array('topic', 'post');
334                  foreach ($_options as $sort_option)
335                  {
336                      ${'s_limit_' . $sort_option . '_days'} = '<select name="' . $sort_option . '_st">';
337                      foreach (${'limit_' . $sort_option . '_days'} as $day => $text)
338                      {
339                          $selected = ($data[$sort_option . '_st'] == $day) ? ' selected="selected"' : '';
340                          ${'s_limit_' . $sort_option . '_days'} .= '<option value="' . $day . '"' . $selected . '>' . $text . '</option>';
341                      }
342                      ${'s_limit_' . $sort_option . '_days'} .= '</select>';
343   
344                      ${'s_sort_' . $sort_option . '_key'} = '<select name="' . $sort_option . '_sk">';
345                      foreach (${'sort_by_' . $sort_option . '_text'} as $key => $text)
346                      {
347                          $selected = ($data[$sort_option . '_sk'] == $key) ? ' selected="selected"' : '';
348                          ${'s_sort_' . $sort_option . '_key'} .= '<option value="' . $key . '"' . $selected . '>' . $text . '</option>';
349                      }
350                      ${'s_sort_' . $sort_option . '_key'} .= '</select>';
351   
352                      ${'s_sort_' . $sort_option . '_dir'} = '<select name="' . $sort_option . '_sd">';
353                      foreach ($sort_dir_text as $key => $value)
354                      {
355                          $selected = ($data[$sort_option . '_sd'] == $key) ? ' selected="selected"' : '';
356                          ${'s_sort_' . $sort_option . '_dir'} .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
357                      }
358                      ${'s_sort_' . $sort_option . '_dir'} .= '</select>';
359                  }
360   
361                  /**
362                  * Run code before view form is displayed
363                  *
364                  * @event core.ucp_prefs_view_after
365                  * @var    bool    submit                Do we display the form only
366                  *                                    or did the user press submit
367                  * @var    array    data                Array with current ucp options data
368                  * @var    array    sort_dir_text        Array with sort dir language strings
369                  * @var    array    limit_topic_days    Topic ordering options
370                  * @var    array    sort_by_topic_text    Topic ordering language strings
371                  * @var    array    sort_by_topic_sql    Topic ordering sql
372                  * @var    array    limit_post_days        Post ordering options
373                  * @var    array    sort_by_post_text    Post ordering language strings
374                  * @var    array    sort_by_post_sql    Post ordering sql
375                  * @var    array    _options            Sort options
376                  * @var    string    s_limit_topic_days    Sort limit topic by days select box
377                  * @var    string    s_sort_topic_key    Sort topic key select box
378                  * @var    string    s_sort_topic_dir    Sort topic dir select box
379                  * @var    string    s_limit_post_days    Sort limit post by days select box
380                  * @var    string    s_sort_post_key        Sort post key select box
381                  * @var    string    s_sort_post_dir        Sort post dir select box
382                  * @since 3.1.8-RC1
383                  */
384                  $vars = array(
385                      'submit',
386                      'data',
387                      'sort_dir_text',
388                      'limit_topic_days',
389                      'sort_by_topic_text',
390                      'sort_by_topic_sql',
391                      'limit_post_days',
392                      'sort_by_post_text',
393                      'sort_by_post_sql',
394                      '_options',
395                      's_limit_topic_days',
396                      's_sort_topic_key',
397                      's_sort_topic_dir',
398                      's_limit_post_days',
399                      's_sort_post_key',
400                      's_sort_post_dir',
401                  );
402                  extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_view_after', compact($vars)));
403   
404                  $template->assign_vars(array(
405                      'ERROR'                => (count($error)) ? implode('<br />', $error) : '',
406   
407                      'S_IMAGES'            => $data['images'],
408                      'S_FLASH'            => $data['flash'],
409                      'S_SMILIES'            => $data['smilies'],
410                      'S_SIGS'            => $data['sigs'],
411                      'S_AVATARS'            => $data['avatars'],
412                      'S_DISABLE_CENSORS'    => $data['wordcensor'],
413   
414                      'S_CHANGE_CENSORS'        => ($auth->acl_get('u_chgcensors') && $config['allow_nocensors']) ? true : false,
415   
416                      'S_TOPIC_SORT_DAYS'        => $s_limit_topic_days,
417                      'S_TOPIC_SORT_KEY'        => $s_sort_topic_key,
418                      'S_TOPIC_SORT_DIR'        => $s_sort_topic_dir,
419                      'S_POST_SORT_DAYS'        => $s_limit_post_days,
420                      'S_POST_SORT_KEY'        => $s_sort_post_key,
421                      'S_POST_SORT_DIR'        => $s_sort_post_dir)
422                  );
423   
424              break;
425   
426              case 'post':
427   
428                  $data = array(
429                      'bbcode'    => $request->variable('bbcode', $user->optionget('bbcode')),
430                      'smilies'    => $request->variable('smilies', $user->optionget('smilies')),
431                      'sig'        => $request->variable('sig', $user->optionget('attachsig')),
432                      'notify'    => $request->variable('notify', (bool) $user->data['user_notify']),
433                  );
434                  add_form_key('ucp_prefs_post');
435   
436                  /**
437                  * Add UCP edit posting defaults data before they are assigned to the template or submitted
438                  *
439                  * To assign data to the template, use $template->assign_vars()
440                  *
441                  * @event core.ucp_prefs_post_data
442                  * @var    bool    submit        Do we display the form only
443                  *                            or did the user press submit
444                  * @var    array    data        Array with current ucp options data
445                  * @since 3.1.0-a1
446                  */
447                  $vars = array('submit', 'data');
448                  extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_post_data', compact($vars)));
449   
450                  if ($submit)
451                  {
452                      if (check_form_key('ucp_prefs_post'))
453                      {
454                          $user->optionset('bbcode', $data['bbcode']);
455                          $user->optionset('smilies', $data['smilies']);
456                          $user->optionset('attachsig', $data['sig']);
457   
458                          $sql_ary = array(
459                              'user_options'    => $user->data['user_options'],
460                              'user_notify'    => $data['notify'],
461                          );
462   
463                          /**
464                          * Update UCP edit posting defaults data on form submit
465                          *
466                          * @event core.ucp_prefs_post_update_data
467                          * @var    array    data        Submitted display options data
468                          * @var    array    sql_ary        Display options data we update
469                          * @since 3.1.0-a1
470                          */
471                          $vars = array('data', 'sql_ary');
472                          extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_post_update_data', compact($vars)));
473   
474                          $sql = 'UPDATE ' . USERS_TABLE . '
475                              SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
476                              WHERE user_id = ' . $user->data['user_id'];
477                          $db->sql_query($sql);
478   
479                          $msg = $user->lang['PREFERENCES_UPDATED'];
480                      }
481                      else
482                      {
483                          $msg = $user->lang['FORM_INVALID'];
484                      }
485                      meta_refresh(3, $this->u_action);
486                      $message = $msg . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
487                      trigger_error($message);
488                  }
489   
490                  $template->assign_vars(array(
491                      'S_SIG_ALLOWED'    => $config['allow_sig'] && $auth->acl_get('u_sig'),
492   
493                      'S_BBCODE'    => $data['bbcode'],
494                      'S_SMILIES'    => $data['smilies'],
495                      'S_SIG'        => $data['sig'],
496                      'S_NOTIFY'    => $data['notify'])
497                  );
498              break;
499          }
500   
501          /**
502          * Modify UCP preferences data before the page load
503          *
504          * @event core.ucp_prefs_modify_common
505          * @var    array    data        Array with current/submitted UCP options data
506          * @var    array    error        Errors data
507          * @var    string    mode        UCP prefs operation mode
508          * @var    string    s_hidden_fields        Hidden fields data
509          * @since 3.1.0-RC3
510          */
511          $vars = array(
512              'data',
513              'error',
514              'mode',
515              's_hidden_fields',
516          );
517          extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_modify_common', compact($vars)));
518   
519          $template->assign_vars(array(
520              'L_TITLE'            => $user->lang['UCP_PREFS_' . strtoupper($mode)],
521   
522              'S_HIDDEN_FIELDS'    => $s_hidden_fields,
523              'S_UCP_ACTION'        => $this->u_action)
524          );
525   
526          $this->tpl_name = 'ucp_prefs_' . $mode;
527          $this->page_title = 'UCP_PREFS_' . strtoupper($mode);
528      }
529  }
530