AutorÃa | Ultima modificación | Ver Log |
<?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_block\output;/*** This class represents how a block appears on a page.** During output, each block instance is asked to return a block_contents object,* those are then passed to the $OUTPUT->block function for display.** contents should probably be generated using a moodle_block_..._renderer.** Other block-like things that need to appear on the page, for example the* add new block UI, are also represented as block_contents objects.** @copyright 2009 Tim Hunt* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @since Moodle 2.0* @package core_block* @category output*/class block_contents {/** Used when the block cannot be collapsed **/const NOT_HIDEABLE = 0;/** Used when the block can be collapsed but currently is not **/const VISIBLE = 1;/** Used when the block has been collapsed **/const HIDDEN = 2;/*** @var int Used to set $skipid.*/protected static $idcounter = 1;/*** @var int All the blocks (or things that look like blocks) printed on* a page are given a unique number that can be used to construct id="" attributes.* This is set automatically be the {@see prepare()} method.* Do not try to set it manually.*/public $skipid;/*** @var int If this is the contents of a real block, this should be set* to the block_instance.id. Otherwise this should be set to 0.*/public $blockinstanceid = 0;/*** @var int If this is a real block instance, and there is a corresponding* block_position.id for the block on this page, this should be set to that id.* Otherwise it should be 0.*/public $blockpositionid = 0;/*** @var array An array of attribute => value pairs that are put on the outer div of this* block. {@see $id} and {@see $classes} attributes should be set separately.*/public $attributes;/*** @var string The title of this block. If this came from user input, it should already* have had format_string() processing done on it. This will be output inside* <h2> tags. Please do not cause invalid XHTML.*/public $title = '';/*** @var string The label to use when the block does not, or will not have a visible title.* You should never set this as well as title... it will just be ignored.*/public $arialabel = '';/*** @var string HTML for the content*/public $content = '';/*** @var array An alternative to $content, it you want a list of things with optional icons.*/public $footer = '';/*** @var string Any small print that should appear under the block to explain* to the teacher about the block, for example 'This is a sticky block that was* added in the system context.'*/public $annotation = '';/*** @var int One of the constants NOT_HIDEABLE, VISIBLE, HIDDEN. Whether* the user can toggle whether this block is visible.*/public $collapsible = self::NOT_HIDEABLE;/*** Set this to true if the block is dockable.* @var bool*/public $dockable = false;/*** @var array A (possibly empty) array of editing controls. Each element of* this array should be an array('url' => $url, 'icon' => $icon, 'caption' => $caption).* $icon is the icon name. Fed to $OUTPUT->image_url.*/public $controls = [];/*** Create new instance of block content.** @param null|array $attributes*/public function __construct(?array $attributes = null) {$this->skipid = self::$idcounter;self::$idcounter += 1;if ($attributes) {// Standard block.$this->attributes = $attributes;} else {// Simple "fake" blocks used in some modules and "Add new block" block.$this->attributes = ['class' => 'block'];}}/*** Add html class to block** @param string $class*/public function add_class($class) {$this->attributes['class'] .= ' ' . $class;}/*** Check if the block is a fake block.** @return boolean*/public function is_fake() {return isset($this->attributes['data-block']) && $this->attributes['data-block'] == '_fake';}}// Alias this class to the old name.// This file will be autoloaded by the legacyclasses autoload system.// In future all uses of this class will be corrected and the legacy references will be removed.class_alias(block_contents::class, \block_contents::class);