Example #1
0
 public function testUpdate()
 {
     $user = $this->database->select(User::class, '', [], 1);
     $user->setUsername('Administrator');
     $this->database->save($user);
     $user = $this->database->select(User::class, '', [], 1);
     $this->assertEquals('Administrator', $user->getUsername());
 }
Example #2
0
<?php

require '../mainconfig.php';
/** Database connection and APIs */
require 'Database.php';
$db = new Database();
$db->host = CONFIG_DATABASE_HOST;
$db->username = CONFIG_DATABASE_USER;
$db->password = CONFIG_DATABASE_PASSWORD;
$db->database_name = CONFIG_DATABASE_NAME;
//table field id value
if (isset($_POST)) {
    $db->connect();
    $query = sprintf("SELECT count(*) as cnt FROM `%s` WHERE `id` = '%s'", mysql_real_escape_string($_POST['table']), mysql_real_escape_string($_POST['id']));
    $count = $db->query($query);
    if ($count[0]['cnt'] == 0) {
        $db->connect();
        $query = sprintf("INSERT INTO `%s`(`id`, `%s`) VALUES('%s', '%s')", mysql_real_escape_string($_POST['table']), mysql_real_escape_string($_POST['field']), mysql_real_escape_string($_POST['id']), mysql_real_escape_string(htmlentities($_POST['value'])));
    } else {
        $db->connect();
        $query = sprintf("UPDATE `%s` SET `%s` = '%s' WHERE`id` = '%s'", mysql_real_escape_string($_POST['table']), mysql_real_escape_string($_POST['field']), mysql_real_escape_string(htmlentities($_POST['value'])), mysql_real_escape_string($_POST['id']));
    }
    $db->save($query);
    echo json_encode(array('result' => 'Data has been saved.'));
} elseif (isset($_GET)) {
}
/**
 * Checks through criteria for all achievements to determine if user has attained achievements.
 * 
 * Achievements can be categorised as
 * - points based
 * - condition based
 * 
 * @param $memberid, $achievement_array
 */
function checkAchievements($memberid, $achievement_array)
{
    // Use a common database connection
    $database = new Database();
    /*
     * Points based achievements
     */
    /*
     * Ranks
     * - Find out current rank
     * - Find out current level
     * - Check if current level match rank
     * - Otherwise increment rank
     * - Update rank in member table
     * - Create achievement in achievement log
     * - Push achievement to be displayed
     */
    $results = $database->get('s_members', array('level,rank'), 'member_id=' . $memberid);
    $db_rank = $results[0]['rank'];
    $level = $results[0]['level'];
    $results = $database->query('SELECT fk_id FROM g_ranks WHERE min<=' . $level . ' ORDER BY min DESC LIMIT 1');
    $rank = $results[0]['fk_id'];
    if ($db_rank != $rank) {
        $database->update('s_members', 'member_id', $memberid, array('rank'), array($rank));
        $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, $rank));
        $achievement_array[] = $rank;
    }
    // End Ranks
    /*
     * Condition based achievements
     * Fetch all achievements of the user to determine if user has attained achievements
     */
    $results = $database->get('g_achievements_log', array('fk_achievement_id'), 'fk_member_id=' . $memberid);
    $achievements = array();
    foreach ($results as $achievement) {
        $achievements[] = $achievement['fk_achievement_id'];
    }
    /*
     * - Check if achievement has been attained
     * - If not attained, check if user has taken quizzes in 2 different categories
     * - If user has met criteria
     *   - Create achievement in achievement log
     *   - Push achievement to be displayed
     */
    /*
     * Category based achievements
     */
    /*
     *  Curiousity killed the cat
     *  Completed at least 1 quiz each from 2 categories
     */
    if (!in_array('52', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_cat) as categories FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid);
        $categories = $results[0]['categories'];
        if ($categories >= 2) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 52));
            $achievement_array[] = 52;
        }
    }
    /*
     * Born an Explorer
     * Completed  at least 1 quiz each from 4 categories
     */
    if (!in_array('53', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_cat) as categories FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid);
        $categories = $results[0]['categories'];
        if ($categories >= 4) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 53));
            $achievement_array[] = 53;
        }
    }
    /*
     * Jack of all Trades
     * Completed at least 1 quiz each from 8 categories
     */
    if (!in_array('54', $achievements)) {
        if ($categories >= 8) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 54));
            $achievement_array[] = 54;
        }
    }
    /*
     * Generalist
     * Completed 10 quizzes from the General category
     */
    if (!in_array('55', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=1');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 55));
            $achievement_array[] = 55;
        }
    }
    /*
     * General Specialist
     * Completed 25 quizzes from the General category
     */
    if (!in_array('56', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=1');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 56));
            $achievement_array[] = 56;
        }
    }
    /*
     * Budding Geek
     * Completed 10 quizzes from the Technology category
     */
    if (!in_array('57', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=2');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 57));
            $achievement_array[] = 57;
        }
    }
    /*
     * Most likely a Geek
     * Completed 25 quizzes from the Technology category
     */
    if (!in_array('58', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=2');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 58));
            $achievement_array[] = 58;
        }
    }
    /*
     * Enjoying life
     * Completed 10 quizzes from the Lifestyle category
     */
    if (!in_array('59', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=3');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 59));
            $achievement_array[] = 59;
        }
    }
    /*
     * Life is a breeze
     * Completed 25 quizzes from the Lifestyle category
     */
    if (!in_array('60', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=3');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 60));
            $achievement_array[] = 60;
        }
    }
    /*
     * Becoming a Leader
     * Completed 10 quizzes from the Politics category
     */
    if (!in_array('61', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=4');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 61));
            $achievement_array[] = 61;
        }
    }
    /*
     * Consider being a Minister
     * Completed 25 quizzes from the Politics category
     */
    if (!in_array('62', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=4');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 62));
            $achievement_array[] = 62;
        }
    }
    /*
     * Wildlife Explorer
     * Completed 10 quizzes from the Animals category
     */
    if (!in_array('63', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=5');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 63));
            $achievement_array[] = 63;
        }
    }
    /*
     * Be a Zoologist
     * Completed 25 quizzes from the Animals category
     */
    if (!in_array('64', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=5');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 64));
            $achievement_array[] = 64;
        }
    }
    /*
     * Finding your role
     * Completed 10 quizzes from the Movies category
     */
    if (!in_array('65', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=6');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 65));
            $achievement_array[] = 65;
        }
    }
    /*
     * The Producer
     * Completed 25 quizzes from the Movies category
     */
    if (!in_array('66', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=6');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 66));
            $achievement_array[] = 66;
        }
    }
    /*
     * Getting social
     * Completed 10 quizzes from the Social category
     */
    if (!in_array('67', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=7');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 67));
            $achievement_array[] = 67;
        }
    }
    /*
     * Becoming a Sociologist
     * Completed 25 quizzes from the Social category
     */
    if (!in_array('68', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=7');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 68));
            $achievement_array[] = 68;
        }
    }
    /*
     * Getting Entertained
     * Completed 10 quizzes from the Entertainment category
     */
    if (!in_array('69', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=8');
        $taken = $results[0]['quizzes'];
        if ($taken >= 10) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 69));
            $achievement_array[] = 69;
        }
    }
    /*
     * Info-tainment!
     * Completed 25 quizzes from the Entertainment category
     */
    if (!in_array('70', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result LEFT JOIN q_quizzes ON fk_quiz_id=quiz_id WHERE q_store_result.fk_member_id=' . $memberid . ' AND fk_quiz_cat=8');
        $taken = $results[0]['quizzes'];
        if ($taken >= 25) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 70));
            $achievement_array[] = 70;
        }
    }
    /*
     * End category based achievements
     */
    /*
     * Special Achievements
     */
    /*
     * Officially initiated
     * Completed quiz taking and quiz creation
     */
    if (!in_array('51', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) as quizzes FROM q_store_result WHERE fk_member_id=' . $memberid);
        $taken = $results[0]['quizzes'];
        $results = $database->query('SELECT COUNT(DISTINCT quiz_id) as quizzes FROM q_quizzes WHERE fk_member_id=' . $memberid);
        $created = $results[0]['quizzes'];
        if ($taken > 0 && $created > 0) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 51));
            $achievement_array[] = 51;
        }
    }
    /*
     * 6 quizzes in a row
     * Achieved a 1.5x multiplier
     */
    if (!in_array('71', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) AS count FROM `q_store_result` WHERE `fk_member_id`=' . $memberid . ' AND DATE(`timestamp`) = DATE(NOW())');
        $count = $results[0]['count'];
        if ($count >= 6) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 71));
            $achievement_array[] = 71;
        }
    }
    /*
     * 2 timer
     * Achieved a 2x multiplier
     */
    if (!in_array('72', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) AS count FROM `q_store_result` WHERE `fk_member_id`=' . $memberid . ' AND DATE(`timestamp`) = DATE(NOW())');
        $count = $results[0]['count'];
        if ($count >= 11) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 72));
            $achievement_array[] = 72;
        }
    }
    /*
     * 3 times!
     * Achieved a 3x multiplier
     */
    if (!in_array('73', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) AS count FROM `q_store_result` WHERE `fk_member_id`=' . $memberid . ' AND DATE(`timestamp`) = DATE(NOW())');
        $count = $results[0]['count'];
        if ($count >= 21) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 73));
            $achievement_array[] = 73;
        }
    }
    /*
     * Top of the charts
     * Become the 1st on the Leaderboard
     */
    /*
     * Amazing comeback
     * Regain 1st on the Leaderboard
     */
    /*
     * End Special Achievements
     */
    /*
     * Duration based
     */
    /*
     * Half Quiz-a-thon
     * Completed 21 quizzes in 24 hours
     */
    if (!in_array('76', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) AS count FROM `q_store_result` WHERE `fk_member_id`=' . $memberid . ' AND `timestamp` > DATE_SUB(NOW(), INTERVAL 1 DAY)');
        $count = $results[0]['count'];
        if ($count >= 21) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 76));
            $achievement_array[] = 76;
        }
    }
    /*
     * Quiz-a-thon
     * Completed 42 quizzes in 24 hours
     */
    if (!in_array('77', $achievements)) {
        $results = $database->query('SELECT COUNT(DISTINCT fk_quiz_id) AS count FROM `q_store_result` WHERE `fk_member_id`=' . $memberid . ' AND `timestamp` > DATE_SUB(NOW(), INTERVAL 1 DAY)');
        $count = $results[0]['count'];
        if ($count >= 42) {
            $database->save('g_achievements_log', array('fk_member_id', 'fk_achievement_id'), array($memberid, 77));
            $achievement_array[] = 77;
        }
    }
    /*
     * 168 hours
     * Continuously active in Quizroo for 1 week
     */
    /*
     * 730.48 hours
     * Continuously active in Quizroo for 1 month
     */
    /*
     * End Duration based
     */
    return $achievement_array;
}
Example #4
0
<?php

if (isset($_POST['name']) && $_POST['name'] != "") {
    $database = new Database($_POST['name']);
    $database->save();
}
header("Location: " . e_SELF);
 public function save($id)
 {
     $bin = array("0", "1");
     Database::save($id, "LRC_Quest", "active", $bin[$this->isActive()]);
     Database::save($id, "LRC_Quest", "complete", $bin[$this->isComplete()]);
     Database::save($id, "LRC_Quest", "visible", $bin[$this->isVisible()]);
 }
Example #6
0
 public function save()
 {
     Database::save($this->getId(), "User", "spirit", (int) $this->getSpirit());
 }