我正在尝试制作一个简单的Moodle块,其中包含一个编辑文本元素,一个按钮和一个标签。当用户在编辑文本元素中键入一些文本并单击按钮时,输入的文本将保存在db中,页面将重新加载,保存的文本将从db中读取并显示在标签上。我正在使用渲染器来阻止内容,并且已经实现了用于从db保存和获取数据的功能。如何设置按钮的单击侦听器,如何在单击按钮时告诉渲染器执行指定的功能?另外,如何获取用户键入的文本?下面是我的渲染器和块的代码。
阻止:
list_from_set = list(set(list_even))
>>> print(list_from_set)
[2, 4, 6, 8, 10, 12]
渲染器:
class block_ivas_block extends block_base {
public function init() {
$this->title = get_string('pluginname', 'block_ivas_block');
}
public function get_content() {
if ($this->content !== null) {
return $this->content;
}
$text = $this->get_db_data();
$renderer = $this->page->get_renderer('block_ivas_block');
$this->content = new stdClass();
$this->content->text = $renderer->get_mcontent($text);
return $this->content;
}
public function get_db_data(){
$output = 'DB data:';
global $DB;
$records = $DB->get_records('block_ivas_block');
foreach($records as $r){
$output.= " ";
$output.= $r->proba;
}
return $output;
}
public function save_db_data($data){
global $DB;
$record = new stdClass();
$record->proba = $data;
$DB->insert_record('block_ivas_block', $record);
}
public function btn_action(){
// global $CFG;
//$this->save_db_data($data);
// $url = $this->page->url;
// redirect($url);
}
}