Сейчас пытаюсь работать с правами доступа в своем плагине блока.
Moodle версии 4.3.7
Файл находится в папке groups/lbtb/
Для этого я ввел в access.php следующее:
$capabilities = array(
'block/lbtb:canreadlbtbblock' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
),
'block/lbtb:canwritelbtbblock' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
),
);
Я хотел бы включить запрос с помощью has_capability.
Вот как выглядит мой файл, в котором я хочу выполнить запрос :
use core_external\util as external_util;
require_once(__DIR__ . '/../../config.php');
class block_lbtb extends block_base {
function init() {
$this->title = get_string('pluginname', 'block_lbtb');
}
function has_config(){
return true;
}
public function get_content() {
global $DB, $CFG, $OUTPUT;
if ($this->content !== NULL) {
return $this->content;
}
$this->content = new stdClass;
// Add logic here to define your template data or any other content.
$getswconfig = get_config('block_lbtb', 'sw');
$getszconfig = get_config('block_lbtb', 'sz');
$contextblock = context_system::instance();
if (has_capabilty('block/lbtb:canwritelbtbblock', $contextblock)) {
$visibility = '';
} else {
$visibility = 'display: none;';
}
if ($getswconfig == 0) {
$getsw = 'lbtbbuttongreen';
} else {
$getsw = 'lbtbbuttonred';
}
if ($getszconfig == 0) {
$getsz = 'lbtbbuttongreen';
} else {
$getsz = 'lbtbbuttonred';
}
$data = [
'buttoncolorsw' => $getsw,
'buttoncolorsz' => $getsz,
'visibility' => $visibility,
];
$this->content->text = $OUTPUT->render_from_template('block_lbtb/content', $data);
return $this->content;
}
}
Я получаю следующую ошибку:
Fehler: Call to undefined function has_capabilty()
Информация об отладке:
Код ошибки: GeneralExceptionmessage
Трассировка стека:
строка 34 файла /blocks/lbtb/block_lbtb.php: ошибка
Строка 34:
if (has_capabilty('block/lbtb:canreadlbtbblock', $contextblock)) {
Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-moodle