From 5ad55ff212ce5aa4686507d88caaed093ecbd8d5 Mon Sep 17 00:00:00 2001 From: Ivan Tcholakov Date: Sat, 5 Mar 2011 22:29:29 +0200 Subject: [PATCH] Task #3055 - Cleaning whitespace in the file display.lib.php. --- main/inc/lib/display.lib.php | 1522 +++++++++++++++++----------------- 1 file changed, 762 insertions(+), 760 deletions(-) diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index 97c137dcec..750995432e 100755 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -1,656 +1,658 @@ , Ghent University - * @param string $tool These are the constants that are used for indicating the tools. - * @param array $editor_config Optional configuration settings for the online editor. - * @return $tool return a string array list with the "define" in main_api.lib - * @return html code for adding an introduction - */ - public static function display_introduction_section($tool, $editor_config = null) { - $is_allowed_to_edit = api_is_allowed_to_edit(); - $moduleId = $tool; - if (api_get_setting('enable_tool_introduction') == 'true' || $tool == TOOL_COURSE_HOMEPAGE) { - require api_get_path(INCLUDE_PATH).'introductionSection.inc.php'; - } - } - - /** - * Displays a localised html file - * tries to show the file "$full_file_name"."_".$language_interface.".html" - * and if this does not exist, shows the file "$full_file_name".".html" - * warning this public function defines a global - * @param $full_file_name, the (path) name of the file, without .html - * @return return a string with the path - */ - public static function display_localised_html_file($full_file_name) { - global $language_interface; - $localised_file_name = $full_file_name.'_'.$language_interface.'.html'; - $default_file_name = $full_file_name.'.html'; - if (file_exists($localised_file_name)) { - include $localised_file_name; - } else { - include ($default_file_name); - } - } - - /** - * Display simple html header of table. - * @deprecated - */ - /*public static function display_table_header() { - $bgcolor = 'bgcolor="white"'; - echo ''; - return $bgcolor; - }*/ - - /** - * Display html header of table with several options. - * - * @param $properties, array with elements, all of which have defaults - * "width" - the table width, e.g. "100%", default is 85% - * "class" - the class to use for the table, e.g. "class=\"data_table\"" - * "cellpadding" - the extra border in each cell, e.g. "8",default is 4 - * "cellspacing" - the extra space between cells, default = 0 - * @param column_header, array with the header elements. - * @author Roan Embrechts - * @version 1.01 - * @todo remove this function, is only use in user.php - * @return return type string, bgcolor - */ - public static function display_complex_table_header($properties, $column_header) { - $width = $properties['width']; - if (!isset($width)) { - $width = '85%'; - } - $class = $properties['class']; - if (!isset($class)) { - $class = 'class="data_table"'; - } - $cellpadding = $properties['cellpadding']; - if (!isset($cellpadding)) { - $cellpadding = '4'; - } - $cellspacing = $properties['cellspacing']; - if (!isset ($cellspacing)) { - $cellspacing = '0'; - } - //... add more properties as you see fit - //api_display_debug_info("Light grey is " . DOKEOSLIGHTGREY); - $bgcolor = 'bgcolor="'.DOKEOSLIGHTGREY.'"'; - echo '
'."\n"; - echo ''; - foreach ($column_header as & $table_element) { - echo ''; - } - echo "\n"; - echo "\n"; - $bgcolor = 'bgcolor="'.HTML_WHITE.'"'; - return $bgcolor; - } - - /** - * Displays a table row. - * - * @param $bgcolor the background colour for the table - * @param $table_row an array with the row elements - * @param $is_alternating true: the row colours alternate, false otherwise - * @todo remove this function, is only use in user.php - */ - public static function display_table_row($bgcolor, $table_row, $is_alternating = true) { - echo ''; - foreach ($table_row as & $table_element) { - echo ''; - } - echo "\n"; - if ($is_alternating) { - if ($bgcolor == 'bgcolor="'.HTML_WHITE.'"') { - $bgcolor = 'bgcolor="'.DOKEOSLIGHTGREY.'"'; - } elseif ($bgcolor == 'bgcolor="'.DOKEOSLIGHTGREY.'"') { - $bgcolor = 'bgcolor="'.HTML_WHITE.'"'; - } - } - return $bgcolor; - } - - - /** - * Displays a table - * @param array $header Titles for the table header - * each item in this array can contain 3 values - * - 1st element: the column title - * - 2nd element: true or false (column sortable?) - * - 3th element: additional attributes for - * th-tag (eg for column-width) - * - 4the element: additional attributes for the td-tags - * @param array $content 2D-array with the tables content - * @param array $sorting_options Keys are: - * 'column' = The column to use as sort-key - * 'direction' = SORT_ASC or SORT_DESC - * @param array $paging_options Keys are: - * 'per_page_default' = items per page when switching from - * full- list to per-page-view - * 'per_page' = number of items to show per page - * 'page_nr' = The page to display - * @param array $query_vars Additional variables to add in the query-string - * @param string The style that the table will show. You can set 'table' or 'grid' - * @author bart.mollet@hogent.be - */ - public static function display_sortable_table($header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $form_actions = array(), $style = 'table') { - if (!class_exists('SortableTable')) { - require_once 'sortabletable.class.php'; - } - global $origin; - $column = isset($sorting_options['column']) ? $sorting_options['column'] : 0; - $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; - - $table = new SortableTableFromArray($content, $column, $default_items_per_page); - - if (is_array($query_vars)) { - $table->set_additional_parameters($query_vars); - } - if ($style == 'table') { - if (is_array($header) && count($header) > 0) { - foreach ($header as $index => $header_item) { - $table->set_header($index, $header_item[0], $header_item[1], $header_item[2], $header_item[3]); - } - } - $table->set_form_actions($form_actions); - $table->display(); - } else { - $table->display_grid(); - } - } - - /** - * Shows a nice grid - * @param string grid name (important to create css) - * @param array header content - * @param array array with the information to show - * @param array $paging_options Keys are: - * 'per_page_default' = items per page when switching from - * full- list to per-page-view - * 'per_page' = number of items to show per page - * 'page_nr' = The page to display - * 'hide_navigation' = true to hide the navigation - * @param array $query_vars Additional variables to add in the query-string - * @param array $form actions Additional variables to add in the query-string - * @param mixed An array with bool values to know which columns show. i.e: $visibility_options= array(true, false) we will only show the first column - * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing - */ - - public static function display_sortable_grid($name, $header, $content, $paging_options = array(), $query_vars = null, $form_actions = array(), $visibility_options = true, $sort_data = true) { - echo self::return_sortable_grid($name, $header, $content, $paging_options, $query_vars, $form_actions, $visibility_options, $sort_data); - } - - /** - * Gets a nice grid in html string - * @param string grid name (important to create css) - * @param array header content - * @param array array with the information to show - * @param array $paging_options Keys are: - * 'per_page_default' = items per page when switching from - * full- list to per-page-view - * 'per_page' = number of items to show per page - * 'page_nr' = The page to display - * 'hide_navigation' = true to hide the navigation - * @param array $query_vars Additional variables to add in the query-string - * @param array $form actions Additional variables to add in the query-string - * @param mixed An array with bool values to know which columns show. i.e: $visibility_options= array(true, false) we will only show the first column - * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing - * @param bool true for sorting data or false otherwise - * @return string html grid - */ - public static function return_sortable_grid($name, $header, $content, $paging_options = array(), $query_vars = null, $form_actions = array(), $visibility_options = true, $sort_data = true) { - if (!class_exists('SortableTable')) { - require_once 'sortabletable.class.php'; - } - global $origin; - $column = 0; - $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; - $table = new SortableTableFromArray($content, $column, $default_items_per_page, $name); - - if (is_array($query_vars)) { - $table->set_additional_parameters($query_vars); - } - return $table->display_simple_grid($visibility_options, $paging_options['hide_navigation'], $paging_options['per_page'], $sort_data); - } - - /** - * Displays a table with a special configuration - * @param array $header Titles for the table header - * each item in this array can contain 3 values - * - 1st element: the column title - * - 2nd element: true or false (column sortable?) - * - 3th element: additional attributes for - * th-tag (eg for column-width) - * - 4the element: additional attributes for the td-tags - * @param array $content 2D-array with the tables content - * @param array $sorting_options Keys are: - * 'column' = The column to use as sort-key - * 'direction' = SORT_ASC or SORT_DESC - * @param array $paging_options Keys are: - * 'per_page_default' = items per page when switching from - * full- list to per-page-view - * 'per_page' = number of items to show per page - * 'page_nr' = The page to display - * @param array $query_vars Additional variables to add in the query-string - * @param array $column_show Array of binaries 1= show columns 0. hide a column - * @param array $column_order An array of integers that let us decide how the columns are going to be sort. - * i.e: $column_order=array('1''4','3','4'); The 2nd column will be order like the 4th column - * @param array $form_actions Set optional forms actions - * - * @author Julio Montoya - */ - public static function display_sortable_config_table($header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $column_show = array(), $column_order = array(), $form_actions = array()) { - if (!class_exists('SortableTable')) { - require_once 'sortabletable.class.php'; - } - global $origin; - $column = isset($sorting_options['column']) ? $sorting_options['column'] : 0; - $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; - - $table = new SortableTableFromArrayConfig($content, $column, $default_items_per_page, 'tablename', $column_show, $column_order); - - if (is_array($query_vars)) { - $table->set_additional_parameters($query_vars); - } - // Show or hide the columns header - if (is_array($column_show)) { - for ($i = 0; $i < count($column_show); $i++) { - if (!empty($column_show[$i])) { - $val0 = isset($header[$i][0]) ? $header[$i][0] : null; - $val1 = isset($header[$i][1]) ? $header[$i][1] : null; - $val2 = isset($header[$i][2]) ? $header[$i][2] : null; - $val3 = isset($header[$i][3]) ? $header[$i][3] : null; - $table->set_header($i, $val0, $val1, $val2, $val3); - } - } - } - $table->set_form_actions($form_actions); - $table->display(); - } - - /** - * Displays a normal message. It is recommended to use this public function - * to display any normal information messages. - * - * @author Roan Embrechts - * @param string $message - include any additional html - * tags if you need them - * @param bool Filter (true) or not (false) - * @return void - */ - public static function display_normal_message($message, $filter = true) { - if ($filter) { - // Filter message - $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); - } - if (!headers_sent()) { - echo ' - '; // TODO: There is no "default.css" file in this location. - } - echo '
'; - //Display :: display_icon('message_normal.gif', get_lang('InfoMessage'), array ('style' => 'float:left; margin-right:10px;')); - /* - get_lang('InfoMessage', array ('style' => 'float:left; margin-right:10px;')); - */ - echo $message.'
'; - } - - /** - * Displays an warning message. Use this if you want to draw attention to something - * This can also be used for instance with the hint in the exercises - * - * @author Patrick Cool , Ghent University - * @param string $message - * @param bool Filter (true) or not (false) - * @return void - */ - public static function display_warning_message($message, $filter = true) { - if ($filter){ - // Filter message - $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); - } - if (!headers_sent()) { - echo ' - '; // TODO: There is no "default.css" file in this location. - } - echo '
'; - //Display :: display_icon('message_warning.png', get_lang('WarningMessage'), array ('style' => 'float:left; margin-right:10px;')); - /* - get_lang('WarningMessage', array ('style' => 'float:left; margin-right:10px;')); - */ - echo $message.'
'; - } - - /** - * Displays an confirmation message. Use this if something has been done successfully - * - * @author Patrick Cool , Ghent University - * @param string $message - * @param bool Filter (true) or not (false) - * @return void - */ - public static function display_confirmation_message ($message, $filter = true) { - if ($filter){ - // Filter message - $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); - } - if (!headers_sent()) { - echo ' - '; // TODO: There is no "default.css" file in this location. - } - echo '
'; - //Display :: display_icon('message_confirmation.gif', get_lang('ConfirmationMessage'), array ('style' => 'float:left; margin-right:10px;margin-left:5px;')); - /* - get_lang('ConfirmationMessage', array ('style' => 'float:left; margin-right:10px;margin-left:5px;')); - */ - echo $message.'
'; - } - - /** - * Displays an error message. It is recommended to use this public function if an error occurs - * - * @author Hugues Peeters - * @author Roan Embrechts - * @author Patrick Cool , Ghent University - * @param string $message - include any additional html - * tags if you need them - * @param bool Filter (true) or not (false) - * @return void - */ - public static function display_error_message ($message, $filter = true) { - if($filter){ - // Filter message - $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); - } - if (!headers_sent()) { - echo ' - '; // TODO: There is no "default.css" file in this location. - } - echo '
'; - //Display :: display_icon('message_error.png', get_lang('ErrorMessage'), array ('style' => 'float:left; margin-right:10px;')); - /* - get_lang('ErrorMessage', array ('style' => 'float:left; margin-right:10px;')); - */ - echo $message.'
'; - } - /** - * Returns a div html string with - */ - public function return_message($message, $type='normal', $filter = true) { - if ($filter) { - $message = Security::remove_XSS($message); - } + + private function __construct() { + + } + + /** + * Displays the tool introduction of a tool. + * + * @author Patrick Cool , Ghent University + * @param string $tool These are the constants that are used for indicating the tools. + * @param array $editor_config Optional configuration settings for the online editor. + * @return $tool return a string array list with the "define" in main_api.lib + * @return html code for adding an introduction + */ + public static function display_introduction_section($tool, $editor_config = null) { + $is_allowed_to_edit = api_is_allowed_to_edit(); + $moduleId = $tool; + if (api_get_setting('enable_tool_introduction') == 'true' || $tool == TOOL_COURSE_HOMEPAGE) { + require api_get_path(INCLUDE_PATH).'introductionSection.inc.php'; + } + } + + /** + * Displays a localised html file + * tries to show the file "$full_file_name"."_".$language_interface.".html" + * and if this does not exist, shows the file "$full_file_name".".html" + * warning this public function defines a global + * @param $full_file_name, the (path) name of the file, without .html + * @return return a string with the path + */ + public static function display_localised_html_file($full_file_name) { + global $language_interface; + $localised_file_name = $full_file_name.'_'.$language_interface.'.html'; + $default_file_name = $full_file_name.'.html'; + if (file_exists($localised_file_name)) { + include $localised_file_name; + } else { + include ($default_file_name); + } + } + + /** + * Display simple html header of table. + * @deprecated + */ + /*public static function display_table_header() { + $bgcolor = 'bgcolor="white"'; + echo '
'.$table_element.'
'.$table_element.'
'; + return $bgcolor; + }*/ + + /** + * Display html header of table with several options. + * + * @param $properties, array with elements, all of which have defaults + * "width" - the table width, e.g. "100%", default is 85% + * "class" - the class to use for the table, e.g. "class=\"data_table\"" + * "cellpadding" - the extra border in each cell, e.g. "8",default is 4 + * "cellspacing" - the extra space between cells, default = 0 + * @param column_header, array with the header elements. + * @author Roan Embrechts + * @version 1.01 + * @todo remove this function, is only use in user.php + * @return return type string, bgcolor + */ + public static function display_complex_table_header($properties, $column_header) { + $width = $properties['width']; + if (!isset($width)) { + $width = '85%'; + } + $class = $properties['class']; + if (!isset($class)) { + $class = 'class="data_table"'; + } + $cellpadding = $properties['cellpadding']; + if (!isset($cellpadding)) { + $cellpadding = '4'; + } + $cellspacing = $properties['cellspacing']; + if (!isset ($cellspacing)) { + $cellspacing = '0'; + } + //... add more properties as you see fit + //api_display_debug_info("Light grey is " . DOKEOSLIGHTGREY); + $bgcolor = 'bgcolor="'.DOKEOSLIGHTGREY.'"'; + echo '
'."\n"; + echo ''; + foreach ($column_header as & $table_element) { + echo ''; + } + echo "\n"; + echo "\n"; + $bgcolor = 'bgcolor="'.HTML_WHITE.'"'; + return $bgcolor; + } + + /** + * Displays a table row. + * + * @param $bgcolor the background colour for the table + * @param $table_row an array with the row elements + * @param $is_alternating true: the row colours alternate, false otherwise + * @todo remove this function, is only use in user.php + */ + public static function display_table_row($bgcolor, $table_row, $is_alternating = true) { + echo ''; + foreach ($table_row as & $table_element) { + echo ''; + } + echo "\n"; + if ($is_alternating) { + if ($bgcolor == 'bgcolor="'.HTML_WHITE.'"') { + $bgcolor = 'bgcolor="'.DOKEOSLIGHTGREY.'"'; + } elseif ($bgcolor == 'bgcolor="'.DOKEOSLIGHTGREY.'"') { + $bgcolor = 'bgcolor="'.HTML_WHITE.'"'; + } + } + return $bgcolor; + } + + /** + * Displays a table + * @param array $header Titles for the table header + * each item in this array can contain 3 values + * - 1st element: the column title + * - 2nd element: true or false (column sortable?) + * - 3th element: additional attributes for + * th-tag (eg for column-width) + * - 4the element: additional attributes for the td-tags + * @param array $content 2D-array with the tables content + * @param array $sorting_options Keys are: + * 'column' = The column to use as sort-key + * 'direction' = SORT_ASC or SORT_DESC + * @param array $paging_options Keys are: + * 'per_page_default' = items per page when switching from + * full- list to per-page-view + * 'per_page' = number of items to show per page + * 'page_nr' = The page to display + * @param array $query_vars Additional variables to add in the query-string + * @param string The style that the table will show. You can set 'table' or 'grid' + * @author bart.mollet@hogent.be + */ + public static function display_sortable_table($header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $form_actions = array(), $style = 'table') { + if (!class_exists('SortableTable')) { + require_once 'sortabletable.class.php'; + } + global $origin; + $column = isset($sorting_options['column']) ? $sorting_options['column'] : 0; + $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; + + $table = new SortableTableFromArray($content, $column, $default_items_per_page); + + if (is_array($query_vars)) { + $table->set_additional_parameters($query_vars); + } + if ($style == 'table') { + if (is_array($header) && count($header) > 0) { + foreach ($header as $index => $header_item) { + $table->set_header($index, $header_item[0], $header_item[1], $header_item[2], $header_item[3]); + } + } + $table->set_form_actions($form_actions); + $table->display(); + } else { + $table->display_grid(); + } + } + + /** + * Shows a nice grid + * @param string grid name (important to create css) + * @param array header content + * @param array array with the information to show + * @param array $paging_options Keys are: + * 'per_page_default' = items per page when switching from + * full- list to per-page-view + * 'per_page' = number of items to show per page + * 'page_nr' = The page to display + * 'hide_navigation' = true to hide the navigation + * @param array $query_vars Additional variables to add in the query-string + * @param array $form actions Additional variables to add in the query-string + * @param mixed An array with bool values to know which columns show. i.e: $visibility_options= array(true, false) we will only show the first column + * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing + */ + public static function display_sortable_grid($name, $header, $content, $paging_options = array(), $query_vars = null, $form_actions = array(), $visibility_options = true, $sort_data = true) { + echo self::return_sortable_grid($name, $header, $content, $paging_options, $query_vars, $form_actions, $visibility_options, $sort_data); + } + + /** + * Gets a nice grid in html string + * @param string grid name (important to create css) + * @param array header content + * @param array array with the information to show + * @param array $paging_options Keys are: + * 'per_page_default' = items per page when switching from + * full- list to per-page-view + * 'per_page' = number of items to show per page + * 'page_nr' = The page to display + * 'hide_navigation' = true to hide the navigation + * @param array $query_vars Additional variables to add in the query-string + * @param array $form actions Additional variables to add in the query-string + * @param mixed An array with bool values to know which columns show. i.e: $visibility_options= array(true, false) we will only show the first column + * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing + * @param bool true for sorting data or false otherwise + * @return string html grid + */ + public static function return_sortable_grid($name, $header, $content, $paging_options = array(), $query_vars = null, $form_actions = array(), $visibility_options = true, $sort_data = true) { + if (!class_exists('SortableTable')) { + require_once 'sortabletable.class.php'; + } + global $origin; + $column = 0; + $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; + $table = new SortableTableFromArray($content, $column, $default_items_per_page, $name); + + if (is_array($query_vars)) { + $table->set_additional_parameters($query_vars); + } + return $table->display_simple_grid($visibility_options, $paging_options['hide_navigation'], $paging_options['per_page'], $sort_data); + } + + /** + * Displays a table with a special configuration + * @param array $header Titles for the table header + * each item in this array can contain 3 values + * - 1st element: the column title + * - 2nd element: true or false (column sortable?) + * - 3th element: additional attributes for + * th-tag (eg for column-width) + * - 4the element: additional attributes for the td-tags + * @param array $content 2D-array with the tables content + * @param array $sorting_options Keys are: + * 'column' = The column to use as sort-key + * 'direction' = SORT_ASC or SORT_DESC + * @param array $paging_options Keys are: + * 'per_page_default' = items per page when switching from + * full- list to per-page-view + * 'per_page' = number of items to show per page + * 'page_nr' = The page to display + * @param array $query_vars Additional variables to add in the query-string + * @param array $column_show Array of binaries 1= show columns 0. hide a column + * @param array $column_order An array of integers that let us decide how the columns are going to be sort. + * i.e: $column_order=array('1''4','3','4'); The 2nd column will be order like the 4th column + * @param array $form_actions Set optional forms actions + * + * @author Julio Montoya + */ + public static function display_sortable_config_table($header, $content, $sorting_options = array(), $paging_options = array(), $query_vars = null, $column_show = array(), $column_order = array(), $form_actions = array()) { + if (!class_exists('SortableTable')) { + require_once 'sortabletable.class.php'; + } + global $origin; + $column = isset($sorting_options['column']) ? $sorting_options['column'] : 0; + $default_items_per_page = isset($paging_options['per_page']) ? $paging_options['per_page'] : 20; + + $table = new SortableTableFromArrayConfig($content, $column, $default_items_per_page, 'tablename', $column_show, $column_order); + + if (is_array($query_vars)) { + $table->set_additional_parameters($query_vars); + } + // Show or hide the columns header + if (is_array($column_show)) { + for ($i = 0; $i < count($column_show); $i++) { + if (!empty($column_show[$i])) { + $val0 = isset($header[$i][0]) ? $header[$i][0] : null; + $val1 = isset($header[$i][1]) ? $header[$i][1] : null; + $val2 = isset($header[$i][2]) ? $header[$i][2] : null; + $val3 = isset($header[$i][3]) ? $header[$i][3] : null; + $table->set_header($i, $val0, $val1, $val2, $val3); + } + } + } + $table->set_form_actions($form_actions); + $table->display(); + } + + /** + * Displays a normal message. It is recommended to use this public function + * to display any normal information messages. + * + * @author Roan Embrechts + * @param string $message - include any additional html + * tags if you need them + * @param bool Filter (true) or not (false) + * @return void + */ + public static function display_normal_message($message, $filter = true) { + if ($filter) { + // Filter message + $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); + } + if (!headers_sent()) { + echo ' + '; // TODO: There is no "default.css" file in this location. + } + echo '
'; + //Display :: display_icon('message_normal.gif', get_lang('InfoMessage'), array ('style' => 'float:left; margin-right:10px;')); + /* + get_lang('InfoMessage', array ('style' => 'float:left; margin-right:10px;')); + */ + echo $message.'
'; + } + + /** + * Displays an warning message. Use this if you want to draw attention to something + * This can also be used for instance with the hint in the exercises + * + * @author Patrick Cool , Ghent University + * @param string $message + * @param bool Filter (true) or not (false) + * @return void + */ + public static function display_warning_message($message, $filter = true) { + if ($filter){ + // Filter message + $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); + } + if (!headers_sent()) { + echo ' + '; // TODO: There is no "default.css" file in this location. + } + echo '
'; + //Display :: display_icon('message_warning.png', get_lang('WarningMessage'), array ('style' => 'float:left; margin-right:10px;')); + /* + get_lang('WarningMessage', array ('style' => 'float:left; margin-right:10px;')); + */ + echo $message.'
'; + } + + /** + * Displays an confirmation message. Use this if something has been done successfully + * + * @author Patrick Cool , Ghent University + * @param string $message + * @param bool Filter (true) or not (false) + * @return void + */ + public static function display_confirmation_message ($message, $filter = true) { + if ($filter){ + // Filter message + $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); + } + if (!headers_sent()) { + echo ' + '; // TODO: There is no "default.css" file in this location. + } + echo '
'; + //Display :: display_icon('message_confirmation.gif', get_lang('ConfirmationMessage'), array ('style' => 'float:left; margin-right:10px;margin-left:5px;')); + /* + get_lang('ConfirmationMessage', array ('style' => 'float:left; margin-right:10px;margin-left:5px;')); + */ + echo $message.'
'; + } + + /** + * Displays an error message. It is recommended to use this public function if an error occurs + * + * @author Hugues Peeters + * @author Roan Embrechts + * @author Patrick Cool , Ghent University + * @param string $message - include any additional html + * tags if you need them + * @param bool Filter (true) or not (false) + * @return void + */ + public static function display_error_message ($message, $filter = true) { + if($filter){ + // Filter message + $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); + } + if (!headers_sent()) { + echo ' + '; // TODO: There is no "default.css" file in this location. + } + echo '
'; + //Display :: display_icon('message_error.png', get_lang('ErrorMessage'), array ('style' => 'float:left; margin-right:10px;')); + /* + get_lang('ErrorMessage', array ('style' => 'float:left; margin-right:10px;')); + */ + echo $message.'
'; + } + + /** + * Returns a div html string with + */ + public function return_message($message, $type='normal', $filter = true) { + if ($filter) { + $message = Security::remove_XSS($message); + } switch($type) { case 'warning': - $class = 'warning-message'; + $class = 'warning-message'; case 'error': $class = 'error-message'; case 'normal': $class = ''; case 'confirmation-message': - $class = ''; + $class = ''; default: - $class = 'normal-message'; + $class = 'normal-message'; return self::div($message, array('class'=>$class)); - } - } - - /** - * Returns an encrypted mailto hyperlink - * - * @param - $email (string) - e-mail - * @param - $text (string) - clickable text - * @param - $style_class (string) - optional, class from stylesheet - * @return - encrypted mailto hyperlink - */ - public static function encrypted_mailto_link ($email, $clickable_text = null, $style_class = '') { - if (is_null($clickable_text)) { - $clickable_text = $email; - } - // "mailto:" already present? - if (substr($email, 0, 7) != 'mailto:') { - $email = 'mailto:'.$email; - } - // Class (stylesheet) defined? - if ($style_class != '') { - $style_class = ' class="'.$style_class.'"'; - } - // Encrypt email - $hmail = ''; - for ($i = 0; $i < strlen($email); $i ++) { - $hmail .= '&#'.ord($email { - $i }).';'; - } - // Encrypt clickable text if @ is present - if (strpos($clickable_text, '@')) { - for ($i = 0; $i < strlen($clickable_text); $i ++) { - $hclickable_text .= '&#'.ord($clickable_text { - $i }).';'; - } - } else { - $hclickable_text = @htmlspecialchars($clickable_text, ENT_QUOTES, api_get_system_encoding()); - } - // Return encrypted mailto hyperlink - return ''.$hclickable_text.''; - } - - /** - * Creates a hyperlink to the platform homepage. - * @param string $name, the visible name of the hyperlink, default is sitename - * @return string with html code for hyperlink - */ - public static function get_platform_home_link_html($name = '') { - if ($name == '') { - $name = api_get_setting('siteName'); - } - return ''.$name.''; - } - - /** - * Displays the page header - * @param string The name of the page (will be showed in the page title) - * @param string Optional help file name - */ - public static function display_header($tool_name ='', $help = null) { - $nameTools = $tool_name; - global $_plugins, $lp_theme_css, $mycoursetheme, $user_theme, $platform_theme; - global $httpHeadXtra, $htmlHeadXtra, $htmlIncHeadXtra, $_course, $_user, $clarolineRepositoryWeb, $text_dir, $plugins, $_user, $rootAdminWeb, $_cid, $interbreadcrumb, $charset, $language_file, $noPHP_SELF; - global $menu_navigation; - require api_get_path(INCLUDE_PATH).'header.inc.php'; - } - - /** - * Displays the reduced page header (without banner) - */ - public static function display_reduced_header () { - global $_plugins, $lp_theme_css, $mycoursetheme, $user_theme, $platform_theme; - global $httpHeadXtra, $htmlHeadXtra, $htmlIncHeadXtra, $_course, $_user, $clarolineRepositoryWeb, $text_dir, $plugins, $_user, $rootAdminWeb, $_cid, $interbreadcrumb, $charset, $language_file, $noPHP_SELF, $language_interface; - global $menu_navigation; - require api_get_path(INCLUDE_PATH).'reduced_header.inc.php'; - } - - /** - * Display the page footer - */ - public static function display_footer () { - global $_plugins; - require api_get_path(INCLUDE_PATH).'footer.inc.php'; - } - - /** - * Prints an
'.$table_element.'
'.$table_element.'