MDL-79052 core: Final deprecation of removing the legacy theme settings

This commit is contained in:
Daniel Ziegenberg
2025-06-18 12:23:06 +02:00
parent 9223e346c3
commit a462df7eb7
5 changed files with 13 additions and 327 deletions
-200
View File
@@ -10767,206 +10767,6 @@ class admin_setting_configstoredfile extends admin_setting {
}
}
/**
* Administration interface for user specified regular expressions for device detection.
*
* @deprecated Moodle 4.3 MDL-78468 - No longer used since the devicedetectregex was removed.
* @todo Final deprecation on Moodle 4.7 MDL-79052
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class admin_setting_devicedetectregex extends admin_setting {
/**
* Calls parent::__construct with specific args
*
* @deprecated Moodle 4.3 MDL-78468 - No longer used since the devicedetectregex was removed.
* @todo Final deprecation on Moodle 4.7 MDL-79052
* @param string $name
* @param string $visiblename
* @param string $description
* @param mixed $defaultsetting
*/
public function __construct($name, $visiblename, $description, $defaultsetting = '') {
debugging(
__FUNCTION__ . '() is deprecated.' .
'All functions associated with devicedetectregex theme setting are being removed.',
DEBUG_DEVELOPER
);
global $CFG;
parent::__construct($name, $visiblename, $description, $defaultsetting);
}
/**
* Return the current setting(s)
*
* @deprecated Moodle 4.3 MDL-78468 - No longer used since the devicedetectregex was removed.
* @todo Final deprecation on Moodle 4.7 MDL-79052
* @return ?array Current settings array
*/
public function get_setting() {
debugging(
__FUNCTION__ . '() is deprecated.' .
'All functions associated with devicedetectregex theme setting are being removed.',
DEBUG_DEVELOPER
);
global $CFG;
$config = $this->config_read($this->name);
if (is_null($config)) {
return null;
}
return $this->prepare_form_data($config);
}
/**
* Save selected settings
*
* @deprecated Moodle 4.3 MDL-78468 - No longer used since the devicedetectregex was removed.
* @todo Final deprecation on Moodle 4.7 MDL-79052
* @param array $data Array of settings to save
* @return string error message or empty string on success
*/
public function write_setting($data) {
debugging(
__FUNCTION__ . '() is deprecated.' .
'All functions associated with devicedetectregex theme setting are being removed.',
DEBUG_DEVELOPER
);
if (empty($data)) {
$data = array();
}
if ($this->config_write($this->name, $this->process_form_data($data))) {
return ''; // success
} else {
return get_string('errorsetting', 'admin') . $this->visiblename . html_writer::empty_tag('br');
}
}
/**
* Return XHTML field(s) for regexes
*
* @deprecated Moodle 4.3 MDL-78468 - No longer used since the devicedetectregex was removed.
* @todo Final deprecation on Moodle 4.7 MDL-79052
* @param array $data Array of options to set in HTML
* @return string XHTML string for the fields and wrapping div(s)
*/
public function output_html($data, $query='') {
debugging(
__FUNCTION__ . '() is deprecated.' .
'All functions associated with devicedetectregex theme setting are being removed.',
DEBUG_DEVELOPER
);
global $OUTPUT;
$context = (object) [
'expressions' => [],
'name' => $this->get_full_name()
];
if (empty($data)) {
$looplimit = 1;
} else {
$looplimit = (count($data)/2)+1;
}
for ($i=0; $i<$looplimit; $i++) {
$expressionname = 'expression'.$i;
if (!empty($data[$expressionname])){
$expression = $data[$expressionname];
} else {
$expression = '';
}
$valuename = 'value'.$i;
if (!empty($data[$valuename])){
$value = $data[$valuename];
} else {
$value= '';
}
$context->expressions[] = [
'index' => $i,
'expression' => $expression,
'value' => $value
];
}
$element = $OUTPUT->render_from_template('core_admin/setting_devicedetectregex', $context);
return format_admin_setting($this, $this->visiblename, $element, $this->description, false, '', null, $query);
}
/**
* Converts the string of regexes
*
* @see self::process_form_data()
* @param $regexes string of regexes
* @return array of form fields and their values
*/
protected function prepare_form_data($regexes) {
$regexes = json_decode($regexes);
$form = array();
$i = 0;
foreach ($regexes as $value => $regex) {
$expressionname = 'expression'.$i;
$valuename = 'value'.$i;
$form[$expressionname] = $regex;
$form[$valuename] = $value;
$i++;
}
return $form;
}
/**
* Converts the data from admin settings form into a string of regexes
*
* @see self::prepare_form_data()
* @param array $data array of admin form fields and values
* @return false|string of regexes
*/
protected function process_form_data(array $form) {
$count = count($form); // number of form field values
if ($count % 2) {
// we must get five fields per expression
return false;
}
$regexes = array();
for ($i = 0; $i < $count / 2; $i++) {
$expressionname = "expression".$i;
$valuename = "value".$i;
$expression = trim($form['expression'.$i]);
$value = trim($form['value'.$i]);
if (empty($expression)){
continue;
}
$regexes[$value] = $expression;
}
$regexes = json_encode($regexes);
return $regexes;
}
}
/**
* Multiselect for current modules
*