本文整理汇总了PHP中ilLPStatusWrapper::_getFailed方法的典型用法代码示例。如果您正苦于以下问题:PHP ilLPStatusWrapper::_getFailed方法的具体用法?PHP ilLPStatusWrapper::_getFailed怎么用?PHP ilLPStatusWrapper::_getFailed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ilLPStatusWrapper
的用法示例。
在下文中一共展示了ilLPStatusWrapper::_getFailed方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getNotAttempted
function _getNotAttempted($a_obj_id)
{
$users = array();
$members = self::getMembers($a_obj_id);
if ($members) {
// diff in progress, completed and failed (use stored result in LPStatusWrapper)
$users = array_diff((array) $members, ilLPStatusWrapper::_getInProgress($a_obj_id));
$users = array_diff((array) $members, ilLPStatusWrapper::_getCompleted($a_obj_id));
$users = array_diff((array) $members, ilLPStatusWrapper::_getFailed($a_obj_id));
}
return $users;
}
示例2: _getInProgress
function _getInProgress($a_obj_id)
{
include_once './Modules/Exercise/classes/class.ilExerciseMembers.php';
include_once './Services/Tracking/classes/class.ilChangeEvent.php';
$users = ilExerciseMembers::_getReturned($a_obj_id);
$all = ilChangeEvent::lookupUsersInProgress($a_obj_id);
$users = $users + $all;
$users = array_diff($users, ilLPStatusWrapper::_getCompleted($a_obj_id));
$users = array_diff($users, ilLPStatusWrapper::_getFailed($a_obj_id));
if ($users) {
// Exclude all non members
$users = array_intersect(self::getMembers($a_obj_id), (array) $users);
}
return $users;
}
示例3: _getInProgress
function _getInProgress($a_obj_id)
{
global $ilDB;
global $ilBench;
$ilBench->start('LearningProgress', '9182_LPStatusTestPassed_inProgress');
include_once './Modules/Test/classes/class.ilObjTestAccess.php';
$query = "SELECT DISTINCT(user_fi) FROM tst_active " . "WHERE test_fi = '" . ilObjTestAccess::_getTestIDFromObjectID($a_obj_id) . "'";
$res = $ilDB->query($query);
while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) {
$user_ids[] = $row->user_fi;
}
$users = array_diff((array) $user_ids, ilLPStatusWrapper::_getCompleted($a_obj_id));
$users = array_diff((array) $users, ilLPStatusWrapper::_getFailed($a_obj_id));
$ilBench->stop('LearningProgress', '9182_LPStatusTestPassed_inProgress');
return $users ? $users : array();
}
示例4: refreshStatus
function refreshStatus($a_obj_id)
{
parent::refreshStatus($a_obj_id);
// this is restricted to SCOs in the current collection
include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php";
$in_progress = ilLPStatusWrapper::_getInProgress($a_obj_id);
$completed = ilLPStatusWrapper::_getCompleted($a_obj_id);
$failed = ilLPStatusWrapper::_getFailed($a_obj_id);
$all_active_users = array_unique(array_merge($in_progress, $completed, $failed));
// get all tracked users regardless of SCOs
include_once './Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php';
$subtype = ilObjSAHSLearningModule::_lookupSubType($a_obj_id);
if ($subtype != "scorm2004") {
include_once "./Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php";
$all_tracked_users = ilObjSCORMTracking::_getTrackedUsers($a_obj_id);
} else {
include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Tracking.php";
$all_tracked_users = ilSCORM2004Tracking::_getTrackedUsers($a_obj_id);
}
$not_attempted_users = array_diff($all_tracked_users, $all_active_users);
unset($all_tracked_users);
unset($all_active_users);
// reset all users which have no data for the current SCOs
if ($not_attempted_users) {
foreach ($not_attempted_users as $usr_id) {
// this will update any (parent) collections if necessary
ilLPStatus::writeStatus($a_obj_id, $usr_id, self::LP_STATUS_NOT_ATTEMPTED_NUM, 0);
}
}
}
示例5: _getCountFailed
/**
* Static function to read the number of user who have the status 'failed'
*/
function _getCountFailed($a_obj_id)
{
return count(ilLPStatusWrapper::_getFailed($a_obj_id));
}
示例6: refreshStatus
/**
* Refresh status
*
* @param
* @return
*/
function refreshStatus($a_obj_id, $a_users = null)
{
include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php";
$not_attempted = ilLPStatusWrapper::_getNotAttempted($a_obj_id);
foreach ($not_attempted as $user_id) {
$percentage = $this->determinePercentage($a_obj_id, $user_id);
if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_NOT_ATTEMPTED_NUM, $percentage, true)) {
self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_NOT_ATTEMPTED_NUM, $percentage);
}
}
$in_progress = ilLPStatusWrapper::_getInProgress($a_obj_id);
foreach ($in_progress as $user_id) {
$percentage = $this->determinePercentage($a_obj_id, $user_id);
if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_IN_PROGRESS_NUM, $percentage, true)) {
self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_IN_PROGRESS_NUM, $percentage);
}
}
$completed = ilLPStatusWrapper::_getCompleted($a_obj_id);
foreach ($completed as $user_id) {
$percentage = $this->determinePercentage($a_obj_id, $user_id);
if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_COMPLETED_NUM, $percentage, true)) {
self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_COMPLETED_NUM, $percentage);
}
}
$failed = ilLPStatusWrapper::_getFailed($a_obj_id);
foreach ($failed as $user_id) {
$percentage = $this->determinePercentage($a_obj_id, $user_id);
if (self::writeStatus($a_obj_id, $user_id, self::LP_STATUS_FAILED_NUM, $percentage, true)) {
self::raiseEvent($a_obj_id, $user_id, self::LP_STATUS_FAILED_NUM, $percentage);
}
}
if ($a_users) {
$missing_users = array_diff($a_users, $not_attempted + $in_progress + $completed + $failed);
if ($missing_users) {
foreach ($missing_users as $user_id) {
ilLPStatusWrapper::_updateStatus($a_obj_id, $user_id);
}
}
}
}
示例7: _getFailed
function _getFailed($a_obj_id)
{
global $ilObjDataCache;
$users = array();
include_once './Services/Object/classes/class.ilObjectLP.php';
$olp = ilObjectLP::getInstance($a_obj_id);
$collection = $olp->getCollectionInstance();
if ($collection) {
foreach ($collection->getGroupedItemsForLPStatus() as $grouping_id => $grouping) {
$isGrouping = $grouping_id ? true : false;
$gr_failed = array();
$gr_failed_users_num = array();
$counter = 0;
foreach ((array) $grouping['items'] as $item) {
$item_id = $ilObjDataCache->lookupObjId($item);
$tmp_users = ilLPStatusWrapper::_getFailed($item_id);
if ($isGrouping) {
foreach ($tmp_users as $tmp_user_id) {
++$gr_failed_users_num[$tmp_user_id];
}
} else {
// One item failed is sufficient for status failed.
$gr_failed = array_merge($gr_failed, $tmp_users);
}
$counter++;
}
if ($isGrouping) {
$allowed_failed = count($grouping['items']) - $grouping['num_obligatory'];
// Itereate over all failed users and check whether the allowd_failed value exceeded
foreach ($gr_failed_users_num as $tmp_user_id => $num_failed) {
if ($num_failed > $allowed_failed) {
$gr_failed[] = $tmp_user_id;
}
}
}
$users = array_unique(array_merge($users, $gr_failed));
}
}
if ($users) {
// Exclude all non members
$users = array_intersect(self::getMembers($a_obj_id), (array) $users);
}
return array_unique($users);
}
示例8: applyProgressFilter
/**
* Apply progress filter
* @param int $obj_id
* @param array $usr_ids
* @param array $filter
*
* @return array $filtered_users
*/
protected function applyProgressFilter($obj_id, array $usr_ids, array $filter)
{
include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
$all_users = array();
if (in_array(self::USER_FILTER_ALL, $usr_ids)) {
$all_users = array_unique(array_merge(ilLPStatusWrapper::_getInProgress($obj_id), ilLPStatusWrapper::_getCompleted($obj_id), ilLPStatusWrapper::_getFailed($obj_id)));
} else {
$all_users = $usr_ids;
}
if (!$filter or in_array(self::PROGRESS_FILTER_ALL, $filter)) {
$GLOBALS['log']->write(__METHOD__ . ': Deleting all progress data');
return $all_users;
}
$filter_users = array();
if (in_array(self::PROGRESS_FILTER_IN_PROGRESS, $filter)) {
$GLOBALS['log']->write(__METHOD__ . ': Filtering in progress.');
$filter_users = array_merge($filter, ilLPStatusWrapper::_getInProgress($obj_id));
}
if (in_array(self::PROGRESS_FILTER_COMPLETED, $filter)) {
$GLOBALS['log']->write(__METHOD__ . ': Filtering completed.');
$filter_users = array_merge($filter, ilLPStatusWrapper::_getCompleted($obj_id));
}
if (in_array(self::PROGRESS_FILTER_FAILED, $filter)) {
$GLOBALS['log']->write(__METHOD__ . ': Filtering failed.');
$filter_users = array_merge($filter, ilLPStatusWrapper::_getFailed($obj_id));
}
// Build intersection
return array_intersect($all_users, $filter_users);
}