本文整理汇总了PHP中usertime函数的典型用法代码示例。如果您正苦于以下问题:PHP usertime函数的具体用法?PHP usertime怎么用?PHP usertime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了usertime函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: post
/**
* Render a single post
*
* @param \stdClass $cm The forum course module
* @param \stdClass $discussion The post's discussion
* @param \stdClass $post The post to render
* @param bool $canreply
* @param null|object $parent Optional, parent post
* @param array $commands Override default post commands
* @param int $depth Depth of the post
* @return string
*/
public function post($cm, $discussion, $post, $canreply = false, $parent = null, $commands = array(), $depth = 0, $search = '')
{
global $USER, $CFG, $DB;
$forum = hsuforum_get_cm_forum($cm);
if (!hsuforum_user_can_see_post($forum, $discussion, $post, null, $cm)) {
// Return a message about why you cannot see the post
return "<div class='hsuforum-post-content-hidden'>" . get_string('forumbodyhidden', 'hsuforum') . "</div>";
}
if ($commands === false) {
$commands = array();
} else {
if (empty($commands)) {
$commands = $this->post_get_commands($post, $discussion, $cm, $canreply, false);
} else {
if (!is_array($commands)) {
throw new coding_exception('$commands must be false, empty or populated array');
}
}
}
$postuser = hsuforum_extract_postuser($post, $forum, context_module::instance($cm->id));
$postuser->user_picture->size = 100;
// $post->breadcrumb comes from search btw.
$data = new stdClass();
$data->id = $post->id;
$data->discussionid = $discussion->id;
$data->fullname = $postuser->fullname;
$data->subject = property_exists($post, 'breadcrumb') ? $post->breadcrumb : $this->raw_post_subject($post);
$data->message = $this->post_message($post, $cm, $search);
$data->created = userdate($post->created, get_string('articledateformat', 'hsuforum'));
$data->rawcreated = $post->created;
$data->datetime = date(DATE_W3C, usertime($post->created));
$data->privatereply = $post->privatereply;
$data->imagesrc = $postuser->user_picture->get_url($this->page)->out();
$data->userurl = $this->get_post_user_url($cm, $postuser);
$data->unread = empty($post->postread) ? true : false;
$data->permalink = new moodle_url('/mod/hsuforum/discuss.php#p' . $post->id, array('d' => $discussion->id));
$data->isreply = false;
$data->parentfullname = '';
$data->parentuserurl = '';
$data->tools = implode(' ', $commands);
$data->postflags = implode(' ', $this->post_get_flags($post, $cm, $discussion->id, false));
$data->depth = $depth;
$data->revealed = false;
if ($forum->anonymous && $postuser->id === $USER->id && $post->reveal) {
$data->revealed = true;
}
if (!empty($post->children)) {
$post->replycount = count($post->children);
}
$data->replycount = '';
// Only show reply count if replies and not first post
if (!empty($post->replycount) && $post->replycount > 0 && $post->parent) {
$data->replycount = hsuforum_xreplies($post->replycount);
}
// Mark post as read.
if ($data->unread) {
hsuforum_mark_post_read($USER->id, $post, $forum->id);
}
if (!empty($parent)) {
$parentuser = hsuforum_extract_postuser($parent, $forum, context_module::instance($cm->id));
$data->parenturl = $CFG->wwwroot . '/mod/hsuforum/discuss.php?d=' . $parent->discussion . '#p' . $parent->id;
$data->parentfullname = $parentuser->fullname;
if (!empty($parentuser->user_picture)) {
$parentuser->user_picture->size = 100;
$data->parentuserurl = $this->get_post_user_url($cm, $parentuser);
$data->parentuserpic = $this->output->user_picture($parentuser, array('link' => false, 'size' => 100, 'alttext' => false));
}
}
if ($depth > 0) {
// Top level responses don't count.
$data->isreply = true;
}
return $this->post_template($data);
}
示例2: foreach
}
// Merge Moodle users last - higher priority in linking than other contact type
if (count($moodleUserGroups) > 0) {
foreach ($moodleUserGroups as $userGroup) {
$destinations += $userDAO->getUsersInGroup($userGroup, 'phone');
}
}
if (count($moodleUsers) > 0) {
$destinations += $userDAO->getUsersById($moodleUsers, 'phone');
}
// If there are valid destinations, send the message
if (count($destinations) > 0) {
$txttoolsAccount = $accountDAO->getTxttoolsAccountById($formData->txttoolsaccount);
$thisUser = new MoodletxtBiteSizedUser($USER->id, $USER->username, $USER->firstname, $USER->lastname);
if ($formData->schedule == 'schedule') {
$scheduletime = usertime(gmmktime($formData->scheduletime['H'], $formData->scheduletime['i'], 0, $formData->scheduletime['M'], $formData->scheduletime['d'], $formData->scheduletime['Y']));
} else {
$scheduletime = time();
}
$outboundMessage = new MoodletxtOutboundMessage($txttoolsAccount, $thisUser, $formData->messageText, time(), MoodletxtOutboundMessage::$MESSAGE_CHARGE_TYPE_BULK, $scheduletime, $formData->suppressUnicode);
$outboundMessage->setMessageRecipients($destinations);
try {
$connector = MoodletxtOutboundControllerFactory::getOutboundController(MoodletxtOutboundControllerFactory::$CONTROLLER_TYPE_XML);
$outboundMessage->setSentSMSMessages($connector->sendMessage($outboundMessage));
$messageDAO->saveSentMessage($outboundMessage);
$statsDAO->incrementUserOutboundStatsById($txttoolsAccount->getId(), $USER->id, 1);
// Stub for later expansion
$sentPageUrl = new moodle_url('/blocks/moodletxt/sent.php', array('course' => $courseId, 'instance' => $instanceId));
redirect($sentPageUrl, get_string('redirectmessagesent', 'block_moodletxt'));
} catch (MoodletxtRemoteProcessingException $ex) {
// Uh-oh, couldn't send! Display error, please
示例3: array
// CSS classes for each column in the table.
$examstable->colclasses = array("exams_examname", null);
$examstable->data[] = array(get_string("examname", "mod_emarking"), $exam->name);
$details = html_writer::start_tag("div", array("class" => "printdetails"));
if ($exam->headerqr) {
$details .= html_writer::div($OUTPUT->pix_icon("qr-icon", get_string("headerqr", "mod_emarking"), "mod_emarking"));
}
if ($exam->printlist) {
$details .= html_writer::div($OUTPUT->pix_icon("i/grades", get_string("printlist", "mod_emarking")));
}
if ($exam->printrandom) {
$details .= html_writer::div($OUTPUT->pix_icon("shuffle", get_string("printrandom", "mod_emarking"), "mod_emarking"));
}
$details .= emarking_enrolments_div($exam);
$details .= html_writer::end_tag("div");
$examstable->data[] = array(get_string("examdate", "mod_emarking"), date("l jS F Y, g:ia", usertime($exam->examdate)));
if ($usercangrade) {
$examstatus = emarking_exam_status_string($exam);
$examstable->data[] = array(get_string("comment", "mod_emarking"), $exam->comment);
$examstable->data[] = array(get_string("status", "mod_emarking"), $examstatus);
$examstable->data[] = array(get_string("details", "mod_emarking"), $details);
$examstable->data[] = array(get_string("sent", "mod_emarking"), emarking_time_ago($exam->timecreated));
$originals = $exam->totalpages + $exam->extrasheets;
$copies = $exam->totalstudents + $exam->extraexams;
$totalsheets = $originals * $copies;
$examstable->data[] = array(get_string('originals', 'mod_emarking'), $originals);
$examstable->data[] = array(get_string('copies', 'mod_emarking'), $copies);
$examstable->data[] = array(get_string('totalpagesprint', 'mod_emarking'), $totalsheets);
$user = $DB->get_record("user", array("id" => $exam->requestedby));
$examstable->data[] = array(get_string('requestedby', 'mod_emarking'), $user->firstname . ' ' . $user->lastname);
$examstable->data[] = array(get_string("multicourse", "mod_emarking"), $multicourse ? $multicourse : get_string("no"));
示例4: report_ncccscensus_course_search
/**
* Searches for courses using a substring match and optionally limits by category.
*
* @param string $query The substring to search for.
* @param array $categoryquery Array of categories to search for.
* @return array Matching courses or returns no matches found.
*/
function report_ncccscensus_course_search($query, $categoryquery)
{
global $DB;
$time = usertime(time(), get_user_timezone());
$param = array($time, $time, "%{$query}%");
$categorysql = "";
if (is_array($categoryquery) && count($categoryquery) > 0) {
$tempcategories = array();
foreach ($categoryquery as $category) {
array_push($tempcategories, $category['id']);
}
$categories = $DB->get_in_or_equal($tempcategories);
$categorysql = " AND category {$categories['0']} ";
foreach ($categories[1] as $temp) {
array_push($param, $temp);
}
}
$sqlquery = 'SELECT DISTINCT c.id, c.fullname FROM {course} c, {enrol} e, {user_enrolments} ue WHERE';
$sqlquery .= ' e.courseid = c.id AND ue.enrolid = e.id ';
$sqlquery .= ' AND ue.timestart < ? AND (ue.timeend > ? OR ue.timeend = 0)';
$sqlquery .= ' AND c.fullname LIKE ? ' . $categorysql;
$courses = $DB->get_records_sql($sqlquery, $param);
$results = array();
foreach ($courses as $course) {
array_push($results, array('id' => $course->id, 'name' => $course->fullname));
}
if (count($results) === 0) {
array_push($results, array('name' => get_string('noresults', 'report_ncccscensus') . " {$query}"));
}
return $results;
}
示例5: make_timestamp
/**
* Given date parts in user time produce a GMT timestamp.
*
* @param int $year The year part to create timestamp of
* @param int $month The month part to create timestamp of
* @param int $day The day part to create timestamp of
* @param int $hour The hour part to create timestamp of
* @param int $minute The minute part to create timestamp of
* @param int $second The second part to create timestamp of
* @param float $timezone ?
* @param bool $applydst ?
* @return int timestamp
* @todo Finish documenting this function
*/
function make_timestamp($year, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $timezone = 99, $applydst = true)
{
$strtimezone = NULL;
if (!is_numeric($timezone)) {
$strtimezone = $timezone;
}
$timezone = get_user_timezone_offset($timezone);
if (abs($timezone) > 13) {
$time = mktime((int) $hour, (int) $minute, (int) $second, (int) $month, (int) $day, (int) $year);
} else {
$time = gmmktime((int) $hour, (int) $minute, (int) $second, (int) $month, (int) $day, (int) $year);
$time = usertime($time, $timezone);
if ($applydst) {
$time -= dst_offset_on($time, $strtimezone);
}
}
return $time;
}
示例6: data_check_text_access
/**
* this function handles the access policy to contents indexed as searchable documents. If this
* function does not exist, the search engine assumes access is allowed.
* When this point is reached, we already know that :
* - user is legitimate in the surrounding context
* - user may be guest and guest access is allowed to the module
* - the function may perform local checks within the module information logic
* @param string $path the access path to the module script code
* @param string $itemtype the information subclassing (usefull for complex modules, defaults to 'standard')
* @param int $this_id the item id within the information class denoted by itemtype. In databases, this id
* points out an indexed data record page.
* @param object $user the user record denoting the user who searches
* @param int $group_id the current group used by the user when searching
* @uses $CFG, $DB
* @return true if access is allowed, false elsewhere
*/
function data_check_text_access($path, $itemtype, $this_id, $user, $group_id, $context_id)
{
global $CFG, $DB;
// get the database object and all related stuff
if ($itemtype == 'record') {
$record = $DB->get_record('data_records', array('id' => $this_id));
} elseif ($itemtype == 'comment') {
$comment = $DB->get_record('data_comments', array('id' => $this_id));
$record = $DB->get_record('data_records', array('id' => $comment->recordid));
} else {
// we do not know what type of information is required
return false;
}
$data = $DB->get_record('data', array('id' => $record->dataid));
$context = $DB->get_record('context', array('id' => $context_id));
$cm = $DB->get_record('course_modules', array('id' => $context->instanceid));
if (empty($cm)) {
return false;
}
// Shirai 20090530 - MDL19342 - course module might have been delete
if (!$cm->visible && !has_capability('moodle/course:viewhiddenactivities', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : hidden database ";
}
return false;
}
//group consistency check : checks the following situations about groups
// trap if user is not same group and groups are separated
$course = $DB->get_record('course', 'id', $data->course);
if (isset($cm->groupmode) && empty($course->groupmodeforce)) {
$groupmode = $cm->groupmode;
} else {
$groupmode = $course->groupmode;
}
if ($groupmode == SEPARATEGROUPS && !ismember($group_id) && !has_capability('moodle/site:accessallgroups', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : separated group owned resource ";
}
return false;
}
//ownership check : checks the following situations about user
// trap if user is not owner and has cannot see other's entries
if ($itemtype == 'record') {
if ($user->id != $record->userid && !has_capability('mod/data:viewentry', $context) && !has_capability('mod/data:manageentries', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : not owned resource ";
}
return false;
}
}
//approval check
// trap if unapproved and has not approval capabilities
// TODO : report a potential capability lack of : mod/data:approve
$approval = $DB->get_field('data_records', 'approved', array('id' => $record->id));
if (!$approval && !has_capability('mod/data:manageentries', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : unapproved resource ";
}
return false;
}
//minimum records to view check
// trap if too few records
// TODO : report a potential capability lack of : mod/data:viewhiddenentries
$recordsAmount = $DB->count_records('data_records', array('dataid' => $data->id));
if ($data->requiredentriestoview > $recordsAmount && !has_capability('mod/data:manageentries', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : not enough records to view ";
}
return false;
}
//opening periods check
// trap if user has not capability to see hidden records and date is out of opening range
// TODO : report a potential capability lack of : mod/data:viewhiddenentries
$now = usertime(time());
if ($data->timeviewfrom > 0) {
if ($now < $data->timeviewfrom && !has_capability('mod/data:manageentries', $context)) {
if (!empty($CFG->search_access_debug)) {
echo "search reject : still not open activity ";
}
return false;
}
}
if ($data->timeviewto > 0) {
if ($now > $data->timeviewto && !has_capability('mod/data:manageentries', $context)) {
//.........这里部分代码省略.........
示例7: write_date
/**
* Write one date somewhere in the worksheet
* @param integer $row Zero indexed row
* @param integer $col Zero indexed column
* @param string $date The date to write in UNIX timestamp format
* @param mixed $format The XF format for the cell
*/
function write_date($row, $col, $date, $format=null) {
/// Calculate the internal PEAR format
$format = $this->MoodleExcelFormat2PearExcelFormat($format);
/// Convert the date to Excel format
$timezone = get_user_timezone_offset();
if ($timezone == 99) {
// system timezone offset in seconds
$offset = (int)date('Z');
} else {
$offset = (int)($timezone * HOURSECS * 2);
}
$value = ((usertime($date) + $offset) / 86400) + 25569;
/// Add the date safely to the PEAR Worksheet
$this->pear_excel_worksheet->writeNumber($row, $col, $value, $format);
}
示例8: get_sessions_by_course
function get_sessions_by_course($sessionids, $displayinfo, $waitlistedsessions) {
global $DB, $activefilters, $hasvalue;
if (empty($sessionids) && empty($waitlistedsessions)) {
return array();
}
// Add IDs of wait-listed sessions.
foreach ($waitlistedsessions as $session) {
// If no date has been selected then add the sessionid.
if (!$hasvalue['timestart'] && !$hasvalue['timefinish']) {
$sessionids[] = $session->id;
}
}
list($insql, $params) = $DB->get_in_or_equal($sessionids);
// If timestart/timefinish has a date, it uses that date. It uses the current month otherwise.
$timestart = $hasvalue['timestart'] ? $activefilters['defaultfields']['unixtimestart'] : usertime($displayinfo->tstart);
$timeend = $hasvalue['timefinish'] ? $activefilters['defaultfields']['unixtimefinish'] : usertime($displayinfo->tend);
$params[] = $timestart;
$params[] = $timeend;
$sessions = $DB->get_records_sql("SELECT d.id, s.id AS sessionid, f.id AS facetofaceid, f.name, s.datetimeknown, d.timestart, d.timefinish, d.sessiontimezone
FROM {facetoface} f
JOIN {facetoface_sessions} s ON f.id = s.facetoface
JOIN {facetoface_sessions_dates} d ON d.sessionid = s.id
WHERE s.id {$insql} AND ((d.timestart >= ? AND d.timestart <= ?) OR s.datetimeknown = 0)
ORDER BY f.name, d.timestart", $params);
return $sessions;
}
示例9: process_gdoc
public static function process_gdoc($gdoc)
{
global $OUTPUT;
if (isset($gdoc->explicitlyTrashed) && $gdoc->explicitlyTrashed) {
return false;
}
$title = !empty($gdoc->originalFilename) ? $gdoc->originalFilename : $gdoc->title;
$owner = !empty($gdoc->ownerNames) ? implode(', ', $gdoc->ownerNames) : '';
$download = null;
if ($gdoc->mimeType == 'application/vnd.google-apps.drawing') {
$download = self::get_link($gdoc);
} else {
if ($gdoc->mimeType == 'application/vnd.google-apps.spreadsheet') {
if (isset($gdoc->exportLinks)) {
$links = (array) $gdoc->exportLinks;
$download = $links['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
$title .= '.xlsx';
}
} else {
if ($gdoc->mimeType == 'application/vnd.google-apps.fusiontable') {
$download = $gdoc->alternateLink;
} else {
$download = !empty($gdoc->selfUrl) ? $gdoc->selfUrl : (!empty($gdoc->downloadUrl) ? $gdoc->downloadUrl : $gdoc->alternateLink);
}
}
}
$url = !empty($gdoc->downloadUrl) ? $gdoc->downloadUrl : '';
$size = (!empty($gdoc->fileSize) ? $gdoc->fileSize : (!empty($gdoc->quotaBytesUsed) ? $gdoc->quotaBytesUsed : 'Unknown')) . ' Bytes';
$thumb = !empty($gdoc->thumbnailLink) ? $gdoc->thumbnailLink : (string) $OUTPUT->pix_url(file_extension_icon($title, 32));
// todo: make sure there's nothing else out there reliant on the $source being the URL
$file = array('title' => $title, 'url' => $url, 'source' => $gdoc->id, 'date' => usertime(strtotime($gdoc->modifiedDate)), 'thumbnail' => $thumb, 'author' => $owner, 'size' => $size, 'mimetype' => $gdoc->mimeType, 'webContentLink' => isset($gdoc->webContentLink) ? $gdoc->webContentLink : '', 'selfUrl' => isset($gdoc->selfUrl) ? $gdoc->selfUrl : '', 'downloadUrl' => isset($gdoc->downloadUrl) ? $gdoc->downloadUrl : '', 'alternateLink' => $gdoc->alternateLink, 'download' => $url);
return $file;
}
示例10: get_file_list
public function get_file_list($search = '')
{
global $CFG;
$url = google_docs::DOCUMENTFEED_URL;
if ($search) {
$url .= '?q=' . urlencode($search);
}
$content = $this->google_curl->get($url);
$xml = new SimpleXMLElement($content);
$files = array();
foreach ($xml->entry as $gdoc) {
// there doesn't seem to to be cleaner way of getting the id/type
// than spliting this..
if (preg_match('/^http:\\/\\/docs.google.com\\/feeds\\/documents\\/private\\/full\\/([^%]*)%3A(.*)$/', $gdoc->id, $matches)) {
$docid = $matches[2];
// FIXME: We're making hard-coded choices about format here.
// If the repo api can support it, we could let the user
// chose.
switch ($matches[1]) {
case 'document':
$title = $gdoc->title . '.rtf';
$source = 'http://docs.google.com/feeds/download/documents/Export?docID=' . $docid . '&exportFormat=rtf';
break;
case 'presentation':
$title = $gdoc->title . '.ppt';
$source = 'http://docs.google.com/feeds/download/presentations/Export?docID=' . $docid . '&exportFormat=ppt';
break;
case 'spreadsheet':
$title = $gdoc->title . '.xls';
$source = 'http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=' . $docid . '&fmcmd=4';
break;
}
$files[] = array('title' => $title, 'url' => "{$gdoc->link[0]->attributes()->href}", 'source' => $source, 'date' => usertime(strtotime($gdoc->updated)), 'thumbnail' => $CFG->wwwroot . '/pix/f/' . mimeinfo('icon32', $title));
}
}
return $files;
}
示例11: validation
function validation($data, $files)
{
global $CFG, $COURSE, $USER, $DB;
require_once $CFG->dirroot . "/mod/emarking/print/locallib.php";
if ($data["type"] < 0 || $data["type"] > 5) {
return array("type" => get_string("markingtypemandatory", "mod_emarking"));
}
// Calculates context for validating permissions
// If we have the module available, we use it, otherwise we fallback to course
$ctx = context_course::instance($COURSE->id);
if ($this->current && $this->current->coursemodule) {
$cm = get_coursemodule_from_id('emarking', $this->current->module, $COURSE->id);
if ($cm) {
$ctx = context_module::instance($cm->id);
}
}
$errors = array();
// Verify that we have enough markers
if ($data['type'] == EMARKING_TYPE_MARKER_TRAINING) {
// Get all users with permission to grade in emarking
$markers = get_enrolled_users($ctx, 'mod/emarking:grade');
$totalmarkers = 0;
foreach ($markers as $marker) {
if (has_capability('mod/emarking:supervisegrading', $ctx, $marker)) {
continue;
}
$totalmarkers++;
}
if ($totalmarkers < 2) {
$errors['type'] = get_string('notenoughmarkersfortraining', 'mod_emarking');
return $errors;
}
return $errors;
}
// Get the exam if we are updating an emarking activity
$exam = null;
if (isset($data['exam']) && $data['exam'] > 0) {
if (!($exam = $DB->get_record("emarking_exams", array("id" => $data["exam"])))) {
$errors["exam"] = "Invalid data from form";
}
}
// If there is no associated exam yet
if (!$exam) {
// The exam date comes from the date selector
$examdate = new DateTime();
$examdate->setTimestamp(usertime($data['examdate']));
// Day of week from 0 Sunday to 6 Saturday
$examw = date("w", $examdate->getTimestamp());
// Hour of the day un 00 to 23 format
$examh = date("H", $examdate->getTimestamp());
// If minimum days for printing is enabled
if (isset($CFG->emarking_minimumdaysbeforeprinting) && $CFG->emarking_minimumdaysbeforeprinting > 0) {
// Sundays are forbidden, saturdays from 6am to 4pm TODO: Move this settings to eMarking settings
if ($examw == 0 || $examw == 6 && ($examh < 6 || $examh > 16)) {
$errors['examdate'] = get_string('examdateinvaliddayofweek', 'mod_emarking');
}
// User date. Important because the user sees a date selector based on her timezone settings, not the server's
$date = usertime(time());
// Today is the date according to the user's timezone
$today = new DateTime();
$today->setTimestamp($date);
// We have a minimum difference otherwise we wouldn't be in this part of the code
$mindiff = intval($CFG->emarking_minimumdaysbeforeprinting);
// If today is saturday or sunday, demand for a bigger difference
$todayw = date("w", $today->getTimestamp());
$todayw = $todayw ? $todayw : 7;
if ($todayw > 5) {
$mindiff += $todayw - 5;
}
// DateInterval calculated with diff
$diff = $today->diff($examdate, false);
// The difference using the invert from DateInterval so we know it is in the past
$realdiff = $diff->days * ($diff->invert ? -1 : 1);
// If the difference is not enough, show an error
if ($realdiff < $mindiff) {
$a = new stdClass();
$a->mindays = $mindiff;
$errors['examdate'] = get_string('examdateinvalid', 'mod_emarking', $a);
}
}
}
// If there's no previous exam to associate, and we are creating a new
// e-marking, we need the PDF file
if ($data["exam"] == 0 && !$this->_instance) {
// We get the draftid from the form
$draftid = file_get_submitted_draft_itemid('exam_files');
$usercontext = context_user::instance($USER->id);
$fs = get_file_storage();
$files = $fs->get_area_files($usercontext->id, 'user', 'draft', $draftid);
$tempdir = emarking_get_temp_dir_path($COURSE->id);
emarking_initialize_directory($tempdir, true);
$numpagesprevious = -1;
$exampdfs = array();
foreach ($files as $uploadedfile) {
if ($uploadedfile->get_mimetype() !== 'application/pdf') {
continue;
}
$filename = $uploadedfile->get_filename();
$filename = emarking_clean_filename($filename);
$newfilename = $tempdir . '/' . $filename;
//.........这里部分代码省略.........
示例12: get_file_list
public function get_file_list($search = '', $repo = null)
{
// require_once('constants.php');
global $CFG, $OUTPUT;
$url = get_morsle_url($search);
if (array_key_exists('path', $search)) {
$path = $search['path'] . '/';
unset($search['path']);
} else {
$path = null;
}
foreach ($search as $key => $param) {
if ($key === 'q') {
$param = urlencode($param);
}
$params[$key] = trim($param);
}
// $url .= '?' . implode_assoc('=', '&', $params);
$content = twolegged($url, $params, 'GET');
// $content = $this->get($url, $params, null);
$xml = new SimpleXMLElement($content->response);
$files = array();
$repolink = "{$CFG->wwwroot}/repository/repository_ajax.php?action=list&p=";
foreach ($xml->entry as $gdoc) {
$docid = (string) $gdoc->children('http://schemas.google.com/g/2005')->resourceId;
list($type, $docid) = explode(':', $docid);
$title = (string) $gdoc->title;
$source = '';
// FIXME: We're making hard-coded choices about format here.
// If the repo api can support it, we could let the user
// chose.
switch ($type) {
case 'folder':
break;
case 'document':
$temptitle = 'temp.doc';
break;
case 'presentation':
$temptitle = 'temp.ppt';
break;
case 'spreadsheet':
$temptitle = 'temp.xls';
break;
case 'pdf':
$temptitle = 'temp.pdf';
break;
default:
$temptitle = $gdoc->title;
}
$source = (string) get_href_noentry($gdoc, GDOC_ALT_REL);
// TODO: get this thumbnail working with the display
$iconlink = '<img src="' . (string) get_href_noentry($gdoc, GDOC_THUMB_REL) . '" />';
if (!empty($source)) {
if ($type == 'folder') {
echo null;
$files[] = array('title' => $title, 'url' => "{$gdoc->link[0]->attributes()->href}", 'source' => $source, 'date' => usertime(strtotime($gdoc->updated)), 'children' => array(), 'path' => base64_encode($docid . '|' . $path . $title), 'thumbnail' => (string) $OUTPUT->pix_url('f/folder-64'));
} else {
$files[] = array('title' => $title, 'url' => $source, 'source' => $source, 'date' => usertime(strtotime($gdoc->updated)), 'thumbnail' => (string) $OUTPUT->pix_url(file_extension_icon($temptitle, 64)));
}
}
}
return $files;
}
示例13: validation
function validation($data, $files)
{
global $CFG;
$errors = array();
// The exam date comes from the date selector
$examdate = new DateTime();
$examdate->setTimestamp(usertime($data['examdate']));
// Day of week from 0 Sunday to 6 Saturday
$examw = date("w", $examdate->getTimestamp());
// Hour of the day un 00 to 23 format
$examh = date("H", $examdate->getTimestamp());
// Sundays are forbidden, saturdays from 6am to 4pm TODO: Move this settings to eMarking settings
if ($examw == 0 || $examw == 6 && ($examh < 6 || $examh > 16)) {
$errors['examdate'] = get_string('examdateinvaliddayofweek', 'mod_emarking');
}
// If minimum days for printing is enabled
if (isset($CFG->emarking_minimumdaysbeforeprinting) && $CFG->emarking_minimumdaysbeforeprinting > 0) {
// User date. Important because the user sees a date selector based on her timezone settings, not the server's
$date = usertime(time());
// Today is the date according to the user's timezone
$today = new DateTime();
$today->setTimestamp($date);
// We have a minimum difference otherwise we wouldn't be in this part of the code
$mindiff = intval($CFG->emarking_minimumdaysbeforeprinting);
// If today is saturday or sunday, demand for a bigger difference
$todayw = date("w", $today->getTimestamp());
$todayw = $todayw ? $todayw : 7;
if ($todayw > 5) {
$mindiff += $todayw - 5;
}
// DateInterval calculated with diff
$diff = $today->diff($examdate, false);
// The difference using the invert from DateInterval so we know it is in the past
$realdiff = $diff->days * ($diff->invert ? -1 : 1);
// If the difference is not enough, show an error
if ($realdiff < $mindiff) {
$a = new stdClass();
$a->mindays = $mindiff;
$errors['examdate'] = get_string('examdateinvalid', 'mod_emarking', $a);
}
}
// If print random order within groups
if (isset($data['printrandom']) && $data['printrandom'] === '1') {
$groups = groups_get_all_groups($data["course"]);
if (count($groups) == 0) {
$errors['printrandom'] = get_string('printrandominvalid', 'mod_emarking');
}
}
return $errors;
}
示例14: facetofaceb_date_parse_from_format
/**
* returns unix timestamp from a date string depending on the date format
*
* @param string $format e.g. "d/m/Y" - see date_parse_from_format for supported formats
* @param string $date a date to be converted e.g. "12/06/12"
* @return int unix timestamp (0 if fails to parse)
*/
function facetofaceb_date_parse_from_format($format, $date) {
global $CFG;
$tz = isset($CFG->timezone) ? $CFG->timezone : 99;
$timezone = get_user_timezone_offset($tz);
$dateArray = array();
$dateArray = date_parse_from_format($format, $date);
if (is_array($dateArray) && isset($dateArray['error_count']) &&
$dateArray['error_count'] == 0) {
if (abs($timezone) > 13) {
$time = mktime($dateArray['hour'], $dateArray['minute'], $dateArray['second'], $dateArray['month'], $dateArray['day'], $dateArray['year']);
} else {
$time = gmmktime($dateArray['hour'], $dateArray['minute'], $dateArray['second'], $dateArray['month'], $dateArray['day'], $dateArray['year']);
$time = usertime($time, $timezone);
}
return $time;
} else {
return 0;
}
}
示例15: get_exam_date_errors
private function get_exam_date_errors($data)
{
global $CFG;
$errors = array();
if (!isset($data['examdate'])) {
$a = new stdClass();
$a->mindays = 2;
$errors['examdate'] = get_string('examdateinvalid', 'mod_emarking', $a);
return $errors;
}
// The exam date comes from the date selector.
$examdate = new DateTime();
$examdate->setTimestamp(usertime($data['examdate']));
// Day of week from 0 Sunday to 6 Saturday.
$examw = date("w", $examdate->getTimestamp());
// Hour of the day un 00 to 23 format.
$examh = date("H", $examdate->getTimestamp());
// We have a minimum difference otherwise we wouldn't be in this part of the code.
if (isset($CFG->emarking_minimumdaysbeforeprinting) && $CFG->emarking_minimumdaysbeforeprinting > 0) {
$mindiff = intval($CFG->emarking_minimumdaysbeforeprinting);
} else {
return $errors;
}
// Sundays are forbidden, saturdays from 6am to 4pm TODO: Move this settings to eMarking settings.
if ($examw == 0 || $examw == 6 && ($examh < 6 || $examh > 16)) {
$errors['examdate'] = get_string('examdateinvaliddayofweek', 'mod_emarking');
}
// User date. Important because the user sees a date selector based on her timezone settings, not the server's.
$date = usertime(time());
// Today is the date according to the user's timezone.
$today = new DateTime();
$today->setTimestamp($date);
// If today is saturday or sunday, demand for a bigger difference.
$todayw = date("w", $today->getTimestamp());
$todayw = $todayw ? $todayw : 7;
if ($todayw > 5) {
$mindiff += $todayw - 5;
}
// DateInterval calculated with diff.
$diff = $today->diff($examdate, false);
// The difference using the invert from DateInterval so we know it is in the past.
$realdiff = $diff->days * ($diff->invert ? -1 : 1);
// If the difference is not enough, show an error.
if ($realdiff < $mindiff) {
$a = new stdClass();
$a->mindays = $mindiff;
$errors['examdate'] = get_string('examdateinvalid', 'mod_emarking', $a);
}
return $errors;
}