function display_folder($app, $folder, $base = "") { ?> <ul class="subpages"> <?php foreach ($folder as $page) { ?> <?php if (CP_Helper::is_page_visible($page)) { ?> <li class="page"> <div class="page-wrapper"> <div class="page-primary"> <!-- PAGE TITLE --> <?php if ($page['type'] == 'file') { ?> <a href="<?php print $app->urlFor('publish') . "?path={$base}/{$page['slug']}"; ?> "><span class="page-title"><?php print isset($page['title']) ? $page['title'] : Slug::prettify($page['slug']); ?> </span></a> <?php } else { ?> <a href="<?php print $app->urlFor('publish') . "?path={$page['file_path']}"; ?> "><span class="page-title"><?php print isset($page['title']) ? $page['title'] : Slug::prettify($page['slug']); ?> </span></a> <?php } ?> <!-- ENTRIES --> <?php if (isset($page['has_entries']) && $page['has_entries']) { ?> <div class="control-entries"> <span class="ss-icon">textfile</span> <span class="muted"><?php echo $page['entries_label']; ?> :</span> <a href="<?php print $app->urlFor('entries') . "?path={$base}/{$page['slug']}"; ?> "> <?php echo Localization::fetch('list'); ?> </a> <span class="muted"><?php echo Localization::fetch('or'); ?> </span> <a href="<?php print $app->urlFor('publish') . "?path={$base}/{$page['slug']}&new=true"; ?> "> <?php echo Localization::fetch('create'); ?> </a> </div> <?php } ?> </div> <!-- SLUG & VIEW PAGE LINK --> <div class="page-extras"> <div class="page-view"> <a href="<?php print Path::tidy(Config::getSiteRoot() . '/' . $page['url']); ?> " class="tip" title="View Page"> <span class="ss-icon">link</span> </a> </div> <?php if ($page['type'] != 'file' && Config::get('_enable_add_child_page', true)) { ?> <div class="page-add"><a href="#" data-path="<?php print $page['raw_url']; ?> " data-title="<?php print $page['title']; ?> " class="tip add-page-btn add-page-modal-trigger" title="<?php echo Localization::fetch('new_child_page'); ?> "><span class="ss-icon">addfile</span></a></div> <?php } ?> <?php if (Config::get('_enable_delete_page', true)) { ?> <div class="page-delete"> <?php if (array_get($page, '_admin:protected', false)) { ?> <a alt="This page is protected" class="tip"><span class="ss-icon protected">lock</span></a> <?php } else { ?> <a class="confirm tip" href="<?php print $app->urlFor('delete_page') . '?path=' . $page['raw_url'] . '&type=' . $page['type']; ?> " title="<?php echo Localization::fetch('delete_page'); ?> " data-confirm-message="<?php echo Localization::fetch('pagedelete_confirm'); ?> "> <span class="ss-icon">delete</span> </a> <?php } ?> </div> <?php } ?> <div class="slug-preview"> <?php print isset($page['url']) ? $page['url'] : $base . ' /' . $page['slug']; ?> </div> </div> </div> <?php if (isset($page['children']) && sizeof($page['children']) > 0) { display_folder($app, $page['children'], $base . "/" . $page['slug']); } ?> </li> <?php } ?> <?php } ?> </ul> <?php }
function display_folder($app, $folder, $base = "") { ?> <ul class="subpages"> <?php foreach ($folder as $page) { ?> <li class="page"> <div class="page-wrapper"> <div class="page-primary"> <!-- PAGE TITLE --> <?php if ($page['type'] == 'file') { ?> <a href="<?php print $app->urlFor('publish') . "?path={$base}/{$page['slug']}"; ?> "><span class="page-title"><?php print isset($page['title']) ? $page['title'] : Statamic_Helper::prettify($page['slug']); ?> </span></a> <?php } else { ?> <a href="<?php print $app->urlFor('publish') . "?path={$page['file_path']}"; ?> "><span class="page-title"><?php print isset($page['title']) ? $page['title'] : Statamic_Helper::prettify($page['slug']); ?> </span></a> <?php } ?> <!-- ENTRIES --> <?php if (isset($page['has_entries']) && $page['has_entries']) { ?> <div class="control-entries"> <span class="ss-icon">textfile</span> <span class="muted"><?php echo Localization::fetch('entries'); ?> :</span> <a href="<?php print $app->urlFor('entries') . "?path={$base}/{$page['slug']}"; ?> "> <?php echo Localization::fetch('list'); ?> </a> <span class="muted">or</span> <a href="<?php print $app->urlFor('publish') . "?path={$base}/{$page['slug']}&new=true"; ?> "> <?php echo Localization::fetch('create'); ?> </a> </div> <?php } ?> </div> <!-- SLUG & VIEW PAGE LINK --> <div class="page-extras"> <div class="page-view"> <a href="<?php print $page['url']; ?> " class="tip" title="View Page"> <span class="ss-icon">link</span> </a> </div> <?php if ($page['type'] != 'file') { ?> <div class="page-add"><a href="#" data-path="<?php print $page['raw_url']; ?> " data-title="<?php print $page['title']; ?> " class="tip add-page-btn" title="<?php echo Localization::fetch('new_child_page'); ?> "><span class="ss-icon">addfile</span></a></div> <?php } ?> <?php if (Config::get('_enable_delete_page', true)) { ?> <div class="page-delete"> <a class="confirm" href="<?php print $app->urlFor('delete_page') . '?path=' . $page['raw_url'] . '&type=' . $page['type']; ?> " class="tip" title="<?php echo Localization::fetch('delete_page'); ?> " data-confirm-message="Are you sure you wish to delete this page?"> <span class="ss-icon">delete</span> </a> </div> <?php } ?> <div class="slug-preview"> <?php print isset($page['url']) ? $page['url'] : $base . ' /' . $page['slug']; ?> </div> </div> </div> <?php if (isset($page['children']) && sizeof($page['children']) > 0) { display_folder($app, $page['children'], $base . "/" . $page['slug']); } ?> </li> <?php } ?> </ul> <?php }
/** * 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 }
$statement = DBManager::get()->prepare($query); $statement->execute($parameters); $result2 = $statement->fetchAll(PDO::FETCH_ASSOC); foreach ($result2 as $row2) { $folder_statement->execute(array($row2['statusgruppe_id'])); $folders = $folder_statement->fetchAll(PDO::FETCH_ASSOC); $folder_statement->closeCursor(); foreach ($folders as $folder) { if ($folder_tree->isExecutable($folder["folder_id"], $user->id) || $rechte) { display_folder($folder["folder_id"], $folder_system_data["open"], $change, $folder_system_data["move"], $folder_system_data["upload"], $folder_system_data["refresh"], $folder_system_data["link"], $open_id, NULL, false); } } } print "</div>"; print '</td><td width=1px> </td></tr></table>'; } } else { //Flatview ohne Ordnerstruktur if (!$folder_system_data['orderby']) { $folder_system_data['orderby'] = "date_rev"; }
} $stats[$id] = $q_count; } if ($_GET['type'] == 'objective') { $class = 'f100'; } else { $class = 'f2'; } if (isset($stats[$id])) { if ($type != 'objective' and $type != 'performance' or $stats[$id] > 0) { $grey_text = number_of_questions($stats[$id], $string); echo display_folder($url, $type_name, $grey_text, $class); } } elseif (isset($stats[$type_name])) { $grey_text = number_of_questions($stats[$type_name], $string); echo display_folder($url, $type_name, $grey_text, $class); } } function number_of_questions($question_no, $string) { $html = '<br /><span class="grey">' . number_format($question_no) . ' '; if ($question_no == 1) { $html .= $string['question']; } else { $html .= $string['questions']; } $html .= '</span>'; return $html; } function display_folder($url, $type_name, $grey_text, $class) {
} echo "<br/><br/>"; foreach ($dropboxfiles['contents'] as $items) { if ($items['is_dir'] == 1) { echo '<div style="color:blue;font-size:1.5em;padding-left: 20px;"><a href="dialog.php?dropboxfolder=' . $items['path'] . '">' . $items['path'] . '</a></div>'; } else { echo '<input type="checkbox" name="file" value="http://dl.dropbox.com/u/' . $accountinfo["uid"] . str_replace("/Public", "", $items["path"]) . '">'; echo '<a target="_new" href="http://dl.dropbox.com/u/' . $accountinfo['uid'] . str_replace('/Public', '', $items['path']) . '">' . $items['path'] . '</a><br/>' . "\n"; } } } /// end of Dropbox code print_header_simple(); echo "<div style='direction:ltr;text-align:left;'>"; echo "<form id=\"dropbox\" method=\"post\" action=\"dialog.php\">"; display_folder($dropbox, $dropboxfolder); // We can only use the user's Public folder when sharing files outside of Dropbox (without a password) echo "<input type=\"button\" onclick=\"onOK();\" value=\"" . get_string('add', 'dropbox', '', $CFG->dirroot . '/lib/editor/htmlarea/custom_plugins/dropbox/lang/') . "\">"; echo "<input type=\"submit\" onclick=\"logoff_dropbox();\" name=\"logoff\" value=\"" . get_string('logoff', 'dropbox', '', $CFG->dirroot . '/lib/editor/htmlarea/custom_plugins/dropbox/lang/') . "\">"; echo "</form>"; echo "</div>"; print_footer(); ?> <script type="text/javascript"> //<![CDATA[ function Init() { document.getElementById('useremail').focus(); };