/** * Displays a clip outline in a table row * * @param mod_opencast_event $sc_clip a SWITCHcast clip object * @param bool $with_actions display action buttons * @param bool $is_template use row as template * @param string $allowed_actions comma separated list of allowed actions, used if $with_actions is true * @param bool $with_owner display owner column * @param bool $with_uploader display uploader column * @param bool $with_recordingstation * @param bool $with_playbuttons */ function display_clip_outline(mod_opencast_event $sc_clip, $with_actions = true, $is_template = false, $allowed_actions = 'all', $with_owner = false, $with_uploader = false, $with_recordingstation = true, $with_playbuttons = true) { global $CFG, $DB, $cm; $title = $sc_clip->getTitle(); if ($title == '') { $title = get_string('untitled_clip', 'opencast'); } $subtitle = $sc_clip->getSubtitle(); $title = html_writer::tag('span', $title, ['class' => 'title']); $title .= html_writer::tag('div', $subtitle, ['class' => 'subtitle']); $owner = $sc_clip->getOwner(); if ($owner == '') { $owner = get_string('no_owner', 'opencast'); } else { $owner_moodle_id = mod_opencast_user::getMoodleUserIdFromExtId($owner); if ($owner_moodle_user = $DB->get_record('user', ['id' => $owner_moodle_id])) { $owner = $owner_moodle_user->lastname . ', ' . $owner_moodle_user->firstname; } else { $owner = get_string('owner_not_in_moodle', 'opencast'); } } $uploader = ''; if ($with_uploader) { $uploaded_clip = $DB->get_record('opencast_uploadedclip', ['ext_id' => $sc_clip->getExtId()]); if ($uploaded_clip) { if ($uploader_moodle_user = $DB->get_record('user', ['id' => $uploaded_clip->userid])) { $uploader = $uploader_moodle_user->lastname . ', ' . $uploader_moodle_user->firstname; } } } if ($is_template) { $extraclass = $this->series->getIvt() ? 'with-owner' : 'without-owner'; echo html_writer::start_tag('tr', ['class' => 'opencast-clip-template-row ' . $extraclass]); } else { echo html_writer::start_tag('tr'); } echo html_writer::start_tag('td'); echo html_writer::start_tag('div', ['class' => 'cliplabel', 'title' => $subtitle]); echo html_writer::empty_tag('img', ['src' => $sc_clip->getCover()]); echo html_writer::tag('h3', $title); if ($with_playbuttons) { echo html_writer::start_tag('div', ['class' => 'linkbar']); // echo html_writer::tag('span', $sc_clip->getLinkBox()); if ($is_template) { echo html_writer::tag('a', '', ['href' => '#opencast-inactive', 'title' => get_string('annotations', 'opencast'), 'class' => 'annotate', 'target' => '_blank']); } else { if ($this->series->getAllowAnnotations()) { echo html_writer::tag('a', '', ['href' => $sc_clip->getAnnotationLink(), 'title' => get_string('annotations', 'opencast'), 'class' => 'annotate', 'target' => '_blank']); } } echo html_writer::tag('a', '', ['href' => $sc_clip->getLinkFlash(), 'title' => get_string('flash', 'opencast'), 'class' => 'flash', 'target' => '_blank']); // echo html_writer::tag('span', $sc_clip->getLinkMp4()); echo html_writer::tag('a', '', ['href' => $sc_clip->getLinkMov(), 'title' => get_string('mov', 'opencast'), 'class' => 'mov', 'target' => '_blank']); // echo html_writer::tag('a', '', [ // 'href' => $sc_clip->getLinkM4v(), 'title' => get_string('m4v', 'opencast'), // 'class' => 'm4v', 'target' => '_blank' // ]); // echo html_writer::tag('span', $sc_clip->getSubtitle()); echo html_writer::end_tag('div'); } echo html_writer::end_tag('div'); echo html_writer::end_tag('td'); echo html_writer::start_tag('td', ['class' => 'opencast-presenter']); echo html_writer::tag('span', $sc_clip->getPresenter()); echo html_writer::end_tag('td'); echo html_writer::start_tag('td', ['class' => 'opencast-location']); echo html_writer::tag('span', $sc_clip->getLocation()); echo html_writer::end_tag('td'); if ($with_recordingstation) { echo html_writer::start_tag('td', ['class' => 'opencast-recordingstation']); echo html_writer::tag('span', $sc_clip->getRecordingStation()); echo html_writer::end_tag('td'); } echo html_writer::start_tag('td', ['class' => 'opencast-recordingdate']); echo html_writer::tag('span', $sc_clip->getRecordingDate()); echo html_writer::end_tag('td'); if ($is_template || $with_owner) { echo html_writer::start_tag('td', ['class' => 'opencast-owner']); echo html_writer::tag('span', $owner); echo html_writer::end_tag('td'); } if ($with_uploader) { echo html_writer::start_tag('td', ['class' => 'opencast-uploader']); echo html_writer::tag('span', $uploader); echo html_writer::end_tag('td'); } $allowed_actions = explode(',', $allowed_actions); if ($with_actions && count($allowed_actions)) { echo html_writer::start_tag('td', ['class' => 'opencast-actions']); echo html_writer::start_tag('div', ['class' => 'opencast-hidden-actions']); if (in_array('editdetails', $allowed_actions) || in_array('all', $allowed_actions)) { echo html_writer::tag('a', get_string('editdetails', 'opencast'), ['href' => $CFG->wwwroot . '/mod/opencast/event_editdetails.php?id=' . $cm->id . '&clip_ext_id=' . $sc_clip->getExtId(), 'class' => 'button opencast-editdetails']); } if (in_array('invite', $allowed_actions) || in_array('all', $allowed_actions)) { echo html_writer::tag('a', get_string('editmembers', 'opencast'), ['href' => $CFG->wwwroot . '/mod/opencast/event_members.php?id=' . $cm->id . '&clip_identifier=' . $sc_clip->getExtId(), 'class' => 'button opencast-clipmembers']); } if (in_array('delete', $allowed_actions) || in_array('all', $allowed_actions)) { echo html_writer::tag('a', get_string('delete_clip', 'opencast'), ['href' => $CFG->wwwroot . '/mod/opencast/event_delete.php?id=' . $cm->id . '&clip_ext_id=' . $sc_clip->getExtId(), 'class' => 'button opencast-deleteclip']); } echo html_writer::end_tag('div'); echo html_writer::end_tag('td'); } echo html_writer::end_tag('tr'); }
if (!($context = context_module::instance($cm->id))) { print_error('badcontext', null, $return_course); } $sc_obj = new mod_opencast_series(); $sc_obj->fetch($opencast->id); $sc_clip = new mod_opencast_event($sc_obj, $clip_identifier, false, $opencast->id); // Perform action ? if (in_array($action, ['edit']) && confirm_sesskey() && has_capability('mod/opencast:isproducer', $context)) { /* * $confirm * AND sesskey() ok * AND has producer rights */ if ($action === 'edit') { $sc_clip->setTitle(optional_param('title', $sc_clip->getTitle(), PARAM_RAW_TRIMMED)); $sc_clip->setSubtitle(optional_param('subtitle', $sc_clip->getSubtitle(), PARAM_RAW_TRIMMED)); $sc_clip->setPresenter(optional_param('presenter', $sc_clip->getPresenter(), PARAM_RAW_TRIMMED)); $sc_clip->setLocation(optional_param('location', $sc_clip->getLocation(), PARAM_RAW_TRIMMED)); if ($userid !== 0) { if ($userid == -1) { $sc_clip->setOwner(''); } else { $sc_user = new mod_opencast_user(null, $userid); $newowner_aaiUniqueId = $sc_user->getExternalAccount(); if ($newowner_aaiUniqueId) { $newowner = new mod_opencast_user($newowner_aaiUniqueId); $sc_clip->setOwner($newowner_aaiUniqueId); $sc_clip->update(); } else { print_error('owner_no_switch_account', 'opencast', $url, $setuser->lastname . ', ' . $setuser->firstname); }