Exemple #1
0
    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;
    }
Exemple #2
0
<?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 ?>
Exemple #3
0
/**
 * 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\">&nbsp;</td>";
    }
    print "<td width=100% class=\"printcontent\" style=\"font-align: center\">";

    $content='';
    if ($super_folder){
        $content .=  Icon::create('lock-locked', 'inactive')->asImg(['class' => 'texttop']) . '&nbsp;'
            . 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']) . '&nbsp;'
                . _("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 .= '&nbsp;' ._("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\">&nbsp;";
                $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\">&nbsp;";
                $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\">&nbsp;";
                $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\">&nbsp;";
                $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 = '&nbsp;';
    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
}
Exemple #4
0
 <?
 }
 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;
 }
 ?>
Exemple #5
0
    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>
        <?
        }
    }
Exemple #6
0
/**
* 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();
}