本文整理汇总了PHP中portfolio_add_button::set_callback_options方法的典型用法代码示例。如果您正苦于以下问题:PHP portfolio_add_button::set_callback_options方法的具体用法?PHP portfolio_add_button::set_callback_options怎么用?PHP portfolio_add_button::set_callback_options使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类portfolio_add_button
的用法示例。
在下文中一共展示了portfolio_add_button::set_callback_options方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
function test_set_formats()
{
$button = new portfolio_add_button();
$button->set_callback_options('assignment_portfolio_caller', array('id' => 6), '/mod/assignment/lib.php');
$formats = array(PORTFOLIO_FORMAT_FILE, PORTFOLIO_FORMAT_IMAGE);
$button->set_formats($formats);
$this->assertEqual(2, count($button->get_formats()));
}
示例2: apply
public function apply($discussion, $all, $selected, $formdata)
{
global $COURSE, $USER, $CFG;
if (!$CFG->enableportfolios) {
return '';
}
/*
* It is necessary to encode the array of selected discussion posts as text in order to
* pass the data in the button callback options because it gets filtered as PARAM_ALPHA
*/
if (is_array($selected) && !empty($selected)) {
$seltext = implode('x', $selected);
$letters = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
$posts = '';
$selarray = str_split($seltext);
foreach ($selarray as $char) {
$posts .= $char == 'x' ? $char : $letters[$char];
}
} else {
$posts = '';
}
// get the id of the forum
$forumobj = $discussion->get_forum();
$forumngid = $forumobj->get_id();
require_once $CFG->libdir . '/portfoliolib.php';
// check if the forum is shared and pass the cloneid in the callback options
$linkparams = $discussion->get_link_params_array();
if (array_key_exists('clone', $linkparams)) {
$cloneid = $linkparams['clone'];
} else {
$cloneid = 0;
}
$button = new portfolio_add_button();
$button->set_callback_options('forumng_all_portfolio_caller', array('forumngid' => $forumngid, 'cloneid' => $cloneid, 'posts' => $posts, 'discussionid' => $discussion->get_id()), 'mod_forumng');
$button->set_formats(PORTFOLIO_FORMAT_PLAINHTML);
// redirect to the export page
redirect($button->to_html(PORTFOLIO_ADD_FAKE_URL));
}
示例3: get_p_links
/**
* Produces a list of portfolio links to the file recorded byuser
*
* @param $submissionid this submission's id
* @return string the portfolio export link
*/
public function get_p_links($submissionid)
{
global $CFG, $OUTPUT, $DB;
$output = "";
$fs = get_file_storage();
$files = $fs->get_area_files($this->assignment->get_context()->id, ASSIGNSUBMISSION_ONLINEPOODLL_COMPONENT, ASSIGNSUBMISSION_ONLINEPOODLL_FILEAREA, $submissionid, "id", false);
if (!empty($files)) {
require_once $CFG->dirroot . '/mod/assignment/locallib.php';
if ($CFG->enableportfolios) {
require_once $CFG->libdir . '/portfoliolib.php';
}
//Add portfolio download links if appropriate
foreach ($files as $file) {
if ($CFG->enableportfolios && has_capability('mod/assign:exportownsubmission', $this->assignment->get_context())) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('assign_portfolio_caller', array('cmid' => $this->assignment->get_course_module()->id, 'component' => "assignsubmission_onlinepoodll", 'area' => ASSIGNSUBMISSION_ONLINEPOODLL_FILEAREA, 'sid' => $submissionid), '/mod/assign/portfolio_callback.php');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_TEXT_LINK);
}
$output .= '<br />';
}
}
$output = '<div class="files" style="float:left;margin-left:5px;">' . $output . '</div><br clear="all" />';
return $output;
}
示例4: trim
if (empty($data->listtemplate)) {
echo $OUTPUT->notification(get_string('nolisttemplate', 'data'));
data_generate_default_template($data, 'listtemplate', 0, false, false);
}
echo $data->listtemplateheader;
data_print_template('listtemplate', $records, $data, $search, $page);
echo $data->listtemplatefooter;
echo $OUTPUT->paging_bar($totalcount, $page, $nowperpage, $baseurl);
}
}
}
$search = trim($search);
if (empty($records)) {
$records = array();
}
if ($mode == '' && !empty($CFG->enableportfolios)) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('data_portfolio_caller', array('id' => $cm->id), '/mod/data/locallib.php');
if (data_portfolio_caller::has_files($data)) {
$button->set_formats(array(PORTFOLIO_FORMAT_RICHHTML, PORTFOLIO_FORMAT_LEAP2A));
// no plain html for us
}
echo $button->to_html(PORTFOLIO_ADD_FULL_FORM);
}
//Advanced search form doesn't make sense for single (redirects list view)
if (($maxcount || $mode == 'asearch') && $mode != 'single') {
data_print_preference_form($data, $perpage, $search, $sort, $order, $search_array, $advanced, $mode);
}
}
echo $OUTPUT->footer();
示例5: render_editor_content
/**
* Render the content in editor that is often used by plugin.
*
* @param string $filearea
* @param int $submissionid
* @param string $plugintype
* @param string $editor
* @param string $component
* @return string
*/
public function render_editor_content($filearea, $submissionid, $plugintype, $editor, $component)
{
global $CFG;
$result = '';
$plugin = $this->get_submission_plugin_by_type($plugintype);
$text = $plugin->get_editor_text($editor, $submissionid);
$format = $plugin->get_editor_format($editor, $submissionid);
$finaltext = file_rewrite_pluginfile_urls($text, 'pluginfile.php', $this->get_context()->id, $component, $filearea, $submissionid);
$params = array('overflowdiv' => true, 'context' => $this->get_context());
$result .= format_text($finaltext, $format, $params);
if ($CFG->enableportfolios) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$portfolioparams = array('cmid' => $this->get_course_module()->id, 'sid' => $submissionid, 'plugin' => $plugintype, 'editor' => $editor, 'area' => $filearea);
$button->set_callback_options('assign_portfolio_caller', $portfolioparams, 'mod_assign');
$fs = get_file_storage();
if ($files = $fs->get_area_files($this->context->id, $component, $filearea, $submissionid, 'timemodified', false)) {
$button->set_formats(PORTFOLIO_FORMAT_RICHHTML);
} else {
$button->set_formats(PORTFOLIO_FORMAT_PLAINHTML);
}
$result .= $button->to_html();
}
return $result;
}
示例6: foreach
/**
* Produces a list of links to the files uploaded by a user
*
* @param $userid int optional id of the user. If 0 then $USER->id is used.
* @param $return boolean optional defaults to false. If true the list is returned rather than printed
* @return string optional
*/
function print_user_files($userid = 0, $return = false)
{
global $CFG, $USER, $OUTPUT;
if (!$userid) {
if (!isloggedin()) {
return '';
}
$userid = $USER->id;
}
$output = '';
$fs = get_file_storage();
$browser = get_file_browser();
$found = false;
if ($files = $fs->get_area_files($this->context->id, 'assignment_submission', $userid, "timemodified", false)) {
$button = new portfolio_add_button();
foreach ($files as $file) {
$filename = $file->get_filename();
$found = true;
$mimetype = $file->get_mimetype();
$path = file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $this->context->id . '/assignment_submission/' . $userid . '/' . $filename);
$output .= '<a href="' . $path . '" ><img src="' . $OUTPUT->old_icon_url(file_mimetype_icon($mimetype)) . '" class="icon" alt="' . $mimetype . '" />' . s($filename) . '</a>';
if ($this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
$button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id, 'fileid' => $file->get_id()));
$button->set_formats(portfolio_format_from_file($file));
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$output .= '<br />';
}
if (count($files) > 1 && $this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
$button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id));
$button->set_formats(PORTFOLIO_PORMAT_FILE);
$output .= '<br />' . $button->to_html();
}
}
$output = '<div class="files">' . $output . '</div>';
if ($return) {
return $output;
}
echo $output;
}
示例7: array
}
if ($iscomplete) {
$completesessions++;
}
$sessionend = $message->timestamp;
$sessionusers = array();
$sessionusers[$message->userid] = 1;
}
$lasttime = $message->timestamp;
}
echo '</div>';
if (!empty($CFG->enableportfolios) && $canexportsess) {
require_once($CFG->libdir . '/portfoliolib.php');
$button = new portfolio_add_button();
$button->set_callback_options('chat_portfolio_caller', array('id' => $cm->id), 'mod_chat');
$button->render(null, get_string('addalltoportfolio', 'portfolio'));
}
if (!$showall and $completesessions == 0) {
echo html_writer::start_tag('p');
echo get_string('no_complete_sessions_found', 'chat') . ' ';
echo html_writer::link('report.php?id='.$cm->id.'&show_all=1', get_string('list_all_sessions', 'chat'));
echo html_writer::end_tag('p');
}
// Finish the page.
echo $OUTPUT->footer();
示例8: data_print_template
/**
* takes a list of records, the current data, a search string,
* and mode to display prints the translated template
*
* @global object
* @global object
* @param string $template
* @param array $records
* @param object $data
* @param string $search
* @param int $page
* @param bool $return
* @param object $jumpurl a moodle_url by which to jump back to the record list (can be null)
* @return mixed
*/
function data_print_template($template, $records, $data, $search = '', $page = 0, $return = false, moodle_url $jumpurl = null)
{
global $CFG, $DB, $OUTPUT;
$cm = get_coursemodule_from_instance('data', $data->id);
$context = context_module::instance($cm->id);
static $fields = NULL;
static $isteacher;
static $dataid = NULL;
if (empty($dataid)) {
$dataid = $data->id;
} else {
if ($dataid != $data->id) {
$fields = NULL;
}
}
if (empty($fields)) {
$fieldrecords = $DB->get_records('data_fields', array('dataid' => $data->id));
foreach ($fieldrecords as $fieldrecord) {
$fields[] = data_get_field($fieldrecord, $data);
}
$isteacher = has_capability('mod/data:managetemplates', $context);
}
if (empty($records)) {
return;
}
if (!$jumpurl) {
$jumpurl = new moodle_url('/mod/data/view.php', array('d' => $data->id));
}
$jumpurl = new moodle_url($jumpurl, array('page' => $page, 'sesskey' => sesskey()));
// Check whether this activity is read-only at present
$readonly = data_in_readonly_period($data);
foreach ($records as $record) {
// Might be just one for the single template
// Replacing tags
$patterns = array();
$replacement = array();
// Then we generate strings to replace for normal tags
foreach ($fields as $field) {
$patterns[] = '[[' . $field->field->name . ']]';
$replacement[] = highlight($search, $field->display_browse_field($record->id, $template));
}
$canmanageentries = has_capability('mod/data:manageentries', $context);
// Replacing special tags (##Edit##, ##Delete##, ##More##)
$patterns[] = '##edit##';
$patterns[] = '##delete##';
if ($canmanageentries || !$readonly && data_isowner($record->id)) {
$replacement[] = '<a href="' . $CFG->wwwroot . '/mod/data/edit.php?d=' . $data->id . '&rid=' . $record->id . '&sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('t/edit') . '" class="iconsmall" alt="' . get_string('edit') . '" title="' . get_string('edit') . '" /></a>';
$replacement[] = '<a href="' . $CFG->wwwroot . '/mod/data/view.php?d=' . $data->id . '&delete=' . $record->id . '&sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('t/delete') . '" class="iconsmall" alt="' . get_string('delete') . '" title="' . get_string('delete') . '" /></a>';
} else {
$replacement[] = '';
$replacement[] = '';
}
$moreurl = $CFG->wwwroot . '/mod/data/view.php?d=' . $data->id . '&rid=' . $record->id;
if ($search) {
$moreurl .= '&filter=1';
}
$patterns[] = '##more##';
$replacement[] = '<a href="' . $moreurl . '"><img src="' . $OUTPUT->pix_url('t/preview') . '" class="iconsmall" alt="' . get_string('more', 'data') . '" title="' . get_string('more', 'data') . '" /></a>';
$patterns[] = '##moreurl##';
$replacement[] = $moreurl;
$patterns[] = '##delcheck##';
if ($canmanageentries) {
$replacement[] = html_writer::checkbox('delcheck[]', $record->id, false, '', array('class' => 'recordcheckbox'));
} else {
$replacement[] = '';
}
$patterns[] = '##user##';
$replacement[] = '<a href="' . $CFG->wwwroot . '/user/view.php?id=' . $record->userid . '&course=' . $data->course . '">' . fullname($record) . '</a>';
$patterns[] = '##userpicture##';
$ruser = user_picture::unalias($record, null, 'userid');
$replacement[] = $OUTPUT->user_picture($ruser, array('courseid' => $data->course));
$patterns[] = '##export##';
if (!empty($CFG->enableportfolios) && ($template == 'singletemplate' || $template == 'listtemplate') && (has_capability('mod/data:exportentry', $context) || data_isowner($record->id) && has_capability('mod/data:exportownentry', $context))) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('data_portfolio_caller', array('id' => $cm->id, 'recordid' => $record->id), 'mod_data');
list($formats, $files) = data_portfolio_caller::formats($fields, $record);
$button->set_formats($formats);
$replacement[] = $button->to_html(PORTFOLIO_ADD_ICON_LINK);
} else {
$replacement[] = '';
}
$patterns[] = '##timeadded##';
$replacement[] = userdate($record->timecreated);
$patterns[] = '##timemodified##';
//.........这里部分代码省略.........
示例9: glossary_print_entry_icons
/**
*
* @global object
* @global object
* @global object
* @param object $course
* @param object $cm
* @param object $glossary
* @param object $entry
* @param string $mode
* @param string $hook
* @param string $type
* @return string|void
*/
function glossary_print_entry_icons($course, $cm, $glossary, $entry, $mode='',$hook='', $type = 'print') {
global $USER, $CFG, $DB, $OUTPUT;
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$output = false; //To decide if we must really return text in "return". Activate when needed only!
$importedentry = ($entry->sourceglossaryid == $glossary->id);
$ismainglossary = $glossary->mainglossary;
$return = '<span class="commands">';
// Differentiate links for each entry.
$altsuffix = ': '.strip_tags(format_text($entry->concept));
if (!$entry->approved) {
$output = true;
$return .= get_string('entryishidden','glossary');
}
$iscurrentuser = ($entry->userid == $USER->id);
if (has_capability('mod/glossary:manageentries', $context) or (isloggedin() and has_capability('mod/glossary:write', $context) and $iscurrentuser)) {
// only teachers can export entries so check it out
if (has_capability('mod/glossary:export', $context) and !$ismainglossary and !$importedentry) {
$mainglossary = $DB->get_record('glossary', array('mainglossary'=>1,'course'=>$course->id));
if ( $mainglossary ) { // if there is a main glossary defined, allow to export the current entry
$output = true;
$return .= ' <a title="'.get_string('exporttomainglossary','glossary') . '" href="exportentry.php?id='.$entry->id.'&prevmode='.$mode.'&hook='.urlencode($hook).'"><img src="'.$OUTPUT->pix_url('export', 'glossary').'" class="iconsmall" alt="'.get_string('exporttomainglossary','glossary').$altsuffix.'" /></a>';
}
}
if ( $entry->sourceglossaryid ) {
$icon = $OUTPUT->pix_url('minus', 'glossary'); // graphical metaphor (minus) for deleting an imported entry
} else {
$icon = $OUTPUT->pix_url('t/delete');
}
//Decide if an entry is editable:
// -It isn't a imported entry (so nobody can edit a imported (from secondary to main) entry)) and
// -The user is teacher or he is a student with time permissions (edit period or editalways defined).
$ineditperiod = ((time() - $entry->timecreated < $CFG->maxeditingtime) || $glossary->editalways);
if ( !$importedentry and (has_capability('mod/glossary:manageentries', $context) or ($entry->userid == $USER->id and ($ineditperiod and has_capability('mod/glossary:write', $context))))) {
$output = true;
$return .= " <a title=\"" . get_string("delete") . "\" href=\"deleteentry.php?id=$cm->id&mode=delete&entry=$entry->id&prevmode=$mode&hook=".urlencode($hook)."\"><img src=\"";
$return .= $icon;
$return .= "\" class=\"iconsmall\" alt=\"" . get_string("delete") .$altsuffix."\" /></a> ";
$return .= " <a title=\"" . get_string("edit") . "\" href=\"edit.php?cmid=$cm->id&id=$entry->id&mode=$mode&hook=".urlencode($hook)."\"><img src=\"" . $OUTPUT->pix_url('t/edit') . "\" class=\"iconsmall\" alt=\"" . get_string("edit") .$altsuffix. "\" /></a>";
} elseif ( $importedentry ) {
$return .= " <font size=\"-1\">" . get_string("exportedentry","glossary") . "</font>";
}
}
if (!empty($CFG->enableportfolios) && (has_capability('mod/glossary:exportentry', $context) || ($iscurrentuser && has_capability('mod/glossary:exportownentry', $context)))) {
require_once($CFG->libdir . '/portfoliolib.php');
$button = new portfolio_add_button();
$button->set_callback_options('glossary_entry_portfolio_caller', array('id' => $cm->id, 'entryid' => $entry->id), '/mod/glossary/locallib.php');
$filecontext = $context;
if ($entry->sourceglossaryid == $cm->instance) {
if ($maincm = get_coursemodule_from_instance('glossary', $entry->glossaryid)) {
$filecontext = get_context_instance(CONTEXT_MODULE, $maincm->id);
}
}
$fs = get_file_storage();
if ($files = $fs->get_area_files($filecontext->id, 'mod_glossary', 'attachment', $entry->id, "timemodified", false)) {
$button->set_formats(PORTFOLIO_FORMAT_RICHHTML);
} else {
$button->set_formats(PORTFOLIO_FORMAT_PLAINHTML);
}
$return .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$return .= " "; // just to make up a little the output in Mozilla ;)
$return .= '</span>';
if (!empty($CFG->usecomments) && has_capability('mod/glossary:comment', $context) and $glossary->allowcomments) {
require_once($CFG->dirroot . '/comment/lib.php');
$cmt = new stdClass();
$cmt->component = 'mod_glossary';
$cmt->context = $context;
$cmt->course = $course;
$cmt->cm = $cm;
$cmt->area = 'glossary_entry';
$cmt->itemid = $entry->id;
$cmt->showcount = true;
//.........这里部分代码省略.........
示例10: forum_print_attachments
/**
* Returns attachments as formated text/html optionally with separate images
*
* @global object
* @global object
* @global object
* @param object $post
* @param object $cm
* @param string $type html/text/separateimages
* @return mixed string or array of (html text withouth images and image HTML)
*/
function forum_print_attachments($post, $cm, $type)
{
global $CFG, $DB, $USER, $OUTPUT;
if (empty($post->attachment)) {
return $type !== 'separateimages' ? '' : array('', '');
}
if (!in_array($type, array('separateimages', 'html', 'text'))) {
return $type !== 'separateimages' ? '' : array('', '');
}
if (!($context = get_context_instance(CONTEXT_MODULE, $cm->id))) {
return $type !== 'separateimages' ? '' : array('', '');
}
$strattachment = get_string('attachment', 'forum');
$fs = get_file_storage();
$imagereturn = '';
$output = '';
$canexport = has_capability('mod/forum:exportpost', $context) || $post->userid == $USER->id && has_capability('mod/forum:exportownpost', $context);
require_once $CFG->libdir . '/portfoliolib.php';
if ($files = $fs->get_area_files($context->id, 'mod_forum', 'attachment', $post->id, "timemodified", false)) {
$button = new portfolio_add_button();
foreach ($files as $file) {
$filename = $file->get_filename();
$mimetype = $file->get_mimetype();
$iconimage = '<img src="' . $OUTPUT->pix_url(file_mimetype_icon($mimetype)) . '" class="icon" alt="' . $mimetype . '" />';
$path = file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $context->id . '/mod_forum/attachment/' . $post->id . '/' . $filename);
if ($type == 'html') {
$output .= "<a href=\"{$path}\">{$iconimage}</a> ";
$output .= "<a href=\"{$path}\">" . s($filename) . "</a>";
if ($canexport) {
$button->set_callback_options('forum_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), '/mod/forum/locallib.php');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$output .= "<br />";
} else {
if ($type == 'text') {
$output .= "{$strattachment} " . s($filename) . ":\n{$path}\n";
} else {
//'returnimages'
if (in_array($mimetype, array('image/gif', 'image/jpeg', 'image/png'))) {
// Image attachments don't get printed as links
$imagereturn .= "<br /><img src=\"{$path}\" alt=\"\" />";
if ($canexport) {
$button->set_callback_options('forum_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), '/mod/forum/locallib.php');
$button->set_format_by_file($file);
$imagereturn .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
} else {
$output .= "<a href=\"{$path}\">{$iconimage}</a> ";
$output .= format_text("<a href=\"{$path}\">" . s($filename) . "</a>", FORMAT_HTML, array('context' => $context));
if ($canexport) {
$button->set_callback_options('forum_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), '/mod/forum/locallib.php');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$output .= '<br />';
}
}
}
}
}
if ($type !== 'separateimages') {
return $output;
} else {
return array($output, $imagereturn);
}
}
示例11: quora_print_attachments
/**
* Returns attachments as formated text/html optionally with separate images
*
* @global object
* @global object
* @global object
* @param object $post
* @param object $cm
* @param string $type html/text/separateimages
* @return mixed string or array of (html text withouth images and image HTML)
*/
function quora_print_attachments($post, $cm, $type)
{
global $CFG, $DB, $USER, $OUTPUT;
if (empty($post->attachment)) {
return $type !== 'separateimages' ? '' : array('', '');
}
if (!in_array($type, array('separateimages', 'html', 'text'))) {
return $type !== 'separateimages' ? '' : array('', '');
}
if (!($context = context_module::instance($cm->id))) {
return $type !== 'separateimages' ? '' : array('', '');
}
$strattachment = get_string('attachment', 'quora');
$fs = get_file_storage();
$imagereturn = '';
$output = '';
$canexport = !empty($CFG->enableportfolios) && (has_capability('mod/quora:exportpost', $context) || $post->userid == $USER->id && has_capability('mod/quora:exportownpost', $context));
if ($canexport) {
require_once $CFG->libdir . '/portfoliolib.php';
}
// We retrieve all files according to the time that they were created. In the case that several files were uploaded
// at the sametime (e.g. in the case of drag/drop upload) we revert to using the filename.
$files = $fs->get_area_files($context->id, 'mod_quora', 'attachment', $post->id, "filename", false);
if ($files) {
if ($canexport) {
$button = new portfolio_add_button();
}
foreach ($files as $file) {
$filename = $file->get_filename();
$mimetype = $file->get_mimetype();
$iconimage = $OUTPUT->pix_icon(file_file_icon($file), get_mimetype_description($file), 'moodle', array('class' => 'icon'));
$path = file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $context->id . '/mod_quora/attachment/' . $post->id . '/' . $filename);
if ($type == 'html') {
$output .= "<a href=\"{$path}\">{$iconimage}</a> ";
$output .= "<a href=\"{$path}\">" . s($filename) . "</a>";
if ($canexport) {
$button->set_callback_options('quora_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), 'mod_quora');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$output .= "<br />";
} else {
if ($type == 'text') {
$output .= "{$strattachment} " . s($filename) . ":\n{$path}\n";
} else {
//'returnimages'
if (in_array($mimetype, array('image/gif', 'image/jpeg', 'image/png'))) {
// Image attachments don't get printed as links
$imagereturn .= "<br /><img src=\"{$path}\" alt=\"\" />";
if ($canexport) {
$button->set_callback_options('quora_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), 'mod_quora');
$button->set_format_by_file($file);
$imagereturn .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
} else {
$output .= "<a href=\"{$path}\">{$iconimage}</a> ";
$output .= format_text("<a href=\"{$path}\">" . s($filename) . "</a>", FORMAT_HTML, array('context' => $context));
if ($canexport) {
$button->set_callback_options('quora_portfolio_caller', array('postid' => $post->id, 'attachment' => $file->get_id()), 'mod_quora');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
}
$output .= '<br />';
}
}
}
if (!empty($CFG->enableplagiarism)) {
require_once $CFG->libdir . '/plagiarismlib.php';
$output .= plagiarism_get_links(array('userid' => $post->userid, 'file' => $file, 'cmid' => $cm->id, 'course' => $cm->course, 'quora' => $cm->instance));
$output .= '<br />';
}
}
}
if ($type !== 'separateimages') {
return $output;
} else {
return array($output, $imagereturn);
}
}
示例12: view
function view()
{
global $USER;
$edit = optional_param('edit', 0, PARAM_BOOL);
$saved = optional_param('saved', 0, PARAM_BOOL);
$context = get_context_instance(CONTEXT_MODULE, $this->cm->id);
require_capability('mod/assignment:view', $context);
$submission = $this->get_submission();
//Guest can not submit nor edit an assignment (bug: 4604)
if (!has_capability('mod/assignment:submit', $context)) {
$editable = null;
} else {
$editable = $this->isopen() && (!$submission || $this->assignment->resubmit || !$submission->timemarked);
}
$editmode = ($editable and $edit);
if ($editmode) {
//guest can not edit or submit assignment
if (!has_capability('mod/assignment:submit', $context)) {
print_error('guestnosubmit', 'assignment');
}
}
add_to_log($this->course->id, "assignment", "view", "view.php?id={$this->cm->id}", $this->assignment->id, $this->cm->id);
/// prepare form and process submitted data
$mform = new mod_assignment_online_edit_form();
$defaults = new object();
$defaults->id = $this->cm->id;
if (!empty($submission)) {
if ($this->usehtmleditor) {
$options = new object();
$options->smiley = false;
$options->filter = false;
$defaults->text = format_text($submission->data1, $submission->data2, $options);
$defaults->format = FORMAT_HTML;
} else {
$defaults->text = $submission->data1;
$defaults->format = $submission->data2;
}
}
$mform->set_data($defaults);
if ($mform->is_cancelled()) {
redirect('view.php?id=' . $this->cm->id);
}
if ($data = $mform->get_data()) {
// No incoming data?
if ($editable && $this->update_submission($data)) {
//TODO fix log actions - needs db upgrade
$submission = $this->get_submission();
add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a=' . $this->assignment->id, $this->assignment->id, $this->cm->id);
$this->email_teachers($submission);
//redirect to get updated submission date and word count
redirect('view.php?id=' . $this->cm->id . '&saved=1');
} else {
// TODO: add better error message
notify(get_string("error"));
//submitting not allowed!
}
}
/// print header, etc. and display form if needed
if ($editmode) {
$this->view_header(get_string('editmysubmission', 'assignment'));
} else {
$this->view_header();
}
$this->view_intro();
$this->view_dates();
if ($saved) {
notify(get_string('submissionsaved', 'assignment'), 'notifysuccess');
}
if (has_capability('mod/assignment:submit', $context)) {
if ($editmode) {
print_box_start('generalbox', 'online');
$mform->display();
} else {
print_box_start('generalbox boxwidthwide boxaligncenter', 'online');
if ($submission && has_capability('mod/assignment:exportownsubmission', $this->context)) {
echo format_text($submission->data1, $submission->data2);
$button = new portfolio_add_button();
$button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id), '/mod/assignment/lib.php');
$button->render();
} else {
if (!has_capability('mod/assignment:submit', $context)) {
//fix for #4604
echo '<div style="text-align:center">' . get_string('guestnosubmit', 'assignment') . '</div>';
} else {
if ($this->isopen()) {
//fix for #4206
echo '<div style="text-align:center">' . get_string('emptysubmission', 'assignment') . '</div>';
}
}
}
}
print_box_end();
if (!$editmode && $editable) {
echo "<div style='text-align:center'>";
print_single_button('view.php', array('id' => $this->cm->id, 'edit' => '1'), get_string('editmysubmission', 'assignment'));
echo "</div>";
}
}
$this->view_feedback();
$this->view_footer();
//.........这里部分代码省略.........
示例13: array
if ($canoverride) {
$displayassessment->add_action($workshop->assess_url($assessment->id), get_string('assessmentsettings', 'workshop'));
}
echo $output->render($displayassessment);
if ($workshop->phase == workshop::PHASE_CLOSED and has_capability('mod/workshop:viewallassessments', $workshop->context)) {
if (strlen(trim($assessment->feedbackreviewer)) > 0) {
echo $output->render(new workshop_feedback_reviewer($assessment));
}
}
}
}
if (!$edit and $canoverride) {
// display a form to override the submission grade
$feedbackform->display();
}
// If portfolios are enabled and we are not on the edit/removal confirmation screen, display a button to export this page.
// The export is not offered if the submission is seen as a published one (it has no relation to the current user.
if (!empty($CFG->enableportfolios)) {
if (!$delete and !$edit and !$seenaspublished and $submission->id and ($ownsubmission or $canviewall or $isreviewer)) {
if (has_capability('mod/workshop:exportsubmissions', $workshop->context)) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('mod_workshop_portfolio_caller', array('id' => $workshop->cm->id, 'submissionid' => $submission->id), 'mod_workshop');
$button->set_formats(PORTFOLIO_FORMAT_RICHHTML);
echo html_writer::start_tag('div', array('class' => 'singlebutton'));
echo $button->to_html(PORTFOLIO_ADD_FULL_FORM, get_string('exportsubmission', 'workshop'));
echo html_writer::end_tag('div');
}
}
}
echo $output->footer();
示例14: add_button
public static function add_button($resource, $format = null, $return = false)
{
if (!has_capability('mod/resource:exportresource', get_context_instance(CONTEXT_MODULE, $resource->cm->id))) {
return;
}
if (!is_callable(array($resource, 'portfolio_prepare_package')) || !is_callable(array($resource, 'portfolio_get_sha1'))) {
debugging(get_string('portfolionotimplemented', 'resource'));
return false;
}
$callersupports = array(self::type_to_format($resource->resource->type));
if ($resource->resource->type == 'file') {
// $callersupports = array(portfolio_format_from_file($file);
}
$button = new portfolio_add_button();
$button->set_callback_options('resource_portfolio_caller', array('id' => $resource->cm->instance), '/mod/resource/lib.php');
$button->set_formats($callersupports);
if ($return) {
return $button->to_html($format);
}
$button->render($format);
}
示例15: render_post
//.........这里部分代码省略.........
$taglinktext .= ',';
}
if (!$forexport && !$email) {
$output .= html_writer::tag('a', $taglinktext, array('href' => $baseurl . '&tag=' . urlencode($taglink))) . ' ';
} else {
$output .= $taglinktext . ' ';
}
$tagcounter++;
}
$output .= html_writer::end_tag('div');
}
$output .= html_writer::start_tag('div', array('class' => 'oublog-post-links'));
if (!$forexport && !$email) {
$output .= html_writer::tag('a', $strpermalink, array('href' => $CFG->wwwroot . '/mod/oublog/viewpost.php?post=' . $post->id)) . ' ';
}
if (!$post->deletedby) {
if ($post->userid == $USER->id || $canmanageposts) {
if (!$forexport && !$email) {
$output .= html_writer::tag('a', $stredit, array('href' => $CFG->wwwroot . '/mod/oublog/editpost.php?blog=' . $post->oublogid . '&post=' . $post->id)) . ' ';
if ($post->userid !== $USER->id) {
// Add email and 'oublog_deleteandemail' to delete link.
$output .= html_writer::tag('a', $strdelete, array('href' => $CFG->wwwroot . '/mod/oublog/deletepost.php?blog=' . $post->oublogid . '&post=' . $post->id . '&delete=1', 'class' => 'oublog_deleteandemail_' . $post->id));
self::render_oublog_print_delete_dialog($cm->id, $post->id);
} else {
$output .= html_writer::tag('a', $strdelete, array('href' => $CFG->wwwroot . '/mod/oublog/deletepost.php?blog=' . $post->oublogid . '&post=' . $post->id . '&delete=1'));
}
}
}
// Show portfolio export link.
if (!empty($CFG->enableportfolios) && (has_capability('mod/oublog:exportpost', $modcontext) || $post->userid == $USER->id && has_capability('mod/oublog:exportownpost', $modcontext))) {
if (!$forexport && !$email) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('oublog_portfolio_caller', array('postid' => $post->id), 'mod_oublog');
if (empty($files)) {
$button->set_formats(PORTFOLIO_FORMAT_PLAINHTML);
} else {
$button->set_formats(PORTFOLIO_FORMAT_RICHHTML);
}
$output .= $button->to_html(PORTFOLIO_ADD_TEXT_LINK) . ' ';
}
}
// Show OU Alerts reporting link.
if (isloggedin() && oublog_oualerts_enabled() && oublog_get_reportingemail($oublog) && !($post->userid == $USER->id) && !$post->deletedby) {
$itemnurl = new moodle_url('/mod/oublog/viewpost.php', array('post' => $post->id));
$reportlink = oualerts_generate_alert_form_url('oublog', $modcontext->id, 'post', $post->id, $itemnurl, $itemnurl, '', false, true);
if ($reportlink != '' && !$forexport && !$email) {
$output .= html_writer::tag('a', get_string('postalert', 'oublog'), array('href' => $reportlink));
}
}
// Show comments.
if ($post->allowcomments) {
// If this is the current user's post, show pending comments too.
$showpendingcomments = $post->userid == $USER->id && !empty($post->pendingcomments);
if ((isset($post->comments) || $showpendingcomments) && $commentcount) {
// Show number of comments.
if (isset($post->comments)) {
$linktext = get_string(count($post->comments) == 1 ? 'onecomment' : 'ncomments', 'oublog', count($post->comments));
}
// Show number of pending comments.
if (isset($post->pendingcomments)) {
// Use different string if we already have normal comments too.
if (isset($post->comments)) {
$linktext .= get_string($post->pendingcomments == 1 ? 'onependingafter' : 'npendingafter', 'oublog', $post->pendingcomments);
} else {
$linktext = get_string($post->pendingcomments == 1 ? 'onepending' : 'npending', 'oublog', $post->pendingcomments);