function editContent ($content, $submit, $class = "") { if (!$class) { $this->css->resetClass(); $this->css->switchClass(); $class = $this->css->getClass(); } $out = "\n<!-- BEGIN Content -->\n"; $out .= "<tr><td class=\"$class\" width=\"100%\" align=\"left\">\n"; $out .= '<form name="edit_form" action="' . URLHelper::getLink('?com=store#anker') . '" method="post">'; $out .= CSRFProtection::tokenTag(); $out .= "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\n"; $out .= "<tr>" . printcontent("100%", FALSE, $content, "", FALSE) . "</tr>"; $out .= "$submit</table>\n</form>\n</td></tr>\n"; $out .= "<!-- END Content -->\n"; return $out; }
<?php use Studip\Button, Studip\LinkButton; ?> <? if ($module_anker_target) : ?> <a name='anker'></a> <? endif ?> <table border="0" cellpadding="0" cellspacing="0" width="100%" align="center"> <tr> <? printhead(0, 0, $module_link, $module_is_open ? 'open' : 'close', $module_is_new, $module_icon, '<a href="'.$module_link.'" class="tree">'.$module_title.'</a>', $module_source, $module_change_date) ?> </tr> </table> <? if ($module_is_open): ?> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <?php echo printcontent(0, 0, $module_description . ($module_buttons ? '<br><br>' . $module_buttons : ''), ''); ?> </tr> </table> <? endif ?>
/** * Displays the body of a folder including the description, changeform, subfolder and files * */ function display_folder_body($folder_id, $open, $change, $move, $upload, $refresh=FALSE, $filelink="", $anchor_id, $level = 0) { global $_fullname_sql, $SessionSeminar, $SemUserStatus, $SessSemName, $user, $perm, $rechte, $countfolder; $db = DBManager::get(); //Einbinden einer Klasse, die Informationen über den ganzen Baum enthält $folder_tree = TreeAbstract::GetInstance('StudipDocumentTree', array('range_id' => $SessionSeminar)); //Hole alle Informationen, die es über $folder_id gibt $query = "SELECT ". $_fullname_sql['full'] ." AS fullname , username, folder_id, a.range_id, a.user_id, name, a.description, a.mkdate, a.chdate FROM folder a LEFT JOIN auth_user_md5 USING (user_id) LEFT JOIN user_info USING (user_id) WHERE a.folder_id = '$folder_id' ORDER BY a.name, a.chdate"; $result = $db->query($query)->fetch(); $document_count = doc_count($folder_id); $super_folder = $folder_tree->getNextSuperFolder($folder_id); $is_issue_folder = ((count($folder_tree->getParents($folder_id)) > 1) && IssueDB::isIssue($result["range_id"])); if ($is_issue_folder) { $dates_for_issue = IssueDB::getDatesforIssue($result['range_id']); } print "<table cellpadding=0 border=0 cellspacing=0 width=\"100%\">"; //Ausgabe der Optionen zu dem Ordner mit Beschreibung, Knöpfen und PiPaPo print "<tr>"; if ((($document_count > 0) || ($folder_tree->hasKids($folder_id))) && ($folder_tree->isReadable($folder_id))) { print "<td style=\"background-image: url(".Assets::image_path('datatree_grau.gif') . "); background-repeat: repeat-y;\">"; print Assets::img('datatree_grau.gif'); print "</td>"; } else { print "<td class=\"printcontent\"> </td>"; } print "<td width=100% class=\"printcontent\" style=\"font-align: center\">"; $content=''; if ($super_folder){ $content .= Icon::create('lock-locked', 'inactive')->asImg(['class' => 'texttop']) . ' ' . sprintf(_("Dieser Ordner ist nicht zugänglich, da der übergeordnete Ordner \"%s\" nicht lesbar oder nicht sichtbar ist!"), htmlReady($folder_tree->getValue($super_folder,'name'))) . '<hr>'; } if ($folder_tree->isExerciseFolder($folder_id)){ $content .= Icon::create('edit', 'inactive')->asImg(['class' => 'texttop']) . ' ' . _("Dieser Ordner ist ein Hausaufgabenordner. Es können nur Dateien eingestellt werden.") . (!$rechte ? _("Sie selbst haben folgende Dateien in diesen Ordner eingestellt:") . '<br><b>' . htmlReady(join('; ', get_user_documents_in_folder($folder_id, $GLOBALS['user']->id))).'</b>' : '') . '<hr>'; } if ($is_issue_folder) { $dates = array(); foreach ($dates_for_issue as $date) { $dates[] = strftime("%x", $date['date']); } $content .= _("Dieser Ordner ist ein themenbezogener Dateiordner."); if(count($dates)){ $content .= ' ' ._("Folgende Termine sind diesem Thema zugeordnet:") . '<br><b>' . htmlReady(join('; ', $dates)).'</b>'; } $content .= '<hr>'; } $is_group_folder = $folder_tree->isGroupFolder($folder_id); if ($is_group_folder){ $content .= sprintf( _('Dieser Ordner gehört der Gruppe <b>%s</b>. Nur Mitglieder dieser Gruppe können diesen Ordner sehen.' . ' Dieser Ordner kann nicht verschoben oder kopiert werden.'), htmlReady(GetStatusgruppeName($result["range_id"])) ) . '<hr>'; } //Contentbereich erstellen if ($change == $folder_id) { //Aenderungsmodus, zweiter Teil $content .= '<textarea name="change_description"' . ' style="width:98%" class="add_toolbar wysiwyg"' . ' aria-label="Beschreibung des Ordners eingeben"' . ' rows="3">' . formatReady($result["description"]) . '</textarea>'; if($rechte){ $content .= '<div>'; if ($folder_tree->permissions_activated){ $content.= "\n<label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isReadable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_read\"> "; $content.= '<b>r</b> - ' . _("Lesen (Dateien können heruntergeladen werden)"); $content.= "</label>\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isWritable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_write\"> "; $content.= '<b>w</b> - ' . _("Schreiben (Dateien können heraufgeladen werden)"); $content.= "</label>\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isExecutable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_exec\"> "; $content.= '<b>x</b> - ' . _("Sichtbarkeit (Ordner wird angezeigt)") . '</label>'; } if($level == 0 && $folder_tree->entity_type == 'sem'){ $content .= "\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->checkCreateFolder($folder_id) ? "CHECKED" : "" ) . " name=\"perm_folder\"> "; $content .= '<b>f</b> - ' . _("Ordner erstellen (Alle Nutzer können Ordner erstellen)") . '</label>'; } $content .= '</div>'; } $content .= '<div class="button-group">'; $content .= Button::createAccept(_("Übernehmen")); $content .= Button::createCancel(_("Abbrechen"), "cancel"); $content .= '</div>'; $content.= "\n<input type=\"hidden\" name=\"open\" value=\"".$folder_id."_sc_\">"; $content.="\n<input type=\"hidden\" name=\"type\" value=\"1\">"; } elseif ($result["description"]) $content .= formatReady($result["description"]); else $content .= _("Keine Beschreibung vorhanden"); if ($move == $result["folder_id"]){ $content .= "<br>" . sprintf(_("Dieser Ordner wurde zum Verschieben / Kopieren markiert. Bitte wählen Sie das Einfügen-Symbol %s, um ihn in den gewünschten Ordner zu verschieben."), Icon::create('arr_2right', 'sort', ['title' => _("Klicken Sie auf dieses Symbol, um diesen Ordner in einen anderen Ordner einzufügen.")]))->asImg(); if ($rechte) { $content .= _("Wenn Sie den Ordner in eine andere Veranstaltung verschieben / kopieren möchten, wählen Sie die gewünschte Veranstaltung oben auf der Seite aus."); } } if ($upload == $folder_id) { $content .= form($refresh); } // Abfrage ob Dateilink eingeleitet if ($filelink == $folder_id) { $content .= link_item($folder_id); } $content.= "\n"; $edit=''; //Editbereich erstellen if (($change != $folder_id) && ($upload != $folder_id) && ($filelink != $folder_id)) { if ($perm->have_studip_perm('autor', $SessionSeminar) && $folder_tree->isWritable($folder_id, $user->id)) # Knopf: hochladen $edit .= LinkButton::create(_("Hochladen"), URLHelper::getURL("?open=".$folder_id."_u_&rand=".rand()."#anker")); # Knopf: Datei verlinken if ($rechte) { $edit .= LinkButton::create(_("Datei verlinken"), URLHelper::getURL("?open=".$folder_id."_l_&rand=".rand()."#anker")); } # Knopf: Ordner als ZIP if ($document_count && $folder_tree->isReadable($folder_id, $user->id)) { $edit .= LinkButton::create(_("Ordner als ZIP"), URLHelper::getURL("?folderzip=".$folder_id)); } if ($perm->have_studip_perm('autor', $SessionSeminar) && $folder_tree->checkCreateFolder($folder_id, $user->id)) { if ($folder_tree->isWritable($folder_id, $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id)) { # Knopf: neuer Ordner $edit .= LinkButton::create(_("Neuer Ordner"), URLHelper::getURL("?open=".$folder_id."_n_#anker")); # Knopf: ZIP hochladen if ($rechte && get_config('ZIP_UPLOAD_ENABLE')) { $edit .= LinkButton::create(_("ZIP hochladen"), URLHelper::getURL("?open=".$folder_id."_z_&rand=".rand()."#anker")); } } # Knopf: löschen if ($rechte || ( !$document_count && $level !=0 && ( $folder_tree->isWritable($folder_id, $user->id) && $folder_tree->isWritable($folder_tree->getValue($folder_id, 'parent_id'), $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) ) { $edit .= LinkButton::create(_("Löschen"), URLHelper::getURL("?open=".$folder_id."_d_")); } # Knopf: bearbeiten if ($folder_tree->isWritable($folder_id, $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id)) { $edit .= LinkButton::create(_("Bearbeiten"), URLHelper::getURL("?open=".$folder_id."_c_#anker")); } # verschieben if ( ($rechte && $result['range_id'] != $SessSemName[1]) || ( $level !=0 && ( $folder_tree->isWritable($folder_id, $user->id) && $folder_tree->isWritable($folder_tree->getValue($folder_id, 'parent_id'), $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) ) { if (!$is_issue_folder && !$is_group_folder) { $edit.= LinkButton::create(_("Verschieben"), URLHelper::getURL("?open=".$folder_id."_m_#anker")); } } # Knopf: kopieren if ($rechte || ( $level !=0 && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) { if (!$is_issue_folder && !$is_group_folder) { $edit.= LinkButton::create(_("Kopieren"), URLHelper::getURL("?open=".$folder_id."_co_#anker")); } } } # Knopf: sortieren if ($rechte) { $edit .= LinkButton::create(_("Sortieren"), URLHelper::getURL("?open=".$folder_id."_az_#anker")); } } if (!$edit) $edit = ' '; print "<table width=\"100%\" cellpadding=0 cellspacing=0 border=0><tr>"; //Ordner-Content ausgeben printcontent ("99%", TRUE, $content, $edit); print "</tr></table>"; print "</td></tr>"; //Ein paar Überprüfungen, was eigentlich angezeigt werden soll: Dateien und Unterordner $folders_kids = $folder_tree->getKids($folder_id); $folders_kids = $db->query("SELECT folder_id " . "FROM folder " . "WHERE range_id = ".$db->quote($folder_id)." " . "ORDER BY priority ASC, name ASC")->fetchAll(); $hasrealkids = $folder_tree->hasKids($folder_id); if ( ((count($folders_kids)) || ($document_count > 0)) && (($rechte) || ($folder_tree->isExecutable($folder_id, $user->id))) ) { print "<tr>"; //Der Navigationsast nach unten print "<td class=\"tree-elbow-line\">" . Assets::img("datatree_3.gif") . "</td>"; //Mehrere Zeilen, die wiederum Dateien mit eventuellen Optionen sind. print "<td colspan=3>"; print "<div class=\"folder_container".($rechte ? " sortable" : "")."\" id=\"folder_subfolders_".$folder_id."\">"; //Unterordner darstellen: is_array($folders_kids) || $folders_kids = array(); $subfolders = array(); foreach ($folders_kids as $key => $unterordner) { if (($folder_tree->isExecutable($unterordner['folder_id'], $user->id)) || ($rechte)) { //bin ich Dozent oder Tutor? $subfolders[] = $unterordner['folder_id']; } } if ($subfolders) { foreach ($subfolders as $key => $subfolder) { $folder_pos = ((count($subfolders) > 1) ? (($key == 0) ? "top" : (($key == count($subfolders)-1) ? "bottom" : "middle")) : "alone"); display_folder($subfolder, $open, $change, $move, $upload, $refresh, $filelink, $anchor_id, $folder_pos, false); } } print "</div>"; //Dateien darstellen: $countfolder++; print "<div class=\"folder_container".($rechte ? " sortable" : "")."\" id=\"folder_".$folder_id."\">"; if (($rechte) || ($folder_tree->isReadable($folder_id, $user->id))) { $query = "SELECT a.*,". $_fullname_sql['full'] ." AS fullname, " . "username, " . "IF(IFNULL(a.name,'')='', a.filename,a.name) AS t_name " . "FROM dokumente a " . "LEFT JOIN auth_user_md5 USING (user_id) " . "LEFT JOIN user_info USING (user_id) " . "WHERE range_id = '".$result["folder_id"]."' " . "ORDER BY a.priority ASC, t_name ASC, a.chdate DESC "; $result2 = $db->query($query)->fetchAll(); foreach ($result2 as $key => $datei) { $file_pos = ((count($result2) > 1) ? (($key == 0) ? "top" : (($key == count($result2)-1) ? "bottom" : "middle")) : "alone"); display_file_line($datei, $folder_id, $open, $change, $move, $upload, FALSE, $refresh, $filelink, $anchor_id, $file_pos); } } print "</div>"; print "</td></tr>"; } print "</table>"; //Ende der zweiten Tabelle }
<? } if (isset($result_printlink)) { ?> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <? printhead ("99%", FALSE, "", "open", true, ' ' . $result_printimage, $result_printlink, $result_printdesc); ?> </tr> </table> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <? printcontent("99%", FALSE, $result_printcontent, ""); ?> </tr> </table> <br> <? } if (isset($export_weiter_button)) { ?> <br> <br> <? echo $export_weiter_button; } ?>
function ShowRow($icon, $link, $titel, $zusatz, $level='', $lines='', $weitere, $new=FALSE, $open="close", $content=FALSE, $edit='', $breite="99%") { ?><table border=0 cellpadding=0 cellspacing=0 width="99%" align="center"> <tr> <td class="blank tree-indent" valign="top" nowrap><? if (!$content) $content=_("Keine Beschreibung"); //Struktur darstellen $striche = ""; for ($i=0;$i<$level;$i++) { if ($i==($level-1)) { if ($this->lines[$i+1]>1) $striche.= Assets::img('forumstrich3.gif'); //Kreuzung else $striche.= Assets::img('forumstrich2.gif'); //abknickend $this->lines[$i+1] -= 1; } else { if ($this->lines[$i+1]==0) $striche .= Assets::img('forumleer.gif'); //Leerzelle else $striche .= Assets::img('forumstrich.gif'); //Strich } } echo $striche; ?></td> <? //Kofzeile ausgeben printhead ($breite, 0, $link, $open, $new, $icon, $titel, $zusatz); ?> </tr> </table> <? //weiter zur Contentzeile if ($open=="open") { ?><table width="99%" cellpadding=0 cellspacing=0 border=0 align="center"> <tr> <? //wiederum Striche fuer Struktur ?><td class="blank" nowrap background="<?php echo Assets::image_path('forumleer.gif'); ?> "></td> <? $striche=''; if ($level) for ($i=1;$i<=$level;$i++) { if ($this->lines[$i]==0) { $striche.= "<td class=\"blank tree-indent\" nowrap background=\"" . Assets::image_path('forumleer.gif') . "\">"; $striche.= Assets::img('forumleer.gif'); $striche.= "</td>"; } else { $striche.= "<td class=\"blank tree-indent\" nowrap background=\"" . Assets::image_path('forumstrich.gif') . "\">"; $striche.= Assets::img('forumleer2.gif'); $striche.= "</td>"; } } if ($weitere) { $striche.= "<td class=\"blank tree-indent\" nowrap background=\"" . Assets::image_path('forumstrichgrau.gif') . "\">"; $striche.= Assets::img('forumleer.gif'); $striche.= "</td>"; } else { $striche.= "<td class=\"blank tree-indent\" nowrap background-color: #f3f5f8\">"; $striche.= Assets::img('forumleer.gif'); $striche.= "</td>"; } echo $striche; //Contenzeile ausgeben printcontent ($breite, FALSE, $content, $edit); ?> </tr> </table> <? } }
/** * Display Page diffs, restrictable to recent versions * * @param string WikiPage name * @param string Only show versions newer than this timestamp * **/ function showDiffs($keyword, $versions_since) { global $SessSemName; $query = "SELECT * FROM wiki WHERE keyword = ? AND range_id = ? ORDER BY version DESC"; $statement = DBManager::get()->prepare($query); $statement->execute(array($keyword, $SessSemName[1])); $versions = $statement->fetchAll(PDO::FETCH_ASSOC); if (count($versions) === 0) { throw new InvalidArgumentException(_('Es gibt keine zu vergleichenden Versionen.')); } showPageFrameStart(); wikiSinglePageHeader($wikiData, $keyword); echo "\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">"; $version = array_shift($versions); $last = $version['body']; $lastversion = $version['version']; $zusatz = getZusatz($version); foreach ($versions as $version) { echo '<tr>'; $current = $version['body']; $currentversion = $version['version']; $diffarray = '<b><font size=-1>'. _("Änderungen zu") . " </font> $zusatz</b><p>"; $diffarray .= "<table cellpadding=0 cellspacing=0 border=0 width=\"100%\">\n"; $diffarray .= do_diff($current, $last); $diffarray .= "</table>\n"; printcontent(0, 0, $diffarray, ''); echo '</tr>'; $last = $current; $lastversion = $currentversion; $zusatz = getZusatz($version); if ($versions_since && $version['chdate'] < $versions_since) { break; } } echo '</table>'; getDiffPageInfobox($keyword); showPageFrameEnd(); }