【问题标题】:Moodle upload form for user upload用于用户上传的 Moodle 上传表单
【发布时间】:2015-09-03 17:57:08
【问题描述】:

我想在 moodle 插件中面对面批量上传用户,使用 .csv。 用户上传必须在会话中进行,并由管理员或经理进行。 使用 File API 中的文件选择器元素

$mform->addElement('filepicker', 'userfile', get_string('file'), null,
               array('maxbytes' => $maxbytes, 'accepted_types' => '*'));

然后我需要提取这些数据并在与会者列表和报告中显示姓名、电子邮件等。 fgetcsv 是正确的选择吗?:

    $fields=fgetcsv($filehandle,0,$this->config->delimiter);
var_dump($fields)
$data=array();
while($row=fgetcsv($filehandle,0,$this->config->delimiter))
{
  $data_row->startdate=$row[0] 
  $data_row->enddate=$row[0]
  $data_row->room=$row[0]
  $data_row->status=$row[0]
  $data_row->firstname=$row[0]
  $data_row->lastname=$row[0]
  $data_row->username=$row[0]
  $data_row->useremail=$row[0]
  $data_row->attendance=$row[0]
  $data_row->signupdate=$row[0]
  array_push($data,$data_row)
  $DB->insert_record('facetoface',$data_row, false);
}

在面对面会话中没有具有用户上传功能的插件,也没有类似的东西。 在哪里放置正确的代码行(在插件的不同文件中),或者更好地说,这是正确的继续方式? 我更愿意制作一个自定义插件,如果这样更容易,只需要它的结构指导。该功能仍然类似于面对面,只是上传了与会者。

【问题讨论】:

    标签: php plugins moodle fgetcsv


    【解决方案1】:

    Totara 中有一个批量上传用户的选项。

    https://github.com/totara/seedlings/tree/totara-seedlings-2.7/mod/facetoface

    但是对于您的插件,您可能希望使用 csv_import_reader

    例如,看看/admin/tool/uploaduser/index.php

    【讨论】:

    • 批量上传不适合我,它必须在 f2f 会话中进行,并与用户数据同步,以便从中生成报告。感谢您的提示,我会尝试csv_import_reader。是否必须放在 f2f/session.php 中?
    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2013-09-05
    • 2017-10-18
    • 2017-05-19
    相关资源
    最近更新 更多