voici la mise à jour de phpBB 2.0.16 à phpBB 2.0.17
[Ce message est une simple traduction des informations contenues dans ce message de phpBB.com]
Vous trouverez ci-dessous les changements à effectuer pour passer de phpBB 2.0.16 à phpBB 2.0.17, le tout résumé sous la forme d'un MOD. Cela peut vous être utile si vous voulez mettre à jour un forum où des MODs ont été installés. En effet, il est généralement plus simple d'appliquer des modifications directement sur le code source de phpBB que de réinstaller les MODs.
Si vous ne savez pas comment installer un MOD, une aide est disponible ici :http://forums.phpbb-fr.com/viewtopic_59762.html
Lorsque vous tombez sur la déclaration 'AJOUTER APRES', le code doit être ajouté après la dernière ligne citée dans la déclaration 'TROUVER'.
Lorsque vous tombez sur la déclaration 'REMPLACER PAR', le code cité dans la déclaration 'TROUVER' doit complètement être remplacé par le code cité dans la déclaration 'REMPLACER PAR'.
Après avoir effectué les modifications, vous devez envoyer le fichier update_to_latest.php sur votre serveur et l'éxécuter, puis enfin le supprimer.
Instructions pas à pas:
- Créer un répertoire nommé install à la racine de votre installation de phpBB, ex: http://www.votresite.com/phpbb/install/
Attention, la création du répertoire install bloquera temporairement l'accès à votre forum, ne vous affolez pas, il vous suffira de le supprimer pour que tout revienne à la normale- Envoyer update_to_latest.php dans le répertoire install
- Exécuter update_to_latest.php depuis votre navigateur internet en vous rendant simplement à l'url suivante :
http://www.votresite.com/phpbb/install/ ... latest.php- Supprimer le répertoire install et tout ce qu'il contient
Télécharger les fichiers nécessaire à la mise à jour (seul update_to_latest.php devrait vous intéresser).
Instructions pour mise à jour du code :
- admin/admin_ug_auth.php
- TROUVER - Ligne 417
- Code: Tout sélectionner
FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
WHERE ug.group_id = aa.group_id
AND u.user_id = ug.user_id
AJOUTER APRES
- Code: Tout sélectionner
AND ug.user_pending = 0- TROUVER - Ligne 572
- Code: Tout sélectionner
$sql = "SELECT *
FROM " . FORUMS_TABLE . " f
ORDER BY forum_order";
REMPLACER PAR
- Code: Tout sélectionner
$sql = "SELECT f.*
FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
WHERE f.cat_id = c.cat_id
ORDER BY c.cat_order, f.forum_order ASC";- TROUVER - Ligne 608
- Code: Tout sélectionner
$sql = "SELECT u.user_id, u.username, u.user_level, g.group_id, g.group_name, g.group_single_user FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE ";
REMPLACER PAR
- Code: Tout sélectionner
$sql = "SELECT u.user_id, u.username, u.user_level, g.group_id, g.group_name, g.group_single_user, ug.user_pending FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE ";- TROUVER - Ligne 836
- Code: Tout sélectionner
$t_usergroup_list = '';
for($i = 0; $i < count($ug_info); $i++)
{
$ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL;
$t_usergroup_list .= ( ( $t_usergroup_list != '' ) ? ', ' : '' ) . '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$ug=" . $id[$i]) . '">' . $name[$i] . '</a>';
REMPLACER PAR
- Code: Tout sélectionner
$t_usergroup_list = $t_pending_list = '';
for($i = 0; $i < count($ug_info); $i++)
{
$ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL;
if (!$ug_info[$i]['user_pending'])
{
$t_usergroup_list .= ( ( $t_usergroup_list != '' ) ? ', ' : '' ) . '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$ug=" . $id[$i]) . '">' . $name[$i] . '</a>';
}
else
{
$t_pending_list .= ( ( $t_pending_list != '' ) ? ', ' : '' ) . '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$ug=" . $id[$i]) . '">' . $name[$i] . '</a>';
}- TROUVER - Ligne 911
- Code: Tout sélectionner
'GROUP_MEMBERSHIP' => $lang['Usergroup_members'] . ' : ' . $t_usergroup_list)
REMPLACER PAR
- Code: Tout sélectionner
'GROUP_MEMBERSHIP' => $lang['Usergroup_members'] . ' : ' . $t_usergroup_list . '<br />' . $lang['Pending_members'] . ' : ' . $t_pending_list)
- admin/admin_users.php
- TROUVER - Ligne 89
- Code: Tout sélectionner
SET poster_id = " . DELETED . ", post_username = '$username'
REMPLACER PAR
- Code: Tout sélectionner
SET poster_id = " . DELETED . ", post_username = '" . str_replace("\\'", "''", addslashes($this_userdata['username'])) . "'
- includes/bbcode.php
- TROUVER - Ligne 203
- Code: Tout sélectionner
$patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is";
REMPLACER PAR
- Code: Tout sélectionner
$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";- TROUVER - Ligne 627
- Code: Tout sélectionner
$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
REMPLACER PAR
- Code: Tout sélectionner
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
- includes/functions.php
- TROUVER - Ligne 120
- Code: Tout sélectionner
if (intval($user) == 0 || $force_str)
REMPLACER PAR
- Code: Tout sélectionner
if (!is_numeric($user) || $force_str)- TROUVER - Ligne 581
- Code: Tout sélectionner
define(HAS_DIED, 1);
REMPLACER PAR
- Code: Tout sélectionner
define('HAS_DIED', 1);
- includes/functions_validate.php
- TROUVER - Ligne 33
- Code: Tout sélectionner
$username = preg_replace('#\s+#', ' ', $username);
// Limit username length
$username = substr(str_replace("\'", "'", $username), 0, 25);
$username = str_replace("'", "''", $username);
REMPLACER PAR
- Code: Tout sélectionner
$username = preg_replace('#\s+#', ' ', trim($username));
$username = phpbb_clean_username($username);
- includes/usercp_activate.php
- TROUVER - Ligne 50
- Code: Tout sélectionner
}
else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
{
AJOUTER APRES
- Code: Tout sélectionner
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
}
- includes/usercp_avatar.php
- TROUVER - Ligne 89
- Code: Tout sélectionner
function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename)
{
AJOUTER APRES
- Code: Tout sélectionner
global $lang;
- includes/usercp_viewprofile.php
- TROUVER - Ligne 168
- Code: Tout sélectionner
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
REMPLACER PAR
- Code: Tout sélectionner
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '</a>';
- privmsg.php
- TROUVER - Ligne 701
- Code: Tout sélectionner
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'outbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'sentbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
break;
case 'savebox':
$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " )
OR ( privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
break;
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE $delete_type";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain id list to delete all messages', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$mark_list[] = $row['privmsgs_id'];
}
unset($delete_type);
}
REMPLACER PAR
- Code: Tout sélectionner
$delete_sql_id = '';
if (!$delete_all)
{
for ($i = 0; $i < count($mark_list); $i++)
{
$delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]);
}
$delete_sql_id = "AND privmsgs_id IN ($delete_sql_id)";
}
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'outbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
case 'sentbox':
$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
break;
case 'savebox':
$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " )
OR ( privmsgs_to_userid = " . $userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
break;
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE $delete_type $delete_sql_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain id list to delete messages', '', __LINE__, __FILE__, $sql);
}
$mark_list = array();
while ( $row = $db->sql_fetchrow($result) )
{
$mark_list[] = $row['privmsgs_id'];
}
unset($delete_type);- TROUVER - Ligne 1507
- Code: Tout sélectionner
$mode = 'reply';
}
}
AJOUTER APRES
- Code: Tout sélectionner
else
{
$privmsg_subject = $privmsg_message = '';
}- TROUVER - Ligne 2036
- Code: Tout sélectionner
$l_box_size_status = '';
break;
}
}
AJOUTER APRES
- Code: Tout sélectionner
else
{
$inbox_limit_img_length = $inbox_limit_pct = $l_box_size_status = '';
}
- templates/subSilver/faq_body.tpl
- TROUVER - Ligne 37
- Code: Tout sélectionner
<td class="{faq_block.faq_row.ROW_CLASS}" align="left" valign="top"><span class="postbody"><a name="{faq_block.faq_row.U_FAQ_ID}"></a><b>{faq_block.faq_row.FAQ_QUESTION}</b></span><br /><span class="postbody">{faq_block.faq_row.FAQ_ANSWER}<br /><a class="postlink" href="#Top">{L_BACK_TO_TOP}</a></span></td>
REMPLACER PAR
- Code: Tout sélectionner
<td class="{faq_block.faq_row.ROW_CLASS}" align="left" valign="top"><span class="postbody"><a name="{faq_block.faq_row.U_FAQ_ID}"></a><b>{faq_block.faq_row.FAQ_QUESTION}</b></span><br /><span class="postbody">{faq_block.faq_row.FAQ_ANSWER}<br /><a class="postlink" href="#top">{L_BACK_TO_TOP}</a></span></td>
- viewtopic.php
- TROUVER - Ligne 992
- Code: Tout sélectionner
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
REMPLACER PAR
- Code: Tout sélectionner
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '</a>';
@+ & bonne mise à jour.

