__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

namespace core_courseformat\output\local\content\cm;

use action_menu;
use context_course;
use core_courseformat\base as course_format;
use core_courseformat\output\local\content\basecontrolmenu;
use moodle_url;
use section_info;
use cm_info;

/**
 * Base class to render delegated section controls.
 *
 * @package   core_courseformat
 * @copyright 2024 Amaia Anabitarte <amaia@moodle.com>
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class delegatedcontrolmenu extends basecontrolmenu {

    /**
     * Constructor.
     *
     * @param course_format $format the course format
     * @param section_info $section the section info
     * @param cm_info $mod the module info
     */
    public function __construct(course_format $format, section_info $section, cm_info $mod) {
        parent::__construct($format, $section, $mod, $section->id);
    }

    /**
     * Generate the default delegated section action menu.
     *
     * This method is public in case some block needs to modify the menu before output it.
     *
     * @param \renderer_base $output typically, the renderer that's calling this function
     * @return action_menu|null the action menu
     */
    public function get_default_action_menu(\renderer_base $output): ?action_menu {
        $controls = $this->delegated_control_items();
        return $this->format_controls($controls);
    }

    /**
     * Generate the edit control items of a section.
     *
     * It is not clear this kind of controls are still available in 4.0 so, for now, this
     * method is almost a clone of the previous section_control_items from the course/renderer.php.
     *
     * This method must remain public until the final deprecation of section_edit_control_items.
     *
     * @return array of edit control items
     */
    public function delegated_control_items() {
        global $USER;

        $format = $this->format;
        $section = $this->section;
        $cm = $this->mod;
        $course = $format->get_course();
        $sectionreturn = !is_null($format->get_sectionid()) ? $format->get_sectionnum() : null;
        $user = $USER;

        $usecomponents = $format->supports_components();
        $coursecontext = context_course::instance($course->id);

        $baseurl = course_get_url($course, $sectionreturn);
        $baseurl->param('sesskey', sesskey());

        $cmbaseurl = new moodle_url('/course/mod.php');
        $cmbaseurl->param('sesskey', sesskey());

        $hasmanageactivities = has_capability('moodle/course:manageactivities', $coursecontext);
        $isheadersection = $format->get_sectionid() == $section->id;

        $controls = [];

        // Only show the view link if we are not already in the section view page.
        if (!$isheadersection) {
            $controls['view'] = [
                'url'   => new moodle_url('/course/section.php', ['id' => $section->id]),
                'icon' => 'i/viewsection',
                'name' => get_string('view'),
                'pixattr' => ['class' => ''],
                'attr' => ['class' => 'view'],
            ];
        }

        if (has_capability('moodle/course:update', $coursecontext, $user)) {
            $params = ['id' => $section->id];
            $params['sr'] = $section->section;
            if (get_string_manager()->string_exists('editsection', 'format_'.$format->get_format())) {
                $streditsection = get_string('editsection', 'format_'.$format->get_format());
            } else {
                $streditsection = get_string('editsection');
            }

            // Edit settings goes to section settings form.
            $controls['edit'] = [
                'url'   => new moodle_url('/course/editsection.php', $params),
                'icon' => 'i/settings',
                'name' => $streditsection,
                'pixattr' => ['class' => ''],
                'attr' => ['class' => 'edit'],
            ];
        }

        // Hide/Show uses module functionality.
        // Hide/Show options will be available for subsections inside visible sections only.
        $parentsection = $cm->get_section_info();
        $availablevisibility = has_capability('moodle/course:sectionvisibility', $coursecontext, $user) && $parentsection->visible;
        if ($availablevisibility) {
            $url = clone($baseurl);
            if (!is_null($sectionreturn)) {
                $url->param('sr', $format->get_sectionid());
            }
            $strhidefromothers = get_string('hidefromothers', 'format_' . $course->format);
            $strshowfromothers = get_string('showfromothers', 'format_' . $course->format);
            if ($section->visible) { // Show the hide/show eye.
                $url->param('hide', $section->section);
                $controls['visiblity'] = [
                    'url' => $url,
                    'icon' => 'i/show',
                    'name' => $strhidefromothers,
                    'pixattr' => ['class' => ''],
                    'attr' => [
                        'class' => 'editing_showhide',
                        'data-sectionreturn' => $sectionreturn,
                        'data-action' => ($usecomponents) ? 'sectionHide' : 'hide',
                        'data-id' => $section->id,
                        'data-swapname' => $strshowfromothers,
                        'data-swapicon' => 'i/show',
                    ],
                ];
            } else {
                $url->param('show', $section->section);
                $controls['visiblity'] = [
                    'url' => $url,
                    'icon' => 'i/hide',
                    'name' => $strshowfromothers,
                    'pixattr' => ['class' => ''],
                    'attr' => [
                        'class' => 'editing_showhide',
                        'data-sectionreturn' => $sectionreturn,
                        'data-action' => ($usecomponents) ? 'sectionShow' : 'show',
                        'data-id' => $section->id,
                        'data-swapname' => $strhidefromothers,
                        'data-swapicon' => 'i/hide',
                    ],
                ];
            }
        }

        // Only show the move link if we are not already in the section view page.
        // Move (only for component compatible formats).
        if (!$isheadersection && $hasmanageactivities && $usecomponents) {
            $controls['move'] = [
                'url'   => new moodle_url('/course/mod.php', ['copy' => $cm->id]),
                'icon' => 'i/dragdrop',
                'name' => get_string('move'),
                'pixattr' => ['class' => ''],
                'attr' => [
                    'class' => 'editing_movecm ',
                    'data-action' => 'moveCm',
                    'data-id' => $cm->id,
                ],
            ];
        }

        // Delete deletes the module.
        if ($hasmanageactivities) {
            $url = clone($cmbaseurl);
            $url->param('delete', $cm->id);
            $url->param('sr', $cm->sectionnum);

            $controls['delete'] = [
                'url' => $url,
                'icon' => 't/delete',
                'name' => get_string('delete'),
                'pixattr' => ['class' => ''],
                'attr' => [
                    'class' => 'editing_delete text-danger',
                    'data-action' => ($usecomponents) ? 'cmDelete' : 'delete',
                    'data-sectionreturn' => $sectionreturn,
                    'data-id' => $cm->id,
                ],
            ];
        }

        // Add section page permalink.
        if (
            has_any_capability([
                'moodle/course:movesections',
                'moodle/course:update',
                'moodle/course:sectionvisibility',
            ], $coursecontext)
        ) {
            $sectionlink = new moodle_url(
                '/course/section.php',
                ['id' => $section->id]
            );
            $controls['permalink'] = [
                'url' => $sectionlink,
                'icon' => 'i/link',
                'name' => get_string('sectionlink', 'course'),
                'pixattr' => ['class' => ''],
                'attr' => [
                    'data-action' => 'permalink',
                ],
            ];
        }

        return $controls;
    }
}

Filemanager

Name Type Size Permission Actions
availability.php File 5.86 KB 0777
cmicon.php File 3.29 KB 0777
cmname.php File 4.92 KB 0777
completion.php File 4.8 KB 0777
controlmenu.php File 5.38 KB 0777
delegatedcontrolmenu.php File 8.85 KB 0777
groupmode.php File 7.14 KB 0777
title.php File 7.83 KB 0777
visibility.php File 10 KB 0777
Filemanager