* @copyright 2004 Stud.IP-Project
* @access public
* @package evaluation
* @modulegroup evaluation_modules
*
*/
// +---------------------------------------------------------------------------+
// This file is part of Stud.IP
// Copyright (C) 2001-2004 Stud.IP
// +---------------------------------------------------------------------------+
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or any later version.
// +---------------------------------------------------------------------------+
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// +---------------------------------------------------------------------------+
use Studip\Button, Studip\LinkButton;
class EvalShow
{
/**
* createEvaluationHeader: generate the head of an evaluation (title and base text)
* @param the evaluation
* @returns a table row
*/
function createEvaluationHeader( $eval, $votedNow, $votedEarlier )
{
$br = new HTMpty( "br" );
$tr = new HTM( "tr" );
$td = new HTM( "td" );
$td->attr( "class", "table_row_even" );
$table2 = new HTM( "table" );
$table2->attr( "width", "100%" );
$tr2 = new HTM( "tr" );
$td2 = new HTM( "td" );
$td2->attr( "width", "90%" );
$td2->attr( "valign", "top" );
if( $eval->isError() ) {
$td2->html( EvalCommon::createErrorReport ($eval, _("Fehler")) );
$td2->html( $br );
}
$span = new HTM( "span" );
$span->attr( "class", "eval_title" );
$span->html( htmlReady($eval->getTitle()) );
$td2->cont( $span );
$td2->cont( $br );
$td2->cont( $br );
if( $votedNow ) {
$message = new HTML('div');
$message->_content = [(string) MessageBox::success(_("Vielen Dank für Ihre Teilnahme."))];
$td2->cont($message);
} elseif( $votedEarlier ) {
$message = new HTML('div');
$message->_content = [(string) MessageBox::info(_("Sie haben an dieser Evaluation bereits teilgenommen."))];
$td2->cont($message);
} else {
$td2->html( formatReady($eval->getText()) );
$td2->cont( $br );
}
$tr2->cont( $td2 );
$voted = $votedNow || $votedEarlier;
$message = new HTML('div');
$message->_content = [(string)MessageBox::info(EvalShow::getAnonymousText($eval, $voted))];
$table2->cont($message);
$message = new HTML('div');
$message->_content = [(string)EvalShow::getStopdateText( $eval, $voted)];
$table2->cont($message);
if(!$voted && $GLOBALS["mandatories"] != 0) {
$message = new HTML('div');
$message->_content = [(string)sprintf(_("Mit %s gekennzeichnete Fragen müssen beantwortet werden."),
"**")];
$table2->cont($message);
}
$td->cont( $table2 );
$tr->cont( $td );
return $tr;
}
/**
* createEvaluation: generate the evaluation itself (questions and answers)
* @param the evaluation
* @returns a table row
*/
function createEvaluation( $tree ) {
$tr = new HTM( "tr" );
$td = new HTM( "td" );
$td->attr( "class", "table_row_even" );
$td->html( "
\n" );
ob_start();
$tree->showTree();
$html = ob_get_contents();
ob_end_clean();
$td->html( $html );
$td->setTextareaCheck();
$tr->cont( $td );
return $tr;
}
/**
* create html for the meta-information about an evaluation.
* @param Object $eval The evaluation
* @param bool $isAssociated whether the current user has used the eval
* @returns String a table row
*/
function createEvalMetaInfo( $eval, $votedNow = NO, $votedEarlier = NO ) {
$html = "";
$stopdate = $eval->getRealStopdate();
$number = EvaluationDB::getNumberOfVotes( $eval->getObjectID() );
$voted = $votedNow || $votedEarlier;
$html .= "\n";
$html .= "
\n";
# $html .= $votedEarlier ? _("Sie haben an dieser Evaluation bereits teilgenommen.") : "";
# $html .= $votedNow ? _("Vielen Dank für Ihre Teilnahme.") : "";
# $html .= $voted ? "
\n" : "";
/* multiple choice? ----------------------------------------------------- */
# if ($eval->isMultipleChoice()) {
# $html .= ($voted || $eval->isStopped())
# ? _("Sie konnten mehrere Antworten auswählen.")
# : _("Sie können mehrere Antworten auswählen.");
# $html .= " \n";
# }
/* ---------------------------------------------------------------------- */
$html .= EvalShow::getNumberOfVotesText( $eval, $voted );
$html .= "
";
$html .= EvalShow::getAnonymousText( $eval, $voted );
$html .= "
";
$html .= EvalShow::getStopdateText( $eval, $voted );
$html .= "
\n";
$html .= "\n";
/* ---------------------------------------------------------------------- */
/* create html tr object ------------------------------------------------ */
$tr = new HTM( "tr" );
$td = new HTM( "td" );
$td->attr( "align", "left" );
$td->attr( "style", "font-size:0.8em;" );
$td->html( $html );
$tr->cont( $td );
return $tr;
}
function getNumberOfVotesText( $eval, $voted ) {
$stopdate = $eval->getRealStopdate();
$number = EvaluationDB::getNumberOfVotes( $eval->getObjectID() );
$html = "";
/* Get number of participants ------------------------------------------- */
if( $stopdate < time() && $stopdate > 0 ) {
if ($number != 1)
$html .= sprintf (_("Es haben insgesamt %s Personen teilgenommen"), $number);
else
$html .= $voted
? sprintf (_("Sie waren die einzige Person die teilgenommen hat"))
: sprintf (_("Es hat insgesamt eine Person teilgenommen"));
}
else {
if ($number != 1)
$html .= sprintf (_("Es haben bisher %s Personen teilgenommen"), $number);
else
$html .= $voted
? sprintf (_("Sie waren bisher der/die einzige Person die teilgenommen hat"))
: sprintf (_("Es hat bisher eine Person teilgenommen"));
}
/* ---------------------------------------------------------------------- */
if ($voted && $number > 1)
$html .= _(", Sie ebenfalls");
$html .= ".\n";
return $html;
}
function getStopdateText( $eval, $voted ) {
$stopdate = $eval->getRealStopdate();
$html = "";
/* stopdate ------------------------------------------------------------- */
if (!empty ($stopdate)) {
if( $stopdate < time() ) {
$html .= sprintf (_("Die Evaluation wurde beendet am %s um %s Uhr."),
date ("d.m.Y", $stopdate),
date ("H:i", $stopdate));
}
else {
if( $voted ) {
$html .= sprintf (_("Die Evaluation wird voraussichtlich beendet am %s um %s Uhr."),
date ("d.m.Y", $stopdate),
date ("H:i", $stopdate));
}
else {
$html .= sprintf (_("Sie können teilnehmen bis zum %s um %s Uhr."),
date ("d.m.Y", $stopdate),
date ("H:i", $stopdate));
}
}
}
else {
$html .= _("Der Endzeitpunkt dieser Evaluation steht noch nicht fest.");
}
$html .= " \n";
return $html;
}
function getAnonymousText( $eval, $voted ) {
$stopdate = $eval->getRealStopdate();
$html = "";
/* Is anonymous --------------------------------------------------------- */
if( ($stopdate < time() && $stopdate > 0) ||
$voted )
$html .= ($eval->isAnonymous())
? _("Die Teilnahme war anonym.")
: _("Die Teilnahme war nicht anonym.");
else
$html .= ($eval->isAnonymous())
? _("Die Teilnahme ist anonym.")
# : _("Die Teilnahme ist nicht anonym.");
: ("" .
_("Dies ist eine personalisierte Evaluation. Ihre Angaben werden verknüpft mit Ihrem Namen gespeichert.") .
"");
return $html;
}
/**
* createEvaluationFooter: generate the foot of an evaluation (buttons etc.)
* @param the evaluation
* @returns a table row
*/
function createEvaluationFooter( $eval, $voted, $isPreview ) {
global $auth;
if( $isPreview )
$voted = YES;
$br = new HTMpty( "br" );
$tr = new HTM( "tr" );
$td = new HTM( "td" );
$td->attr( "class", "content_body" );
$td->attr( "align", "center" );
$td->attr( "data-dialog-button","");
$td->cont( $br );
/* vote button */
if( ! $voted ) {
$button = Button::createAccept(_('Abschicken'),
'voteButton',
['title' => _('Senden Sie Ihre Antworten hiermit ab.'), 'data-dialog' => '']);
$td->cont( $button );
}
/* close button */
if (!Request::isXHR()) {
$button = new HTM( "p" );
$button->cont( _("Sie können dieses Fenster jetzt schließen.") );
$td->cont( $button );
}
/* reload button */
if( $isPreview ) {
$button = LinkButton::create(_('Aktualisieren'),
URLHelper::getURL('show_evaluation.php?evalID='.$eval->getObjectID().'&isPreview=1'),
['title' => _('Vorschau aktualisieren.')]);
$td->cont( $button );
}
$td->cont( $br );
$td->cont( $br );
$tr->cont( $td );
return $tr;
}
function createVoteButton ($eval) {
$button = LinkButton::create(_('Anzeigen'),
URLHelper::getURL('show_evaluation.php?evalID=' .$eval->getObjectID().'&isPreview=' . NO),
['title' => _('Evaluation anzeigen.'),
'onClick' => 'openEval(\''.$eval->getObjectID().'\'); return false;']);
$div = new HTML ("div");
$div->addHTMLContent( $button );
return $div;
// keine Ahnung warum das hier nicht funktioniert, bekomme eine JS-Fehlermeldung :(
// das da oben reicht ja auch :)
/*
$script = new HTML ("script");
$script->addAttr ("type", "text/javascript");
$script->addAttr ("language", "JavaScript");
$aScript = new HTML ("a");
$aScript->addAttr ("href", "javascript:void();");
$aScript->addAttr ("onClick",
"window.open(\'show_evaluation.php?evalID=".$eval->getObjectID ()."\', ".
"\'_blank\', ".
"\'width=790,height=500,scrollbars=yes,resizable=yes\');");
$aScript->addContent ("Teilnehmen"); // Eigentlich kommt hier ein button hin
$script->addContent ("document.write ('");
$script->addContent ($aScript);
$script->addContent ("');");
$noscript = new HTML ("noscript");
$aNoScript = new HTML ("a");
$aNoScript->addAttr ("href", "show_evaluation.php?evalID=".$eval->getObjectID ());
$aNoScript->addAttr ("target", "_blank");
$aNoScript->addContent ("Teilnehmen"); // Eigentlich kommt hier ein button hin
$noscript->addContent ($aNoScript);
$div = new HTML ("div");
$div->addContent ($script);
$div->addContent ($noscript);
$tr = new HTML ("tr");
$td = new HTML ("td");
$td->addContent($script);
$td->addContent($noscript);
$tr->addContent($td);
return $tr;
*/
}
function createEditButton ($eval) {
$button = LinkButton::create(_('Bearbeiten'),
URLHelper::getURL(EVAL_FILE_ADMIN."?page=edit&evalID=".$eval->getObjectID()),
['title' => _('Evaluation bearbeiten.')]);
return $button;
}
function createOverviewButton ($rangeID, $evalID) {
$button = LinkButton::create(_('Bearbeiten'),
URLHelper::getURL(EVAL_FILE_ADMIN."?rangeID=".$rangeID."&openID=".$evalID."#open"),
['title' => _('Evaluationsverwaltung.')]);
return $button;
}
function createDeleteButton ($eval) {
$button = LinkButton::create(_('Löschen'),
URLHelper::getURL(EVAL_FILE_ADMIN."?evalAction=delete_request&evalID=".$eval->getObjectID ()),
['title' => _('Evaluation löschen.')]);
return $button;
}
function createStopButton ($eval) {
$button = LinkButton::createCancel(_('Stop'),
URLHelper::getURL(EVAL_FILE_ADMIN."?evalAction=stop&evalID=".$eval->getObjectID ()),
['title' => _('Evaluation stoppen.')]);
return $button;
}
function createContinueButton ($eval) {
$button = LinkButton::create(_('Fortsetzen'),
URLHelper::getURL(EVAL_FILE_ADMIN."?evalAction=continue&evalID=".$eval->getObjectID ()),
['title' => _('Evaluation fortsetzen')]);
return $button;
}
function createExportButton ($eval) {
$button = LinkButton::create(_('Export'),
URLHelper::getURL(EVAL_FILE_ADMIN."?evalAction=export_request&evalID=".$eval->getObjectID ()),
['title' => _('Evaluation exportieren.')]);
return $button;
}
function createReportButton($eval) {
return LinkButton::create(_('Auswertung'), URLHelper::getURL("eval_summary.php?eval_id=" . $eval->getObjectID()), ['title' => _('Auswertung')]);
}
/* ----------------------------------------------------------------------- */
}
# Define constants ========================================================== #
# ===================================================== end: define constants #
# Include all required files ================================================ #
require_once 'lib/evaluation/evaluation.config.php';
require_once HTML;
require_once EVAL_LIB_COMMON;
# ====================================================== end: including files #