& /Admin/Elements/Header, Title => loc('Achievements') &> <& /Admin/Elements/Tabs, Title => loc('Achievements') &>
<%init> foreach (grep { /^Delete_/ } (keys %ARGS)) { next if (!/^Delete_(\d+)$/); $RT::Handle->dbh->do ('DELETE FROM `AchievementsProgress` WHERE `Achievement` = ?', undef, $1); $RT::Handle->dbh->do ('DELETE FROM `AchievementsEarned` WHERE `Achievement` = ?', undef, $1); $RT::Handle->dbh->do ('DELETE FROM `AchievementsDef` WHERE `Achievement` = ?', undef, $1); } foreach (grep { /^Name_/ } (keys %ARGS)) { next if (!/^Name_(\d+)$/); my $id = $1; next if (exists $ARGS{"Delete_$id"}); next if ($ARGS{"Name_$id"} !~ /\S/); my $icon = undef; if (defined $ARGS{"Icon_$id"}) { my $fh = CGI::upload ("Icon_$id"); if (defined $fh) { binmode $fh; $icon = join ('',<$fh>); close $fh; } } if ($id == 0) { if (defined $icon) { $RT::Handle->dbh->do ( 'INSERT INTO `AchievementsDef` (`Name`,`Description`,`Target`,`Clear`,`Code`,`Icon`,`Order`) VALUES (?,?,?,?,?,?,?)', undef, $ARGS{"Name_$id"}, $ARGS{"Description_$id"}, $ARGS{"Target_$id"}, $ARGS{"Clear_$id"}, $ARGS{"Code_$id"}, $icon, $ARGS{"Order_$id"} ); } else { $RT::Handle->dbh->do ( 'INSERT INTO `AchievementsDef` (`Name`,`Description`,`Target`,`Clear`,`Code`,`Order`) VALUES (?,?,?,?,?,?)', undef, $ARGS{"Name_$id"}, $ARGS{"Description_$id"}, $ARGS{"Target_$id"}, $ARGS{"Clear_$id"}, $ARGS{"Code_$id"}, $ARGS{"Order_$id"} ); } } else { if (defined $icon) { $RT::Handle->dbh->do ( 'UPDATE `AchievementsDef` SET `Name`=?,`Description`=?,`Target`=?,`Clear`=?,`Code`=?,`Icon`=?,`Order`=? WHERE `Achievement`=?', undef, $ARGS{"Name_$id"}, $ARGS{"Description_$id"}, $ARGS{"Target_$id"}, $ARGS{"Clear_$id"}, $ARGS{"Code_$id"}, $icon, $ARGS{"Order_$id"}, $id ); } else { $RT::Handle->dbh->do ( 'UPDATE `AchievementsDef` SET `Name`=?,`Description`=?,`Target`=?,`Clear`=?,`Code`=?,`Order`=? WHERE `Achievement`=?', undef, $ARGS{"Name_$id"}, $ARGS{"Description_$id"}, $ARGS{"Target_$id"}, $ARGS{"Clear_$id"}, $ARGS{"Code_$id"}, $ARGS{"Order_$id"}, $id ); } } } my @list = ( [ 0, '', '', '1', 'Never', '', '', 0 ]); my ($sth, $ref); $sth = $RT::Handle->dbh->prepare ('SELECT `Achievement`,`Name`,`Description`,`Target`,`Clear`,`Code`,`Icon`,`Order` FROM `AchievementsDef` ORDER BY `Order`,`Name`'); $sth->execute (); while ($ref = $sth->fetchrow_arrayref()) { push @list, [ @$ref ]; } $sth->finish (); %init>