function testRelsize() { // Test basic sizes and suffixed 's' if value is <> 1 $this->assertEquals('0 Bytes', relsize(0)); $this->assertEquals('0 B', relsize(0, false)); $this->assertEquals('1 Byte', relsize(1)); $this->assertEquals('1 B', relsize(1, false)); $this->assertEquals('2 Bytes', relsize(2)); $this->assertEquals('2 B', relsize(2, false)); // Test all sizes $this->assertEquals('1 Kilobyte', relsize(pow(1024, 1))); $this->assertEquals('1 Megabyte', relsize(pow(1024, 2))); $this->assertEquals('1 Gigabyte', relsize(pow(1024, 3))); $this->assertEquals('1 Terabyte', relsize(pow(1024, 4))); $this->assertEquals('1 Petabyte', relsize(pow(1024, 5))); $this->assertEquals('1 Exabyte', relsize(pow(1024, 6))); $this->assertEquals('1 Zettabyte', relsize(pow(1024, 7))); $this->assertEquals('1 Yottabyte', relsize(pow(1024, 8))); // Test displayed levels $this->assertEquals('1 Megabyte', relsize(1024 * 1024 + 2 * 1024 + 3, true, 1)); $this->assertEquals('1.5 Megabytes', relsize(1024 * 1024 + 512 * 1024 + 3, true, 1)); $this->assertEquals('1 Megabyte, 2 Kilobytes', relsize(1024 * 1024 + 2 * 1024 + 3, true, 2)); $this->assertEquals('1 Megabyte, 2 Kilobytes, 3 Bytes', relsize(1024 * 1024 + 2 * 1024 + 3, true, 3)); $this->assertEquals('1 Megabyte, 2 Kilobytes, 3 Bytes', relsize(1024 * 1024 + 2 * 1024 + 3, true, 0)); }
/** * Displays one file/document with all of its information and options. * */ function display_file_line ($datei, $folder_id, $open, $change, $move, $upload, $all, $refresh=FALSE, $filelink="", $anchor_id, $position = "middle") { global $_fullname_sql,$SessionSeminar,$SessSemName, $rechte, $anfang, $user, $SemSecLevelWrite, $SemUserStatus, $check_all, $countfiles; //Einbinden einer Klasse, die Informationen über den ganzen Baum enthält $folder_tree = TreeAbstract::GetInstance('StudipDocumentTree', array('range_id' => $SessionSeminar)); $javascriptok = true; print "\n\t<div class=\"".($rechte ? "draggable" : "")."\" id=\"file_".$folder_id."_$countfiles\">"; print "<div style=\"display:none\" id=\"getmd5_fi".$folder_id."_$countfiles\">".$datei['dokument_id']."</div>"; print "<table cellpadding=0 border=0 cellspacing=0 width=\"100%\"><tr class=\"handle\">"; if (!$all) { print "<td class=\"tree-elbow-end\">" . Assets::img("datatree_2.gif") . "</td>"; } //Farbe des Pfeils bestimmen: $chdate = (($datei["chdate"]) ? $datei["chdate"] : $datei["mkdate"]); if (object_get_visit($SessSemName[1], "documents") < $chdate) $timecolor = "#FF0000"; else { $timediff = (int) log((time() - doc_newest($folder_id)) / 86400 + 1) * 15; if ($timediff >= 68) $timediff = 68; $red = dechex(255 - $timediff); $other = dechex(119 + $timediff); $timecolor= "#" . $red . $other . $other; } if ($open[$datei["dokument_id"]]) { print "<td id=\"file_".$datei["dokument_id"]."_arrow_td\" nowrap valign=\"top\"" . "align=\"left\" width=1% bgcolor=\"$timecolor\" class=\"printhead3\" valign=\"bottom\"><a href=\""; print URLHelper::getLink("?close=".$datei["dokument_id"]."#anker"); print "\" class=\"tree\" onClick=\"return STUDIP.Filesystem.changefilebody('". $datei["dokument_id"]."', '".$SessionSeminar."')\">". Assets::img('forumgraurunt2.png', tooltip2(_('Objekt zuklappen')) + array('id' => 'file_'. $datei["dokument_id"] . '_arrow_img')). "</a></td>"; } else { print "<td id=\"file_".$datei["dokument_id"]."_arrow_td\" nowrap valign=\"top\" align=\"left\" width=1% bgcolor=\"$timecolor\" class=\"printhead2\" valign=\"bottom\"><a href=\""; print URLHelper::getLink("?open=".$datei["dokument_id"]."#anker"); print "\" class=\"tree\" onClick=\"return STUDIP.Filesystem.changefilebody('". $datei["dokument_id"]."', '".$SessionSeminar."')\">". Assets::img('forumgrau2.png', tooltip2(_('Objekt aufklappen')) + array('id' => 'file_'. $datei["dokument_id"] . '_arrow_img')). "</a></td>"; } // -> Pfeile zum Verschieben (bzw. die Ziehfläche) if ((!$all) && ($rechte)) { $countfiles++; $bewegeflaeche = "<span class=\"updown_marker\" id=\"pfeile_".$datei["dokument_id"]."\">"; if (($position == "middle") || ($position == "bottom")) { $bewegeflaeche .= "<a href=\"".URLHelper::getLink('?open='.$datei['dokument_id'])."_mfu_\" title=\""._("Datei nach oben schieben"). "\">" . Icon::create('arr_2up', 'sort')->asImg(['class' => 'text-top']) . "</a>"; } if (($position == "middle") || ($position == "top")) { $bewegeflaeche .= "<a href=\"".URLHelper::getLink('?open='. $datei['dokument_id'])."_mfd_\" title=\""._("Datei nach unten schieben"). "\">". Icon::create('arr_2down', 'sort')->asImg(['class' => 'text-top']) . "</a>"; } $bewegeflaeche .= "</span>"; } print "<td class=\"printhead\" valign=\"bottom\">"; if ($change == $datei["dokument_id"]) { print "<span id=\"file_".$datei["dokument_id"]."_header\" style=\"font-weight: bold\"><a href=\"".URLHelper::getLink("?close=".$datei["dokument_id"]."#anker")."\" class=\"tree\""; print ' name="anker"></a>'; print GetFileIcon(getFileExtension($datei['filename']))->asImg(); print "<input style=\"font-size: 8pt; width: 50%;\" type=\"text\" size=\"20\" maxlength=\"255\" name=\"change_name\" aria-label=\"Ordnername eingeben\" value=\"".htmlReady($datei["name"])."\"></b>"; } else { if (($move == $datei["dokument_id"]) || ($upload == $datei["dokument_id"]) || ($anchor_id == $datei["dokument_id"])) { print "<a name=\"anker\"></a>"; } $type = ($datei['url'] != '')? 6 : 0; // LUH Spezerei: if (check_protected_download($datei["dokument_id"])) { print "<a href=\"".GetDownloadLink( $datei["dokument_id"], $datei["filename"], $type, "normal")."\" class=\"extern\">".GetFileIcon(getFileExtension($datei['filename']))->asImg()."</a>"; } else { print Icon::create('info-circle', 'inactive')->asImg(); } //Jetzt folgt der Link zum Aufklappen if ($open[$datei["dokument_id"]]) { print "<a href=\"".URLHelper::getLink("?close=".$datei["dokument_id"]."#anker")."\" class=\"tree\" onClick=\"return STUDIP.Filesystem.changefilebody('".$datei["dokument_id"]."')\">"; print " <span id=\"file_".$datei["dokument_id"]."_header\" style=\"font-weight: bold\">"; } else { print "<a href=\"".URLHelper::getLink("?open=".$datei["dokument_id"]."#anker")."\" class=\"tree\" onClick=\"return STUDIP.Filesystem.changefilebody('".$datei["dokument_id"]."')\">"; print " <span id=\"file_".$datei["dokument_id"]."_header\" style=\"font-weight: normal\">"; } print htmlReady($datei['t_name']); print "</span>"; } //add the size print ' (' . relsize($datei['filesize'], $datei['filesize'] < 1024); //add number of downloads print " / ".(($datei["downloads"] == 1) ? $datei["downloads"]." "._("Download") : $datei["downloads"]." "._("Downloads")).")"; //So und jetzt die rechtsbündigen Sachen: print "</a></td><td align=\"right\" class=\"printhead\" valign=\"bottom\">"; if ($datei['username']) { print "<a href=\"".URLHelper::getLink('dispatch.php/profile?username='******'username'])."\">".htmlReady($datei['fullname'])."</a> "; } else { print htmlReady($datei['author_name']); } print $bewegeflaeche." "; //Workaround for older data from previous versions (chdate is 0) print " ".date("d.m.Y - H:i", (($datei["chdate"]) ? $datei["chdate"] : $datei["mkdate"])); if ($all) { if ((!$upload) && ($datei["url"]=="") && check_protected_download($datei["dokument_id"])) { $checked = ($check_all || in_array($datei["dokument_id"], Request::getArray('download_ids'))) ? 'checked' : ''; $box = sprintf ("<input type=\"CHECKBOX\" %s name=\"download_ids[]\" value=\"%s\">",$checked , $datei["dokument_id"]); print $box; } else { echo Icon::create('decline', 'inactive', ['title' => _("Diese Datei kann nicht als ZIP-Archiv heruntergeladen werden."), 'style' => 'padding-left:5px;'])->asImg(); } } print "</td></tr>"; //Ab jetzt kommt der Bereich zum Runterladen und Bearbeiten: if (isset($open[$datei["dokument_id"]])) { //Dokument-Content ausgeben print "<tr id=\"file_".$datei["dokument_id"]."_body_row\">".(($all) ? "" : "<td></td>")."<td colspan=3><div id=\"file_".$datei["dokument_id"]."_body\">"; //Der eigentliche Teil ist outsourced in die folgende Funktion, //damit der Körper auch über Ajax abgerufen werden kann. display_file_body($datei, $folder_id, $open, $change, $move, $upload, $all, $refresh, $filelink); } else { print "<tr id=\"file_".$datei["dokument_id"]."_body_row\">".(($all) ? "" : "<td></td>")."<td colspan=3><div id=\"file_".$datei["dokument_id"]."_body\" style=\"display:none\">"; } print "</div></td></tr></table>\n\t</div>"; }
<tbody> <? foreach ($viewData['configs'] as $index => $config): ?> <tr id="cfg_<?php echo $index ?: 0; ?> "> <td><?php echo htmlReady($config['name']); ?> </td> <td><?php echo relsize($config['upload_quota'], false); ?> </td> <td><?php echo relsize($config['quota'], false); ?> </td> <td> <? if(!empty($config['types'])): ?> <? foreach($config['types'] as $typ): ?> <?php echo htmlReady($typ['type']); ?> <? endforeach; ?> <? endif; ?> </td> <td> <? if($config['closed']): ?> <a href="<?php echo $controller->url_for('document/administration/activateDocumentArea', $config['id']);
<? endif; ?> </header> </div> <div class="caption-actions"> <?php echo Icon::create('stat', 'info', ['title' => _('Speicherplatz')])->asImg(); ?> <?php echo sprintf(_('%0.1f%% belegt'), $space_used / $space_total * 100); ?> (<?php echo relsize($space_used, false); ?> /<?php echo relsize($space_total, false); ?> ) </div> </div> </caption> <colgroup> <col width="25px"> <col width="30px"> <col width="20px"> <col> <col width="100px"> <col width="150px"> <col width="120px"> <col width="120px"> </colgroup>
<div id="footer"> <? printf(_('Sie sind angemeldet als %s (%s)'), htmlReady($GLOBALS['user']->username), htmlReady($GLOBALS['user']->perms)) ?> | <?php echo strftime('%x, %X'); ?> <? if (Studip\ENV === 'development'): ?> [ <?php echo sprintf('%u db queries', DBManager::get()->query_count); ?> / <?php echo relsize(memory_get_peak_usage(true), false); ?> mem ] <? endif; ?> </div> <? endif; ?> <? if (Navigation::hasItem('/footer')) : ?> <ul> <? foreach (Navigation::getItem('/footer') as $nav): ?> <? if ($nav->isVisible()): ?> <li> <a <? if (is_internal_url($url = $nav->getURL())) : ?> href="<?php
</h3> <dl> <dt><?php echo _('Inhalt'); ?> </dt> <dd><?php echo sprintf(ngettext('%u Eintrag', '%u Einträge', $count = $folder->file->countFiles()), $count); ?> </dd> <dt><?php echo _('Größe'); ?> </dt> <dd><?php echo relsize($folder->getSize(), false); ?> </dd> <dt><?php echo _('Downloads'); ?> </dt> <dd><?php echo $formatnumber($folder->downloads); ?> <dt><?php echo _('Erstellt'); ?> </dt> <dd> <?php
/** * Lets the user compose a message and send it. */ public function write_action() { PageLayout::setTitle(_("Neue Nachricht schreiben")); //collect possible default adressees $this->to = array(); $this->default_message = new Message(); if (Request::username("rec_uname")) { $user = new MessageUser(); $user->setData(array('user_id' => get_userid(Request::username("rec_uname")), 'snd_rec' => "rec")); $this->default_message->receivers[] = $user; } if (Request::getArray("rec_uname")) { foreach (Request::usernameArray("rec_uname") as $username) { $user = new MessageUser(); $user->setData(array('user_id' => get_userid($username), 'snd_rec' => "rec")); $this->default_message->receivers[] = $user; } } if (Request::option("group_id")) { $this->default_message->receivers = array(); $group = Statusgruppen::find(Request::option("group_id")); if ($group['range_id'] === $GLOBALS['user']->id || $GLOBALS['perm']->have_studip_perm("autor", $group['range_id'])) { foreach ($group->members as $member) { $user = new MessageUser(); $user->setData(array('user_id' => $member['user_id'], 'snd_rec' => "rec")); $this->default_message->receivers[] = $user; } } } if (Request::get('inst_id') && $GLOBALS['perm']->have_perm('admin')) { $query = "SELECT user_id FROM user_inst WHERE Institut_id = ? AND inst_perms != 'user'"; $this->default_message->receivers = DBManager::get()->fetchAll($query, array(Request::option('inst_id')), 'MessageUser::build'); } if (Request::get("filter") && Request::option("course_id")) { $course = new Course(Request::option('course_id')); if ($GLOBALS['perm']->have_studip_perm("tutor", Request::option('course_id')) || $course->getSemClass()['studygroup_mode']) { $this->default_message->receivers = array(); if (Request::get("filter") === 'claiming') { $cs = CourseSet::getSetForCourse(Request::option("course_id")); if (is_object($cs) && !$cs->hasAlgorithmRun()) { foreach (AdmissionPriority::getPrioritiesByCourse($cs->getId(), Request::option("course_id")) as $user_id => $p) { $this->default_message->receivers[] = MessageUser::build(array('user_id' => $user_id, 'snd_rec' => 'rec')); } } } else { $params = array(Request::option('course_id'), Request::option('who')); switch (Request::get("filter")) { case 'send_sms_to_all': $query = "SELECT b.user_id,'rec' as snd_rec FROM seminar_user a, auth_user_md5 b WHERE a.Seminar_id = ? AND a.user_id = b.user_id AND a.status = ? ORDER BY Nachname, Vorname"; break; case 'all': $query = "SELECT user_id,'rec' as snd_rec FROM seminar_user LEFT JOIN auth_user_md5 USING(user_id) WHERE Seminar_id = ? ORDER BY Nachname, Vorname"; break; case 'prelim': $query = "SELECT user_id,'rec' as snd_rec FROM admission_seminar_user LEFT JOIN auth_user_md5 USING(user_id) WHERE seminar_id = ? AND status='accepted' ORDER BY Nachname, Vorname"; break; case 'awaiting': $query = "SELECT user_id,'rec' as snd_rec FROM admission_seminar_user LEFT JOIN auth_user_md5 USING(user_id) WHERE seminar_id = ? AND status='awaiting' ORDER BY Nachname, Vorname"; break; case 'inst_status': $query = "SELECT b.user_id,'rec' as snd_rec FROM user_inst a, auth_user_md5 b WHERE a.Institut_id = ? AND a.user_id = b.user_id AND a.inst_perms = ? ORDER BY Nachname, Vorname"; break; } $this->default_message->receivers = DBManager::get()->fetchAll($query, $params, 'MessageUser::build'); } } } if (Request::option('prof_id') && Request::option('deg_id') && $GLOBALS['perm']->have_perm('root')) { $query = "SELECT DISTINCT user_id,'rec' as snd_rec\n FROM user_studiengang\n WHERE studiengang_id = ? AND abschluss_id = ?"; $this->default_message->receivers = DBManager::get()->fetchAll($query, array(Request::option('prof_id'), Request::option('deg_id')), 'MessageUser::build'); } if (Request::option('sd_id') && $GLOBALS['perm']->have_perm('root')) { $query = "SELECT DISTINCT user_id,'rec' as snd_rec\n FROM user_studiengang\n WHERE abschluss_id = ?"; $this->default_message->receivers = DBManager::get()->fetchAll($query, array(Request::option('sd_id')), 'MessageUser::build'); } if (Request::option('sp_id') && $GLOBALS['perm']->have_perm('root')) { $query = "SELECT DISTINCT user_id,'rec' as snd_rec\n FROM user_studiengang\n WHERE studiengang_id = ?"; $this->default_message->receivers = DBManager::get()->fetchAll($query, array(Request::option('sp_id')), 'MessageUser::build'); } if (!$this->default_message->receivers->count() && is_array($_SESSION['sms_data']['p_rec'])) { $this->default_message->receivers = DBManager::get()->fetchAll("SELECT user_id,'rec' as snd_rec FROM auth_user_md5 WHERE username IN(?) ORDER BY Nachname,Vorname", array($_SESSION['sms_data']['p_rec']), 'MessageUser::build'); unset($_SESSION['sms_data']); } if (Request::option("answer_to")) { $this->default_message->receivers = array(); $old_message = new Message(Request::option("answer_to")); if (!$old_message->permissionToRead()) { throw new AccessDeniedException("Message is not for you."); } if (!Request::get('forward')) { if (Request::option("quote") === $old_message->getId()) { if (Studip\Markup::isHtml($old_message['message'])) { $this->default_message['message'] = "<div>[quote]\n" . $old_message['message'] . "\n[/quote]</div>"; } else { $this->default_message['message'] = "[quote]\n" . $old_message['message'] . "\n[/quote]"; } } $this->default_message['subject'] = substr($old_message['subject'], 0, 4) === "RE: " ? $old_message['subject'] : "RE: " . $old_message['subject']; $user = new MessageUser(); $user->setData(array('user_id' => $old_message['autor_id'], 'snd_rec' => "rec")); $this->default_message->receivers[] = $user; $this->answer_to = $old_message->id; } else { $messagesubject = 'FWD: ' . $old_message['subject']; $message = _("-_-_ Weitergeleitete Nachricht _-_-"); $message .= "\n" . _("Betreff") . ": " . $old_message['subject']; $message .= "\n" . _("Datum") . ": " . strftime('%x %X', $old_message['mkdate']); $message .= "\n" . _("Von") . ": " . get_fullname($old_message['autor_id']); $num_recipients = $old_message->getNumRecipients(); if ($GLOBALS['user']->id == $old_message->autor_id) { $message .= "\n" . _("An") . ": " . ($num_recipients == 1 ? _('Eine Person') : sprintf(_('%s Personen'), $num_recipients)); } else { $message .= "\n" . _("An") . ": " . $GLOBALS['user']->getFullname() . ($num_recipients > 1 ? ' ' . sprintf(_('(und %d weitere)'), $num_recipients) : ''); } $message .= "\n\n"; if (Studip\Markup::isHtml($old_message['message'])) { $message = '<div>' . htmlReady($message, false, true) . '</div>' . $old_message['message']; } else { $message .= $old_message['message']; } if (count($old_message->attachments)) { Request::set('message_id', $old_message->getNewId()); foreach ($old_message->attachments as $attachment) { $attachment->range_id = 'provisional'; $attachment->seminar_id = $GLOBALS['user']->id; $attachment->autor_host = $_SERVER['REMOTE_ADDR']; $attachment->user_id = $GLOBALS['user']->id; $attachment->description = Request::option('message_id'); $new_attachment = $attachment->toArray(array('range_id', 'user_id', 'seminar_id', 'name', 'description', 'filename', 'filesize')); $new_attachment = StudipDocument::createWithFile(get_upload_file_path($attachment->getId()), $new_attachment); $this->default_attachments[] = array('icon' => GetFileIcon(getFileExtension($new_attachment['filename']))->asImg(['class' => "text-bottom"]), 'name' => $new_attachment['filename'], 'document_id' => $new_attachment->id, 'size' => relsize($new_attachment['filesize'], false)); } } $this->default_message['subject'] = $messagesubject; $this->default_message['message'] = $message; } } if (Request::get("default_body")) { $this->default_message['message'] = Request::get("default_body"); } if (Request::get("default_subject")) { $this->default_message['subject'] = Request::get("default_subject"); } $settings = UserConfig::get($GLOBALS['user']->id)->MESSAGING_SETTINGS; $this->mailforwarding = Request::get('emailrequest') ? true : $settings['request_mail_forward']; if (trim($settings['sms_sig'])) { if (Studip\Markup::isHtml($this->default_message['message']) || Studip\Markup::isHtml($settings['sms_sig'])) { if (!Studip\Markup::isHtml($this->default_message['message'])) { $this->default_message['message'] = '<div>' . nl2br($this->default_message['message']) . '</div>'; } $this->default_message['message'] .= '<br><br>--<br>'; if (Studip\Markup::isHtml($settings['sms_sig'])) { $this->default_message['message'] .= $settings['sms_sig']; } else { $this->default_message['message'] .= formatReady($settings['sms_sig']); } } else { $this->default_message['message'] .= "\n\n--\n" . $settings['sms_sig']; } } NotificationCenter::postNotification("DefaultMessageForComposerCreated", $this->default_message); }
:</span> <span style="padding-left:5px"><?php echo htmlReady($msg['to']); ?> </span> </div> <div style="margin-top:10px;margin-bottom:10px;"> <?php echo formatReady($msg['message']); ?> </div> <?php if (count($msg['attachments'])) { ?> <hr> <div style="font-weight:bold"> <?php echo _("Dateianhänge:"); ?> </div> <?php foreach ($msg['attachments'] as $one) { ?> <div> <?php echo htmlReady($one['filename']) . ' (' . relsize($one['filesize'], false) . ')'; ?> </div> <?php } }