���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /home3/cpr76684/public_html/notification.php.tar
���ѧ٧ѧ�
home3/cpr76684/public_html/Aem/lib/classes/output/notification.php 0000644 00000012403 15152025236 0020731 0 ustar 00 <?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/>. /** * Notification renderable component. * * @package core * @copyright 2015 Jetha Chan * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core\output; /** * Data structure representing a notification. * * @copyright 2015 Jetha Chan * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @since Moodle 2.9 * @package core * @category output */ class notification implements \renderable, \templatable { /** * A notification of level 'success'. */ const NOTIFY_SUCCESS = 'success'; /** * A notification of level 'warning'. */ const NOTIFY_WARNING = 'warning'; /** * A notification of level 'info'. */ const NOTIFY_INFO = 'info'; /** * A notification of level 'error'. */ const NOTIFY_ERROR = 'error'; /** * @var string Message payload. */ protected $message = ''; /** * @var string Message type. */ protected $messagetype = self::NOTIFY_WARNING; /** * @var bool $announce Whether this notification should be announced assertively to screen readers. */ protected $announce = true; /** * @var bool $closebutton Whether this notification should inlcude a button to dismiss itself. */ protected $closebutton = true; /** * @var array $extraclasses A list of any extra classes that may be required. */ protected $extraclasses = array(); /** * Notification constructor. * * @param string $message the message to print out * @param ?string $messagetype one of the NOTIFY_* constants.. * @param bool $closebutton Whether to show a close icon to remove the notification (default true). */ public function __construct($message, $messagetype = null, $closebutton = true) { $this->message = $message; if (empty($messagetype)) { $messagetype = self::NOTIFY_ERROR; } $this->messagetype = $messagetype; $this->closebutton = $closebutton; } /** * Set whether this notification should be announced assertively to screen readers. * * @param bool $announce * @return $this */ public function set_announce($announce = false) { $this->announce = (bool) $announce; return $this; } /** * Set whether this notification should include a button to disiss itself. * * @param bool $button * @return $this */ public function set_show_closebutton($button = false) { $this->closebutton = (bool) $button; return $this; } /** * Add any extra classes that this notification requires. * * @param array $classes * @return $this */ public function set_extra_classes($classes = array()) { $this->extraclasses = $classes; return $this; } /** * Get the message for this notification. * * @return string message */ public function get_message() { return $this->message; } /** * Get the message type for this notification. * * @return string message type */ public function get_message_type() { return $this->messagetype; } /** * Export this data so it can be used as the context for a mustache template. * * @param renderer_base $output typically, the renderer that's calling this function * @return stdClass data context for a mustache template */ public function export_for_template(\renderer_base $output) { return array( 'message' => clean_text($this->message), 'extraclasses' => implode(' ', $this->extraclasses), 'announce' => $this->announce, 'closebutton' => $this->closebutton, 'issuccess' => $this->messagetype === 'success', 'isinfo' => $this->messagetype === 'info', 'iswarning' => $this->messagetype === 'warning', 'iserror' => $this->messagetype === 'error', ); } public function get_template_name() { $templatemappings = [ // Current types mapped to template names. 'success' => 'core/notification_success', 'info' => 'core/notification_info', 'warning' => 'core/notification_warning', 'error' => 'core/notification_error', ]; if (isset($templatemappings[$this->messagetype])) { return $templatemappings[$this->messagetype]; } return $templatemappings['error']; } } home3/cpr76684/public_html/Aem/lib/classes/notification.php 0000644 00000016726 15152277165 0017417 0 ustar 00 <?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; /** * User Alert notifications. * * @package core * @copyright 2016 Andrew Nicols <andrew@nicols.co.uk> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ use stdClass; defined('MOODLE_INTERNAL') || die(); class notification { /** * A notification of level 'success'. */ const SUCCESS = 'success'; /** * A notification of level 'warning'. */ const WARNING = 'warning'; /** * A notification of level 'info'. */ const INFO = 'info'; /** * A notification of level 'error'. */ const ERROR = 'error'; /** * Add a message to the session notification stack. * * @param string $message The message to add to the stack * @param string $level The type of message to add to the stack */ public static function add($message, $level = null) { global $PAGE, $SESSION; if ($PAGE && ($PAGE->state === \moodle_page::STATE_IN_BODY || $PAGE->state === \moodle_page::STATE_DONE)) { // Currently in the page body - just render and exit immediately. // We insert some code to immediately insert this into the user-notifications created by the header. $id = uniqid(); echo \html_writer::span( $PAGE->get_renderer('core')->render(new \core\output\notification($message, $level)), '', array('id' => $id)); // Insert this JS here using a script directly rather than waiting for the page footer to load to avoid // ensure that the message is added to the user-notifications section as soon as possible after it is created. echo \html_writer::script( "(function() {" . "var notificationHolder = document.getElementById('user-notifications');" . "if (!notificationHolder) { return; }" . "var thisNotification = document.getElementById('{$id}');" . "if (!thisNotification) { return; }" . "notificationHolder.appendChild(thisNotification.firstChild);" . "thisNotification.remove();" . "})();" ); return; } // Add the notification directly to the session. // This will either be fetched in the header, or by JS in the footer. if (!isset($SESSION->notifications) || !array($SESSION->notifications)) { // Initialise $SESSION if necessary. if (!is_object($SESSION)) { $SESSION = new stdClass(); } $SESSION->notifications = []; } $SESSION->notifications[] = (object) array( 'message' => $message, 'type' => $level, ); } /** * @param string[] $icon The icon to use. Required keys are 'pix' and 'component'. * @param string $message The message to display. * @param array $actions An array of action links * @param string $region Optional region name * @throws \coding_exception */ public static function add_call_to_action(array $icon, string $message, array $actions, string $region = ''): void { global $OUTPUT, $PAGE; $context = new stdClass(); $context->icon = $icon; $context->message = $message; $context->region = $region; $context->actions = array_map(function($action) { $data = []; foreach ($action['data'] as $name => $value) { $data[] = ['name' => $name, 'value' => $value]; } $action['data'] = $data; return $action; }, $actions); $notification = $OUTPUT->render_from_template('core/local/notification/cta', $context); if ($PAGE && $PAGE->state === \moodle_page::STATE_IN_BODY) { $id = uniqid(); echo \html_writer::span($notification, '', ['id' => $id]); echo \html_writer::script( "(function() {" . "var notificationHolder = document.getElementById('user-notifications');" . "if (!notificationHolder) { return; }" . "var thisNotification = document.getElementById('{$id}');" . "if (!thisNotification) { return; }" . "notificationHolder.insertBefore(thisNotification.firstChild, notificationHolder.firstChild);" . "thisNotification.remove();" . "})();" ); } else { throw new \coding_exception('You are calling add_call_to_action() either too early or too late.'); } } /** * Fetch all of the notifications in the stack and clear the stack. * * @return array All of the notifications in the stack */ public static function fetch() { global $SESSION; if (!isset($SESSION) || !isset($SESSION->notifications)) { return []; } $notifications = $SESSION->notifications; unset($SESSION->notifications); $renderables = []; foreach ($notifications as $notification) { $renderable = new \core\output\notification($notification->message, $notification->type); $renderables[] = $renderable; } return $renderables; } /** * Fetch all of the notifications in the stack and clear the stack. * * @return array All of the notifications in the stack */ public static function fetch_as_array(\renderer_base $renderer) { $notifications = []; foreach (self::fetch() as $notification) { $notifications[] = [ 'template' => $notification->get_template_name(), 'variables' => $notification->export_for_template($renderer), ]; } return $notifications; } /** * Add a success message to the notification stack. * * @param string $message The message to add to the stack */ public static function success($message) { return self::add($message, self::SUCCESS); } /** * Add a info message to the notification stack. * * @param string $message The message to add to the stack */ public static function info($message) { return self::add($message, self::INFO); } /** * Add a warning message to the notification stack. * * @param string $message The message to add to the stack */ public static function warning($message) { return self::add($message, self::WARNING); } /** * Add a error message to the notification stack. * * @param string $message The message to add to the stack */ public static function error($message) { return self::add($message, self::ERROR); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 0 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�