/**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     //
     DB::table('tutorials')->delete();
     $faker = Faker\Factory::create();
     $minimum = $this->option('minimum');
     $tutorialcontent = "\n{Far|far|away|behind|the|word|mountains|far|from|the}\n{countries|Vokalia|and|Consonantia|there}\n{live|the|blind|texts|Separated}\n{they|live|in|Bookmarksgrove|right}\n{at|the|coast|of|the}\n{Semantics|a|large|language|ocean}\n{A|small|river|named|Duden}\n{flows|by|their|place|and}\n{supplies|it|with|the|necessary}\n{regelialia|It|is|a|paradisematic}\n{country|in|which|roasted|parts}\n{of|sentences|fly|into|your}\n{mouth|Even|the|all-powerful|Pointing|has|no|control}\n{about|the|blind|texts|it}\n{is|an|almost|unorthographic|life}\n{One|day|however|a|small}\n{line|of|blind|text|by}\n{the|name|of|Lorem|Ipsum}\n{decided|to}";
     $tutorialcontent = $tutorialcontent . $tutorialcontent . $tutorialcontent;
     $tutorialcontent = $tutorialcontent . $tutorialcontent . $tutorialcontent;
     $tutorialtitle = "This is a {title|heading|header}.";
     $tutorialdesc = "This is a sample {data|words|description}";
     for ($i = 1; $i <= $minimum; $i++) {
         $tutorial = new Tutorials();
         $tutorial->name = self::spintax($tutorialtitle);
         $tutorial->subjectid = rand(1, 55);
         $tutorial->createdby = $this->option('user');
         $tutorial->description = self::spintax($tutorialdesc);
         $tutorial->published = 1;
         $tutorial->content = self::spintax($tutorialcontent);
         $tutorial->created_at = self::randDate('10th January 2013', date('jS F o'));
         $tutorial->save();
     }
 }
                <th>Related Tutorial</th>
                <th>Submitted On</th>
                <th>Last Updated</th>
                <th>Marks</th>
            </tr>
        </thead>
        <tbody>
            <?php 
$assessments = Assessments::where('studentid', '=', Sentry::getUser()->id)->get();
foreach ($assessments as $assessment) {
    $subjectid = $assessment->subjectid;
    $subject = Subject::find($subjectid);
    $teacherid = $assessment->teacherid;
    $teacher = User::find($teacherid);
    $tutorialid = $assessment->tutorialid;
    $tutorial = Tutorials::find($tutorialid);
    echo "<tr>";
    echo "<td>";
    echo $assessment->id;
    echo "</td>";
    echo "<td>";
    echo "<a href='/assessment/update/" . $assessment->id . "'>{$assessment->title}";
    echo "</td>";
    echo "<td>";
    echo $subject->subjectname;
    echo "</td>";
    echo "<td>";
    echo $teacher->first_name . ' ' . $teacher->last_name;
    echo "</td>";
    echo "<td>";
    echo $tutorial->name;
<?php

$options = array();
if (Yii::app()->user->checkAccess('op_tutorials_addtutorials')) {
    $options[Yii::t('tutorials', 'Add Tutorial')] = array('tutorials/addtutorial');
}
if (Yii::app()->user->checkAccess('op_tutorials_manage')) {
    $pending = Tutorials::model()->count('status=0');
    $options[Yii::t('tutorials', '{count} Pending Tutorials', array('{count}' => $pending))] = array('tutorials/showpending');
}
if (Yii::app()->user->id) {
    $options[Yii::t('tutorials', 'My Tutorials')] = array('tutorials/showmytutorials');
}
?>


<div id="nav">
	<div class="boxnavnoborder">	
		<ul class='menunav'>
			<h4><?php 
echo Yii::t('tutorials', 'Categories');
?>
</h4>
		<?php 
foreach (TutorialsCats::model()->getCatsForMember(Yii::app()->language) as $category) {
    ?>
			<li><?php 
    echo CHtml::link($category->title, array('/tutorials/category/' . $category->alias, 'lang' => false));
    ?>
 - ( <?php 
    echo $category->count;
                    <tr>
                        <th>#ID</th>
                        <th>Title</th>
                        <th>Subject</th>
                        <th>Grade</th>
                        <th>Created Date</th>
                        <th>Modified Date</th>
                        <th>Created By</th>
                        <th>Status</th>
                        <th>Actions</th>
                    </tr>
                </thead>
                <tbody>
                    <?php 
$tutorial_list = Cache::remember('tutorial_listing_dash' . Sentry::getUser()->id, 20, function () {
    $tutorials = Tutorials::all();
    $out = '';
    foreach ($tutorials as $tutorial) {
        $subject = Subject::find($tutorial->subjectid);
        $teacher = User::find($tutorial->createdby);
        $username = Sentry::findUserByLogin($teacher->email);
        if (Sentry::getUser()->inGroup(Sentry::findGroupByName('admin')) || Sentry::getUser()->id == $tutorial->createdby) {
            $out .= "<tr>";
            $out .= "<td>";
            $out .= $tutorial->id;
            $out .= "</td>";
            $out .= "<td>";
            $out .= $tutorial->name;
            $out .= "</td>";
            $out .= "<td>";
            $out .= $subject->subjectname;
示例#5
0
    public function index()
    {
        $theme = Theme::uses('site')->layout('default');
        $theme->setTitle('Home');
        Cache::forget('latest_tr_slides');
        Cache::forget('tutorials');
        Cache::forget('latest_tutorials');
        Cache::forget('latest_tutes');
        Cache::forget('topstudents');
        Cache::forget('topstudentlist');
        $tutorialslides = Cache::remember('latest_tr_slides', 1, function () {
            $tutorials = Cache::remember('tutorials', 1, function () {
                return DB::select(DB::raw('SELECT tutorialid FROM assessments GROUP BY tutorialid HAVING(COUNT(*)) ORDER BY COUNT(*) DESC LIMIT 5 ;'));
            });
            $out = '';
            if ($tutorials == null) {
                return $out;
            }
            foreach ($tutorials as $tutorial_t) {
                $out .= "<div>";
                $tutorial = Tutorials::find($tutorial_t->tutorialid);
                $string = $tutorial->content;
                $string = strlen($string) > 753 ? substr($string, 0, 750) . '...' : $string;
                $string = wordwrap($string, 200, "<br>\n");
                $out .= '<h2 class="title">' . $tutorial->name . '</h2>';
                $out .= '<label class="label label-success">Subject
				</label>' . Subject::find($tutorial->subjectid)->subjectname . '&nbsp;&nbsp;&nbsp;&nbsp;
				<label class="label label-success">Grade</label> :- ' . Subject::find($tutorial->subjectid)->grade;
                $out .= "&nbsp;<br>&nbsp;<br>" . $string;
                $out .= "&nbsp;<br><a class='btn btn-large' href='/tutorial/" . $tutorial->id . "/'>Read More ...</a>&nbsp;<br>&nbsp;<br>&nbsp;<br>";
                $out .= '</div>';
            }
            return $out;
        });
        $latest_tutorials = Cache::remember('latest_tutorials', 20, function () {
            $tutorials = Cache::remember('latest_tutes', 20, function () {
                return DB::select(DB::raw('SELECT id from tutorials WHERE published= 1 ORDER BY `created_at` DESC LIMIT 5;'));
            });
            $out = '';
            if ($tutorials == null) {
                return $out;
            }
            foreach ($tutorials as $tutorial_t) {
                $tutorial = Tutorials::find($tutorial_t->id);
                $string = $tutorial->content;
                $string = preg_replace("/<img[^>]+\\>/i", "", $string);
                $images = self::getTutorialImages($tutorial->content);
                if ($images == null) {
                    // continue;
                }
                $string = strlen($string) > 753 ? substr($string, 0, 750) . '...' : $string;
                $string = wordwrap($string, 200, "<br>\n");
                $out .= "<div>";
                $out .= '<h2 class="title">' . $tutorial->name . '</h2>';
                $out .= '<p style="display:inline-block;">
		<label class="label label-success">Subject
		</label>' . Subject::find($tutorial->subjectid)->subjectname . '&nbsp;&nbsp;&nbsp;&nbsp;<label class="label label-success">Grade</label> :- ' . Subject::find($tutorial->subjectid)->grade . '</p>';
                $out .= "&nbsp;<br>&nbsp;<br>" . $string;
                $out .= "<img src='" . $images[rand(0, count($images) - 1)] . "' class='' style='height:100%;'/>";
                $out .= "&nbsp;<br><a class='btn btn-large' href='/tutorial/" . $tutorial->id . "/'>Read More ...</a>&nbsp;<br>&nbsp;<br>&nbsp;<br>";
                $out .= '</div>';
            }
            return $out;
        });
        $topstudents = Cache::remember('topstudents', 20, function () {
            $out = '';
            $topstudentlist = Cache::remember('topstudentlist', 20, function () {
                return DB::select(DB::raw('SELECT studentid as sid,AVG(marks) as average
			FROM assessments WHERE `created_at` >= CURDATE() - INTERVAL 7 DAY  GROUP BY studentid ORDER BY average DESC LIMIT 0,5;'));
            });
            if ($topstudentlist == null) {
                return $out;
            }
            foreach ($topstudentlist as $student) {
                $user = User::find($student->sid);
                $url = Gravatarer::make(['email' => $user->email, 'size' => 200, 'defaultImage' => 'mm', 'rating' => 'g'])->url();
                $out .= "<div>";
                $out .= "<img style='clear:left;' class='avatar' alt='" . $user->email . "' src='" . $url . "'/>\n\t\t<br><strong>Name:</strong>" . $user->first_name . ' ' . $user->last_name . '';
                $out .= "<br><label class='label label-success'>Average Score</label> is " . (int) $student->average . "";
                $out .= "</div>";
            }
            return $out;
        });
        $add = ['tutorialslides' => $tutorialslides, 'latesttutorialslides' => $latest_tutorials, 'topstudents' => $topstudents];
        return $theme->scope('index', $add)->content();
    }
示例#6
0
 public function tutorials_save()
 {
     if (Auth::check()) {
         if (Auth::User()->ldap_verified == 0) {
             $messageBag = new MessageBag();
             $messageBag->add('message', "Please Verify Your GPO ID before Uploading a Tutorial");
             return Redirect::Route('user.profile')->with('messages', $messageBag)->withInput();
         } else {
             $user_id = Auth::User()->id;
             $name = Input::get("Name");
             $club = Input::get("Club");
             $file = Input::file("File");
             if (!Input::hasFile("File") || $user_id == "" || $name == "" || $club == "") {
                 $messageBag = new MessageBag();
                 $messageBag->add('message', "Error in form. Fill up all the required fields correctly");
                 return Redirect::back()->with('messages', $messageBag)->withInput();
             }
             if (Input::file("File")->getSize() > 2 * 1024 * 1024) {
                 $messageBag = new MessageBag();
                 $messageBag->add('message', "Files Bigger than 2 MB aren't allowed");
                 return Redirect::back()->with('messages', $messageBag)->withInput();
             }
             $tutorial = new Tutorials();
             $tutorial->name = $name;
             $tutorial->by = intval($user_id);
             $tutorial->club = $club;
             // $tutorial->url = $filename;
             $tutorial->save();
             $destinationPath = public_path() . "/assets/tutorials/";
             $extension = $file->getClientOriginalExtension();
             $filename = $tutorial->id . "." . $extension;
             $file->move($destinationPath, $filename);
             // $tutorial->name = $name;
             // $tutorial->by = intval($user_id);
             // $tutorial->club = $club;
             $tutorial->url = $filename;
             $tutorial->save();
             $messageBag = new MessageBag();
             $messageBag->add('message', "Tutorial successfully uploaded.");
             return Redirect::back()->with('messages', $messageBag)->withInput();
         }
     } else {
         $messageBag = new MessageBag();
         $messageBag->add('message', 'Please Login before Uploading a Tutorial');
         return Redirect::Route('user.profile')->with('messages', $messageBag)->withInput();
     }
 }
示例#7
0
 public function tutorial($id)
 {
     return Cache::remember('tutorial' . $id, 60, function () use($id) {
         return Tutorials::find($id);
     });
 }
示例#8
0
                            <div class="span12">

                           <?php 
$examid = $id;
$exam = Exams::find($id);
echo "<fieldset>";
echo "<div class='container-fluid'><div class='row-fluid'><div class='span6'>";
echo Form::label('id', 'ID', array('class' => 'pull-left', 'style' => 'margin:20px;'));
echo Form::text('id', 0, array('class' => 'pull-right disabled uneditable-input', 'style' => 'margin:20px;', 'disabled'));
echo Form::label('related_tutorial', 'Related Tutorial', array('class' => 'pull-left', 'style' => 'clear:left;margin:10px'));
$tutorialid = Session::get('tutorialid', 1);
$tutoriallist = array();
// $tutorial = Tutorials::where('id','=',$tutorialid);
// var_dump($tutorial);
if ($tutorialid !== NULL) {
    $tutorial = Tutorials::findOrFail($tutorialid);
    $tutoriallist[$tutorial->id] = $tutorial->name;
    $teacher = User::findOrFail($tutorial->createdby);
    echo Form::select('related_tutorial', $tutoriallist, Session::get('tutorialid'), array('class' => 'pull-right uneditable-input', 'style' => 'clear:right;margin:5px;height:30px;'));
}
echo Form::label('submitted_to', "Submitted To", array('class' => 'pull-left', 'style' => 'clear:left;margin:10px;'));
$teacherlist = [$teacher->id => $teacher->first_name . ' ' . $teacher->last_name];
echo Form::select('submitted_to', $teacherlist, $teacher->id, array('class' => 'pull-right disabled uneditable-input', 'style' => 'clear:right;margin:5px;height:30px;'));
echo Form::label('subject', 'Subject', array('class' => 'pull-left', 'style' => 'clear:left;margin:10px;'));
$subjectid = $tutorial->subjectid;
$subject = Subject::findOrFail($subjectid);
$subjectlist = [$subjectid => $subject->subjectname];
echo Form::select('subject', $subjectlist, $subjectid, array('class' => 'pull-right disabled uneditable-input', 'style' => 'clear:right;margin:5px;height:30px;'));
echo Form::label('examid', "Exam ID", array('class' => 'pull-left', 'style' => 'margin:20px;clear:left;'));
echo Form::text('examid', $examid, array('style' => 'clear:right;margin:10px;', 'class' => 'pull-right disabled', 'disabled'));
echo "</div></div></div>";
				<?php 
    foreach ($tutorials as $row) {
        ?>
					<li <?php 
        if ($row->status == 0) {
            ?>
style='background-color:#FFCECE;'<?php 
        }
        ?>
>
						<h2><?php 
        echo CHtml::link(CHtml::encode($row->title), array('/tutorials/view/' . $row->alias, 'lang' => false));
        ?>
</h2>
						<?php 
        if (Tutorials::model()->canEditTutorial($row)) {
            ?>
							<?php 
            echo CHtml::link(CHtml::image(Yii::app()->themeManager->baseUrl . '/images/icons/pencil.png'), array('tutorials/edittutorial', 'id' => $row->id));
            ?>
						<?php 
        }
        ?>
	
						
						<?php 
        if (Yii::app()->user->checkAccess('op_tutorials_manage')) {
            ?>
						
							<?php 
            if ($row->status) {
 private function createtutorial($dash)
 {
     $user = Sentry::getUser();
     $userid = Sentry::getUser()->id;
     $teacher = Teacher::findOrFail($user->id);
     $ssubjects = $teacher->extra;
     $subjects = unserialize($ssubjects);
     $truth = self::subjectValidator($user->id, $subjects, Input::get('subject'));
     if ($truth == 0) {
         if (!Sentry::getUser()->inGroup(Sentry::findGroupByName('admin'))) {
             return Redirect::to(URL::previous());
         }
     }
     $tutorial = new Tutorials();
     $tutorial->name = Input::get('title');
     $tutorial->description = Input::get('description');
     $tutorial->content = Input::get('tutorial');
     $tutorial->createdby = Sentry::getUser()->id;
     $tutorial->subjectid = Input::get('subject');
     if (Input::get('published') == 'on') {
         $tutorial->published = 1;
     } else {
         $tutorial->published = 0;
     }
     $tutorial->save();
     $newtutorial = DB::table('tutorials')->orderby('id', 'desc')->first();
     if (Input::hasFile('attachments')) {
         $files = Input::file('attachments');
         foreach ($files as $file) {
             if ($file) {
                 $name = $file->getClientOriginalName();
                 $file->move(app_path() . '/attachments/tutorial-' . $newtutorial->id . '/', $name);
             }
         }
     }
     $newid = $newtutorial->id;
     Cache::forget("tutorial_listing_dash");
     return $newid;
 }
示例#11
0
<?php

$studentquery = DB::select(DB::raw('SELECT COUNT(`dob`) FROM `students` WHERE `created_at` >= CURDATE() - INTERVAL 1 DAY'));
$userquery = DB::select(DB::raw('SELECT COUNT(`email`) FROM `users` WHERE `created_at` >= CURDATE() - INTERVAL 1 DAY'));
$tutorialquery = DB::select(DB::raw('SELECT COUNT(`id`) FROM `tutorials` WHERE `created_at` >= CURDATE() - INTERVAL 1 DAY'));
$assessmentquery = DB::select(DB::raw('SELECT COUNT(`id`) FROM `assessments` WHERE `created_at` >= CURDATE() - INTERVAL 1 DAY'));
$stresult = objectToArray($studentquery);
$usresult = objectToArray($userquery);
$turesult = objectToArray($tutorialquery);
$asresult = objectToArray($assessmentquery);
$todayusercount = $usresult[0]['COUNT(`email`)'];
$usercountall = User::all()->count();
$todaystudentcount = $stresult[0]['COUNT(`dob`)'];
$studentcountall = Student::all()->count();
$todaytutorialcount = $turesult[0]['COUNT(`id`)'];
$tutorialcountall = Tutorials::all()->count();
$todayassessmentcount = $asresult[0]['COUNT(`id`)'];
$assessmentcountall = Assessments::all()->count();
?>
<div class="sortable row-fluid">
                <a data-rel="tooltip" title="{{ $todayusercount }} new members." class="well span3 top-block" href="#">
                    <span class="icon32 icon-red icon-user"></span>
                    <div>Total Members</div>
                    <div>{{ $usercountall }}</div>
                    <span class="notification">{{ $todayusercount }}</span>
                </a>

                <a data-rel="tooltip" title="{{ $todaystudentcount }} new students." class="well span3 top-block" href="#">
                    <span class="icon32 icon-blue icon-user"></span>
                    <div>Total Students</div>
                    <div>{{ $studentcountall }} </div>
 /**
  * Delete tutorial action
  */
 public function actiondeletetutorial()
 {
     // Perms
     if (!Yii::app()->user->checkAccess('op_tutorials_deletetutorials')) {
         throw new CHttpException(403, Yii::t('error', 'Sorry, You don\'t have the required permissions to enter this section'));
     }
     if (isset($_GET['id']) && ($model = Tutorials::model()->findByPk($_GET['id']))) {
         $catid = $model->catid;
         $model->delete();
         Yii::app()->user->setFlash('success', Yii::t('admintuts', 'Tutorial Deleted.'));
         $this->redirect(array('viewcategory', 'id' => $catid));
     } else {
         $this->redirect(array('index'));
     }
 }
</a>
				&nbsp;
				<?php 
$this->widget('CStarRating', array('htmlOptions' => array('class' => 'linkcomment', 'style' => 'padding-left: 4px; text-align:left; direction:ltr;'), 'name' => 'rating', 'value' => $model->getRating(), 'readOnly' => Yii::app()->user->isGuest, 'allowEmpty' => false, 'starCount' => 5, 'ratingStepSize' => 1, 'maxRating' => 10, 'minRating' => 1, 'callback' => '
				        function(){
				        $.ajax({
				            type: "POST",
				            url: "' . $this->createUrl('tutorials/rating') . '",
				            data: "' . Yii::app()->request->csrfTokenName . '=' . Yii::app()->request->csrfToken . '&id=' . $model->id . '&rate=" + $(this).val(),
				            success: function(msg){
				                alert("' . Yii::t('global', 'Rating Added.') . '");
				        }})}'));
?>
				
				<?php 
if (Tutorials::model()->canEditTutorial($model)) {
    ?>
					<?php 
    echo CHtml::link(CHtml::image(Yii::app()->themeManager->baseUrl . '/images/icons/pencil.png'), array('tutorials/edittutorial', 'id' => $model->id), array('class' => 'linkcomment'));
    ?>
				<?php 
}
?>
	
				
				<?php 
if (Yii::app()->user->checkAccess('op_tutorials_manage')) {
    ?>
				
					<?php 
    if ($model->status) {
示例#14
0
if ($assessment->assessmenttype == 'exam') {
    ?>
                            <div class="clearfix visible-sm visible-xs"></div>
                            <div  class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
                            <h4>Table of Failed Questions and Answers by Student</h4>
                            <table id="questionfail" class="table table-striped table-bordered bootstrap-datatable datatable"> 
                            <thead>
                                <tr>
                                    <th>Question No</th>
                                    <th>Question</th>
                                    <th>Answer(s)</th>
                                </tr>
                            </thead>
                            <tbody>
                            <?php 
    $examdata = unserialize(Tutorials::find($assessment->tutorialid)->exams);
    $wronganswers = File::get(app_path() . '/files/assessment/' . $assessment->id . '/exam-' . $examdata['id'] . '/questionfailed.json');
    $examy = Exams::findOrFail($examdata['id']);
    $hash = $examy->hash;
    $wronganswers = json_decode($wronganswers, true);
    if (isset($wronganswers['questions'])) {
        foreach ($wronganswers['questions'] as $key => $value) {
            echo "<tr><td>" . $key . "</td>" . "<td>" . $value . "</td>";
            echo "<td>";
            $examdata_encoded = File::get(app_path() . '/files/exam-' . $examy->id . '/' . $hash . '.json');
            $examdata = json_decode($examdata_encoded, true);
            foreach ($wronganswers['questions_fail'][$key][0] as $answerr) {
                if ($answerr != 0) {
                    echo "<b>" . $answerr . "</b>. ";
                    echo $examdata['questiondata']['question'][$key]['checkboxdata'][$answerr] . "<br>";
                }
示例#15
0
 public function doExam($tid, $eid, $hash)
 {
     $userid = Sentry::getUser()->id;
     $decryptedhash = Crypt::decrypt($hash);
     if ($decryptedhash == 'tutorial-' . $tid) {
         Session::put('halt_tutorial_except', 0);
         Session::put('examid', 0);
         $validator = Validator::make(Input::all(), ['related_tutorial' => "required|unique:assessments,tutorialid,NULL,id,studentid," . $userid, 'submitted_to' => 'required|exists:users,id', 'subject' => 'required|exists:subjects,id']);
         if ($validator->fails()) {
             return "EXAM PAPER HAS BEEN MODIFIED or SUBMITTED AGAIN.Click here to go to <a href='" . Setting::get('app.url') . "'>HOME PAGE</a>. ANSWERS ARE NOT ACCEPTED.";
         }
         $tutorial = Tutorials::findOrFail($tid);
         $exam = Exams::find($eid);
         $data = array();
         $assessment = new Assessments();
         $assessment->title = $tutorial->name . ' Exam For ' . $exam->title;
         $assessment->description = $exam->title . ' exam done for ' . $tutorial->name . ' by ' . Sentry::getUser()->first_name . ' ' . Sentry::getUser()->last_name;
         $assessment->assessmenttype = "exam";
         $assessment->tutorialid = $tid;
         $assessment->studentid = Sentry::getUser()->id;
         $assessment->teacherid = $tutorial->createdby;
         $assessment->subjectid = $tutorial->subjectid;
         $assessment->save();
         $questions = $exam->totalquestions;
         $input = Input::all();
         for ($qc = 1; $qc <= $questions;) {
             Session::put('checkboxcount', 1);
             $data['answers'][$qc][1] = '';
             $data['answers'][$qc][2] = '';
             $data['answers'][$qc][3] = '';
             $data['answers'][$qc][4] = '';
             if (!isset($input['checkbox_' . $qc])) {
                 $qc++;
                 continue;
             }
             foreach ($input['checkbox_' . $qc] as $answer) {
                 // var_dump($answer);
                 $qu = Session::get('checkboxcount', 0);
                 $data['answers'][$qc][$qu] = $answer;
                 Session::put('checkboxcount', ++$qu);
             }
             $qc++;
         }
         $answerdata = json_encode($data);
         $nassessment = DB::table('assessments')->orderby('id', 'desc')->first();
         $encryptedpath = 'questiondata';
         // var_dump(app_path().'/files/assessment/'.$nassessment->id.'/exam-'.$tid.'/');
         File::makeDirectory(app_path() . '/files/assessment/' . $nassessment->id . '/exam-' . $eid, 0777, true);
         file_put_contents(app_path() . '/files/assessment/' . $nassessment->id . '/exam-' . $exam->id . '/' . $encryptedpath . '.json', $answerdata);
         $failedquestions = [];
         file_put_contents(app_path() . '/files/assessment/' . $assessment->id . '/exam-' . $exam->id . '/questionfailed.json', $failedquestions);
         return Redirect::to('/');
         // var_dump($decryptedhash);
     } else {
         return Redirect::to(URL::previous());
     }
 }
                        <th>Score out of 100</th>
                        <th>Submitted By</th>
                    </tr>
                </thead>
                <tbody>
                    <?php 
$assessments = Assessments::all();
foreach ($assessments as $assessment) {
    $tutorialid = $assessment->tutorialid;
    $teacherid = $assessment->teacherid;
    $teacher = User::find($teacherid);
    $admin = Sentry::getUser()->inGroup(Sentry::findGroupByName('admin'));
    if (Sentry::getUser()->id == $teacherid || $admin) {
        $tutorial = DB::select(DB::raw('SELECT * FROM `tutorials` WHERE `id` = ' . $tutorialid));
        $tutorial = array_dot(objectToArray($tutorial));
        $tutorial = Tutorials::find((int) $assessment->tutorialid);
        $studentid = $assessment->studentid;
        $student = User::find($studentid);
        $subject = Subject::find($assessment->subjectid);
        echo "<tr>";
        echo "<td>";
        echo $assessment->id;
        echo "</td>";
        echo "<td>";
        echo "<a href='/assessment/" . $assessment->id . "/'>" . $assessment->title . '</a>';
        echo "</td>";
        echo "<td>";
        echo "<a href='/tutorial/view/" . $tutorialid . "'>";
        echo $tutorial->name;
        unset($tutorial);
        echo "</a>";
    public function submit()
    {
        $userid = Sentry::getUser()->id;
        $user = Sentry::getUser();
        $student = Student::findOrFail($user->id);
        $ssubjects = $student->extra;
        $subjects = unserialize($ssubjects);
        $truth = self::subjectValidator($user->id, $subjects, Input::get('subject'));
        if ($truth == 0) {
            return Redirect::to(URL::previous());
        }
        $messages = array('title.required' => 'The :attribute is Required.', 'related_tutorial.unique' => 'You have already submitted a Assessment for this tutorial. Please Update it.You can only submit a Assessment Per Tutorial', 'required' => 'The :attribute is Required');
        $validator = Validator::make(Input::all(), array('id' => 'required', 'title' => 'required|max:128|min:5', 'description' => 'max:1024', 'related_tutorial' => "required|unique:assessments,tutorialid,NULL,id,studentid," . $userid, 'submitted_to' => 'required', 'subject' => 'required', 'assessment_type' => 'required'), $messages);
        if ($validator->fails()) {
            Input::flash();
            return Redirect::to('/assessment/submit')->withErrors($validator);
        }
        $assessment = new Assessments();
        $assessment->title = Input::get('title');
        $assessment->description = Input::get('description');
        $assessment->assessmenttype = Input::get('assessment_type');
        $assessment->tutorialid = Input::get('related_tutorial');
        $assessment->teacherid = Input::get('submitted_to');
        $assessment->subjectid = Input::get('subject');
        $assessment->studentid = Sentry::getUser()->id;
        $assessment->save();
        $newassessment = DB::table('assessments')->orderby('id', 'desc')->first();
        $assessment = Assessments::find($newassessment->id);
        if (Input::hasFile('attachments')) {
            $files = Input::file('attachments');
            foreach ($files as $file) {
                if ($file) {
                    $name = $file->getClientOriginalName();
                    File::makeDirectory(app_path() . '/attachments/assessment-' . $newassessment->id . '/', 777);
                    $file->move(app_path() . '/attachments/assessment-' . $newassessment->id . '/', $name);
                }
            }
        }
        $data = array();
        $data['fname'] = User::find($assessment->studentid)->first_name;
        $data['lname'] = User::find($assessment->studentid)->last_name;
        $data['tutorial'] = Tutorials::find($assessment->tutorialid)->name;
        $data['submittedby'] = User::find($assessment->studentid)->first_name . ' ' . User::find($assessment->studentid)->last_name;
        $data['submittedon'] = $assessment->created_at;
        Mail::send('emails.assessmentsubmit', $data, function ($message) use($assessment) {
            $userid = $assessment->teacherid;
            $user = Sentry::findUserById($userid);
            $tutorial = Tutorials::find($assessment->tutorialid);
            $submittedby = User::find($assessment->studentid);
            $fullname = $user->first_name . ' ' . $user->last_name;
            $message->to($user->getLogin(), $fullname)->subject('New Assessment Submitted by ' . $submittedby->first_name . ' ' . $submittedby->last_name . ' on Tutorial ' . $tutorial->name);
        });
        // Input::file('attachment1')->move(app_path().'/attachments/assessment-'.$assessment->id.'/',$name);
        $theme = Theme::uses('site')->layout('default');
        $view = ['id' => $newassessment->id];
        $theme->asset()->container('datatables')->writeScript('inline-script', '$(document).ready(function(){
            $(\'#attachment\').dataTable({
                "sDom": "<\'row\'<\'col-xs-5 col-sm-5 col-md-5\'l><\'col-xs-5 col-sm-5 col-md-5\'f>r>t<\'row\'<\'col-xs-5 col-sm-5 col-md-5\'i><\'col-xs-5 col-sm-5 col-md-5\'p>>",
                "oLanguage": {
                    "sLengthMenu": "_MENU_ ' . ' Attachments per page"
                },
                "sPagination":"bootstrap"

            });
    });');
        return $theme->scope('assessment.update', $view)->render();
    }
示例#18
0
					
					<?php 
if ($this->beginCache('indextutorials_' . Yii::app()->language, array('duration' => 3600))) {
    ?>
					<?php 
    $tuts = Tutorials::model()->byDate()->byLang()->limitIndex()->findAll('status=1');
    ?>
					<?php 
    if (is_array($tuts) && count($tuts)) {
        ?>
						<?php 
        foreach ($tuts as $tut) {
            ?>
							
							<li><?php 
            echo Tutorials::model()->getLink($tut->title, $tut->alias, array('title' => $tut->description));
            ?>
</li>
						<?php 
        }
        ?>
	
					<?php 
    } else {
        ?>
						<li><?php 
        echo Yii::t('index', 'No Tutorials Available.');
        ?>
</li>
					<?php 
    }
 /**
  * Tutorials & Category RSS
  */
 public function actionrss()
 {
     $criteria = new CDbCriteria();
     if (isset($_GET['id']) && ($model = TutorialsCats::model()->findByPk($_GET['id']))) {
         $criteria->condition = 'catid=:catid AND status=:status';
         $criteria->params = array(':catid' => $model->id, ':status' => 1);
     } else {
         $criteria->condition = 'status=:status';
         $criteria->params = array(':status' => 1);
     }
     $rows = array();
     // Load some tutorials
     $criteria->order = 'postdate DESC';
     $criteria->limit = 50;
     $tutorials = Tutorials::model()->with(array('author'))->findAll($criteria);
     $markdown = new MarkdownParser();
     if ($tutorials) {
         foreach ($tutorials as $r) {
             $r->content = $markdown->safeTransform($r->content);
             $rows[] = array('title' => $r->title, 'link' => Yii::app()->createAbsoluteUrl('/tutorials/view/' . $r->alias, array('lang' => false)), 'charset' => Yii::app()->charset, 'description' => $r->description, 'author' => $r->author ? $r->author->username : Yii::app()->name, 'generator' => Yii::app()->name, 'language' => Yii::app()->language, 'guid' => $r->id, 'content' => $r->content);
         }
     }
     $data = array('title' => isset($model) ? $model->title : Yii::t('tutorials', 'Tutorials RSS Feed'), 'link' => isset($model) ? Yii::app()->createAbsoluteUrl('/tutorials/category/' . $model->alias, array('lang' => false)) : Yii::app()->createAbsoluteUrl('tutorials', array('lang' => false)), 'charset' => Yii::app()->charset, 'description' => isset($model) ? $model->description : Yii::t('tutorials', 'Tutorials'), 'author' => Yii::app()->name, 'generator' => Yii::app()->name, 'language' => Yii::app()->language, 'ttl' => 10, 'entries' => $rows);
     Yii::app()->func->displayRss($data);
 }
 /**
  * Get the rows for the sitemap
  */
 protected function getRows()
 {
     $_rows = array();
     // Grab blog cats
     $blogCats = BlogCats::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($blogCats)) {
         foreach ($blogCats as $blogCat) {
             $_rows[] = $this->makeData($this->getFullUrl('/blog/category/' . $blogCat->alias), time(), 'monthly', 0.1);
         }
     }
     // Grab blog rows
     $blogRows = Blog::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($blogRows)) {
         foreach ($blogRows as $blogRow) {
             $_rows[] = $this->makeData($this->getFullUrl('/blog/view/' . $blogRow->alias), $blogRow->postdate, 'weekly', 1);
         }
     }
     // Grab tutorials cats
     $tutorialsCats = TutorialsCats::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($tutorialsCats)) {
         foreach ($tutorialsCats as $tutorialsCat) {
             $_rows[] = $this->makeData($this->getFullUrl('/tutorials/category/' . $tutorialsCat->alias), time(), 'monthly', 0.1);
         }
     }
     // Grab tutorials rows
     $tutorialsRows = Tutorials::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($tutorialsRows)) {
         foreach ($tutorialsRows as $tutorialsRow) {
             $_rows[] = $this->makeData($this->getFullUrl('/tutorials/view/' . $tutorialsRow->alias), $tutorialsRow->postdate, 'weekly', 1);
         }
     }
     // Grab extensions cats
     $extensionsCats = ExtensionsCats::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($extensionsCats)) {
         foreach ($extensionsCats as $extensionsCat) {
             $_rows[] = $this->makeData($this->getFullUrl('/extensions/category/' . $extensionsCat->alias), time(), 'monthly', 0.1);
         }
     }
     // Grab extensions rows
     $extensionsRows = Extensions::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($extensionsRows)) {
         foreach ($extensionsRows as $extensionsRow) {
             $_rows[] = $this->makeData($this->getFullUrl('/extensions/view/' . $extensionsRow->alias), $extensionsRow->postdate, 'weekly', 1);
         }
     }
     // Grab users rows
     $usersRows = Members::model()->findAll();
     if (count($usersRows)) {
         foreach ($usersRows as $usersRow) {
             $_rows[] = $this->makeData($this->getFullUrl('/user/' . $usersRow->id . '-' . $usersRow->seoname), $usersRow->joined, 'monthly', 1);
         }
     }
     // Grab forum topics rows
     $forumTopics = ForumTopics::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($forumTopics)) {
         foreach ($forumTopics as $forumTopic) {
             $_rows[] = $this->makeData($this->getFullUrl('/forum/topic/' . $forumTopic->id . '-' . $forumTopic->alias), $forumTopic->dateposted, 'daily', 1);
         }
     }
     // Grab custom pages
     $customPages = CustomPages::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($customPages)) {
         foreach ($customPages as $customPage) {
             $_rows[] = $this->makeData($this->getFullUrl('/' . $forumTopic->alias), $customPage->dateposted, 'weekly', 1);
         }
     }
     // Grab documentation pages
     $documentations = Documentation::model()->findAll('language=:langauge', array(':langauge' => Yii::app()->language));
     if (count($documentations)) {
         foreach ($documentations as $documentation) {
             $_rows[] = $this->makeData($this->getFullUrl('/documentation/guide/' . $documentation->type . '/topic/' . $documentation->mkey), $documentation->last_updated, 'weekly', 1);
         }
     }
     // Return array
     return $_rows;
 }