コード例 #1
0
ファイル: subscribe.php プロジェクト: abhinay100/forma_app
function approveusers()
{
    checkPerm('moderate', false, 'course');
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once _base_ . '/lib/lib.preference.php';
    $id_course = importVar('id_course', true, 0);
    $course_info = Man_Course::getCourseInfo($id_course);
    $edition_id = getCourseEditionId();
    $re = true;
    $approve_user = array();
    $deny_user = array();
    if (isset($_POST['waiting_user'])) {
        $man_course = new Man_Course();
        $waiting_users =& $man_course->getWaitingSubscribed($id_course);
        $tot_deny = array();
        require_once _lms_ . '/lib/lib.course.php';
        $docebo_course = new DoceboCourse($id_course);
        $group_levels = $docebo_course->getCourseLevel($id_course);
        while (list($id_user, $action) = each($_POST['waiting_user'])) {
            if ($action == 0) {
                // approved -----------------------------------------------
                $text_query = "\r\n\t\t\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t\tSET waiting = 0, \r\n\t\t\t\t\tstatus = '" . _CUS_SUBSCRIBED . "'\r\n\t\t\t\tWHERE idCourse = '" . $id_course . "' AND idUser = '******' ";
                $text_query .= "AND edition_id='" . $edition_id . "'";
                $result = sql_query($text_query);
                if ($result) {
                    $approve_user[] = $id_user;
                }
                $re &= $result;
            } elseif ($action == 1) {
                // refused --------------------------------------------------
                $level = $waiting_users['users_info'][$id_user]['level'];
                $sub_by = $waiting_users['users_info'][$id_user]['subscribed_by'];
                $result = removeSubscription($id_course, $id_user, $group_levels[$level], $edition_id);
                if ($sub_by != 0 && $id_user != $sub_by) {
                    if (isset($tot_deny[$sub_by])) {
                        $tot_deny[$sub_by]++;
                    } else {
                        $tot_deny[$sub_by] = 1;
                    }
                }
                if ($result) {
                    $deny_user[] = $id_user;
                }
                $re &= $result;
            }
        }
    }
    if (!empty($tot_deny)) {
        while (list($id_user, $inc) = each($tot_deny)) {
            $pref = new UserPreferences($id_user);
            $max_subscribe = $pref->getAdminPreference('admin_rules.max_course_subscribe');
            $pref->setPreference('admin_rules.max_course_subscribe', $max_subscribe + $inc);
        }
    }
    require_once _base_ . '/lib/lib.eventmanager.php';
    $array_subst = array('[url]' => Get::sett('url'), '[course]' => $course_info['name']);
    if (!empty($approve_user)) {
        $msg_composer = new EventMessageComposer();
        $msg_composer->setSubjectLangText('email', '_APPROVED_SUBSCRIBED_SUBJECT', false);
        $msg_composer->setBodyLangText('email', '_APPROVED_SUBSCRIBED_TEXT', $array_subst);
        $msg_composer->setBodyLangText('email', "\n\n" . $_POST['subscribe_accept'], array(), true);
        $msg_composer->setBodyLangText('sms', '_APPROVED_SUBSCRIBED_TEXT_SMS', $array_subst);
        // send message to the user subscribed
        createNewAlert('UserCourseInserted', 'subscribe', 'approve', '1', 'User course approve', $approve_user, $msg_composer, true);
    }
    if (!empty($deny_user)) {
        $msg_composer = new EventMessageComposer();
        $msg_composer->setSubjectLangText('email', '_DENY_SUBSCRIBED_SUBJECT', false);
        $msg_composer->setBodyLangText('email', '_DENY_SUBSCRIBED_TEXT', $array_subst);
        $msg_composer->setBodyLangText('email', "\n\n" . $_POST['subscribe_refuse'], array(), true);
        $msg_composer->setSubjectLangText('sms', '_DENY_SUBSCRIBED_SUBJECT_SMS', false);
        $msg_composer->setBodyLangText('sms', '_DENY_SUBSCRIBED_TEXT_SMS', $array_subst);
        // send message to the user subscribed
        createNewAlert('UserCourseInserted', 'subscribe', 'deny', '1', 'User course deny', $deny_user, $msg_composer, true);
    }
    backcourse($re ? 'ok' : 'err');
}
コード例 #2
0
 /**
  * deleteTransaction
  * @param <int> $id_trans
  * @param <boolean> $rem_user_subscription
  * @return boolean
  */
 public function deleteTransaction($id_trans, $rem_user_subscription = false)
 {
     $res = false;
     $transaction_info = $this->getTransactionInfo($id_trans);
     $id_user = $transaction_info['id_user'];
     if ($rem_user_subscription) {
         foreach ($transaction_info['product'] as $prod) {
             // remove subscription request
             require_once _lms_ . '/admin/modules/subscribe/subscribe.php';
             $man_course = new Man_Course();
             if ($prod['activated'] == 0) {
                 $id_course = $prod['id_course'];
                 $edition_id = $prod['id_edition'];
                 $docebo_course = new DoceboCourse($id_course);
                 $group_levels = $docebo_course->getCourseLevel($id_course);
                 $waiting_users = $man_course->getWaitingSubscribed($id_course);
                 $level = $waiting_users['users_info'][$id_user]['level'];
                 $result = removeSubscription($id_course, $id_user, $group_levels[$level], $edition_id);
             }
         }
     }
     $qtxt = "DELETE FROM %adm_transaction_info WHERE id_trans = " . (int) $id_trans;
     $q1 = sql_query($qtxt);
     $qtxt = "DELETE FROM %adm_transaction WHERE id_trans = " . (int) $id_trans;
     $q2 = sql_query($qtxt);
     if ($q1 && $q2) {
         $res = true;
     }
     return $res;
 }