2106 lines
80 KiB
PHP
2106 lines
80 KiB
PHP
<?php
|
|
/*
|
|
* Created on 28.2.2009
|
|
*
|
|
*/
|
|
require("class.enka.rtf.php");
|
|
require_once('../../vendor/autoload.php');
|
|
|
|
|
|
define("FNT_TIMES", "Times New Roman", true);
|
|
define("FNT_ARIAL", "Arial", true);
|
|
|
|
define("FNT_MAIN_TEXT", FNT_TIMES, true);
|
|
define("FNT_QUESTION_TEXT", FNT_TIMES, true);
|
|
define("FNT_HEADER_TEXT", FNT_TIMES, true);
|
|
|
|
define("FNT_MAIN_SIZE", 12, true);
|
|
define("FNT_QUESTION_SIZE", 10, true);
|
|
define("FNT_HEADER_SIZE", 10, true);
|
|
|
|
|
|
class RtfIzvoz {
|
|
|
|
var $anketa;// = array(); // trenutna anketa
|
|
var $grupa = null; // trenutna grupa
|
|
var $usrId = null; // trenutni user
|
|
var $spremenljivka; // trenutna spremenljivka
|
|
var $usr_id; // ID trenutnega uporabnika
|
|
var $printPreview = false; // ali kliče konstruktor
|
|
var $pi=array('canCreate'=>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("<blockquote style=\"margin-left:20px\">", $vsebina);
|
|
|
|
$this->rtf->add_text($this->enkaEncode($odgovori[0]));
|
|
$this->rtf->new_line(2);
|
|
|
|
unset($odgovori[0]);
|
|
foreach($odgovori as $odgovor){
|
|
|
|
$odgovor = explode('<br />', $odgovor);
|
|
$avtor = explode('</b> ', $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'].'<br/>';
|
|
}*/
|
|
|
|
}
|
|
|
|
else {
|
|
//echo $lang['srv_no_comments'].'<br/>';
|
|
}
|
|
}
|
|
|
|
// 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 '<div style="float:left; width:'.(100/$stolpci).'%">';
|
|
$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 = '/<img[^>]+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 = '/<img[^>]+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 = '/<img[^>]+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("/<img[^>]+\>/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 = '/<img[^>]+src[\\s=\'"]';
|
|
$pattern .= '+([^"\'>\\s]+)/is';
|
|
|
|
if(preg_match($pattern, $text, $match, PREG_OFFSET_CAPTURE)){
|
|
$textArray['image'] = $match[1][0];
|
|
|
|
$text = preg_replace("/<img[^>]+\>/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;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
?>
|