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 zcmexkJ>9nco)F7a1_lO(N(Kf783qQ1C(H~Ciy0Ug*06&_85k_M7#Oq}7#J+M7#MgM z7#LEy7#M^Y7#NDU7#MgN7#Lc)7#IW?7#JpVF))ZTFfc6PVqoB7U|`t8#lRrTz`$^t zi-AFlfq~&A7XyPB0|SEyH-xXv4K}x)A&i@WL4<*Up@|!!aXL2x0~Z4W!!m9L1~vu; zhK<||3`PtL3_G|X7QN<%IN%RA1A{OF0|P$~0|P$;1A{V@Hs)bq;AUW8aE8+UJP?OQ z^Dr=QGB7Y?@-Q&4GB7X{^ME{D&%jX012K3S4+Dcd0|Ucy9tH*p1_p-XJPZty3=9kp zzzP`{e(^v;K%5uiKowqyLHfK544}X=h4O8AA?loYAsz^TstKPaq z3ZWXxco`Tt7#J9uc^Mc)85kIPp!`L=5C^X2WnfSN1uZWFgDL|9!$YV+?0gIi%AkBSacB=8#Nm_p7#IW@7#QaAF)-AFf@D1(#HBm=AVGJ44-!;o_!t;i z7#J9?@j-len-Ai^$9xbUzTtxe?N6u$?EDamc=;hwB+L(qA~k-9#a8?f2fFezFz7Qd zFog0m)H4`>5)o8l8$ZMW$Ds5jeu&TS@k1Q&o*&}V?@;y90ua8o0K}*M0uTq62rw`x zfD*L;1A`g^1H&u4K0%dQcGJ!!Lr65M>d9(A+|hkPw3M)r24+qFXNnaj^xIwiRMv zU}9ika1w&Vk*g5IA>mN@3?YaEa)ls1DTW%@Bm{9#rw}C3P8MPSr=_(}dYcdf!vRJH zhW$be3{ngX3=JX>bL(e|KoZ*;5s1qVK_xDUKtklP2qcbwi$H>!Q3>m36mp3%FqktiFbIi(L!_R;OAM0T;=~~3Ksl7( zBL=Z}sTd?AHj6G9KbID31WE( zhV5kR` z>GvcdLH$}15(Ph@8u_Fk28l{Rf=)&X5)#Hz5C;THL3|!5#lT?5z`&3q#lT?2z`!s~ z3X=aXNu<5AgS30N@qYdw8%j$?2}_)V1(4r zU=maX8#6F4*iK%^E?f_)Jxsvj3=B>TkT3#OQJ@Ojn}LBL94co6DkB*n868vyn=wGb z6(pSjA{ZDL;ushh0vI5!0SPfPKvE;9QV(TdU@&EXxCkVd3nCa8>KP#Lh29EN-b z28MVB1_nh?6$KRwhSCWPkZ_9ug*gKQgF6GbRRETCWME+M0<#zxGC_%ifq}t+0g@#^ z)nF_G14B8eBw=7+D21v6QF#pYkXQ$`9zdxJBv=e;AuvE9C4>QzT8bDTwL=L=0Rsbr z2Ll5`5GWZlFfb%Tn?q>~km3qd--60zHwFd&n2ukj}usV8Ot^;LiZ53!_1*7#J9`7#J9$7{G-uLpB2gLm5;Y zR3TSD*&qtkhy&4n3=9mO3=9lm3=9lD3=H7U>@||X8GBTgMOh}E%$b9oT zp&&-7^3tM|RE5-{;u4Vd+{7G(^whM{yp+_u&GI5MS>;_aQx%F+b4pV4ic3=S6kLmn XO7qfF^NN!*64Odj^EPjnbY%emuk!&v delta 2626 zcmbPk`^UQeo)F7a1_lO(as~zl83qQ1E6fZGiy0Ugde}jt3=9%n3=BLB3=EQ73=BdH z3=C>q3=F&s3=EcB3=9Gc3=HmE3=HB73=9!m3=Dh>3=9Qa3=Fai3=H*L3=CQf3=DI* z7#PGD7#L1K`S-aP7_=D}7`V6@7(^Ht>KV+qAsW5885p=27#O0s85r0Y7#LEy85oQh z7#MQ6Ar{T&hB#mYHv@w(0|UchZUzQ^1_p-fQ2IGH0|Pe$1H*SH&CCOFC_fJa11AFm zgDejN11kdqgE|kyqq;mGbL$xxym%NGrC>u<%0EbMr#@V!RObvb+ooEDQ_`s=N#gJoO9= z3|hPl3>*v$4CcHH45ADS3=U9!7%#|$3=HwS3=Arupyg#?P-S3Xmu>&8(A#QvO41x>{41s)*5J~1^V5kQLbuJ$y=t`gx4SWz6cJV=6 z+|LJb;B-DnNG#xk1npX=1-qg2K|V+n9fw+Yix1+kr+f?y`V0&VU-=jq3_w2Thlq#q zGt`6QER7%HfFgc~kL&oM7V|@VI322CH%W2|z49Edb%)5r70Wqaef}bwNmw=?XG1Xo8|j z5Ry0(1tC6}A_$4&B~W^`AS97)g7S|ELZaZTAjH8pp!D5(K?VjU1_p*lf{?g*DhP4N zcc=mmA&3Kbg&;l=7J^u$Bm{AgrVu2t8Vf;u<_o36gcukOFfuU23qj0N5P_sELlKCB z-9;ec_2D9rpvVw`#A$;FB*^U2g0vs5EO%0tR)5s0Shq(aDn3`261V) z7{q{dF^JEr#TXc*85kIv#2`MHC&s{_#K6F?9!g⪑J~7z2Yk0|Nt(I3#VEh(kia zK^zjIVd5YM*E2B0Kn2ppAwJC&hgj4r4spN~aY)cE0c&7jSSt>R!yQomUU5j&oDhdN zKA&IyWYEHK-B#NfWLL5Fv z77`^ZWg&@pqXCq07OLST)Pm2l3=E7QA3-swrUTW6Hj@vs3)hP<4o}NeRTTWME*(0x=jMslb8(njAsxC8#*4Vz+~`!x$JC;u#nioERYa3M33_ zGl3cb2_Oyw14BNjI%9w&Z;+5810)OhgB5yU|@&@sbXMY$N)9Q z7$6xmlYxPu1S$^77iCa3hypd@K(r4714AqW149S{1A`X>Bp>QdHsliCT)?%1WwQdb->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. +