Select Git revision
CoreOverview.class.php
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
IliasInterfaceModule.php 7.07 KiB
<?php
/**
* Ilias Interface - navigation and meta data
*
* @author André Noack <noack@data-quest.de>
* @copyright 2019 Stud.IP Core-Group
* @license GPL version 2 or any later version
* @since 4.3
*/
class IliasInterfaceModule extends CorePlugin implements StudipModule, SystemPlugin
{
public function __construct()
{
parent::__construct();
if (Config::get()->ILIAS_INTERFACE_ENABLE) {
$ilias_interface_config = Config::get()->ILIAS_INTERFACE_BASIC_SETTINGS;
if (Seminar_Perm::get()->have_perm('root')) {
Navigation::addItem('/admin/config/ilias_interface',
new Navigation(_('ILIAS-Schnittstelle'), 'dispatch.php/admin/ilias_interface'));
}
if (Seminar_Perm::get()->have_perm('tutor') || (Seminar_Perm::get()->have_perm('autor') && array_key_exists('show_tools_page', $ilias_interface_config) && $ilias_interface_config['show_tools_page'])) {
$ilias = new Navigation(_('ILIAS'), 'dispatch.php/my_ilias_accounts');
$ilias->setImage(Icon::create('ilias'));
$ilias->setDescription(_('Schnittstelle zu ILIAS'));
Navigation::addItem('/contents/my_ilias_accounts', $ilias);
}
}
}
public function isActivatableForContext(Range $context)
{
return Config::get()->ILIAS_INTERFACE_ENABLE && $context->getRangeType() === 'course';
}
public function getInfoTemplate($course_id)
{
return null;
}
public function getIconNavigation($course_id, $last_visit, $user_id)
{
if (!Config::get()->ILIAS_INTERFACE_ENABLE) {
return;
}
$sql = "SELECT COUNT(IF(a.module_type != 'crs', module_id, NULL)) AS count_modules,
COUNT(IF(a.module_type = 'crs', module_id, NULL)) AS count_courses,
COUNT(IF((chdate > IFNULL(b.visitdate, :threshold) AND a.module_type != 'crs'), module_id, NULL)) AS neue
FROM object_contentmodules AS a
LEFT JOIN object_user_visits AS b
ON b.object_id = a.object_id
AND b.user_id = :user_id
AND b.plugin_id = :plugin_id
WHERE a.object_id = :course_id
GROUP BY a.object_id";
$statement = DBManager::get()->prepare($sql);
$statement->bindValue(':user_id', $user_id);
$statement->bindValue(':course_id', $course_id);
$statement->bindValue(':threshold', $last_visit);
$statement->bindValue(':plugin_id', $this->getPluginId());
$statement->execute();
$result = $statement->fetch(PDO::FETCH_ASSOC);
if (!$result) {
return null;
}
$title = CourseConfig::get($course_id)->getValue('ILIAS_INTERFACE_MODULETITLE');