diff --git a/README.md b/README.md
index 78ada6f..4610998 100644
--- a/README.md
+++ b/README.md
@@ -50,6 +50,9 @@ At the end of the block a list of all courses is shown where the usere is enroll
# Changelog #
+## [[v2.0.4]] ##
+- configurable max courses if is_siteadmin
+
## [[v2.0.3]] ##
- add list of all moodle courses is is_siteadmin
- some refactoring
diff --git a/block_course_list_advanced.php b/block_course_list_advanced.php
index 224b3ed..d64ee9d 100644
--- a/block_course_list_advanced.php
+++ b/block_course_list_advanced.php
@@ -228,7 +228,8 @@ public function get_content()
. '';
$countCoursesNoneditingTeacher++;
}
- if (is_siteadmin()) {
+
+ if (is_siteadmin() && $countCoursesAll <= $configHandler->getMax_for_siteadmin()) {
$listAllCourses = $listAllCourses . '
' . '
' . $htmllinktocourse . ' ' . $linkViewOrphanedFiles . ' ' . $htmllinktocoursedeletion . ' ' . $roles . '
' . $duration . '
';
$countCoursesAll++;
}
@@ -237,7 +238,7 @@ public function get_content()
$title = '';
$title = get_string('blocktitle', 'block_course_list_advanced');
if (is_siteadmin()) {
- $title = $title . ' (Adminmodus)';
+ $title = 'Adminmodus' ;
}
$this->title = $title;
/// If we can update any course of the view all isn't hidden, show the view all courses link
@@ -269,7 +270,12 @@ public function get_content()
}
if ($countCoursesAll) {
- $this->content->items[] = '' . $countCoursesAll . ' ' . get_string('headlinenallcourses', 'block_course_list_advanced') . '
';
+ $this->content->items[] = ''
+ . $countCoursesAll . ' '
+ . get_string('headlinenallcourses', 'block_course_list_advanced')
+ . ' (max. '
+ . $configHandler->getMax_for_siteadmin()
+ . ')
';
$this->content->items[] = $listAllCourses . '
';
}
diff --git a/classes/config_handler.php b/classes/config_handler.php
index 4c7c5dc..feaaeea 100644
--- a/classes/config_handler.php
+++ b/classes/config_handler.php
@@ -44,6 +44,14 @@ class config_handler
*/
private $usesphorphanedfiles = false;
+ /**
+ * @var int
+ */
+ private $max_for_siteadmin = 22;
+
+
+
+
public function __construct(stdClass $config)
{
@@ -71,6 +79,10 @@ public function __construct(stdClass $config)
$this->usesphorphanedfiles = $config->block_course_list_advanced_usesphorphanedfiles == true ? true : false;
}
+ if (isset($config->block_course_list_advanced_max_for_siteadmin)) {
+ $this->max_for_siteadmin = $config->block_course_list_advanced_max_for_siteadmin;
+ }
+
}
@@ -125,8 +137,18 @@ public function getIsallowedonmypage(): bool
*
* @return bool
*/
- public function getUsesphorphanedfiles()
+ public function getUsesphorphanedfiles(): bool
{
return $this->usesphorphanedfiles;
}
+
+ /**
+ * Get the value of maxforsiteadmin
+ *
+ * @return int
+ */
+ public function getMax_for_siteadmin(): int
+ {
+ return $this->max_for_siteadmin;
+ }
}
diff --git a/lang/de/block_course_list_advanced.php b/lang/de/block_course_list_advanced.php
index 91878dd..562d785 100644
--- a/lang/de/block_course_list_advanced.php
+++ b/lang/de/block_course_list_advanced.php
@@ -46,6 +46,9 @@
$string['isallowedonmypage'] = 'Block auf my-Seite (Dashboard/Arbeitsplatz) erlauben';
$string['configisallowedonmypage'] = 'Wenn aktiviert kann der Block auf der my-Seite hinzugefügt werden (wenn Berechtigung vorhanden).';
+$string['max_for_siteadmin'] = 'Maximale Kursanzahl im Abschnitt Alle Kurse für Siteadmins';
+$string['configmax_for_siteadmin'] = 'Für SiteAdmins werden nur maximal so viele Kurse im Abschnitt AlleKurse angezeigt.';
+
$string['course_list_advanced:view'] = 'Block anzeigen';
$string['course_list_advanced:addinstance'] = 'Block Kursliste erweitert hinzufügen';
$string['course_list_advanced:myaddinstance'] = 'Block Kursliste erweitert zum Arbeitsplatz hinzufügen';
diff --git a/lang/en/block_course_list_advanced.php b/lang/en/block_course_list_advanced.php
index 3038420..999e9f9 100644
--- a/lang/en/block_course_list_advanced.php
+++ b/lang/en/block_course_list_advanced.php
@@ -46,6 +46,9 @@
$string['isallowedonmypage'] = 'Allow to add block on the mypage';
$string['configisallowedonmypage'] = 'When activated it is allowed to add block to mypage.';
+$string['max_for_siteadmin'] = 'Maximum number of courses in section all courses for siteadmins';
+$string['configmax_for_siteadmin'] = 'Maximum number of courses in section all courses for siteadmins';
+
$string['course_list_advanced:view'] = 'Show block';
$string['course_list_advanced:addinstance'] = 'Add a new courses block';
$string['course_list_advanced:myaddinstance'] = 'Add a new courses block to Dashboard';
diff --git a/settings.php b/settings.php
index 1be2b4e..db174d2 100644
--- a/settings.php
+++ b/settings.php
@@ -70,5 +70,15 @@
0
));
+ $options = array(5=>'5', 10=>'10', 20=>'20', 30=>'30', 40=>'40', 50=>'50', 100=>'100', 10000=>'10000');
+
+ $settings->add(new admin_setting_configselect(
+ 'block_course_list_advanced_max_for_siteadmin',
+ get_string('max_for_siteadmin', 'block_course_list_advanced'),
+ get_string('configmax_for_siteadmin', 'block_course_list_advanced'),
+ '30',
+ $options
+ ));
+
}
diff --git a/version.php b/version.php
index d542f71..de09ce6 100644
--- a/version.php
+++ b/version.php
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2021110801; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->version = 2021111001; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2020060900; // Requires this Moodle version
$plugin->component = 'block_course_list_advanced'; // Full name of the plugin (used for diagnostics)