false); // za shrambo parametrov in sporocil var $rtf; var $db_table = ''; var $language = -1; // Katero verzijo prevoda izvazamo var $type = 0; // tip izpisa - 0->navaden, 1->iz prve strani, 2->s komentarji var $commentType = 1; // tip izpisa komentarjev var $showIf = 0; // izpis if-ov var $font = 10; // velikost pisave var $numbering = 0; // ostevillcevanje vprasanj var $showIntro = 0; // prikaz uvoda /** * @desc konstruktor */ function __construct ($anketa = null, $type = 0, $commentType = 1){ global $site_path; global $global_user_id; global $site_url; global $lang; // preverimo ali imamo stevilko ankete if ( is_numeric($anketa) ) { $this->anketa['id'] = $anketa; $this->usrId = $_GET['usr_id']; $this->type = $type; $this->commentType = $commentType; // Po novem imamo globalne nastavitve SurveySetting::getInstance()->Init($anketa); $this->font = (int)SurveySetting::getInstance()->getSurveyMiscSetting('export_font_size'); $this->showIf = (int)SurveySetting::getInstance()->getSurveyMiscSetting('export_show_if'); $this->numbering = (int)SurveySetting::getInstance()->getSurveyMiscSetting('export_numbering'); $this->showIntro = (int)SurveySetting::getInstance()->getSurveyMiscSetting('export_show_intro'); if(isset($_GET['language'])){ $this->language = $_GET['language']; // Naložimo jezikovno datoteko $file = '../../lang/'.$this->language.'.php'; include($file); $_SESSION['langX'] = $site_url .'lang/'.$this->language.'.php'; } // create new RTF document $this->rtf = new enka_RTF(); } else { $this->pi['msg'] = "Anketa ni izbrana!"; $this->pi['canCreate'] = false; return false; } if ( SurveyInfo::getInstance()->SurveyInit($this->anketa['id']) && $this->init()) { $this->anketa['uid'] = $global_user_id; SurveyUserSetting::getInstance()->Init($this->anketa['id'], $this->anketa['uid']); $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); } else return false; // ce smo prisli do tu je vse ok $this->pi['canCreate'] = true; return true; } function getAnketa() { return $this->anketa['id']; } function checkCreate() { return $this->pi['canCreate']; } function getFile($fileName) { //Close and output rtf document // $this->rtf->Output($fileName, 'I'); $this->rtf->display($fileName = 'anketa'.time().'.rtf',true); } function init(){ global $lang; // dodamo avtorja in naslov $this->rtf->WriteTitle(); if ($this->language != -1) { SurveySetting::getInstance()->Init($this->anketa['id']); $_lang = '_'.$this->language; $srv_novaanketa_kratkoime = SurveySetting::getInstance()->getSurveyMiscSetting('srvlang_srv_novaanketa_kratkoime'.$_lang); } else{ $srv_novaanketa_kratkoime = SurveyInfo::getInstance()->getSurveyAkronim(); } $this->rtf->WriteHeader($this->enkaEncode($srv_novaanketa_kratkoime), 'left'); $this->rtf->WriteHeader($this->enkaEncode($srv_novaanketa_kratkoime), 'right'); $this->rtf->WriteFooter($lang['page']." {PAGE} / {NUMPAGES}", 'right'); $this->rtf->set_default_font(FNT_TIMES, $this->font); return true; } function createRtf(){ // Izpis vprasanj s komentarji if($this->type == 2) $this->outputCommentaries(); // Izpis vprasalnika oz odgovorov enega respondenta else $this->outputSurvey(); } // Izpis vprasalnika (z ali brez odgovorov) function outputSurvey(){ global $lang; $rowA = SurveyInfo::getInstance()->getSurveyRow(); // izpišemo prvo stran $this->createFrontPage(); // Izpisemo vprasalnik // ce obstaja intro izpisemo intro - pri izpisu vprasalnika brez odgovorov (ce smo na prvi strani moramo biti v razsirjenem nacinu) if( ($rowA['expanded'] != 0 || $this->type != 1) && $this->showIntro == 1 ){ if ( SurveyInfo::getInstance()->getSurveyShowIntro() ) { $intro = (SurveyInfo::getInstance()->getSurveyIntro() == '') ? $lang['srv_intro'] : SurveyInfo::getInstance()->getSurveyIntro(); // po potrebi prevedemo uvod $naslovIntro = $this->srv_language_intro(); if ($naslovIntro != '') { $intro = $naslovIntro; } // ce obstaja intro izpisemo intro $this->rtf->add_text($intro); $this->rtf->new_line(3); } } // filtriramo spremenljivke glede na profil SurveyVariablesProfiles :: Init($this->anketa['id']); $dvp = SurveyUserSetting :: getInstance()->getSettings('default_variable_profile'); $_currentVariableProfile = SurveyVariablesProfiles :: checkDefaultProfile($dvp); $tmp_svp_pv = SurveyVariablesProfiles :: getProfileVariables($_currentVariableProfile); foreach ( $tmp_svp_pv as $vid => $variable) { $tmp_svp_pv[$vid] = substr($vid, 0, strpos($vid, '_')); } $sqlGrupeString = "SELECT id FROM srv_grupa WHERE ank_id='".$this->anketa['id']."' ORDER BY vrstni_red"; $sqlGrupe = sisplet_query($sqlGrupeString); while ( $rowGrupe = mysqli_fetch_assoc( $sqlGrupe ) ) { // sprehodmo se skozi grupe ankete $this->grupa = $rowGrupe['id']; $zaporedna = 0; $sqlSpremenljivke = sisplet_query("SELECT * FROM srv_spremenljivka WHERE gru_id='".$this->grupa."' AND visible='1' ORDER BY vrstni_red ASC"); while ($rowSpremenljivke = mysqli_fetch_assoc($sqlSpremenljivke)) { // sprehodimo se skozi spremenljivke grupe $spremenljivka = $rowSpremenljivke['id']; if ( $this->checkSpremenljivka ($spremenljivka) /*|| $this->showIf == 1*/ ) { // lahko izrišemo spremenljivke // če imamo številčenje Type = 1 potem številčimo V1 if (SurveyInfo::getInstance()->getSurveyCountType()) $zaporedna++; $stevilcenje = ( SurveyInfo::getInstance()->getSurveyCountType() ) ? ( ( SurveyInfo::getInstance()->getSurveyCountType() == 2 ) ? $rowSpremenljivke['variable'].") " : $zaporedna.") " ) : null; // izpis skrcenega vprasalnika (samo pri izpisu iz urejanja) if($rowA['expanded'] == 0 && $this->type == 1){ $this->outputVprasanjeCollapsed($rowSpremenljivke, $stevilcenje); } // izpis navadnega vprasalnika else{ $this->outputVprasanje($rowSpremenljivke, $stevilcenje); $this->outputSpremenljivke($rowSpremenljivke); } $this->rtf->new_line(1); } } } // če izpisujemo grupo, ne izpisujemo zakljucka if ( !$this->getGrupa() ){ if ( SurveyInfo::getInstance()->getSurveyShowConcl() && SurveyInfo::getInstance()->getSurveyConcl() ) { // ce obstaja footer izpisemo footer $this->rtf->add_text(SurveyInfo::getInstance()->getSurveyConcl()); } } } // Izpis vprasanj s komentarji function outputCommentaries(){ global $lang; global $site_url; global $admin_type; global $global_user_id; $this->createFrontPage(); $f = new Forum; $c = 0; $b = new Branching($this->anketa['id']); $rowi = SurveyInfo::getInstance()->getSurveyRow(); SurveySetting::getInstance()->Init($this->anketa['id']); $question_resp_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_resp_comment_viewadminonly'); $question_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewadminonly'); $question_comment_viewauthor = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewauthor'); $sortpostorder = SurveySetting::getInstance()->getSurveyMiscSetting('sortpostorder'); $question_note_view = SurveySetting::getInstance()->getSurveyMiscSetting('question_note_view'); $addfieldposition = SurveySetting::getInstance()->getSurveyMiscSetting('addfieldposition'); $commentmarks = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks'); $commentmarks_who = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks_who'); $sql = sisplet_query("SELECT s.* FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='".$this->anketa['id']."' ORDER BY g.vrstni_red ASC, s.vrstni_red ASC"); if ( mysqli_num_rows($sql) > 0 && ( (int)$question_resp_comment_viewadminonly + (int)$question_comment_viewadminonly ) > 0 ) { while ($row = mysqli_fetch_array($sql)) { $sql1 = sisplet_query("SELECT thread, note FROM srv_spremenljivka WHERE id = '$row[id]'"); $row1 = mysqli_fetch_array($sql1); $orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ; $tid = $row1['thread']; $only_unresolved = " "; $only_unresolved2 = " "; if ($this->commentType == 1) $only_unresolved = " AND ocena <= 1 "; if ($this->commentType == 1) $only_unresolved2 = " AND text2 <= 1 "; if ($this->commentType == 2) $only_unresolved = " AND ocena = 0 "; if ($this->commentType == 2) $only_unresolved2 = " AND text2 = 0 "; if ($this->commentType == 3) $only_unresolved = " AND ocena = 1 "; if ($this->commentType == 3) $only_unresolved2 = " AND text2 = 1 "; if ($this->commentType == 4) $only_unresolved = " AND ocena = 2 "; if ($this->commentType == 4) $only_unresolved2 = " AND text2 = 2 "; if ($this->commentType == 5) $only_unresolved = " AND ocena = 3 "; if ($this->commentType == 5) $only_unresolved2 = " AND text2 = 3 "; $tema_vsebuje = substr($lang['srv_forum_intro'],0,10); // da ne prikazujemo 1. default sporocila if ($admin_type <= $question_comment_viewadminonly) { // vidi vse komentarje $sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved ORDER BY time $orderby, id $orderby"); } elseif ($question_comment_viewauthor==1) { // vidi samo svoje komentarje $sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved AND uid='$global_user_id' ORDER BY time $orderby, id $orderby"); } else { // ne vidi nobenih komentarjev $sqlt = sisplet_query("SELECT * FROM post WHERE 1=0"); } $sql2 = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_text".$this->db_table." WHERE spr_id='0' AND vre_id='$row[id]' $only_unresolved2"); $row2 = mysqli_fetch_array($sql2); if ( mysqli_num_rows($sqlt) > 0 || $row2['count'] > 0 || $row1['note'] != '') { $c++; $this->outputVprasanje($row, null); $this->outputSpremenljivke($row); if ($admin_type <= $question_note_view || $question_note_view == '') { if ($row1['note'] != '') { $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($lang['hour_comment']).$this->rtf->bold(0)); $this->rtf->new_line(1); $this->rtf->add_text($this->enkaEncode($row1['note'])); $this->rtf->new_line(1); } } // komentarji na vprasanje if ($row1['thread'] > 0) { if (mysqli_num_rows($sqlt) > 0) { $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($lang['srv_admin_comment']).$this->rtf->bold(0)); $this->rtf->new_line(2); $i = 0; while ($rowt = mysqli_fetch_array($sqlt)) { $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($f->user($rowt['uid'])).$this->rtf->bold(0).$this->enkaEncode(' ('.$f->datetime1($rowt['time']).'):')); $this->rtf->new_line(1); // Popravimo vsebino ce imamo replike $vsebina = iconv("iso-8859-2", "UTF-8", $rowt['vsebina']); $odgovori = explode("
", $vsebina); $this->rtf->add_text($this->enkaEncode($odgovori[0])); $this->rtf->new_line(2); unset($odgovori[0]); foreach($odgovori as $odgovor){ $odgovor = explode('
', $odgovor); $avtor = explode(' ', $odgovor[0]); $this->rtf->add_text(' \tab '.$this->rtf->bold(1).$this->enkaEncode($avtor[0]).$this->rtf->bold(0).$this->enkaEncode($avtor[1])); $this->rtf->new_line(1); $this->rtf->add_text(' \tab '.$this->enkaEncode($odgovor[1])); $this->rtf->new_line(2); } } } } // komentarji respondentov if ($row2['count'] > 0) { if ($admin_type <= $question_resp_comment_viewadminonly) { $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($lang['srv_repondent_comment']).$this->rtf->bold(0)); $this->rtf->new_line(2); if ($this->commentType == 1) $only_unresolved = " AND d.text2 <= 1 "; else $only_unresolved = " "; $sqlt = sisplet_query("SELECT d.*, u.time_edit FROM srv_data_text".$this->db_table." d, srv_user u WHERE d.spr_id='0' AND d.vre_id='$row[id]' AND u.id=d.usr_id $only_unresolved2 ORDER BY d.id ASC"); if (!$sqlt) echo mysqli_error($GLOBALS['connect_db']); while ($rowt = mysqli_fetch_array($sqlt)) { $this->rtf->add_text($this->enkaEncode($f->datetime1($rowt['time_edit']).':')); $this->rtf->new_line(1); $this->rtf->add_text($this->enkaEncode($rowt['text'])); $this->rtf->new_line(2); } } } $this->rtf->new_line(2); } } /*if ($c == 0) { //echo $lang['srv_no_comments_solved'].'
'; }*/ } else { //echo $lang['srv_no_comments'].'
'; } } // Izpis skrcenih vprasanj - v eni vrstici function outputVprasanjeCollapsed($spremenljivke, $zaporedna){ global $lang; $b = new Branching($this->anketa['id']); $sqlIf = sisplet_query("SELECT * FROM srv_branching WHERE element_spr='$spremenljivke[id]'"); $rowIf = mysqli_fetch_array($sqlIf); // Zamik zaradi ifov $zamik = ( $b->level($spremenljivke['id'],0) > 0 ? (($b->level($spremenljivke['id'],0)-1)) : 0 ); for($i=0; $i<$zamik; $i++){ $this->rtf->add_text('\tab'); } $rowl = $this->srv_language_spremenljivka($spremenljivke); if (strip_tags($rowl['naslov']) != '') $spremenljivke['naslov'] = $rowl['naslov']; //izpis if-ov pri vprasanju if(/*$this->showIf == 1*/ true){ if ($rowIf['parent'] > 0){ $rowb = Cache::srv_if($rowIf['parent']); if ($rowb['tip'] == 0){ $this->displayIf($rowIf['parent']); $this->rtf->new_line(1); $zamik ++; } } } for($i=0; $i<$zamik; $i++){ $this->rtf->add_text('\tab'); } // stevilcenje vprasanj $numberingText = '('.$spremenljivke['variable'].') '; $this->rtf->add_text($this->rtf->color(11).$numberingText.$this->rtf->color(0)); $this->rtf->add_text($this->enkaEncode($spremenljivke['naslov'])); $this->rtf->add_text($this->rtf->color(15).$this->enkaEncode(' ( '.$lang['srv_vprasanje_tip_long_'.$spremenljivke['tip']].' )').$this->rtf->color(0)); $this->rtf->new_line(1); // izpis pagebreaka if($b->pagebreak($spremenljivke['id'])){ /*$this->currentStyle = array('width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => '2,2', 'color' => array(128, 128, 128)); $cy = $this->pdf->getY()+3; $this->pdf->Line(15, $cy , 195, $cy , $this->currentStyle);*/ $this->rtf->new_line(1); $this->rtf->TextCell('', array('width' => 9200, 'height' => 0, 'align' => 'center', 'valign' => 'middle' , 'border' => 'top', 'colorF' => "0", 'colorB' => "0" ) ); } } function outputVprasanje($spremenljivke, $zaporedna){ $rowl = $this->srv_language_spremenljivka($spremenljivke); if (strip_tags($rowl['naslov']) != '') $spremenljivke['naslov'] = $rowl['naslov']; if (strip_tags($rowl['info']) != '') $spremenljivke['info'] = $rowl['info']; //izpis if-ov pri vprasanju if($this->showIf == 1){ /*$sqlIf = sisplet_query("SELECT * FROM srv_branching WHERE element_spr='$spremenljivke[id]'"); $rowIf = mysqli_fetch_array($sqlIf); if ($rowIf['parent'] > 0){ $rowb = Cache::srv_if($rowIf['parent']); if ($rowb['tip'] == 0){ $this->displayIf($rowIf['parent']); $this->rtf->new_line(1); } }*/ // Po novem izpisemo pred vsakim vprasanjem vse ife znotraj katerih se nahaja $b = new Branching($this->anketa['id']); $parents = $b->get_parents($spremenljivke['id']); $parents = explode('p_', $parents); foreach ($parents AS $key => $val) { if ( is_numeric(trim($val)) ) { $parents[$key] = (int)$val; } else { unset($parents[$key]); } } foreach ($parents AS $if) { $this->displayIf($if); $this->rtf->new_line(1); } } // stevilcenje vprasanj $numberingText = ($this->numbering == 1) ? $spremenljivke['variable'].' - ' : ''; // pretvorimo html v rtf $text = $this->rtf->HTMLtoRTF($numberingText . $spremenljivke['naslov']); $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($text).$this->rtf->bold(0)); if($spremenljivke['orientation']!=0){ //ce ni vodoravno ob vprasanju, pejdi v novo vrstico // Izpisemo opombo, ce jo imamo if($spremenljivke['info'] != ''){ $this->rtf->new_line(1); $this->rtf->set_font_size($this->font-2); $this->rtf->add_text($this->rtf->color(15).$this->enkaEncode($spremenljivke['info']).$this->rtf->color(0)); $this->rtf->set_font_size($this->font); } //$this->rtf->add_text($numberingText . $this->enkaEncode($spremenljivke['naslov'])); $this->rtf->new_line(1); } } function outputSpremenljivke($spremenljivke) { global $lang; switch ( $spremenljivke['tip'] ) { case 1: //radio case 2: //check case 3: //select -> radio if($spremenljivke['orientation']!=0){ //ce ni vodoravno ob vprasanju, pejdi v novo vrstico $this->rtf->new_line(1); } // iz baze preberemo vse moznosti $sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); //ce imamo prikaz v vec stoplcih $spremenljivkaParams = new enkaParameters($spremenljivke['params']); $stolpci = ($spremenljivkaParams->get('stolpci') ? $spremenljivkaParams->get('stolpci') : 1); $checkbox_limit = ($spremenljivkaParams->get('checkbox_limit') ? $spremenljivkaParams->get('checkbox_limit') : 0); if ($stolpci > 1 && $spremenljivke['orientation']==1) { //echo ''; $kategorij = mysqli_num_rows($sqlVrednosti); $v_stolpcu = ceil($kategorij / $stolpci); $width = round(10000 / $stolpci); $this->rtf->MyRTF .= "{\par"; $tableHeader = '\trowd\trql\trrh400'; } $count = 0; $table = ''; $tableEnd = ''; $SeznamTable = array(); $SeznamBorders = array(); $PredefinedSeznamBorders = array(); $PredefinedSeznamBorders[0] = array('top', 'left', 'right'); $PredefinedSeznamBorders[1] = array('left', 'right'); $PredefinedSeznamBorders[2] = array('right', 'left', 'bottom'); $AllBorders = array('top', 'left', 'right', 'bottom'); if($spremenljivke['orientation']!=10) { //ce ni image hot spot while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)) { //popravimo lokacijo ce imamo postavitev v vec stolpcih if ( ($stolpci > 1) && ($spremenljivke['orientation']==1) && ($count % $v_stolpcu == 0) ) { $yPos = floor($count / $v_stolpcu) + 1; $table .= '\clvertalc\cellx'.( $yPos * $width ); $tableEnd .= '\pard\intbl '; } # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); if($spremenljivke['orientation']==1){ //navpicno if( isset($userAnswer[$rowVrednost['id']]) ){ if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); } else{ if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); } if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= ' '.$stringTitle.'\\line\n'; else{ $this->rtf->add_text(" ".$stringTitle); $this->rtf->new_line(1); } $count++; if ( ($stolpci > 1) && ($spremenljivke['orientation']==1) && ($count % $v_stolpcu == 0 || $count == $kategorij) ) { $tableEnd .= ' \ql\cell'; } }elseif($spremenljivke['orientation']==7){ //navpicno - tekst levo if(($stolpci > 1) && ($spremenljivke['orientation']==7)) $tableEnd .= ' '.$stringTitle.' '; else{ $this->rtf->add_text(" ".$stringTitle. "\t"); } if( isset($userAnswer[$rowVrednost['id']]) ){ if(($stolpci > 1) && ($spremenljivke['orientation']==7)){ $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); $tableEnd .= '\\line\n'; } else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); } else{ if(($stolpci > 1) && ($spremenljivke['orientation']==7)){ $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); $tableEnd .= '\\line\n'; } else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); } $count++; if ( ($stolpci > 1) && ($spremenljivke['orientation']==7) && ($count % $v_stolpcu == 0 || $count == $kategorij) ) { $tableEnd .= ' \ql\cell'; }else{ $this->rtf->new_line(1); } }elseif($spremenljivke['orientation']==0){ //vodoravno ob vprasanju if( isset($userAnswer[$rowVrednost['id']]) ){ if(($stolpci > 1) && ($spremenljivke['orientation']==0)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); } else{ if(($stolpci > 1) && ($spremenljivke['orientation']==0)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); } if(($stolpci > 1) && ($spremenljivke['orientation']==0)) //$tableEnd .= ' '.$stringTitle.'\\line\n'; $tableEnd .= ' '.$stringTitle; else{ $this->rtf->add_text(" ".$stringTitle); //$this->rtf->new_line(1); } $count++; if ( ($stolpci > 1) && ($spremenljivke['orientation']==0) && ($count % $v_stolpcu == 0 || $count == $kategorij) ) { $tableEnd .= ' \ql\cell'; } } elseif($spremenljivke['orientation']==2){ //vodoravno pod vprasanjem if( isset($userAnswer[$rowVrednost['id']]) ){ if(($stolpci > 1) && ($spremenljivke['orientation']==2)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); } else{ if(($stolpci > 1) && ($spremenljivke['orientation']==2)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); } if(($stolpci > 1) && ($spremenljivke['orientation']==2)) //$tableEnd .= ' '.$stringTitle.'\\line\n'; $tableEnd .= ' '.$stringTitle; else{ $this->rtf->add_text(" ".$stringTitle); //$this->rtf->new_line(1); } $count++; if ( ($stolpci > 1) && ($spremenljivke['orientation']==0) && ($count % $v_stolpcu == 0 || $count == $kategorij) ) { $tableEnd .= ' \ql\cell'; } }elseif($spremenljivke['orientation']==6){ //izberite s seznama array_push( $SeznamTable, array($stringTitle) ); if($count == 0){ array_push( $SeznamBorders, $PredefinedSeznamBorders[0]); }elseif($count != 0 && $count != (mysqli_num_rows($sqlVrednosti) - 1)){ array_push( $SeznamBorders, $PredefinedSeznamBorders[1]); } elseif($count == (mysqli_num_rows($sqlVrednosti) - 1)){ array_push( $SeznamBorders, $PredefinedSeznamBorders[2]); } $count++; }elseif($spremenljivke['orientation']==8){ //povleci-spusti array_push( $SeznamTable, array($stringTitle) ); if($count == 0){ array_push( $SeznamBorders, $PredefinedSeznamBorders[0]); }elseif($count != 0 && $count != (mysqli_num_rows($sqlVrednosti) - 1)){ array_push( $SeznamBorders, $PredefinedSeznamBorders[1]); } elseif($count == (mysqli_num_rows($sqlVrednosti) - 1)){ array_push( $SeznamBorders, $PredefinedSeznamBorders[2]); } $count++; }else{ if( isset($userAnswer[$rowVrednost['id']]) ){ if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox2.png" : "radio2.png"), "15"); } else{ if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); else $this->rtf->MyRTF .= $this->rtf->ImageToString( ( ( $spremenljivke['tip'] == 2 ) ? "checkbox.png" : "radio.png"), "15"); } if(($stolpci > 1) && ($spremenljivke['orientation']==1)) $tableEnd .= ' '.$stringTitle.'\\line\n'; else{ $this->rtf->add_text(" ".$stringTitle); $this->rtf->new_line(1); } $count++; if ( ($stolpci > 1) && ($spremenljivke['orientation']==1) && ($count % $v_stolpcu == 0 || $count == $kategorij) ) { $tableEnd .= ' \ql\cell'; } } } } if($spremenljivke['orientation']==6){ //izberite s seznama $this->rtf->TableFromArraySelect( array( 4750, 4750 ), $SeznamTable, $SeznamBorders, mysqli_num_rows($sqlVrednosti)); } if($spremenljivke['orientation']==8){ //povleci-spusti //$this->rtf->TableFromArrayDragDrop( array( 4750, 4750 ), $SeznamTable, $SeznamBorders, mysqli_num_rows($sqlVrednosti)); $this->rtf->TableFromArrayDragDrop( array( 3000, 3000 ), $SeznamTable, $SeznamBorders, mysqli_num_rows($sqlVrednosti)); } if($spremenljivke['orientation']==10)//image hot spot { $odgovor = "Image hot spot"; $this->rtf->TextCell($odgovor, array('width' => 6500, 'height' => 5, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); } if ($stolpci > 1 && $spremenljivke['orientation'] == 1) { $tableEnd .= '\pard\intbl\row'; $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader.$table.$tableEnd); $this->rtf->MyRTF .= "}"; } if($spremenljivke['orientation']==0){ //ce je vodoravno ob vprasanju, pride opomba na koncu // Izpisemo opombo, ce jo imamo if($spremenljivke['info'] != ''){ $this->rtf->new_line(1); $this->rtf->set_font_size($this->font-2); $this->rtf->add_text($this->rtf->color(15).$this->enkaEncode($spremenljivke['info']).$this->rtf->color(0)); $this->rtf->set_font_size($this->font); } //$this->rtf->add_text($numberingText . $this->enkaEncode($spremenljivke['naslov'])); $this->rtf->new_line(1); } $this->rtf->new_line(1); break; case 6: // multigrid case 16: // multicheckbox case 19: // multitext case 20: // multinumber //izris dvojnega multigrida if($spremenljivke['enota'] == 3){ $this->displayDoubleGrid($spremenljivke); break; } if($spremenljivke['enota']!=10){ //ce ni image hot spot //za izberite s seznama in povleci-spusti if($spremenljivke['enota'] == 6) { $headerTitles = array(); $stringCellTitles = array(); }elseif($spremenljivke['enota'] == 9) { $headerTitles = array(); //$headerTitles = array($lang['srv_drag_drop_answers'].": "); $stringCellTitles = array(); //$stringCellTitles = array($lang['srv_ranking_avaliable_categories'].": "); $odgovor = "Drag and drop"; $this->rtf->TextCell($odgovor, array('width' => 7000, 'height' => 1, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); $this->rtf->TextCells($this->enkaEncode($lang['srv_ranking_avaliable_categories']), $lang['srv_drag_drop_answers']); } //za izberite s seznama in povleci-spusti - konec $this->rtf->MyRTF .= "{\\par\\fs22"; $sqlStVrednosti = sisplet_query("SELECT count(*) AS count FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY id"); $rowStVrednost = mysqli_fetch_row($sqlStVrednosti); $defw_full = 10500; if($rowStVrednost[0] < 6 && ($spremenljivke['tip'] != 6 || $spremenljivke['enota'] != 1)){ $defw_fc = 4300; // first cell width } else{ $defw_fc = 2000; // first cell width } $kolon = $rowStVrednost[0]+1; // Ce imamo diferencial if($spremenljivke['tip'] == 6 && $spremenljivke['enota'] == 1) $w_oc = ( $defw_full - (2*$defw_fc) ) / $kolon; else $w_oc = ( $defw_full - $defw_fc ) / $kolon; $defw_max = floor($w_oc); $tableHeader_base = "\\trowd\\trhdr\\trgaph20\\trleft0\\trrh162"; $tableHeader_width = "\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\qc{}\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $sqlVsehVrednsti = sisplet_query("SELECT naslov, id, variable FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); $rowCnt = 0; while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)) { $rowCnt++; $tableHeader_width .= "\\cellx". ( $rowCnt * $defw_max + $defw_fc ); # priredimo naslov če prevajamo anketo $naslov = $this->srv_language_grid($spremenljivke['id'], $rowVsehVrednosti['id']); if ($naslov != '') { $rowVsehVrednosti['naslov'] = $naslov; } // če ni naslova vzamemo variable $stringHeader_title = $this->enkaEncode( ( $rowVsehVrednosti['naslov'] ) ? $rowVsehVrednosti['naslov'] : $rowVsehVrednosti['variable'] ); $tableHeader_title .= "\\pard\\intbl\\qc{".$this->enkaEncode($stringHeader_title)."}\\cell"; if($spremenljivke['enota'] == 6 || $spremenljivke['enota'] == 9) { array_push($headerTitles, $this->enkaEncode($stringHeader_title)); } } if($spremenljivke['enota'] != 6 && $spremenljivke['enota'] != 9) { // izpišemo header celice $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); } // loopamo skozi vrstice in pripravimo podatke za tabelo z radii $row_count = 1; $sqlVrednosti = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ $i=1; // barva vrstice $row_color = ($row_count%2 == 1) ? '\\clcbpat18' : ''; # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } // če ni naslova vzamemo naslov2, če ne pa variable $stringCell_title = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $tableHeader_base = "\\trowd\\trgaph12\\trleft0\\trrh262"; if($spremenljivke['enota'] == 9) //povleci-spusti { $tableHeader_width = "\\cellx".$defw_fc; }else { $tableHeader_width = $row_color."\\cellx".$defw_fc; } $tableHeader_title = "\\pard\\intbl\\ql\cf0 ".$this->enkaEncode($stringCell_title)."\\cf0\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; if($spremenljivke['enota'] == 6 && $spremenljivke['enota'] == 9) { array_push($stringCellTitles, $tableHeader_title); } $sqlVsehVrednsti = sisplet_query("SELECT id FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)){ $full = false; if($spremenljivke['tip'] == 6 && ($spremenljivke['enota'] != 6 && $spremenljivke['enota'] != 9) ) { $tableHeader_width .= "\clvertalc".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio.png", "15")."}\\cell"; } elseif($spremenljivke['tip'] == 16 && ($spremenljivke['enota'] != 6 && $spremenljivke['enota'] != 9) ) { $tableHeader_width .= "\clvertalc".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox.png", "15")."}\\cell"; } //else{ elseif($spremenljivke['enota'] != 6 && $spremenljivke['enota'] != 9) { $tableHeader_width .= "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); $tableHeader_width .= '\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10'; $tableHeader_title .= '\\pard\\intbl'.$this->rtf->color(12).' '.$this->rtf->color(0).'\qc{}\\cell'; }elseif($spremenljivke['enota'] == 6) //izberite s seznama { if($i == 1) { $odgovoriSeznam = implode("\\line ", $headerTitles); //vsako vrednost iz polja dej v string vsaka v svojo vrstico //$tableHeader_width .= "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10".$row_color."\\cellx7000"; $tableHeader_width .= "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\\cellx7000"; $tableHeader_title .= '\\pard\\intbl'.$this->rtf->color(12).' '.$this->rtf->color(0).'\qc{'.$odgovoriSeznam.'}\\cell'; } }elseif($spremenljivke['enota'] == 9) //povleci-spusti { if($i == 1 && $row_count == 1) { $odgovoriSeznam = implode("\\line ", $headerTitles); //vsako vrednost iz polja dej v string vsaka v svojo vrstico //$tableHeader_width .= "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10".$row_color."\\cellx7000"; //$tableHeader_width .= "\clbrdrt".$row_color."\\cellx7000"; $tableHeader_width .= "\clbrdrt\\cellx7000"; $tableHeader_title .= '\\pard\\intbl'.$this->rtf->color(12).' '.$this->rtf->color(0).'\qc{'.$odgovoriSeznam.'}\\cell'; } } $i++; } // Ce imamo diferencial if($spremenljivke['tip'] == 6 && $spremenljivke['enota'] == 1){ $stringCell_title2 = $this->enkaEncode($rowVrednost['naslov2']); $tableHeader_width .= $row_color."\\cellx".( ($i-1) * $defw_max + 2*$defw_fc ); $tableHeader_title .= "\\pard\\intbl\\ql\cf0 ".$this->enkaEncode($stringCell_title2)."\\cf0\\cell"; } $row_count++; $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); } $this->rtf->MyRTF .= "}"; } if($spremenljivke['enota']==10)//image hot spot { $odgovor = "Image hot spot"; $this->rtf->TextCell($odgovor, array('width' => 6500, 'height' => 5, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); } /* if($spremenljivke['enota']==9){ //povleci-spusti //$this->rtf->TableFromArrayDragDrop( array( 4750, 4750 ), $SeznamTable, $SeznamBorders, mysqli_num_rows($sqlVrednosti)); //$this->rtf->TableFromArrayDragDropGrid( array( 3000, 3000 ), $odgovoriSeznam, $SeznamBorders, mysqli_num_rows($sqlVrednosti)); if(mysqli_num_rows($sqlVsehVrednsti) > mysqli_num_rows($sqlVrednosti)) { $numOfRows = mysqli_num_rows($sqlVsehVrednsti); }else { $numOfRows = mysqli_num_rows($sqlVrednosti); } $this->rtf->TableFromArrayDragDropGrid( array( 3000, 3000 ), $stringCellTitles, $numOfRows); } */ $this->rtf->new_line(1); break; case 24: // mesan multigrid $this->displayGridMultiple($spremenljivke); break; case 4: //text $this->rtf->TextCell("", array('width' => 9500, 'height' => 3, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); break; case 21: //besedilo* $this->rtf->new_line(1); $list = array(); $this->rtf->MyRTF .= "{\par"; $defw_full = 9500; $defw_part = round($defw_full / $spremenljivke['text_kosov']); $tableHeader = '\trowd\trql\trrh800'; $podnapisi = '\trowd\trql'; // iz baze preberemo vse moznosti $sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); for($i=0; $i<$spremenljivke['text_kosov']; $i++){ $rowVrednost = mysqli_fetch_array($sqlVrednosti); # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $list[] = $stringTitle; if($spremenljivke['text_orientation'] == 1){ $table .= '\cellx'.( $i * $defw_part + 1000).'\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx'.( ($i+1) * $defw_part); $tableEnd .= '\pard\intbl '.$this->enkaEncode($stringTitle).'\qc\cell\pard\intbl'.$this->rtf->color(12).' '.$userAnswer['text'].$this->rtf->color(0).'\cell'; } else{ $table .= '\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx'.( ($i+1) * $defw_part ); $tableEnd .= '\pard\intbl'.$this->rtf->color(12).' '.$userAnswer['text'].$this->rtf->color(0).'\cell'; } if($spremenljivke['text_orientation'] == 2){ $podnapisi .= '\cellx'.( ($i+1) * $defw_part ).''; $podnapisiEnd .= '\pard\intbl '.$this->enkaEncode($stringTitle).'\qc\cell'; } } $tableEnd .= '\pard\intbl\row'; $podnapisiEnd .= '\pard\intbl\row'; $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader.$table.$tableEnd.($spremenljivke['text_orientation'] == 2 ? $podnapisi.$podnapisiEnd : '')); $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); // Izris polj drugo - ne vem... $sqlVrednost = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' and other!='0' order BY vrstni_red"); while($rowVrednost = mysqli_fetch_array($sqlVrednost)) { # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $this->rtf->MyRTF .= $this->rtf->ImageToString("checkbox.png", "15").' '.$this->rtf->enkaEncode($rowVrednost['naslov']); $this->rtf->new_line(1); } break; case 5: //label $this->rtf->new_line(2); break; case 7: //number $this->rtf->new_line(1); $list = array(); $this->rtf->MyRTF .= "{\par"; // iz baze preberemo vse moznosti $sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); $rowVrednost = mysqli_fetch_array($sqlVrednosti); # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $list[] = $stringTitle; if($spremenljivke['size'] == 1) { if ($spremenljivke['enota'] == 1) { #enota na levi $table = '\trowd\trql\cellx1500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx3000' .'\qc\pard\intbl '.($this->snippet($this->enkaEncode($stringTitle),20,'...') ) .'\qc\cell\pard\intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell\pard\intbl\row'; } elseif ($spremenljivke['enota'] == 2) { #enota na desni $table = '\trowd\trql\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx1500\cellx3000'; $table .= '\qc\pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl '.($this->snippet($this->enkaEncode($stringTitle),20,'...') ) .'\qc\cell\pard\intbl\row'; } else { #brez enote $table = '\trowd\trql\cellx1500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx3000' .'\qc\pard\intbl '. '\qc\cell\pard\intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell\pard\intbl\row'; } } else{ $rowVrednost = mysqli_fetch_array($sqlVrednosti); # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle2 = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); if ($spremenljivke['enota'] == 1) { #enota na levi $table = '\trowd\trql\cellx1500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx3000\cellx4500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx6000'; $table .= '\qc\pard \intbl '.($this->snippet($this->enkaEncode($stringTitle),20,'...') ) .'\qc\cell \pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl '.($this->snippet($this->enkaEncode($stringTitle2),20,'...') ) .'\qc\cell \pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl \row'; } else if ($spremenljivke['enota'] == 2) { #enota na desni $table = '\trowd\trql\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx1500\cellx3000\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx4500\cellx6000'; $table .= '\qc\pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl '.($this->snippet($this->enkaEncode($stringTitle),20,'...') ) .'\qc\cell \pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl '.($this->snippet($this->enkaEncode($stringTitle2),20,'...') ) .'\qc\cell \pard \intbl \row'; } else { #brez eneote $table = '\trowd\trql\cellx1500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx3000\cellx4500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx6000'; $table .= '\qc\pard \intbl ' .'\qc\cell \pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl ' .'\qc\cell \pard \intbl '.$this->rtf->color(12).' '.$this->rtf->color(0) .'\qc\cell \pard \intbl \row'; } } $this->rtf->MyRTF .= $this->rtf->enkaEncode($table); $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); // Izris polj drugo - ne vem... $sqlVrednost = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' and other!='0' order BY vrstni_red"); while($rowVrednost = mysqli_fetch_array($sqlVrednost)) { # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $this->rtf->MyRTF .= $this->rtf->ImageToString("checkbox.png", "15").' '.$this->enkaEncode($rowVrednost['naslov']); $this->rtf->new_line(1); } break; case 8: //datum $this->rtf->MyRTF .= $this->rtf->color(12); $this->rtf->TextCell($this->enkaEncode($userAnswer['text']), array('width' => 2000, 'height' => 1, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->MyRTF .= $this->rtf->color(0); $this->rtf->new_line(1); // Izris polj drugo - ne vem... $sqlVrednost = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' and other!='0' order BY vrstni_red"); while($rowVrednost = mysqli_fetch_array($sqlVrednost)) { # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $this->rtf->MyRTF .= $this->rtf->ImageToString("checkbox.png", "15").' '.$this->enkaEncode($rowVrednost['naslov']); $this->rtf->new_line(1); } break; case 18: //vsota $this->rtf->new_line(1); $list = array(); $this->rtf->MyRTF .= "{\par"; // iz baze preberemo vse moznosti $sum = 0; $sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $list[] = $stringTitle; $table .= '\trowd\trql\cellx5000\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx5800\pard\intbl '.$this->snippet($this->enkaEncode($stringTitle),50,'...').'\~\~\qr\cell\pard\intbl'.$this->rtf->color(12).' '.$this->enkaEncode($rowAnswers['text']).$this->rtf->color(0).'\qc\cell\pard\intbl\row'; $sum += (int)$rowAnswers['text']; } $table .= '\trowd \trql\clbrdrb\brdrs\brdrw10\cellx6000\pard \intbl \cell \pard \intbl \row'; $table .= '\trowd \trql\cellx6000\pard \intbl \cell \pard \intbl \row'; $stringTitle = $spremenljivke['vsota']; $table .= '\trowd \trql\cellx5000\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx5800\pard \intbl '.$this->snippet($this->enkaEncode($stringTitle),50,'...').'\~\~\qr\cell \pard \intbl '.$sum.'\qc\cell \pard \intbl \row'; $this->rtf->MyRTF .= $this->rtf->enkaEncode($table); $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); break; case 17: //ranking $this->rtf->new_line(1); $list = array(); $this->rtf->MyRTF .= "{\par"; // iz baze preberemo vse moznosti $sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } $stringTitle = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $list[] = $stringTitle; $table .= '\trowd \trql\cellx1500\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx2300\pard \intbl '.$this->enkaEncode($stringTitle).' \qc\cell \pard \intbl'.$this->rtf->color(12).' '.$this->enkaEncode($rowAnswers['vrstni_red']).$this->rtf->color(0).'\qc\cell \pard \intbl \row'; } $this->rtf->MyRTF .= $this->rtf->enkaEncode($table); $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); break; case 26: //lokacija $odgovor = "Google Maps"; $this->rtf->TextCell($odgovor, array('width' => 6500, 'height' => 5, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); break; case 27: //heatmap $odgovor = "Heatmap"; $this->rtf->TextCell($odgovor, array('width' => 6500, 'height' => 5, 'border' => array('top','bottom', 'left','right') ) ); $this->rtf->new_line(1); break; } } function displayDoubleGrid($spremenljivke) { $this->rtf->MyRTF .= "{\\par\\fs22"; $defw_full = 9500; $defw_fc = 1200; // first cell width $defw_max = 800; // max other cell width $maxcellx = 9500; $sqlStVrednosti = sisplet_query("SELECT count(*) AS count FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY id"); $rowStVrednost = mysqli_fetch_row($sqlStVrednosti); $kolon = $rowStVrednost[0]+1; $w_oc = ( $defw_full - $defw_fc ) / $kolon; if ( $w_oc > $defw_max ) $w_oc = $defw_max; //izpis dveh podnaslovov gridov $tableHeader_base = "\\trowd\\trhdr\\trgaph20\\trleft0\\trrh162"; $tableHeader_width = "\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\qc{}\\cell"; $tableHeader_width .= "\\clbrdrb\\brdrs\\brdrw10\\cellx". ( ($kolon-1)*400 + $defw_fc ); $tableHeader_title .= "\\pard\\intbl\\qc{".$this->enkaEncode($spremenljivke['grid_subtitle1'])."}\\cell"; $tableHeader_width .= "\\clbrdrl\\brdrs\\brdrw10\\clbrdrb\\brdrs\\brdrw10\\cellx". ( ($kolon-1)*800 + $defw_fc ); $tableHeader_title .= "\\pard\\intbl\\qc{".$this->enkaEncode($spremenljivke['grid_subtitle2'])."}\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); $tableHeader_base = "\\trowd\\trhdr\\trgaph20\\trleft0\\trrh162"; $tableHeader_width = "\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\qc{}\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $sqlVsehVrednsti = sisplet_query("SELECT naslov, id, variable, part FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY part, vrstni_red"); $rowCnt = 0; $border = false; while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)) { //izris srednjega borderja if($border == false && $rowVsehVrednosti['part'] == 2){ $border = true; $leftBorder = '\clbrdrl\brdrs\brdrw10'; } else $leftBorder = ''; $rowCnt++; $tableHeader_width .= $leftBorder."\\cellx". ( $rowCnt * 800 +$defw_fc ); # priredimo naslov če prevajamo anketo $naslov = $this->srv_language_grid($spremenljivke['id'], $rowVsehVrednosti['id']); if ($naslov != '') { $rowVsehVrednosti['naslov'] = $naslov; } // če ni naslova vzamemo variable $stringHeader_title = $this->enkaEncode( ( $rowVsehVrednosti['naslov'] ) ? $rowVsehVrednosti['naslov'] : $rowVsehVrednosti['variable'] ); $tableHeader_title .= "\\pard\\intbl\\qc{".$this->enkaEncode($stringHeader_title)."}\\cell"; } // izpišemo header celice $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); // loopamo skozi vrstice in pripravimo podatke za tabelo z radii $sqlVrednosti = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ $i=1; # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } // če ni naslova vzamemo naslov2, če ne pa variable $stringCell_title = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); // še dodamo textbox če je polj other $_txt = ''; $stringCell_title .= $_txt; $tableHeader_base = "\\trowd\\trgaph12\\trleft0\\trrh262"; $tableHeader_width = "\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\ql\cf0 ".$this->enkaEncode($stringCell_title)."\\cf0\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $border = false; $sqlVsehVrednsti = sisplet_query("SELECT id, part FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY part, vrstni_red"); while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)){ //izris srednjega borderja if($border == false && $rowVsehVrednosti['part'] == 2){ $border = true; $leftBorder = '\clbrdrl\brdrs\brdrw10'; } else $leftBorder = ''; $full = false; if($spremenljivke['tip'] == 6){ $tableHeader_width .= "\clvertalc".$leftBorder."\\cellx". ( $i * 800 +$defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio.png", "15")."}\\cell"; } elseif($spremenljivke['tip'] == 16){ $tableHeader_width .= "\clvertalc".$leftBorder."\\cellx". ( $i * 800 +$defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox.png", "15")."}\\cell"; } $i++; } $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); } $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); } // Izpis mesanega multigrida function displayGridMultiple($spremenljivke){ $this->rtf->MyRTF .= "{\\par\\fs22"; $defw_full = 10500; if($rowStVrednost[0] < 6){ $defw_fc = 4300; // first cell width } else{ $defw_fc = 2000; // first cell width } $sqlStVrednosti = sisplet_query("SELECT count(*) FROM srv_grid g, srv_grid_multiple m WHERE m.spr_id=g.spr_id AND m.parent='".$spremenljivke['id']."'"); $rowStVrednost = mysqli_fetch_array($sqlStVrednosti); $kolon = $rowStVrednost['count(*)'] + 1; $w_oc = ( $defw_full - $defw_fc ) / $kolon; $defw_max = floor($w_oc); $tableHeader_base = "\\trowd\\trhdr\\trgaph20\\trleft0\\trrh162"; $tableHeader_width = "\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\qc{}\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $sqlM = sisplet_query("SELECT * FROM srv_grid_multiple WHERE parent='".$spremenljivke['id']."' ORDER BY vrstni_red"); $multiple = array(); while ($rowM = mysqli_fetch_array($sqlM)) { $multiple[] = $rowM['spr_id']; } $sqlVsehVrednsti = sisplet_query("SELECT g.id,g.naslov,g.variable,m.vrstni_red FROM srv_grid g, srv_grid_multiple m WHERE m.parent='".$spremenljivke['id']."' AND g.spr_id=m.spr_id ORDER BY m.vrstni_red"); $sqlMultiple = sisplet_query("SELECT g.*, s.tip, s.enota, s.dostop FROM srv_grid g, srv_grid_multiple m, srv_spremenljivka s WHERE s.id=g.spr_id AND g.spr_id=m.spr_id AND m.spr_id IN (".implode($multiple, ',').") ORDER BY m.vrstni_red, g.vrstni_red"); $rowCnt = 0; while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)) { $rowCnt++; $tableHeader_width .= "\\cellx". ( $rowCnt * $defw_max + $defw_fc ); # priredimo naslov če prevajamo anketo $rowMultiple = mysqli_fetch_array($sqlMultiple); $naslov = $this->srv_language_grid($rowMultiple['spr_id'], $rowMultiple['id']); if ($naslov != '') { $rowVsehVrednosti['naslov'] = $naslov; } // če ni naslova vzamemo variable $stringHeader_title = $this->enkaEncode( ( $rowVsehVrednosti['naslov'] ) ? $rowVsehVrednosti['naslov'] : $rowVsehVrednosti['variable'] ); $tableHeader_title .= "\\pard\\intbl\\qc{".$this->enkaEncode($stringHeader_title)."}\\cell"; } // izpišemo header celice $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); // loopamo skozi vrstice in pripravimo podatke za tabelo z radii $row_count = 1; $sqlVrednosti = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red"); while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ $i=1; // barva vrstice $row_color = ($row_count%2 == 1) ? '\\clcbpat18' : ''; # po potrebi prevedemo naslov $naslov = $this->srv_language_vrednost($rowVrednost['id']); if ($naslov != '') { $rowVrednost['naslov'] = $naslov; } // če ni naslova vzamemo naslov2, če ne pa variable $stringCell_title = $this->enkaEncode( ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ); $tableHeader_base = "\\trowd\\trgaph12\\trleft0\\trrh262"; $tableHeader_width = $row_color."\\cellx".$defw_fc; $tableHeader_title = "\\pard\\intbl\\ql\cf0 ".$this->enkaEncode($stringCell_title)."\\cf0\\cell"; $tableHeader_finish = "\\pard\\intbl\\row"; $sqlVsehVrednsti = sisplet_query("SELECT g.id AS id, s.tip AS tip, m.vrstni_red AS vrstni_red FROM srv_grid g, srv_spremenljivka s, srv_grid_multiple m WHERE m.parent='".$spremenljivke['id']."' AND m.spr_id=s.id AND s.id=g.spr_id ORDER BY m.vrstni_red"); while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)){ $full = false; if($rowVsehVrednosti['tip'] == 6){ $tableHeader_width .= "\clvertalc".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("radio.png", "15")."}\\cell"; } elseif($rowVsehVrednosti['tip'] == 16){ $tableHeader_width .= "\clvertalc".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); if($full) $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox2.png", "15")."}\\cell"; else $tableHeader_title .= "\\pard\\intbl\\qc{". $this->rtf->ImageToString("checkbox.png", "15")."}\\cell"; } else{ $tableHeader_width .= "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10".$row_color."\\cellx". ( $i * $defw_max + $defw_fc ); $tableHeader_width .= '\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10'; $tableHeader_title .= '\\pard\\intbl'.$this->rtf->color(12).' '.$this->rtf->color(0).'\qc{}\\cell'; } $i++; } $this->rtf->MyRTF .= $this->rtf->enkaEncode($tableHeader_base.$tableHeader_width.$tableHeader_title.$tableHeader_finish); $row_count++; } $this->rtf->MyRTF .= "}"; $this->rtf->new_line(1); } function createFrontPage(){ global $lang; if ($this->language != -1) { SurveySetting::getInstance()->Init($this->anketa['id']); $_lang = '_'.$this->language; $srv_anketa_naslov = SurveySetting::getInstance()->getSurveyMiscSetting('srvlang_srv_novaanketa_kratkoime'.$_lang); } else{ $srv_anketa_naslov = SurveyInfo::getInstance()->getSurveyAkronim(); } $this->rtf->new_line(10); if($this->allResults == 1){ $this->rtf->TextCell($this->rtf->bold(1).$this->enkaEncode($srv_anketa_naslov).$this->rtf->bold(0).'\\line\n '.$lang['export_firstpage_results'], array('width' => 9500, 'height' => 3, 'align' => 'center', 'valign' => 'middle' , 'border' => array('top','bottom', 'left','right'), 'colorF' => "0", 'colorB' => "0" ) ); } elseif($this->allResults == 2){ $this->rtf->TextCell($this->rtf->bold(1).$this->enkaEncode($srv_anketa_naslov).$this->rtf->bold(0).'\\line\n '.$lang['srv_testiranje_komentarji'], array('width' => 9500, 'height' => 3, 'align' => 'center', 'valign' => 'middle' , 'border' => array('top','bottom', 'left','right'), 'colorF' => "0", 'colorB' => "0" ) ); } else{ $this->rtf->TextCell($this->enkaEncode($srv_anketa_naslov), array('width' => 9500, 'height' => 3, 'align' => 'center', 'valign' => 'middle' , 'border' => array('top','bottom', 'left','right'), 'colorF' => "0", 'colorB' => "0" ) ); } $this->rtf->new_line(3); // dodamo info: $this->rtf->TextCell("", array('width' => 9500, 'height' => 1, 'align' => 'left', 'valign' => 'bottom' , 'border' => array('bottom'),'colorF' => "0" ) ); $infoTable = array(); array_push( $infoTable, array( $lang['export_firstpage_shortname'].': '.$this->enkaEncode(SurveyInfo::getInstance()->getSurveyTitle()), "" ) ); if ( SurveyInfo::getInstance()->getSurveyTitle() != SurveyInfo::getInstance()->getSurveyAkronim() ) array_push( $infoTable, array( $lang['export_firstpage_longname'].': '.$this->enkaEncode($srv_anketa_naslov), "" ) ); array_push( $infoTable, array( $lang['export_firstpage_qcount'].': '.SurveyInfo::getInstance()->getSurveyQuestionCount(), "" ) ); // Aktiviranost $activity = SurveyInfo:: getSurveyActivity(); $_last_active = end($activity); if (SurveyInfo::getSurveyColumn('active') == 1) { array_push( $infoTable, array( $this->rtf->color(11).$this->enkaEncode($lang['srv_anketa_active2']).$this->rtf->color(0), "") ); } else { # preverimo ali je bila anketa že aktivirana if (!isset($_last_active['starts'])) { # anketa še sploh ni bila aktivirana array_push( $infoTable, array( $this->rtf->color(17).$this->enkaEncode($lang['srv_survey_non_active_notActivated']).$this->rtf->color(0), "") ); } else { # anketa je že bila aktivirna ampak je sedaj neaktivna array_push( $infoTable, array( $this->rtf->color(17).$this->enkaEncode($lang['srv_survey_non_active']).$this->rtf->color(0), "") ); } } // Aktivnost if( count($activity) > 0 ){ array_push( $infoTable, array( $lang['export_firstpage_active_from'].': '.SurveyInfo::getInstance()->getSurveyStartsDate(), $lang['export_firstpage_active_until'].': '.SurveyInfo::getInstance()->getSurveyExpireDate() ) ); } array_push( $infoTable, array( $lang['export_firstpage_author'].': '.SurveyInfo::getInstance()->getSurveyInsertName(), $lang['export_firstpage_edit'].': '.SurveyInfo::getInstance()->getSurveyEditName() ) ); array_push( $infoTable, array( $lang['export_firstpage_date'].': '.SurveyInfo::getInstance()->getSurveyInsertDate(), $lang['export_firstpage_date'].': '.SurveyInfo::getInstance()->getSurveyEditDate() ) ); array_push( $infoTable, array( $lang['export_firstpage_desc'].': '.SurveyInfo::getInstance()->getSurveyInfo(), "" ) ); $this->rtf->TableFromArray( array( 4750, 4750 ), $infoTable, array('spacer' => 0)); if($this->allResults != 1) $this->rtf->new_page(); } function enkaEncode($text) { global $site_url; // preverimo text za img tage in jih zamenjamo z ustrezno sliko $pattern = '/]+src[\\s=\'"]'; $pattern .= '+([^"\'>\\s]+)/is'; if(preg_match($pattern, $text, $match, PREG_OFFSET_CAPTURE)){ // relativna pot if(substr($match[1][0], 0, 1) == '/') $image = $site_url.$match[1][0]; else $image = $match[1][0]; $file = @file_get_contents($image); // Resizamo sliko na pravo velikost $imgSize = getimagesize($image); $origHeight = $imgSize[1]; $origWidth = $imgSize[0]; // Dobimo nastavljeno visino slike $pattern = '/]+height[\\s=\'"]'; $pattern .= '+([^"\'>\\s]+)/is'; preg_match($pattern, $text, $match, PREG_OFFSET_CAPTURE); $height = round($match[1][0] / $origHeight) * 100; // Dobimo nastavljeno sirino slike $pattern = '/]+width[\\s=\'"]'; $pattern .= '+([^"\'>\\s]+)/is'; preg_match($pattern, $text, $match, PREG_OFFSET_CAPTURE); $width = round($match[1][0] / $origWidth) * 100; $result .= "{"; $result .= "\\pict\\jpegblip\\picscalex".$width."\\picscaley".$height."\\bliptag132000428 "; $result .= trim(bin2hex($file)); $result .= "\n}\n"; $text = preg_replace("/]+\>/i", $result, $text); } // popravimo sumnike ce je potrebno $text = html_entity_decode($text, ENT_NOQUOTES, 'UTF-8'); $transliterationTable = array( 'à' => 'a', 'À' => 'A', 'è' => 'e', 'È' => 'E', 'ì' => 'i', 'Ì' => 'I', 'ò' => 'o', 'Ò' => 'O', 'ù' => 'u', 'Ù' => 'U', 'ø' => 'o', 'Ø' => 'O', 'å' => 'a', 'Å' => 'A', 'Æ' => 'AE', 'æ' => 'ae' ); $text = str_replace(array_keys($transliterationTable), array_values($transliterationTable), $text); return strip_tags($text); } /* Skrajsa niz in doda ... nakoncu * snippet(phrase,[max length],[phrase tail]) * snippetgreedy(phrase,[max length before next space],[phrase tail]) * * iz: http://snipplr.com/view/9520/php-substring-without-breaking-words/ */ function snippet($text,$length=64,$tail="...") { $text = trim($text); $txtl = strlen($text); if($txtl > $length) { for($i=1;$text[$length-$i]!=" ";$i++) { if($i == $length) { return substr($text,0,$length) . $tail; } } $text = substr($text,0,$length-$i+1) . $tail; } return $text; } function setGrupa($grupa) {$this->grupa = $grupa;} function getGrupa() {return $this->grupa;} function setUserId($usrId) {$this->usrId = $usrId;} function getUserId() {return ($this->usrId)?$this->usrId:false;} function setDisplayFrontPage($display) {$this->pi['displayFrontPage'] = $display;} function getDisplayFrontPage() {return ($this->pi['displayFrontPage'] == true || $this->pi['displayFrontPage'] == 1);} /** * @desc preveri ali so na trenutni grupi prikazana vprasanja (zaradi branchinga) */ function checkGrupa () { $sql = sisplet_query("SELECT id FROM srv_spremenljivka WHERE gru_id = '".$this->grupa."'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); while ($row = mysqli_fetch_array($sql)) { if ($this->checkSpremenljivka($row['id'])) return true; } return false; } /** * @desc preveri ali je spremenljivka vidna (zaradi branchinga) */ function checkSpremenljivka ($spremenljivka) { $sql = sisplet_query("SELECT * FROM srv_spremenljivka WHERE id = '".$spremenljivka."'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); if ($row['visible'] == 0) return false; $sql1 = sisplet_query("SELECT * FROM srv_branching WHERE element_spr = '".$spremenljivka."'"); if (!$sql1) echo mysqli_error($GLOBALS['connect_db']); $row1 = mysqli_fetch_array($sql1); /*if (!$this->checkIf($row1['parent'])) return false;*/ return true; } /** * @desc preveri ali se elementi v podanem IFu prikazejo ali ne */ function checkIf ($if) { if ($if == 0) return true; // preverimo po strukturi navzgor $sql = sisplet_query("SELECT * FROM srv_branching WHERE element_if = '".$if."'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); if (!$this->checkIf($row['parent'])) return false; // ce je IF oznacen kot blok, potem se vedno prikaze $sql = sisplet_query("SELECT * FROM srv_if WHERE id = '$if'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); if ($row['tip'] == 1) return true; $eval = "if ("; $sql = sisplet_query("SELECT * FROM srv_condition WHERE if_id = '$if' ORDER BY vrstni_red ASC"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $i = 0; // zgeneriramo pogoje z oklepaji, ki jih potem spustimo skozi eval while ($row = mysqli_fetch_array($sql)) { if ($i++ != 0) if ($row['conjunction'] == 0) $eval .= ' && '; else $eval .= ' || '; if ($row['negation'] == 1) $eval .= ' ! '; for ($i=1; $i<=$row['left_bracket']; $i++) $eval .= ' ( '; if ($this->checkCondition($row[id])) $eval .= ' true '; else $eval .= ' false '; for ($i=1; $i<=$row['right_bracket']; $i++) $eval .= ' ) '; } $eval .= ") return true; else return false; "; // ne glih best practice, ampak takle mamo... return eval($eval); } /** * @desc preveri podani condition */ function checkCondition ($condition) { $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); // obicne spremenljivke if ($row['spr_id'] > 0) { $sql2 = sisplet_query("SELECT * FROM srv_spremenljivka WHERE id = '$row[spr_id]'"); $row2 = mysqli_fetch_array($sql2); // radio, checkbox, dropdown in multigrid if ($row2['tip'] <= 3 || $row2['tip'] == 6) { // obicne spremenljivke if ($row['vre_id'] == 0) { $sql3 = sisplet_query("SELECT * FROM srv_condition_vre c, srv_data_vrednost".$this->db_table." v WHERE c.cond_id='$condition' AND c.vre_id=v.vre_id AND v.spr_id='$row[spr_id]' AND usr_id='".$this->getUserId()."'"); if ($row['operator'] == 0 && mysqli_num_rows($sql3) == 0) return false; elseif ($row['operator'] == 1 && mysqli_num_rows($sql3) > 0) return false; // multigrid } elseif ($row['vre_id'] > 0) { $sql3 = sisplet_query("SELECT * FROM srv_condition_grid c, srv_data_grid".$this->db_table." d WHERE c.cond_id='$condition' AND d.spr_id='$row[spr_id]' AND c.grd_id=d.grd_id AND d.usr_id='".$this->getUserId()."'"); if (!$sql3) echo mysqli_error($GLOBALS['connect_db']); if ($row['operator'] == 0 && !mysqli_num_rows($sql3) > 0) return false; elseif ($row['operator'] == 1 && !mysqli_num_rows($sql3) == 0) return false; } // number in text } else { $sql3 = sisplet_query("SELECT * FROM srv_data_text".$this->db_table." WHERE spr_id='$row[spr_id]' AND usr_id='".$this->getUserId()."'"); if (!$sql3) echo mysqli_error($GLOBALS['connect_db']); $row3 = mysqli_fetch_array($sql3); if ($row['operator'] == 0 && !($row3['text'] == $row['text'])) return false; elseif ($row['operator'] == 1 && !($row3['text'] != $row['text'])) return false; elseif ($row['operator'] == 2 && !($row3['text'] < $row['text'])) return false; elseif ($row['operator'] == 3 && !($row3['text'] <= $row['text'])) return false; elseif ($row['operator'] == 4 && !($row3['text'] > $row['text'])) return false; elseif ($row['operator'] == 5 && !($row3['text'] >= $row['text'])) return false; } // recnum } elseif ($row['spr_id'] == -1) { $sqlu = sisplet_query("SELECT * FROM srv_user WHERE id = '".$this->getUserId()."'"); $rowu = mysqli_fetch_array($sqlu); if (!($rowu['recnum'] % $row['modul'] == $row['ostanek'])) return false; } return true; } /** * @desc poisce naslednjo stran - grupo, 0 pomeni konec */ function findNextGrupa() { //vrstni red trenutne grupe if ($this->grupa > 0) { $sql = sisplet_query("SELECT * FROM srv_grupa WHERE id = '".$this->grupa."'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['vrstni_red']; } else { $vrstni_red = 0; } $sql = sisplet_query("SELECT * FROM srv_grupa WHERE ank_id='".$this->anketa['id']."' AND vrstni_red>'".$vrstni_red."' ORDER BY vrstni_red ASC LIMIT 1"); // naslednja stran if (mysqli_num_rows($sql) > 0) { $row = mysqli_fetch_array($sql); return $row['id']; } // konec else { return 0; } } // preverja ce je v stringu img in vrne razbit niz ce je function checkImage($text) { $textArray = array(); $pattern = '/]+src[\\s=\'"]'; $pattern .= '+([^"\'>\\s]+)/is'; if(preg_match($pattern, $text, $match, PREG_OFFSET_CAPTURE)){ $textArray['image'] = $match[1][0]; $text = preg_replace("/]+\>/i", "", $text); $textArray['text1'] = substr($text, 0, $match[0][1]); $textArray['text2'] = substr($text, $match[0][1]); } return $textArray; } function displayIf($if){ global $lang; $sql_if = sisplet_query("SELECT * FROM srv_if WHERE id = '$if'"); $row_if = mysqli_fetch_array($sql_if); // Blok if($row_if['tip'] == 1) $output = strtoupper($lang['srv_block']).' '; // Loop elseif($row_if['tip'] == 2) $output = strtoupper($lang['srv_loop']).' '; // IF else $output = 'IF '; $sql_if = sisplet_query("SELECT * FROM srv_if WHERE id = '$if'"); $row_if = mysqli_fetch_array($sql_if); $output .= '('.$row_if['number'].') '; $sql = Cache::srv_condition($if); $bracket = 0; $i = 0; while ($row = mysqli_fetch_array($sql)) { if ($i++ != 0) if ($row['conjunction'] == 0) $output .= ' and '; else $output .= ' or '; if ($row['negation'] == 1) $output .= ' NOT '; for ($i=1; $i<=$row['left_bracket']; $i++) $output .= ' ( '; // obicajne spremenljivke if ($row['spr_id'] > 0) { $row2 = Cache::srv_spremenljivka($row['spr_id']); // obicne spremenljivke if ($row['vre_id'] == 0) { $row1 = Cache::srv_spremenljivka($row['spr_id']); // multigrid } elseif ($row['vre_id'] > 0) { $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE id = '$row[vre_id]'"); $row1 = mysqli_fetch_array($sql1); } else $row1 = null; $output .= $row1['variable']; // radio, checkbox, dropdown in multigrid if (($row2['tip'] <= 3 || $row2['tip'] == 6) && ($row['spr_id'] || $row['vre_id'])) { if ($row['operator'] == 0) $output .= ' = '; else $output .= ' != '; $output .= '['; // obicne spremenljivke if ($row['vre_id'] == 0) { $sql2 = sisplet_query("SELECT * FROM srv_condition_vre c, srv_vrednost v WHERE cond_id='$row[id]' AND c.vre_id=v.id"); $j = 0; while ($row2 = mysqli_fetch_array($sql2)) { if ($j++ != 0) $output .= ', '; $output .= $row2['variable']; } // multigrid } elseif ($row['vre_id'] > 0) { $sql2 = sisplet_query("SELECT g.* FROM srv_condition_grid c, srv_grid g WHERE c.cond_id='$row[id]' AND c.grd_id=g.id AND g.spr_id='$row[spr_id]'"); $j = 0; while ($row2 = mysqli_fetch_array($sql2)) { if ($j++ != 0) $output .= ', '; $output .= $row2['variable']; } } $output .= ']'; // textbox in nubmer mata drugacne pogoje in opcije } elseif ($row2['tip'] == 4 || $row2['tip'] == 21 || $row2['tip'] == 7 || $row2['tip'] == 22) { if ($row['operator'] == 0) $output .= ' = '; elseif ($row['operator'] == 1) $output .= ' <> '; elseif ($row['operator'] == 2) $output .= ' < '; elseif ($row['operator'] == 3) $output .= ' <= '; elseif ($row['operator'] == 4) $output .= ' > '; elseif ($row['operator'] == 5) $output .= ' >= '; $output .= '\''.$row['text'].'\''; } // recnum } elseif ($row['spr_id'] == -1) { $output .= 'mod(recnum, '.$row['modul'].') = '.$row['ostanek']; } for ($i=1; $i<=$row['right_bracket']; $i++) $output .= ' ) '; } if ($row_if['label'] != '') { $output .= ' ('; $output .= ' '.$row_if['label'].' '; $output .= ') '; } $this->rtf->add_text($this->rtf->bold(1).$this->enkaEncode($output).$this->rtf->bold(0)); } /** * prevod za srv_spremenljivka */ function srv_language_spremenljivka ($spremenljivka) { if ($this->language != -1) { $sqll = sisplet_query("SELECT * FROM srv_language_spremenljivka WHERE ank_id='".$this->anketa['id']."' AND spr_id='".$spremenljivka['id']."' AND lang_id='".$this->language."'"); $rowl = mysqli_fetch_array($sqll); return $rowl; } return false; } /** * vrne prevod za srv_vrednost * * @param mixed $vrednost */ function srv_language_vrednost ($vrednost) { if ($this->language != -1) { $sqll = sisplet_query("SELECT * FROM srv_language_vrednost WHERE ank_id='".$this->anketa['id']."' AND vre_id='".$vrednost."' AND lang_id='".$this->language."'"); $rowl = mysqli_fetch_array($sqll); if ($rowl['naslov'] != '') return strip_tags($rowl['naslov']); } return false; } /** * vrne prevod za srv_grid * * @param mixed $vrednost */ function srv_language_grid ($spremenljivka, $grid) { if ($this->language != -1) { $sqll = sisplet_query("SELECT * FROM srv_language_grid WHERE ank_id='".$this->anketa['id']."' AND spr_id='".$spremenljivka."' AND grd_id='".$grid."' AND lang_id='".$this->language."'"); $rowl = mysqli_fetch_array($sqll); if ($rowl['naslov'] != '') return $rowl['naslov']; } return false; } /** * vrne prevod za uvod * */ function srv_language_intro () { // Prevedemo uvod ce je slucajno potrebno if ($this->language != -1) { $sql1 = sisplet_query("SELECT naslov FROM srv_language_spremenljivka WHERE ank_id='".$this->anketa['id']."' AND spr_id='-1' AND lang_id='".$this->language."'"); $row1 = mysqli_fetch_array($sql1); if ($row1['naslov'] != '') return strip_tags($row1['naslov']); } return false; } } ?>