createQuery('SELECT COUNT(tl) FROM ChamiloPluginBundle:XApi\ToolLaunch tl WHERE tl.course = :course') ->setParameter('course', $course) ->getSingleScalarResult(); }, function ($start, $limit, $orderBy, $orderDir) use ($em, $course) { $tools = $em->getRepository('ChamiloPluginBundle:XApi\ToolLaunch') ->findBy( ['course' => $course], ['title' => $orderDir], $limit, $start ); return array_map( function (ToolLaunch $toolLaunch) { return [ [$toolLaunch->getTitle(), $toolLaunch->getDescription()], $toolLaunch->getId(), ]; }, $tools ); }, 0 ); $table->set_header(0, $plugin->get_lang('ActivityTitle'), true); $table->set_header(1, get_lang('Actions'), false, ['class' => 'text-right'], ['class' => 'text-right']); $table->set_column_filter( 0, function (array $toolInfo) { list($title, $description) = $toolInfo; return "$title" .($description ? "$description" : null); } ); $table->set_column_filter( 1, function ($id) use ($cidReq) { $actions = []; $actions[] = Display::url( Display::return_icon('statistics.png', get_lang('Reporting')), "stats.php?$cidReq&id=$id" ); $actions[] = Display::url( Display::return_icon('edit.png', get_lang('Edit')), "edit.php?$cidReq&edit=$id" ); $actions[] = Display::url( Display::return_icon('delete.png', get_lang('Delete')), "delete.php?$cidReq&delete=$id" ); return implode(PHP_EOL, $actions); } ); $actions = Display::url( Display::return_icon('add.png', get_lang('Add'), [], ICON_SIZE_MEDIUM), "add.php?$cidReq" ); $pageTitle = $plugin->get_title(); if ($table->get_total_number_of_items() > 0) { $pageContent = $table->return_table(); } else { $pageContent = Display::return_message($plugin->get_lang('NoActivities'), 'info'); } $view = new Template($pageTitle); $view->assign('header', $pageTitle); $view->assign( 'actions', Display::toolbarAction( 'xapi_actions', [$actions] ) ); $view->assign('content', $pageContent); $view->display_one_col_template();