From c47eb1e314fb5715be11d6dfa0c43d8e421fc055 Mon Sep 17 00:00:00 2001 From: coderkun Date: Thu, 17 Apr 2014 01:31:23 +0200 Subject: [PATCH] determine seldom Achievements (Issue #57) --- configs/AppConfig.inc | 3 ++- controllers/AchievementsController.inc | 7 +++++ locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 7676 -> 7831 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 13 +++++++-- models/AchievementsModel.inc | 24 +++++++++++++++++ views/html/achievements/index.tpl | 28 ++++++++++---------- 6 files changed, 58 insertions(+), 17 deletions(-) diff --git a/configs/AppConfig.inc b/configs/AppConfig.inc index 841903c6..1bfbc2d6 100644 --- a/configs/AppConfig.inc +++ b/configs/AppConfig.inc @@ -94,7 +94,8 @@ * @var array */ public static $misc = array( - 'ranking_range' => 2 + 'ranking_range' => 2, + 'seldom_achievements_range' => 3 ); diff --git a/controllers/AchievementsController.inc b/controllers/AchievementsController.inc index ceeec968..00adea6d 100644 --- a/controllers/AchievementsController.inc +++ b/controllers/AchievementsController.inc @@ -61,6 +61,12 @@ // Get Character $character = SeminaryRoleController::$character; + // Get seldom Achievements + $seldomAchievements = $this->Achievements->getSeldomAchievements($seminary['id'], \nre\configs\AppConfig::$misc['seldom_achievements_range']); + foreach($seldomAchievements as &$achievement) { + $achievement['achieved'] = $this->Achievements->hasCharacterAchievedAchievement($achievement['id'], $character['id']); + } + // Get achieved Achievements $achievedAchievements = $this->Achievements->getAchievedAchievementsForCharacter($character['id']); @@ -152,6 +158,7 @@ // Pass data to view $this->set('seminary', $seminary); $this->set('character', $character); + $this->set('seldomAchievements', $seldomAchievements); $this->set('achievedAchievements', $achievedAchievements); $this->set('unachievedAchievements', $unachievedAchievements); } diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index cd24a7de766f06323de98d8d9e4d389515443bb7..48535d0652cd85986ab72c60a0375df4c87e3bed 100644 GIT binary patch delta 2768 zcmYk;drZ}39LMoTE~1bi2TTx*pBIh@AqW{4#Zth^OAw}Hly%_zxD*_W!zI?%X_j+s z*dMWE=32|j{?NwiY?{R;Hj_VWE%}4iY^=O&Ia{{oa+F=(pL3pC&-k9#^Zb6l^LxI( z@ALeC+iORvLerkOHw`U&>rja{;au#%cno4T^P53By758G!4EJ4ComJgM^)x`PAJVVy&^` zD%5q=s0XM=UEgTO&8X`;Fpl}nb9D5Dew>3Z;{qJA<0Gg9kKuA0!(99Ub)y8zwhU8H zl_<62YSi^@s6>ZQiM)=f_!fp#l2JO!^c1ReglpO75P3~GV| zW|#9&OO%FMA}?yr`*I_RDP&e9-s?Y&k zi6f{@dIpu)O;knWD1%HwRl;M(UQ|U2Lv)mJxwQ&o7;i-GVQNu{G}`m+s06xDPZC5; zuosoktEf#ojC!ySttW7NmNBPs5yxNRmD7Dghv{gu9Yo&38vlVR^;|A4 z#6r~D(u76$g7p~cJ->+BBfp}a^l#J>CUUY2JxE1DW-}eVZo82=%zzyap(cJGRf#a_ zhF_o(okW%N5~>2fVHW<0da_KiUyAwGZOAFJ2Up;JOw#*5N{8gkXQ5r(1=8&xtNI{i22X%cOYAH+YxE!@a)u==oP}ldNmf%IqXMS@?9XyMXU5?7|7HTbX z_|PV+u(qHQJ%D;!hEWNyu^kXF+ME04vfJ*ENYDsRQDiY5+DWUW%>YqnvF$XwjHlZrv zvksv$J&8ql8np>;pb|*q_cBE?nW##XpdM&Fs^nYnZVcdEcoFQ~mRWBm(NfmpK8W===l&s$GNB`!u~ zUWR(&8ss6(R%<)z3$LIid<}V>|7*H=DN!~2PC{Bpsoi7GZA8^bchw?qAsPv_b;KaS z&WikNCF*^ipfpRo6UwG>FJ&_`4g+J$PYcVq)JM@Ib9fO=&L?RY6_13g0cYWZj*%85F{A({xaXNboM z{qB60=qJ>Qi031{=!afZwTFp^h@He%qL^4UoSK;CIPJcm)9ktd$Jf%{;r6?Jr#sL& z=;ZpH-i|Ie7|uvM8<*PY@9uIoL@(%a1HHlUx5?*YV@k?~k9xci{>sxZYtcYokKc9N zo?x%O-sS6b+T7N@fZq*-bJ7pR=hSq#PSEY_bpt`dsqN|M3$!t4Y4^2qAbc{jHtrv< C^8r5q delta 2626 zcmYM#S!`8B7{Ku7a0eQ81@5)#BT#6(FT#w`+pJQ-q06Xn7G|K3q2=R3bM=iZ+A=9@XU-F3I; zB!AA!Iud9d#CYOTW(Y^|^}(EIqq9TE!7-SJr8o>{;c#4xqi{XmiEUVbNi4_raU@=d z{a^z$`4m9L5jjTnxclybJ4NzY(4JRxHLgEWsn_gHGe!cn+<^_1N!6zdw$$ znrJ_(1oI`;d}8UBGLn$I5<;TSB%*=S-- z$e5uex)+_u%jl*(G@SbTpij8L5&AgU{}C;92KDkmWoXGNa5C1So3jZ`>@Zr%W6|U2 zCOsAV=h2E>L=(Oe{VB=C0B-z-9N`)#6X{34ID~qdz%XO+45*3 zewD%AL7!K|yXM}iMiX9)-cPRM!cy!+*Yp5d@7v$6_YaF2@PcC1{1(v5fJ<3tYH{$I#7nCi**?X&xUsgVAV0#pv4Cpoz|l zE<^`jhW_1Jbf8UWMVrw|x1meWiK+L$iwht04qCd8(FgRRGd_dW_zlj+zma_vW-vVy zT7oXc2DB2p&_wp(J$Mi~!f{Sk;(YYxSn6+v<5|#3EJioq8Z?3Dks^dnv;y7eOpc5r5KD-)gl!JdLAa>CL-!G;ZQGG1Y{nIY3uN=x$VHn>tR`v*Q?@;s zCK=Xo@nE_WTCt5NB3ymj$~0jMI<1XF6|snL2iWR~hrFP*5UfeKpK!t51e=KG2#j=$Uds0{Y=HVm6V?-0-0z6L4Ac_gwLSkv^>i<(S zmrup+Z1ttJ)ujoua96x`7tAD5+Yw9SeRtEmc-@Fwi3f=4c#ri?E&R6Fe;RqsQrp{G z6A52|hl!>IoVF9S#B!pL*g)8J66=XP;t8Uiu=!r>Odb->query( + 'SELECT id, title, url, description, progress, hidden, unachieved_achievementsmedia_id, achieved_achievementsmedia_id, count(DISTINCT character_id) AS c '. + 'FROM achievements_characters '. + 'LEFT JOIN achievements ON achievements.id = achievements_characters.achievement_id '. + 'WHERE achievements.seminary_id = ? AND only_once = 0 '. + 'GROUP BY achievement_id '. + 'ORDER BY count(DISTINCT character_id) ASC '. + 'LIMIT ?', + 'ii', + $seminaryId, + $count + ); + } + + /** * Get all achieved Achievements for a Character. * diff --git a/views/html/achievements/index.tpl b/views/html/achievements/index.tpl index 79672cdc..9253052c 100644 --- a/views/html/achievements/index.tpl +++ b/views/html/achievements/index.tpl @@ -8,23 +8,23 @@
-

Die seltensten Errungenschaften

+

    +
  1. - -

    Des Königs neue Kleider

    -

    wurde erst 5 mal gefunden

    -
  2. -
  3. - -

    Sein oder Sterben

    -

    wurde erst 7 mal gefunden

    -
  4. -
  5. - -

    Hungersnot? Ohne mich.

    -

    wurde erst 9 mal gefunden

    + + + + + + + + + +

    +

  6. +