public function save($id = null) { if (permission("reports", "extra")) { if ($_POST) { if (@empty($_POST["import_time"])) { $_POST["import_time"] = date("Y-m-d"); } $data = new Result($id); $data->from_array($_POST); $data->save(); if (@$_POST["file_path"]) { $data->file_size = @filesize($data->file_path); $data->save(); } $type = $id ? 'edit' : 'add'; // for logs. save_logs($type, $data->id); } } redirect("admin/reports"); }
public function actionimportExcelTable($id, $issueId) { //step id if (isset($_FILES['Excel'])) { $post = Result::model()->importExcelTable($_FILES['Excel']); //throw new CHttpException(403,$_FILES['File']); Yii::import('ext.phpexcel.IOFactory'); Yii::import('ext.phpexcel.*'); Yii::import('ext.phpexcel.XPHPExcel'); Yii::import('ext.phpexcel.shared.string'); $newsheet = XPHPExcel::createPHPExcel(); //$inputFileName='c:\inetpub\wwwroot\vector2014\protected\extensions\examples\reader\sampledata\book1.xlsx'; $inputFileName = $post["tmp_name"]; Result::model()->alsjkd($inputFileName); //var_dump($post); try { $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); } catch (PHPExcel_Reader_Exception $e) { die('Error loading file: ' . $e->getMessage()); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumnIndex = $sheet->getHighestColumn(); $index = array('A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8); $highestColumn = $index[$highestColumnIndex]; $index = array_slice($index, 0, $highestColumn); $element = new Element(); $element->stepId = $id; $element->typeId = 13; $element->save(); $elementId = $element->id; $step = $this->loadModel($id); for ($row = 1; $row <= $highestRow; $row++) { $rows[] = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow('A', $row)->getValue(); } $columns = array(); //for ($column =1 ; $column<=$highestColumn; $column++){ foreach ($index as $key => $position) { $columns[] = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($position, 1)->getValue(); } $salida = $step->addGrid($element, $rows, $columns); $issue = new Issue(); //$travelerId= $step->travelerId; for ($row = 1; $row <= $highestRow; $row++) { foreach ($index as $key => $position) { if ($row >= 1 && $position > 0) { $result = new Result(); $result->elementId = $elementId; $result->issueId = $issueId; $result->value = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($position, $row)->getValue(); //throw new CHttpException(403, 'row: '.$row.'. Columna: '.$position.'.Value: '.$result->value); $result->colonne = $position - 1; $result->ligne = $row - 2; $result->save(); } //throw new CHttpException (403,"exception: ". $iasdasdeId); //$objPHPExcel->getActiveSheet()->getCellByColumnAndRow('A',$row)->getValue(); } } $alsdjk = $LKSJAD; } else { $alsdjk = $LKSJAD; throw new CHttpException(403, "Error in the file"); } }
$select_eval_edit = Security::remove_XSS($_GET['selecteval']); $resultedit = Result::load($edit_res_xml); $edit_res_form = new EvalForm(EvalForm::TYPE_RESULT_EDIT, $eval[0], $resultedit[0], 'edit_result_form', null, api_get_self() . '?editres=' . $resultedit[0]->get_id() . '&selecteval=' . $select_eval_edit . '&' . api_get_cidreq()); if ($edit_res_form->validate()) { $values = $edit_res_form->exportValues(); $result = new Result(); $resultlog = new Result(); $resultlog->add_result__log($values['hid_user_id'], $select_eval_edit); $result->set_id($edit_res_xml); $result->set_user_id($values['hid_user_id']); $result->set_evaluation_id($select_eval_edit); $row_value = isset($values['score']) ? (double) $values['score'] : 0; if (!empty($row_value) || $row_value == 0) { $result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals')))); } $result->save(); unset($result); header('Location: gradebook_view_result.php?selecteval=' . $select_eval_edit . '&editresmessage=&' . api_get_cidreq()); exit; } } $file_type = null; if (isset($_GET['import'])) { $interbreadcrumb[] = array('url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&' . api_get_cidreq(), 'name' => get_lang('ViewResult')); $import_result_form = new DataForm(DataForm::TYPE_IMPORT, 'import_result_form', null, api_get_self() . '?import=&selecteval=' . Security::remove_XSS($_GET['selecteval']), '_blank', ''); if (!$import_result_form->validate()) { Display::display_header(get_lang('Import')); } $eval[0]->check_lock_permissions(); if ($_POST['formSent']) { if (!empty($_FILES['import_file']['name'])) {
/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function actionUpdate($id) { //this parameter is the issueId! Result::model()->cleanRecords(); //clean old remaining records $this->layout = "//layouts/column1"; $issue = $this->loadIssue($id); $redirect = false; $issueId = $id; //checking if the document is already opened $opened = Opendocs::model()->find("issueId={$issueId}"); //if there has been any if (isset($_POST['Result']) or isset($_POST['Checks']) or isset($_POST['Table']) or isset($_POST['File'])) { $redirect = true; //true means it is actually saving a document. False means is opening the update view } if (isset($opened)) { //the issue has a record in open docs $now = time(); $morethanyesterday = strtotime($opened->createTime); $morethanyesterday = $morethanyesterday + 86400; if ($now < $morethanyesterday) { //less than 24h $user = User::model()->findByPk($opened->userId); if ($opened->userId == Yii::app()->user->id) { //actual user is the issue's owner if ($redirect) { // the user is on the update view already and has clicked "save" button //saving process: if (isset($_POST['Result'])) { //Result::model()->reset($id);//RESET $redirect = true; $post = $_POST['Result']; if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { //if ($value != '') { if (is_array($value)) { foreach ($value as $option) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if ($model->value != $option) { $model->value = $option; $model->save(); } } } else { $model = Result::model()->find("elementId = {$key} and issueId = {$issueId}"); if ($model === null) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; } if ($model->value != $value) { $model->value = $value; $model->save(); } } //} } } } if (isset($_POST['Checks'])) { //For Checkboxes: once one is selected there must be at least one checked option. It's impossible to uncheck all of them. // that's the way is supposed to be. Keep track record. $redirect = true; $typeId = 6; $post = $_POST['Checks']; $values = array(); if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { if (is_array($value)) { foreach ($value as $option) { $values[] = $option; $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if (in_array($option, $value)) { $what = Element::doesExist($key, $issueId, $option); if ($what < 1) { $model->value = $option; $model->save(); } } } } $statement = " "; foreach ($values as $cond) { $statement .= " and t.value NOT like '{$cond}'"; } $statement = "issueId= {$issueId} and elementId = {$key} " . $statement; $criteria = new CDbCriteria(); $criteria->condition = $statement; //"issueId = $issueId and elementId = $key and value NOT LIKE ('$values')"; $modelo = Result::model()->findAll($criteria); foreach ($modelo as $borrar) { $borrar->delete(); } } } } if (isset($_POST['Table'])) { //Result::model()->resetTable($id); //Result::model()->setTableOFF($id); $redirect = true; $tables = $_POST['Table']; foreach ($tables as $key => $value) { $elementId = $key; foreach ($value as $row => $array) { foreach ($array as $column => $response) { if ($elementId != "xxx") { $res = Result::model()->find("elementId = {$elementId} and issueId = {$issueId} and colonne = {$column} and ligne = {$row}"); if ($res === null) { $res = new Result(); $res->elementId = $elementId; $res->issueId = $issueId; $res->colonne = $column; $res->ligne = $row; //if($response!=null || $response!="" || !isset($response)){ } if ($response != $res->value) { $res->value = $response; $res->save(); } } } } } } if (isset($_FILES['File'])) { //throw new CHttpException(403, "update de resultcontroller"); foreach ($_FILES['File']['name']['elementid'] as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { if ($v != '') { $rnd = rand(0, 99999); $tmpname = $_FILES['File']['tmp_name']['elementid'][$key][$k]; $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $v); $extensions = 'img'; $fileType = CFileHelper::getMimeType($v); //this makes sure it is an image, getimagesize doesn't work if (move_uploaded_file($tmpname, Yii::app()->params['dfs'] . "/result/" . $fichier)) { $file = new File(); if (strpos($fileType, 'image') !== false) { $image = 1; } else { $image = 0; } $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $v; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } else { if ($value != '') { $tmp = $_FILES['File']['tmp_name']['elementid'][$key]; $rnd = rand(0, 99999); $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $value); if (@getimagesize($tmp)) { $image = 1; } else { $image = 0; } if (move_uploaded_file($tmp, Yii::app()->params['dfs'] . "result/" . $fichier)) { //Si la fonction renvoie TRUE, c'est que ça a fonctionné... $file = new File(); $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $value; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } } //delete record in opendocs and exit to view $opened->delete(); //the document has been saved and exit. Then the opendoc item has to be deleted $this->redirect(array('issue/view', 'id' => $issueId)); } else { //user is accessing the update view of an issue. He's the owner of the issue therefore he can access it. //creates a new opened doc item and access the update view $opened->createTime = new CDbExpression('NOW()'); $opened->save(); $this->render('update', array('model' => $issue, 'traveler' => $issue->traveler, 'issueId' => $issueId)); } } else { //less than 24h, not the owner. Then the user has to access the unlocking view if he still wants to access the update view $this->render('open', array('user' => $user, 'opened' => $opened, 'issueId' => $issueId)); } } else { //opendocs record is older than 24h. if ($redirect) { //the user is on the update view already and has clicked "save" button if (isset($_POST['Result'])) { //Result::model()->reset($id);//RESET $redirect = true; $post = $_POST['Result']; if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { //if ($value != '') { if (is_array($value)) { foreach ($value as $option) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if ($model->value != $option) { $model->value = $option; $model->save(); } } } else { $model = Result::model()->find("elementId = {$key} and issueId = {$issueId}"); if ($model === null) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; } if ($model->value != $value) { $model->value = $value; $model->save(); } } //} } } } if (isset($_POST['Checks'])) { //Result::model()->resetBox($id);//RESET $redirect = true; $typeId = 6; $post = $_POST['Checks']; $values = array(); if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { if (is_array($value)) { foreach ($value as $option) { $values[] = $option; $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if (in_array($option, $value)) { $what = Element::doesExist($key, $issueId, $option); if ($what < 1) { $model->value = $option; $model->save(); } } } } $statement = " "; foreach ($values as $cond) { $statement .= " and t.value NOT like '{$cond}'"; } $statement = "issueId= {$issueId} and elementId = {$key} " . $statement; $criteria = new CDbCriteria(); $criteria->condition = $statement; //"issueId = $issueId and elementId = $key and value NOT LIKE ('$values')"; $modelo = Result::model()->findAll($criteria); foreach ($modelo as $borrar) { $borrar->delete(); } } } } if (isset($_POST['Table'])) { //Result::model()->resetTable($id); //Result::model()->setTableOFF($id); $redirect = true; $tables = $_POST['Table']; foreach ($tables as $key => $value) { $elementId = $key; foreach ($value as $row => $array) { foreach ($array as $column => $response) { if ($elementId != "xxx") { $res = Result::model()->find("elementId = {$elementId} and issueId = {$issueId} and colonne = {$column} and ligne = {$row}"); if ($res === null) { $res = new Result(); $res->elementId = $elementId; $res->issueId = $issueId; $res->colonne = $column; $res->ligne = $row; //if($response!=null || $response!="" || !isset($response)){ } if ($response != $res->value) { $res->value = $response; $res->save(); } } } } } } if (isset($_FILES['File'])) { //throw new CHttpException(403, "update de resultcontroller"); foreach ($_FILES['File']['name']['elementid'] as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { if ($v != '') { $rnd = rand(0, 99999); $tmpname = $_FILES['File']['tmp_name']['elementid'][$key][$k]; $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $v); if (move_uploaded_file($tmpname, Yii::app()->params['dfs'] . "/result/" . $fichier)) { $file = new File(); if (@getimagesize($tmpname)) { $image = 1; } else { $image = 0; } $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $v; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } else { if ($value != '') { $tmp = $_FILES['File']['tmp_name']['elementid'][$key]; $rnd = rand(0, 99999); $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $value); if (@getimagesize($tmp)) { $image = 1; } else { $image = 0; } if (move_uploaded_file($tmp, Yii::app()->params['dfs'] . "/result/" . $fichier)) { //Si la fonction renvoie TRUE, c'est que ça a fonctionné... $file = new File(); $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $value; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } } //delete record in opendocs and exit to view $opened->delete(); $this->redirect(array('issue/view', 'id' => $issueId)); } else { //user is accessing the update view of an issue //delete old opendocs record and create a new one $opened->delete(); $model = new Opendocs(); $model->issueId = $issueId; $model->userId = Yii::app()->user->id; $model->createTime = new CDbExpression('GETDATE()'); $model->save(); $this->render('update', array('model' => $issue, 'traveler' => $issue->traveler, 'issueId' => $issueId)); } } } else { //there is not previous opendocs record. Then no restrictions. if ($redirect) { //user is saving the issue if (isset($_POST['Result'])) { //Result::model()->reset($id);//RESET $redirect = true; $post = $_POST['Result']; if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { //if ($value != '') { if (is_array($value)) { foreach ($value as $option) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if ($model->value != $option) { $model->value = $option; $model->save(); } } } else { $model = Result::model()->find("elementId = {$key} and issueId = {$issueId}"); if ($model === null) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; } if ($model->value != $value) { $model->value = $value; $model->save(); } } //} } } } if (isset($_POST['Checks'])) { //Result::model()->resetBox($id);//RESET $redirect = true; $typeId = 6; $post = $_POST['Checks']; $values = array(); if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { if (is_array($value)) { foreach ($value as $option) { $values[] = $option; $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if (in_array($option, $value)) { $what = Element::doesExist($key, $issueId, $option); if ($what < 1) { $model->value = $option; $model->save(); } } } } $statement = " "; foreach ($values as $cond) { $statement .= " and t.value NOT like '{$cond}'"; } $statement = "issueId= {$issueId} and elementId = {$key} " . $statement; $criteria = new CDbCriteria(); $criteria->condition = $statement; //"issueId = $issueId and elementId = $key and value NOT LIKE ('$values')"; $modelo = Result::model()->findAll($criteria); foreach ($modelo as $borrar) { $borrar->delete(); } } } } if (isset($_POST['Table'])) { //Result::model()->resetTable($id); //Result::model()->setTableOFF($id); $redirect = true; $tables = $_POST['Table']; foreach ($tables as $key => $value) { $elementId = $key; foreach ($value as $row => $array) { foreach ($array as $column => $response) { if ($elementId != "xxx") { $res = Result::model()->find("elementId = {$elementId} and issueId = {$issueId} and colonne = {$column} and ligne = {$row}"); if ($res === null) { $res = new Result(); $res->elementId = $elementId; $res->issueId = $issueId; $res->colonne = $column; $res->ligne = $row; //if($response!=null || $response!="" || !isset($response)){ } if ($response != $res->value) { $res->value = $response; $res->save(); } } } } } } if (isset($_FILES['File'])) { //throw new CHttpException(403, "update de resultcontroller"); foreach ($_FILES['File']['name']['elementid'] as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { if ($v != '') { $rnd = rand(0, 99999); $tmpname = $_FILES['File']['tmp_name']['elementid'][$key][$k]; $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $v); $fileType = CFileHelper::getMimeType($v); //this makes sure it is an image, getimagesize doesn't work $noexe = CFileHelper::getExtension($v); if (strpos($noexe, 'py') !== false or strpos($noexe, 'exe') !== false) { throw new CHttpException(403, "Forbidden type of file"); } if (move_uploaded_file($tmpname, Yii::app()->params['dfs'] . "/result/" . $fichier)) { $file = new File(); if (strpos($fileType, 'image') !== false) { $image = 1; } else { $image = 0; } $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $v; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } else { if ($value != '') { $tmp = $_FILES['File']['tmp_name']['elementid'][$key]; $rnd = rand(0, 99999); $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $value); $fileType = CFileHelper::getMimeType($v); //this makes sure it is an image, getimagesize doesn't work $noexe = CFileHelper::getExtension($v); if (strpos($noexe, 'py') !== false or strpos($noexe, 'exe') !== false) { throw new CHttpException(403, "Forbidden type of file"); } if (move_uploaded_file($tmp, Yii::app()->params['dfs'] . "/result/" . $fichier)) { //Si la fonction renvoie TRUE, c'est que ça a fonctionné... $file = new File(); if (strpos($fileType, 'image') !== false) { $image = 1; } else { $image = 0; } $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $value; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } } $this->redirect(array('issue/view', 'id' => $issueId)); } else { //user is trying to access the update view. Then create a new record in opendocs and access update view $model = new Opendocs(); $model->issueId = $issueId; $model->userId = Yii::app()->user->id; $model->createTime = new CDbExpression('GETDATE()'); $model->save(); $this->render('update', array('model' => $issue, 'traveler' => $issue->traveler, 'issueId' => $issueId)); } } }
public function actionSave($id) { // Получаем куки для опроса /* define('COOKIE_NAME', 'poll_genplanmos_ru'); $isCookie = isset(Yii::app()->request->cookies[COOKIE_NAME]->value); $pollCookie = $isCookie ? Yii::app()->request->cookies[COOKIE_NAME] : new CHttpCookie(COOKIE_NAME, ''); $pollCookieValue = $isCookie? CJSON::decode($pollCookie->value) : array(); * */ // Авторизован ли пользователь if (Yii::app()->user->isAuthenticated() === false) { $this->redirect(Yii::app()->user->loginUrl); } if (($user = Yii::app()->user->getProfile()) === null) { Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'User not found.')); Yii::app()->user->logout(); $this->redirect((array) '/user/account/login'); } $poll = Poll::model()->active()->with(array('questions' => array('scopes' => 'active')))->findByPK((int) $id); if (!$poll) { throw new CHttpException(404, Yii::t('PollModule.poll', 'Страница не найдена')); } // Поиск результата $result = Result::model()->find('t.user_id = :user_id AND t.poll_id = :poll_id', array(':user_id' => $user->id, ':poll_id' => $poll->id)); if ($result !== null) { throw new CHttpException(403, Yii::t('PollModule.poll', 'Вы уже проходили данный опрос')); } $result = new Result(); $result->user_id = $user->id; $result->poll_id = $poll->id; // Обработка результата if (($data = Yii::app()->getRequest()->getPost('question')) !== null) { // Формирование списка ответов $answers = array(); foreach ($poll->questions as $question) { $formValue = isset($data[$question->id]) ? $data[$question->id] : null; switch ($question->type) { case Question::TYPE_VARIANT: $answer = new Answer(); $answer->question_id = $question->id; $answer->variant_id = $formValue !== null ? (int) $formValue : $formValue; $answers[] = $answer; break; case Question::TYPE_MULTIPLE: // Просматриваем полученные ответы if (!isset($formValue) || !is_array($formValue)) { break; } foreach ($formValue as $value) { $answer = new Answer(); $answer->question_id = $question->id; $answer->variant_id = (int) $value; $answers[] = $answer; } break; default: $answer = new Answer(); $answer->question_id = $question->id; $answer->value = $formValue !== null ? $formValue : ''; $answers[] = $answer; break; } $result->answers = $answers; } if ($result->validate()) { $result->save(); Yii::app()->ajax->success(array('html' => $this->widget('application.modules.poll.widgets.PollWidget', array('model_id' => $poll->id), true))); } else { Yii::app()->ajax->failure(array('message' => '', 'errors' => $result->getErrors())); } } }
public function get_result() { require_once "application/libraries/simple_html_dom.php"; ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set("allow_url_fopen", TRUE); $html = new Simple_HTML_DOM($this->result_list); if (empty($html)) { echo "ไม่สามารถดึงข้อมูลได้"; } else { $num = count($html->find("table[width=500] tbody tr td a")); $x = 3; for ($i = 0; $i < $num; $i++) { $result_type_id = 0; // set default $links = iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr td a", $i)->href); $file_name = str_replace("Data/", "", $links); if (stripos(trim(iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr td a", $i)->plaintext)), "สัปดาห์")) { $result_type_id = 1; } if (stripos(trim(iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr td a", $i)->plaintext)), "เดือน")) { $result_type_id = 2; } if (!file_exists("uploads/results/" . $file_name)) { if (!file_exists("uploads/results")) { $maskdir = @umask(0); @mkdir("uploads/results", 0777); @umask($maskdir); } $data = @file_get_contents("http://164.115.100.119/rpt_m/" . $links); @file_put_contents("uploads/results/" . $file_name, $data); $title = trim(iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr td a", $i)->plaintext)); $date = @trim(iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr", $x)->children(2)->plaintext)); $date .= " " . @trim(iconv("tis-620", "utf-8", $html->find("table[width=500] tbody tr", $x)->children(2)->next_sibling()->plaintext)); $foo = new Result(); $foo->title = $title . " (กส.9)"; $foo->result_type_id = $result_type_id; $foo->deposits = 2; $foo->file_path = "uploads/results/{$file_name}"; $foo->import_time = $date; $foo->show_date = $date; $foo->file_size = filesize($foo->file_path); $foo->save(); } $x++; } } }
static function transaction_33($original_data, $web_service_details) { global $data_list; $data = Migration::soap_call($web_service_details, 'notaDetalles', array('uididpersona' => $original_data['item_id'], 'uididprograma' => $original_data['orig_id'], 'intIdSede' => $original_data['branch_id'])); if ($data['error'] == false) { $uidIdPrograma = $original_data['orig_id']; $uidIdPersona = $original_data['item_id']; $score = $data['name']; $session_id = self::get_session_id_by_programa_id($uidIdPrograma, $data_list); $user_id = self::get_user_id_by_persona_id($uidIdPersona, $data_list); if (empty($user_id)) { return array('message' => "User does not exists in DB: {$uidIdPersona}", 'status_id' => self::TRANSACTION_STATUS_FAILED); } if (empty($session_id)) { return array('message' => "Session does not exists in DB: {$uidIdPrograma}", 'status_id' => self::TRANSACTION_STATUS_FAILED); } $course_list = SessionManager::get_course_list_by_session_id($session_id); if (!empty($course_list)) { $course_data = current($course_list); if (isset($course_data['code'])) { $gradebook = new Gradebook(); $gradebook = $gradebook->get_first(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id)))); error_log("Looking gradebook in course code: {$course_data['code']} - session_id: {$session_id}"); if (!empty($gradebook)) { //Check if gradebook exists $eval = new Evaluation(); $evals_found = $eval->load(null, null, null, $gradebook['id'], null, null); //Try to create a gradebook evaluation if (empty($evals_found)) { error_log("Trying to create a new evaluation in course code: {$course_data['code']} - session_id: {$session_id}"); $params = array('session_id' => $session_id, 'gradebook_description' => 'Evaluación General', 'gradebook_evaluation_type_id' => 0); self::create_gradebook_evaluation($params); $evals_found = $eval->load(null, null, null, $gradebook['id'], null, null); } if (!empty($evals_found)) { $evaluation = current($evals_found); $eval_id = $evaluation->get_id(); error_log("Gradebook exists: {$gradebook['id']} eval_id: {$eval_id}"); //Eval found $res = new Result(); $check_result = Result::load(null, $user_id, $eval_id); if (!empty($check_result) && isset($check_result[0])) { // Gradebook result found. Updating... $res->set_evaluation_id($eval_id); $res->set_user_id($user_id); $res->set_score($score); $res->set_id($check_result[0]->get_id()); $res->save(); $eval_result = Result::load(null, $user_id, $eval_id); return array('entity' => 'gradebook_evaluation_result', 'before' => $check_result, 'after' => $eval_result, 'message' => "Gradebook result edited ", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL); } else { // Gradebook result not found. Creating... // @todo disable when moving to production $res->set_evaluation_id($eval_id); $res->set_user_id($user_id); //if no scores are given, don't set the score $res->set_score($score); $res->add(); $eval_result = Result::load(null, $user_id, $eval_id); //$message = "Gradebook result not modified because gradebook result does not exist for user_id: $user_id - eval_id: $eval_id - gradebook_id: {$gradebook['id']} - course: {$course_data['code']} - session_id: $session_id"; return array('entity' => 'gradebook_evaluation_result', 'before' => null, 'after' => $eval_result, 'message' => "Gradebook result added because it did not exist for update", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL); } } else { $message = "Evaluation not found in gradebook: {$gradebook['id']} : in course: {$course_data['code']} - session_id: {$session_id}"; } } else { $message = "Gradebook does not exists in course: {$course_data['code']} - session_id: {$session_id}"; } } else { $message = "Something is wrong with the course "; } } else { $message = "NO course found for session id: {$session_id}"; } return array('message' => $message, 'status_id' => self::TRANSACTION_STATUS_FAILED); } else { return $data; } }
public function actionimportExcelTable($id, $issueId) { //step id if (isset($_FILES['Excel'])) { $post = Result::model()->importExcelTable($_FILES['Excel']); //var_dump($post); Yii::import('ext.phpexcel.IOFactory'); Yii::import('ext.phpexcel.*'); Yii::import('ext.phpexcel.XPHPExcel'); Yii::import('ext.phpexcel.shared.string'); $newsheet = XPHPExcel::createPHPExcel(); $inputFileName = $post; try { $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); } catch (PHPExcel_Reader_Exception $e) { die('Error loadinng file: ' . $post); //$e->getMessage()); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumnIndex = $sheet->getHighestColumn(); $index = array('A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8); $highestColumn = $index[$highestColumnIndex]; $index = array_slice($index, 0, $highestColumn); $element = new Element(); $element->stepId = $id; $element->typeId = 13; $element->save(); $elementId = $element->id; $step = $this->loadModel($id); for ($row = 1; $row <= $highestRow; $row++) { $rows[] = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow('A', $row)->getValue(); } $columns = array(); foreach ($index as $key => $position) { $columns[] = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($position, 1)->getValue(); } //$salida=$step->addGrid($element, $rows, $columns); $issue = new Issue(); for ($row = 1; $row <= $highestRow; $row++) { foreach ($index as $key => $position) { if ($row >= 1 && $position > 0) { $result = new Result(); $result->elementId = $elementId; $result->issueId = $issueId; $result->value = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($position, $row)->getValue(); $result->colonne = $position - 1; $result->ligne = $row - 2; throw new CHttpException(403, 'row: ' . $result->ligne . '. Columna: ' . $result->colonne . '.Value: ' . $result->value); $result->save(); } } } //$this->redirect(array('view','id'=>$id)); } else { throw new CHttpException(403, "Failure loading file"); } }
public function add_result() { $requirements = ['exp_id', 'user_id', 'data']; $check = self::check_requirements($requirements); if ($check) { return Error::make(0, 100, $check); } $experiment = Experiment::where('exp_id', '=', Input::get('exp_id'))->first(); if (is_null($experiment)) { return Error::make(1, 10); } $user = User::where('user_id', '=', Input::get('user_id'))->first(); if (is_null($user)) { return Error::make(1, 1); } if (Input::has('result_id')) { $res = Result::where('result_id', '=', Input::get('result_id'))->first(); if (intval(Input::get('exp_id')) != intval($res->exp_id)) { return Error::make(1, 11); } if (intval(Input::get('user_id')) != intval($res->user_id)) { return Error::make(1, 12); } } $columns = json_decode($experiment->specifications, true)["columns"]; $results = json_decode(Input::get('data'), true); foreach ($results as $reading) { foreach ($columns as $column) { if (array_key_exists($column["title"], $reading)) { if (!is_null($column["subcolumns"]) && sizeof($column["subcolumns"]) > 0) { foreach ($column["subcolumns"] as $subcolumn) { if (!array_key_exists($subcolumn["title"], $reading[$column["title"]])) { return Error::make(101, 101, "Column " . $column["title"] . " has missing subcolumn " . $subcolumn["title"]); } } } } else { return Error::make(101, 101, "Missing column " . $column["title"]); } } } if (Input::has('result_id')) { try { Result::where('result_id', '=', intval(Input::get('result_id')))->update(array('data' => json_encode($results))); return Error::success("Results successfully updated", array('result_id' => intval(Input::get('result_id')))); } catch (Exception $e) { return Error::make(101, 101, $e->getMessage()); } } else { $res = new Result(); $res->data = json_encode($results); $res->user_id = intval(Input::get('user_id')); $res->exp_id = intval(Input::get('exp_id')); try { $res->save(); return Error::success("Result successfully added!", array('result_id' => $res->id)); } catch (Exception $e) { return Error::make(101, 101, $e->getMessage()); } } }
public function submitExam($id) { $questions = $this->getExamData($id); $marks = 0; for ($i = 0; $i <= $questions['size']; $i = $i + 2) { if (trim(Input::get('opt' . $i)) === trim($questions['opt' . $i][4])) { $marks = $marks + 2; } } $result = new Result(); $result->marks = $marks; $result->studentloginid = Session::get('user')->id; $result->examdate = date(1); $result->examid = $id; $result->attempt = 1; if ($result->save()) { return 'your marks are ' . $marks; } else { return 'try again'; } }
/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function actionUpdate($id) { //$id corresponds to issueID NOT TO id!!!!!!!!!!!! $keys = Result::model()->encontrarPorId($id); $todos = implode(" , ", $keys); //$keysCont=0; //Result::model()->encontrarPorId($id); $this->layout = "//layouts/column1"; $issue = $this->loadIssue($id); $redirect = false; $issueId = $id; //checking if the document is already opened $opened = Opendocs::model()->find("issueId={$issueId}"); if (isset($_POST['Result'])) { //Result::model()->reset($id);//RESET $redirect = true; $post = $_POST['Result']; if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { //if ($value != '') { if (is_array($value)) { foreach ($value as $option) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if ($model->value != $option) { $model->value = $option; $model->save(); } } } else { $model = Result::model()->find("elementId = {$key} and issueId = {$issueId}"); if ($model === null) { $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; } if ($model->value != $value) { $model->value = $value; $model->save(); } } //} } } } if (isset($_POST['Checks'])) { //Result::model()->resetBox($id);//RESET $redirect = true; $typeId = 6; $post = $_POST['Checks']; $values = array(); if (isset($post['elementid'])) { $elementId = $post['elementid']; foreach ($elementId as $key => $value) { if (is_array($value)) { foreach ($value as $option) { $values[] = $option; $model = new Result(); $model->elementId = $key; $model->issueId = $issueId; if (in_array($option, $value)) { $what = Element::doesExist($key, $issueId, $option); if ($what < 1) { $model->value = $option; $model->save(); } } } } $statement = " "; foreach ($values as $cond) { $statement .= " and t.value NOT like '{$cond}'"; } $statement = "issueId= {$issueId} and elementId = {$key} " . $statement; $criteria = new CDbCriteria(); $criteria->condition = $statement; //"issueId = $issueId and elementId = $key and value NOT LIKE ('$values')"; $modelo = Result::model()->findAll($criteria); foreach ($modelo as $borrar) { $borrar->delete(); } } } } if (isset($_POST['Table'])) { //Result::model()->resetTable($id); //Result::model()->setTableOFF($id); $redirect = true; $tables = $_POST['Table']; foreach ($tables as $key => $value) { $elementId = $key; foreach ($value as $row => $array) { foreach ($array as $column => $response) { if ($elementId != "xxx") { $res = Result::model()->find("elementId = {$elementId} and issueId = {$issueId} and colonne = {$column} and ligne = {$row}"); if ($res === null) { $res = new Result(); $res->elementId = $elementId; $res->issueId = $issueId; $res->colonne = $column; $res->ligne = $row; //if($response!=null || $response!="" || !isset($response)){ } if ($response != $res->value) { $res->value = $response; $res->save(); } } } } } } //else Result::model()->resetTable($id); //resetEmptyTable($id); if (isset($_FILES['File'])) { foreach ($_FILES['File']['name']['elementid'] as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { if ($v != '') { $rnd = rand(0, 99999); $tmpname = $_FILES['File']['tmp_name']['elementid'][$key][$k]; $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $v); if (move_uploaded_file($tmpname, Yii::app()->params['dfs'] . "/result/" . $fichier)) { $file = new File(); if (@getimagesize($tmpname)) { $image = 1; } else { $image = 0; } $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $v; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } else { if ($value != '') { $tmp = $_FILES['File']['tmp_name']['elementid'][$key]; $rnd = rand(0, 99999); $fichier = "{$rnd}-" . preg_replace("/[^a-zA-Z0-9\\/_|.-]/", "_", $value); if (@getimagesize($tmp)) { $image = 1; } else { $image = 0; } if (move_uploaded_file($tmp, Yii::app()->params['dfs'] . "/result/" . $fichier)) { //Si la fonction renvoie TRUE, c'est que ça a fonctionné... $file = new File(); $file->image = $image; $file->userId = Yii::app()->user->id; $file->fileSelected = $value; $file->link = "result/" . $fichier; if ($file->save()) { $fileId = $file->id; $res = new Result(); $res->elementId = $key; $res->issueId = $issueId; $res->fileId = $fileId; $res->value = $file->id; $res->save(); } } } } } } if (isset($opened) && $redirect == false) { //si no se ha modificado nada y hay item if ($opened->userId != Yii::app()->user->id) { $now = time(); $morethanyesterday = strtotime($opened->createTime); $morethanyesterday = $morethanyesterday + 86400; if ($now < $morethanyesterday) { //si hay un registro con menos de 24h $user = User::model()->findByPk($opened->userId); $this->render('open', array('user' => $user, 'opened' => $opened, 'issueId' => $issueId)); } } else { $opened->createTime = new CDbExpression('GETDATE()'); $opened->save(); $this->render('update', array('model' => $issue, 'traveler' => $issue->traveler, 'issueId' => $issueId)); } } else { if ($redirect) { //si han habido cambios, es decir, se ha dado a guardar!! $opened->delete(); $this->redirect(array('issue/view', 'id' => $issueId)); } } if (!isset($opened)) { $model = new Opendocs(); $model->issueId = $issueId; $model->userId = Yii::app()->user->id; $model->createTime = new CDbExpression('GETDATE()'); $model->save(); $this->render('update', array('model' => $issue, 'traveler' => $issue->traveler, 'issueId' => $issueId)); } }
/** * Store the answer * * @return mixed */ public function storeAction() { $token = $this->getToken(); if (!$token) { return Redirect::route('info')->with('message', 'Токен не найден'); } if ($token->status != Token::TOKEN_STATUS_STARTED) { return Redirect::route('token.index', ['token' => $token->token]); } if (!$this->isTokenValid($token)) { Session::forget('token_string'); $token->status = Token::TOKEN_STATUS_EXPIRED; $token->save(); return Redirect::route('info')->with('message', 'Время теста истекло, ответ не засчитан'); } $questionId = Session::get('question_id', false); $testAnswers = Session::get('test_answers', []); if (!$questionId || !is_numeric($questionId)) { return Redirect::route('info')->with('message', 'Ошибка данных сессии.'); } $question = Question::find((int) $questionId); if (!$question) { return Redirect::route('info')->with('message', 'Ошибка данных сессии. Вопрос не найден.'); } $data = Input::all(); $result = new Result(); $result->token = $token->token; $result->test_id = $token->test->id; $result->question_id = (int) $questionId; $result->q_text = $question->text; $result->q_image = $question->image; /** * Process the answer depending on question type */ switch ($question->type) { case Question::TYPE_RADIO: if (!isset($data['answer']) || !$data['answer']) { return Redirect::route('info')->with('message', 'Ожидается ответ.'); } foreach ($testAnswers as $id => $hash) { if ($hash == $data['answer']) { $answer = Answer::find($id); } } if (!$answer) { return Redirect::route('info')->with('message', 'Такой ответ не найден.'); } $result->a_text = $answer->text; $result->a_image = $answer->image; $result->is_correct = $answer->is_correct; $result->weight = $answer->weight; break; case Question::TYPE_CHECKBOX: $answer = isset($data['answer']) ? $data['answer'] : []; // has to be an array if (!is_array($answer)) { return Redirect::route('info')->with('message', 'Ответ должен быть массивом.'); } $answer_ = $answer; // we need to find real answer ids $answer = []; foreach ($testAnswers as $id => $hash) { foreach ($answer_ as $a_) { if ($hash == $a_) { $answer[] = Answer::find($id)->id; } } } if (!empty($answer)) { $answers = DB::table('answer')->whereIn('id', $answer)->get(); } else { $answers = []; } $isThereACorrectAnswer = false; $correctNum = 0; // Is there at least one correct answer? foreach ($question->answers as $ans) { if ($ans->is_correct) { $isThereACorrectAnswer = true; $correctNum++; } } $result->a_text = ''; if (!$isThereACorrectAnswer && count($answers) > 0) { // There are no correct answers, but user have chosen something $result->is_correct = false; } elseif (!$isThereACorrectAnswer && count($answers) == 0) { $result->is_correct = true; } elseif ($isThereACorrectAnswer && count($answers) == 0) { $result->is_correct = false; } elseif ($isThereACorrectAnswer && count($answers) > 0 && count($answers) != $correctNum) { $result->is_correct = false; } elseif ($isThereACorrectAnswer && count($answers) > 0 && count($answers) == $correctNum) { // check if all correct answers selected $result->is_correct = true; $result->weight = 0; foreach ($question->answers as $ans) { if (!$ans->is_correct) { continue; } if (!in_array($ans->id, $answer)) { $result->is_correct = false; } $result->a_text .= $ans->text . ';'; $result->a_image = $ans->image; $result->weight += $ans->weight; } if (!$result->is_correct) { $result->weight = 0; } } break; case Question::TYPE_STRING: if (!isset($data['answer']) || !$data['answer']) { $result->a_text = ''; $result->is_correct = false; } else { $result->a_text = trim($data['answer']); $result->is_correct = true; $result->weight = 1; } break; } $result->save(); Session::forget('question_id'); return Redirect::route('test.index'); }