Home

Portfolio_header

leftarrow_icon
Portfolio - Railstutorial

Railstutorial

HTML/CSS - Photoshop - Fireworks
Details

Portfolio - Programmieren Praktikum

Programmieren Praktikum

HTML/CSS - Photoshop
Details

Portfolio - GregorPanek

GregorPanek

Ruby on Rails - HTML/CSS - MYSQL - Javascript - Photoshop
Details

Portfolio - WBT

WBT

HTML/CSS - PHP - Flash - Mysql - Photoshop
Details

Portfolio - Sunlight

Sunlight

Illustrator
Details

Portfolio-Newsticker

Newsticker (Praxissemester)

Javascript - Photoshop - PHP - MYSQL - CMS - Flash - SEO
Details

Portfolio-Rizo

Rizo (Projektstudium)

Java - XML - Flex - Photoshop
Details

Portfolio-Black-Media-Solutions

Black Media Solutions

HTML/CSS - Photoshop
Details

rightarrow_icon

Twitter_header

Follow_me

WBT – Web Based Training

Die Seite wurde für die Hochschulveranstaltung E-Learning 2 erstellt. Ziel war es eine Web Based Training Anwendung für das Thema „Dialektisch orientierte Didaktik“ zu erstellen. Die Webseite kann hier im Detail begutachtet werden:
Web Based Training

Umsetzung

Umgesetzt wurde die Seite mit simplem HTML und CSS. Die Seite begleitet ein Sprechertext der zuvor in einem Tonstudio der Hochschule aufgenommen wurde. Die Sprachdateien liegen im .swf Container vor und werden über eine kleine Flash Application in Gang gesetzt. Das Design entstand in Photoshop. Für die Überprüfung der Lernziele wurde ein Quiz mit verschiedenen Fragen zur Dialektisch orientierten Didaktik erstellt.

Das Quiz

Das Quiz habe ich auf Basis von PHP erstellt. Hierbei bin ich soweit es ging objektorientiert Vorgegangen. Das Quiz beinhaltet auch eine Punkte Verteilung. Beantwortet man einmal eine Frage falsch, so bekommt man Punkte abgezogen. Geschieht das ein Zweites mal, dann bekommt man nur noch einen Punkt. Nach dem dritten Versuch bekommt der Benutzer gar keinen Punkt mehr. Damit wollten wir das Raten der Antworten verhindern. Startet der Benutzer das Quiz von neuem, dann wird er automatisch zu der Frage weitergeleitet, an der er zuletzt dran war. Dies wurde durch eine Session, basierend auf Cookies realisiert. Somit kann der Benutzer bei einer Frage, die er nicht beantworten kann, nochmals im Inhalt nachschauen und dann wieder zu der selben Frage zurückspringen.

#databaselogin.php
<?php

	/**
	* Database Information
	*/
	class DatabaseLogin
	{
		private $host;
		private $username;
		private $password;
		private $database;
		
		function __construct()
		{
			$this->host = "localhost";
			$this->username = "******";
			$this->password = "******";
			$this->database = "*******";
		}


                public function getHost(){
                    return $this->host;
                }

                public function getUsername(){
                    return $this->username;
                }

                public function getPassword(){
                    return $this->password;
                }

                public function getDatabase(){
                    return $this->database;
                }

	}
?>
#database.php
<?php
	
	require 'database/databaselogin.php';
        error_reporting('E_ALL');
	
	
	/**
	* Database Connection
	*/
	class Database
	{
		
		private $databaselogin;
		private $db;
                
		
		function __construct()
		{
			$this->databaselogin = new DatabaseLogin();
			$this->db = new mysqli($this->databaselogin->getHost(),$this->databaselogin->getUsername(),
									$this->databaselogin->getPassword(),$this->databaselogin->getDatabase());
			if(mysqli_connect_errno()){
				die ('Konnte keine Verbindung zur Datenbank aufbauen:' .mysqli_connect_error(). '('.mysqli_connect_errno().')');
			}
		}
	
	
		#Function for SELECT something from the database
		public function read($sql)
		{	
			$result = $this->db->query($sql);
			if (!$result) {
				die('Etwas stimmte mit dem Query nicht:' .$this->db->error);
			}else{
                            return $result;
			} 
		}

                #Function to add a new Record to the Database
		public function write($sql)
		{
			#code
		}

                #Function to update or change somethin in the Database
		public function update($value='')
		{
			# code...
		}
		
	
	
	
	
	
	
	
	
	}
	
	
	

?>
#test.php

<?php
require_once 'Quiz.php';
session_start();
error_reporting('E_ALL');
$quiz = new Quiz();

#Quiznumbercount
if (!isset($_SESSION['quiznumber'])) {
    $qnr = 1;
}else {
    $qnr = $_SESSION['quiznumber'];
}

#Wronganswer
if (!isset($_SESSION['wrong'])) {
    $wrong = false;
}else {
    $wrong = $_SESSION['wrong'];
}

#Quiznumberpoints
if (!isset($_SESSION['points'])) {
    $points = 70;
}else {
    $points = $_SESSION['points'];
}

#Wronganswercounter
if(!isset($_SESSION['acount'])) {
    $acount = 0;
}else {
    $acount = $_SESSION['acount'];
}
#Rightanswer
if(!isset($_SESSION['right'])) {
    $right = false;
}else {
    $right = $_SESSION['right'];
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>WBT - Dialektisch orientierte Didaktik</title>
        <meta name="robots" content="noindex, nofollow" />
        <meta name="content-language" content="de" />
        <link href="../reset.css" rel="stylesheet" type="text/css" />
        <link href="../layout.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div id="wrapper">
            <div id="inhalt" class="clearfix">
                <div id="links">
                    <ul>
                        <li><a href="../index.html">&raquo; &Uuml;bersicht</a></li>
                        <li><a href="../geschichte-und-begruender.html">&raquo; Geschichte und Begr&uuml;nder</a></li>
                        <li><a href="../rahmenbedingungen.html">&raquo; Rahmenbedingungen</a></li>
                        <li><a href="../dialektik.html">&raquo; Dialektik</a></li>
                        <li><a href="../prozesskomponenten.html">&raquo; Prozesskomponenten</a></li>
                        <li><a href="../unterrichtsmethoden.html">&raquo; Unterrichtsmethoden 1</a></li>
                        <li class="last"><a href="../unterrichtsmethoden-2.html">&raquo; Unterrichtsmethoden 2</a></li>
                    </ul>

                    <a id="test_active" href="introduction.php">&Uuml;berpr&uuml;fung / Test</a>

                </div>

                <div id="rechts">


                    <?php

                    if($wrong != true) {
                        ?>

                    <div style="float: right">
                        <object id="pla" type="application/x-shockwave-flash" data="../player.swf" width="85" height="20">
                            <param name="movie" value="../player.swf" />
                            <param name="bgcolor" value="#ffffff" />
                            <param name="autoplay" value="1" />
                            <param name="FlashVars" value="mp3=<?=$quiz->getMP3($qnr)?>&autoplay=1&width=85&showstop=1&showvolume=1&showslider=0&sliderwidth=0&sliderheight=0&loadingcolor=6A4210&bgcolor1=BCC69D&bgcolor2=BCC69D&slidercolor1=6A4210&slidercolor2=6A4210&sliderovercolor=ffffff&buttoncolor=6A4210&buttonovercolor=ffffff&textcolor=6A4210" />
                        </object>
                    </div>
                        <?
                        if($qnr <=14) { ?>

                    <h1>Multiple Choice Test - Frage <?=$qnr?></h1>
                    <form action="check.php" method="post" accept-charset="utf-8">

                                <?php
                                if($right == true) {
                                    echo '<img src="../pictures/right.png" alt="Richtig" class="correct"/><p>Ihre gewählte Antwort war Richtig!</p>';
                                }
                                ?>

                        <table class="quiz">
                            <tr>
                                <th>  <?=$quiz->getQuestion($qnr);?></th>
                            </tr>




                                    <?php
                                    $i = 1;
                                    $j = 1;
                                    $aid = $quiz->getAnswerId($qnr);
                                    foreach($quiz->getAnswers($qnr) as $answer) {
                                        if(($j%2) == 0) {
                                            echo '<tr>';
                                            echo '<td><label for="x'.$aid[$i].'">'.$answer.'</label></td>';
                                            echo '<td><input type="radio" id="x'.$aid[$i].'"  name="answer" value="'.htmlspecialchars($answer).'" /></td>';
                                            echo '</tr>';
                                            $i = $i +1;
                                            $j = $j +1;
                                        }else {
                                            echo '<tr>';
                                            echo '<td class="one"><label for="x'.$aid[$i].'">'.$answer.'</label></td>';
                                            echo '<td class="one"><input type="radio" id="x'.$aid[$i].'"  name="answer" value="'.htmlspecialchars($answer).'" /></td>';
                                            echo '</tr>';
                                            $i = $i +1;
                                            $j = $j +1;
                                        }
                                    }
                                    ?>
                            <tr><td class="submit" colspan="3"><input type="submit" value="Antworten" /></td></tr>
                        </table>

                        <input type="hidden" name="points" value="<?=$points?>" />
                        <input type="hidden" name="qnr" value="<?=$qnr?>" />
                        <input type="hidden" name="acount" value="<?=$acount?>" />


                    </form>

                            <?}else {?>
                    <h1>Gratulation</h1>
                    <p>Sie Haben den Test erfolgreich Absolviert und dabei <span class="bold"><?=$points?> Punkte</span> erzielt.</p>
                    <p>Sie können den Test gerne wiederholen und so ein Besseres resultat erzielen. Hier gelangen Sie wieder an den Anfang
                        des Tests</p>
                    <div class="center"><a href="destroy.php"><img src="../pictures/roundarrow.png" alt="Backarrow"/></a></div>
                            <?}
                    }else {
                        $_SESSION['wrong'] = false;
                        ?>
                    <h1><img src="../pictures/wrong.png" alt="Wrong Answer"/> Falsche Antwort </h1>
                    <p>Leider war Ihre Antwort Falsch, hier können Sie es erneut versuchen</p>
                    <div class="center"><a href="test.php"><img src="../pictures/back.png" alt="Zurück"/></a>
                    </div>

                    <p>M&ouml;chten Sie den Inhalt zu der genannten Frage nochmals neu erarbeiten dann können Sie das hier
                    </p>
                    <div class="center"><a href="../<?=$quiz->getSection($_SESSION['quiznumber'])?>"><img src="../pictures/book.png" alt="Buch"/></a></div>
                        <?}?>
                    <a href="destroy.php" class="blank" ><img src="../gfx/roundarrow_small.png" alt="round arrow"/> Quiz neu starten</a>
                </div>
            </div>

            <div id="footer">
                <ul class="clearfix">
                    <li><a class="impressum" href="../impressum.html">Impressum</a></li>
                    <li><a class="team" href="../team.html">Team</a></li>
                </ul>
            </div>
        </div>
    </body>
</html>
#Quiz.php

<?php
       
	require 'database.php';
	error_reporting('E_ALL');
        class Quiz{

            private $db; #connection to the database

            function __construct()
		{
			$this->db = new Database();
                   
		}

            public function getQuestion($id){
               $result = $this->db->read("SELECT * FROM `questions` WHERE `id` =".$id);
               $res_arr= array();
               while ($row = $result->fetch_assoc()) {
                    $res_arr= $row['question'];
                   
               }

               return $res_arr;

            }

            public function getMP3($id){
                $result = $this->db->read("SELECT * FROM `questions` WHERE `id` =".$id);
                $res_arr = array();
                while ($row = $result->fetch_assoc()) {
                    $res_arr= $row['mp3'];

               }

               return $res_arr;
            }


            public function getAnswers($id){
                $result = $this->db->read("SELECT answer FROM `answers` WHERE `questions_id` =".$id." ORDER BY RAND()");
                $res_arr = array();
                $i = 1;
                while($row = $result->fetch_assoc()) {
                    $res_arr[$i] = $row['answer'];
                    $i = $i+1;
                }
                return $res_arr;
            }


            public function checkAnswer($answer,$qid){
                
                $result = $this->db->read('SELECT * FROM `answers` WHERE `questions_id` = '.$qid.' AND `answer` = "'.$answer.'"');
                $res_arr = array();
                while($row = $result->fetch_assoc()){
                    $res_arr = $row['is_correct'];
                }

                return $res_arr;

            }

            public function getSection($qid){
                $result = $this->db->read("SELECT * FROM `questions` WHERE `id` = ".$qid);
                $res_arr = array();
                while ($row = $result->fetch_assoc()) {
                    $res_arr = $row['section'];
                }

                return $res_arr;
            }

            public function getAnswerId($qid){
                $result = $this->db->read("SELECT * FROM `answers` WHERE `questions_id` = ". $qid);
                $res_arr = array();
                $i = 1;
                while ($row = $result->fetch_assoc()){
                    $res_arr[$i] = $row['id'];
                    $i = $i +1;
                }
                return $res_arr;
            }

            public function getPoints($answer,$qid,$acount,$points) {
                if($this->checkAnswer($answer, $qid) < 1) {
                    $acount = $acount+1;
                    switch ($acount) {
                        case 1:
                            $points = $points-3;
                            break;
                        case 2:
                            $points = $points-5;
                            break;
                    }
                    return array("acount"=>$acount, "points" => $points, "qid" => $qid, "wrong" => true, "right" => false);
                }else {
                    $acount = 0;
                    $qid = $qid +1;
                    return array("acount"=>$acount, "points" => $points, "qid" => $qid, "wrong" =>false, "right" => true);
                }
            }
            
            



        }
	
     

?>
#check.php

<?php
session_start();
error_reporting(E_ALL);
require('Quiz.php');


$quiz = new Quiz();


$answer = $_POST['answer'];
$qid = $_POST['qnr'];
$points = $_POST['points'];
$acount = $_POST['acount'];


$checkarray = $quiz->getPoints($answer, $qid, $acount,$points);

$_SESSION['points'] = $checkarray['points'];
$_SESSION['quiznumber'] = $checkarray['qid'];
$_SESSION['wrong'] = $checkarray['wrong'];
$_SESSION['acount'] = $checkarray['acount'];
$_SESSION['right'] = $checkarray['right'];
header('Location:test.php');
?>