Popravek statusa panela (modula panel) - status se shrani v cookie, ker drugace se izgubi ce gre za preskok strani, pobrisana nepotrebna koda

This commit is contained in:
pero1203 2020-09-30 22:15:21 +02:00
parent dd75be0d77
commit 874ebd2d6d
5 changed files with 1129 additions and 1124 deletions

View File

@ -850,7 +850,7 @@ class BodyController extends Controller
}
// Pridobimo koncen status panelista (ce ni bil nikjer nastavljen uporabimo default)
$panel_status = (isset($_POST['panel_status']) && $_POST['panel_status'] != '') ? $_POST['panel_status'] : $panel_settings['status_default'];
$panel_status = (isset($_COOKIE['panel_status']) && $_COOKIE['panel_status'] != '') ? $_COOKIE['panel_status'] : $panel_settings['status_default'];
// Nastavimo koncen url za redirect
$finishUrl = 'http://survey.ipanel.co.il/mrIWeb/mrIWeb.dll?';
@ -866,7 +866,7 @@ class BodyController extends Controller
$panelist_id = $rowP['text'];
// Pridobimo koncen status panelista (ce ni bil nikjer nastavljen uporabimo default)
$panel_status = (isset($_POST['panel_status']) && $_POST['panel_status'] != '') ? $_POST['panel_status'] : $panel_settings['status_default'];
$panel_status = (isset($_COOKIE['panel_status']) && $_COOKIE['panel_status'] != '') ? $_COOKIE['panel_status'] : $panel_settings['status_default'];
// Nastavimo koncen url za redirect
$finishUrl = $row['url'].'?'.$panel_settings['user_id_name'].'='.$panelist_id.'&'.$panel_settings['status_name'].'='.$panel_status;
@ -1757,15 +1757,13 @@ class BodyController extends Controller
/**
* @desc prikaze trenutno grupo
*/
public function displayGrupa()
{
public function displayGrupa(){
// Ce imamo vklopljene napredne parapodatke zabelezimo id-strani
if(SurveyAdvancedParadataLog::getInstance()->paradataEnabled()){
SurveyAdvancedParadataLog::getInstance()->displayGrupa(get('grupa'));
}
//$up_id = uniqid();
$sql = sisplet_query("SELECT naslov, vrstni_red FROM srv_grupa WHERE id = '" . get('grupa') . "'");
$row = mysqli_fetch_array($sql);
if (!get('printPreview')) {
@ -1779,7 +1777,6 @@ class BodyController extends Controller
SurveySetting::getInstance()->Init(get('anketa'));
$rowa = SurveyInfo::getInstance()->getSurveyRow();
// izbira jezika za respondenta - Ce nimamo prikazanega uvoda, prikazemo izbiro na prvi strani
if (SurveySetting::getInstance()->getSurveyMiscSetting('resp_change_lang') == 1 && $rowa['multilang'] == 1 && $rowa['show_intro'] == 0 && $row['vrstni_red'] == 1) {

View File

@ -358,7 +358,7 @@ class HeaderController extends Controller
// Ce gre za prvo nastavimo na default vrednost, drugace beremo iz post-a
$sp = new SurveyPanel(get('anketa'));
$panel_status = (isset($_POST['panel_status']) && $_POST['panel_status'] != '') ? $_POST['panel_status'] : $sp->getPanelSettings('status_default');
$panel_status = (isset($_COOKIE['panel_status']) && $_COOKIE['panel_status'] != '') ? $_COOKIE['panel_status'] : $sp->getPanelSettings('status_default');
echo ' <input type="hidden" id="panel_status" name="panel_status" value="'.$panel_status.'">';
}

View File

@ -291,15 +291,21 @@ class InitClass extends Controller
Body::getInstance()->displayKonec();
} elseif (get('displayAllPages')) {
}
elseif (get('displayAllPages')) {
Body::getInstance()->displayAllPages();
}
// prikazemo ustrezno stran / grupo
} elseif (get('grupa') > 0) {
elseif (get('grupa') > 0) {
$preskok = false;
// pogledamo ce preskocimo kaksno stran zaradi branchinga
while (!Check::getInstance()->checkGrupa() && get('grupa') > 0 && $_GET['disableif'] != 1) {
SaveSurvey::getInstance()->posted(1);
save('grupa', Find::getInstance()->findNextGrupa());
$preskok = true;
@ -320,15 +326,11 @@ class InitClass extends Controller
// nastavimo status -- kliknil je na anketo
$this->set_userstatus(3);
// nastavimo statuse -3 pri checkboxih in multicheckboksih
//ta funkcija ne obstaja in je bila odstranjena
// $this->set_userdatastatus(3);
Body::getInstance()->displayIntroduction();
}
}
// poslani so bili odgovori
} else {
else {
save('grupa', $_GET['grupa']);
@ -352,7 +354,8 @@ class InitClass extends Controller
Body::getInstance()->displayKonec();
} else {
}
else {
// ce je nastavljena grupa (se pravi ni prva stran) in ce nismo v predogledu ankete
if (get('grupa') > 0 || get('displayAllPages')) {
// nastavimo status -- izpolnjuje anketo
@ -370,9 +373,11 @@ class InitClass extends Controller
if (get('loop_AW') == 0 && get('loop_id') == null) {
$grupa = Find::getInstance()->findNextGrupa();
} elseif (get('loop_AW') == 1) {
}
elseif (get('loop_AW') == 1) {
$grupa = get('grupa');
} elseif (get('loop_id') != null) {
}
elseif (get('loop_id') != null) {
$grupa = get('grupa');
save('loop_id', Find::getInstance()->findNextLoopId(), 1);
if (get('loop_id') == null)
@ -389,7 +394,8 @@ class InitClass extends Controller
echo ' document.location.href=\'https://www.1ka.si/\';' . "\n";
echo ' </script>' . "\n";
} elseif ($grupa > 0) {
}
elseif ($grupa > 0) {
save('grupa', $grupa);
@ -400,7 +406,8 @@ class InitClass extends Controller
elseif (get('loop_id') != null)
header('Location: ' . SurveyInfo::getSurveyLink(false, false) . '&grupa=' . get('grupa') . '&loop_id=' . get('loop_id') . Header::getSurveyParams() . get('cookie_url') . '');
} else {
}
else {
// nastavimo status -- anketo je izpolnil do konca
$this->set_userstatus(6);
@ -420,7 +427,6 @@ class InitClass extends Controller
// prisli smo cez vse silne procedure in redirecte, lahko pobrisemo cookie za referer, ker ga (upam) ne rabimo vec
setcookie('ref', '', time() - 5000); // pobrisemo cookie
}
/**

View File

@ -97,21 +97,22 @@ class VprasanjaController extends Controller
/**
* @desc prikaze spremenljivke v trenutni grupi
*/
public function displaySpremenljivke()
{
public function displaySpremenljivke(){
if (!get('printPreview')) {
// poiscemo vprasanja s prejsnje strani, ki imajo vklopljeno statistiko
Statistic::displayStatistika();
// zgeneriramo sistemske spremenljivke
Header::getInstance()->displaySistemske();;
Header::getInstance()->displaySistemske();
// prikazemo skrita ze odgovorjena vprasanja
Vprasanja::getInstance()->displaySpremenljivkeHidden();
}
$offset = 0;
$zaporedna = 1;
if (SurveyInfo::getInstance()->getSurveyCountType() > 0) {
// Preštejemo koliko vprašanj je bilo do sedaj
$sqlg = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id='" . get('grupa') . "'");
@ -127,7 +128,8 @@ class VprasanjaController extends Controller
// če imamo pri posamezni spremenljivki nastavljeno da jo prikazujemo na začetku vsake strani
if (get('displayAllPages')) {
$sql = sisplet_query("SELECT s.id FROM srv_spremenljivka AS s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='" . get('anketa') . "' ORDER BY g.vrstni_red, s.vrstni_red ASC");
} else {
}
else {
// Optimizirano
$sql = sisplet_query("SELECT s.id FROM srv_spremenljivka AS s, srv_grupa g WHERE ((s.gru_id='" . get('grupa') . "' AND s.visible='1' AND g.ank_id='" . get('anketa') . "') OR (s.showOnAllPages = '1' AND s.visible='1' AND g.ank_id='" . get('anketa') . "')) AND s.gru_id=g.id ORDER BY g.vrstni_red, s.vrstni_red ASC");
}

View File

@ -63,11 +63,15 @@ class SaveSurvey extends Model
* @param mixed $preskocena_stran v primeru, da stran preskocimo, to zapisemo v bazo v srv_user_grupa
* @param mixed $spr_id podamo v primeru, da shranjujemo samo 1 spremenljivko (in ne celo stran), uporablja se pri urejanju podatkov
*/
public function posted($preskocena = 0, $spr_id = 0)
{
public function posted($preskocena = 0, $spr_id = 0){
global $lang;
global $admin_type;
// Modul panel - status - shranimo v cookie, ker drugace se vcasih ne ohrani do konca ce so strani preskocene
if(isset($_POST['panel_status']) && $_POST['panel_status'] != ''){
setcookie('panel_status', $_POST['panel_status'], 0, '/');
}
Check::getInstance()->check_captcha();
# če smo samo v predogledu uporabnika ne shranjujemo
@ -79,9 +83,7 @@ class SaveSurvey extends Model
$rowa = SurveyInfo::getInstance()->getSurveyRow();
// podatke shranimo samo, ce je anketa aktivna
// -- podatke shranimo v vsakem primeru, ker jih v neaktivni ali predogledu potem na koncu zbrisemo!!!
if (/*$rowa['active'] == 1 or*/ true) {
// podatke shranimo v vsakem primeru, ker jih v neaktivni ali predogledu potem na koncu zbrisemo!!!
// updatamo, ce ne gre za preskoceno stran. pri preskoceni strani, pa updatamo samo prvic
if ($preskocena == 0 || get('preskocena_first') == 1) {
@ -1337,8 +1339,6 @@ class SaveSurvey extends Model
$this->posted_commit();
// pri preskoceni strani podatke shranimo z posted_commit(), ki se klice izven te funkcije, kjer loopamo cez strani
}
}
/**