2022-02-22 10:27:32 +01:00
< ? php
2022-02-22 12:18:33 +01:00
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-28 13:28:57 +01:00
var $expanded_folders = array (); // Razprti folderji
2022-02-22 10:27:32 +01:00
2022-03-10 11:06:17 +01:00
var $root_folder = array (); // Root folderji (sistemski in uporabnikov)
2022-03-09 10:38:45 +01:00
var $folder_structure = array (); // Struktura direktorijev uporabnika
2022-03-03 12:11:25 +01:00
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
public function __construct ( $ank_id = 0 ) {
if ( $ank_id == 0 )
die ();
2022-02-23 12:48:17 +01:00
2022-02-24 13:42:39 +01:00
$this -> ank_id = $ank_id ;
2022-02-28 13:28:57 +01:00
// Nastavimo vse razprte folderje (vsi parenti ce je child aktiven)
$this -> setExpandedFolders ( $this -> folder_id );
2022-02-22 10:27:32 +01:00
}
2022-02-28 13:28:57 +01:00
// 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' ]);
}
2022-02-22 10:27:32 +01:00
/**
2022-02-22 12:18:33 +01:00
* @ desc prikaze knjiznico znotraj ankete
2022-02-22 10:27:32 +01:00
*/
2022-02-22 12:18:33 +01:00
private function displayLibrary () {
2022-02-22 10:27:32 +01:00
global $admin_type ;
global $global_user_id ;
global $lang ;
2022-02-22 12:18:33 +01:00
// Naslov v oknu
2022-02-23 12:48:17 +01:00
echo '<h2><span class="faicon library"></span>' . $lang [ 'srv_library_survey_title' ] . '</h2>' ;
2022-03-03 12:11:25 +01:00
echo '<div class="popup_close"><a href="#" onclick="popupClose();">✕</a></div>' ;
2022-02-22 12:18:33 +01:00
// Tabi (vprasanja, ankete)
2022-02-23 12:48:17 +01:00
echo '<div id="lib_tabs" class="lib_tabs">' ;
2022-02-22 12:18:33 +01:00
$this -> displayTabs ();
echo '</div>' ;
2022-02-22 10:27:32 +01:00
2022-02-22 12:18:33 +01:00
// Vsebina
2022-02-23 12:48:17 +01:00
echo '<div id="tab_content" class="tab_content">' ;
$this -> displayTabContent ();
2022-02-22 12:18:33 +01:00
echo '</div>' ;
2022-02-22 10:27:32 +01:00
}
2022-02-22 12:18:33 +01:00
// Prikazemo tabe - vprasanja / ankete
private function displayTabs (){
2022-02-22 10:27:32 +01:00
global $lang ;
2022-02-22 12:18:33 +01:00
// Tab vprasanja
echo '<div id="tab_0" class="tab ' . ( $this -> tab == 0 ? 'active' : '' ) . '" onClick="displayLibraryTab(\'0\'); return false;">' ;
2022-03-07 23:31:34 +01:00
echo $lang [ 'srv_library_survey_tab_questions' ];
2022-02-22 12:18:33 +01:00
echo '</div>' ;
// Tab ankete
echo '<div id="tab_1" class="tab ' . ( $this -> tab == 1 ? 'active' : '' ) . '" onClick="displayLibraryTab(\'1\'); return false;">' ;
2022-03-07 23:31:34 +01:00
echo $lang [ 'srv_library_survey_tab_surveys' ];
2022-02-22 12:18:33 +01:00
echo '</div>' ;
2022-02-24 13:42:39 +01:00
echo '<input type="hidden" name="active_tab" id="active_tab" value="' . $this -> tab . '">' ;
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 (){
2022-02-25 08:30:09 +01:00
global $lang ;
2022-02-23 12:48:17 +01:00
// Levi seznam folderjev
2022-02-24 13:42:39 +01:00
echo '<div id="lib_folder_list" class="content_left">' ;
2022-02-23 12:48:17 +01:00
$this -> displayFolderList ();
echo '</div>' ;
// Desna vsebina
echo '<div class="content_right">' ;
// Seznam vprasanj
echo '<div id="lib_question_list" class="question_list">' ;
2022-02-24 13:42:39 +01:00
$this -> displayQuestionList ();
2022-02-23 12:48:17 +01:00
echo '</div>' ;
2022-02-25 08:30:09 +01:00
// Item counter
echo '<div class="selected_items">' . $lang [ 'srv_library_item_counter' ] . ': <span id="selected_item_counter">0</span></div>' ;
2022-02-23 12:48:17 +01:00
// Gumbi na dnu
echo '<div class="button_holder">' ;
$this -> displayButtons ();
echo '</div>' ;
echo '</div>' ;
}
2022-02-22 12:18:33 +01:00
// Prikazemo seznam folderjev na levi
private function displayFolderList (){
2022-02-22 10:27:32 +01:00
global $global_user_id ;
global $lang ;
2022-02-22 12:18:33 +01:00
// Prikazemo seznam mojih folderjev v knjiznci
2022-02-24 13:42:39 +01:00
echo '<ul class="folder_list user">' ;
2022-02-22 12:18:33 +01:00
$this -> displayFolderParent ( $parent = 0 , $uid = $global_user_id );
2022-02-24 13:42:39 +01:00
echo '</ul>' ;
2022-02-22 10:27:32 +01:00
2022-02-22 12:18:33 +01:00
// Prikazemo seznam javnih folderjev v knjiznci
2022-02-24 13:42:39 +01:00
echo '<ul class="folder_list public">' ;
2022-02-22 12:18:33 +01:00
$this -> displayFolderParent ( $parent = 0 , $uid = 0 );
2022-02-24 13:42:39 +01:00
echo '</ul>' ;
2022-02-28 13:28:57 +01:00
// Prikazemo se skrit div za dodaten popup (rename, add - title)
echo '<div id="lib_additional_popup" class="divPopUp"></div>' ;
// Klik izven "Vec" - zapremo okno
echo ' < script >
$ ( document ) . mouseup ( function ( e ){
var container = $ ( " .folder_item_settings, .dots_ver " );
if ( ! container . is ( e . target ) && container . has ( e . target ) . length === 0 ){
$ ( " .folder_item_settings " ) . addClass ( " displayNone " );
2022-03-10 11:06:17 +01:00
$ ( " .dots_ver_folder " ) . removeClass ( " active " );
2022-02-28 13:28:57 +01:00
}
2022-03-09 10:38:45 +01:00
var container2 = $ ( " .item_settings, .dots_ver " );
if ( ! container . is ( e . target ) && container . has ( e . target ) . length === 0 ){
$ ( " .item_settings " ) . addClass ( " displayNone " );
2022-03-10 11:06:17 +01:00
$ ( " .dots_ver_item " ) . removeClass ( " active " );
2022-03-09 10:38:45 +01:00
}
2022-02-28 13:28:57 +01:00
});
2022-03-03 12:11:25 +01:00
initHideLibraryArrows ();
2022-02-28 13:28:57 +01:00
</ script > ' ;
2022-02-22 10:27:32 +01:00
}
2022-02-22 12:18:33 +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 ;
2022-02-22 12:18:33 +01:00
// 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
}
2022-02-22 12:18:33 +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 . "
2022-02-22 12:18:33 +01:00
ORDER BY naslov
" );
if ( ! $sqlFolders )
2022-02-22 10:27:32 +01:00
echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
2022-02-22 12:18:33 +01:00
// 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
2022-02-22 12:18:33 +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
2022-02-22 12:18:33 +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
2022-02-22 12:18:33 +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' ]);
}
2022-02-22 12:18:33 +01:00
// 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
2022-03-10 11:06:17 +01:00
if ( $this -> folder_id == 0 && $parent == 0 && $uid == 0 ){
2022-02-23 12:48:17 +01:00
$this -> folder_id = $rowFolders [ 'id' ];
2022-03-10 11:06:17 +01:00
$this -> setExpandedFolders ( $this -> folder_id );
2022-02-23 12:48:17 +01:00
}
2022-02-24 13:42:39 +01:00
2022-02-25 11:11:36 +01:00
$this -> displayFolderItem ( $rowFolders [ 'id' ], $rowFolders [ 'naslov' ], $uid );
2022-02-23 12:48:17 +01:00
2022-02-28 13:28:57 +01:00
$expanded = in_array ( $rowFolders [ 'id' ], $this -> expanded_folders ) ? true : false ;
echo '<ul id="folder_list_' . $rowFolders [ 'id' ] . '" class="folder_list" ' . ( $expanded ? '' : 'style="display:none;"' ) . '>' ;
2022-02-23 12:48:17 +01:00
// Rekurzivno izpisemo childe
$this -> displayFolderParent ( $rowFolders [ 'id' ], $uid );
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
// Smo tabu ankete - izpisemo se ankete v tem folderju
if ( $this -> tab == '1' ){
$sqlSurvey = sisplet_query ( " SELECT a.id, a.naslov FROM srv_anketa a, srv_library_anketa l WHERE a.id=l.ank_id AND l.folder=' " . $rowFolders [ 'id' ] . " ' AND l.uid=' " . $uid . " ' ORDER BY naslov ASC " );
if ( ! $sqlSurvey ) echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
if ( mysqli_num_rows ( $sqlSurvey ) > 0 ) {
while ( $rowSurvey = mysqli_fetch_array ( $sqlSurvey )) {
2022-02-23 12:48:17 +01:00
2022-04-17 11:56:44 +02:00
$this -> displayFolderItemSurvey ( $rowSurvey [ 'id' ], $rowSurvey [ 'naslov' ], $uid );
2022-02-24 13:42:39 +01:00
}
}
}
echo '</ul>' ;
2022-02-22 10:27:32 +01:00
}
2022-02-22 12:18:33 +01:00
}
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
// Levi item - folder
2022-02-25 11:11:36 +01:00
private function displayFolderItem ( $id , $title , $uid ) {
2022-02-22 12:18:33 +01:00
global $lang ;
2022-02-25 11:11:36 +01:00
global $admin_type ;
2022-02-22 10:27:32 +01:00
2022-02-28 13:28:57 +01:00
$expanded = in_array ( $id , $this -> expanded_folders ) ? true : false ;
2022-03-03 12:11:25 +01:00
$active = ( $this -> folder_id == $id ) ? true : false ;
2022-02-28 13:28:57 +01:00
2022-03-09 10:38:45 +01:00
echo '<li id="folder_item_' . $id . '" class="folder_item ' . ( $active ? 'active' : '' ) . ' ' . ( $expanded ? 'open' : '' ) . ' ' . (( $uid != 0 || $admin_type == 0 ) ? 'droppable_folder' : '' ) . '" folder-id="' . $id . '" onClick="openLibraryFolder(\'' . $id . '\');">' ;
2022-02-22 12:18:33 +01:00
// Ikoni puscice in mape
2022-03-03 12:11:25 +01:00
echo ' <span id="folder_arrow_' . $id . '" class="faicon arrow" onClick="expandLibraryFolder(\'' . $id . '\');"></span>' ;
echo ' <span id="folder_folder_' . $id . '" class="faicon folder"></span>' ;
2022-02-22 12:18:33 +01:00
// Naslov folderja
echo ' <span class="folder_item_title">' . $title . '</span>' ;
// Stevilo itemov v folderju
2022-02-25 08:30:09 +01:00
//echo ' <span class="folder_item_child_count">'.$child_count.'</span>';
2022-02-22 12:18:33 +01:00
2022-02-25 11:11:36 +01:00
// Urejanje folderja
2022-03-03 12:11:25 +01:00
if ( $uid != 0 || $admin_type == 0 ){
2022-02-25 11:11:36 +01:00
// Tri pikice za prikaz urejanja folderja
2022-03-10 11:06:17 +01:00
echo ' <span class="faicon dots_ver dots_ver_folder" onClick="showLibraryFolderEdit(this);"></span>' ;
2022-02-25 11:11:36 +01:00
// Skrit div za urejanje folderja
echo ' <div class="folder_item_settings displayNone">' ;
2022-02-28 13:28:57 +01:00
echo ' <ul>' ;
echo ' <li onClick="displayAddFolderPopup(\'' . $id . '\', \'' . $uid . '\');">' . $lang [ 'srv_library_folder_add' ] . '</li>' ;
echo ' <li onClick="displayRenameFolderPopup(\'' . $id . '\', \'' . $title . '\');">' . $lang [ 'srv_library_folder_rename' ] . '</li>' ;
2022-03-10 11:06:17 +01:00
if ( $id != $this -> root_folder [ 'user' ])
2022-03-03 12:11:25 +01:00
echo ' <li onClick="deleteLibraryFolder(\'' . $id . '\');">' . $lang [ 'srv_library_folder_delete' ] . '</li>' ;
2022-02-28 13:28:57 +01:00
echo ' </ul>' ;
2022-02-25 11:11:36 +01:00
echo ' </div>' ;
}
2022-02-22 12:18:33 +01:00
2022-02-24 13:42:39 +01:00
echo '</li>' ;
}
// Levi item - anketa
2022-04-17 11:56:44 +02:00
private function displayFolderItemSurvey ( $id , $title , $uid ) {
2022-02-24 13:42:39 +01:00
global $lang ;
2022-04-17 11:56:44 +02:00
// Javne ankete
$type = ( $uid == '0' ) ? 'public' : 'my' ;
echo '<li id="' . $type . '_survey_item_' . $id . '" class="folder_item survey_item ' . ( $this -> folder_id == $id ? 'active' : '' ) . '" onClick="openLibrarySurvey(\'' . $id . '\', \'' . $type . '\');">' ;
2022-02-24 13:42:39 +01:00
// Ikoni puscice in mape
2022-03-25 11:32:29 +01:00
echo ' <span class="faicon clipboard"></span>' ;
2022-02-24 13:42:39 +01:00
// Naslov folderja - ankete
echo ' <span class="folder_item_title">' . $title . '</span>' ;
echo '</li>' ;
2022-02-22 12:18:33 +01:00
}
2022-02-28 13:28:57 +01:00
// Dodaten popup za ime direktorija pri dodajanju
private function displayAddFolderPopup ( $folder_id , $uid ){
global $lang ;
echo '<h2>' . $lang [ 'srv_library_folder_name' ] . '</h2>' ;
echo '<div>' ;
echo ' <input type="text" id="lib_folder_name" class="large">' ;
echo '</div>' ;
echo '<div class="button_holder">' ;
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">' . $lang [ 'edit1338' ] . '</button>' ;
echo ' <button class="medium blue" onClick="addLibraryFolder(\'' . $folder_id . '\', \'' . $uid . '\');">' . $lang [ 'srv_library_folder_add' ] . '</button>' ;
echo '</div>' ;
}
// Dodaten popup za ime direktorija pri preimenovanju
private function displayRenameFolderPopup ( $folder_id , $folder_name ){
global $lang ;
echo '<h2>' . $lang [ 'srv_library_folder_name' ] . '</h2>' ;
echo '<div>' ;
echo ' <input type="text" id="lib_folder_name" class="large" value="' . $folder_name . '">' ;
echo '</div>' ;
echo '<div class="button_holder">' ;
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">' . $lang [ 'edit1338' ] . '</button>' ;
echo ' <button class="medium blue" onClick="renameLibraryFolder(\'' . $folder_id . '\');">' . $lang [ 'srv_library_folder_rename' ] . '</button>' ;
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-03-10 11:06:17 +01:00
// Naslov trenutnega folderja
$sqlCurrentFolder = sisplet_query ( " SELECT naslov FROM srv_library_folder WHERE id=' " . $this -> folder_id . " ' " );
$rowCurrentFolder = mysqli_fetch_array ( $sqlCurrentFolder );
echo '<div class="folder_title"><span class="faicon folder"></span>' . $rowCurrentFolder [ 'naslov' ] . '</div>' ;
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
// Seznam vprasanj iz anket v knjiznici
if ( $this -> tab == 1 ){
2022-02-25 11:11:36 +01:00
// 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' ]);
}
}
2022-03-10 11:06:17 +01:00
echo '<div class="spacer"></div>' ;
2022-02-25 11:11:36 +01:00
$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 " );
2022-02-24 13:42:39 +01:00
while ( $rowFolderSurveys = mysqli_fetch_array ( $sqlFolderSurveys )) {
2022-02-25 11:11:36 +01:00
// Naslov ankete
2022-03-10 11:06:17 +01:00
echo '<div id="survey_title_' . $rowFolderSurveys [ 'id' ] . '" class="survey_title" onClick="toggleLibrarySurveyQuestions(\'' . $rowFolderSurveys [ 'id' ] . '\');">' ;
echo ' <span class="faicon clipboard"></span>' ;
echo ' <span class="title">' . $rowFolderSurveys [ 'naslov' ] . '</span>' ;
echo '</div>' ;
2022-02-25 11:11:36 +01:00
2022-03-10 11:06:17 +01:00
// Seznam vprasanj v anketi
echo '<div id="survey_questions_' . $rowFolderSurveys [ 'id' ] . '" class="survey_questions">' ;
2022-02-25 11:11:36 +01:00
$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 " );
2022-02-24 13:42:39 +01:00
while ( $rowQuestions = mysqli_fetch_array ( $sqlQuestions )) {
2022-02-25 11:11:36 +01:00
$this -> displayRightQuestionItem ( $rowQuestions );
2022-02-24 13:42:39 +01:00
}
2022-03-10 11:06:17 +01:00
echo '</div>' ;
2022-02-24 13:42:39 +01:00
}
}
// Seznam vprasanj iz knjiznice
else {
2022-03-03 12:11:25 +01:00
2022-03-08 11:57:51 +01:00
// Najprej zlistamo vse child folderje
2022-03-10 11:06:17 +01:00
$sqlFolders = sisplet_query ( " SELECT id, naslov FROM srv_library_folder WHERE parent=' " . $this -> folder_id . " ' AND tip=' " . $this -> tab . " ' ORDER BY naslov " );
2022-03-08 11:57:51 +01:00
if ( mysqli_num_rows ( $sqlFolders ) > 0 ){
// Loop po vseh mapah znotraj parenta
while ( $rowFolders = mysqli_fetch_array ( $sqlFolders )) {
$this -> displayRightFolderItem ( $rowFolders [ 'id' ], $rowFolders [ 'naslov' ]);
}
}
2022-03-10 11:06:17 +01:00
echo '<div class="spacer"></div>' ;
2022-03-08 11:57:51 +01:00
2022-03-09 10:38:45 +01:00
$allow_edit = true ;
2022-03-03 12:11:25 +01:00
// Loop po vseh vprasanjih v folderju
2022-03-09 10:38:45 +01:00
$sqlFolderQuestions = sisplet_query ( " SELECT s.id, s.naslov, s.tip, f.uid AS folder_uid
FROM srv_spremenljivka s , srv_library_folder f
WHERE s . folder = '".$this->folder_id."' AND s . gru_id = '-1' AND f . id = s . folder
ORDER BY s . naslov ASC
" );
2022-02-24 13:42:39 +01:00
while ( $rowFolderQuestions = mysqli_fetch_array ( $sqlFolderQuestions )) {
2022-02-25 11:11:36 +01:00
$this -> displayRightQuestionItem ( $rowFolderQuestions );
2022-02-24 13:42:39 +01:00
}
2022-03-01 15:00:52 +01:00
2022-03-03 12:11:25 +01:00
// Loop po vseh if-ih/blokih v folderju
2022-03-09 10:38:45 +01:00
$sqlFolderIfs = sisplet_query ( " SELECT i.id, i.label, i.tip, f.uid AS folder_uid
FROM srv_if i , srv_library_folder f
WHERE i . folder = '".$this->folder_id."' AND f . id = i . folder
ORDER BY i . label ASC , i . id ASC
" );
2022-03-03 12:11:25 +01:00
while ( $rowFolderIfs = mysqli_fetch_array ( $sqlFolderIfs )) {
$this -> displayRightIfItem ( $rowFolderIfs );
}
2022-03-01 15:00:52 +01:00
// Init drag/drop js
echo '<script>initDragLibraryItem();</script>' ;
2022-02-24 13:42:39 +01:00
}
}
// 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 ;
2022-02-25 11:11:36 +01:00
// Naslov ankete
SurveyInfo :: getInstance () -> SurveyInit ( $this -> folder_id );
2022-04-17 11:56:44 +02:00
echo '<div class="folder_title"><span class="faicon clipboard"></span>' . SurveyInfo :: getSurveyTitle () . '</div>' ;
2022-02-24 13:42:39 +01:00
$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 )) {
2022-02-25 11:11:36 +01:00
$this -> displayRightQuestionItem ( $rowQuestions );
2022-02-22 10:27:32 +01:00
}
}
2022-02-25 11:11:36 +01:00
// Prikazemo vrstico (item, folder) na desni
2022-02-28 13:28:57 +01:00
private function displayRightFolderItem ( $folder_id , $folder_name ){
2022-02-25 11:11:36 +01:00
global $lang ;
echo '<div id="folder_item_holder_' . $folder_id . '" class="folder_item_holder" onClick="openLibraryFolder(\'' . $folder_id . '\');">' ;
echo ' <div class="folder_item_info">' ;
echo ' <span class="faicon folder_empty"></span>' ;
2022-02-28 13:28:57 +01:00
echo ' <span class="title">' . $folder_name . '</span>' ;
2022-02-25 11:11:36 +01:00
echo ' </div>' ;
echo '</div>' ;
}
2022-02-23 12:48:17 +01:00
// Prikazemo 1 vrstico (item, vprasanje) na desni
2022-02-25 11:11:36 +01:00
private function displayRightQuestionItem ( $spremenljivka ){
2022-02-22 10:27:32 +01:00
global $lang ;
2022-03-09 10:38:45 +01:00
global $global_user_id ;
2022-05-30 11:52:49 +02:00
global $admin_type ;
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
echo '<div id="question_item_holder_' . $spremenljivka [ 'id' ] . '" class="question_item_holder" onClick="selectLibraryItem(\'' . $spremenljivka [ 'id' ] . '\');">' ;
2022-02-22 10:27:32 +01:00
2022-03-25 11:32:29 +01:00
echo ' <input type="checkbox" id="question_item_check_' . $spremenljivka [ 'id' ] . '" item-type="1" item-subtype="1" class="question_item_check" onClick="selectLibraryItem(\'' . $spremenljivka [ 'id' ] . '\');"><label for="question_item_check_' . $spremenljivka [ 'id' ] . '"></label>' ;
2022-02-22 10:27:32 +01:00
2022-03-25 11:32:29 +01:00
echo ' <div id="question_item_info_' . $spremenljivka [ 'id' ] . '" item-type="1" item-subtype="1" item-id="' . $spremenljivka [ 'id' ] . '" class="question_item_info">' ;
2022-03-09 10:38:45 +01:00
2022-02-23 12:48:17 +01:00
echo ' <span class="faicon list"></span>' ;
echo ' <span class="title">' . substr ( strip_tags ( $spremenljivka [ 'naslov' ]), 0 , 40 ) . '</span>' ;
2022-03-09 10:38:45 +01:00
2022-09-02 16:20:58 +02:00
echo '<div class="right_icons">' ;
2022-08-22 10:14:50 +02:00
2022-09-02 16:20:58 +02:00
// Preview
echo ' <span class="faicon monitor" onClick="previewVprasanje(\'' . $spremenljivka [ 'id' ] . '\');"></span>' ;
// Urejanje Vprasanja
if ( $this -> tab == '0' && ( $spremenljivka [ 'folder_uid' ] == $global_user_id || $admin_type == 0 )){
2022-03-09 10:38:45 +01:00
// Tri pikice za prikaz urejanja vprasanja
2022-03-10 11:06:17 +01:00
echo ' <span class="faicon dots_ver dots_ver_item" onClick="showLibraryItemEdit(this);"></span>' ;
2022-09-02 16:20:58 +02:00
2022-03-09 10:38:45 +01:00
// Skrit div za urejanje vprasanja
echo ' <div class="item_settings displayNone">' ;
echo ' <ul>' ;
echo ' <li onClick="deleteLibraryItem(\'' . $spremenljivka [ 'id' ] . '\', \'1\');">' . $lang [ 'srv_library_delete_q' ] . '</li>' ;
2022-03-27 17:21:19 +02:00
echo ' <li onClick="displayRenameLibraryItemPopup(\'' . $spremenljivka [ 'id' ] . '\', \'1\');">' . $lang [ 'srv_library_rename_q' ] . '</li>' ;
2022-03-09 10:38:45 +01:00
echo ' </ul>' ;
echo ' </div>' ;
}
2022-09-02 16:20:58 +02:00
echo '</div>' ;
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
echo '</div>' ;
2022-02-22 10:27:32 +01:00
}
2022-03-03 12:11:25 +01:00
// Prikazemo 1 vrstico (item, if) na desni
private function displayRightIfItem ( $if ){
global $lang ;
2022-03-09 10:38:45 +01:00
global $global_user_id ;
2022-05-30 11:52:49 +02:00
global $admin_type ;
2022-03-03 12:11:25 +01:00
2022-03-08 11:57:51 +01:00
if ( $if [ 'tip' ] == 2 ){
$type_string = '<span class="item_type">[LOOP]</span>' ;
$icon = 'loop_32' ;
2022-03-09 10:38:45 +01:00
$type = 'loop' ;
2022-03-25 11:32:29 +01:00
$subtype = '2_2' ;
2022-03-08 11:57:51 +01:00
}
elseif ( $if [ 'tip' ] == 1 ){
$type_string = '<span class="item_type">[BLOCK]</span>' ;
$icon = 'block_32' ;
2022-03-09 10:38:45 +01:00
$type = 'block' ;
2022-03-25 11:32:29 +01:00
$subtype = '2_1' ;
2022-03-08 11:57:51 +01:00
}
else {
$type_string = '<span class="item_type">[IF]</span>' ;
$icon = 'if_32' ;
2022-03-09 10:38:45 +01:00
$type = 'if' ;
2022-03-25 11:32:29 +01:00
$subtype = '2_0' ;
2022-03-08 11:57:51 +01:00
}
$type_string = '' ;
2022-03-03 12:11:25 +01:00
echo '<div id="question_item_holder_' . $if [ 'id' ] . '" class="question_item_holder" onClick="selectLibraryItem(\'' . $if [ 'id' ] . '\');">' ;
2022-03-25 11:32:29 +01:00
echo ' <input type="checkbox" id="question_item_check_' . $if [ 'id' ] . '" item-type="2" item-subtype="' . $subtype . '" class="question_item_check" onClick="selectLibraryItem(\'' . $if [ 'id' ] . '\');"><label for="question_item_check_' . $spremenljivka [ 'id' ] . '"></label>' ;
2022-03-03 12:11:25 +01:00
2022-03-25 11:32:29 +01:00
echo ' <div id="question_item_info_' . $if [ 'id' ] . '" item-type="2" item-subtype="' . $subtype . '" item-id="' . $if [ 'id' ] . '" class="question_item_info">' ;
2022-03-09 10:38:45 +01:00
2022-03-08 11:57:51 +01:00
echo ' <span class="faicon ' . $icon . '"></span>' ;
echo ' <span class="title">' . $type_string . substr ( strip_tags ( $if [ 'label' ]), 0 , 40 ) . '</span>' ;
2022-03-09 10:38:45 +01:00
2022-11-03 11:44:42 +01:00
echo '<div class="right_icons">' ;
2022-03-09 10:38:45 +01:00
// Urejanje Vprasanja
if ( $this -> tab == '0' && ( $if [ 'folder_uid' ] == $global_user_id || $admin_type == 0 )){
// Tri pikice za prikaz urejanja folderja
2022-03-10 11:06:17 +01:00
echo ' <span class="faicon dots_ver dots_ver_item" onClick="showLibraryItemEdit(this);"></span>' ;
2022-03-09 10:38:45 +01:00
// Skrit div za urejanje folderja
echo ' <div class="item_settings displayNone">' ;
echo ' <ul>' ;
echo ' <li onClick="deleteLibraryItem(\'' . $if [ 'id' ] . '\', \'2\');">' . $lang [ 'srv_library_delete_' . $type ] . '</li>' ;
2022-03-27 17:21:19 +02:00
echo ' <li onClick="displayRenameLibraryItemPopup(\'' . $if [ 'id' ] . '\', \'' . $subtype . '\');">' . $lang [ 'srv_library_rename_' . $type ] . '</li>' ;
2022-03-09 10:38:45 +01:00
echo ' </ul>' ;
echo ' </div>' ;
}
2022-11-03 11:44:42 +01:00
echo '</div>' ;
2022-03-03 12:11:25 +01:00
echo ' </div>' ;
echo '</div>' ;
}
2022-03-27 17:21:19 +02:00
/**
* Popup pri preimenovanju itema v knjiznici
*/
private function displayRenameItemPopup ( $item_id , $type ){
global $lang ;
global $admin_type ;
global $global_user_id ;
// Podtip elementa (vprasanje, blok, if...)
if ( $type == '1' ){
// Dobimo naslov
$sql = sisplet_query ( " SELECT naslov FROM srv_spremenljivka WHERE id=' " . $item_id . " ' " );
$row = mysqli_fetch_array ( $sql );
$naslov = strip_tags ( $row [ 'naslov' ]);
$subtype = 'q' ;
}
else {
// Dobimo naslov
$sql = sisplet_query ( " SELECT label FROM srv_if WHERE id=' " . $item_id . " ' " );
$row = mysqli_fetch_array ( $sql );
$naslov = $row [ 'label' ];
if ( $type == '2_2' )
$subtype = 'loop' ;
elseif ( $type == '2_1' )
$subtype = 'block' ;
else
$subtype = 'if' ;
}
// Naslov okna glede na tip elementa (vprasanje, blok, if...)
echo '<h2>' . $lang [ 'srv_library_rename_' . $subtype ] . '</h2>' ;
// Vsebina
echo '<div>' ;
echo ' <input type="text" id="lib_element_name" class="large" value="' . $naslov . '">' ;
echo '</div>' ;
echo '<div class="button_holder">' ;
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">' . $lang [ 'edit1338' ] . '</button>' ;
echo ' <button class="medium blue" onClick="renameLibraryItem(\'' . $item_id . '\', \'' . $type . '\');">' . $lang [ 'srv_library_rename_' . $subtype ] . '</button>' ;
echo '</div>' ;
}
// Dodaten popup za ime direktorija pri preimenovanju
private function displayRenameQuestionPopup ( $element_id ){
global $lang ;
echo '<h2>' . $lang [ 'srv_library_folder_name' ] . 'aaa</h2>' ;
echo '<div>' ;
echo ' <input type="text" id="lib_element_name" class="large" value="' . $folder_name . '">' ;
echo '</div>' ;
echo '<div class="button_holder">' ;
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">' . $lang [ 'edit1338' ] . '</button>' ;
echo ' <button class="medium blue" onClick="renameLibraryElement(\'' . $element_id . '\', \'' . $type . '\');">' . $lang [ 'srv_library_folder_rename' ] . '</button>' ;
echo '</div>' ;
}
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>' ;
2022-03-25 11:32:29 +01:00
echo '<button id="insert_library_button" class="medium blue" disabled="disabled" onClick="insertLibraryItemsIntoSurvey();">' . $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
*/
2022-03-02 09:51:46 +01:00
private function displayAddIntoLibrary ( $item_id , $type ){
2022-02-22 10:27:32 +01:00
global $lang ;
2022-03-09 10:38:45 +01:00
global $admin_type ;
global $global_user_id ;
2022-02-22 10:27:32 +01:00
2022-03-08 11:57:51 +01:00
// Podtip elementa (vprasanje, blok, if...)
2022-03-25 11:32:29 +01:00
if ( $type == '1' ){
2022-03-08 11:57:51 +01:00
2022-03-25 11:32:29 +01:00
// Dobimo naslov
$sql = sisplet_query ( " SELECT naslov FROM srv_spremenljivka WHERE id=' " . $item_id . " ' " );
2022-03-08 11:57:51 +01:00
$row = mysqli_fetch_array ( $sql );
2022-03-25 11:32:29 +01:00
$naslov = strip_tags ( $row [ 'naslov' ]);
2022-03-08 11:57:51 +01:00
2022-03-25 11:32:29 +01:00
$subtype = 'q' ;
2022-03-08 11:57:51 +01:00
}
else {
2022-03-25 11:32:29 +01:00
// Dobimo naslov
$sql = sisplet_query ( " SELECT label FROM srv_if WHERE id=' " . $item_id . " ' " );
2022-03-08 11:57:51 +01:00
$row = mysqli_fetch_array ( $sql );
2022-03-25 11:32:29 +01:00
$naslov = $row [ 'label' ];
if ( $type == '2_2' )
$subtype = 'loop' ;
elseif ( $type == '2_1' )
$subtype = 'block' ;
else
$subtype = 'if' ;
2022-03-08 11:57:51 +01:00
}
// Naslov okna glede na tip elementa (vprasanje, blok, if...)
echo '<h2>' . $lang [ 'srv_library_add_to_lib_title_' . $subtype ] . '</h2>' ;
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Vsebina
2022-03-08 11:57:51 +01:00
echo '<div class="content add_to_lib_content">' ;
echo '<label>' . $lang [ 'srv_library_add_to_lib_name_' . $subtype ] . ':</label>' ;
echo '<input id="lib_item_title" type="text" value="' . $naslov . '">' ;
2022-03-09 10:38:45 +01:00
// Izbira direktorija
echo '<label>' . $lang [ 'srv_library_add_to_lib_folder' ] . ':</label>' ;
$this -> getFolderStructure ( $uid = $global_user_id );
if ( $admin_type == 0 )
$this -> getFolderStructure ( $uid = '0' );
echo '<select id="lib_item_folder" class="dropdown">' ;
foreach ( $this -> folder_structure as $folder ){
echo '<option value="' . $folder [ 'id' ] . '">' ;
for ( $i = 0 ; $i < $folder [ 'indent' ]; $i ++ ){
echo ' ' ;
}
echo $folder [ 'title' ];
2022-03-08 11:57:51 +01:00
2022-03-09 10:38:45 +01:00
echo '</option>' ;
}
echo '</select>' ;
2022-02-23 12:48:17 +01:00
echo '</div>' ;
2022-03-02 09:51:46 +01:00
2022-03-08 11:57:51 +01:00
2022-03-02 09:51:46 +01:00
echo '<div class="button_holder">' ;
echo ' <button class="medium white-blue" onClick="popupClose();">' . $lang [ 'edit1338' ] . '</button>' ;
echo ' <button class="medium blue" onClick="addIntoLibrary(\'' . $item_id . '\', \'' . $type . '\');">' . $lang [ 'srv_library_add_to_lib' ] . '</button>' ;
echo '</div>' ;
2022-02-22 10:27:32 +01:00
}
2022-03-08 11:57:51 +01:00
private function displayAddIntoLibrarySuccess ( $item_id , $type , $success ){
global $lang ;
// Podtip elementa (vprasanje, blok, if...)
2022-03-25 11:32:29 +01:00
if ( $type == '1' ){
2022-03-08 11:57:51 +01:00
2022-03-25 11:32:29 +01:00
// Dobimo naslov
$sql = sisplet_query ( " SELECT naslov FROM srv_spremenljivka WHERE id=' " . $item_id . " ' " );
2022-03-08 11:57:51 +01:00
$row = mysqli_fetch_array ( $sql );
2022-03-25 11:32:29 +01:00
$naslov = strip_tags ( $row [ 'naslov' ]);
2022-03-08 11:57:51 +01:00
2022-03-25 11:32:29 +01:00
$subtype = 'q' ;
2022-03-08 11:57:51 +01:00
}
else {
2022-03-25 11:32:29 +01:00
// Dobimo tip (if ali blok) in naslov
$sql = sisplet_query ( " SELECT label FROM srv_if WHERE id=' " . $item_id . " ' " );
2022-03-08 11:57:51 +01:00
$row = mysqli_fetch_array ( $sql );
2022-03-25 11:32:29 +01:00
$naslov = $row [ 'label' ];
if ( $tip == '2_2' )
$subtype = 'loop' ;
elseif ( $tip == '2_1' )
$subtype = 'block' ;
else
$subtype = 'if' ;
2022-03-08 11:57:51 +01:00
}
// Naslov okna glede na tip elementa (vprasanje, blok, if...)
echo '<h2>' . $lang [ 'srv_library_add_to_lib_title_' . $subtype ] . '</h2>' ;
// Vsebina
echo '<div class="content add_to_lib_content">' ;
if ( $success ){
echo $lang [ 'srv_library_add_to_lib_success_' . $subtype ];
}
else {
echo $lang [ 'srv_library_add_to_lib_success_err' ];
}
echo '</div>' ;
echo '<div class="button_holder">' ;
echo ' <button class="medium blue" onClick="popupClose();">' . $lang [ 'srv_zapri' ] . '</button>' ;
echo '</div>' ;
}
2022-03-10 11:06:17 +01:00
// Dobimo sistemski root folder in root folder uporabnika
private function setRootFolders (){
2022-03-02 09:51:46 +01:00
global $global_user_id ;
global $lang ;
2022-03-10 11:06:17 +01:00
// Root folder uporabnika
2022-03-03 12:11:25 +01:00
$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' ] . " ' " );
2022-03-02 09:51:46 +01:00
// 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
2022-03-03 12:11:25 +01:00
( '".$global_user_id."' , '".$this->tab."' , '".$naslov."' , '0' , '".$lang[' id ']."' )
2022-03-02 09:51:46 +01:00
" );
2022-03-10 11:06:17 +01:00
$this -> root_folder [ 'user' ] = mysqli_insert_id ( $GLOBALS [ 'connect_db' ]);
2022-03-02 09:51:46 +01:00
}
else {
$rowFolder = mysqli_fetch_array ( $sqlFolder );
2022-03-10 11:06:17 +01:00
$this -> root_folder [ 'user' ] = $rowFolder [ 'id' ];
2022-03-02 09:51:46 +01:00
}
2022-03-10 11:06:17 +01:00
// Sistemski root folder
$sqlFolder = sisplet_query ( " SELECT id FROM srv_library_folder WHERE uid='0' AND parent='0' AND tip=' " . $this -> tab . " ' AND lang=' " . $lang [ 'id' ] . " ' " );
$rowFolder = mysqli_fetch_array ( $sqlFolder );
$this -> root_folder [ 'system' ] = $rowFolder [ 'id' ];
2022-03-02 09:51:46 +01:00
}
2022-02-22 10:27:32 +01:00
2022-03-09 10:38:45 +01:00
// Seznam folderjev uporabnika
private function getFolderStructure ( $uid , $parent = 0 , $indent = 0 ){
global $global_user_id ;
global $admin_type ;
global $lang ;
$sqlFolder = sisplet_query ( " SELECT id, naslov FROM srv_library_folder WHERE uid=' " . $uid . " ' AND parent=' " . $parent . " ' AND tip='0' AND lang=' " . $lang [ 'id' ] . " ' " );
if ( mysqli_num_rows ( $sqlFolder ) == 0 ){
return ;
}
while ( $rowFolder = mysqli_fetch_array ( $sqlFolder )){
$this -> folder_structure [] = array (
'id' => $rowFolder [ 'id' ],
'title' => $rowFolder [ 'naslov' ],
'indent' => $indent
);
$indent_new = $indent + 1 ;
$this -> getFolderStructure ( $uid , $rowFolder [ 'id' ], $indent_new );
}
return ;
}
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-24 13:42:39 +01:00
global $lang ;
global $global_user_id ;
$this -> tab = ( isset ( $_POST [ 'tab' ])) ? ( int ) $_POST [ 'tab' ] : 0 ;
2022-03-10 11:06:17 +01:00
// Nastavimo root folder
$this -> setRootFolders ();
2022-03-03 12:11:25 +01:00
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-08-22 10:14:50 +02:00
// Div za dodaten popup za preview
echo '<div id="vprasanje_preview" class="displayNone"></div>' ;
2022-02-23 12:48:17 +01:00
}
2022-02-22 10:27:32 +01:00
2022-02-23 12:48:17 +01:00
// Preklopimo tab v kniznici
2022-02-24 13:42:39 +01:00
elseif ( $_GET [ 'a' ] == 'displayLibraryTabContent' ) {
2022-02-23 12:48:17 +01:00
$this -> displayTabContent ();
}
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
// Dodamo folder
elseif ( $_GET [ 'a' ] == 'addFolder' ) {
$folder_id = $_POST [ 'folder_id' ];
$uid = $_POST [ 'uid' ];
2022-02-28 13:28:57 +01:00
$folder_name = $_POST [ 'folder_name' ];
if ( $folder_id != '' && $folder_id > 0 ){
2022-03-03 12:11:25 +01:00
$s = sisplet_query ( " INSERT INTO srv_library_folder (uid, tip, naslov, parent, lang) VALUES (' " . $uid . " ', ' " . $this -> tab . " ', ' " . $folder_name . " ', ' " . $folder_id . " ', ' " . $lang [ 'id' ] . " ') " );
2022-02-28 13:28:57 +01:00
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 ();
}
}
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
// Preimenujemo folder
elseif ( $_GET [ 'a' ] == 'renameFolder' ) {
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
$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' ]);
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
// 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 ();
}
2022-02-24 13:42:39 +01:00
}
// Brisemo folder
elseif ( $_GET [ 'a' ] == 'deleteFolder' ) {
$folder_id = $_POST [ 'folder_id' ];
2022-02-28 13:28:57 +01:00
if ( $folder_id != '' && $folder_id > 0 ){
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
$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 . " ' " );
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
// Pobrisemo folder
sisplet_query ( " DELETE FROM srv_library_folder WHERE id=' " . $folder_id . " ' " );
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
// Nastavimo parenta za aktivni folder in izrisemo na novo
$this -> folder_id = $row [ 'parent' ];
2022-02-24 13:42:39 +01:00
2022-02-28 13:28:57 +01:00
// Posodobimo vse razprte folderje (vsi parenti ce je child aktiven)
$this -> setExpandedFolders ( $this -> folder_id );
// Prikazemo fodlderje
$this -> displayFolderList ();
}
2022-02-24 13:42:39 +01:00
}
2022-02-28 13:28:57 +01:00
// 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 );
}
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' ];
2022-02-24 13:42:39 +01:00
2022-02-23 12:48:17 +01:00
$this -> displayQuestionList ();
}
2022-02-22 10:27:32 +01:00
2022-02-24 13:42:39 +01:00
// 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' ) {
2022-03-03 12:11:25 +01:00
$items = $_POST [ 'items' ];
2022-02-24 13:42:39 +01:00
2022-03-02 09:51:46 +01:00
$b = new Branching ( $this -> ank_id );
2022-02-24 13:42:39 +01:00
$ba = new BranchingAjax ( $this -> ank_id );
2022-03-03 12:11:25 +01:00
foreach ( array_reverse ( $items ) as $item ){
$item_array = explode ( " _ " , $item );
$item_id = $item_array [ 0 ];
$item_type = $item_array [ 1 ];
2022-02-24 13:42:39 +01:00
$last_spr = $b -> find_last_spr ();
2022-03-03 12:11:25 +01:00
// Dodamo if/blok v anketo
if ( $item_type == '2' ){
2022-03-08 11:57:51 +01:00
$spremenljivka = $last_spr ;
$copy = $item_id ;
$sqln = sisplet_query ( " SELECT MAX(i.number) AS number FROM srv_if i, srv_branching b WHERE b.ank_id=' $this->ank_id ' AND b.element_if=i.id " );
$rown = mysqli_fetch_array ( $sqln );
$number = $rown [ 'number' ] + 1 ;
// Dobimo tip (if ali blok)
$sqlt = sisplet_query ( " SELECT tip FROM srv_if WHERE id=' " . $item_id . " ' " );
$rowt = mysqli_fetch_array ( $sqlt );
$tip = $rowt [ 'tip' ];
$sql = sisplet_query ( " INSERT INTO srv_if (id, number, tip) VALUES ('', ' $number ', ' $tip ') " );
if ( ! $sql ) echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
$if_id = mysqli_insert_id ( $GLOBALS [ 'connect_db' ]);
$sql = sisplet_query ( " SELECT parent, vrstni_red, element_spr, element_if FROM srv_branching WHERE element_spr = ' $spremenljivka ' AND element_if='0' " );
$row = mysqli_fetch_array ( $sql );
if ( $spremenljivka == 0 ) {
$row [ 'parent' ] = 0 ;
$row [ 'vrstni_red' ] = 0 ;
}
$next_element = $b -> find_next_element ( $row [ 'parent' ], $row [ 'vrstni_red' ]);
if ( $next_element == null ) { // next_element je prazen na koncu ifa, takrat je tudi nov if prazen
$next_element [ 'parent' ] = $row [ 'parent' ];
$next_element [ 'vrstni_red' ] = $row [ 'vrstni_red' ] + 1 ;
$next_element [ 'element_spr' ] = 0 ;
$next_element [ 'element_if' ] = 0 ;
}
// dodajamo loop - preverimo da ga ne zelimo vgnezditi v drug loop
if ( $tip == 2 ) {
// preverimo, da ga ne dodamo v ze obstojec loop
if ( $b -> find_loop_parent ( $next_element [ 'parent' ]) > 0 )
$add = false ;
// preverimo, da ge ne dodamo direktno pred obstojec loop (ker potem objame obstojec loop in dobimo vgnezdenje)
if ( $next_element [ 'element_if' ] > 0 )
if ( $b -> find_loop_child ( $next_element [ 'element_if' ]) > 0 )
$add = false ;
}
$b -> if_new ( $endif = 0 , $next_element [ 'parent' ], $if_id , $next_element [ 'vrstni_red' ], $next_element [ 'element_spr' ], $next_element [ 'element_if' ], $copy , $no_content = false , $include_element = false );
$ba -> check_loop ();
$b -> repare_vrstni_red ();
2022-03-03 12:11:25 +01:00
}
// Dodamo vprasanje v anketo
else {
$ba -> spremenljivka_new ( $spremenljivka = $last_spr , $if = 0 , $endif = 0 , $copy = $item_id , $drop = 0 );
}
2022-02-24 13:42:39 +01:00
}
2022-02-25 08:30:09 +01:00
Common :: getInstance () -> Init ( $this -> ank_id );
Common :: getInstance () -> prestevilci ( 0 , $all = true );
2022-02-24 13:42:39 +01:00
$b -> branching_struktura ();
}
2022-03-01 15:00:52 +01:00
// Drop itema v drug folder
elseif ( $_GET [ 'a' ] == 'dropItem' ) {
$item_id = $_POST [ 'item_id' ];
2022-03-03 12:11:25 +01:00
$item_type = $_POST [ 'item_type' ];
2022-03-01 15:00:52 +01:00
$folder_id = $_POST [ 'folder_id' ];
if ( $item_id != '' && $item_id > 0 ){
// if/blok
2022-03-03 12:11:25 +01:00
if ( $item_type == '2' ) {
2022-03-01 15:00:52 +01:00
sisplet_query ( " UPDATE srv_if SET folder=' " . $folder_id . " ' WHERE id=' " . $item_id . " ' " );
2022-03-03 12:11:25 +01:00
}
// spremenljivka
else {
sisplet_query ( " UPDATE srv_spremenljivka SET folder=' " . $folder_id . " ' WHERE id=' " . $item_id . " ' " );
2022-03-01 15:00:52 +01:00
}
}
}
2022-03-09 10:38:45 +01:00
// Izbris itema iz knjiznice
elseif ( $_GET [ 'a' ] == 'deleteItem' ) {
$item_id = $_POST [ 'item_id' ];
$item_type = $_POST [ 'item_type' ];
if ( $item_id != '' && $item_id > 0 ){
// if/blok
if ( $item_type == '2' ) {
sisplet_query ( " DELETE FROM srv_if WHERE id=' " . $item_id . " ' AND folder!='0' " );
}
// spremenljivka
else {
sisplet_query ( " DELETE FROM srv_spremenljivka WHERE id=' " . $item_id . " 'AND folder!='0' " );
}
}
}
2022-03-27 17:21:19 +02:00
// Odpremo popup za preimenovanje itema
elseif ( $_GET [ 'a' ] == 'displayRenameLibraryItemPopup' ) {
$item_id = $_POST [ 'item_id' ];
$type = $_POST [ 'type' ];
$this -> displayRenameItemPopup ( $item_id , $type );
}
// Preimenujemo itema
elseif ( $_GET [ 'a' ] == 'renameItem' ) {
$item_id = $_POST [ 'item_id' ];
$type = $_POST [ 'type' ];
$title = $_POST [ 'title' ];
$this -> folder_id = $_POST [ 'folder_id' ];
if ( $item_id != '' && $item_id > 0 ){
if ( $type == '1' ){
$s = sisplet_query ( " UPDATE srv_spremenljivka SET naslov=' " . $title . " ' WHERE id=' " . $item_id . " ' " );
if ( ! $s ) echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
}
elseif ( $type == '2_0' || $type == '2_1' || $type == '2_2' ){
$s = sisplet_query ( " UPDATE srv_if SET label=' " . $title . " ' WHERE id=' " . $item_id . " ' " );
if ( ! $s ) echo mysqli_error ( $GLOBALS [ 'connect_db' ]);
}
$this -> displayQuestionList ();
}
}
2022-03-01 15:00:52 +01:00
2022-02-24 13:42:39 +01:00
2022-02-23 12:48:17 +01:00
// Odpremo popup za dodajanje itema v knjiznico
elseif ( $_GET [ 'a' ] == 'displayAddIntoLibraryPopup' ) {
2022-03-02 09:51:46 +01:00
$item_id = $_POST [ 'item_id' ];
$type = $_POST [ 'type' ];
$this -> displayAddIntoLibrary ( $item_id , $type );
2022-02-23 12:48:17 +01:00
}
2022-02-24 13:42:39 +01:00
// Dodajanje itema v knjiznico
elseif ( $_GET [ 'a' ] == 'addIntoLibrary' ) {
2022-03-02 09:51:46 +01:00
$item_id = $_POST [ 'item_id' ];
$type = $_POST [ 'type' ];
2022-03-08 11:57:51 +01:00
$title = $_POST [ 'title' ];
2022-03-09 10:38:45 +01:00
$folder_id = $_POST [ 'folder_id' ];
2022-03-02 09:51:46 +01:00
2022-03-09 10:38:45 +01:00
if ( $folder_id == '' || $folder_id == 0 )
2022-03-10 11:06:17 +01:00
$folder_id = $this -> root_folder [ 'user' ];
2022-02-24 13:42:39 +01:00
2022-03-02 09:51:46 +01:00
if ( $item_id > 0 ) {
2022-02-24 13:42:39 +01:00
2022-03-02 09:51:46 +01:00
$b = new Branching ( $this -> ank_id );
2022-02-24 13:42:39 +01:00
2022-03-02 09:51:46 +01:00
// v knjiznico dodamo spremenljivko
2022-03-25 11:32:29 +01:00
if ( $type == '1' ) {
2022-03-02 09:51:46 +01:00
$id = $b -> nova_spremenljivka ( - 1 , 0 , 0 , $item_id );
2022-03-08 11:57:51 +01:00
sisplet_query ( " UPDATE srv_spremenljivka SET folder=' " . $folder_id . " ', naslov=' " . $title . " ' WHERE id=' " . $id . " ' " );
2022-03-02 09:51:46 +01:00
2022-02-24 13:42:39 +01:00
}
2022-03-02 09:51:46 +01:00
// v knjiznico dodamo if/blok
2022-03-25 11:32:29 +01:00
elseif ( $type == '2_0' || $type == '2_1' || $type == '2_2' ) {
2022-03-02 09:51:46 +01:00
$id = $b -> if_copy ( 0 , $item_id , true );
2022-03-08 11:57:51 +01:00
sisplet_query ( " UPDATE srv_if SET folder=' " . $folder_id . " ', label=' " . $title . " ' WHERE id=' " . $id . " ' " );
2022-03-02 09:51:46 +01:00
}
}
2022-02-24 13:42:39 +01:00
}
2022-02-22 10:27:32 +01:00
}
}
?>