add_cap('wpAdvQuiz_show'); $role->add_cap('wpAdvQuiz_add_quiz'); $role->add_cap('wpAdvQuiz_edit_quiz'); $role->add_cap('wpAdvQuiz_delete_quiz'); $role->add_cap('wpAdvQuiz_show_statistics'); $role->add_cap('wpAdvQuiz_reset_statistics'); $role->add_cap('wpAdvQuiz_import'); $role->add_cap('wpAdvQuiz_export'); $role->add_cap('wpAdvQuiz_change_settings'); $role->add_cap('wpAdvQuiz_toplist_edit'); //ACHIEVEMENTS Version 2.x.x if (defined('ACHIEVEMENTS_IS_INSTALLED') && ACHIEVEMENTS_IS_INSTALLED === 1 && defined('ACHIEVEMENTS_VERSION')) { $version = ACHIEVEMENTS_VERSION; if ($version[0] == '2') { WpAdvQuiz_Plugin_BpAchievementsV2::install(); } } } private static function updateV19() { $role = get_role('administrator'); $role->add_cap('wpAdvQuiz_toplist_edit'); } private static function updateDb() { $db = new WpAdvQuiz_Helper_DbUpgrade(); $v = $db->upgrade(get_option('wpAdvQuiz_dbVersion', false)); if (add_option('wpAdvQuiz_dbVersion', $v) === false) { update_option('wpAdvQuiz_dbVersion', $v); } } private static function updateV20() { global $wpdb; $results = $wpdb->get_results(" SELECT id, answer_data FROM {$wpdb->prefix}wp_adv_quiz_question WHERE answer_type = 'cloze_answer' AND answer_points_activated = 1", ARRAY_A); foreach ($results as $row) { if (WpAdvQuiz_Helper_Until::saveUnserialize($row['answer_data'], $into)) { $points = 0; foreach ($into as $c) { preg_match_all('#\{(.*?)(?:\|(\d+))?(?:[\s]+)?\}#im', $c->getAnswer(), $matches); foreach ($matches[2] as $match) { if (empty($match)) { $match = 1; } $points += $match; } } $wpdb->update($wpdb->prefix . 'wp_adv_quiz_question', array('points' => $points), array('id' => $row['id'])); } } } private static function updateV21() { global $wpdb; $results = $wpdb->get_results(" SELECT id, answer_data, answer_type, answer_points_activated, points FROM {$wpdb->prefix}wp_adv_quiz_question", ARRAY_A); foreach ($results as $row) { if ($row['points']) { continue; } if (WpAdvQuiz_Helper_Until::saveUnserialize($row['answer_data'], $into)) { $points = 0; if ($row['answer_points_activated']) { $dPoints = 0; foreach ($into as $c) { if ($row['answer_type'] == 'cloze_answer') { preg_match_all('#\{(.*?)(?:\|(\d+))?(?:[\s]+)?\}#im', $c->getAnswer(), $matches); foreach ($matches[2] as $match) { if (empty($match)) { $match = 1; } $dPoints += $match; } } else { $dPoints += $c->getPoints(); } } $points = $dPoints; } else { $points = 1; } $wpdb->update($wpdb->prefix . 'wp_adv_quiz_question', array('points' => $points), array('id' => $row['id'])); } } } public static function deinstall() { } }