vprasanja, 1->ankete (vprasanja iz anket) var $folder_id = 0; // Trenutno aktiven folder var $expanded_folders = array(); // Razprti folderji var $root_folder; public function __construct ($ank_id=0) { if($ank_id == 0) die(); $this->ank_id = $ank_id; // Nastavimo vse razprte folderje (vsi parenti ce je child aktiven) $this->setExpandedFolders($this->folder_id); } // Loop cez folderje in rekurzivno nastavi razprte (parenti aktivnega) private function setExpandedFolders($folder_id){ $this->expanded_folders[] = $folder_id; if($folder_id == '0'){ return; } $sqlFolders = sisplet_query("SELECT parent FROM srv_library_folder WHERE id='".$folder_id."' AND tip='".$this->tab."'"); $rowFolders = mysqli_fetch_array($sqlFolders); $this->setExpandedFolders($rowFolders['parent']); } /** * @desc prikaze knjiznico znotraj ankete */ private function displayLibrary() { global $admin_type; global $global_user_id; global $lang; // Naslov v oknu echo '

'.$lang['srv_library_survey_title'].'

'; echo ''; // Tabi (vprasanja, ankete) echo '
'; $this->displayTabs(); echo '
'; // Vsebina echo '
'; $this->displayTabContent(); echo '
'; } // Prikazemo tabe - vprasanja / ankete private function displayTabs(){ global $lang; // Tab vprasanja echo '
'; echo $lang['srv_library_survey_tab_questions']; echo '
'; // Tab ankete echo '
'; echo $lang['srv_library_survey_tab_surveys']; echo '
'; echo ''; } // Priazemo glavno vsebino glede na aktiven tab public function displayTabContent(){ global $lang; // Levi seznam folderjev echo '
'; $this->displayFolderList(); echo '
'; // Desna vsebina echo '
'; // Seznam vprasanj echo '
'; $this->displayQuestionList(); echo '
'; // Item counter echo '
'.$lang['srv_library_item_counter'].': 0
'; // Gumbi na dnu echo '
'; $this->displayButtons(); echo '
'; echo '
'; } // Prikazemo seznam folderjev na levi private function displayFolderList(){ global $global_user_id; global $lang; // Prikazemo seznam mojih folderjev v knjiznci echo ''; // Prikazemo seznam javnih folderjev v knjiznci echo ''; // Prikazemo se skrit div za dodaten popup (rename, add - title) echo '
'; // Klik izven "Vec" - zapremo okno echo ''; } private function displayFolderParent($parent, $uid) { global $lang; global $admin_type; global $global_user_id; global $site_url; // Ce gre za root mapo prikazemo z ustreznim jezikom if ($parent == 0 && $uid == 0) { $language = " AND lang='".$lang['id']."' "; } // Dobimo vse folderje za parenta $sqlFolders = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE uid='".$uid."' AND parent='".$parent."' AND tip='".$this->tab."' ".$language." ORDER BY naslov "); if (!$sqlFolders) echo mysqli_error($GLOBALS['connect_db']); // Za prvic ko pride user, da mu dodamo folder if (mysqli_num_rows($sqlFolders) == 0 && $uid > 0 && $parent == 0){ // Nastavimo naslov mape $naslov = ($this->tab == 0) ? $lang['srv_moja_vprasanja'] : $lang['srv_moje_ankete']; sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent, lang) VALUES ('".$uid."', '".$this->tab."', '".$naslov."', '0', '".$lang['id']."') "); $sqlFolders = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE uid='".$uid."' AND parent='".$parent."' AND tip='".$this->tab."' ORDER BY naslov "); if (!$sqlFolders) echo mysqli_error($GLOBALS['connect_db']); } // Loop po vseh mapah znotraj parenta while ($rowFolders = mysqli_fetch_array($sqlFolders)) { // Nastavimo default prvi aktiven folder if($this->folder_id == 0 && $parent == 0){ $this->folder_id = $rowFolders['id']; } $this->displayFolderItem($rowFolders['id'], $rowFolders['naslov'], $uid); $expanded = in_array($rowFolders['id'], $this->expanded_folders) ? true : false; echo ''; } } // Levi item - folder private function displayFolderItem($id, $title, $uid) { global $lang; global $admin_type; $expanded = in_array($id, $this->expanded_folders) ? true : false; $active = ($this->folder_id == $id) ? true : false; echo '
  • '; // Ikoni puscice in mape echo ' '; echo ' '; // Naslov folderja echo ' '.$title.''; // Stevilo itemov v folderju //echo ' '.$child_count.''; // Urejanje folderja if($uid != 0 || $admin_type == 0){ // Tri pikice za prikaz urejanja folderja echo ' '; // Skrit div za urejanje folderja echo '
    '; echo ' '; echo '
    '; } echo '
  • '; } // Levi item - anketa private function displayFolderItemSurvey($id, $title) { global $lang; echo '
  • '; // Ikoni puscice in mape echo ' '; // Naslov folderja - ankete echo ' '.$title.''; echo '
  • '; } // Dodaten popup za ime direktorija pri dodajanju private function displayAddFolderPopup($folder_id, $uid){ global $lang; echo '

    '.$lang['srv_library_folder_name'].'

    '; echo '
    '; echo ' '; echo '
    '; echo '
    '; echo ' '; echo ' '; echo '
    '; } // Dodaten popup za ime direktorija pri preimenovanju private function displayRenameFolderPopup($folder_id, $folder_name){ global $lang; echo '

    '.$lang['srv_library_folder_name'].'

    '; echo '
    '; echo ' '; echo '
    '; echo '
    '; echo ' '; echo ' '; echo '
    '; } // Prikazemo seznam vprasanj v folderju private function displayQuestionList(){ global $global_user_id; global $lang; // Folder ni nastavljen if($this->folder_id == 0) return; // Seznam vprasanj iz anket v knjiznici if($this->tab == 1){ // Najprej zlistamo vse child folderje $sqlFolders = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE parent='".$this->folder_id."' AND tip='".$this->tab."' ORDER BY naslov"); if (mysqli_num_rows($sqlFolders) > 0){ // Loop po vseh mapah znotraj parenta while ($rowFolders = mysqli_fetch_array($sqlFolders)) { $this->displayRightFolderItem($rowFolders['id'], $rowFolders['naslov']); } } $sqlFolderSurveys = sisplet_query("SELECT a.id, a.naslov FROM srv_anketa a, srv_library_anketa l WHERE a.id=l.ank_id AND l.folder='".$this->folder_id."' ORDER BY naslov ASC"); while ($rowFolderSurveys = mysqli_fetch_array($sqlFolderSurveys)) { // Naslov ankete echo '
    '.$rowFolderSurveys['naslov'].'
    '; $sqlQuestions = 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='".$rowFolderSurveys['id']."' ORDER BY g.vrstni_red ASC, s.vrstni_red ASC"); while ($rowQuestions = mysqli_fetch_array($sqlQuestions)) { $this->displayRightQuestionItem($rowQuestions); } } } // Seznam vprasanj iz knjiznice else{ // Loop po vseh vprasanjih v folderju $sqlFolderQuestions = sisplet_query("SELECT * FROM srv_spremenljivka WHERE folder='".$this->folder_id."' AND gru_id='-1' ORDER BY naslov ASC"); while ($rowFolderQuestions = mysqli_fetch_array($sqlFolderQuestions)) { $this->displayRightQuestionItem($rowFolderQuestions); } // Loop po vseh if-ih/blokih v folderju $sqlFolderIfs = sisplet_query("SELECT * FROM srv_if WHERE folder='".$this->folder_id."' ORDER BY label ASC, id ASC"); while ($rowFolderIfs = mysqli_fetch_array($sqlFolderIfs)) { $this->displayRightIfItem($rowFolderIfs); } // Init drag/drop js echo ''; } } // Prikazemo seznam vprasanj v anketah iz knjiznice v folderju private function displaySurveyQuestionList(){ global $global_user_id; global $lang; // Folder ni nastavljen if($this->folder_id == 0) return; // Naslov ankete SurveyInfo :: getInstance()->SurveyInit($this->folder_id); echo '
    '.SurveyInfo::getSurveyTitle().'
    '; $sqlQuestions = 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='".$this->folder_id."' ORDER BY g.vrstni_red ASC, s.vrstni_red ASC"); while ($rowQuestions = mysqli_fetch_array($sqlQuestions)) { $this->displayRightQuestionItem($rowQuestions); } } // Prikazemo vrstico (item, folder) na desni private function displayRightFolderItem($folder_id, $folder_name){ global $lang; echo '
    '; echo '
    '; echo ' '; echo ' '.$folder_name.''; echo '
    '; echo '
    '; } // Prikazemo 1 vrstico (item, vprasanje) na desni private function displayRightQuestionItem($spremenljivka){ global $lang; echo '
    '; echo ' '; echo '
    '; echo ' '; echo ' '.substr(strip_tags($spremenljivka['naslov']), 0, 40).''; echo '
    '; echo '
    '; } // Prikazemo 1 vrstico (item, if) na desni private function displayRightIfItem($if){ global $lang; echo '
    '; echo ' '; echo '
    '; echo ' '; echo ' '.substr(strip_tags($if['label']), 0, 40).''; echo '
    '; echo '
    '; } // Prikazemo gumbe private function displayButtons(){ global $global_user_id; global $lang; echo ''; echo ''; } /** * Popup pri dodajanju itema v knjiznico - potrditev, izbira folderja, urejanje naslova * * type * - 0->anketa * - 1->vprasanja * - 2->if/blok */ private function displayAddIntoLibrary($item_id, $type){ global $lang; // Naslov v oknu echo '

    '.$lang['srv_library_add_to_lib_title'].'

    '; // Vsebina echo '
    '; echo 'Dodajanje...'; echo '
    '; echo '
    '; echo ' '; echo ' '; echo '
    '; } // Dobimo root folder uporabnika private function getRootFolder(){ global $global_user_id; global $lang; $sqlFolder = sisplet_query("SELECT id FROM srv_library_folder WHERE uid='".$global_user_id."' AND parent='0' AND tip='".$this->tab."' AND lang='".$lang['id']."'"); // Za prvic ko pride user, da mu dodamo folder if (mysqli_num_rows($sqlFolder) == 0){ // Nastavimo naslov mape $naslov = $lang['srv_moja_vprasanja']; sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent, lang) VALUES ('".$global_user_id."', '".$this->tab."', '".$naslov."', '0', '".$lang['id']."') "); $root_folder_id = mysqli_insert_id($GLOBALS['connect_db']); } else{ $rowFolder = mysqli_fetch_array($sqlFolder); $root_folder_id = $rowFolder['id']; } return $root_folder_id; } /** * @desc pohendla ajax klice */ public function ajax () { global $lang; global $global_user_id; $this->tab = (isset($_POST['tab'])) ? (int)$_POST['tab'] : 0; // Nastavimo uporabnikov root folder $this->root_folder = $this->getRootFolder(); // Odpremo popup s knjiznico if ($_GET['a'] == 'displayLibraryPopup') { $this->displayLibrary(); } // Preklopimo tab v kniznici elseif ($_GET['a'] == 'displayLibraryTabContent') { $this->displayTabContent(); } // Dodamo folder elseif ($_GET['a'] == 'addFolder') { $folder_id = $_POST['folder_id']; $uid = $_POST['uid']; $folder_name = $_POST['folder_name']; if($folder_id != '' && $folder_id > 0){ $s = sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent, lang) VALUES ('".$uid."', '".$this->tab."', '".$folder_name."', '".$folder_id."', '".$lang['id']."')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $insert_id = mysqli_insert_id($GLOBALS['connect_db']); // Nastavimo za aktivni folder in izrisemo na novo $this->folder_id = $insert_id; // Posodobimo vse razprte folderje (vsi parenti ce je child aktiven) $this->setExpandedFolders($this->folder_id); // Prikazemo folderje $this->displayFolderList(); } } // Preimenujemo folder elseif ($_GET['a'] == 'renameFolder') { $folder_id = $_POST['folder_id']; $folder_name = $_POST['folder_name']; if($folder_id != '' && $folder_id > 0){ $s = sisplet_query("UPDATE srv_library_folder SET naslov='".$folder_name."' WHERE id='".$folder_id."'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); // Nastavimo za aktivni folder in izrisemo na novo $this->folder_id = $folder_id; // Posodobimo vse razprte folderje (vsi parenti ce je child aktiven) $this->setExpandedFolders($this->folder_id); $this->displayFolderList(); } } // Brisemo folder elseif ($_GET['a'] == 'deleteFolder') { $folder_id = $_POST['folder_id']; if($folder_id != '' && $folder_id > 0){ $sql = sisplet_query("SELECT parent FROM srv_library_folder WHERE id = '".$folder_id."'"); $row = mysqli_fetch_array($sql); // Prestavimo vse iteme v parent folder if ($this->tab == 0) { sisplet_query("UPDATE srv_spremenljivka SET folder='".$row['parent']."' WHERE folder='".$folder_id."'"); sisplet_query("UPDATE srv_if SET folder='".$row['parent']."' WHERE folder='".$folder_id."'"); } else { sisplet_query("UPDATE srv_library_anketa SET folder='".$row['parent']."' WHERE folder='".$folder_id."'"); } // Prestavimo vse child folderje v parent folder sisplet_query("UPDATE srv_library_folder SET parent='".$row['parent']."' WHERE parent='".$folder_id."'"); // Pobrisemo folder sisplet_query("DELETE FROM srv_library_folder WHERE id='".$folder_id."'"); // Nastavimo parenta za aktivni folder in izrisemo na novo $this->folder_id = $row['parent']; // Posodobimo vse razprte folderje (vsi parenti ce je child aktiven) $this->setExpandedFolders($this->folder_id); // Prikazemo fodlderje $this->displayFolderList(); } } // Odpremo popup za poimenovanje novega folderja elseif ($_GET['a'] == 'addFolderPopup') { $folder_id = $_POST['folder_id']; $uid = $_POST['uid']; $this->displayAddFolderPopup($folder_id, $uid); } // Odpremo popup za poimenovanje folderja elseif ($_GET['a'] == 'renameFolderPopup') { $folder_id = $_POST['folder_id']; $folder_name = $_POST['folder_name']; $this->displayRenameFolderPopup($folder_id, $folder_name); } // Odpremo folder z vprasanji v knjiznici elseif ($_GET['a'] == 'displayLibraryQuestionList') { $this->folder_id = $_POST['folder_id']; $this->displayQuestionList(); } // Odpremo anketo z vprasanji v knjiznici elseif ($_GET['a'] == 'displayLibrarySurveyQuestionList') { $this->folder_id = $_POST['folder_id']; $this->displaySurveyQuestionList(); } // Dodajanje itema iz knjiznice v vprasalnik elseif ($_GET['a'] == 'addIntoSurvey') { $items = $_POST['items']; $b = new Branching($this->ank_id); $ba = new BranchingAjax($this->ank_id); foreach(array_reverse($items) as $item){ $item_array = explode("_", $item); $item_id = $item_array[0]; $item_type = $item_array[1]; $last_spr = $b->find_last_spr(); // Dodamo if/blok v anketo if($item_type == '2'){ $b->if_new($endif, $parent, $if_id=$item_id, $vrstni_red, $spremenljivka, $if, $copy=$item_id, $no_content=0, $include_element=true); } // Dodamo vprasanje v anketo else{ $ba->spremenljivka_new($spremenljivka=$last_spr, $if=0, $endif=0, $copy=$item_id, $drop=0); } } Common::getInstance()->Init($this->ank_id); Common::getInstance()->prestevilci(0, $all=true); $b->branching_struktura(); } // Drop itema v drug folder elseif ($_GET['a'] == 'dropItem') { $item_id = $_POST['item_id']; $item_type = $_POST['item_type']; $folder_id = $_POST['folder_id']; if($item_id != '' && $item_id > 0){ // if/blok if ($item_type == '2') { sisplet_query("UPDATE srv_if SET folder='".$folder_id."' WHERE id='".$item_id."'"); } // spremenljivka else { sisplet_query("UPDATE srv_spremenljivka SET folder='".$folder_id."' WHERE id='".$item_id."'"); } } } // Odpremo popup za dodajanje itema v knjiznico elseif ($_GET['a'] == 'displayAddIntoLibraryPopup') { $item_id = $_POST['item_id']; $type = $_POST['type']; $this->displayAddIntoLibrary($item_id, $type); } // Dodajanje itema v knjiznico elseif ($_GET['a'] == 'addIntoLibrary') { $item_id = $_POST['item_id']; $type = $_POST['type']; $folder_id = $this->root_folder; if ($item_id > 0) { $b = new Branching($this->ank_id); // v knjiznico dodamo spremenljivko if($type == 1) { $id = $b->nova_spremenljivka(-1, 0, 0, $item_id); sisplet_query("UPDATE srv_spremenljivka SET folder='".$folder_id."' WHERE id='".$id."'"); } // v knjiznico dodamo if/blok elseif($type == 2) { $id = $b->if_copy(0, $item_id, true); sisplet_query("UPDATE srv_if SET folder='".$folder_id."' WHERE id='".$id."'"); } } } } } ?>