当前位置: 首页>>代码示例>>PHP>>正文


PHP import_cleanup函数代码示例

本文整理汇总了PHP中import_cleanup函数的典型用法代码示例。如果您正苦于以下问题:PHP import_cleanup函数的具体用法?PHP import_cleanup怎么用?PHP import_cleanup使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了import_cleanup函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: grade_import_commit

/**
 * given an import code, commits all entries in buffer tables
 * (grade_import_value and grade_import_newitem)
 * If this function is called, we assume that all data collected
 * up to this point is fine and we can go ahead and commit
 * @param int courseid - id of the course
 * @param string importcode - import batch identifier
 * @param feedback print feedback and continue button
 * @return bool success
 */
function grade_import_commit($courseid, $importcode, $importfeedback = true, $verbose = true)
{
    global $CFG, $USER, $DB;
    $commitstart = time();
    // start time in case we need to roll back
    $newitemids = array();
    // array to hold new grade_item ids from grade_import_newitem table, mapping array
    /// first select distinct new grade_items with this batch
    $params = array($importcode, $USER->id);
    if ($newitems = $DB->get_records_sql("SELECT *\n                                           FROM {grade_import_newitem}\n                                          WHERE importcode = ? AND importer=?", $params)) {
        // instances of the new grade_items created, cached
        // in case grade_update fails, so that we can remove them
        $instances = array();
        $failed = false;
        foreach ($newitems as $newitem) {
            // get all grades with this item
            if ($grades = $DB->get_records('grade_import_values', array('newgradeitem' => $newitem->id))) {
                /// create a new grade item for this - must use false as second param!
                /// TODO: we need some bounds here too
                $gradeitem = new grade_item(array('courseid' => $courseid, 'itemtype' => 'manual', 'itemname' => $newitem->itemname), false);
                $gradeitem->insert('import');
                $instances[] = $gradeitem;
                // insert each individual grade to this new grade item
                foreach ($grades as $grade) {
                    if (!$gradeitem->update_final_grade($grade->userid, $grade->finalgrade, 'import', $grade->feedback, FORMAT_MOODLE)) {
                        $failed = true;
                        break 2;
                    }
                }
            }
        }
        if ($failed) {
            foreach ($instances as $instance) {
                $gradeitem->delete('import');
            }
            import_cleanup($importcode);
            return false;
        }
    }
    /// then find all existing items
    if ($gradeitems = $DB->get_records_sql("SELECT DISTINCT (itemid)\n                                             FROM {grade_import_values}\n                                            WHERE importcode = ? AND importer=? AND itemid > 0", array($importcode, $USER->id))) {
        $modifieditems = array();
        foreach ($gradeitems as $itemid => $notused) {
            if (!($gradeitem = new grade_item(array('id' => $itemid)))) {
                // not supposed to happen, but just in case
                import_cleanup($importcode);
                return false;
            }
            // get all grades with this item
            if ($grades = $DB->get_records('grade_import_values', array('itemid' => $itemid))) {
                // make the grades array for update_grade
                foreach ($grades as $grade) {
                    if (!$importfeedback) {
                        $grade->feedback = false;
                        // ignore it
                    }
                    if (!$gradeitem->update_final_grade($grade->userid, $grade->finalgrade, 'import', $grade->feedback)) {
                        $failed = 1;
                        break 2;
                    }
                }
                //$itemdetails -> idnumber = $gradeitem->idnumber;
                $modifieditems[] = $itemid;
            }
            if (!empty($failed)) {
                import_cleanup($importcode);
                return false;
            }
        }
    }
    if ($verbose) {
        notify(get_string('importsuccess', 'grades'), 'notifysuccess');
        $unenrolledusers = get_unenrolled_users_in_import($importcode, $courseid);
        if ($unenrolledusers) {
            $list = "<ul>\n";
            foreach ($unenrolledusers as $u) {
                $u->fullname = fullname($u);
                $list .= '<li>' . get_string('usergrade', 'grades', $u) . '</li>';
            }
            $list .= "</ul>\n";
            notify(get_string('unenrolledusersinimport', 'grades', $list), 'notifysuccess');
        }
        print_continue($CFG->wwwroot . '/grade/index.php?id=' . $courseid);
    }
    // clean up
    import_cleanup($importcode);
    return true;
}
开发者ID:nicolasconnault,项目名称:moodle2.0,代码行数:98,代码来源:lib.php

示例2: import_account

function import_account(&$a, $file)
{
    logger("Start user import from " . $file['tmp_name']);
    /*
     STEPS
     1. checks
     2. replace old baseurl with new baseurl
     3. import data (look at user id and contacts id)
     4. archive non-dfrn contacts
     5. send message to dfrn contacts
    */
    $account = json_decode(file_get_contents($file['tmp_name']), true);
    if ($account === null) {
        notice(t("Error decoding account file"));
        return;
    }
    if (!x($account, 'version')) {
        notice(t("Error! No version data in file! This is not a Friendica account file?"));
        return;
    }
    /*
    // this is not required as we remove columns in json not in current db schema
    if ($account['schema'] != DB_UPDATE_VERSION) {
    	notice(t("Error! I can't import this file: DB schema version is not compatible."));
    	return;
    }
    */
    // check for username
    $r = q("SELECT uid FROM user WHERE nickname='%s'", $account['user']['nickname']);
    if ($r === false) {
        logger("uimport:check nickname : ERROR : " . last_error(), LOGGER_NORMAL);
        notice(t('Error! Cannot check nickname'));
        return;
    }
    if (count($r) > 0) {
        notice(sprintf(t("User '%s' already exists on this server!"), $account['user']['nickname']));
        return;
    }
    // check if username matches deleted account
    $r = q("SELECT id FROM userd WHERE username='%s'", $account['user']['nickname']);
    if ($r === false) {
        logger("uimport:check nickname : ERROR : " . last_error(), LOGGER_NORMAL);
        notice(t('Error! Cannot check nickname'));
        return;
    }
    if (count($r) > 0) {
        notice(sprintf(t("User '%s' already exists on this server!"), $account['user']['nickname']));
        return;
    }
    $oldbaseurl = $account['baseurl'];
    $newbaseurl = $a->get_baseurl();
    $olduid = $account['user']['uid'];
    unset($account['user']['uid']);
    unset($account['user']['account_expired']);
    unset($account['user']['account_expires_on']);
    unset($account['user']['expire_notification_sent']);
    foreach ($account['user'] as $k => &$v) {
        $v = str_replace($oldbaseurl, $newbaseurl, $v);
    }
    // import user
    $r = db_import_assoc('user', $account['user']);
    if ($r === false) {
        //echo "<pre>"; var_dump($r, $query, mysql_error()); killme();
        logger("uimport:insert user : ERROR : " . last_error(), LOGGER_NORMAL);
        notice(t("User creation error"));
        return;
    }
    $newuid = last_insert_id();
    //~ $newuid = 1;
    foreach ($account['profile'] as &$profile) {
        foreach ($profile as $k => &$v) {
            $v = str_replace($oldbaseurl, $newbaseurl, $v);
            foreach (array("profile", "avatar") as $k) {
                $v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v);
            }
        }
        $profile['uid'] = $newuid;
        $r = db_import_assoc('profile', $profile);
        if ($r === false) {
            logger("uimport:insert profile " . $profile['profile-name'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
            info(t("User profile creation error"));
            import_cleanup($newuid);
            return;
        }
    }
    $errorcount = 0;
    foreach ($account['contact'] as &$contact) {
        if ($contact['uid'] == $olduid && $contact['self'] == '1') {
            foreach ($contact as $k => &$v) {
                $v = str_replace($oldbaseurl, $newbaseurl, $v);
                foreach (array("profile", "avatar", "micro") as $k) {
                    $v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v);
                }
            }
        }
        if ($contact['uid'] == $olduid && $contact['self'] == '0') {
            // set contacts 'avatar-date' to "0000-00-00 00:00:00" to let poller to update urls
            $contact["avatar-date"] = "0000-00-00 00:00:00";
            switch ($contact['network']) {
                case NETWORK_DFRN:
//.........这里部分代码省略.........
开发者ID:jzacman,项目名称:friendica,代码行数:101,代码来源:uimport.php

示例3: import_cleanup

 if ($separatemode and !groups_is_member($currentgroup, $studentid)) {
     // not allowed to import into this group, abort
     $status = false;
     import_cleanup($importcode);
     echo $OUTPUT->notification('user not member of current group, can not update!');
     break;
 }
 // insert results of this students into buffer
 if ($status and !empty($newgrades)) {
     foreach ($newgrades as $newgrade) {
         // check if grade_grade is locked and if so, abort
         if (!empty($newgrade->itemid) and $grade_grade = new grade_grade(array('itemid' => $newgrade->itemid, 'userid' => $studentid))) {
             if ($grade_grade->is_locked()) {
                 // individual grade locked
                 $status = false;
                 import_cleanup($importcode);
                 echo $OUTPUT->notification(get_string('gradelocked', 'grades'));
                 break 2;
             }
         }
         $newgrade->importcode = $importcode;
         $newgrade->userid = $studentid;
         $newgrade->importer = $USER->id;
         $DB->insert_record('grade_import_values', $newgrade);
     }
 }
 // updating/inserting all comments here
 if ($status and !empty($newfeedbacks)) {
     foreach ($newfeedbacks as $newfeedback) {
         $sql = "SELECT *\n                          FROM {grade_import_values}\n                         WHERE importcode=? AND userid=? AND itemid=? AND importer=?";
         if ($feedback = $DB->get_record_sql($sql, array($importcode, $studentid, $newfeedback->itemid, $USER->id))) {
开发者ID:covex-nn,项目名称:moodle,代码行数:31,代码来源:index.php

示例4: cleanup_import

 /**
  * Clean up failed CSV grade import. Clears the temp table for inserting grades.
  *
  * @param string $notification The error message to display from the unsuccessful grade import.
  */
 protected function cleanup_import($notification)
 {
     $this->status = false;
     import_cleanup($this->importcode);
     $this->gradebookerrors[] = $notification;
 }
开发者ID:evltuma,项目名称:moodle,代码行数:11,代码来源:load_data.php


注:本文中的import_cleanup函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。