/** * @return mixed the value of the given option or the default, if none */ public function getOption($name, $defaultValue = null, $returnModel = false) { $data = ['name' => $name, 'parent_class' => self::className(), 'parent_id' => $this->id]; $meta = Meta::findOne($data); if ($returnModel) { if (!isset($meta)) { $meta = new Meta(); $data['value'] = $defaultValue; $meta->load(['data' => $data], 'data'); } return $meta; } else { return isset($meta) ? $meta->value : $defaultValue; } }
public function processCode($code) { if ($this->isCodeActive($code)) { $group = Group::findOne($code->z_p_id)->toArray(); $bank = Bank::findOne($code->z_b_id)->toArray(); $form = Form::findOne(['f_klasse' => $bank['klasse'], 'f_p_id' => $group['p_id']]); Yii::$app->session['anketData'] = ['code' => $code->toArray(), 'group' => $group, 'bank' => $bank, 'form' => $form->f_id, 'status' => 0, 'lang' => $this->language]; $meta = Meta::findOne(['m_z_id' => $code->z_id]); if (!$meta) { $meta = new Meta(); $meta->m_z_id = $code->z_id; $meta->ip = $_SERVER['REMOTE_ADDR']; $meta->time_start = time(); } else { $meta->ip = $_SERVER['REMOTE_ADDR']; } $meta->save(); return true; } return false; }
public function processCode($fullCode) { $code = $fullCode['code']; $original = $fullCode['original']; if ($this->isCodeActive($code)) { $group = Group::findOne($code->z_p_id)->toArray(); $bank = Bank::findOne($code->z_b_id)->toArray(); $form = Form::findOne(['f_klasse' => $bank['klasse'], 'f_p_id' => $group['p_id']]); $style = Style::findOne(['s_b_id' => $bank['b_id'], 's_p_id' => $group['p_id']]); if (!$style) { $style = Settings::getSetting('style'); } else { $style = $style->style; } $label = Yii::$app->params['default_next_label']; $message = Yii::$app->params['default_next_message']; if ($this->language != "default") { $language = Language::findOne($this->language); if ($language != null) { if ($language->label != '') { $label = $language->label; } if ($language->message != '') { $message = $language->message; } } } Yii::$app->session['anketData'] = ['original' => $original, 'code' => $code->toArray(), 'group' => $group, 'bank' => $bank, 'form' => $form->f_id, 'status' => 0, 'lang' => $this->language, 'style' => $style, 'label' => $label, 'message' => $message]; $meta = Meta::findOne(['m_z_id' => $code->z_id]); if (!$meta) { $meta = new Meta(); $meta->m_z_id = $code->z_id; $meta->ip = $_SERVER['REMOTE_ADDR']; $meta->time_start = time(); } else { $meta->ip = $_SERVER['REMOTE_ADDR']; } $meta->save(); return true; } return false; }
/** * Finds the Meta model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Meta the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Meta::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/* @var $this yii\web\View */ /* @var $model app\models\Bank */ $this->title = $model->bezeichnung . ' - Statistik'; $this->params['breadcrumbs'][] = ['label' => 'Banken', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="bank-view"> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'columns' => [['label' => 'Personengruppe', 'attribute' => 'bezeichnung', 'width' => '20%'], ['label' => 'Anz. Codes', 'attribute' => 'tic_count', 'pageSummary' => true, 'width' => '20%'], ['label' => 'Komplett', 'attribute' => 'bused', 'pageSummary' => true, 'width' => '20%'], ['label' => 'nur 50 oder mehr', 'attribute' => 'bused50', 'pageSummary' => true, 'width' => '20%'], ['label' => 'Gesamt in Auswertung', 'attribute' => 'busedtot', 'pageSummary' => true, 'width' => '20%']], 'showPageSummary' => true]); $codes = \app\models\Code::find()->andWhere(['used' => 1, 'z_b_id' => $model->b_id])->all(); $count = 0; $ips = array(); $time = 0; foreach ($codes as $code) { $count++; $meta = \app\models\Meta::findOne(['m_z_id' => $code->z_id]); $time += $meta->time_end - $meta->time_start; if (!isset($ips[$meta->ip])) { $ips[$meta->ip] = 1; } else { $ips[$meta->ip]++; } } $mip = ''; $max = 0; foreach ($ips as $ip => $ipc) { if ($ipc > $max) { $max = $ipc; $mip = $ip; } }
public function actionForm() { if (!isset(Yii::$app->session['anketData'])) { $this->redirect(['/site/index']); } $data = Yii::$app->session['anketData']; $form = Form::findOne($data['form']); $questions = $form->getQuestions($bank_id = $data["bank"]["b_id"]); $status = isset($data['status']) && !empty($data['status']) ? $data['status'] : Code::findOne($data['code']['z_id'])->status; if (Yii::$app->request->post('q')) { $userAnswers = Yii::$app->request->post('q'); $status = $form->saveAnswers($data['code'], $userAnswers); $data['status'] = $status; $data['code']['status'] = $status; $code = Code::findOne($data['code']['z_id']); $code->used = 0; //workaround $code->count = 1; $code->status = $status; $code->save(); } Yii::$app->session['anketData'] = $data; if (!($status < $form->getQuestionsCount($questions))) { $code = Code::findOne($data['code']['z_id']); $code->used = 1; $meta = Meta::findOne($data['code']['z_id']); $meta->time_end = time(); $meta->save(); //workaround. Doesn't affect nothing at all $code->count = 1; $code->save(); $this->redirect(['/site/end']); } return $this->render('form', ['status' => $status, 'percent' => round($status / $form->getQuestionsCount($questions) * 100), 'questions' => $questions, 'anket' => $form, 'bank' => $data['bank']['b_id'], 'style' => $data['style']]); }