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. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
acp_words.php
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 * @todo [words] check regular expressions for special char replacements (stored specialchared in db)
024 */
025 class acp_words
026 {
027 var $u_action;
028
029 function main($id, $mode)
030 {
031 global $db, $user, $auth, $template, $cache;
032 global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
033
034 $user->add_lang('acp/posting');
035
036 // Set up general vars
037 $action = request_var('action', '');
038 $action = (isset($_POST['add'])) ? 'add' : ((isset($_POST['save'])) ? 'save' : $action);
039
040 $s_hidden_fields = '';
041 $word_info = array();
042
043 $this->tpl_name = 'acp_words';
044 $this->page_title = 'ACP_WORDS';
045
046 $form_name = 'acp_words';
047 add_form_key($form_name);
048
049 switch ($action)
050 {
051 case 'edit':
052
053 $word_id = request_var('id', 0);
054
055 if (!$word_id)
056 {
057 trigger_error($user->lang['NO_WORD'] . adm_back_link($this->u_action), E_USER_WARNING);
058 }
059
060 $sql = 'SELECT *
061 FROM ' . WORDS_TABLE . "
062 WHERE word_id = $word_id";
063 $result = $db->sql_query($sql);
064 $word_info = $db->sql_fetchrow($result);
065 $db->sql_freeresult($result);
066
067 $s_hidden_fields .= '<input type="hidden" name="id" value="' . $word_id . '" />';
068
069 case 'add':
070
071 $template->assign_vars(array(
072 'S_EDIT_WORD' => true,
073 'U_ACTION' => $this->u_action,
074 'U_BACK' => $this->u_action,
075 'WORD' => (isset($word_info['word'])) ? $word_info['word'] : '',
076 'REPLACEMENT' => (isset($word_info['replacement'])) ? $word_info['replacement'] : '',
077 'S_HIDDEN_FIELDS' => $s_hidden_fields)
078 );
079
080 return;
081
082 break;
083
084 case 'save':
085
086 if (!check_form_key($form_name))
087 {
088 trigger_error($user->lang['FORM_INVALID']. adm_back_link($this->u_action), E_USER_WARNING);
089 }
090
091 $word_id = request_var('id', 0);
092 $word = utf8_normalize_nfc(request_var('word', '', true));
093 $replacement = utf8_normalize_nfc(request_var('replacement', '', true));
094
095 if ($word === '' || $replacement === '')
096 {
097 trigger_error($user->lang['ENTER_WORD'] . adm_back_link($this->u_action), E_USER_WARNING);
098 }
099
100 // Replace multiple consecutive asterisks with single one as those are not needed
101 $word = preg_replace('#\*{2,}#', '*', $word);
102
103 $sql_ary = array(
104 'word' => $word,
105 'replacement' => $replacement
106 );
107
108 if ($word_id)
109 {
110 $db->sql_query('UPDATE ' . WORDS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE word_id = ' . $word_id);
111 }
112 else
113 {
114 $db->sql_query('INSERT INTO ' . WORDS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
115 }
116
117 $cache->destroy('_word_censors');
118
119 $log_action = ($word_id) ? 'LOG_WORD_EDIT' : 'LOG_WORD_ADD';
120 add_log('admin', $log_action, $word);
121
122 $message = ($word_id) ? $user->lang['WORD_UPDATED'] : $user->lang['WORD_ADDED'];
123 trigger_error($message . adm_back_link($this->u_action));
124
125 break;
126
127 case 'delete':
128
129 $word_id = request_var('id', 0);
130
131 if (!$word_id)
132 {
133 trigger_error($user->lang['NO_WORD'] . adm_back_link($this->u_action), E_USER_WARNING);
134 }
135
136 if (confirm_box(true))
137 {
138 $sql = 'SELECT word
139 FROM ' . WORDS_TABLE . "
140 WHERE word_id = $word_id";
141 $result = $db->sql_query($sql);
142 $deleted_word = $db->sql_fetchfield('word');
143 $db->sql_freeresult($result);
144
145 $sql = 'DELETE FROM ' . WORDS_TABLE . "
146 WHERE word_id = $word_id";
147 $db->sql_query($sql);
148
149 $cache->destroy('_word_censors');
150
151 add_log('admin', 'LOG_WORD_DELETE', $deleted_word);
152
153 trigger_error($user->lang['WORD_REMOVED'] . adm_back_link($this->u_action));
154 }
155 else
156 {
157 confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
158 'i' => $id,
159 'mode' => $mode,
160 'id' => $word_id,
161 'action' => 'delete',
162 )));
163 }
164
165 break;
166 }
167
168 $template->assign_vars(array(
169 'U_ACTION' => $this->u_action,
170 'S_HIDDEN_FIELDS' => $s_hidden_fields)
171 );
172
173 $sql = 'SELECT *
174 FROM ' . WORDS_TABLE . '
175 ORDER BY word';
176 $result = $db->sql_query($sql);
177
178 while ($row = $db->sql_fetchrow($result))
179 {
180 $template->assign_block_vars('words', array(
181 'WORD' => $row['word'],
182 'REPLACEMENT' => $row['replacement'],
183 'U_EDIT' => $this->u_action . '&action=edit&id=' . $row['word_id'],
184 'U_DELETE' => $this->u_action . '&action=delete&id=' . $row['word_id'])
185 );
186 }
187 $db->sql_freeresult($result);
188 }
189 }
190