1KA_F2F/admin/survey/classes/class.LibraryBranching.php

441 lines
20 KiB
PHP
Raw Normal View History

2022-02-22 10:27:32 +01:00
<?php
2022-02-22 10:27:32 +01:00
class LibraryBranching {
2022-02-23 12:48:17 +01:00
var $ank_id; // Anketa znotraj katere urejamo knjiznico
var $tab = 0; // tip pove v bazi srv_library_folder za kater tip gre - 0->vprasanja, 1->ankete (vprasanja iz anket)
var $folder_id = 0; // Trenutno aktiven folder
2022-02-22 10:27:32 +01:00
public function __construct () {
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
2022-02-22 10:27:32 +01:00
}
/**
* @desc prikaze knjiznico znotraj ankete
2022-02-22 10:27:32 +01:00
*/
private function displayLibrary() {
2022-02-22 10:27:32 +01:00
global $admin_type;
global $global_user_id;
global $lang;
// Naslov v oknu
2022-02-23 12:48:17 +01:00
echo '<h2><span class="faicon library"></span>'.$lang['srv_library_survey_title'].'</h2>';
// Tabi (vprasanja, ankete)
2022-02-23 12:48:17 +01:00
echo '<div id="lib_tabs" class="lib_tabs">';
$this->displayTabs();
echo '</div>';
2022-02-22 10:27:32 +01:00
// Vsebina
2022-02-23 12:48:17 +01:00
echo '<div id="tab_content" class="tab_content">';
$this->displayTabContent();
echo '</div>';
2022-02-22 10:27:32 +01:00
}
// Prikazemo tabe - vprasanja / ankete
private function displayTabs(){
2022-02-22 10:27:32 +01:00
global $lang;
// Tab vprasanja
echo '<div id="tab_0" class="tab '.($this->tab == 0 ? 'active' : '').'" onClick="displayLibraryTab(\'0\'); return false;">';
echo $lang['srv_vprasanja'];
echo '</div>';
// Tab ankete
echo '<div id="tab_1" class="tab '.($this->tab == 1 ? 'active' : '').'" onClick="displayLibraryTab(\'1\'); return false;">';
echo $lang['srv_ankete'];
echo '</div>';
2022-02-22 10:27:32 +01:00
}
2022-02-23 12:48:17 +01:00
// Priazemo glavno vsebino glede na aktiven tab
public function displayTabContent(){
// Levi seznam folderjev
echo '<div class="content_left">';
$this->displayFolderList();
echo '</div>';
// Desna vsebina
echo '<div class="content_right">';
// Seznam vprasanj
echo '<div id="lib_question_list" class="question_list">';
$this->displayQuestionList($folder_id);
echo '</div>';
// Gumbi na dnu
echo '<div class="button_holder">';
$this->displayButtons();
echo '</div>';
echo '</div>';
}
// Prikazemo seznam folderjev na levi
private function displayFolderList(){
2022-02-22 10:27:32 +01:00
global $global_user_id;
global $lang;
// Prikazemo seznam mojih folderjev v knjiznci
$this->displayFolderParent($parent=0, $uid=$global_user_id);
2022-02-22 10:27:32 +01:00
// Prikazemo seznam javnih folderjev v knjiznci
$this->displayFolderParent($parent=0, $uid=0);
2022-02-22 10:27:32 +01:00
}
private function displayFolderParent($parent, $uid) {
2022-02-22 10:27:32 +01:00
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']."' ";
2022-02-22 10:27:32 +01:00
}
// Dobimo vse folderje za parenta
$sqlFolders = sisplet_query("SELECT id, naslov
FROM srv_library_folder
2022-02-23 12:48:17 +01:00
WHERE uid='".$uid."' AND parent='".$parent."' AND tip='".$this->tab."' ".$language."
ORDER BY naslov
");
if (!$sqlFolders)
2022-02-22 10:27:32 +01:00
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){
2022-02-22 10:27:32 +01:00
// Nastavimo naslov mape
$naslov = ($this->tab == 0) ? $lang['srv_moja_vprasanja'] : $lang['srv_moje_ankete'];
2022-02-22 10:27:32 +01:00
sisplet_query("INSERT INTO srv_library_folder
(uid, tip, naslov, parent, lang)
VALUES
('".$uid."', '".$this->tab."', '".$naslov."', '0', '".$lang['id']."')
");
2022-02-22 10:27:32 +01:00
$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)
2022-02-22 10:27:32 +01:00
echo mysqli_error($GLOBALS['connect_db']);
}
// Loop po vseh mapah znotraj parenta
2022-02-23 12:48:17 +01:00
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'], $child_count='11', $active=false);
// Rekurzivno izpisemo childe
$this->displayFolderParent($rowFolders['id'], $uid);
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
/*echo ' <li id="li'.$row['id'].'" eid="'.$row['id'].'" class="folder" name="folder">';
2022-02-22 10:27:32 +01:00
if ($parent != 0)
echo ' <a href="/" onclick="javascript:library_folders_plusminus(\''.$row['id'].'\',\''.$this->tab.'\',\''.$this->prva.'\'); return false;" id="f_pm_'.$row['id'].'"><span class="faicon icon-blue '.($hidden?'plus':'minus').'"></span></a>';
else
echo ' <span class="sprites spacer12"></span>';
echo ' <span class="'.($parent!=0 || $uid>0 || $admin_type==0 ? ' folderdrop' : '').'" id="sp'.$row['id'].'" eid="'.$row['id'].'"><span class="faicon folder icon-blue'.($parent!=0?' movable':'').'"></span>'.
' <span '.($admin_type==0||$uid>0? 'title="'.$lang['srv_rename_profile'].'" onclick="folder_rename(\''.$row['id'].'\'); return false;"':'').'>'.$row['naslov'].'</span>';
if ($admin_type==0 || $uid>0)
echo ' <a href="/" onclick="javascript:library_new_folder(\''.$row['id'].'\',\''.$uid.'\'); return false;"><span class="faicon add icon-blue-hover-orange small new_folder" id="new_folder_'.$row['id'].'" title="'.$lang['srv_newfolder'].'"></span></a>';
if ($parent != 0 && ($admin_type==0||$uid>0) )
echo ' <a href="/" onclick="javascript:library_delete_folder(\''.$row['id'].'\',\''.$this->tab.'\',\''.$this->prva.'\'); return false;"><span class="faicon remove icon-orange small delete_folder" id="delete_folder_'.$row['id'].'" title="'.$lang['srv_deletefolder'].'"></span></a>';
echo ' </span>'."\n";
echo '<ul id="folder_'.$row['id'].'"'.($hidden?' style="display:none"':'').'>'."\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 '<li class="anketa tip'.$this->tip.'">';
echo ' <div copy="'.$row1['id'].'" eid="'.$row1['id'].'" class="folder_container '.($this->tip==0?'new_spr':'').'" name="library">';
echo ' <div class="folder_right">';
if ($this->tip == 0) {
//echo '<a href="/" onclick="javascript:copy_spremenljivka(\''.$row1['id'].'\'); return false;"><img src="img_'.$this->skin.'/copy.png" title="'.$lang['srv_copy_spr'].'" /></a>';
if ($admin_type==0 or $uid==$global_user_id)
echo ' <a href="/" onclick="library_brisi_spremenljivko(\''.$row1['id'].'\', \''.$lang['srv_brisispremenljivkoconfirm'].'\',\''.$this->tab.'\',\''.$this->prva.'\'); return false;"><span class="faicon delete_circle icon-orange" title="'.$lang['srv_brisispremenljivko'].'"></span></a>';
}
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 ' <a href="/" onclick="surveyList_knjiznica_new(\''.$row1['id'].'\'); return false;" title="'.$lang['srv_ank_lib_off'].'">';
echo ' <span class="sprites faicon remove icon-orange small"></span> <span class="library_item_setting_text">'.$lang['srv_ank_lib_off'].'</span>';
echo ' </a>';
}
// Anketo dodamo v javno knjiznico
else{
echo ' <a href="/" onclick="surveyList_knjiznica_new(\''.$row1['id'].'\'); return false;" title="'.$lang['srv_ank_lib_on'].'">';
echo ' <span class="sprites faicon library"></span> <span class="library_item_setting_text">'.$lang['srv_ank_lib_on'].'</span>';
echo ' </a>';
}
}
// nova anketa kot template iz knjiznice
echo '<a href="/" onclick="anketa_copy(\''.$row1['id'].'\'); return false;" title="'.$lang['srv_library_use_survey'].'"><span class="faicon copy"></span> <span class="library_item_setting_text">'.$lang['srv_anketacopy'].'</span></a> ';
if(SurveyInfo::getInstance()->checkSurveyModule('uporabnost'))
echo '<a href="'.$site_url.'main/survey/uporabnost.php?anketa='.SurveyInfo::getInstance()->getSurveyHash().'&preview=on" target="_blank" title="'.$lang['srv_poglejanketo'].'"><span class="faicon preview"></span> <span class="library_item_setting_text">'.$lang['srv_poglejanketo2'].'</span></a> ';
else
echo '<a href="'.$site_url.'main/survey/index.php?anketa='.SurveyInfo::getInstance()->getSurveyHash().'&preview=on" target="_blank" title="'.$lang['srv_poglejanketo'].'"><span class="faicon preview"></span> <span class="library_item_setting_text">'.$lang['srv_poglejanketo2'].'</span></a> ';
// brisi iz knjiznice
if ($admin_type == 0) {
echo ' <a href="index.php?anketa='.$row1['id'].'" title="'.$lang['srv_editirajanketo'].'"><span class="faicon edit"></span> <span class="library_item_setting_text">'.$lang['edit3'].'</span></a>';
}
if ($admin_type==0 && $this->tab==2) {// sistemska
echo ' <a href="/" onclick="library_del_anketa(\''.$row1['id'].'\', \''.$lang['srv_anketadeletelibrary_4'].'\',\''.$this->tab.'\',\''.$this->prva.'\'); return false;" title="'.$lang['srv_ank_lib_off'].'"><span class="sprites faicon remove icon-orange small"></span> <span class="library_item_setting_text">'.$lang['hour_remove'].'</span></a>';
}
if($this->tab==3){// moja knjiznica
echo ' <a href="/" onclick="library_del_myanketa(\''.$row1['id'].'\', \''.$lang['srv_anketadeletelibrary_3'].'\',\''.$this->tab.'\',\''.$this->prva.'\'); return false;" title="'.$lang['srv_ank_mylib_off'].'"><span class="faicon remove icon-orange small"></span> <span class="library_item_setting_text">'.$lang['hour_remove'].'</span></a>';
}
}
else {
if(SurveyInfo::getInstance()->checkSurveyModule('uporabnost'))
echo '<a href="'.$site_url.'main/survey/uporabnost.php?anketa='.SurveyInfo::getInstance()->getSurveyHash().'&preview=on" target="_blank" title="'.$lang['srv_poglejanketo'].'"><span class="faicon preview"></span></a>';
else
echo '<a href="'.$site_url.'main/survey/index.php?anketa='.SurveyInfo::getInstance()->getSurveyHash().'&preview=on" target="_blank" title="'.$lang['srv_poglejanketo'].'"><span class="faicon preview"></span></a>';
// 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 ' <a href="/" onclick="alert_copy_anketa(\''.$row1['id'].'\'); return false;"><span class="sprites copy_small" title="'.$lang['srv_copy_srv'].'"></span></a>';
}
}
echo '</div>';
echo ' <div class="folder_left'.($this->tip==1?' indent"':'" onclick="library_spremenljivka_new(\''.$row1['id'].'\'); return false;"').'>';
if ($this->tip == 1 && $this->prva == "0") {
echo '<a href="/" onclick="javascript:library_anketa_plusminus(\''.$row1['id'].'\', this); return false;"><span class="faicon icon-blue plus" style="opacity: 0.3"></span></a> ';
} else {
if ($this->tip != 0)
echo ' <span class="sprites spacer12"></span>';
}
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 '<span class="faicon '.$ikonca.' mapca icon-blue" style="display:inline-block"></span> ';
echo skrajsaj(strip_tags($row1['naslov']), 40).'</a>'."\n";
echo ' </div>';
if ($this->prva == "0") {
echo '<div id="anketa_vprasanja_'.$row1['id'].'" class="anketa_vprasanja">';
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 '<span class="new_spr" copy="'.$row2['id'].'" onclick="library_spremenljivka_new(\''.$row2['id'].'\'); return false;"><span class="faicon '.$ikonca.' icon-blue" title="'.$lang['srv_copy_spr'].'" style="display:inline-block"></span>';
echo ' '.skrajsaj(strip_tags($row2['naslov']), 40).'</span>';
}
}
echo '</div>';
}
echo '</div></li>';
}
}
}
echo ' </ul>'."\n";
2022-02-23 12:48:17 +01:00
echo ' </li>'."\n";*/
2022-02-22 10:27:32 +01:00
}
}
2022-02-22 10:27:32 +01:00
private function displayFolderItem($id, $title, $child_count, $active=false) {
global $lang;
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
echo '<div id=""folder_item_'.$id.'" class="folder_item '.($active ? 'active' : '').'" onClick="openLibraryFolder(\''.$id.'\');">';
// Ikoni puscice in mape
2022-02-23 12:48:17 +01:00
echo ' <span class="faicon arrow2_d" onClick="expandLibraryFolder(\''.$id.'\');"></span>';
echo ' <span class="faicon folder"></span>';
// Naslov folderja
echo ' <span class="folder_item_title">'.$title.'</span>';
// Stevilo itemov v folderju
echo ' <span class="folder_item_child_count">'.$child_count.'</span>';
// Tri pikice za prikaz urejanja folderja
2022-02-23 12:48:17 +01:00
echo ' <span class="faicon dots_ver displayNone"></span>';
// Skrit div za urejanje folderja
2022-02-23 12:48:17 +01:00
echo ' <div class="folder_item_settings displayNone">';
echo ' ';
echo ' </div>';
echo '</div>';
}
2022-02-23 12:48:17 +01:00
// Prikazemo seznam vprasanj v folderju
private function displayQuestionList(){
global $global_user_id;
2022-02-22 10:27:32 +01:00
global $lang;
2022-02-23 12:48:17 +01:00
// Folder ni nastavljen
if($this->folder_id == 0)
return;
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
$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->displayQuestionItem($rowFolderQuestions);
2022-02-22 10:27:32 +01:00
}
}
2022-02-23 12:48:17 +01:00
// Prikazemo 1 vrstico (item, vprasanje) na desni
private function displayQuestionItem($spremenljivka){
2022-02-22 10:27:32 +01:00
global $lang;
2022-02-23 12:48:17 +01:00
echo '<div id="question_item_holder_'.$spremenljivka['id'].'" class="question_item_holder">';
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
echo ' <input type="checkbox" id="question_item_check_'.$spremenljivka['id'].'"><label for="question_item_check_'.$spremenljivka['id'].'"></label>';
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
echo ' <div class="question_item_info">';
echo ' <span class="faicon list"></span>';
echo ' <span class="title">'.substr(strip_tags($spremenljivka['naslov']), 0, 40).'</span>';
echo ' </div>';
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
echo '</div>';
2022-02-22 10:27:32 +01:00
}
2022-02-23 12:48:17 +01:00
// Prikazemo gumbe
private function displayButtons(){
global $global_user_id;
global $lang;
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
echo '<button class="medium white-blue" onClick="popupClose();">'.$lang['edit1338'].'</button>';
echo '<button class="medium blue" onClick="popupClose();">'.$lang['srv_library_survey_add'].'</button>';
2022-02-22 10:27:32 +01:00
}
2022-02-23 12:48:17 +01:00
/**
* Popup pri dodajanju itema v knjiznico - potrditev, izbira folderja, urejanje naslova
*
* type
* - 0->anketa
* - 1->vprasanja
* - 2->if/blok
*/
private function displayAddIntoLibrary($id, $type){
2022-02-22 10:27:32 +01:00
global $lang;
2022-02-23 12:48:17 +01:00
// Naslov v oknu
echo '<h2>'.$lang[''].'</h2>';
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Vsebina
echo '<div class="content">';
echo 'Dodajanje...';
echo '</div>';
2022-02-22 10:27:32 +01:00
}
2022-02-23 12:48:17 +01:00
2022-02-22 10:27:32 +01:00
/**
2022-02-23 12:48:17 +01:00
* @desc pohendla ajax klice
2022-02-22 10:27:32 +01:00
*/
2022-02-23 12:48:17 +01:00
public function ajax () {
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Odpremo popup s knjiznico
if ($_GET['a'] == 'displayLibraryPopup') {
$this->displayLibrary();
}
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Preklopimo tab v kniznici
elseif ($_GET['a'] == 'displayLibraryTabContent') {
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
$this->tab = (isset($_POST['tab'])) ? (int)$_POST['tab'] : 0;
$this->displayTabContent();
}
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Odpremo folder z vprasanji v knjiznici
elseif ($_GET['a'] == 'displayLibraryQuestionList') {
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
$this->folder_id = $_POST['folder_id'];
$this->displayQuestionList();
}
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Odpremo popup za dodajanje itema v knjiznico
elseif ($_GET['a'] == 'displayAddIntoLibraryPopup') {
$this->displayAddIntoLibrary();
}
2022-02-22 10:27:32 +01:00
}
}
?>