return true;
}
-function make_editing_buttons($mod, $absolute=false, $moveselect=true, $indent=-1, $section=-1) {
- global $CFG, $USER, $DB, $OUTPUT;
+/**
+ * Produces the editing buttons for a module
+ *
+ * @global core_renderer $OUTPUT
+ * @staticvar type $str
+ * @param stdClass $mod The module to produce editing buttons for
+ * @param bool $absolute If true an absolute link is produced (default true)
+ * @param bool $moveselect If true a move seleciton process is used (default true)
+ * @param int $indent The current indenting
+ * @param int $section The section to link back to
+ * @return string XHTML for the editing buttons
+ */
+function make_editing_buttons(stdClass $mod, $absolute = true, $moveselect = true, $indent=-1, $section=-1) {
+ global $CFG, $OUTPUT;
static $str;
- static $sesskey;
+ $coursecontext = get_context_instance(CONTEXT_COURSE, $mod->course);
$modcontext = get_context_instance(CONTEXT_MODULE, $mod->id);
+
// no permission to edit
if (!has_capability('moodle/course:manageactivities', $modcontext)) {
return false;
}
if (!isset($str)) {
+ $str = new stdClass;
$str->assign = get_string("assignroles", 'role');
$str->delete = get_string("delete");
$str->move = get_string("move");
$str->groupsnone = get_string("groupsnone");
$str->groupsseparate = get_string("groupsseparate");
$str->groupsvisible = get_string("groupsvisible");
- $sesskey = sesskey();
}
- if ($section >= 0) {
- $section = '&sr='.$section; // Section return
+ if ($absolute) {
+ $baseurl = new moodle_url('/course/mod.php', array('sesskey' => sesskey()));
} else {
- $section = '';
+ $baseurl = new moodle_url('mod.php', array('sesskey' => sesskey()));
}
- if ($absolute) {
- $path = $CFG->wwwroot.'/course';
- } else {
- $path = '.';
+ if ($section >= 0) {
+ $baseurl->param('sr', $section);
+ }
+ $actions = array();
+
+ // leftright
+ if (has_capability('moodle/course:update', $coursecontext)) {
+ if (right_to_left()) { // Exchange arrows on RTL
+ $rightarrow = 't/left';
+ $leftarrow = 't/right';
+ } else {
+ $rightarrow = 't/right';
+ $leftarrow = 't/left';
+ }
+
+ if ($indent > 0) {
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('id' => $mod->id, 'indent' => '-1')),
+ new pix_icon($leftarrow, $str->moveleft, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_moveleft', 'title' => $str->moveleft)
+ );
+ }
+ if ($indent >= 0) {
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('id' => $mod->id, 'indent' => '1')),
+ new pix_icon($rightarrow, $str->moveright, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_moveright', 'title' => $str->moveright)
+ );
+ }
+ }
+
+ // move
+ if (has_capability('moodle/course:update', $coursecontext)) {
+ if ($moveselect) {
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('copy' => $mod->id)),
+ new pix_icon('t/move', $str->move, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_move', 'title' => $str->move)
+ );
+ } else {
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('id' => $mod->id, 'move' => '-1')),
+ new pix_icon('t/up', $str->moveup, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_moveup', 'title' => $str->moveup)
+ );
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('id' => $mod->id, 'move' => '1')),
+ new pix_icon('t/down', $str->movedown, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_movedown', 'title' => $str->movedown)
+ );
+ }
}
+
+ // Update
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('update' => $mod->id)),
+ new pix_icon('t/edit', $str->update, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_update', 'title' => $str->update)
+ );
+
+ // Duplicate
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('duplicate' => $mod->id)),
+ new pix_icon('t/copy', $str->duplicate, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_duplicate', 'title' => $str->duplicate)
+ );
+
+ // Delete
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('delete' => $mod->id)),
+ new pix_icon('t/delete', $str->delete, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_delete', 'title' => $str->delete)
+ );
+
+ // hideshow
if (has_capability('moodle/course:activityvisibility', $modcontext)) {
if ($mod->visible) {
- $hideshow = '<a class="editing_hide" title="'.$str->hide.'" href="'.$path.'/mod.php?hide='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/hide') . '" class="iconsmall" '.
- ' alt="'.$str->hide.'" /></a>'."\n";
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('hide' => $mod->id)),
+ new pix_icon('t/hide', $str->hide, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_hide', 'title' => $str->hide)
+ );
} else {
- $hideshow = '<a class="editing_show" title="'.$str->show.'" href="'.$path.'/mod.php?show='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/show') . '" class="iconsmall" '.
- ' alt="'.$str->show.'" /></a>'."\n";
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('show' => $mod->id)),
+ new pix_icon('t/show', $str->show, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_show', 'title' => $str->show)
+ );
}
- } else {
- $hideshow = '';
}
+ // groupmode
if ($mod->groupmode !== false) {
if ($mod->groupmode == SEPARATEGROUPS) {
+ $groupmode = 0;
$grouptitle = $str->groupsseparate;
$groupclass = 'editing_groupsseparate';
- $groupimage = $OUTPUT->pix_url('t/groups') . '';
- $grouplink = $path.'/mod.php?id='.$mod->id.'&groupmode=0&sesskey='.$sesskey;
+ $groupimage = 't/groups';
} else if ($mod->groupmode == VISIBLEGROUPS) {
+ $groupmode = 1;
$grouptitle = $str->groupsvisible;
$groupclass = 'editing_groupsvisible';
- $groupimage = $OUTPUT->pix_url('t/groupv') . '';
- $grouplink = $path.'/mod.php?id='.$mod->id.'&groupmode=1&sesskey='.$sesskey;
+ $groupimage = 't/groupv';
} else {
+ $groupmode = 2;
$grouptitle = $str->groupsnone;
$groupclass = 'editing_groupsnone';
- $groupimage = $OUTPUT->pix_url('t/groupn') . '';
- $grouplink = $path.'/mod.php?id='.$mod->id.'&groupmode=2&sesskey='.$sesskey;
+ $groupimage = 't/groupn';
}
if ($mod->groupmodelink) {
- $groupmode = '<a class="'.$groupclass.'" title="'.$grouptitle.' ('.$str->clicktochange.')" href="'.$grouplink.'">'.
- '<img src="'.$groupimage.'" class="iconsmall" '.
- 'alt="'.$grouptitle.'" /></a>';
+ $actions[] = new action_link(
+ new moodle_url($baseurl, array('id' => $mod->id, 'groupmode' => $groupmode)),
+ new pix_icon($groupimage, $grouptitle, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => $groupclass, 'title' => $grouptitle.' ('.$str->clicktochange.')')
+ );
} else {
- $groupmode = '<img title="'.$grouptitle.' ('.$str->forcedmode.')" '.
- ' src="'.$groupimage.'" class="iconsmall" '.
- 'alt="'.$grouptitle.'" />';
+ $actions[] = new pix_icon($groupimage, $grouptitle, 'moodle', array('title' => $grouptitle.' ('.$str->forcedmode.')', 'class' => 'iconsmall'));
}
- } else {
- $groupmode = "";
}
- if (has_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $mod->course))) {
- if ($moveselect) {
- $move = '<a class="editing_move" title="'.$str->move.'" href="'.$path.'/mod.php?copy='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/move') . '" class="iconsmall" '.
- ' alt="'.$str->move.'" /></a>'."\n";
- } else {
- $move = '<a class="editing_moveup" title="'.$str->moveup.'" href="'.$path.'/mod.php?id='.$mod->id.
- '&move=-1&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/up') . '" class="iconsmall" '.
- ' alt="'.$str->moveup.'" /></a>'."\n".
- '<a class="editing_movedown" title="'.$str->movedown.'" href="'.$path.'/mod.php?id='.$mod->id.
- '&move=1&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/down') . '" class="iconsmall" '.
- ' alt="'.$str->movedown.'" /></a>'."\n";
- }
- } else {
- $move = '';
+ // Assign
+ if (has_capability('moodle/course:managegroups', $modcontext)){
+ $actions[] = new action_link(
+ new moodle_url('/'.$CFG->admin.'/roles/assign.php', array('contextid' => $modcontext->id)),
+ new pix_icon('i/roles', $str->assign, 'moodle', array('class' => 'iconsmall')),
+ null,
+ array('class' => 'editing_assign', 'title' => $str->assign)
+ );
}
- $leftright = '';
- if (has_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $mod->course))) {
-
- if (right_to_left()) { // Exchange arrows on RTL
- $rightarrow = 't/left';
- $leftarrow = 't/right';
+ $output = html_writer::start_tag('span', array('class' => 'commands'));
+ foreach ($actions as $action) {
+ if ($action instanceof renderable) {
+ $output .= $OUTPUT->render($action);
} else {
- $rightarrow = 't/right';
- $leftarrow = 't/left';
- }
-
- if ($indent > 0) {
- $leftright .= '<a class="editing_moveleft" title="'.$str->moveleft.'" href="'.$path.'/mod.php?id='.$mod->id.
- '&indent=-1&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url($leftarrow).'" class="iconsmall" '.
- ' alt="'.$str->moveleft.'" /></a>'."\n";
- }
- if ($indent >= 0) {
- $leftright .= '<a class="editing_moveright" title="'.$str->moveright.'" href="'.$path.'/mod.php?id='.$mod->id.
- '&indent=1&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url($rightarrow).'" class="iconsmall" '.
- ' alt="'.$str->moveright.'" /></a>'."\n";
+ $output .= $action;
}
}
- if (has_capability('moodle/course:managegroups', $modcontext)){
- $context = get_context_instance(CONTEXT_MODULE, $mod->id);
- $assign = '<a class="editing_assign" title="'.$str->assign.'" href="'.$CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.
- $context->id.'"><img src="'.$OUTPUT->pix_url('i/roles') . '" alt="'.$str->assign.'" class="iconsmall"/></a>';
- } else {
- $assign = '';
- }
-
- return '<span class="commands">'."\n".$leftright.$move.
- '<a class="editing_update" title="'.$str->update.'" href="'.$path.'/mod.php?update='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/edit') . '" class="iconsmall" '.
- ' alt="'.$str->update.'" /></a>'."\n".
- '<a class="editing_duplicate" title="'.$str->duplicate.'" href="'.$path.'/mod.php?duplicate='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/copy') . '" class="iconsmall" '.
- ' alt="'.$str->duplicate.'" /></a>'."\n".
- '<a class="editing_delete" title="'.$str->delete.'" href="'.$path.'/mod.php?delete='.$mod->id.
- '&sesskey='.$sesskey.$section.'"><img'.
- ' src="'.$OUTPUT->pix_url('t/delete') . '" class="iconsmall" '.
- ' alt="'.$str->delete.'" /></a>'."\n".$hideshow.$groupmode."\n".$assign.'</span>';
+ $output .= html_writer::end_tag('span');
+ return $output;
}
/**