Verzeichnisstruktur phpBB-3.0.0
- Veröffentlicht
- 12.12.2007
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 |
adjust_avatars.php
001 <?php
002 /**
003 * Corrects avatar filenames to match the new avatar delivery method.
004 *
005 * You should make a backup from your users table and the avatar directory in case something goes wrong
006 */
007 die("Please read the first lines of this script for instructions on how to enable it");
008
009 set_time_limit(0);
010
011 define('IN_PHPBB', true);
012 $phpbb_root_path = './../';
013 $phpEx = substr(strrchr(__FILE__, '.'), 1);
014 include($phpbb_root_path . 'common.'.$phpEx);
015
016 // Start session management
017 $user->session_begin();
018 $auth->acl($user->data);
019 $user->setup();
020
021 $echos = 0;
022
023 if (!isset($config['avatar_salt']))
024 {
025 $cache->purge();
026 if (!isset($config['avatar_salt']))
027 {
028 die('database not up to date');
029 }
030 die('database not up to date');
031 }
032
033 // let's start with the users using a group_avatar.
034 $sql = 'SELECT group_id, group_avatar
035 FROM ' . GROUPS_TABLE . '
036 WHERE group_avatar_type = ' . AVATAR_UPLOAD;
037
038 // We'll skip these, so remember them
039 $group_avatars = array();
040
041 echo '<br /> Updating groups' . "\n";
042
043 $result = $db->sql_query($sql);
044
045 while ($row = $db->sql_fetchrow($result))
046 {
047 $new_avatar_name = adjust_avatar($row['group_avatar'], 'g' . $row['group_id']);
048 $group_avatars[] = $new_avatar_name;
049
050 // failure is probably due to the avatar name already being adjusted
051 if ($new_avatar_name !== false)
052 {
053 $sql = 'UPDATE ' . USERS_TABLE . "
054 SET user_avatar = '" . $db->sql_escape($new_avatar_name) . "'
055 WHERE user_avatar = '" . $db->sql_escape($row['group_avatar']) . "'
056 AND user_avatar_type = " . AVATAR_UPLOAD;
057 $db->sql_query($sql);
058
059 $sql = 'UPDATE ' . GROUPS_TABLE . "
060 SET group_avatar = '" . $db->sql_escape($new_avatar_name) . "'
061 WHERE group_id = {$row['group_id']}";
062 $db->sql_query($sql);
063 }
064 else
065 {
066 echo '<br /> Failed updating group ' . $row['group_id'] . "\n";
067 }
068
069 if ($echos > 200)
070 {
071 echo '<br />' . "\n";
072 $echos = 0;
073 }
074
075 echo '.';
076 $echos++;
077
078 flush();
079 }
080 $db->sql_freeresult($result);
081
082 $sql = 'SELECT user_id, username, user_avatar, user_avatar_type
083 FROM ' . USERS_TABLE . '
084 WHERE user_avatar_type = ' . AVATAR_UPLOAD . '
085 AND ' . $db->sql_in_set('user_avatar', $group_avatars, true, true);
086 $result = $db->sql_query($sql);
087
088 echo '<br /> Updating users' . "\n";
089
090 while ($row = $db->sql_fetchrow($result))
091 {
092 $new_avatar_name = adjust_avatar($row['user_avatar'], $row['user_id']);
093
094 // failure is probably due to the avatar name already being adjusted
095 if ($new_avatar_name !== false)
096 {
097 $sql = 'UPDATE ' . USERS_TABLE . "
098 SET user_avatar = '" . $db->sql_escape($new_avatar_name) . "'
099 WHERE user_id = {$row['user_id']}";
100 $db->sql_query($sql);
101 }
102 else
103 {
104 // nuke this avatar
105 $sql = 'UPDATE ' . USERS_TABLE . "
106 SET user_avatar = '', user_avatar_type = 0
107 WHERE user_id = {$row['user_id']}";
108 $db->sql_query($sql);
109 echo '<br /> Failed updating user ' . $row['user_id'] . "\n";
110 }
111
112 if ($echos > 200)
113 {
114 echo '<br />' . "\n";
115 $echos = 0;
116 }
117
118 echo '.';
119 $echos++;
120
121 flush();
122 }
123
124 $db->sql_freeresult($result);
125
126 echo 'FINISHED';
127
128 // Done
129 $db->sql_close();
130
131 function adjust_avatar($old_name, $midfix)
132 {
133 global $config, $phpbb_root_path;
134
135 $avatar_path = $phpbb_root_path . $config['avatar_path'];
136 $extension = strtolower(substr(strrchr($old_name, '.'), 1));
137 $new_name = $config['avatar_salt'] . '_' . $midfix . '.' . $extension;
138
139 if (@file_exists($avatar_path . '/' . $old_name) && @is_writable($avatar_path . '/' . $old_name) && @is_writable($avatar_path . '/' . $new_name))
140 {
141 @rename($avatar_path . '/' . $old_name, $avatar_path . '/' . $new_name);
142 return $midfix . '.' . $extension;
143 }
144 return false;
145 }
146
147 ?>