|
|
|
|
|
|
|
|
|
|
Исправляем ошибки, допущенные в запросах компанией IPS. Разработчики не учли некоторые мелочи, из-за которых у многих пользователей возникают различные ошибки при использовании MySQL пятой версии. Для исправления запросов проделайте следующие изменения в файлах, описанных ниже.
ips_kernel/class_db_mysql.php
Найти:
$get = implode( "," , $select_array ); $table = implode( "," , $final_from ); $where = implode( " AND " , $where_array ); $join = implode( "\n" , $joinleft_array );
добавляем ниже
<code php> if ( count($final_from) > 1 )
$table = "(".$table.")";</code>
Tеперь редактируем файлы-хранилища запросов IPB.
sources/sql/mysql_queries.php ищем:
function msg_get_cc_users( $a ) { return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id) WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).") AND m.mgroup=g.g_id"; }
меняем на:
function msg_get_cc_users( $a ) { return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g) LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id) WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).") AND m.mgroup=g.g_id"; }
ищем:
<code php> function portal_get_poll_join( $a )
{
return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
FROM ".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p
LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
WHERE t.tid={$a['tid']} AND p.tid=t.tid";
}</code>
меняем на:
function portal_get_poll_join( $a ) { return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted FROM (".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p) LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid) WHERE t.tid={$a['tid']} AND p.tid=t.tid"; }
ищем:
function contact_member_report_get_mods( $a ) { return "SELECT m.id, m.members_display_name as name, m.members_disable_pm, m.email, m.mgroup, moderator.member_id, moderator.group_id FROM ".SQL_PREFIX."moderators moderator, ".SQL_PREFIX."members m WHERE moderator.forum_id={$a['fid']} AND (moderator.member_id=m.id OR moderator.group_id=m.mgroup)"; }
меняем на:
function contact_member_report_get_mods( $a ) { return "SELECT m.id, m.members_display_name as name, m.members_disable_pm, m.email, m.mgroup, moderator.member_id, moderator.group_id FROM (".SQL_PREFIX."moderators moderator, ".SQL_PREFIX."members m) WHERE moderator.forum_id={$a['fid']} AND (moderator.member_id=m.id OR moderator.group_id=m.mgroup)"; }
ищем:
function contact_member_report_get_cpaccess( $a ) { return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_access_cp=1 AND m.mgroup=g.g_id"; }
меняем на:
function contact_member_report_get_cpaccess( $a ) { return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g) WHERE g.g_access_cp=1 AND m.mgroup=g.g_id"; }
ищем:
function contact_member_report_get_supmod( $a ) { return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_is_supmod=1 AND m.mgroup=g.g_id"; }
меняем на:
function contact_member_report_get_supmod( $a ) { return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g) WHERE g.g_is_supmod=1 AND m.mgroup=g.g_id"; }
Работает на DokuWiki |