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. |
|
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
remove_profilefield_aol.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 namespace phpbb\db\migration\data\v33x;
015
016 class remove_profilefield_aol extends \phpbb\db\migration\migration
017 {
018 public function effectively_installed()
019 {
020 return !$this->db_tools->sql_column_exists($this->table_prefix . 'profile_fields_data', 'pf_phpbb_aol');
021 }
022
023 static public function depends_on()
024 {
025 return [
026 '\phpbb\db\migration\data\v33x\v331',
027 ];
028 }
029
030 public function update_schema()
031 {
032 return [
033 'drop_columns' => [
034 $this->table_prefix . 'profile_fields_data' => [
035 'pf_phpbb_aol',
036 ],
037 ],
038 ];
039 }
040
041 public function revert_schema()
042 {
043 return [
044 'add_columns' => [
045 $this->table_prefix . 'profile_fields_data' => [
046 'pf_phpbb_aol' => ['VCHAR', ''],
047 ],
048 ],
049 ];
050 }
051
052 public function update_data()
053 {
054 return [
055 ['custom', [[$this, 'delete_custom_profile_field_data']]],
056 ];
057 }
058
059 public function revert_data()
060 {
061 return [
062 ['custom', [[$this, 'create_custom_field']]],
063 ];
064 }
065
066 public function delete_custom_profile_field_data()
067 {
068 $sql = 'SELECT field_id
069 FROM ' . PROFILE_FIELDS_TABLE . "
070 WHERE field_name = 'phpbb_aol'";
071 $result = $this->db->sql_query($sql);
072 $field_id = (int) $this->db->sql_fetchfield('field_id');
073 $this->db->sql_freeresult($result);
074
075 $sql = 'DELETE FROM ' . PROFILE_FIELDS_TABLE . '
076 WHERE field_id = ' . (int) $field_id;
077 $this->db->sql_query($sql);
078
079 $sql = 'DELETE FROM ' . PROFILE_LANG_TABLE . '
080 WHERE field_id = ' . (int) $field_id;
081 $this->db->sql_query($sql);
082
083 $sql = 'DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . '
084 WHERE field_id = ' . (int) $field_id;
085 $this->db->sql_query($sql);
086 }
087
088 public function create_custom_field()
089 {
090 $sql = 'SELECT MAX(field_order) as max_field_order
091 FROM ' . PROFILE_FIELDS_TABLE;
092 $result = $this->db->sql_query($sql);
093 $max_field_order = (int) $this->db->sql_fetchfield('max_field_order');
094 $this->db->sql_freeresult($result);
095
096 $sql_ary = [
097 'field_name' => 'phpbb_aol',
098 'field_type' => 'profilefields.type.string',
099 'field_ident' => 'phpbb_aol',
100 'field_length' => '40',
101 'field_minlen' => '5',
102 'field_maxlen' => '255',
103 'field_novalue' => '',
104 'field_default_value' => '',
105 'field_validation' => '.*',
106 'field_required' => 0,
107 'field_show_novalue' => 0,
108 'field_show_on_reg' => 0,
109 'field_show_on_pm' => 1,
110 'field_show_on_vt' => 1,
111 'field_show_on_ml' => 0,
112 'field_show_profile' => 1,
113 'field_hide' => 0,
114 'field_no_view' => 0,
115 'field_active' => 1,
116 'field_is_contact' => 1,
117 'field_contact_desc' => '',
118 'field_contact_url' => '',
119 'field_order' => $max_field_order + 1,
120 ];
121
122 $sql = 'INSERT INTO ' . PROFILE_FIELDS_TABLE . ' ' . $this->db->sql_build_array('INSERT', $sql_ary);
123 $this->db->sql_query($sql);
124 $field_id = (int) $this->db->sql_nextid();
125
126 $insert_buffer = new \phpbb\db\sql_insert_buffer($this->db, PROFILE_LANG_TABLE);
127
128 $sql = 'SELECT lang_id
129 FROM ' . LANG_TABLE;
130 $result = $this->db->sql_query($sql);
131 $lang_name = 'AOL';
132 while ($lang_id = (int) $this->db->sql_fetchfield('lang_id'))
133 {
134 $insert_buffer->insert([
135 'field_id' => (int) $field_id,
136 'lang_id' => (int) $lang_id,
137 'lang_name' => $lang_name,
138 'lang_explain' => '',
139 'lang_default_value' => '',
140 ]);
141 }
142 $this->db->sql_freeresult($result);
143
144 $insert_buffer->flush();
145 }
146 }
147