MDL-21235 towards the final outputlib api - implementing separate html writer and implementing new render() method
This commit is contained in:
@@ -115,11 +115,7 @@ class popup_action extends component_action {
|
||||
global $CFG;
|
||||
$this->name = $name;
|
||||
|
||||
if ($url instanceof moodle_url) {
|
||||
$url = clone($url);
|
||||
} else {
|
||||
$url = new moodle_url($url);
|
||||
}
|
||||
$url = new moodle_url($url);
|
||||
|
||||
if ($this->name) {
|
||||
$_name = $this->name;
|
||||
|
||||
+209
-142
@@ -26,6 +26,215 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
/**
|
||||
* This constant is used for html attributes which need to have an empty
|
||||
* value and still be output by the renderers (e.g. alt="");
|
||||
*
|
||||
* @constant @EMPTY@
|
||||
*/
|
||||
define('HTML_ATTR_EMPTY', '@EMPTY@');
|
||||
|
||||
|
||||
/**
|
||||
* Interface marking other classes as suitable for renderer_base::render()
|
||||
* @author 2010 Petr Skoda (skodak) [email protected]
|
||||
*/
|
||||
interface renderable {
|
||||
// intentionally empty
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Component representing a user picture.
|
||||
*
|
||||
* @copyright 2009 Nicolas Connault, 2010 Petr Skoda
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @since Moodle 2.0
|
||||
*/
|
||||
class user_picture implements renderable {
|
||||
/**
|
||||
* List of mandatory fields in user record here.
|
||||
* @var string
|
||||
*/
|
||||
const FIELDS = 'id,picture,firstname,lastname,imagealt';
|
||||
|
||||
/**
|
||||
* @var object $user A user object with at least fields id, picture, imagealt, firstname and lastname set.
|
||||
*/
|
||||
public $user;
|
||||
/**
|
||||
* @var int $courseid The course id. Used when constructing the link to the user's profile,
|
||||
* page course id used if not specified.
|
||||
*/
|
||||
public $courseid;
|
||||
/**
|
||||
* @var bool $link add course profile link to image
|
||||
*/
|
||||
public $link = true;
|
||||
/**
|
||||
* @var int $size Size in pixels. Special values are (true/1 = 100px) and (false/0 = 35px) for backward compatibility
|
||||
*/
|
||||
public $size = 35;
|
||||
/**
|
||||
* @var boolean $alttext add non-blank alt-text to the image.
|
||||
* Default true, set to false when image alt just duplicates text in screenreaders.
|
||||
*/
|
||||
public $alttext = true;
|
||||
/**
|
||||
* @var boolean $popup Whether or not to open the link in a popup window.
|
||||
*/
|
||||
public $popup = false;
|
||||
/**
|
||||
* @var string Image class attribute
|
||||
*/
|
||||
public $class = 'userpicture';
|
||||
|
||||
/**
|
||||
* User picture constructor.
|
||||
*
|
||||
* @param object $user user record with at least id, picture, imagealt, firstname and lastname set.
|
||||
* @param array $options such as link, size, link, ...
|
||||
*/
|
||||
public function __construct(stdClass $user) {
|
||||
global $DB;
|
||||
|
||||
static $fields = null;
|
||||
if (is_null($fields)) {
|
||||
$fields = explode(',', self::FIELDS);
|
||||
}
|
||||
|
||||
if (empty($user->id)) {
|
||||
throw new coding_exception('User id is required when printing user avatar image.');
|
||||
}
|
||||
|
||||
// only touch the DB if we are missing data and complain loudly...
|
||||
$needrec = false;
|
||||
foreach ($fields as $field) {
|
||||
if (!array_key_exists($field, $user)) {
|
||||
$needrec = true;
|
||||
debugging('Missing '.$field.' property in $user object, this is a performance problem that needs to be fixed by a developer. '
|
||||
.'Please use user_picture::fields() to get the full list of required fields.', DEBUG_DEVELOPER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($needrec) {
|
||||
$this->user = $DB->get_record('user', array('id'=>$user->id), self::FIELDS, MUST_EXIST);
|
||||
} else {
|
||||
$this->user = clone($user);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of required user fields, usefull when fetching required user info from db.
|
||||
* @param string $tableprefix name of database table prefix in query
|
||||
* @return string
|
||||
*/
|
||||
public static function fields($tableprefix = '') {
|
||||
if ($tableprefix === '') {
|
||||
return self::FIELDS;
|
||||
} else {
|
||||
return "$tableprefix." . str_replace(',', ",$tableprefix.", self::FIELDS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==== HTML writer and helper classes, will be probably moved elsewhere ======
|
||||
|
||||
|
||||
/**
|
||||
* Simple html output class
|
||||
* @copyright 2009 Tim Hunt, 2010 Petr Skoda
|
||||
*/
|
||||
class html_writer {
|
||||
/**
|
||||
* Outputs a tag with attributes and contents
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @param string $contents What goes between the opening and closing tags
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function tag($tagname, array $attributes = null, $contents) {
|
||||
return self::start_tag($tagname, $attributes) . $contents . self::end_tag($tagname);
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs an opening tag with attributes
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function start_tag($tagname, array $attributes = null) {
|
||||
return '<' . $tagname . self::attributes($attributes) . '>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a closing tag
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function end_tag($tagname) {
|
||||
return '</' . $tagname . '>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs an empty tag with attributes
|
||||
* @param string $tagname The name of tag ('input', 'img', 'br' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function empty_tag($tagname, array $attributes = null) {
|
||||
return '<' . $tagname . self::attributes($attributes) . ' />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a HTML attribute and value
|
||||
* @param string $name The name of the attribute ('src', 'href', 'class' etc.)
|
||||
* @param string $value The value of the attribute. The value will be escaped with {@link s()}
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function attribute($name, $value) {
|
||||
if (is_array($value)) {
|
||||
debugging("Passed an array for the HTML attribute $name", DEBUG_DEVELOPER);
|
||||
}
|
||||
|
||||
$value = trim($value);
|
||||
if ($value == HTML_ATTR_EMPTY) {
|
||||
return ' ' . $name . '=""';
|
||||
} else if ($value || is_numeric($value)) { // We want 0 to be output.
|
||||
return ' ' . $name . '="' . s($value) . '"';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a list of HTML attributes and values
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* The values will be escaped with {@link s()}
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public static function attributes(array $attributes = null) {
|
||||
$attributes = (array)$attributes;
|
||||
$output = '';
|
||||
foreach ($attributes as $name => $value) {
|
||||
$output .= self::attribute($name, $value);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates random html element id.
|
||||
* @param string $base
|
||||
* @return string
|
||||
*/
|
||||
public static function random_id($base='random') {
|
||||
return uniqid($base);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ===============================================================================================
|
||||
// TODO: Following components will be refactored soon
|
||||
|
||||
/**
|
||||
* Base class for classes representing HTML elements, like html_select.
|
||||
*
|
||||
@@ -1891,148 +2100,6 @@ class moodle_paging_bar extends html_component {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Component representing a user picture.
|
||||
*
|
||||
* @copyright 2009 Nicolas Connault
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @since Moodle 2.0
|
||||
*/
|
||||
class user_picture extends html_image {
|
||||
/**
|
||||
* @var mixed $user A user object with at least fields id, picture, imagealt, firstname and lastname set.
|
||||
*/
|
||||
public $user;
|
||||
/**
|
||||
* @var int $courseid The course id. Used when constructing the link to the user's profile,
|
||||
* page course id used if not specified.
|
||||
*/
|
||||
public $courseid;
|
||||
/**
|
||||
* @var bool $link add course profile link to image
|
||||
*/
|
||||
public $link = true;
|
||||
/**
|
||||
* @var int $size Size in pixels. Special values are (true/1 = 100px) and (false/0 = 35px) for backward compatibility
|
||||
*/
|
||||
public $size = 35;
|
||||
/**
|
||||
* @var boolean $alttext add non-blank alt-text to the image.
|
||||
* Default true, set to false when image alt just duplicates text in screenreaders.
|
||||
*/
|
||||
public $alttext = true;
|
||||
/**
|
||||
* @var boolean $popup Whether or not to open the link in a popup window.
|
||||
*/
|
||||
public $popup = false;
|
||||
|
||||
/**
|
||||
* @var link to profile if link requested
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* User picture constructor.
|
||||
*
|
||||
* @param object $user user record with at least id, picture, imagealt, firstname and lastname set.
|
||||
* @param array $options such as link, size, link, ...
|
||||
*/
|
||||
public function __construct(stdClass $user = null, array $options = null) {
|
||||
parent::__construct(null, $options);
|
||||
|
||||
if ($user) {
|
||||
$this->user = $user;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see lib/html_component#prepare()
|
||||
* @return void
|
||||
*/
|
||||
public function prepare(renderer_base $output, moodle_page $page, $target) {
|
||||
global $CFG, $DB;
|
||||
|
||||
if (empty($this->user)) {
|
||||
throw new coding_exception('A user_picture object must have a $user object before being rendered.');
|
||||
}
|
||||
|
||||
if (empty($this->user->id)) {
|
||||
throw new coding_exception('User id missing in $user object.');
|
||||
}
|
||||
|
||||
if (empty($this->courseid)) {
|
||||
$courseid = $page->course->id;
|
||||
} else {
|
||||
$courseid = $this->courseid;
|
||||
}
|
||||
|
||||
// only touch the DB if we are missing data and complain loudly...
|
||||
$needrec = false;
|
||||
|
||||
if (!array_key_exists('picture', $this->user)) {
|
||||
$needrec = true;
|
||||
debugging('Missing picture property in $user object, this is a performance problem that needs to be fixed by a developer.', DEBUG_DEVELOPER);
|
||||
}
|
||||
if ($this->alttext) {
|
||||
if (!array_key_exists('firstname', $this->user) || !array_key_exists('lastname', $this->user) || !array_key_exists('imagealt', $this->user)) {
|
||||
$needrec = true;
|
||||
debugging('Missing firstname, lastname or imagealt property in $user object, this is a performance problem that needs to be fixed by a developer.', DEBUG_DEVELOPER);
|
||||
}
|
||||
}
|
||||
|
||||
if ($needrec) {
|
||||
$this->user = $DB->get_record('user', array('id'=>$this->user->id), 'id, firstname, lastname, imagealt');
|
||||
}
|
||||
|
||||
if ($this->alttext) {
|
||||
if (!empty($user->imagealt)) {
|
||||
$this->alt = $user->imagealt;
|
||||
} else {
|
||||
$this->alt = get_string('pictureof', '', fullname($this->user));
|
||||
}
|
||||
} else {
|
||||
$this->alt = HTML_ATTR_EMPTY;
|
||||
}
|
||||
|
||||
if ($this->link) {
|
||||
$this->url = new moodle_url('/user/view.php', array('id' => $this->user->id, 'course' => $courseid));
|
||||
} else {
|
||||
$this->url = null;
|
||||
$this->popup = false;
|
||||
}
|
||||
|
||||
if (empty($this->size)) {
|
||||
$file = 'f2';
|
||||
$this->size = 35;
|
||||
} else if ($this->size === true or $this->size == 1) {
|
||||
$file = 'f1';
|
||||
$this->size = 100;
|
||||
} else if ($this->size >= 50) {
|
||||
$file = 'f1';
|
||||
} else {
|
||||
$file = 'f2';
|
||||
}
|
||||
|
||||
if (!empty($this->size)) {
|
||||
$this->width = $this->size;
|
||||
$this->height = $this->size;
|
||||
}
|
||||
|
||||
$this->add_class('userpicture');
|
||||
|
||||
if (!empty($this->user->picture)) {
|
||||
require_once($CFG->libdir.'/filelib.php');
|
||||
$this->src = new moodle_url(get_file_url($this->user->id.'/'.$file.'.jpg', null, 'user'));
|
||||
} else { // Print default user pictures (use theme version if available)
|
||||
$this->add_class('defaultuserpic');
|
||||
$this->src = $output->pix_url('u/' . $file);
|
||||
}
|
||||
|
||||
parent::prepare($output, $page, $target);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Component representing a help icon.
|
||||
*
|
||||
|
||||
@@ -26,14 +26,6 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
/**
|
||||
* This constant is used for html attributes which need to have an empty
|
||||
* value and still be output by the renderers (e.g. alt="");
|
||||
*
|
||||
* @constant @EMPTY@
|
||||
*/
|
||||
define('HTML_ATTR_EMPTY', '@EMPTY@');
|
||||
|
||||
require_once($CFG->libdir.'/outputcomponents.php');
|
||||
require_once($CFG->libdir.'/outputactions.php');
|
||||
require_once($CFG->libdir.'/outputfactories.php');
|
||||
|
||||
+210
-191
@@ -56,6 +56,29 @@ class renderer_base {
|
||||
$this->target = $target;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns rendered widget.
|
||||
* @param renderable $widget intence with renderable interface
|
||||
* @return string
|
||||
*/
|
||||
public function render(renderable $widget) {
|
||||
$rendermethod = 'render_'.get_class($widget);
|
||||
if (method_exists($this, $rendermethod)) {
|
||||
return $this->$rendermethod($widget);
|
||||
}
|
||||
throw new coding_exception('Can not render widget, renderer method ('.$rendermethod.') not found.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds JS handlers needed for event execution for one html element id
|
||||
* @param string $id
|
||||
* @param component_action $actions
|
||||
* @return void
|
||||
*/
|
||||
public function add_action_handler($id, component_action $action) {
|
||||
$this->page->requires->event_handler($id, $action->event, $action->jsfunction, $action->jsfunctionargs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Have we started output yet?
|
||||
* @return boolean true if the header has been printed.
|
||||
@@ -64,81 +87,6 @@ class renderer_base {
|
||||
return $this->page->state >= moodle_page::STATE_IN_BODY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a tag with attributes and contents
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @param string $contents What goes between the opening and closing tags
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_tag($tagname, array $attributes = null, $contents) {
|
||||
return $this->output_start_tag($tagname, $attributes) . $contents .
|
||||
$this->output_end_tag($tagname);
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs an opening tag with attributes
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_start_tag($tagname, array $attributes = null) {
|
||||
return '<' . $tagname . $this->output_attributes($attributes) . '>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a closing tag
|
||||
* @param string $tagname The name of tag ('a', 'img', 'span' etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_end_tag($tagname) {
|
||||
return '</' . $tagname . '>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs an empty tag with attributes
|
||||
* @param string $tagname The name of tag ('input', 'img', 'br' etc.)
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_empty_tag($tagname, array $attributes = null) {
|
||||
return '<' . $tagname . $this->output_attributes($attributes) . ' />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a HTML attribute and value
|
||||
* @param string $name The name of the attribute ('src', 'href', 'class' etc.)
|
||||
* @param string $value The value of the attribute. The value will be escaped with {@link s()}
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_attribute($name, $value) {
|
||||
if (is_array($value)) {
|
||||
debugging("Passed an array for the HTML attribute $name", DEBUG_DEVELOPER);
|
||||
}
|
||||
|
||||
$value = trim($value);
|
||||
if ($value == HTML_ATTR_EMPTY) {
|
||||
return ' ' . $name . '=""';
|
||||
} else if ($value || is_numeric($value)) { // We want 0 to be output.
|
||||
return ' ' . $name . '="' . s($value) . '"';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a list of HTML attributes and values
|
||||
* @param array $attributes The tag attributes (array('src' => $url, 'class' => 'class1') etc.)
|
||||
* The values will be escaped with {@link s()}
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
protected function output_attributes(array $attributes = null) {
|
||||
$attributes = (array)$attributes;
|
||||
$output = '';
|
||||
foreach ($attributes as $name => $value) {
|
||||
$output .= $this->output_attribute($name, $value);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given an array or space-separated list of classes, prepares and returns the HTML class attribute value
|
||||
* @param mixed $classes Space-separated string or array of classes
|
||||
@@ -187,6 +135,7 @@ class renderer_base {
|
||||
* @return void;
|
||||
*/
|
||||
protected function prepare_event_handlers(html_component $component) {
|
||||
//TODO: to be deleted soon
|
||||
$actions = $component->get_actions();
|
||||
if (!empty($actions) && is_array($actions) && $actions[0] instanceof component_action) {
|
||||
foreach ($actions as $action) {
|
||||
@@ -204,6 +153,7 @@ class renderer_base {
|
||||
* @return void
|
||||
*/
|
||||
public static function apply_component_options(html_component $component, array $options = null) {
|
||||
//TODO: to be deleted soon
|
||||
$options = (array)$options;
|
||||
foreach ($options as $key => $value) {
|
||||
if ($key === 'class' or $key === 'classes') {
|
||||
@@ -240,6 +190,20 @@ class plugin_renderer_base extends renderer_base {
|
||||
parent::__construct($page, $target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns rendered widget.
|
||||
* @param renderable $widget intence with renderable interface
|
||||
* @return string
|
||||
*/
|
||||
public function render(renderable $widget) {
|
||||
$rendermethod = 'render_'.get_class($widget);
|
||||
if (method_exists($this, $rendermethod)) {
|
||||
return $this->$rendermethod($widget);
|
||||
}
|
||||
// pass to core renderer if method not found here
|
||||
$this->output->render($widget);
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic method used to pass calls otherwise meant for the standard renderer
|
||||
* to it to ensure we don't go causing unnessecary greif.
|
||||
@@ -377,7 +341,7 @@ class core_renderer extends renderer_base {
|
||||
$this->page->requires->js($jsurl->out(), true)->in_head();
|
||||
$jsurl = $this->page->theme->javascript_url(true);
|
||||
$this->page->requires->js($jsurl->out(), true);
|
||||
|
||||
|
||||
// Perform a browser environment check for the flash version. Should only run once per login session.
|
||||
if (isloggedin() && !empty($CFG->excludeoldflashclients) && empty($SESSION->flashversion)) {
|
||||
$this->page->requires->yui2_lib('event');
|
||||
@@ -392,7 +356,7 @@ class core_renderer extends renderer_base {
|
||||
|
||||
// List alternate versions.
|
||||
foreach ($this->page->alternateversions as $type => $alt) {
|
||||
$output .= $this->output_empty_tag('link', array('rel' => 'alternate',
|
||||
$output .= html_writer::empty_tag('link', array('rel' => 'alternate',
|
||||
'type' => $type, 'title' => $alt->title, 'href' => $alt->url));
|
||||
}
|
||||
|
||||
@@ -774,12 +738,12 @@ class core_renderer extends renderer_base {
|
||||
}
|
||||
$controlshtml = array();
|
||||
foreach ($controls as $control) {
|
||||
$controlshtml[] = $this->output_tag('a', array('class' => 'icon',
|
||||
$controlshtml[] = html_writer::tag('a', array('class' => 'icon',
|
||||
'title' => $control['caption'], 'href' => $control['url']),
|
||||
$this->output_empty_tag('img', array('src' => $this->pix_url($control['icon'])->out(false, array(), false),
|
||||
html_writer::empty_tag('img', array('src' => $this->pix_url($control['icon'])->out(false, array(), false),
|
||||
'alt' => $control['caption'])));
|
||||
}
|
||||
return $this->output_tag('div', array('class' => 'commands'), implode('', $controlshtml));
|
||||
return html_writer::tag('div', array('class' => 'commands'), implode('', $controlshtml));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -801,40 +765,40 @@ class core_renderer extends renderer_base {
|
||||
$output = '';
|
||||
$skipdest = '';
|
||||
} else {
|
||||
$output = $this->output_tag('a', array('href' => '#sb-' . $bc->skipid, 'class' => 'skip-block'),
|
||||
$output = html_writer::tag('a', array('href' => '#sb-' . $bc->skipid, 'class' => 'skip-block'),
|
||||
get_string('skipa', 'access', $skiptitle));
|
||||
$skipdest = $this->output_tag('span', array('id' => 'sb-' . $bc->skipid, 'class' => 'skip-block-to'), '');
|
||||
$skipdest = html_writer::tag('span', array('id' => 'sb-' . $bc->skipid, 'class' => 'skip-block-to'), '');
|
||||
}
|
||||
|
||||
$bc->attributes['id'] = $bc->id;
|
||||
$bc->attributes['class'] = $bc->get_classes_string();
|
||||
$output .= $this->output_start_tag('div', $bc->attributes);
|
||||
$output .= html_writer::start_tag('div', $bc->attributes);
|
||||
|
||||
$controlshtml = $this->block_controls($bc->controls);
|
||||
|
||||
$title = '';
|
||||
if ($bc->title) {
|
||||
$title = $this->output_tag('h2', null, $bc->title);
|
||||
$title = html_writer::tag('h2', null, $bc->title);
|
||||
}
|
||||
|
||||
if ($title || $controlshtml) {
|
||||
$output .= $this->output_tag('div', array('class' => 'header'),
|
||||
$this->output_tag('div', array('class' => 'title'),
|
||||
$output .= html_writer::tag('div', array('class' => 'header'),
|
||||
html_writer::tag('div', array('class' => 'title'),
|
||||
$title . $controlshtml));
|
||||
}
|
||||
|
||||
$output .= $this->output_start_tag('div', array('class' => 'content'));
|
||||
$output .= html_writer::start_tag('div', array('class' => 'content'));
|
||||
$output .= $bc->content;
|
||||
|
||||
if ($bc->footer) {
|
||||
$output .= $this->output_tag('div', array('class' => 'footer'), $bc->footer);
|
||||
$output .= html_writer::tag('div', array('class' => 'footer'), $bc->footer);
|
||||
}
|
||||
|
||||
$output .= $this->output_end_tag('div');
|
||||
$output .= $this->output_end_tag('div');
|
||||
$output .= html_writer::end_tag('div');
|
||||
$output .= html_writer::end_tag('div');
|
||||
|
||||
if ($bc->annotation) {
|
||||
$output .= $this->output_tag('div', array('class' => 'blockannotation'), $bc->annotation);
|
||||
$output .= html_writer::tag('div', array('class' => 'blockannotation'), $bc->annotation);
|
||||
}
|
||||
$output .= $skipdest;
|
||||
|
||||
@@ -870,16 +834,16 @@ class core_renderer extends renderer_base {
|
||||
$row = 0;
|
||||
$lis = array();
|
||||
foreach ($items as $key => $string) {
|
||||
$item = $this->output_start_tag('li', array('class' => 'r' . $row));
|
||||
$item = html_writer::start_tag('li', array('class' => 'r' . $row));
|
||||
if (!empty($icons[$key])) { //test if the content has an assigned icon
|
||||
$item .= $this->output_tag('div', array('class' => 'icon column c0'), $icons[$key]);
|
||||
$item .= html_writer::tag('div', array('class' => 'icon column c0'), $icons[$key]);
|
||||
}
|
||||
$item .= $this->output_tag('div', array('class' => 'column c1'), $string);
|
||||
$item .= $this->output_end_tag('li');
|
||||
$item .= html_writer::tag('div', array('class' => 'column c1'), $string);
|
||||
$item .= html_writer::end_tag('li');
|
||||
$lis[] = $item;
|
||||
$row = 1 - $row; // Flip even/odd.
|
||||
}
|
||||
return $this->output_tag('ul', array('class' => 'list'), implode("\n", $lis));
|
||||
return html_writer::tag('ul', array('class' => 'list'), implode("\n", $lis));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -909,8 +873,8 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML to be output.
|
||||
*/
|
||||
public function block_move_target($target) {
|
||||
return $this->output_tag('a', array('href' => $target->url, 'class' => 'blockmovetarget'),
|
||||
$this->output_tag('span', array('class' => 'accesshide'), $target->text));
|
||||
return html_writer::tag('a', array('href' => $target->url, 'class' => 'blockmovetarget'),
|
||||
html_writer::tag('span', array('class' => 'accesshide'), $target->text));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -950,7 +914,7 @@ class core_renderer extends renderer_base {
|
||||
$attributes['target'] = $CFG->framename;
|
||||
}
|
||||
|
||||
return $this->output_tag('a', $attributes, $link->text);
|
||||
return html_writer::tag('a', $attributes, $link->text);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -981,8 +945,8 @@ class core_renderer extends renderer_base {
|
||||
}
|
||||
|
||||
$output = $this->box_start('generalbox', 'notice');
|
||||
$output .= $this->output_tag('p', array(), $message);
|
||||
$output .= $this->output_tag('div', array('class' => 'buttons'), $this->button($continue) . $this->button($cancel));
|
||||
$output .= html_writer::tag('p', array(), $message);
|
||||
$output .= html_writer::tag('div', array('class' => 'buttons'), $this->button($continue) . $this->button($cancel));
|
||||
$output .= $this->box_end();
|
||||
return $output;
|
||||
}
|
||||
@@ -1033,12 +997,12 @@ class core_renderer extends renderer_base {
|
||||
'disabled' => $form->button->disabled,
|
||||
'id' => $form->button->id);
|
||||
|
||||
$buttonoutput = $this->output_empty_tag('input', $buttonattributes);
|
||||
$buttonoutput = html_writer::empty_tag('input', $buttonattributes);
|
||||
|
||||
// Removing the button so it doesn't get output again
|
||||
unset($form->button);
|
||||
|
||||
return $this->output_tag('div', array('class' => 'singlebutton'), $this->form($form, $buttonoutput));
|
||||
return html_writer::tag('div', array('class' => 'singlebutton'), $this->form($form, $buttonoutput));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1058,7 +1022,7 @@ class core_renderer extends renderer_base {
|
||||
if (empty($contents) && !empty($form->button)) {
|
||||
debugging("You probably want to use \$OUTPUT->single_button(\$form), please read that function's documentation", DEBUG_DEVELOPER);
|
||||
} else if (empty($contents)) {
|
||||
$contents = $this->output_empty_tag('input', array('type' => 'submit', 'value' => get_string('ok')));
|
||||
$contents = html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('ok')));
|
||||
} else if (!empty($form->button)) {
|
||||
$form->button->prepare($this, $this->page, $this->target);
|
||||
$this->prepare_event_handlers($form->button);
|
||||
@@ -1069,11 +1033,11 @@ class core_renderer extends renderer_base {
|
||||
'disabled' => $form->button->disabled,
|
||||
'id' => $form->button->id);
|
||||
|
||||
$buttonoutput = $this->output_empty_tag('input', $buttonattributes);
|
||||
$buttonoutput = html_writer::empty_tag('input', $buttonattributes);
|
||||
|
||||
// Hide the submit button if the button has a JS submit action
|
||||
if ($form->jssubmitaction) {
|
||||
$buttonoutput = $this->output_start_tag('div', array('id' => "noscript$form->id")) . $buttonoutput . $this->output_end_tag('div');
|
||||
$buttonoutput = html_writer::start_tag('div', array('id' => "noscript$form->id")) . $buttonoutput . html_writer::end_tag('div');
|
||||
$this->page->requires->js_function_call('hide_item', array("noscript$form->id"));
|
||||
}
|
||||
|
||||
@@ -1082,7 +1046,7 @@ class core_renderer extends renderer_base {
|
||||
$hiddenoutput = '';
|
||||
|
||||
foreach ($form->url->params() as $var => $val) {
|
||||
$hiddenoutput .= $this->output_empty_tag('input', array('type' => 'hidden', 'name' => $var, 'value' => $val));
|
||||
$hiddenoutput .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $var, 'value' => $val));
|
||||
}
|
||||
|
||||
$formattributes = array(
|
||||
@@ -1091,8 +1055,8 @@ class core_renderer extends renderer_base {
|
||||
'id' => $form->id,
|
||||
'class' => $form->get_classes_string());
|
||||
|
||||
$divoutput = $this->output_tag('div', array(), $hiddenoutput . $contents . $buttonoutput);
|
||||
$output = $this->output_tag('form', $formattributes, $divoutput);
|
||||
$divoutput = html_writer::tag('div', array(), $hiddenoutput . $contents . $buttonoutput);
|
||||
$output = html_writer::tag('form', $formattributes, $divoutput);
|
||||
|
||||
return $output;
|
||||
}
|
||||
@@ -1209,7 +1173,7 @@ class core_renderer extends renderer_base {
|
||||
$icon->link->text .= $icon->text;
|
||||
}
|
||||
|
||||
return $this->output_tag('span', array('class' => 'helplink'), $this->link($icon->link));
|
||||
return html_writer::tag('span', array('class' => 'helplink'), $this->link($icon->link));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1230,7 +1194,7 @@ class core_renderer extends renderer_base {
|
||||
$popupaction = new popup_action('click', $link->url, 'ratingscale');
|
||||
$link->add_action($popupaction);
|
||||
|
||||
return $this->output_tag('span', array('class' => 'helplink'), $this->link($link));
|
||||
return html_writer::tag('span', array('class' => 'helplink'), $this->link($link));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1306,27 +1270,26 @@ class core_renderer extends renderer_base {
|
||||
$attributes['width'] = $image->width;
|
||||
}
|
||||
|
||||
return $this->output_empty_tag('img', $attributes);
|
||||
return html_writer::empty_tag('img', $attributes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the specified user's avatar.
|
||||
*
|
||||
* This method can be used in two ways:
|
||||
* User avatar may be obtained in two ways:
|
||||
* <pre>
|
||||
* // Option 1: (shortcut for simple cases, preferred way)
|
||||
* // $user has come from the DB and has fields id, picture, imagealt, firstname and lastname
|
||||
* $OUTPUT->user_picture($user, array('popup'=>true));
|
||||
*
|
||||
* // Option 2: (not recommended)
|
||||
* $userpic = new user_picture();
|
||||
* // Option 2:
|
||||
* $userpic = new user_picture($user);
|
||||
* // Set properties of $userpic
|
||||
* $userpic->user = $user;
|
||||
* $userpic->popup = true;
|
||||
* $OUTPUT->user_picture($userpic);
|
||||
* $OUTPUT->render($userpic);
|
||||
* </pre>
|
||||
*
|
||||
* @param object|user_picture $user_or_userpicture Object with at least fields id, picture, imagealt, firstname, lastname
|
||||
* @param object Object with at least fields id, picture, imagealt, firstname, lastname
|
||||
* If any of these are missing, the database is queried. Avoid this
|
||||
* if at all possible, particularly for reports. It is very bad for performance.
|
||||
* @param array $options associative array with user picture options, used only if not a user_picture object,
|
||||
@@ -1336,34 +1299,90 @@ class core_renderer extends renderer_base {
|
||||
* - link=true (make image clickable - the link leads to user profile)
|
||||
* - popup=false (open in popup)
|
||||
* - alttext=true (add image alt attribute)
|
||||
* - etc.
|
||||
* - class = image class attribute (default 'userpicture')
|
||||
* @return string HTML fragment
|
||||
*/
|
||||
public function user_picture(stdClass $user_or_userpicture, array $options = null) {
|
||||
|
||||
if ($user_or_userpicture instanceof user_picture) {
|
||||
// we need a clone because prepare() should not be called repeatedly
|
||||
$userpic = clone($user_or_userpicture);
|
||||
} else {
|
||||
$userpic = new user_picture($user_or_userpicture, $options);
|
||||
}
|
||||
|
||||
$userpic->prepare($this, $this->page, $this->target);
|
||||
|
||||
// get the image html output fisrt, then wrap it in link if needed
|
||||
$output = $this->image($userpic);
|
||||
|
||||
if ($userpic->link) {
|
||||
$link = new html_link();
|
||||
$link->url = $userpic->url;
|
||||
$link->text = $output;
|
||||
if ($userpic->popup) {
|
||||
$link->add_action(new popup_action('click', $userpic->url));
|
||||
public function user_picture(stdClass $user, array $options = null) {
|
||||
$userpicture = new user_picture($user);
|
||||
foreach ((array)$options as $key=>$value) {
|
||||
if (array_key_exists($key, $userpicture)) {
|
||||
$userpicture->$key = $value;
|
||||
}
|
||||
$output = $this->link($link);
|
||||
}
|
||||
return $this->render($userpicture);
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal implementation of user image rendering.
|
||||
* @param user_picture $userpicture
|
||||
* @return string
|
||||
*/
|
||||
protected function render_user_picture(user_picture $userpicture) {
|
||||
global $CFG, $DB;
|
||||
|
||||
$user = $userpicture->user;
|
||||
|
||||
if ($userpicture->alttext) {
|
||||
if (!empty($user->imagealt)) {
|
||||
$alt = $user->imagealt;
|
||||
} else {
|
||||
$alt = get_string('pictureof', '', fullname($user));
|
||||
}
|
||||
} else {
|
||||
$alt = HTML_ATTR_EMPTY;
|
||||
}
|
||||
|
||||
return $output;
|
||||
if (empty($userpicture->size)) {
|
||||
$file = 'f2';
|
||||
$size = 35;
|
||||
} else if ($userpicture->size === true or $userpicture->size == 1) {
|
||||
$file = 'f1';
|
||||
$size = 100;
|
||||
} else if ($userpicture->size >= 50) {
|
||||
$file = 'f1';
|
||||
$size = $userpicture->size;
|
||||
} else {
|
||||
$file = 'f2';
|
||||
$size = $userpicture->size;
|
||||
}
|
||||
|
||||
$class = $userpicture->class;
|
||||
|
||||
if (!empty($user->picture)) {
|
||||
require_once($CFG->libdir.'/filelib.php');
|
||||
$src = new moodle_url(get_file_url($user->id.'/'.$file.'.jpg', null, 'user'));
|
||||
} else { // Print default user pictures (use theme version if available)
|
||||
$class .= ' defaultuserpic';
|
||||
$src = $this->pix_url('u/' . $file);
|
||||
}
|
||||
|
||||
$attributes = array('src'=>$src, 'alt'=>$alt, 'class'=>$class, 'width'=>$size, 'height'=>$size);
|
||||
|
||||
// get the image html output fisrt
|
||||
$output = html_writer::empty_tag('img', $attributes);;
|
||||
|
||||
// then wrap it in link if needed
|
||||
if (!$userpicture->link) {
|
||||
return $output;
|
||||
}
|
||||
|
||||
if (empty($userpicture->courseid)) {
|
||||
$courseid = $this->page->course->id;
|
||||
} else {
|
||||
$courseid = $userpicture->courseid;
|
||||
}
|
||||
|
||||
$url = new moodle_url($CFG->wwwroot.'/user/view.php', array('id' => $user->id, 'course' => $courseid));
|
||||
|
||||
$attributes = array('href'=>$url);
|
||||
|
||||
if ($userpicture->popup) {
|
||||
$id = html_writer::random_id('userpicture');
|
||||
$attributes['id'] = $id;
|
||||
$this->add_action_handler($id, new popup_action('click', $url));
|
||||
}
|
||||
|
||||
return html_writer::tag('a', $attributes, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1429,19 +1448,19 @@ class core_renderer extends renderer_base {
|
||||
$tag = 'ul';
|
||||
}
|
||||
|
||||
$output = $this->output_start_tag($tag, array('class' => $list->get_classes_string()));
|
||||
$output = html_writer::start_tag($tag, array('class' => $list->get_classes_string()));
|
||||
|
||||
foreach ($list->items as $listitem) {
|
||||
if ($listitem instanceof html_list) {
|
||||
$output .= $this->output_start_tag('li', array()) . "\n";
|
||||
$output .= html_writer::start_tag('li', array()) . "\n";
|
||||
$output .= $this->htmllist($listitem) . "\n";
|
||||
$output .= $this->output_end_tag('li') . "\n";
|
||||
$output .= html_writer::end_tag('li') . "\n";
|
||||
} else if ($listitem instanceof html_list_item) {
|
||||
$listitem->prepare($this, $this->page, $this->target);
|
||||
$this->prepare_event_handlers($listitem);
|
||||
$output .= $this->output_tag('li', array('class' => $listitem->get_classes_string()), $listitem->value) . "\n";
|
||||
$output .= html_writer::tag('li', array('class' => $listitem->get_classes_string()), $listitem->value) . "\n";
|
||||
} else {
|
||||
$output .= $this->output_tag('li', array(), $listitem) . "\n";
|
||||
$output .= html_writer::tag('li', array(), $listitem) . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1449,7 +1468,7 @@ class core_renderer extends renderer_base {
|
||||
$output = $list->text . $output;
|
||||
}
|
||||
|
||||
return $output . $this->output_end_tag($tag);
|
||||
return $output . html_writer::end_tag($tag);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1475,7 +1494,7 @@ class core_renderer extends renderer_base {
|
||||
'style' => $span->style,
|
||||
'title' => $span->title,
|
||||
'id' => $span->id);
|
||||
return $this->output_tag('span', $attributes, $span->contents);
|
||||
return html_writer::tag('span', $attributes, $span->contents);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1574,14 +1593,14 @@ class core_renderer extends renderer_base {
|
||||
}
|
||||
|
||||
if ($select->rendertype == 'menu') {
|
||||
$html .= $this->output_start_tag('select', $attributes) . "\n";
|
||||
$html .= html_writer::start_tag('select', $attributes) . "\n";
|
||||
|
||||
foreach ($select->options as $option) {
|
||||
// $OUTPUT->select_option detects if $option is an option or an optgroup
|
||||
$html .= $this->select_option($option);
|
||||
}
|
||||
|
||||
$html .= $this->output_end_tag('select') . "\n";
|
||||
$html .= html_writer::end_tag('select') . "\n";
|
||||
} else if ($select->rendertype == 'radio') {
|
||||
$currentradio = 0;
|
||||
foreach ($select->options as $option) {
|
||||
@@ -1632,14 +1651,14 @@ class core_renderer extends renderer_base {
|
||||
$option->label->for = $option->id;
|
||||
$this->prepare_event_handlers($option);
|
||||
|
||||
$output = $this->output_start_tag('span', array('class' => "radiogroup $name rb{$currentradio[$name]}")) . "\n";
|
||||
$output = html_writer::start_tag('span', array('class' => "radiogroup $name rb{$currentradio[$name]}")) . "\n";
|
||||
$output .= $this->label($option->label);
|
||||
|
||||
if ($option->selected == 'selected') {
|
||||
$option->selected = 'checked';
|
||||
}
|
||||
|
||||
$output .= $this->output_empty_tag('input', array(
|
||||
$output .= html_writer::empty_tag('input', array(
|
||||
'type' => 'radio',
|
||||
'value' => $option->value,
|
||||
'name' => $name,
|
||||
@@ -1648,7 +1667,7 @@ class core_renderer extends renderer_base {
|
||||
'class' => $option->get_classes_string(),
|
||||
'checked' => $option->selected));
|
||||
|
||||
$output .= $this->output_end_tag('span');
|
||||
$output .= html_writer::end_tag('span');
|
||||
$currentradio[$name]++;
|
||||
return $output;
|
||||
}
|
||||
@@ -1672,7 +1691,7 @@ class core_renderer extends renderer_base {
|
||||
$option->label->for = $option->id;
|
||||
$this->prepare_event_handlers($option);
|
||||
|
||||
$output = $this->output_start_tag('span', array('class' => "checkbox $name")) . "\n";
|
||||
$output = html_writer::start_tag('span', array('class' => "checkbox $name")) . "\n";
|
||||
|
||||
if ($option->selected) {
|
||||
$option->selected = 'checked';
|
||||
@@ -1680,7 +1699,7 @@ class core_renderer extends renderer_base {
|
||||
$option->selected = '';
|
||||
}
|
||||
|
||||
$output .= $this->output_empty_tag('input', array(
|
||||
$output .= html_writer::empty_tag('input', array(
|
||||
'type' => 'checkbox',
|
||||
'value' => $option->value,
|
||||
'name' => $name,
|
||||
@@ -1691,7 +1710,7 @@ class core_renderer extends renderer_base {
|
||||
'checked' => $option->selected));
|
||||
$output .= $this->label($option->label);
|
||||
|
||||
$output .= $this->output_end_tag('span');
|
||||
$output .= html_writer::end_tag('span');
|
||||
|
||||
return $output;
|
||||
}
|
||||
@@ -1709,17 +1728,17 @@ class core_renderer extends renderer_base {
|
||||
$this->prepare_event_handlers($option);
|
||||
|
||||
if ($option instanceof html_select_option) {
|
||||
return $this->output_tag('option', array(
|
||||
return html_writer::tag('option', array(
|
||||
'value' => $option->value,
|
||||
'disabled' => $option->disabled,
|
||||
'class' => $option->get_classes_string(),
|
||||
'selected' => $option->selected), $option->text);
|
||||
} else if ($option instanceof html_select_optgroup) {
|
||||
$output = $this->output_start_tag('optgroup', array('label' => $option->text, 'class' => $option->get_classes_string()));
|
||||
$output = html_writer::start_tag('optgroup', array('label' => $option->text, 'class' => $option->get_classes_string()));
|
||||
foreach ($option->options as $selectoption) {
|
||||
$output .= $this->select_option($selectoption);
|
||||
}
|
||||
$output .= $this->output_end_tag('optgroup');
|
||||
$output .= html_writer::end_tag('optgroup');
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
@@ -1731,7 +1750,7 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML for the <input>
|
||||
*/
|
||||
public function textfield($field) {
|
||||
return $this->output_tag('span', array('class' => "textfield $field->name"), $this->field($field));
|
||||
return html_writer::tag('span', array('class' => "textfield $field->name"), $this->field($field));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1748,7 +1767,7 @@ class core_renderer extends renderer_base {
|
||||
if (!empty($field->label->text)) {
|
||||
$label = $this->label($field->label);
|
||||
}
|
||||
return $label . $this->output_empty_tag('input', array(
|
||||
return $label . html_writer::empty_tag('input', array(
|
||||
'type' => $field->type,
|
||||
'name' => $field->name,
|
||||
'id' => $field->id,
|
||||
@@ -1769,7 +1788,7 @@ class core_renderer extends renderer_base {
|
||||
$label = clone($label);
|
||||
$label->prepare($this, $this->page, $this->target);
|
||||
$this->prepare_event_handlers($label);
|
||||
return $this->output_tag('label', array('for' => $label->for, 'class' => $label->get_classes_string()), $label->text);
|
||||
return html_writer::tag('label', array('for' => $label->for, 'class' => $label->get_classes_string()), $label->text);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1782,7 +1801,7 @@ class core_renderer extends renderer_base {
|
||||
if (empty($message)) {
|
||||
return '';
|
||||
}
|
||||
return $this->output_tag('span', array('class' => 'error'), $message);
|
||||
return html_writer::tag('span', array('class' => 'error'), $message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1867,7 +1886,7 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML to output.
|
||||
*/
|
||||
public function notification($message, $classes = 'notifyproblem') {
|
||||
return $this->output_tag('div', array('class' =>
|
||||
return html_writer::tag('div', array('class' =>
|
||||
renderer_base::prepare_classes($classes)), clean_text($message));
|
||||
}
|
||||
|
||||
@@ -1887,7 +1906,7 @@ class core_renderer extends renderer_base {
|
||||
$form->button->text = get_string('continue');
|
||||
$form->method = 'get';
|
||||
|
||||
return $this->output_tag('div', array('class' => 'continuebutton') , $this->button($form));
|
||||
return html_writer::tag('div', array('class' => 'continuebutton') , $this->button($form));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1929,7 +1948,7 @@ class core_renderer extends renderer_base {
|
||||
}
|
||||
}
|
||||
|
||||
return $this->output_tag('div', array('class' => 'paging'), $output);
|
||||
return html_writer::tag('div', array('class' => 'paging'), $output);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1948,14 +1967,14 @@ class core_renderer extends renderer_base {
|
||||
'cellpadding' => $table->cellpadding,
|
||||
'cellspacing' => $table->cellspacing,
|
||||
'class' => $table->get_classes_string());
|
||||
$output = $this->output_start_tag('table', $attributes) . "\n";
|
||||
$output = html_writer::start_tag('table', $attributes) . "\n";
|
||||
|
||||
$countcols = 0;
|
||||
|
||||
if (!empty($table->head)) {
|
||||
$countcols = count($table->head);
|
||||
$output .= $this->output_start_tag('thead', $table->headclasses) . "\n";
|
||||
$output .= $this->output_start_tag('tr', array()) . "\n";
|
||||
$output .= html_writer::start_tag('thead', $table->headclasses) . "\n";
|
||||
$output .= html_writer::start_tag('tr', array()) . "\n";
|
||||
$keys = array_keys($table->head);
|
||||
$lastkey = end($keys);
|
||||
|
||||
@@ -1988,7 +2007,7 @@ class core_renderer extends renderer_base {
|
||||
}
|
||||
if ($table->rotateheaders) {
|
||||
// we need to wrap the heading content
|
||||
$heading->text = $this->output_tag('span', null, $heading->text);
|
||||
$heading->text = html_writer::tag('span', null, $heading->text);
|
||||
}
|
||||
|
||||
$attributes = array(
|
||||
@@ -2001,22 +2020,22 @@ class core_renderer extends renderer_base {
|
||||
if ($heading->header === true) {
|
||||
$tagtype = 'th';
|
||||
}
|
||||
$output .= $this->output_tag($tagtype, $attributes, $heading->text) . "\n";
|
||||
$output .= html_writer::tag($tagtype, $attributes, $heading->text) . "\n";
|
||||
}
|
||||
$output .= $this->output_end_tag('tr') . "\n";
|
||||
$output .= $this->output_end_tag('thead') . "\n";
|
||||
$output .= html_writer::end_tag('tr') . "\n";
|
||||
$output .= html_writer::end_tag('thead') . "\n";
|
||||
}
|
||||
|
||||
if (!empty($table->data)) {
|
||||
$oddeven = 1;
|
||||
$keys = array_keys($table->data);
|
||||
$lastrowkey = end($keys);
|
||||
$output .= $this->output_start_tag('tbody', array('class' => renderer_base::prepare_classes($table->bodyclasses))) . "\n";
|
||||
$output .= html_writer::start_tag('tbody', array('class' => renderer_base::prepare_classes($table->bodyclasses))) . "\n";
|
||||
|
||||
foreach ($table->data as $key => $row) {
|
||||
if (($row === 'hr') && ($countcols)) {
|
||||
$output .= $this->output_tag('td', array('colspan' => $countcols),
|
||||
$this->output_tag('div', array('class' => 'tabledivider'), '')) . "\n";
|
||||
$output .= html_writer::tag('td', array('colspan' => $countcols),
|
||||
html_writer::tag('div', array('class' => 'tabledivider'), '')) . "\n";
|
||||
} else {
|
||||
// Convert array rows to html_table_rows and cell strings to html_table_cell objects
|
||||
if (!($row instanceof html_table_row)) {
|
||||
@@ -2043,7 +2062,7 @@ class core_renderer extends renderer_base {
|
||||
$row->add_class('lastrow');
|
||||
}
|
||||
|
||||
$output .= $this->output_start_tag('tr', array('class' => $row->get_classes_string(), 'style' => $row->style, 'id' => $row->id)) . "\n";
|
||||
$output .= html_writer::start_tag('tr', array('class' => $row->get_classes_string(), 'style' => $row->style, 'id' => $row->id)) . "\n";
|
||||
$keys2 = array_keys($row->cells);
|
||||
$lastkey = end($keys2);
|
||||
|
||||
@@ -2081,14 +2100,14 @@ class core_renderer extends renderer_base {
|
||||
if ($cell->header === true) {
|
||||
$tagtype = 'th';
|
||||
}
|
||||
$output .= $this->output_tag($tagtype, $tdattributes, $cell->text) . "\n";
|
||||
$output .= html_writer::tag($tagtype, $tdattributes, $cell->text) . "\n";
|
||||
}
|
||||
}
|
||||
$output .= $this->output_end_tag('tr') . "\n";
|
||||
$output .= html_writer::end_tag('tr') . "\n";
|
||||
}
|
||||
$output .= $this->output_end_tag('tbody') . "\n";
|
||||
$output .= html_writer::end_tag('tbody') . "\n";
|
||||
}
|
||||
$output .= $this->output_end_tag('table') . "\n";
|
||||
$output .= html_writer::end_tag('table') . "\n";
|
||||
|
||||
if ($table->rotateheaders && can_use_rotated_text()) {
|
||||
$this->page->requires->yui2_lib('event');
|
||||
@@ -2104,7 +2123,7 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML to output.
|
||||
*/
|
||||
public function skip_link_target($id = '') {
|
||||
return $this->output_tag('span', array('id' => $id), '');
|
||||
return html_writer::tag('span', array('id' => $id), '');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2120,7 +2139,7 @@ class core_renderer extends renderer_base {
|
||||
if ($level < 1 or $level > 6) {
|
||||
throw new coding_exception('Heading level must be an integer between 1 and 6.');
|
||||
}
|
||||
return $this->output_tag('h' . $level,
|
||||
return html_writer::tag('h' . $level,
|
||||
array('id' => $id, 'class' => renderer_base::prepare_classes($classes)), $text);
|
||||
}
|
||||
|
||||
@@ -2142,8 +2161,8 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML to output.
|
||||
*/
|
||||
public function box_start($classes = 'generalbox', $id = '') {
|
||||
$this->opencontainers->push('box', $this->output_end_tag('div'));
|
||||
return $this->output_start_tag('div', array('id' => $id,
|
||||
$this->opencontainers->push('box', html_writer::end_tag('div'));
|
||||
return html_writer::start_tag('div', array('id' => $id,
|
||||
'class' => 'box ' . renderer_base::prepare_classes($classes)));
|
||||
}
|
||||
|
||||
@@ -2173,8 +2192,8 @@ class core_renderer extends renderer_base {
|
||||
* @return string the HTML to output.
|
||||
*/
|
||||
public function container_start($classes = '', $id = '') {
|
||||
$this->opencontainers->push('container', $this->output_end_tag('div'));
|
||||
return $this->output_start_tag('div', array('id' => $id,
|
||||
$this->opencontainers->push('container', html_writer::end_tag('div'));
|
||||
return html_writer::start_tag('div', array('id' => $id,
|
||||
'class' => renderer_base::prepare_classes($classes)));
|
||||
}
|
||||
|
||||
@@ -2238,14 +2257,14 @@ class core_renderer extends renderer_base {
|
||||
if (!empty($item->id)) {
|
||||
$divattr['id'] = $item->id;
|
||||
}
|
||||
$content = $this->output_tag('p', $divattr, $content) . $this->tree_block_contents($item->children);
|
||||
$content = html_writer::tag('p', $divattr, $content) . $this->tree_block_contents($item->children);
|
||||
if (!empty($item->preceedwithhr) && $item->preceedwithhr===true) {
|
||||
$content = $this->output_tag('hr', array(), null).$content;
|
||||
$content = html_writer::tag('hr', array(), null).$content;
|
||||
}
|
||||
$content = $this->output_tag('li', $liattr, $content);
|
||||
$content = html_writer::tag('li', $liattr, $content);
|
||||
$lis[] = $content;
|
||||
}
|
||||
return $this->output_tag('ul', $attrs, implode("\n", $lis));
|
||||
return html_writer::tag('ul', $attrs, implode("\n", $lis));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -46,18 +46,18 @@ class mod_forum_renderer extends plugin_renderer_base {
|
||||
$formattributes['id'] = 'subscriberform';
|
||||
$formattributes['action'] = '';
|
||||
$formattributes['method'] = 'post';
|
||||
$output .= $this->output_start_tag('form', $formattributes);
|
||||
$output .= $this->output_empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
|
||||
$output .= html_writer::start_tag('form', $formattributes);
|
||||
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
|
||||
|
||||
$existingcell = new html_table_cell();
|
||||
$existingcell->text = $existinguc->display(true);
|
||||
$existingcell->set_classes(array('existing'));
|
||||
$actioncell = new html_table_cell();
|
||||
$actioncell->text = $this->output_start_tag('div', array());
|
||||
$actioncell->text .= $this->output_empty_tag('input', array('type'=>'submit', 'name'=>'subscribe', 'value'=>$this->page->theme->larrow.' '.get_string('add'), 'class'=>'actionbutton'));
|
||||
$actioncell->text .= $this->output_empty_tag('br', array());
|
||||
$actioncell->text .= $this->output_empty_tag('input', array('type'=>'submit', 'name'=>'unsubscribe', 'value'=>$this->page->theme->rarrow.' '.get_string('remove'), 'class'=>'actionbutton'));
|
||||
$actioncell->text .= $this->output_end_tag('div', array());
|
||||
$actioncell->text = html_writer::start_tag('div', array());
|
||||
$actioncell->text .= html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'subscribe', 'value'=>$this->page->theme->larrow.' '.get_string('add'), 'class'=>'actionbutton'));
|
||||
$actioncell->text .= html_writer::empty_tag('br', array());
|
||||
$actioncell->text .= html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'unsubscribe', 'value'=>$this->page->theme->rarrow.' '.get_string('remove'), 'class'=>'actionbutton'));
|
||||
$actioncell->text .= html_writer::end_tag('div', array());
|
||||
$actioncell->set_classes(array('actions'));
|
||||
$potentialcell = new html_table_cell();
|
||||
$potentialcell->text = $potentialuc->display(true);
|
||||
@@ -68,7 +68,7 @@ class mod_forum_renderer extends plugin_renderer_base {
|
||||
$table->data = array(html_table_row::make(array($existingcell, $actioncell, $potentialcell)));
|
||||
$output .= $this->output->table($table);
|
||||
|
||||
$output .= $this->output_end_tag('form');
|
||||
$output .= html_writer::end_tag('form');
|
||||
return $output;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class mod_forum_renderer extends plugin_renderer_base {
|
||||
*/
|
||||
public function subscribed_users(user_selector_base $existingusers) {
|
||||
$output = $this->output->box_start('subscriberdiv boxaligncenter');
|
||||
$output .= $this->output_tag('p', array(), get_string('forcessubscribe', 'forum'));
|
||||
$output .= html_writer::tag('p', array(), get_string('forcessubscribe', 'forum'));
|
||||
$output .= $existingusers->display(true);
|
||||
$output .= $this->output->box_end();
|
||||
return $output;
|
||||
|
||||
@@ -570,13 +570,13 @@ class mod_lesson_renderer extends plugin_renderer_base {
|
||||
$attributes = array();
|
||||
$attributes['class'] = 'slideshow';
|
||||
$attributes['style'] = 'background-color:'.$lesson->bgcolor.';height:'.$lesson->height.'px;width:'.$lesson->width.'px;';
|
||||
$output = $this->output_start_tag('div', $attributes);
|
||||
$output = html_writer::start_tag('div', $attributes);
|
||||
}
|
||||
/**
|
||||
* Returns HTML to show the end of a slideshow
|
||||
*/
|
||||
public function slideshow_end() {
|
||||
$output = $this->output_end_tag('div');
|
||||
$output = html_writer::end_tag('div');
|
||||
}
|
||||
/**
|
||||
* Returns a P tag containing contents
|
||||
@@ -588,7 +588,7 @@ class mod_lesson_renderer extends plugin_renderer_base {
|
||||
if ($class !== '') {
|
||||
$attributes['class'] = $class;
|
||||
}
|
||||
$output = $this->output_tag('p', $attributes, $contents);
|
||||
$output = html_writer::tag('p', $attributes, $contents);
|
||||
}
|
||||
/**
|
||||
* Returns HTML to display add_highscores_form
|
||||
|
||||
@@ -129,9 +129,9 @@ class workshopallocation_manual_renderer extends plugin_renderer_base {
|
||||
$o .= $this->output->select($select);
|
||||
}
|
||||
}
|
||||
$o .= $this->output->output_start_tag('ul', array());
|
||||
$o .= html_writer::start_tag('ul', array());
|
||||
foreach ($allocation->reviewedby as $reviewerid => $assessmentid) {
|
||||
$o .= $this->output->output_start_tag('li', array());
|
||||
$o .= html_writer::start_tag('li', array());
|
||||
$o .= $this->output->user_picture($userinfo[$reviewerid], array('courseid' => $this->page->course->id, 'size' => 16));
|
||||
$o .= fullname($userinfo[$reviewerid]);
|
||||
|
||||
@@ -139,9 +139,9 @@ class workshopallocation_manual_renderer extends plugin_renderer_base {
|
||||
$handler = new moodle_url($this->page->url, array('mode' => 'del', 'what' => $assessmentid, 'sesskey' => sesskey()));
|
||||
$o .= $this->remove_allocation_icon($handler);
|
||||
|
||||
$o .= $this->output->output_end_tag('li');
|
||||
$o .= html_writer::end_tag('li');
|
||||
}
|
||||
$o .= $this->output->output_end_tag('ul');
|
||||
$o .= html_writer::end_tag('ul');
|
||||
return $o;
|
||||
}
|
||||
|
||||
@@ -173,9 +173,9 @@ class workshopallocation_manual_renderer extends plugin_renderer_base {
|
||||
} else {
|
||||
$o .= $this->output->container(get_string('nothingtoreview', 'workshop'), 'info');
|
||||
}
|
||||
$o .= $this->output->output_start_tag('ul', array());
|
||||
$o .= html_writer::start_tag('ul', array());
|
||||
foreach ($allocation->reviewerof as $authorid => $assessmentid) {
|
||||
$o .= $this->output->output_start_tag('li', array());
|
||||
$o .= html_writer::start_tag('li', array());
|
||||
$o .= $this->output->user_picture($userinfo[$authorid], array('courseid' => $this->page->course->id, 'size' => 16));
|
||||
$o .= fullname($userinfo[$authorid]);
|
||||
|
||||
@@ -183,9 +183,9 @@ class workshopallocation_manual_renderer extends plugin_renderer_base {
|
||||
$handler = new moodle_url($this->page->url, array('mode' => 'del', 'what' => $assessmentid, 'sesskey' => sesskey()));
|
||||
$o .= $this->remove_allocation_icon($handler);
|
||||
|
||||
$o .= $this->output->output_end_tag('li');
|
||||
$o .= html_writer::end_tag('li');
|
||||
}
|
||||
$o .= $this->output->output_end_tag('ul');
|
||||
$o .= html_writer::end_tag('ul');
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
||||
+15
-15
@@ -47,8 +47,8 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
}
|
||||
$sty = empty($message->sty) ? 'info' : $message->sty;
|
||||
|
||||
$o = $this->output->output_tag('span', array(), $message->text);
|
||||
$closer = $this->output->output_tag('a', array('href' => $this->page->url->out()),
|
||||
$o = html_writer::tag('span', array(), $message->text);
|
||||
$closer = html_writer::tag('a', array('href' => $this->page->url->out()),
|
||||
get_string('messageclose', 'workshop'));
|
||||
$o .= $this->output->container($closer, 'status-message-closer');
|
||||
if (isset($message->extra)) {
|
||||
@@ -76,7 +76,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
}
|
||||
$o = $this->status_message($msg);
|
||||
if (is_array($result)) {
|
||||
$o .= $this->output->output_start_tag('ul', array('class' => 'allocation-init-results'));
|
||||
$o .= html_writer::start_tag('ul', array('class' => 'allocation-init-results'));
|
||||
foreach ($result as $message) {
|
||||
$parts = explode('::', $message);
|
||||
$text = array_pop($parts);
|
||||
@@ -85,9 +85,9 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
// do not display allocation debugging messages
|
||||
continue;
|
||||
}
|
||||
$o .= $this->output->output_tag('li', array('class' => $class), $text) . "\n";
|
||||
$o .= html_writer::tag('li', array('class' => $class), $text) . "\n";
|
||||
}
|
||||
$o .= $this->output->output_end_tag('ul');
|
||||
$o .= html_writer::end_tag('ul');
|
||||
$o .= $this->output->continue_button($this->page->url->out());
|
||||
}
|
||||
return $o;
|
||||
@@ -250,7 +250,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
|
||||
if ($format == "html") {
|
||||
// this is the same as the code in the last else-branch
|
||||
$outputfiles .= $this->output->output_tag('li', array('class' => $type), $linkhtml);
|
||||
$outputfiles .= html_writer::tag('li', array('class' => $type), $linkhtml);
|
||||
|
||||
} else if ($format == "text") {
|
||||
$outputfiles .= $linktxt . "\n";
|
||||
@@ -265,7 +265,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
$outputimgs .= $this->output->container($preview);
|
||||
} else {
|
||||
// this is the same as the code in html if-branch
|
||||
$outputfiles .= $this->output->output_tag('li', array('class' => $type), $linkhtml);
|
||||
$outputfiles .= html_writer::tag('li', array('class' => $type), $linkhtml);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -274,7 +274,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
$outputimgs = $this->output->container($outputimgs, 'images');
|
||||
}
|
||||
if ($format !== "text") {
|
||||
$outputfiles = $this->output->output_tag('ul', array('class' => 'files'), $outputfiles);
|
||||
$outputfiles = html_writer::tag('ul', array('class' => 'files'), $outputfiles);
|
||||
}
|
||||
return $this->output->container($outputimgs . $outputfiles, 'attachments');
|
||||
}
|
||||
@@ -381,7 +381,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
$row = new html_table_row();
|
||||
$row->set_classes('phasetasks');
|
||||
foreach ($plan as $phasecode => $phase) {
|
||||
$title = $this->output->output_tag('span', array(), $phase->title);
|
||||
$title = html_writer::tag('span', array(), $phase->title);
|
||||
$actions = '';
|
||||
foreach ($phase->actions as $action) {
|
||||
switch ($action->type) {
|
||||
@@ -438,10 +438,10 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
}
|
||||
$title = $this->output->container($title, 'title');
|
||||
$details = $this->output->container($task->details, 'details');
|
||||
$out .= $this->output->output_tag('li', array('class' => $classes), $title . $details);
|
||||
$out .= html_writer::tag('li', array('class' => $classes), $title . $details);
|
||||
}
|
||||
if ($out) {
|
||||
$out = $this->output->output_tag('ul', array('class' => 'tasks'), $out);
|
||||
$out = html_writer::tag('ul', array('class' => 'tasks'), $out);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
@@ -607,7 +607,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
protected function sortable_heading($text, $sortid=null, $sortby=null, $sorthow=null) {
|
||||
global $PAGE;
|
||||
|
||||
$out = $this->output->output_tag('span', array('class'=>'text'), $text);
|
||||
$out = html_writer::tag('span', array('class'=>'text'), $text);
|
||||
|
||||
if (!is_null($sortid)) {
|
||||
if ($sortby !== $sortid or $sorthow !== 'ASC') {
|
||||
@@ -632,7 +632,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
protected function grading_report_participant(stdclass $participant, array $userinfo) {
|
||||
$userid = $participant->userid;
|
||||
$out = $this->output->user_picture($userinfo[$userid], array('courseid' => $this->page->course->id, 'size' => 35));
|
||||
$out .= $this->output->output_tag('span', array(), fullname($userinfo[$userid]));
|
||||
$out .= html_writer::tag('span', array(), fullname($userinfo[$userid]));
|
||||
|
||||
return $out;
|
||||
}
|
||||
@@ -700,8 +700,8 @@ class mod_workshop_renderer extends plugin_renderer_base {
|
||||
if ($shownames) {
|
||||
$userid = $assessment->userid;
|
||||
$name = $this->output->user_picture($userinfo[$userid], array('courseid' => $this->page->course->id, 'size' => 16));
|
||||
$name .= $this->output->output_tag('span', array('class' => 'fullname'), fullname($userinfo[$userid]));
|
||||
$name = $separator . $this->output->output_tag('span', array('class' => 'user'), $name);
|
||||
$name .= html_writer::tag('span', array('class' => 'fullname'), fullname($userinfo[$userid]));
|
||||
$name = $separator . html_writer::tag('span', array('class' => 'user'), $name);
|
||||
} else {
|
||||
$name = '';
|
||||
}
|
||||
|
||||
+78
-78
@@ -47,28 +47,28 @@ class core_webservice_renderer extends plugin_renderer_base {
|
||||
/// retrieve the description of the description object
|
||||
$paramdesc = "";
|
||||
if (!empty($params->desc)) {
|
||||
$paramdesc .= $this->output_start_tag('span', array('style' => "color:#2A33A6"));
|
||||
$paramdesc .= $this->output_start_tag('i', array());
|
||||
$paramdesc .= html_writer::start_tag('span', array('style' => "color:#2A33A6"));
|
||||
$paramdesc .= html_writer::start_tag('i', array());
|
||||
$paramdesc .= "//".$params->desc;
|
||||
$paramdesc .= $this->output_end_tag('i');
|
||||
$paramdesc .= $this->output_end_tag('span');
|
||||
$paramdesc .= $this->output_empty_tag('br', array());
|
||||
$paramdesc .= html_writer::end_tag('i');
|
||||
$paramdesc .= html_writer::end_tag('span');
|
||||
$paramdesc .= html_writer::empty_tag('br', array());
|
||||
}
|
||||
|
||||
/// description object is a list
|
||||
if ($params instanceof external_multiple_structure) {
|
||||
return $paramdesc . "list of ( " . $this->output_empty_tag('br', array()) . $this->detailed_description_html($params->content) . ")";
|
||||
return $paramdesc . "list of ( " . html_writer::empty_tag('br', array()) . $this->detailed_description_html($params->content) . ")";
|
||||
} else if ($params instanceof external_single_structure) {
|
||||
/// description object is an object
|
||||
$singlestructuredesc = $paramdesc."object {". $this->output_empty_tag('br', array());
|
||||
$singlestructuredesc = $paramdesc."object {". html_writer::empty_tag('br', array());
|
||||
foreach ($params->keys as $attributname => $attribut) {
|
||||
$singlestructuredesc .= $this->output_start_tag('b', array());
|
||||
$singlestructuredesc .= html_writer::start_tag('b', array());
|
||||
$singlestructuredesc .= $attributname;
|
||||
$singlestructuredesc .= $this->output_end_tag('b');
|
||||
$singlestructuredesc .= html_writer::end_tag('b');
|
||||
$singlestructuredesc .= " ".$this->detailed_description_html($params->keys[$attributname]);
|
||||
}
|
||||
$singlestructuredesc .= "} ";
|
||||
$singlestructuredesc .= $this->output_empty_tag('br', array());
|
||||
$singlestructuredesc .= html_writer::empty_tag('br', array());
|
||||
return $singlestructuredesc;
|
||||
} else {
|
||||
/// description object is a primary type (string, integer)
|
||||
@@ -192,17 +192,17 @@ EOF;
|
||||
* @return <type>
|
||||
*/
|
||||
public function colored_box_with_pre_tag($title, $content, $rgb = 'FEEBE5') {
|
||||
$coloredbox = $this->output_start_tag('ins', array()); //TODO: this tag removes xhtml strict error but cause warning
|
||||
$coloredbox .= $this->output_start_tag('div', array('style' => "border:solid 1px #DEDEDE;background:#".$rgb.";color:#222222;padding:4px;"));
|
||||
$coloredbox .= $this->output_start_tag('pre', array());
|
||||
$coloredbox .= $this->output_start_tag('b', array());
|
||||
$coloredbox = html_writer::start_tag('ins', array()); //TODO: this tag removes xhtml strict error but cause warning
|
||||
$coloredbox .= html_writer::start_tag('div', array('style' => "border:solid 1px #DEDEDE;background:#".$rgb.";color:#222222;padding:4px;"));
|
||||
$coloredbox .= html_writer::start_tag('pre', array());
|
||||
$coloredbox .= html_writer::start_tag('b', array());
|
||||
$coloredbox .= $title;
|
||||
$coloredbox .= $this->output_end_tag('b', array());
|
||||
$coloredbox .= $this->output_empty_tag('br', array());
|
||||
$coloredbox .= html_writer::end_tag('b', array());
|
||||
$coloredbox .= html_writer::empty_tag('br', array());
|
||||
$coloredbox .= "\n".$content."\n";
|
||||
$coloredbox .= $this->output_end_tag('pre', array());
|
||||
$coloredbox .= $this->output_end_tag('div', array());
|
||||
$coloredbox .= $this->output_end_tag('ins', array());
|
||||
$coloredbox .= html_writer::end_tag('pre', array());
|
||||
$coloredbox .= html_writer::end_tag('div', array());
|
||||
$coloredbox .= html_writer::end_tag('ins', array());
|
||||
return $coloredbox;
|
||||
}
|
||||
|
||||
@@ -267,12 +267,12 @@ EOF;
|
||||
|
||||
EOF;
|
||||
/// Some general information
|
||||
$documentationhtml = $this->output_start_tag('table', array('style' => "margin-left:auto; margin-right:auto;"));
|
||||
$documentationhtml .= $this->output_start_tag('tr', array());
|
||||
$documentationhtml .= $this->output_start_tag('td', array());
|
||||
$documentationhtml = html_writer::start_tag('table', array('style' => "margin-left:auto; margin-right:auto;"));
|
||||
$documentationhtml .= html_writer::start_tag('tr', array());
|
||||
$documentationhtml .= html_writer::start_tag('td', array());
|
||||
$documentationhtml .= get_string('wsdocumentationintro', 'webservice', $username);
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
|
||||
|
||||
/// Print button
|
||||
@@ -280,7 +280,7 @@ EOF;
|
||||
$parameters = array ('wsusername' => $username, 'wspassword' => $password, 'print' => true);
|
||||
$url = new moodle_url($CFG->wwwroot.'/webservice/wsdoc.php', $parameters); // Required
|
||||
$documentationhtml .= $OUTPUT->single_button($url, get_string('print','webservice'));
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
|
||||
|
||||
/// each functions will be displayed into a collapsible region (opened if printableformat = true)
|
||||
@@ -289,40 +289,40 @@ EOF;
|
||||
if (empty($printableformat)) {
|
||||
$documentationhtml .= print_collapsible_region_start('',
|
||||
'aera_'.$functionname,
|
||||
$this->output_start_tag('strong', array()).$functionname.$this->output_end_tag('strong'),
|
||||
html_writer::start_tag('strong', array()).$functionname.html_writer::end_tag('strong'),
|
||||
false,
|
||||
!$printableformat,
|
||||
true);
|
||||
} else {
|
||||
$documentationhtml .= $this->output_tag('strong', array(), $functionname);
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::tag('strong', array(), $functionname);
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
}
|
||||
|
||||
/// function global description
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_start_tag('div', array('style' => 'border:solid 1px #DEDEDE;background:#E2E0E0;color:#222222;padding:4px;'));
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::start_tag('div', array('style' => 'border:solid 1px #DEDEDE;background:#E2E0E0;color:#222222;padding:4px;'));
|
||||
$documentationhtml .= $description->description;
|
||||
$documentationhtml .= $this->output_end_tag('div');
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::end_tag('div');
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
|
||||
/// function arguments documentation
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= get_string('arguments', 'webservice');
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
foreach ($description->parameters_desc->keys as $paramname => $paramdesc) {
|
||||
/// a argument documentation
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'font-size:80%'));
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'font-size:80%'));
|
||||
$required = $paramdesc->required?get_string('required', 'webservice'):get_string('optional', 'webservice');
|
||||
$documentationhtml .= $this->output_start_tag('b', array());
|
||||
$documentationhtml .= html_writer::start_tag('b', array());
|
||||
$documentationhtml .= $paramname;
|
||||
$documentationhtml .= $this->output_end_tag('b');
|
||||
$documentationhtml .= html_writer::end_tag('b');
|
||||
$documentationhtml .= " (" .$required. ")"; // argument is required or optional ?
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= " ".$paramdesc->desc; // argument description
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
///general structure of the argument
|
||||
$documentationhtml .= $this->colored_box_with_pre_tag(get_string('generalstructure', 'webservice'),
|
||||
$this->detailed_description_html($paramdesc),
|
||||
@@ -339,23 +339,23 @@ EOF;
|
||||
htmlentities($this->rest_param_description_html($paramdesc,$paramname)),
|
||||
'FEEBE5');
|
||||
}
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
}
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
|
||||
|
||||
/// function response documentation
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= get_string('response', 'webservice');
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
/// function response description
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'font-size:80%'));
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'font-size:80%'));
|
||||
if (!empty($description->returns_desc->desc)) {
|
||||
$documentationhtml .= $description->returns_desc->desc;
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
}
|
||||
if (!empty($description->returns_desc)) {
|
||||
///general structure of the response
|
||||
@@ -378,18 +378,18 @@ EOF;
|
||||
'FEEBE5');
|
||||
}
|
||||
}
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
|
||||
/// function errors documentation for REST protocol
|
||||
if (!empty($activatedprotocol['rest'])) {
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'color:#EA33A6'));
|
||||
$documentationhtml .= get_string('errorcodes', 'webservice');
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_start_tag('span', array('style' => 'font-size:80%'));
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::start_tag('span', array('style' => 'font-size:80%'));
|
||||
$errormessage = get_string('invalidparameter', 'debug');
|
||||
$restexceptiontext =<<<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -402,19 +402,19 @@ EOF;
|
||||
htmlentities($restexceptiontext),
|
||||
'FEEBE5');
|
||||
|
||||
$documentationhtml .= $this->output_end_tag('span');
|
||||
$documentationhtml .= html_writer::end_tag('span');
|
||||
}
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= $this->output_empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
$documentationhtml .= html_writer::empty_tag('br', array());
|
||||
if (empty($printableformat)) {
|
||||
$documentationhtml .= print_collapsible_region_end(true);
|
||||
}
|
||||
}
|
||||
|
||||
/// close the table and return the documentation
|
||||
$documentationhtml .= $this->output_end_tag('td');
|
||||
$documentationhtml .= $this->output_end_tag('tr');
|
||||
$documentationhtml .= $this->output_end_tag('table');
|
||||
$documentationhtml .= html_writer::end_tag('td');
|
||||
$documentationhtml .= html_writer::end_tag('tr');
|
||||
$documentationhtml .= html_writer::end_tag('table');
|
||||
|
||||
return $documentationhtml;
|
||||
|
||||
@@ -428,18 +428,18 @@ EOF;
|
||||
public function login_page_html($errormessage) {
|
||||
global $CFG, $OUTPUT;
|
||||
|
||||
$htmlloginpage = $this->output_start_tag('table', array('style' => "margin-left:auto; margin-right:auto;"));
|
||||
$htmlloginpage .= $this->output_start_tag('tr', array());
|
||||
$htmlloginpage .= $this->output_start_tag('td', array());
|
||||
$htmlloginpage = html_writer::start_tag('table', array('style' => "margin-left:auto; margin-right:auto;"));
|
||||
$htmlloginpage .= html_writer::start_tag('tr', array());
|
||||
$htmlloginpage .= html_writer::start_tag('td', array());
|
||||
$htmlloginpage .= get_string('wsdocumentationlogin', 'webservice');
|
||||
$htmlloginpage .= $this->output_empty_tag('br', array());
|
||||
$htmlloginpage .= $this->output_empty_tag('br', array());
|
||||
$htmlloginpage .= $this->output_empty_tag('br', array());
|
||||
$htmlloginpage .= html_writer::empty_tag('br', array());
|
||||
$htmlloginpage .= html_writer::empty_tag('br', array());
|
||||
$htmlloginpage .= html_writer::empty_tag('br', array());
|
||||
|
||||
// /// Display detailed error message when can't login
|
||||
// $htmlloginpage .= get_string('error','webservice',$errormessage);
|
||||
// $htmlloginpage .= $this->output_empty_tag('br', array());
|
||||
// $htmlloginpage .= $this->output_empty_tag('br', array());
|
||||
// $htmlloginpage .= html_writer::empty_tag('br', array());
|
||||
// $htmlloginpage .= html_writer::empty_tag('br', array());
|
||||
|
||||
//login form - we cannot use moodle form as we don't have sessionkey
|
||||
$form = new html_form();
|
||||
@@ -461,14 +461,14 @@ EOF;
|
||||
$field->value = get_string('wspassword', 'webservice');
|
||||
$field->style = 'width: 30em;';
|
||||
$contents .= $OUTPUT->textfield($field);
|
||||
$contents .= $this->output_empty_tag('br', array());
|
||||
$contents .= $this->output_empty_tag('br', array());
|
||||
$contents .= html_writer::empty_tag('br', array());
|
||||
$contents .= html_writer::empty_tag('br', array());
|
||||
|
||||
$htmlloginpage .= $OUTPUT->form($form, $contents);
|
||||
|
||||
$htmlloginpage .= $this->output_end_tag('td');
|
||||
$htmlloginpage .= $this->output_end_tag('tr');
|
||||
$htmlloginpage .= $this->output_end_tag('table');
|
||||
$htmlloginpage .= html_writer::end_tag('td');
|
||||
$htmlloginpage .= html_writer::end_tag('tr');
|
||||
$htmlloginpage .= html_writer::end_tag('table');
|
||||
|
||||
return $htmlloginpage;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user