From c6d16b24399ceb05de8f008194103f6dd74979b1 Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Mon, 7 Jun 2010 00:36:07 +0200 Subject: [PATCH] Fixes medal grades (table was missing). --- include/profilefields.inc.php | 3 ++- modules/profile.php | 12 ++++++------ templates/profile/grades.js.tpl | 4 ++-- upgrade/account/copy_tables.sh | 1 + 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/profilefields.inc.php b/include/profilefields.inc.php index e44a639..4f83389 100644 --- a/include/profilefields.inc.php +++ b/include/profilefields.inc.php @@ -412,10 +412,11 @@ class ProfileMedals extends ProfileField public static function fetchData(array $pids, ProfileVisibility $visibility) { - $data = XDB::iterator('SELECT pm.pid, pm.mid, pm.gid, pme.text, pme.img + $data = XDB::iterator('SELECT pm.pid, pm.mid, pm.gid, pme.text, pme.img, pmge.text AS grade FROM profile_medals AS pm LEFT JOIN profiles AS p ON (pm.pid = p.pid) LEFT JOIN profile_medal_enum AS pme ON (pme.id = pm.mid) + LEFT JOIN profile_medal_grade_enum AS pmge ON (pmge.mid = pm.mid AND pmge.gid = pm.gid) WHERE pm.pid IN {?} AND p.medals_pub IN {?} ORDER BY ' . XDB::formatCustomOrder('pm.pid', $pids), $pids, $visibility->levels()); diff --git a/modules/profile.php b/modules/profile.php index 0569db3..fd61642 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -334,7 +334,7 @@ class ProfileModule extends PLModule pl_cached_content_headers("text/javascript", "utf-8"); $page->changeTpl('profile/grades.js.tpl', NO_SKIN); $res = XDB::iterator("SELECT * - FROM profile_medal_enum_grades + FROM profile_medal_grade_enum ORDER BY mid, pos"); $grades = array(); while ($tmp = $res->next()) { @@ -792,29 +792,29 @@ class ProfileModule extends PLModule $mid = $id; if (Post::v('act') == 'del') { - XDB::execute('DELETE FROM profile_medal_enum_grades + XDB::execute('DELETE FROM profile_medal_grade_enum WHERE mid={?} AND gid={?}', $mid, Post::i('gid')); } else { foreach (Post::v('grades', array()) as $gid=>$text) { if ($gid === 0) { if (!empty($text)) { $res = XDB::query('SELECT MAX(gid) - FROM profile_medal_enum_grades + FROM profile_medal_grade_enum WHERE mid = {?}', $mid); $gid = $res->fetchOneCell() + 1; - XDB::execute('INSERT INTO profile_medal_enum_grades (mid, gid, text, pos) + XDB::execute('INSERT INTO profile_medal_grade_enum (mid, gid, text, pos) VALUES ({?}, {?}, {?}, {?})', $mid, $gid, $text, $_POST['pos']['0']); } } else { - XDB::execute('UPDATE profile_medal_enum_grades + XDB::execute('UPDATE profile_medal_grade_enum SET pos={?}, text={?} WHERE gid={?} AND mid={?}', $_POST['pos'][$gid], $text, $gid, $mid); } } } - $res = XDB::iterator('SELECT gid, text, pos FROM profile_medal_enum_grades WHERE mid={?} ORDER BY pos', $mid); + $res = XDB::iterator('SELECT gid, text, pos FROM profile_medal_grade_enum WHERE mid={?} ORDER BY pos', $mid); $page->assign('grades', $res); } } diff --git a/templates/profile/grades.js.tpl b/templates/profile/grades.js.tpl index f31011c..4ab0ca7 100644 --- a/templates/profile/grades.js.tpl +++ b/templates/profile/grades.js.tpl @@ -24,11 +24,11 @@ subgrades = new Array(); names = new Array(); {foreach from=$medal_list key=type item=list} {foreach from=$list item=m} - names[{$m.id}] = "{$m.text}"; + names[{$m.id}] = "{$m.text|regex_replace:"/\r?\n/":"\\n"}"; {if $grades[$m.id]|@count} subgrades[{$m.id}] = new Array({$grades[$m.id]|@count}); {foreach from=$grades[$m.id] item=g} - subgrades[{$m.id}][{$g.gid-1}] = [{$g.gid},"{$g.text}"]; + subgrades[{$m.id}][{$g.gid-1}] = [{$g.gid},"{$g.text|regex_replace:"/\r?\n/":"\\n"}"]; {/foreach} {/if} {/foreach} diff --git a/upgrade/account/copy_tables.sh b/upgrade/account/copy_tables.sh index 8c5abf5..c043d72 100755 --- a/upgrade/account/copy_tables.sh +++ b/upgrade/account/copy_tables.sh @@ -72,6 +72,7 @@ copyTable '#x4dat#.binets_ins' 'profile_binets' copyTable '#x4dat#.sections' 'profile_section_enum' copyTable '#x4dat#.profile_medals' 'profile_medal_enum' copyTable '#x4dat#.profile_medals_sub' 'profile_medals' +copyTable '#x4dat#.profile_medals_grades' 'profile_medal_grade_enum' copyTable '#x4dat#.competences_def' 'profile_skill_enum' copyTable '#x4dat#.competences_ins' 'profile_skills' copyTable '#x4dat#.langues_def' 'profile_langskill_enum' -- 2.1.4