mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-03-10 15:07:23 -04:00
nces
This commit is contained in:
@@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Hook listener for filter_mediacms navigation hooks (Moodle 4.3+)
|
|
||||||
*
|
|
||||||
* @package filter_mediacms
|
|
||||||
* @copyright 2026 MediaCMS
|
|
||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace filter_mediacms;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extends the primary (top) navigation bar with a My Media link.
|
|
||||||
*/
|
|
||||||
class hook_listener {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the \core\hook\navigation\primary_extend hook.
|
|
||||||
* Adds the My Media link to the primary nav bar when placement = 'top'.
|
|
||||||
*/
|
|
||||||
public static function extend_primary_navigation(
|
|
||||||
\core\hook\navigation\primary_extend $hook
|
|
||||||
): void {
|
|
||||||
$placement = get_config('filter_mediacms', 'mymedia_placement');
|
|
||||||
if ($placement !== 'top') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isloggedin() || isguestuser()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$url = new \moodle_url('/filter/mediacms/my_media.php');
|
|
||||||
$node = \navigation_node::create(
|
|
||||||
get_string('mymedia', 'filter_mediacms'),
|
|
||||||
$url,
|
|
||||||
\navigation_node::TYPE_CUSTOM,
|
|
||||||
null,
|
|
||||||
'mediacms_mymedia',
|
|
||||||
new \pix_icon('i/media', '')
|
|
||||||
);
|
|
||||||
|
|
||||||
$primarynav = $hook->get_primarynav();
|
|
||||||
if ($primarynav === null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$primarynav->add_node($node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,72 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Navigation callbacks for filter_mediacms
|
|
||||||
*
|
|
||||||
* @package filter_mediacms
|
* @package filter_mediacms
|
||||||
* @copyright 2026 MediaCMS
|
* @copyright 2026 MediaCMS
|
||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
defined('MOODLE_INTERNAL') || die();
|
defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
/**
|
|
||||||
* Add My Media to the global / flat navigation (nav drawer).
|
|
||||||
* Fires on every page when placement is set to 'top'.
|
|
||||||
* In Moodle 4.x Boost the nav drawer is opened via the hamburger icon
|
|
||||||
* and the node appears as a top-level item alongside Home / My courses.
|
|
||||||
*/
|
|
||||||
function filter_mediacms_extend_navigation(global_navigation $navigation): void {
|
|
||||||
$placement = get_config('filter_mediacms', 'mymedia_placement');
|
|
||||||
if ($placement !== 'top') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isloggedin() || isguestuser()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$url = new moodle_url('/filter/mediacms/my_media.php');
|
|
||||||
$node = navigation_node::create(
|
|
||||||
get_string('mymedia', 'filter_mediacms'),
|
|
||||||
$url,
|
|
||||||
navigation_node::TYPE_CUSTOM,
|
|
||||||
null,
|
|
||||||
'mediacms_mymedia',
|
|
||||||
new pix_icon('i/media', '')
|
|
||||||
);
|
|
||||||
// showinflatnavigation = true makes it visible in the Boost nav drawer.
|
|
||||||
$node->showinflatnavigation = true;
|
|
||||||
$navigation->add_node($node);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add My Media to the user account / settings navigation.
|
|
||||||
* Fires when placement is set to 'user'.
|
|
||||||
* In Moodle 4.x Boost this section is reachable via avatar → Preferences.
|
|
||||||
*/
|
|
||||||
function filter_mediacms_extend_navigation_user_settings(
|
|
||||||
navigation_node $navigation,
|
|
||||||
stdClass $user,
|
|
||||||
context_user $usercontext,
|
|
||||||
stdClass $course,
|
|
||||||
context_course $coursecontext
|
|
||||||
): void {
|
|
||||||
$placement = get_config('filter_mediacms', 'mymedia_placement');
|
|
||||||
if ($placement !== 'user') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isloggedin() || isguestuser()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$url = new moodle_url('/filter/mediacms/my_media.php');
|
|
||||||
$navigation->add(
|
|
||||||
get_string('mymedia', 'filter_mediacms'),
|
|
||||||
$url,
|
|
||||||
navigation_node::TYPE_SETTING,
|
|
||||||
null,
|
|
||||||
'mediacms_mymedia',
|
|
||||||
new pix_icon('i/media', '')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -39,16 +39,4 @@ if ($ADMIN->fulltree) {
|
|||||||
0,
|
0,
|
||||||
$ltioptions
|
$ltioptions
|
||||||
));
|
));
|
||||||
|
|
||||||
// My Media link placement.
|
|
||||||
$settings->add(new admin_setting_configselect(
|
|
||||||
'filter_mediacms/mymedia_placement',
|
|
||||||
get_string('mymedia_placement', 'filter_mediacms'),
|
|
||||||
get_string('mymedia_placement_desc', 'filter_mediacms'),
|
|
||||||
'top',
|
|
||||||
[
|
|
||||||
'top' => get_string('mymedia_placement_top', 'filter_mediacms'),
|
|
||||||
'user' => get_string('mymedia_placement_user', 'filter_mediacms'),
|
|
||||||
]
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user