Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/monara/public_html/test.athavaneng.com/themes.php on line 99

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 226

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 227

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 228

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 229

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 230

Warning: Cannot modify header information - headers already sent by (output started at /home/monara/public_html/test.athavaneng.com/themes.php:1) in /home/monara/public_html/test.athavaneng.com/themes.php on line 231
. namespace core_courseformat; use coding_exception; use core_courseformat\base as course_format; use renderer_base; use stdClass; use course_modinfo; use JsonSerializable; /** * Class to track state actions. * * The methods from this class should be executed via "stateactions" methods. * * Each format plugin could extend this class to provide new updates to the frontend * mutation module. * Extended classes should be located in "format_XXX\course" namespace and * extends {@see \core_courseformat\stateupdates}. * * @package core_course * @copyright 2021 Ferran Recio * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class stateupdates implements JsonSerializable { /** @var course_format format the course format */ protected $format; /** @var renderer_base renderer format renderer */ protected $output; /** @var array the tracked updates */ protected $updates; /** * State update class constructor. * * @param course_format $format Course format. */ public function __construct(course_format $format) { global $PAGE; $this->format = $format; $this->output = $this->format->get_renderer($PAGE); $this->updates = []; } /** * Return the data to serialize the current track in JSON. * * @return stdClass the statement data structure */ public function jsonSerialize(): array { return $this->updates; } /** * Add track about a general course state change. */ public function add_course_put(): void { $courseclass = $this->format->get_output_classname('state\\course'); $currentstate = new $courseclass($this->format); $this->add_update('course', 'put', $currentstate->export_for_template($this->output)); } /** * Add track about a section state put. * * @param int $sectionid The affected section id. */ public function add_section_put(int $sectionid): void { $this->create_or_put_section($sectionid, 'put'); } /** * Add track about a new section created. * * @param int $sectionid The affected section id. */ public function add_section_create(int $sectionid): void { $this->create_or_put_section($sectionid, 'create'); } /** * Add track about section created or put. * * @param int $sectionid The affected section id. * @param string $action The action to track for the section ('create' or 'put'). */ protected function create_or_put_section(int $sectionid, string $action): void { if ($action != 'create' && $action != 'put') { throw new coding_exception( "Invalid action passed ($action) to create_or_put_section. Only 'create' and 'put' are valid." ); } $course = $this->format->get_course(); $modinfo = course_modinfo::instance($course); $format = $this->format; $section = $modinfo->get_section_info_by_id($sectionid, MUST_EXIST); if (!$format->is_section_visible($section)) { return; } $sectionclass = $format->get_output_classname('state\\section'); $currentstate = new $sectionclass($this->format, $section); $this->add_update('section', $action, $currentstate->export_for_template($this->output)); } /** * Add track about a section deleted. * * @deprecated since Moodle 4.1 MDL-74925 - please call add_section_remove() instead. * @param int $sectionid The affected section id. */ public function add_section_delete(int $sectionid): void { debugging('add_section_delete() is deprecated. Please use add_section_remove() instead.', DEBUG_DEVELOPER); $this->add_update('section', 'remove', (object)['id' => $sectionid]); } /** * Add track about a section removed. * * @param int $sectionid The affected section id. */ public function add_section_remove(int $sectionid): void { $this->add_update('section', 'remove', (object)['id' => $sectionid]); } /** * Add track about a course module state update. * * @param int $cmid the affected course module id */ public function add_cm_put(int $cmid): void { $this->create_or_put_cm($cmid, 'put'); } /** * Add track about a course module created. * * @param int $cmid the affected course module id */ public function add_cm_create(int $cmid): void { $this->create_or_put_cm($cmid, 'create', true); } /** * Add track about section created or put. * * @param int $cmid The affected course module id. * @param string $action The action to track for the section ('create' or 'put'). */ protected function create_or_put_cm(int $cmid, string $action): void { $modinfo = course_modinfo::instance($this->format->get_course()); $cm = $modinfo->get_cm($cmid); $section = $modinfo->get_section_info_by_id($cm->section); $format = $this->format; if (!$section->uservisible || !$cm->is_visible_on_course_page()) { return; } $cmclass = $format->get_output_classname('state\\cm'); $currentstate = new $cmclass($this->format, $section, $cm); $this->add_update('cm', $action, $currentstate->export_for_template($this->output)); } /** * Add track about a course module deleted. * * @deprecated since Moodle 4.1 MDL-74925 - please call add_cm_remove() instead. * @param int $cmid the affected course module id */ public function add_cm_delete(int $cmid): void { debugging('add_cm_delete() is deprecated. Please use add_cm_remove() instead.', DEBUG_DEVELOPER); $this->add_update('cm', 'remove', (object)['id' => $cmid]); } /** * Add track about a course module removed. * * @param int $cmid the affected course module id */ public function add_cm_remove(int $cmid): void { $this->add_update('cm', 'remove', (object)['id' => $cmid]); } /** * Add a valid update message to the update list. * * @param string $name the update name * @param string $action the update action (usually update, create, remove) * @param stdClass $fields the object fields */ protected function add_update(string $name, string $action, stdClass $fields): void { $this->updates[] = (object)[ 'name' => $name, 'action' => $action, 'fields' => $fields, ]; } }