Fixes medal grades (table was missing).
authorPascal Corpet <pascal.corpet@m4x.org>
Sun, 6 Jun 2010 22:36:07 +0000 (00:36 +0200)
committerPascal Corpet <pascal.corpet@m4x.org>
Sun, 6 Jun 2010 22:36:07 +0000 (00:36 +0200)
include/profilefields.inc.php
modules/profile.php
templates/profile/grades.js.tpl
upgrade/account/copy_tables.sh

index e44a639..4f83389 100644 (file)
@@ -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());
index 0569db3..fd61642 100644 (file)
@@ -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);
         }
     }
index f31011c..4ab0ca7 100644 (file)
@@ -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}
index 8c5abf5..c043d72 100755 (executable)
@@ -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'