library pri datotekah, 0 -> glasovanje, 1 -> forma, 2 -> ankata na več straneh, 3 -> ifi
var $skin = 0;
private $isSearch = 0; // ali izvajamo search po anektah
private $searchString = ''; // geslo po katerem iscemo po anketah
private $searchStringProcessed = array(); // geslo po katerem iscemo po anketah, obdelano (skrajsano da isce tudi po drugih sklanjatvah)
private $searchSettings = array(); // nastavitve searcha
/**
* @desc konstruktor
*/
function __construct ($_options = array()) {
global $surveySkin;
if (isset($surveySkin))
$this->skin = $surveySkin;
$this->SurveyAdmin = new SurveyAdmin(1, -1);
$this->Branching = new Branching($this->SurveyAdmin->anketa);
if (isset($_options['tab'])) {
$this->tab = $_options['tab'];
if ($this->tab <= 1)
$this->tip = 0;
else
$this->tip = 1;
}
else if (isset($_POST['tab'])) {
$this->tab = ($_POST['tab'] == 0 || $_POST['tab'] == 'undefined') ? 0 : $_POST['tab'];
if ($this->tab <= 1)
$this->tip = 0;
else
$this->tip = 1;
}
else {
$this->tab = 0;
$this->tip = 0;
}
if (isset($_options['prva'])) {
$this->prva = $_options['prva'];
}
else {
$this->prva = 0;
}
if (isset($_GET['tab'])) $this->tab = (int)$_GET['tab'];
// nastavimo mode v odvisnosti od survey_type ( če nismo v anketi je -1)
if (isset($this->SurveyAdmin->anketa) && $this->SurveyAdmin->anketa > 0) {
$_st = $this->SurveyAdmin->getSurvey_type($this->SurveyAdmin->anketa);
if ($_st > -1)
$this->mode = $_st;
}
$this->repareTabs();
// Preverimo ce gre za search po anketah
if(isset($_GET['search']) && $_GET['search'] != ''){
$this->isSearch = 1;
$this->searchString = str_replace("\\", "", trim($_GET['search']));
// Iscemo po naslovu ali vsebini
$this->searchSettings['stype'] = (isset($_GET['stype'])) ? $_GET['stype'] : '0';
}
}
/**
* @desc prikaze knjiznico znotraj ankete na desni
*/
function display () {
global $admin_type;
global $global_user_id;
global $lang;
echo '
';
echo '
'.$lang['srv_library'];
echo '
';
echo '
';
$this->display_tabs();
echo '';
echo '
';
$this->display_folders();
echo '
';
echo '
';
}
/**
* @desc prikaze tabe za izbiro
*/
function display_tabs () {
global $lang;
echo '';
echo 'tab==0 || $this->tab==1 ? ' class="highlightTabBlackLeft"' : ' class="nohighlight"') . ' >';
echo '' . $lang['srv_vprasanja'] . ' ';
echo 'tab==2 || $this->tab==3 ? ' class="highlightTabBlackRight"' : ' class="nohighlight"') . ' >';
echo '' . $lang['srv_ankete'] . ' ';
echo '
';
}
function display_folders () {
global $global_user_id;
global $lang;
// Knjiznica znotraj posamezne ankete
if ($this->prva == 0) {
$this->display_contentfolders(0, 0);
$this->display_contentfolders(0, $global_user_id);
if ($this->tip == 1) {
echo ''.$lang['srv_library_edit'].' ';
$sql = sisplet_query("SELECT * FROM srv_library_anketa WHERE uid='".$global_user_id."' AND ank_id='".$this->SurveyAdmin->anketa."'");
if (mysqli_num_rows($sql) == 0) {
echo '
';
}
} else {
echo ''.$lang['srv_library_q_txt'].'
';
}
//echo ''.$lang['srv_zapri'].' ';
}
// Knjiznica na prvi strani zraven mojih anket
else {
// Na prvi strani imamo search
if($this->isSearch == 1){
echo '';
$this->displaySearchSettings();
echo '
';
echo '
';
$this->display_contentfolders_searchList();
}
else{
echo '';
$this->displaySearch();
echo '
';
echo '
';
$this->display_contentfolders();
}
}
}
/**
* @desc prikaze folderje v knjiznici
*/
function display_contentfolders ($parent = 0, $uid = -1) {
global $lang;
global $admin_type;
global $global_user_id;
global $site_url;
$language = "";
if ($uid == -1) {
if ($this->tab == 0 || $this->tab == 2) {
$uid = 0;
} else {
$uid = $global_user_id;
}
}
if ($parent == 0 && $uid == 0) {
$language = " AND lang='$lang[id]' ";
}
$cookie = $_COOKIE['library_folders'];
// da se v url lahko doda odprte folderje: &libfolder=131-147 (more vkljucevat tudi parente)
if (isset($_GET['libfolder'])) $cookie .= '-'.$_GET['libfolder'].'-';
if ($parent == 0) {
// v skrite html elemente shranimo tab, in prva
echo ' tab").'">';
echo ' tip").'">';
echo ' prva").'">';
echo ''."\n";
}
$sql = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE uid='$uid' AND parent = '$parent' AND tip='$this->tip' $language ORDER BY naslov");
if (!$sql)
echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sql) == 0 && $uid > 0 && $parent == 0) {
// za prvic ko pride user, da mu dodamo folder
if ($this->tip == 0)
$naslov = $lang['srv_moja_vprasanja'];
else
$naslov = $lang['srv_moje_ankete'];
sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent, lang) VALUES ('$uid', '$this->tip', '$naslov', '0', '$lang[id]')");
$sql = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE uid='$uid' AND parent = '$parent' AND tip='$this->tip' ORDER BY naslov");
if (!$sql)
echo mysqli_error($GLOBALS['connect_db']);
}
while ($row = mysqli_fetch_array($sql)) {
if (strpos($cookie, '-'.$row['id'].'-')=== false && $parent!=0)
$hidden = true;
else
$hidden = false;
echo ' ';
if ($parent != 0)
echo ' ';
else
echo ' ';
echo ' '.
' 0?' onclick="folder_rename(\''.$row['id'].'\'); return false;"':'').'>'.$row['naslov'].' ';
if ($admin_type==0 || $uid>0)
echo ' ';
if ($parent != 0 && ($admin_type==0||$uid>0) )
echo ' ';
echo ' '."\n";
echo ''."\n";
$this->display_contentfolders($row['id'], $uid);
$this->display_ifs($row['id']);
// Izpis spremenljivk v folderju - v root folderju ne izpisujemo vprasanj (ker jih itak ne sme bit)
if(!($this->tip == 0 && $parent == 0 && $uid == 0)){
if ($this->tip == 0)
$sql1 = sisplet_query("SELECT * FROM srv_spremenljivka WHERE folder = '$row[id]' AND gru_id='-1' ORDER BY naslov ASC");
else
$sql1 = sisplet_query("SELECT * FROM srv_anketa a, srv_library_anketa l WHERE a.id=l.ank_id AND l.folder='$row[id]' AND l.uid='$uid' ORDER BY naslov ASC");
if (!$sql1) echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sql1) > 0) {
while ($row1 = mysqli_fetch_array($sql1)) {
echo '';
echo ' ';
echo '
';
if ($this->tip == 0) {
//echo '
';
if ($admin_type==0 or $uid==$global_user_id)
echo '
';
}
else {
SurveyInfo::getInstance()->SurveyInit($row1['id']);
if ($this->prva == "1") {
// Dodaj anketo v javno knjiznico
if ($admin_type == 0 && $this->tab == 3) {
$sqlPublic = sisplet_query("SELECT * FROM srv_library_anketa WHERE ank_id='".$row1['id']."' AND uid='0'");
if (!$sqlPublic) echo mysqli_error($GLOBALS['connect_db']);
// Anketa ze obstaja v javni knjiznici - jo pobrisemo
if (mysqli_num_rows($sqlPublic) > 0) {
echo '
';
echo ' '.$lang['srv_ank_lib_off'].' ';
echo ' ';
}
// Anketo dodamo v javno knjiznico
else{
echo '
';
echo ' '.$lang['srv_ank_lib_on'].' ';
echo ' ';
}
}
// nova anketa kot template iz knjiznice
echo '
'.$lang['srv_anketacopy'].' ';
echo '
'.$lang['srv_poglejanketo2'].' ';
// brisi iz knjiznice
if ($admin_type == 0) {
echo '
'.$lang['edit3'].' ';
}
if ($admin_type==0 && $this->tab==2) {// sistemska
echo '
'.$lang['hour_remove'].' ';
}
if($this->tab==3){// moja knjiznica
echo '
'.$lang['hour_remove'].' ';
}
}
else {
echo '
';
// moznost da povozi anketo z anketo iz knjiznice
//TEGA NE DOVOLIMO KER NI OK DA SE KAR PREPISE OBSTOJECO ANKETO - anketo iz knjiznice se lahko po novem dodaja samo iz mojih anket oz. pri ustvarjanju
echo '
';
}
}
echo '
';
echo '
';
if ($this->tip == 1 && $this->prva == "0") {
echo '
';
} else {
if ($this->tip != 0)
echo '
';
}
if ($this->tip == 0) {
if ($row1['tip']==1 || $row1['tip']==2 || $row1['tip']==3 || $row1['tip']==21 || $row1['tip']==7)
$ikonca = 'osnovna_vprasanja';
elseif ($row1['tip']==6 || $row1['tip']==16 || $row1['tip']==19 || $row1['tip']==20)
$ikonca = 'table';
else
$ikonca = 'other_vprasanja';
} else {
$ikonca = 'anketa';
}
echo '
';
echo skrajsaj(strip_tags($row1['naslov']), 40).''."\n";
echo '
';
if ($this->prva == "0") {
echo '
';
if ($this->tip == 1) {
$sql2 = sisplet_query("SELECT s.id, s.naslov, s.tip FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$row1[id]'");
while ($row2 = mysqli_fetch_array($sql2)) {
if ($row2['tip']==1 || $row2['tip']==2 || $row2['tip']==3 || $row2['tip']==21 || $row2['tip']==7)
$ikonca = 'osnovna_vprasanja';
elseif ($row2['tip']==6 || $row2['tip']==16 || $row2['tip']==19 || $row2['tip']==20)
$ikonca = 'table';
else
$ikonca = 'other_vprasanja';
echo ' ';
echo ' '.skrajsaj(strip_tags($row2['naslov']), 40).' ';
}
}
echo '
';
}
echo '
';
}
}
}
echo ' '."\n";
echo ' '."\n";
}
if ($parent == 0) {
echo ' '."\n";
}
if ( $parent == 0 ) {
?>
';
echo ' ';
echo '
';
if ($admin_type==0 or $this->tab==1)
echo '
';
echo '
';
echo '
';
echo ' ';
echo skrajsaj(strip_tags(($row['label']!=''?$row['label']:($row['tip']==0?$lang['srv_pogoj']:$lang['srv_blok']))), 40).''."\n";
echo '
';
echo '
';
}
}
/**
* @desc prikaze seznam iskanih anket v knjiznici
*/
function display_contentfolders_searchList () {
global $lang;
global $admin_type;
global $global_user_id;
global $site_url;
$language = "";
if ($this->tab == 2)
$uid = 0;
else
$uid = $global_user_id;
if ($uid == 0)
$language = " AND lang='$lang[id]' ";
// v skrite html elemente shranimo tab, in prva
echo ' ';
echo ' ';
echo ' ';
echo ''."\n";
// Sestavimo query za search po knjiznici
$search_query = $this->getSearchString();
$sql1 = sisplet_query("SELECT sa.*
FROM srv_anketa sa, srv_library_anketa l, srv_grupa sg, srv_spremenljivka ss, srv_vrednost sv
WHERE sa.id=l.ank_id AND sg.ank_id=sa.id AND ss.gru_id=sg.id AND sv.spr_id=ss.id
AND l.uid='$uid' ".$search_query."
GROUP BY sa.id
ORDER BY sa.naslov ASC");
if (!$sql1) echo mysqli_error($GLOBALS['connect_db']);
// Loop po najdenih anketah
if (mysqli_num_rows($sql1) > 0) {
while ($row1 = mysqli_fetch_array($sql1)) {
echo '';
echo ' ';
echo '
';
echo '
';
echo ' ';
$ikonca = 'anketa';
echo ' ';
// Ce gre za search moramo ustrezno pobarvati najden del besede
$text_searched = $row1['naslov'];
if($this->isSearch == 1 && $this->searchSettings['stype'] == '0'){
foreach($this->searchStringProcessed as $search_word){
// Pobarvamo najden niz v naslovu ankete
preg_match_all("/$search_word+/i", $text_searched, $matches);
if (is_array($matches[0]) && count($matches[0]) >= 1) {
foreach ($matches[0] as $match) {
$text_searched = str_replace($match, ''.$match.' ', $text_searched);
}
}
}
}
echo skrajsaj($text_searched, 40).''."\n";
echo '
';
echo '
';
}
}
echo ' '."\n";
echo ' '."\n";
if ($parent == 0) {
echo ''."\n";
}
if ( $parent == 0 ) {
?>
'.$lang['s_search_settings_lib'].'';
echo '';
}
// Prikazemo search okno za iskanje po anketah znotraj knjiznice
private function displaySearch(){
global $lang;
global $site_url;
echo '';
}
// vrne sql string za search po anketah glede na nastavitve searcha
private function getSearchString(){
$search_text = mysqli_real_escape_string($GLOBALS['connect_db'], $this->searchString);
// Vse gre v lowerstring
$search_text = strtolower($search_text);
// Sklanjamo po search besedi
$search_text = explode (" ", $search_text);
for ($a=0; $a 5)
$search_text[$a] = substr ($search_text[$a], 0, -2);
elseif (strlen ($search_text[$a]) > 2)
$search_text[$a] = substr ($search_text[$a], 0, -1);
else
$search_text[$a] = $search_text[$a];
$this->searchStringProcessed[$a] = $search_text[$a];
$search_text[$a] = '%'.$search_text[$a].'%';
}
$search_text = implode (" ", $search_text);
// Search po kljucnih besedah znotraj vprasanj (naslovi vprasanj in vrednosti)
if($this->searchSettings['stype'] == '1')
$result = " AND (LOWER(sa.introduction) LIKE LOWER('".$search_text."')
OR LOWER(sa.conclusion) LIKE LOWER('".$search_text."')
OR LOWER(ss.naslov) LIKE LOWER('".$search_text."')
OR LOWER(sv.naslov) LIKE LOWER('".$search_text."'))";
// Search po naslovu
else
$result = " AND (LOWER(sa.naslov) LIKE LOWER('".$search_text."') OR LOWER(sa.akronim) LIKE LOWER('".$search_text."'))";
return $result;
}
/**
* @desc pohendla ajax klice
*/
function ajax () {
if (isset($_POST['tab']))
$this->tab = (int)$_POST['tab'];
else if (isset($_GET['tab']))
$this->tab = (int)$_GET['tab'];
if ($this->tab == 'undefined')
$this->tab = 0;
if (isset($_POST['prva']))
$this->prva = $_POST['prva'];
else if (isset($_GET['prva']))
$this->prva = $_GET['prva'];
if ($this->prva == 'undefined')
$this->prva = 0;
if ($this->tab <= 1)
$this->tip = 0;
else
$this->tip = 1;
if ($_GET['a'] == 'display_knjiznica') {
$this->ajax_display_knjiznica();
} elseif ($_GET['a'] == 'library_add') {
$this->ajax_library_add();
} elseif ($_GET['a'] == 'spr_dropped') {
$this->ajax_spr_dropped();
} elseif ($_GET['a'] == 'if_dropped') {
$this->ajax_if_dropped();
} elseif ($_GET['a'] == 'folder_dropped') {
$this->ajax_folder_dropped();
} elseif ($_GET['a'] == 'folder_rename') {
$this->ajax_folder_rename();
} elseif ($_GET['a'] == 'folder_newname') {
$this->ajax_folder_newname();
} elseif ($_GET['a'] == 'new_folder') {
$this->ajax_new_folder();
} elseif ($_GET['a'] == 'delete_folder') {
$this->ajax_delete_folder();
} elseif ($_GET['a'] == 'folder_collapsed') {
$this->ajax_folder_collapsed();
} elseif ($_GET['a'] == 'library_del_anketa') {
$this->ajax_library_del_anketa();
} elseif ($_GET['a'] == 'library_del_myanketa') {
$this->ajax_library_del_myanketa();
} elseif ($_GET['a'] == 'library_add_myanketa') {
$this->ajax_library_add_myanketa();
} elseif ($_GET['a'] == 'anketa_copy') {
$this->ajax_anketa_copy();
} elseif ($_GET['a'] == 'anketa_copy_new') {
$this->ajax_anketa_copy_new();
} elseif ($_GET['a'] == 'if_remove') {
$this->ajax_if_remove();
} elseif ($_GET['a'] == 'brisi_spremenljivko') {
$this->ajax_brisi_spremenljivko();
} elseif ($_GET['a'] == 'alert_copy_anketa') {
$this->ajax_alert_copy_anketa();
} elseif ($_GET['a'] == 'anketa_archive_and_copy') {
$this->ajax_anketa_archive_and_copy();
}
}
function ajax_display_knjiznica () {
$this->display();
}
function ajax_library_add () {
global $lang;
$data = array();
if ($this->tip == 0) {
$spremenljivka = substr($_POST['spremenljivka'], 10); // odrezemo branching_
$folder = $_POST['folder'];
// v knjiznico dodamo spremenljivko
if ($spremenljivka > 0) {
$id = $this->Branching->nova_spremenljivka(-1, 0, 0, $spremenljivka);
sisplet_query("UPDATE srv_spremenljivka SET folder = '$folder' WHERE id = '$id'");
$data['response'] = $lang['srv_library_q_added'];
// v knjiznico dodamo if/blok
} else {
$if = substr($_POST['spremenljivka'], 12); // odrezemo branching_if
if ($if > 0) {
$id = $this->Branching->if_copy(0, $if, true);
sisplet_query("UPDATE srv_if SET folder = '$folder' WHERE id = '$id'");
$data['response'] = $lang['srv_library_b_added'];
}
}
}
ob_start();
$this->display_folders();
$data['folders'] = ob_get_clean();
echo json_encode($data);
}
function ajax_spr_dropped() {
global $global_user_id;
$spremenljivka = $_POST['spremenljivka'];
$folder = $_POST['folder'];
if ($this->tab == 0 or $this->tab == 2)
$uid = 0;
elseif ($this->tab == 1 or $this->tab == 3)
$uid = $global_user_id;
if ($this->tip == 0) {
sisplet_query("UPDATE srv_spremenljivka SET folder = '$folder' WHERE id = '$spremenljivka'");
} else {
sisplet_query("UPDATE srv_library_anketa SET folder = '$folder' WHERE ank_id = '$spremenljivka' AND uid='$uid'");
}
//$this->display();
$this->display_folders();
}
function ajax_if_dropped() {
global $global_user_id;
$if = $_POST['if'];
$folder = $_POST['folder'];
sisplet_query("UPDATE srv_if SET folder = '$folder' WHERE id = '$if'");
//$this->display();
$this->display_folders();
}
function ajax_folder_dropped() {
$drop = $_POST['drop'];
$folder = $_POST['folder'];
if ($drop != $folder)
sisplet_query("UPDATE srv_library_folder SET parent = '$folder' WHERE id = '$drop' AND tip='$this->tip'");
//$this->display();
$this->display_folders();
}
function ajax_folder_rename () {
$folder = $_POST['folder'];
$sql = sisplet_query("SELECT naslov FROM srv_library_folder WHERE id = '$folder'");
$row = mysqli_fetch_array($sql);
echo '';
}
function ajax_folder_newname () {
$folder = $_POST['folder'];
$naslov = $_POST['naslov'];
sisplet_query("UPDATE srv_library_folder SET naslov='$naslov' WHERE id ='$folder'");
//$this->display();
$this->display_folders();
}
function ajax_new_folder () {
global $lang;
global $global_user_id;
$folder = $_POST['folder'];
if ($this->tab == 0 or $this->tab == 2)
$uid = 0;
elseif ($this->tab == 1 or $this->tab == 3)
$uid = $global_user_id;
$uid = $_POST['uid'];
$s = sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent) VALUES ('$uid', '$this->tip', '$lang[srv_newfolder]', '$folder')");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
$insert_id = mysqli_insert_id($GLOBALS['connect_db']);
$_COOKIE['library_folders'] .= '-'.$insert_id.'-'; // $_COOKIE popravimo, da bo sprememba vidna tudi v display_folders()
setcookie('library_folders', $_COOKIE['library_folders'], time()+2500000);
// $this->display();
$this->display_folders();
}
function ajax_delete_folder () {
global $lang;
$folder = $_POST['folder'];
$sql = sisplet_query("SELECT parent FROM srv_library_folder WHERE id = '$folder'");
$row = mysqli_fetch_array($sql);
if ($this->tip == 0) {
sisplet_query("UPDATE srv_spremenljivka SET folder = '$row[parent]' WHERE folder = '$folder'");
sisplet_query("UPDATE srv_if SET folder = '$row[parent]' WHERE folder = '$folder'");
} else {
sisplet_query("UPDATE srv_library_anketa SET folder = '$row[parent]' WHERE folder = '$folder'");
}
sisplet_query("UPDATE srv_library_folder SET parent = '$row[parent]' WHERE parent = '$folder'");
sisplet_query("DELETE FROM srv_library_folder WHERE id = '$folder'");
//$this->display();
$this->display_folders();
}
function ajax_folder_collapsed () {
$folder = $_POST['folder'];
$collapsed = $_POST['collapsed'];
$cookie = $_COOKIE['library_folders'];
if ($collapsed == 0) {
$cookie .= '-'.$folder.'-';
} else {
$cookie = str_replace('-'.$folder.'-', '', $cookie);
}
setcookie('library_folders', $cookie, time()+2500000);
echo ' ';
}
function ajax_library_del_anketa () {
$anketa = $_POST['anketa'];
sisplet_query("DELETE FROM srv_library_anketa WHERE ank_id='$anketa' AND uid='0'");
$this->display_folders();
}
function ajax_library_del_myanketa () {
global $global_user_id;
$anketa = $_POST['anketa'];
sisplet_query("DELETE FROM srv_library_anketa WHERE ank_id='$anketa' AND uid='$global_user_id'");
$this->display_folders();
}
function ajax_library_add_myanketa () {
global $global_user_id;
$anketa = $_POST['anketa'];
$sql1 = sisplet_query("SELECT id FROM srv_library_folder WHERE uid='$global_user_id' AND tip='1' AND parent='0'");
$row1 = mysqli_fetch_array($sql1);
sisplet_query("INSERT INTO srv_library_anketa (ank_id, uid, folder) VALUES ('$anketa', '$global_user_id', '$row1[id]')");
}
/**
* skopira anketo cez neko ze obstojeco anketo
*
*/
function ajax_anketa_copy () {
global $global_user_id;
global $lang;
global $site_url;
$anketa = $_POST['anketa']; // nasa anketa (jo povozimo)
$ank_id = $_POST['ank_id']; // anketa, ki jo uporabimo za predlogo
$hierarhija = (empty($_POST['hierarhija']) ? false : true);
if($hierarhija && $ank_id == 'privzeta'){
global $hierarhija_default_id;
$ank_id = $hierarhija_default_id;
}
if ($anketa > 0) {
// preberemo osnovne podatke obstojece ankete (naslov.....)
$sql = sisplet_query("SELECT naslov, dostop FROM srv_anketa WHERE id = '$anketa'");
$row = mysqli_fetch_array($sql);
$sql2 = sisplet_query("SELECT naslov FROM srv_anketa WHERE id = '$ank_id'");
$row2 = mysqli_fetch_array($sql2);
$sqls = sisplet_query("SELECT ank_id, uid FROM srv_dostop WHERE ank_id='$anketa'");
$this->SurveyAdmin->anketa_delete($anketa);
} else {
$sql = sisplet_query("SELECT naslov, dostop FROM srv_anketa WHERE id = '$ank_id'");
$row = mysqli_fetch_array($sql);
$sqls = sisplet_query("SELECT ank_id, uid FROM srv_dostop WHERE ank_id='$ank_id'");
}
$naslov = " naslov='".(isset($_POST['naslov']) ? $_POST['naslov'] : $row['naslov'])."',";
$intro_opomba = " intro_opomba='".(addslashes($lang['srv_library_copy_of_note'].''.$row2['naslov'].' '))."',";
//$new_id = $this->SurveyAdmin->anketa_copy($ank_id);
$sas = new SurveyAdminSettings();
$new_id = $sas->anketa_copy($ank_id);
// popravimo naslov, opombo, dostop, in novega avtorja
sisplet_query("UPDATE srv_anketa SET $naslov $intro_opomba dostop='$row[dostop]', insert_uid='$global_user_id', edit_uid='$global_user_id' WHERE id='$new_id'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
// dostop uporabimo od stare ankete in ne od skopirane (trnutno ne kopira pravic od prej, če ustvarjamo novo anketo)
// TODO: po kakšni logiki ohranimo dostop od stare ankete?? Če jo jaz ustvarim je prav, v kolikor kopirma iz knjižnice pa tole ni ok!
if(!empty($anketa)) {
sisplet_query("DELETE FROM srv_dostop WHERE ank_id = '$new_id'");
while ($rows = mysqli_fetch_array($sqls)) {
sisplet_query("INSERT INTO srv_dostop (ank_id, uid) VALUES ('$new_id', '$rows[uid]')");
}
}
// Vrnemo samo ID ankete
if($hierarhija) {
sisplet_query("INSERT INTO srv_anketa_module (ank_id, modul) VALUES ('".$new_id."', 'hierarhija')");
sisplet_query("INSERT INTO srv_hierarhija_users (user_id, anketa_id, type) VALUES ('".$global_user_id."', '".$new_id."', 1)");
// Določimo vlogo
(new \Hierarhija\Hierarhija($new_id))->izrisisSistemskoVprsanjeVloga();
echo $new_id;
}else{
echo 'index.php?anketa='.$new_id.'&a=branching';
}
}
/**
* ustvari novo kopijo ankete
* @param ank_id samo za API - prekrije tudi vse echo
*/
function ajax_anketa_copy_new ($ank_id = null) {
global $global_user_id, $lang, $site_url;
$API_call = false;
if($ank_id == null) {
$ank_id = $_POST['ank_id']; // anketa, ki jo uporabimo za predlogo
// Če imamo hierarhijo in je privzeta anketa potem preverimo v settings_optional.php
if(!empty($_POST['hierarhija']) && $ank_id == 'privzeta'){
global $hierarhija_default_id;
$ank_id=$hierarhija_default_id;
}
}else {
$API_call = true;
}
$sql = sisplet_query("SELECT naslov, dostop FROM srv_anketa WHERE id = '$ank_id'");
$row = mysqli_fetch_array($sql);
// Nastavimo naslov
if(isset($_POST['naslov']) && $_POST['naslov'] != '' && $_POST['naslov'] != $lang['srv_naslov'] && $_POST['naslov'] != $lang['srv_novaanketa_polnoime'] && trim($_POST['naslov']) != "")
$naslov = " naslov='".$_POST['naslov']."',";
else
$naslov = " naslov='".addslashes($lang['srv_library_copy_of'].$row['naslov'])."',";
// Nastavimo akronim, ce ga imamo
$akronim = "";
if(isset($_POST['akronim']) && $_POST['akronim'] != '' && $_POST['akronim'] != $lang['srv_naslov'] && $_POST['akronim'] != $lang['srv_novaanketa_ime_respondenti'] && trim($_POST['akronim']) != "")
$akronim = " akronim='".$_POST['akronim']."',";
$intro_opomba = " intro_opomba='".(addslashes($lang['srv_library_copy_of_note'].''.$row['naslov'].' '))."',";
//$new_id = $this->SurveyAdmin->anketa_copy($ank_id);
$sas = new SurveyAdminSettings();
$new_id = $sas->anketa_copy($ank_id);
// popravimo naslov, opombo, dostop, in novega avtorja in ugasnemo email vabila
sisplet_query("UPDATE srv_anketa
SET $naslov $akronim $intro_opomba dostop='$row[dostop]', insert_uid='$global_user_id', edit_uid='$global_user_id', user_base='0'
WHERE id='$new_id'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
// dostop od stare ankete odstranimo
sisplet_query("DELETE FROM srv_dostop WHERE ank_id = '$new_id'");
//dostop dodamo uporabniku, ki si kopira anketo
sisplet_query("INSERT INTO srv_dostop (ank_id, uid) VALUES ('$new_id', '$global_user_id')");
// Ce imamo pri ustvarjanju doloceno tudi mapo, anketo vstavimo v njo
if(isset($_POST['folder']) && $_POST['folder'] > 0){
// Razpremo folder v akterega uvrscamo anketo
$sql = sisplet_query("UPDATE srv_mysurvey_folder SET open='1' WHERE id='".$_POST['folder']."' AND usr_id='".$global_user_id."'");
// Vstavimo anketo
$sql = sisplet_query("INSERT INTO srv_mysurvey_anketa (ank_id, usr_id, folder) VALUES ('".$new_id."', '".$global_user_id."', '".$_POST['folder']."')");
}
// popravimo branching, ce kopiramo staro anketo, ki ima lahko pokvarjenega
$b = new Branching($new_id);
$b->repare_branching();
// v kolikor je vkloplje modul evalvacija v šolah - hierarhija potem modul vključimo tudi v izbrani anketi
if(SurveyInfo::checkSurveyModule('hierarhija', $ank_id) || !empty($_POST['novaHierarhjia'])){
sisplet_query("INSERT INTO srv_anketa_module (ank_id, modul) VALUES ('".$new_id."', 'hierarhija')");
sisplet_query("INSERT INTO srv_hierarhija_users (user_id, anketa_id, type) VALUES ('".$global_user_id."', '".$new_id."', 1)");
// Določimo vlogo
(new \Hierarhija\Hierarhija($new_id))->izrisisSistemskoVprsanjeVloga();
// Omenjeno funkcijo kopije strukture in preusmeritev uporabimo, kadar kopiramo obstoječe anketo skupaj s strukturo
if($_POST['hierarhija'] == 1 && empty($_POST['novaHierarhjia'])){
// $new_id je ID nove ankete, ki je bila skopirana
// $ank_id pa je ID naše trenutne ankete
\Hierarhija\HierarhijaKopiranjeClass::getInstance($new_id)->kopirajCelotroStrukturoKNoviAnketi($ank_id);
}
if(empty($_POST['novaHierarhjia'])){
echo 'index.php?anketa=' . $new_id .'&a='.A_HIERARHIJA_SUPERADMIN.'&m='.M_ADMIN_UREDI_SIFRANTE;
}else{
echo $new_id;
}
}else {
if(!$API_call)
echo 'index.php?anketa=' . $new_id;
}
//vrrni id nove ankete za API
return $new_id;
}
function ajax_if_remove () {
$if = $_POST['if'];
$this->anketa = $_POST['anketa'];
$BranchingAjax = new BranchingAjax($this->anketa);
// ne bomo izpisal kar izpisuje ta funkcija
ob_start();
$BranchingAjax->ajax_if_remove($if);
ob_end_clean();
//$this->display();
$this->display_folders();
}
function ajax_brisi_spremenljivko () {
$spremenljivka = $_POST['spremenljivka'];
$this->SurveyAdmin->brisi_spremenljivko($spremenljivka);
//$this->display();
$this->display_folders();
}
function ajax_alert_copy_anketa () {
global $lang;
// preverimo stevilo trenutno dodanih vprasanj ce jih ni, ni potrebno arhivirat
$sql = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='".$_POST['anketa']."'");
if (mysqli_num_rows($sql) > 0)
{
?>
=$lang['srv_alert_copy_anketa'];?>
=$lang['srv_alert_copy_anketa1'];?>
SurveyAdmin->anketa_copy($ank_id);
$sas = new SurveyAdminSettings();
$new_id = $sas->anketa_copy($ank_id);
$intro_opomba = addslashes( $lang['srv_library_copy_of_note'].''.$row2['naslov'].' ' );
// popravimo polja
sisplet_query("UPDATE srv_anketa SET naslov='$row[naslov]', intro_opomba='$intro_opomba', dostop='$row[dostop]', insert_uid='$global_user_id', insert_time=NOW(), edit_uid='$global_user_id', edit_time=NOW() WHERE id='$new_id'");
// dostop uporabimo od stare ankete in ne od skopirane
sisplet_query("DELETE FROM srv_dostop WHERE ank_id = '$new_id'");
while ($rows = mysqli_fetch_array($sqls)) {
sisplet_query("INSERT INTO srv_dostop (ank_id, uid) VALUES ('$new_id', '$rows[uid]')");
}
// staro anketo razglasimo kot backup(arhiv) nove
sisplet_query("UPDATE srv_anketa SET backup='$new_id', active=0, edit_uid='$global_user_id', edit_time=NOW(), naslov = CONCAT( naslov, ' ', DAY(NOW()), '.', MONTH(NOW()), '.', YEAR(NOW()) ) WHERE id='$anketa'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
// redirektamo na novo anketo
echo 'index.php?anketa='.$new_id;
}
function repareTabs() {
if ($this->tab >= 2)
$this->tip = 1;
else
$this->tip = 0;
// popravimo tabe če smo v glasovanju ali formi
if ($this->mode < 2) {
// uredimo tabe
if ($this->tab==0 || $this->tab==1) {
$this->tip = 1;
$this->tab=2;
}
}
}
}
?>