Skip to content

Commit

Permalink
Tracking: Change process to hide lp views when student_follow_page_ad…
Browse files Browse the repository at this point in the history
…d_LP_invisible_checkbox is enabled - refs BT#18671
  • Loading branch information
AngelFQC committed Apr 27, 2021
1 parent 09960a2 commit 217e05d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 21 deletions.
37 changes: 26 additions & 11 deletions main/inc/ajax/student_follow_page.ajax.php
Expand Up @@ -8,8 +8,6 @@

require_once __DIR__.'/../global.inc.php';

api_protect_course_script(true);

$httpRequest = HttpRequest::createFromGlobals();

$isAllowedToEdit = api_is_allowed_to_edit();
Expand Down Expand Up @@ -113,23 +111,40 @@ function displayForm(int $lpViewId)
})</script>";
}

function processViewsInvisible(array $lpViewsIds, bool $state)
function processViewsInvisible(array $lpViews, bool $state)
{
$lpViewsIds = array_map('intval', $lpViewsIds);
$lpViewsIds = array_filter($lpViewsIds);

if (empty($lpViewsIds)) {
return;
}
foreach ($lpViews as $lpViewData) {
$parts = explode('_', $lpViewData);

[$lpId, $userId, $courseId, $sessionId] = array_map('intval', $parts);

$lpView = learnpath::findLastView($lpId, $userId, $courseId, $sessionId);

if (empty($lpView)) {
$tblLpView = Database::get_course_table(TABLE_LP_VIEW);

$lpViewId = Database::insert(
$tblLpView,
[
'c_id' => $courseId,
'lp_id' => $lpId,
'user_id' => $userId,
'view_count' => 1,
'session_id' => $sessionId,
]
);
Database::update($tblLpView, ['id' => $lpViewId], ['iid = ?' => $lpViewId]);
} else {
$lpViewId = $lpView['iid'];
}

foreach ($lpViewsIds as $lpViewId) {
$extraFieldValue = new ExtraFieldValue('lp_view');
$extraFieldValue->save(
[
'variable' => StudentFollowPage::VARIABLE_INVISIBLE,
'item_id' => $lpViewId,
'comment' => json_encode(['user' => api_get_user_id(), 'datetime' => api_get_utc_datetime()]),
'value' => !$state,
'value' => $state,
]
);
}
Expand Down
17 changes: 8 additions & 9 deletions main/inc/lib/StudentFollowPage.php
Expand Up @@ -159,29 +159,28 @@ function doRequest(element, state) {

public static function getLpVisibleField(array $lpInfo, int $studentId, int $courseId, int $sessionId = 0)
{
$lpView = learnpath::findLastView($lpInfo['iid'], $studentId, $courseId, $sessionId);

if (empty($lpView)) {
return '-';
}

$attrs = [];

$isVisible = self::isViewVisible($lpInfo['iid'], $studentId, $courseId, $sessionId);

if ($isVisible) {
if (!$isVisible) {
$attrs['checked'] = 'checked';
}

return Display::input('checkbox', 'chkb_view[]', $lpView['iid'], $attrs);
return Display::input(
'checkbox',
'chkb_view[]',
implode('_', [$lpInfo['iid'], $studentId, $courseId, $sessionId]),
$attrs
);
}

public static function isViewVisible(int $lpId, int $studentId, int $courseId, int $sessionId): bool
{
$lpView = learnpath::findLastView($lpId, $studentId, $courseId, $sessionId);

if (empty($lpView)) {
return false;
return true;
}

$extraFieldValue = new ExtraFieldValue('lp_view');
Expand Down
3 changes: 2 additions & 1 deletion main/mySpace/myStudents.php
Expand Up @@ -1364,7 +1364,8 @@
if (true === api_get_configuration_value('student_follow_page_add_LP_invisible_checkbox')) {
echo StudentFollowPage::getLpVisibleScript();

$chkb = Display::input('checkbox', 'chkb_category[]', '');
$chkb = Display::input('checkbox', 'chkb_category[]', '')
.PHP_EOL.get_lang('Invisible');

$columnHeaders = array_merge(
['student_follow_page_add_LP_invisible_checkbox' => $chkb],
Expand Down

0 comments on commit 217e05d

Please sign in to comment.