本文整理汇总了PHP中ilLPStatusWrapper::_getInProgress方法的典型用法代码示例。如果您正苦于以下问题:PHP ilLPStatusWrapper::_getInProgress方法的具体用法?PHP ilLPStatusWrapper::_getInProgress怎么用?PHP ilLPStatusWrapper::_getInProgress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ilLPStatusWrapper
的用法示例。
在下文中一共展示了ilLPStatusWrapper::_getInProgress方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getInProgress
function _getInProgress($a_obj_id)
{
include_once './Services/Tracking/classes/class.ilChangeEvent.php';
$users = ilChangeEvent::lookupUsersInProgress($a_obj_id);
include_once './Services/Object/classes/class.ilObjectLP.php';
$olp = ilObjectLP::getInstance($a_obj_id);
$collection = $olp->getCollectionInstance();
if ($collection) {
foreach ($collection->getItems() as $item_id) {
$item_id = ilObject::_lookupObjId($item_id);
// merge arrays of users with status 'in progress'
$users = array_unique(array_merge((array) $users, ilLPStatusWrapper::_getInProgress($item_id)));
$users = array_unique(array_merge((array) $users, ilLPStatusWrapper::_getCompleted($item_id)));
}
}
// Exclude all users with status completed.
$users = array_diff((array) $users, ilLPStatusWrapper::_getCompleted($a_obj_id));
// Exclude all users with status failed.
$users = array_diff((array) $users, ilLPStatusWrapper::_getFailed($a_obj_id));
if ($users) {
// Exclude all non members
$users = array_intersect(self::getMembers($a_obj_id), (array) $users);
}
return $users;
}
示例2: _getNotAttempted
function _getNotAttempted($a_obj_id)
{
$users = array();
$members = self::getMembers($a_obj_id);
if ($members) {
$users = array_diff($members, ilLPStatusWrapper::_getInProgress($a_obj_id));
$users = array_diff($users, ilLPStatusWrapper::_getCompleted($a_obj_id));
$users = array_diff($users, ilLPStatusWrapper::_getFailed($a_obj_id));
}
return $users;
}
示例3: _getNotAttempted
function _getNotAttempted($a_obj_id)
{
$users = array();
$members = self::getMembers($a_obj_id);
if ($members) {
// diff in progress and completed (use stored result in LPStatusWrapper)
$users = array_diff((array) $members, ilLPStatusWrapper::_getInProgress($a_obj_id));
$users = array_diff((array) $users, ilLPStatusWrapper::_getCompleted($a_obj_id));
}
return $users;
}
示例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: _getCountInProgress
/**
* Static function to read the number of user who have the status 'in_progress'
*/
function _getCountInProgress($a_obj_id)
{
return count(ilLPStatusWrapper::_getInProgress($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: 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);
}