2039 lines
77 KiB
PHP
2039 lines
77 KiB
PHP
<?php
|
||
|
||
/**
|
||
*
|
||
* Class ki skrbi za izris posamezne tabele analiz
|
||
*
|
||
*
|
||
*/
|
||
|
||
|
||
include('../../vendor/autoload.php');
|
||
define("MAX_STRING_LENGTH", 20);
|
||
|
||
|
||
class LatexAnalysisElement{
|
||
|
||
var $anketa; // ID ankete
|
||
var $spremenljivka; // ID spremenljivke za katero izrisujemo frekvence
|
||
protected $spid;
|
||
private $headFileName = null; # pot do header fajla
|
||
private $dataFileName = null; # pot do data fajla
|
||
private $dataFileStatus = null; # status data datoteke
|
||
private $CID = null; # class za inkrementalno dodajanje fajlov
|
||
|
||
var $current_loop = 'undefined';
|
||
|
||
protected $texNewLine = '\\\\ ';
|
||
protected $horizontalLineTex = ' \hline ';
|
||
protected $numbering = 0; // ostevillcevanje vprasanj
|
||
protected $skin;
|
||
protected $frontpage;
|
||
protected $showLegenda;
|
||
protected $hideEmpty;
|
||
protected $hideAllSystem;
|
||
|
||
protected $export_subtype;
|
||
protected $export_format;
|
||
|
||
public $crosstabClass = null; //crosstab class
|
||
protected $crossData1;
|
||
protected $crossData2;
|
||
|
||
public $multiCrosstabClass = null; // crosstab class
|
||
|
||
protected $meansClass;
|
||
|
||
public $breakClass = null; // break class
|
||
protected $spr = 0; // spremenljivka za katero delamo razbitje
|
||
protected $seq; // sekvenca
|
||
protected $break_percent; // opcija za odstotke
|
||
public $break_charts = 0; // ali prikazujemo graf ali tabelo za razbitje
|
||
|
||
protected $sessionData; // podatki ki so bili prej v sessionu - za nastavitve, ki se prenasajo v izvoze...
|
||
|
||
protected $user_id;
|
||
protected $from;
|
||
protected $exportClass; // instanca razreda v katerem izrisujemo PDF
|
||
protected $analizaClass; // instanca razreda kjer imamo analize (crosstab, means, ttest...)
|
||
|
||
protected $path2Images;
|
||
protected $path2Charts;
|
||
|
||
|
||
//function __construct($anketa, $spremenljivka){ //$anketa, $export_format, $fillablePdf, $usr_id
|
||
//function __construct($anketa, $export_format, $fillablePdf, $usr_id, $export_subtype){
|
||
//function __construct($anketa, $spremenljivka=0, $export_format, $fillablePdf, $spid=0, $headFileName, $export_subtype, $crossData1=0, $crossData2=0){ //$anketa, $export_format, $fillablePdf, $usr_id
|
||
function __construct($anketa=null, $spremenljivka=0, $export_format='', $fillablePdf = 0, $spid=0, $headFileName=null, $export_subtype=''){
|
||
global $site_path, $global_user_id, $admin_type, $lang;
|
||
|
||
$this->anketa = $anketa;
|
||
$this->spremenljivka = $spremenljivka;
|
||
$this->spid = $spid;
|
||
$this->headFileName = $headFileName;
|
||
$this->export_subtype = $export_subtype;
|
||
$this->export_format = $export_format;
|
||
|
||
|
||
//Za pobiranje nastavitev
|
||
SurveyUserSetting::getInstance()->Init($this->anketa, $global_user_id);
|
||
|
||
//Nastavitve - Splosni prikazi analiz
|
||
# ali izrisujemo legendo
|
||
$this->showLegenda = (SurveyDataSettingProfiles :: getSetting('analiza_legenda') == true) ? true : false;
|
||
$this->hideEmpty = SurveyDataSettingProfiles :: getSetting('hideEmpty');
|
||
//echo "this->hideEmpty: ".$this->hideEmpty."</br>";
|
||
$this->hideAllSystem = SurveyDataSettingProfiles :: getSetting('hideAllSystem');
|
||
//echo "hideAllSystem: ".$this->hideAllSystem."</br>";
|
||
|
||
//Nastavitve - Splosni prikazi analiz - konec
|
||
|
||
//Nastavitve grafov
|
||
$this->skin = SurveyUserSetting :: getInstance()->getSettings('default_chart_profile_skin');
|
||
$this->numbering = SurveyDataSettingProfiles :: getSetting('chartNumbering');
|
||
$this->frontpage = SurveyDataSettingProfiles :: getSetting('chartFP');
|
||
//echo "Numbering: ".$this->numbering."</br>";
|
||
//Nastavitve grafov - konec
|
||
|
||
//echo $this->spremenljivka['tip']."</br>";
|
||
//echo "Spid v construct: ".$spid."</br>";
|
||
//echo "Spid v construct: ".$this->spid."</br>";
|
||
//echo "head file name: ".$this->headFileName."</br>";
|
||
|
||
//echo 'To je construct tip analysis </br>';
|
||
|
||
}
|
||
|
||
|
||
|
||
public function displayTablesLatex($spid=0, $export_format=''){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
|
||
|
||
//echo 'funkcija displayTableLatex</br>';
|
||
//echo "Tip: ".$this->spremenljivka['tip']."</br>";
|
||
//echo "Export subtype: ".$this->export_subtype."</br>";
|
||
|
||
//TODO: Omenjene funkcije se ne potrebujejo
|
||
//# polovimo frekvence
|
||
//SurveyAnalysis::getFrequencys();
|
||
//
|
||
//#odstranimo sistemske variable
|
||
//SurveyAnalysis::removeSystemVariables();
|
||
//
|
||
//$vars_count = count(SurveyAnalysis::$_FILTRED_VARIABLES);
|
||
|
||
$tabela = '';
|
||
|
||
switch ( $this->export_subtype ){
|
||
case 'sums':
|
||
$sums = new AnalizaSums($this->anketa);
|
||
$tabela .= $sums->displayTableLatex($this->headFileName, $this->spremenljivka, $spid, $export_format, $this->hideEmpty);
|
||
break;
|
||
case 'freq':
|
||
$freq = new AnalizaFreq($this->anketa);
|
||
$tabela .= $freq->displayTableLatex($this->headFileName, $this->spremenljivka, $spid, $export_format, $this->hideEmpty);
|
||
break;
|
||
case 'desc':
|
||
$desc = new AnalizaDesc($this->anketa);
|
||
//$tabela .= $desc->displayTableLatex($this->headFileName, $this->spremenljivka, $spid, $export_format, $this->hideEmpty);
|
||
$tabela .= $desc->displayTableLatex($this->headFileName, $this->spremenljivka, $export_format, $this->hideEmpty);
|
||
break;
|
||
}
|
||
|
||
return $tabela;
|
||
}
|
||
|
||
public function displayCrosstabsTablesLatex($crossData1=null, $crossData2=null){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$tabela = '';
|
||
|
||
// preberemo nastavitve iz baze (prej v sessionu)
|
||
SurveyUserSession::Init($this->anketa['id']);
|
||
$this->sessionData = SurveyUserSession::getData('crosstab_charts');
|
||
|
||
//ustvarimo crosstab objekt in mu napolnimo variable (var1, var2, checkboxi)
|
||
$this->crosstabClass = new SurveyCrosstabs();
|
||
$this->crosstabClass->Init($this->anketa['id']);
|
||
|
||
for($i=0; $i<sizeof($crossData1)/3; $i++){
|
||
$index = $i * 3;
|
||
$this->crossData1[$i] = array($crossData1[$index],$crossData1[$index+1],$crossData1[$index+2]);
|
||
}
|
||
for($i=0; $i<sizeof($crossData2)/3; $i++){
|
||
$index = $i * 3;
|
||
$this->crossData2[$i] = array($crossData2[$index],$crossData2[$index+1],$crossData2[$index+2]);
|
||
}
|
||
|
||
switch ( $this->export_subtype ){
|
||
case 'crosstab':
|
||
$this->crosstabClass->_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
|
||
//echo "stevilo crosstab loopov: ".count($this->crosstabClass->_LOOPS)."</br>";
|
||
if (count($this->crosstabClass->_LOOPS) > 0) {
|
||
# če mamo zanke
|
||
foreach ( $this->crosstabClass->_LOOPS AS $loop) {
|
||
$this->crosstabClass->_CURRENT_LOOP = $loop;
|
||
$tabela .= $this->displayCrosstabsTable();
|
||
}
|
||
} else {
|
||
|
||
// loopamo cez vse izbrane variable in izrisemo vse tabele
|
||
$addPage = false;
|
||
$this->counter = 0;
|
||
for($j=0; $j<sizeof($this->crossData2); $j++){
|
||
for($i=0; $i<sizeof($this->crossData1); $i++){
|
||
|
||
if($addPage)
|
||
$this->pdf->AddPage();
|
||
else
|
||
$addPage = true;
|
||
|
||
/*$this->pdf->ln(5);*/
|
||
$this->crosstabClass->setVariables($this->crossData2[$j][0],$this->crossData2[$j][1],$this->crossData2[$j][2],$this->crossData1[$i][0],$this->crossData1[$i][1],$this->crossData1[$i][2]);
|
||
$tabela .= $this->displayCrosstabsTable($this->counter);
|
||
|
||
$this->counter++;
|
||
}
|
||
}
|
||
}
|
||
|
||
//$tabela .= $crosstab->displayTableLatex($this->headFileName, $this->spremenljivka, $spid, $export_format, $this->hideEmpty);
|
||
//$tabela .= 'To je podtip crosstab';
|
||
break;
|
||
}
|
||
//echo "tabela: ".$tabela."</br>";
|
||
return $tabela;
|
||
}
|
||
|
||
|
||
public function displayMultiCrosstabsTablesLatex(){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$tabela = '';
|
||
|
||
//ustvarimo multicrosstabs objekt
|
||
$this->multiCrosstabClass = new SurveyMultiCrosstabs($this->anketa['id']);
|
||
|
||
if (class_exists('AnalizaMultiCrosstab')) {
|
||
$multiCrossTabs = new AnalizaMultiCrosstab($this->anketa);
|
||
}
|
||
|
||
// Napolnimo variable s katerimi lahko operiramo
|
||
$this->multiCrosstabClass->getVariableList();
|
||
|
||
// Izris tabele
|
||
$tabela .= $multiCrossTabs->displayTable($this->multiCrosstabClass, $this->export_format);
|
||
|
||
// Izris legende
|
||
$tabela .= $multiCrossTabs->displayLegend($this->export_format);
|
||
|
||
return $tabela;
|
||
}
|
||
|
||
public function displayBreakTablesLatex(){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$tabela = '';
|
||
|
||
// preberemo nastavitve iz baze (prej v sessionu)
|
||
SurveyUserSession::Init($this->anketa['id']);
|
||
$this->sessionData = SurveyUserSession::getData();
|
||
|
||
// ustvarimo break objekt
|
||
$this->breakClass = new SurveyBreak($this->anketa['id']);
|
||
$this->spr = $this->sessionData['break']['spr'];
|
||
// poiščemo sekvenco
|
||
$this->seq = $this->sessionData['break']['seq'];
|
||
|
||
$this->break_percent = (isset($this->sessionData['break']['break_percent']) && $this->sessionData['break']['break_percent'] == false) ? false : true;
|
||
|
||
// ali prikazujemo tabele ali grafe
|
||
$this->break_charts = (isset($this->sessionData['break']['break_show_charts']) && (int)$this->sessionData['break']['break_show_charts'] == 1) ? 1 : 0;
|
||
|
||
if ($this->spr != 0){
|
||
|
||
if (class_exists('AnalizaBreak')) {
|
||
$break = new AnalizaBreak($this->anketa);
|
||
}
|
||
|
||
// poiščemo pripadajoče variable
|
||
$_spr_data = $this->breakClass->_HEADERS[$this->spr];
|
||
|
||
// poiščemo opcije
|
||
$options = $_spr_data['options'];
|
||
|
||
// za vsako opcijo posebej izračunamo povprečja za vse spremenljivke
|
||
$frequencys = null;
|
||
if (count($options) > 0) {
|
||
foreach ($options as $okey => $option) {
|
||
|
||
// zloopamo skozi variable
|
||
$okeyfrequencys = $this->breakClass->getAllFrequencys($okey, $this->seq, $this->spr);
|
||
if ($okeyfrequencys != null) {
|
||
if ($frequencys == null) {
|
||
$frequencys = array();
|
||
}
|
||
$frequencys[$okey] = $okeyfrequencys;
|
||
}
|
||
}
|
||
}
|
||
$tabela .= $break->displayBreak($this->spr, $this->seq, $frequencys, $this->breakClass, $this->break_charts, $this->export_format);
|
||
} else {
|
||
//$this->pdf->MultiCell(150, 5, $lang['srv_break_error_note_1'], 0, 'L', 0, 1, 0 ,0, true);
|
||
$tabela .= $lang['srv_break_error_note_1'];
|
||
}
|
||
|
||
//echo "TABELA: ".$tabela."</br>";
|
||
return $tabela;
|
||
}
|
||
|
||
public function displayMeanTablesLatex(){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$tabela = '';
|
||
|
||
// preberemo nastavitve iz baze (prej v sessionu)
|
||
SurveyUserSession::Init($this->anketa['id']);
|
||
$this->sessionData = SurveyUserSession::getData();
|
||
// ustvarimo means objekt
|
||
$this->meansClass = new SurveyMeans($this->anketa['id']);
|
||
|
||
$meanData1 = $this->sessionData['means']['means_variables']['variabla1'];
|
||
$meanData2 = $this->sessionData['means']['means_variables']['variabla2'];
|
||
|
||
$means = array();
|
||
|
||
if (meanData1 !== null && $meanData2 !== null) {
|
||
$variables1 = $meanData2;
|
||
$variables2 = $meanData1;
|
||
$c1=0;
|
||
$c2=0;
|
||
|
||
if (class_exists('AnalizaMean')) {
|
||
$mean = new AnalizaMean($this->anketa);
|
||
}
|
||
|
||
if(is_array($variables2) && count($variables2) > 0){
|
||
#prikazujemo ločeno
|
||
if ($this->sessionData['means']['meansSeperateTables'] == true || $this->sessionData['mean_charts']['showChart'] == '1') {
|
||
foreach ($variables2 AS $v_second) {
|
||
if (is_array($variables1) && count($variables1) > 0) {
|
||
foreach ($variables1 AS $v_first) {
|
||
$_means = $this->meansClass->createMeans($v_first, $v_second);
|
||
if ($_means != null) {
|
||
$means[$c1][0] = $_means;
|
||
}
|
||
$c1++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#prikazujemo skupaj
|
||
else {
|
||
foreach ($variables2 AS $v_second) {
|
||
if (is_array($variables1) && count($variables1) > 0) {
|
||
foreach ($variables1 AS $v_first) {
|
||
$_means = $this->meansClass->createMeans($v_first, $v_second);
|
||
if ($_means != null) {
|
||
$means[$c1][$c2] = $_means;
|
||
}
|
||
$c2++;
|
||
}
|
||
}
|
||
$c1++;
|
||
$c2=0;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
if (is_array($means) && count($means) > 0) {
|
||
$count = 0;
|
||
foreach ($means AS $mean_sub_grup) {
|
||
|
||
if($this->sessionData['mean_charts']['showChart'] == '1'){
|
||
//$this->displayMeansTable($mean_sub_grup);
|
||
$tabela .= $mean->displayMeansTable($mean_sub_grup, $this->meansClass, $this->export_format);
|
||
|
||
//$this->displayChart($count);
|
||
$tabela .= $mean->displayChart($count, $meanData1, $meanData2, $this->sessionData);
|
||
}
|
||
else{
|
||
$tabela .= $mean->displayMeansTable($mean_sub_grup, $this->meansClass, $this->export_format);
|
||
}
|
||
$count++;
|
||
}
|
||
}
|
||
}
|
||
|
||
//echo "tabela: ".$tabela."</br>";
|
||
return $tabela;
|
||
}
|
||
|
||
public function displayTTestTablesLatex(){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$tabela = '';
|
||
|
||
// preberemo nastavitve iz baze (prej v sessionu)
|
||
SurveyUserSession::Init($this->anketa['id']);
|
||
$this->sessionData = SurveyUserSession::getData();
|
||
|
||
// ustvarimo ttest objekt
|
||
$this->ttestClass = new SurveyTTest($this->anketa['id']);
|
||
|
||
if (class_exists('AnalizaTTest')) {
|
||
$tTest = new AnalizaTTest($this->anketa);
|
||
}
|
||
|
||
if (count($this->sessionData['ttest']['sub_conditions']) > 1 ) {
|
||
$variables1 = $this->ttestClass->getSelectedVariables();
|
||
if (count($variables1) > 0) {
|
||
foreach ($variables1 AS $v_first) {
|
||
$ttest = null;
|
||
$ttest = $this->ttestClass->createTTest($v_first, $this->sessionData['ttest']['sub_conditions']);
|
||
$tabela .= $tTest->displayTTestTable($ttest, $this->ttestClass, $this->export_format, $this->sessionData);
|
||
// Izrisemo graf za tabelo - zaenkrat samo admin
|
||
if(isset($this->sessionData['ttest_charts']['showChart']) && $this->sessionData['ttest_charts']['showChart'] == true){
|
||
$tabela .= $tTest->displayChart($this->sessionData, $this->ttestClass, $this->anketa);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//echo "tabela: ".$tabela."</br>";
|
||
return $tabela;
|
||
}
|
||
|
||
|
||
function displayCrosstabsTable() {
|
||
global $lang;
|
||
$tabela = '';
|
||
$crosstab = new AnalizaCrosstab($this->anketa, $this->crosstabClass, $this->counter);
|
||
$tabela .= $crosstab->showCrosstabsTable($this->crosstabClass, $this->export_format);
|
||
return $tabela;
|
||
}
|
||
|
||
|
||
public function displayChartLatex($spr_id_0=null){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$graf = '';
|
||
# preberemo header
|
||
if ($this->headFileName !== null) {
|
||
//polovimo podatke o nastavitvah trenutnega profila (missingi..)
|
||
//SurveyAnalysis::$missingProfileData = SurveyMissingProfiles::getProfile(SurveyAnalysis::$currentMissingProfile);
|
||
|
||
// Preverimo ce imamo zanke (po skupinah)
|
||
SurveyAnalysis::$_LOOPS = SurveyZankaProfiles::getFiltersForLoops();
|
||
if (class_exists('AnalizaCharts')) {
|
||
$chart = new AnalizaCharts($this->anketa, $this->export_format, $spr_id_0);
|
||
}
|
||
# če nimamo zank
|
||
if(count(SurveyAnalysis::$_LOOPS) == 0){
|
||
|
||
$graf .= $chart->displayCharts();
|
||
}
|
||
else{
|
||
// izrisemo samo eno tabelo iz enega loopa
|
||
if($this->current_loop > 0){
|
||
|
||
$loop = SurveyAnalysis::$_LOOPS[(int)$this->current_loop-1];
|
||
$loop['cnt'] = $this->current_loop;
|
||
SurveyAnalysis::$_CURRENT_LOOP = $loop;
|
||
|
||
// Izpisemo naslov zanke za skupino
|
||
/* $this->pdf->setFont('','B','10');
|
||
$this->pdf->ln(5);
|
||
$this->pdf->MultiCell(200, 5, $this->encodeText($lang['srv_zanka_note'].$loop['text']), 0, 'L', 0, 1, 0 ,0, true);
|
||
$this->pdf->ln(5);
|
||
$this->pdf->setFont('','','6'); */
|
||
|
||
//$graf .= $this->displayCharts();
|
||
$graf .= $chart->displayCharts();
|
||
|
||
}
|
||
// Izrisemo vse tabele spremenljivka (iz vseh loopov)
|
||
else{
|
||
$loop_cnt = 0;
|
||
# če mamo zanke
|
||
foreach(SurveyAnalysis::$_LOOPS AS $loop) {
|
||
$loop_cnt++;
|
||
$loop['cnt'] = $loop_cnt;
|
||
SurveyAnalysis::$_CURRENT_LOOP = $loop;
|
||
|
||
// Izpisemo naslov zanke za skupino
|
||
/* $this->pdf->setFont('','B','10');
|
||
$this->pdf->ln(5);
|
||
$this->pdf->MultiCell(200, 5, $this->encodeText($lang['srv_zanka_note'].$loop['text']), 0, 'L', 0, 1, 0 ,0, true);
|
||
$this->pdf->ln(5);
|
||
$this->pdf->setFont('','','6'); */
|
||
|
||
//$graf .= $this->displayCharts();
|
||
$graf .= $chart->displayCharts();
|
||
}
|
||
}
|
||
}
|
||
|
||
} // end if else ($_headFileName == null)
|
||
|
||
|
||
return $graf;
|
||
}
|
||
|
||
|
||
public function displayCreportLatex(){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
$creportLatex = '';
|
||
|
||
$creport = new AnalizaCReport($this->anketa, $this->export_format);
|
||
//$creport = new AnalizaCReport($this->anketa);
|
||
$anketaId = $this->anketa['id'];
|
||
|
||
|
||
//*******************************************************************
|
||
$creportProfile= $creport->getCreportProfile();
|
||
$what = 'creport_title_profile_'.$creportProfile;
|
||
|
||
$sqlT = sisplet_query("SELECT value FROM srv_user_setting_for_survey WHERE sid='$this->ank_id' AND uid='$this->usr_id' AND what='$what'");
|
||
|
||
if(mysqli_num_rows($sqlT) == 0){
|
||
$titleString = $lang['export_analisys_creport'].': '.SurveyInfo::getInstance()->getSurveyTitle();
|
||
}
|
||
else{
|
||
$rowT = mysqli_fetch_array($sqlT);
|
||
$titleString = $rowT['value'];
|
||
}
|
||
|
||
$naslovIzvoza = $this->encodeText($titleString);
|
||
//$creportLatex .= '\textbf{'.$naslovIzvoza.'}'.$this->texBigSkip.$this->texNewLine;
|
||
$creportLatex .= '\MakeUppercase{\huge \textbf{'.$naslovIzvoza.'}}'.$this->texBigSkip.$this->texNewLine;
|
||
|
||
if($this->export_format == 'pdf'){
|
||
$creportLatex .= '\begin{tableAnalysis}'; /*zacetek environmenta z manjsim fontom*/
|
||
}
|
||
|
||
if ($creport->getDataFileStatus() == FILE_STATUS_NO_DATA || $creport->getDataFileStatus() == FILE_STATUS_NO_FILE || $creport->getDataFileStatus() == FILE_STATUS_SRV_DELETED) {
|
||
$creportLatex .= 'NAPAKA!!! Manjkajo datoteke s podatki.'.$this->texNewLine;
|
||
}
|
||
else{
|
||
$sqlString = "SELECT * FROM srv_custom_report WHERE ank_id='$anketaId' AND usr_id='$global_user_id' AND profile='$creportProfile' ORDER BY vrstni_red ASC";
|
||
$sql = sisplet_query($sqlString);
|
||
if(mysqli_num_rows($sql) > 0){
|
||
// Loop po vseh dodanih elementih porocila
|
||
while($row = mysqli_fetch_array($sql)){
|
||
//echo "tipi spremenljivk: ".$row['type']."</br>";
|
||
|
||
switch($row['type']){
|
||
// sumarnik
|
||
case '1':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
$creportLatex .= $creport->displaySum($row);
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// frekvence
|
||
case '2':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
$creportLatex .= $creport->displayFreq($row);
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// opisne
|
||
case '3':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
$creportLatex .= $creport->displayDesc($row);
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// grafi
|
||
case '4':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
$creportLatex .= $creport->displayChart($row);
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// crosstab
|
||
case '5':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
// tabela
|
||
if($row['sub_type'] == '0'){
|
||
$creportLatex .= $creport->displayCrosstab($row);
|
||
}
|
||
// graf
|
||
else{
|
||
$creportLatex .= $creport->displayCrosstabChart($row);
|
||
}
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// mean
|
||
case '6':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
// tabela
|
||
if($row['sub_type'] == '0'){
|
||
$creportLatex .= $creport->displayMean($row);
|
||
}
|
||
// graf
|
||
else{
|
||
$creportLatex .= $creport->displayMeanChart($row);
|
||
}
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// ttest
|
||
case '7':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
// tabela
|
||
if($row['sub_type'] == '0')
|
||
$creportLatex .= $creport->displayTTest($row);
|
||
// graf
|
||
else
|
||
$creportLatex .= $creport->displayTTestChart($row);
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// text
|
||
case '8':
|
||
$creportLatex .= $creport->displayText($row['text']);
|
||
break;
|
||
|
||
// break
|
||
case '9':
|
||
// naslov elementa
|
||
$creportLatex .= $creport->displayTitle($row);
|
||
|
||
// tabela
|
||
if($row['sub_type'] == '0'){
|
||
$creportLatex .= $creport->displayBreak($row);
|
||
}
|
||
// graf
|
||
else{
|
||
$creportLatex .= $creport->displayBreakChart($row);
|
||
}
|
||
|
||
// Komentar elementa
|
||
$creportLatex .= $creport->displayComment($row['text']);
|
||
|
||
break;
|
||
|
||
// page break
|
||
/* case '-1':
|
||
if($this->pdf->getY() > 30)
|
||
$this->pdf->AddPage();
|
||
|
||
break; */
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if($this->export_format == 'pdf'){
|
||
$creportLatex .= '\end{tableAnalysis}'; /*zakljucek environmenta z manjsim fontom*/
|
||
}
|
||
|
||
//*******************************************************************
|
||
//echo $creportLatex."</br>";
|
||
return $creportLatex;
|
||
}
|
||
|
||
/*Moje funkcije*/
|
||
|
||
// Izrisujemo NAVADEN GRAF
|
||
public function displayChartsInLatex($spid=null, $type=0, $fromCharts=false, $anketa=null, $from='sums', $exportClass=null, $export_format='', $analizaClass=null){
|
||
global $site_path;
|
||
global $lang;
|
||
global $global_user_id;
|
||
|
||
//iniciacija spremenljivk
|
||
//$charts = '';
|
||
//$charts = '\begin{absolutelynopagebreak}'; //da se naslov in graf pojavljata na eni strani
|
||
$charts = ''; //da se naslov in graf pojavljata na eni strani
|
||
$this->anketa = $anketa;
|
||
$this->user_id = $global_user_id;
|
||
$this->from = $from;
|
||
$this->exportClass = $exportClass;
|
||
$this->export_format = $export_format;
|
||
|
||
if($analizaClass != null){
|
||
$this->analizaClass = $analizaClass;
|
||
}
|
||
|
||
$spremenljivka = SurveyAnalysis::$_HEADERS[$spid];
|
||
|
||
// preberemo nastavitve iz baze (prej v sessionu)
|
||
|
||
SurveyUserSession::Init($this->anketa['id']);
|
||
$this->sessionData = SurveyUserSession::getData();
|
||
|
||
// ce ga imamo v sessionu ga preberemo
|
||
if(isset($this->sessionData['charts'][$spid])){
|
||
|
||
// Napolnimo podatke za graf - rabimo za cache
|
||
if(count(SurveyAnalysis::$_LOOPS) == 0){
|
||
$settings = $this->sessionData['charts'][$spid];
|
||
|
||
}else{
|
||
$settings = $this->sessionData['charts'][$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']];
|
||
}
|
||
|
||
$DataSet = SurveyChart::getDataSet($spid, $settings);
|
||
|
||
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
|
||
if($DataSet == 0){
|
||
//self::displayEmptyWarning($spid);
|
||
return;
|
||
}
|
||
|
||
// preberemo ime slike iz sessiona
|
||
$imgName = $settings['name'];
|
||
|
||
}
|
||
// ce ga nimamo v sessionu
|
||
else{
|
||
// Napolnimo podatke za graf - rabimo za cache
|
||
$settings = SurveyChart::getDefaultSettings();
|
||
|
||
$DataSet = SurveyChart::getDataSet($spid, $settings);
|
||
|
||
// nimamo nobenih podatkov in imamo vklopljeno opcijo da ne prikazujemo praznih grafov - vrnemo 0
|
||
if($DataSet == 0){
|
||
//self::displayEmptyWarning($spid);
|
||
return;
|
||
}
|
||
|
||
$ID = SurveyChart::generateChartId($spid, $settings, $DataSet->GetNumerus());
|
||
|
||
$Cache = new pCache('pChart/Cache/');
|
||
$Cache = new pCache('../survey/pChart/Cache/');
|
||
$imgName = $Cache->GetHash($ID,$DataSet->GetData());
|
||
}
|
||
|
||
// Izrisemo naslov (v creportu ne, ker imamo drugacne naslove)
|
||
if($fromCharts){
|
||
|
||
$stevilcenje = ($this->exportClass->numbering == 1 ? $spremenljivka['variable'].' - ' : '');
|
||
$title = $stevilcenje . $spremenljivka['naslov'];
|
||
|
||
if(SurveyDataSettingProfiles :: getSetting('chartNumerusText') == 0){
|
||
$title .= ' (n = '.$DataSet->GetNumerus().')';
|
||
}
|
||
|
||
// Preverimo ce prebija slika stran
|
||
/* if(isset($this->sessionData['charts'][$spid])){
|
||
if(count(SurveyAnalysis::$_LOOPS) == 0)
|
||
$settings = $this->sessionData['charts'][$spid];
|
||
else
|
||
$settings = $this->sessionData['charts'][$spid][SurveyAnalysis::$_CURRENT_LOOP['cnt']];
|
||
|
||
$imgName = $settings['name'];
|
||
$size = getimagesize('pChart/Cache/'.$imgName);
|
||
$ratio = ($size[0] / 800) < 1 ? 1 : ($size[0] / 800);
|
||
$height = $size[1] / 5;
|
||
} */
|
||
|
||
//self::$exportClass->pdf->setFont('','b','6');
|
||
//self::$exportClass->pdf->MultiCell(165, 5, $title, 0, 'C', 0, 1, 0 ,0, true);
|
||
$boldedTitle = $this->returnBold($this->encodeText($title)).$this->texNewLine; //vrni boldan naslov in skoci v novo vrstico
|
||
|
||
if($spremenljivka['tip'] == 2){
|
||
//self::$exportClass->pdf->setFont('','','5');
|
||
//self::$exportClass->pdf->MultiCell(165, 1, $lang['srv_info_checkbox'], 0, 'C', 0, 1, 0 ,0, true);
|
||
$boldedSubTitle .= $lang['srv_info_checkbox'].$this->texNewLine;
|
||
}
|
||
//self::$exportClass->pdf->setFont('','','6');
|
||
}
|
||
|
||
|
||
|
||
// IZRIS GRAFA
|
||
$this->path2Charts = $site_path.'admin/survey/pChart/Cache/';
|
||
|
||
//kopiranje slik kot png, ker latex mora imeti extension za prikazovanje slike
|
||
//copy('pChart/Cache/'.$imgName,'pChart/Cache/'.$imgName.'.png');
|
||
|
||
##### ZA TESTIRANJE ureditev pretvorbe slike v pdf
|
||
chdir($this->path2Charts);
|
||
$pretvoriPng_v_Pdf = "/usr/bin/convert $imgName $imgName.pdf";
|
||
shell_exec($pretvoriPng_v_Pdf);
|
||
##### ZA TESTIRANJE ureditev pretvorbe slike v pdf - konec
|
||
|
||
$texImageOnly = " \\includegraphics[width=\linewidth, frame, scale=0.66]{".$this->path2Charts."".$imgName."} "; //latex za sliko
|
||
//$texImageOnly = " \\includegraphics[scale=0.66]{".$this->path2Charts."".$imgName."} "; //latex za sliko
|
||
//$texImageOnly = " \\includegraphics[scale=0.66, draft=false]{".$this->path2Charts."".$imgName."} "; //latex za sliko
|
||
//$texImageOnly = " \\includegraphics[scale=0.85]{".$this->path2Charts."".$imgName."} "; //latex za sliko
|
||
//echo "ime slike: $texImageOnly </br>";
|
||
|
||
|
||
$charts .= $this->returnCentered($boldedTitle.$boldedSubTitle.$texImageOnly, $export_format); //vrni sredinsko poravnana naslov in slika
|
||
|
||
# izpišemo še tekstovne odgovore za polja drugo
|
||
$_answersOther = $DataSet->GetOther();
|
||
if (count($_answersOther) > 0 && SurveyAnalysis::$_FILTRED_OTHER) {
|
||
foreach ($_answersOther AS $oAnswers) {
|
||
$spid = $oAnswers['spid'];
|
||
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
|
||
$_sequence = $_variable['sequence'];
|
||
if(count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid']) > 0){
|
||
$charts .= $this->outputOtherAnswers($oAnswers, '', $export_format);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
// Dodamo space (v creportu ne, ker imamo drugacen izpis)
|
||
//if($fromCharts)
|
||
//self::$exportClass->pdf->setY(self::$exportClass->pdf->getY() + 10);
|
||
|
||
//$charts .= '\end{absolutelynopagebreak}';
|
||
//echo "Charts: ".$charts."</br>";
|
||
return $charts;
|
||
}
|
||
|
||
|
||
#moja funkcija encodeText
|
||
function encodeText($text=''){
|
||
// popravimo sumnike ce je potrebno
|
||
//$text = html_entity_decode($text, ENT_NOQUOTES, 'UTF-8');
|
||
//$text = str_replace("š","š",$text);
|
||
//echo "Encoding ".$text."</br>";
|
||
|
||
//resevanje razbirajanja predolgih neprekinjenih besed in URL - spremenljivke za kasnejsi prilagojen izpis
|
||
$numOfWords = str_word_count($text, 0); //stevilo besed v besedilu
|
||
$numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu
|
||
$stringLength = strlen($text); //dolzina besedila
|
||
|
||
$findSpace = ' ';
|
||
$findHttp = 'http://';
|
||
$findHttps = 'https://';
|
||
$posHttp = strpos($text, $findHttp);
|
||
$posHttps = strpos($text, $findHttps);
|
||
$isURL = 0;
|
||
/* if($posHttp !== false || $posHttps !== false) { //imamo URL naslov
|
||
$isURL = 1;
|
||
} */
|
||
//resevanje razbirajanja predolgih neprekinjenih besed in URL - konec
|
||
|
||
if($text == ''){ //ce ni teksta, vrni se
|
||
return;
|
||
}
|
||
$textOrig = $text;
|
||
$findme = '<br />';
|
||
$findmeLength = strlen($findme);
|
||
$findImg = '<img';
|
||
$findImgLength = strlen($findImg);
|
||
|
||
$pos = strpos($text, $findme);
|
||
$posImg = strpos($text, $findImg);
|
||
|
||
//ureditev izrisa slike
|
||
if($posImg !== false){
|
||
$numOfImgs = substr_count($text, $findImg); //stevilo '<br />' v tekstu
|
||
$posImg = strpos($text, $findImg);
|
||
$textPrej = '';
|
||
$textPotem = '';
|
||
for($i=0; $i<$numOfImgs; $i++){
|
||
$posImg = strpos($text, $findImg);
|
||
$textPrej = substr($text, 0, $posImg); //tekst do img
|
||
$textPotem = substr($text, $posImg); //tekst po img, z vkljuceno hmlt kodo z img
|
||
$posImgEnd = strpos($textPotem, '/>'); //pozicija, kjer se konca html koda za img
|
||
$textPotem = substr($textPotem, $posImgEnd+strlen('/>')); //tekst od konca html kode za img dalje
|
||
|
||
//$text = $textPrej.' '.PIC_SIZE_ANS."{".$this->getImageName($text, 0, '<img')."}".' '.$textPotem;
|
||
$text = $textPrej.' '.PIC_SIZE_ANS."{".$this->path2Images."".$this->getImageName($text, 0, '<img')."}".' '.$textPotem;
|
||
|
||
}
|
||
|
||
//pred ureditvijo posebnih karakterjev, odstrani del teksta s kodo za sliko, da se ne pojavijo tezave zaradi imena datoteke od slike
|
||
$findImgCode = '\includegraphics';
|
||
$posOfImgCode = strpos($text, $findImgCode);
|
||
//echo $posOfImgCode."</br>";
|
||
$textToImgCode = substr($text, 0, $posOfImgCode); //tekst do $findImgCode
|
||
//echo $textToImgCode."</br>";
|
||
$textFromImgCode = substr($text, $posOfImgCode); //tekst po $findImgCode
|
||
//echo $textFromImgCode."</br>";
|
||
$findImgCodeEnd = '}';
|
||
//$posOfImgCodeEnd = strpos($text, $findImgCodeEnd);
|
||
$posOfImgCodeEnd = strpos($textFromImgCode, $findImgCodeEnd);
|
||
//echo $posOfImgCodeEnd."</br>";
|
||
$textAfterImgCode = substr($textFromImgCode, $posOfImgCodeEnd+1); //tekst po $findImgCodeEnd
|
||
//echo $textAfterImgCode."</br>";
|
||
$textOfImgCode = substr($text, $posOfImgCode, $posOfImgCodeEnd+1);
|
||
//echo $textOfImgCode."</br>";
|
||
|
||
$text = $textToImgCode.$textAfterImgCode;
|
||
|
||
//pred ureditvijo posebnih karakterjev, odstrani del teksta s kodo za sliko, da se ne pojavijo tezave zaradi imena datoteke od slike - konec
|
||
}
|
||
//ureditev izrisa slike - konec
|
||
|
||
//ureditev posebnih karakterjev za Latex http://www.cespedes.org/blog/85/how-to-escape-latex-special-characters, https://en.wikibooks.org/wiki/LaTeX/Special_Characters#Other_symbols
|
||
$text = str_replace('\\','\textbackslash{} ',$text);
|
||
//$text = str_replace('{','\{',$text);
|
||
//$text = str_replace('}','\}',$text);
|
||
$text = str_replace('$','\$ ',$text);
|
||
$text = str_replace('#','\# ',$text);
|
||
//$text = str_replace('%','\% ',$text);
|
||
$text = str_replace('%','\%',$text);
|
||
$text = str_replace('€','\euro',$text);
|
||
$text = str_replace('^','\textasciicircum{} ',$text);
|
||
//$text = str_replace('_','\_ ',$text);
|
||
$text = str_replace('_','\_',$text);
|
||
$text = str_replace('~','\textasciitilde{} ',$text);
|
||
|
||
//$text = str_replace('<','\textless ',$text);
|
||
$text = str_replace('<','\textless',$text);
|
||
//$text = str_replace('>','\textgreater ',$text);
|
||
$text = str_replace('>','\textgreater',$text);
|
||
$text = str_replace(' ',' ',$text);
|
||
if(strpos($text, '&')){ //ce je prisotno v besedilu &'
|
||
$text = str_replace('&','\& ',$text);
|
||
}else{
|
||
$text = str_replace('&','\& ',$text);
|
||
}
|
||
|
||
$andSymbolPresent = 0;
|
||
$posAndSymbolPresent = strpos($text,'&');
|
||
if($posAndSymbolPresent !== false){ //ce je v besedilu prisoten '&' zapisan kot '&'
|
||
$text = str_replace('&','\&',$text);
|
||
$andSymbolPresent = 1;
|
||
}
|
||
if($andSymbolPresent == 0){
|
||
$text = str_replace('&','\&',$text);
|
||
}
|
||
|
||
/* //$text = str_replace('<','\textless ',$text);
|
||
$text = str_replace('<','\textless',$text);
|
||
//$text = str_replace('>','\textgreater ',$text);
|
||
$text = str_replace('>','\textgreater',$text);
|
||
$text = str_replace(' ',' ',$text); */
|
||
//ureditev posebnih karakterjev za Latex - konec
|
||
|
||
//ureditev grskih crk
|
||
$text = str_replace('α','\textalpha ',$text);
|
||
$text = str_replace('β','\textbeta ',$text);
|
||
$text = str_replace('γ','\textgamma ',$text);
|
||
$text = str_replace('δ','\textdelta ',$text);
|
||
$text = str_replace('ε','\textepsilon ',$text);
|
||
$text = str_replace('ζ','\textzeta ',$text);
|
||
$text = str_replace('η','\texteta ',$text);
|
||
$text = str_replace('θ','\texttheta ',$text);
|
||
$text = str_replace('ι','\textiota ',$text);
|
||
$text = str_replace('κ','\textkappa ',$text);
|
||
$text = str_replace('λ','\textlambda ',$text);
|
||
$text = str_replace('μ','\textmugreek ',$text);
|
||
$text = str_replace('ν','\textnu ',$text);
|
||
$text = str_replace('ξ','\textxi ',$text);
|
||
//$text = str_replace('ο','\textomikron ',$text);
|
||
$text = str_replace('π','\textpi ',$text);
|
||
$text = str_replace('ρ','\textrho ',$text);
|
||
$text = str_replace('σ','\textsigma ',$text);
|
||
$text = str_replace('τ','\texttau ',$text);
|
||
$text = str_replace('υ','\textupsilon ',$text);
|
||
$text = str_replace('φ','\textphi ',$text);
|
||
$text = str_replace('χ','\textchi ',$text);
|
||
$text = str_replace('ψ','\textpsi ',$text);
|
||
$text = str_replace('ω','\textomega ',$text);
|
||
//ureditev grskih crk - konec
|
||
|
||
//ureditev preureditve html kode ul in li v latex itemize
|
||
$findUl = '<ul';
|
||
$findUlLength = strlen($findUl);
|
||
$posUl = strpos($text, $findUl);
|
||
if($posUl !== false){
|
||
//echo "text prej: ".$text."</br>";
|
||
$numOfUl = substr_count($text, $findUl); //stevilo '<ul' v tekstu
|
||
//echo "numOfUl ".$numOfUl."</br>";
|
||
######################
|
||
if($numOfUl!=0){
|
||
$text = str_replace('<ul>','\begin{itemize} ', $text);
|
||
$text = str_replace('<li>','\item ', $text);
|
||
$text = str_replace('</ul>','\end{itemize} ', $text);
|
||
}
|
||
//echo "prazno v html: ".strpos($text, '\r')."</br>";
|
||
//echo "text potem: ".$text."</br>";
|
||
######################
|
||
}
|
||
|
||
//ureditev preureditve html kode ul in li v latex itemize - konec
|
||
|
||
//po ureditvi posebnih karakterjev, dodati del teksta s kodo za sliko, ce je slika prisotna
|
||
if($posImg !== false){
|
||
$text = substr_replace($text, $textOfImgCode, $posOfImgCode, 0);
|
||
}
|
||
//po ureditvi posebnih karakterjev, dodati del teksta s kodo za sliko, ce je slika prisotna
|
||
|
||
if($pos === false && $posImg === false) { //v tekstu ni br in img
|
||
//return $text;
|
||
/* echo "encode pred strip: ".$text."</br>";
|
||
echo "encode po strip: ".strip_tags($text)."</br>";
|
||
return strip_tags($text); */
|
||
}else { //v tekstu sta prisotna br ali img
|
||
$text2Return = ''; //tekst ki bo vrnjen
|
||
|
||
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico
|
||
if($pos !== false){
|
||
$pos = strpos($text, $findme);
|
||
$numOfBr = substr_count($text, $findme); //stevilo '<br />' v tekstu
|
||
for($i=0; $i<$numOfBr; $i++){
|
||
if($i == 0){ //ce je prvi najdeni '<br />'
|
||
$textPrej = substr($text, 0, $pos);
|
||
$textPotem = substr($text, $pos+$findmeLength);
|
||
if($i == $numOfBr-1){
|
||
$text2Return .= $textPrej.' \break '.$textPotem;
|
||
}else{
|
||
$text2Return .= $textPrej.' \break ';
|
||
}
|
||
}else{ //drugace
|
||
$pos = strpos($textPotem, $findme);
|
||
$textPrej = substr($textPotem, 0, $pos);
|
||
$textPotem = substr($textPotem, $pos+$findmeLength);
|
||
if($i == $numOfBr-1){
|
||
$text2Return .= $textPrej.' \break '.$textPotem;
|
||
}else{
|
||
$text2Return .= $textPrej.' \break ';
|
||
}
|
||
}
|
||
}
|
||
$text = $text2Return;
|
||
}
|
||
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico - konec
|
||
/* echo "encode pred strip: ".$text."</br>";
|
||
echo "encode po strip: ".strip_tags($text)."</br>";
|
||
return strip_tags($text); //vrni tekst brez html tag-ov */
|
||
}
|
||
|
||
//ureditev odstranjevanja presledkov, ce so na zacetku ali koncu besedila
|
||
if(($numOfSpacesPrej)){ //ce so prisotni presledki
|
||
$odstranjeno = 0; //belezi, ali so bili presledki odstranjeni iz zacetka ali konca
|
||
for($numPresledkovTmp = 1; $numPresledkovTmp <= $numOfSpacesPrej; $numPresledkovTmp++){ //za vsak presledek
|
||
$posSpace = strpos($text, $findSpace); //najdi pozicijo presledka v besedilu//preveri, kje se nahaja
|
||
if($posSpace==0){ //ce je presledek na zacetku besedila
|
||
$text = substr_replace($text, '', $posSpace, 1); //odstrani presledek iz besedila
|
||
$stringLength = strlen($text);
|
||
$odstranjeno = 1;
|
||
}elseif($posSpace==$stringLength){ //ce je presledek na koncu besedila
|
||
$text = substr_replace($text, '', $posSpace, 1); //odstrani presledek iz besedila
|
||
$stringLength = strlen($text);
|
||
$odstranjeno = 1;
|
||
}
|
||
}
|
||
$numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu
|
||
}
|
||
//ureditev odstranjevanja presledkov, ce so na zacetku ali koncu besedila - konec
|
||
|
||
//echo "v besedilu $text je stevilo presledkov $numOfSpacesPrej in besed $numOfWords </br>";
|
||
//priprava izpisa zelo dolgega besedila brez presledkov s seqsplit (URL, email, ...)
|
||
if( ($numOfSpacesPrej == 0 && $stringLength >= MAX_STRING_LENGTH && $odstranjeno) ){ //ce v besedilu ni presledkov in je besedilo daljse od max dovoljene dolzine
|
||
$text = "\seqsplit{".$text."}"; //ni v redu seqsplit, ker ne dela, če so posebni znaki
|
||
}
|
||
//priprava izpisa zelo dolgega besedila brez presledkov - konec
|
||
|
||
return strip_tags($text); //vrni tekst brez html tag-ov
|
||
}
|
||
|
||
#funkcija, ki skrbi za izpis latex kode za zacetek tabele ##################################################################################
|
||
#argumenti 1. export_format, 2. parametri tabele, 3. tip tabele za pdf, 4. tip tabele za rtf, 5. sirina pdf tabele (delez sirine strani), 6. sirina rtf tabele (delez sirine strani)
|
||
function StartLatexTable($export_format='', $parameterTabular='', $pdfTable='', $rtfTable='', $pdfTableWidth=null, $rtfTableWidth=null){
|
||
$tex = '';
|
||
$tex .= '\keepXColumns';
|
||
if($export_format == 'pdf'){
|
||
$tex .= '\begin{'.$pdfTable.'}';
|
||
if($pdfTable=='tabularx'){
|
||
//$tex .= '{'.$pdfTableWidth.'\textwidth}';
|
||
$tex .= '{\hsize}';
|
||
}
|
||
$tex .= '{ '.$parameterTabular.' }';
|
||
}elseif($export_format == 'rtf'||$export_format == 'xls'){
|
||
$tex .= '\begin{'.$rtfTable.'}';
|
||
if($rtfTable=='tabular*'){
|
||
$tex .= '{'.$pdfTableWidth.'\textwidth}';
|
||
}
|
||
$tex .= '{ '.$parameterTabular.' }';
|
||
}
|
||
return $tex;
|
||
}
|
||
#funkcija, ki skrbi za izpis latex kode za zacetek tabele - konec ##########################################################################
|
||
|
||
function outputSumaValidAnswerVertical($counter=null,$_sequence=null,$spid=null,$_options=array()) {
|
||
global $lang;
|
||
|
||
$text = array();
|
||
$texoutputSumaValidAnswerVertical = '';
|
||
|
||
# opcije
|
||
$options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor
|
||
'isOtherAnswer' => false, # ali je odgovor Drugo
|
||
'inline_legenda' => true, # ali je legenda inline ali v headerju
|
||
'textAnswerExceed'=>false # ali presegamo število tekstovnih odgovorov za prikaz
|
||
);
|
||
foreach ($_options as $_oKey => $_option) {
|
||
$options[$_oKey] = $_option;
|
||
}
|
||
|
||
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
|
||
|
||
$_brez_MV = ((int)SurveyAnalysis::$currentMissingProfile == 2) ? TRUE : FALSE;
|
||
|
||
$_sufix = '';
|
||
|
||
$text[] = $this->encodeText($lang['srv_anl_valid']);
|
||
$text[] = $this->encodeText($lang['srv_anl_suma1']);
|
||
|
||
$text[] = $this->encodeText(SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0);
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber(100, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
|
||
$text[] = '';
|
||
|
||
|
||
$exportformat = $options['exportFormat'];
|
||
$brezHline = $this->getBrezHline($exportformat);
|
||
|
||
$outputSumaValidAnswerVertical .= self::tableRow($text, $brezHline);
|
||
return $outputSumaValidAnswerVertical;
|
||
//$counter++;
|
||
//return $counter;
|
||
}
|
||
|
||
function outputValidAnswerVertical($counter=null,$vkey='', $vAnswer=null, $_sequence=null,$spid=null, &$_kumulativa=null,$_options=array()) {
|
||
global $lang;
|
||
//echo "funkcija outputValidAnswerVertical </br>";
|
||
$text = array();
|
||
|
||
$texoutputValidAnswerVertical = '';
|
||
|
||
# opcije
|
||
$options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor
|
||
'isOtherAnswer' => false, # ali je odgovor Drugo
|
||
'inline_legenda' => true, # ali je legenda inline ali v headerju
|
||
'textAnswerExceed'=>false # ali presegamo število tekstovnih odgovorov za prikaz
|
||
);
|
||
foreach ($_options as $_oKey => $_option) {
|
||
$options[$_oKey] = $_option;
|
||
}
|
||
$cssBck = ' '.SurveyAnalysis::$cssColors['0_' . ($counter & 1)];
|
||
|
||
$_valid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['validCnt'] : 0;
|
||
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
|
||
$_kumulativa += $_valid;
|
||
|
||
# ali presegamo število prikazanih vrstic, takrat v zadnji prikazani dodamo link več.. ostale vrstice pa skrijemo
|
||
/* if ($options['textAnswerExceed'] == true) {
|
||
if ($counter == TEXT_ANSWER_LIMIT ) {
|
||
# link za več
|
||
$show_more = '<div id="valid_row_togle_'.$_sequence.'" class="floatRight blue pointer" onclick="showHidenTextRow(\''.$_sequence.'\');return false;">(več...)</div>'.NEW_LINE;
|
||
} elseif ($counter > TEXT_ANSWER_LIMIT ) {
|
||
$hide_row = ' hidden';
|
||
$_exceed = true;
|
||
}
|
||
} */
|
||
|
||
//if ($counter < TEXT_MAX_ANSWER_LIMIT) {
|
||
$text[] = '';
|
||
|
||
$addText = (($options['isTextAnswer'] == false && (string)$vkey != $vAnswer['text']) ? ' ('.$vAnswer['text'] .')' : '');
|
||
//$text[] = $this->encodeText(' '.$vkey.$addText);
|
||
$text[] = $this->snippet($this->encodeText(' '.$vkey.$addText), 400);
|
||
|
||
$text[] = (int)$vAnswer['cnt'];
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_valid, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_valid, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_kumulativa, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_kumulativa, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
|
||
/*} elseif ($counter == TEXT_MAX_ANSWER_LIMIT ) {
|
||
echo '<tr id="'.$spid.'_'.$_sequence.'_'.$counter.'" name="valid_row_'.$_sequence.'">';
|
||
echo '<td class="anl_bl anl_ac anl_br gray anl_dash_bt anl_dash_bb" colspan="'.(6+(int)SurveyAnalysis::$_HEADERS[$spid]['show_valid_percent']+((int)SurveyAnalysis::$_SHOW_LEGENDA*2)).'"> . . . Prikazujemo samo prvih '.TEXT_MAX_ANSWER_LIMIT.' veljavnih odgovorov!</td>';
|
||
echo '</tr>';
|
||
}*/
|
||
|
||
$exportformat = $options['exportFormat'];
|
||
$brezHline = $this->getBrezHline($exportformat);
|
||
|
||
$texoutputValidAnswerVertical .= self::tableRow($text, $brezHline);
|
||
//echo "Besedilo na koncu funkcije outputValidAnswerVertical:".$texoutputValidAnswerVertical."</br>";
|
||
return $texoutputValidAnswerVertical;
|
||
/* $counter++;
|
||
return $counter; */
|
||
}
|
||
|
||
function outputInvalidAnswerVertical($counter=null,$vkey='', $vAnswer=null, $_sequence=null, $spid=null, $_options=array()) {
|
||
global $lang;
|
||
|
||
$text = array();
|
||
$texoutputInvalidAnswerVertical = '';
|
||
|
||
# opcije
|
||
$options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor
|
||
'isOtherAnswer' => false, # ali je odgovor Drugo
|
||
'inline_legenda' => true, # ali je legenda inline ali v headerju
|
||
'textAnswerExceed'=>false # ali presegamo število tekstovnih odgovorov za prikaz
|
||
);
|
||
foreach ($_options as $_oKey => $_option) {
|
||
$options[$_oKey] = $_option;
|
||
}
|
||
|
||
$exportformat = $options['exportFormat'];
|
||
$brezHline = $this->getBrezHline($exportformat);
|
||
|
||
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
|
||
$_invalid = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ) ? 100*$vAnswer['cnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
|
||
|
||
$_sufix = '';
|
||
|
||
//$_Z_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 2) ? TRUE : FALSE; //po tej stari kodi ne pridem do zelene informacije, tudi stari izvozi ne delajo pravilno, ce se zeli pokazati missinge
|
||
|
||
$_Z_MV = !$this->hideEmpty;
|
||
|
||
//$_Z_MV = 1;
|
||
if($_Z_MV){
|
||
//echo "this->hideEmpty: ".$this->hideEmpty."</br>";
|
||
//$text[] = $this->encodeText($lang['srv_anl_missing1']);
|
||
//$text[] = '\multirow{ '.$vAnswer['cnt'].'}{*}{ '.$this->encodeText($lang['srv_anl_missing1']).' }';
|
||
|
||
$text[] = '';
|
||
|
||
$text[] = $this->encodeText($vkey.' (' . $vAnswer['text'].')');
|
||
|
||
$text[] = $this->encodeText((int)$vAnswer['cnt']);
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
|
||
$text[] = '';
|
||
$text[] = '';
|
||
|
||
$texoutputInvalidAnswerVertical .= $this->tableRow($text, $brezHline);
|
||
}
|
||
$counter++;
|
||
//echo "Besedilo na koncu funkcije outputInvalidAnswerVertical:".$texoutputInvalidAnswerVertical."</br>";
|
||
return $texoutputInvalidAnswerVertical;
|
||
|
||
/*return $counter; */
|
||
}
|
||
|
||
function outputSumaInvalidAnswerVertical($counter=null, $_sequence=null, $spid=null, $_options = array()) {
|
||
global $lang;
|
||
|
||
$texoutputSumaInvalidAnswerVertical = '';
|
||
# opcije
|
||
$options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor
|
||
'isOtherAnswer' => false, # ali je odgovor Drugo
|
||
'inline_legenda' => true, # ali je legenda inline ali v headerju
|
||
'textAnswerExceed'=>false # ali presegamo število tekstovnih odgovorov za prikaz
|
||
);
|
||
foreach ($_options as $_oKey => $_option) {
|
||
$options[$_oKey] = $_option;
|
||
}
|
||
|
||
$exportformat = $options['exportFormat'];
|
||
$brezHline = $this->getBrezHline($exportformat);
|
||
|
||
$cssBck = ' '.SurveyAnalysis::$cssColors['text_' . ($counter & 1)];
|
||
$_percent = (SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] > 0 ) ? 100*SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] / SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0;
|
||
|
||
//$_brez_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE;
|
||
$_brez_MV = $this->hideEmpty;
|
||
if(!$_brez_MV){
|
||
$text = array();
|
||
|
||
//$text[] = $this->encodeText($lang['srv_anl_missing1']);
|
||
$text[] = '';
|
||
|
||
$text[] = $this->encodeText($lang['srv_anl_suma1']);
|
||
//$text[] = $this->encodeText(SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt']);
|
||
|
||
$answer['cnt'] = SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] > 0 ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalidCnt'] : 0;
|
||
$text[] = $this->encodeText((int)$answer['cnt']);
|
||
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber($_percent, SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = '';
|
||
$text[] = '';
|
||
|
||
$texoutputSumaInvalidAnswerVertical .= $this->tableRow($text, $brezHline);
|
||
}
|
||
//echo $texoutputSumaInvalidAnswerVertical."</br>";
|
||
return $texoutputSumaInvalidAnswerVertical;
|
||
/* $counter++;
|
||
return $counter; */
|
||
}
|
||
|
||
function outputSumaVertical($counter=null, $_sequence=null, $spid=null, $_options = array()) {
|
||
global $lang;
|
||
|
||
$texoutputSumaVertical = '';
|
||
# opcije
|
||
$options = array( 'isTextAnswer' => false, # ali je tekstovni odgovor
|
||
'isOtherAnswer' => false, # ali je odgovor Drugo
|
||
'inline_legenda' => true, # ali je legenda inline ali v headerju
|
||
'textAnswerExceed'=>false # ali presegamo število tekstovnih odgovorov za prikaz
|
||
);
|
||
foreach ($_options as $_oKey => $_option) {
|
||
$options[$_oKey] = $_option;
|
||
}
|
||
|
||
$cssBck = ' '.SurveyAnalysis::$cssColors['0_' .($counter & 1)];
|
||
|
||
//$_brez_MV = ((int)SurveyAnalysis::$missingProfileData['display_mv_type'] === 0) ? TRUE : FALSE;
|
||
|
||
/* if($options['exportFormat'] == 'xls'){
|
||
$brezHline = 1;
|
||
}else{
|
||
$brezHline = 0;
|
||
} */
|
||
|
||
$exportformat = $options['exportFormat'];
|
||
$brezHline = $this->getBrezHline($exportformat);
|
||
|
||
$_brez_MV = $this->hideEmpty;
|
||
if(!$_brez_MV){
|
||
|
||
$text = array();
|
||
|
||
$text[] = '';
|
||
$text[] = $this->encodeText($lang['srv_anl_suma2']);
|
||
$text[] = $this->encodeText((SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] ? SurveyAnalysis::$_FREQUENCYS[$_sequence]['allCnt'] : 0));
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber('100', SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = $this->encodeText(self::formatNumber('100', SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_PERCENT'), '%'));
|
||
$text[] = '';
|
||
$text[] = '';
|
||
|
||
|
||
$texoutputSumaVertical .= $this->tableRow($text, $brezHline);
|
||
}
|
||
return $texoutputSumaVertical;
|
||
|
||
}
|
||
|
||
function outputOtherAnswers($oAnswers=null, $parameterTabular='', $export_format='') {
|
||
global $lang;
|
||
$spid = $oAnswers['spid'];
|
||
$_variable = SurveyAnalysis::$_HEADERS[$spid]['grids'][$oAnswers['gid']]['variables'][$oAnswers['vid']];
|
||
$_sequence = $_variable['sequence'];
|
||
$_frekvence = SurveyAnalysis::$_FREQUENCYS[$_variable['sequence']];
|
||
|
||
$this->export_format = $export_format;
|
||
|
||
$texOutputOtherAnswers = '';
|
||
|
||
//Priprava parametrov za tabelo
|
||
$steviloStolpcevParameterTabular = 6;
|
||
$steviloOstalihStolpcev = $steviloStolpcevParameterTabular - 1; /*stevilo stolpcev brez prvega stolpca, ki ima fiksno sirino*/
|
||
$sirinaOstalihStolpcev = 0.9/$steviloOstalihStolpcev;
|
||
$parameterTabular = '|';
|
||
|
||
for($i = 0; $i < $steviloStolpcevParameterTabular; $i++){
|
||
//ce je prvi stolpec
|
||
if($i == 0){
|
||
$parameterTabular .= ($export_format == 'pdf' ? 'P|' : 'l|');
|
||
}else{
|
||
$parameterTabular .= ($export_format == 'pdf' ? '>{\hsize='.$sirinaOstalihStolpcev.'\hsize \centering\arraybackslash}X|' : 'c|'); /*sirina ostalih je odvisna od njihovega stevila, da se sirine razporedijo po celotni sirini tabele*/
|
||
}
|
||
|
||
}
|
||
//Priprava parametrov za tabelo - konec
|
||
|
||
//zacetek latex tabele z obrobo za Drugo
|
||
$pdfTable = 'tabularx';
|
||
$rtfTable = 'tabular';
|
||
$pdfTableWidth = 1;
|
||
$rtfTableWidth = 1;
|
||
|
||
$texOutputOtherAnswers .= $this->StartLatexTable($export_format, $parameterTabular, $pdfTable, $rtfTable, $pdfTableWidth, $rtfTableWidth); /*zacetek tabele*/
|
||
if($export_format != 'xls'){
|
||
$texOutputOtherAnswers .= $this->horizontalLineTex; /*obroba*/
|
||
}
|
||
//zacetek latex tabele z obrobo za Drugo - konec
|
||
|
||
/*Naslovni vrstici tabele*/
|
||
//prva vrstica tabele
|
||
$texOutputOtherAnswers .= $this->encodeText($_variable['variable'])." & \multicolumn{5}{l|}{".$this->encodeText(SurveyAnalysis::$_HEADERS[$oAnswers['spid']]['variable'].' ('.$_variable['naslov'].' )')."} ".$this->texNewLine;
|
||
//$texOutputOtherAnswers .= $this->encodeText($_variable['variable'])." & \multicolumn{5}{X|}{".$this->encodeText(SurveyAnalysis::$_HEADERS[$oAnswers['spid']]['variable'].' ('.$_variable['naslov'].' )')."} ".$this->texNewLine;
|
||
if($export_format != 'xls'){
|
||
$texOutputOtherAnswers .= $this->horizontalLineTex; /*obroba*/
|
||
$brezHline = 1;
|
||
}
|
||
|
||
//druga vrstica tabele z naslovi stolpcev
|
||
$texOutputOtherAnswers .= $this->tableHeader();
|
||
|
||
//$this->pdf->setFont('','','6');
|
||
|
||
/*Naslovni vrstici tabele - konec*/
|
||
|
||
|
||
|
||
//prva vrstica
|
||
/* $this->pdf->setFont('','b','6');
|
||
$this->pdf->ln(5);
|
||
$this->pdf->MultiCell(18, $height, $this->encodeText($_variable['variable']), 1, 'C', 0, 0, 0 ,0, true);
|
||
$this->pdf->MultiCell(162, $height, $this->encodeText(SurveyAnalysis::$_HEADERS[$oAnswers['spid']]['variable'].' ('.$_variable['naslov'].' )'), 1, 'L', 0, 1, 0 ,0, true); */
|
||
|
||
//druga vrstica
|
||
/* $this->tableHeader();
|
||
$this->pdf->setFont('','','6'); */
|
||
// konec naslovne vrstice
|
||
|
||
$counter = 1;
|
||
$_kumulativa = 0;
|
||
if (count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'])> 0 ) {
|
||
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['valid'] AS $vkey => $vAnswer) {
|
||
if ($vAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
|
||
//$counter = self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,array('isOtherAnswer'=>true));
|
||
$texOutputOtherAnswers .= self::outputValidAnswerVertical($counter,$vkey,$vAnswer,$_sequence,$spid,$_kumulativa,array('isOtherAnswer'=>true, 'exportFormat'=>$export_format));
|
||
}
|
||
}
|
||
# izpišemo sumo veljavnih
|
||
//$counter = self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
|
||
$texOutputOtherAnswers .= self::outputSumaValidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true, 'exportFormat'=>$export_format));
|
||
}
|
||
if (count(SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'])> 0 ) {
|
||
$_Z_MV = !$this->hideEmpty;
|
||
if($_Z_MV){ //ce je potrebno izpisati tudi manjkajoce
|
||
$texOutputOtherAnswers .= $this->encodeText($lang['srv_anl_missing1']);
|
||
}
|
||
foreach (SurveyAnalysis::$_FREQUENCYS[$_sequence]['invalid'] AS $ikey => $iAnswer) {
|
||
if ($iAnswer['cnt'] > 0 ) { # izpisujemo samo tiste ki nisno 0
|
||
//$counter = self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,array('isOtherAnswer'=>true));
|
||
$texOutputOtherAnswers .= self::outputInvalidAnswerVertical($counter,$ikey,$iAnswer,$_sequence,$spid,array('isOtherAnswer'=>true, 'exportFormat'=>$export_format));
|
||
}
|
||
}
|
||
# izpišemo sumo veljavnih
|
||
//$counter = self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
|
||
//$texOutputOtherAnswers .= self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
|
||
$texOutputOtherAnswers .= self::outputSumaInvalidAnswerVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true, 'exportFormat'=>$export_format));
|
||
}
|
||
#izpišemo še skupno sumo
|
||
//$texOutputOtherAnswers .= self::outputSumaVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true));
|
||
$texOutputOtherAnswers .= self::outputSumaVertical($counter,$_sequence,$spid,array('isOtherAnswer'=>true, 'exportFormat'=>$export_format));
|
||
|
||
//zaljucek latex tabele za Drugo
|
||
$texOutputOtherAnswers .= ($export_format == 'pdf' ? "\\end{tabularx}" : "\\end{tabular}");
|
||
//zaljucek latex tabele za Drugo - konec
|
||
|
||
return $texOutputOtherAnswers;
|
||
}
|
||
|
||
function tableHeader($export_format=''){
|
||
global $lang;
|
||
|
||
$tableHeader = '';
|
||
|
||
$naslov = array();
|
||
$naslov[] = '';
|
||
$naslov[] = $this->encodeText($lang['srv_analiza_frekvence_titleAnswers']);
|
||
$naslov[] = $this->encodeText($lang['srv_analiza_frekvence_titleFrekvenca']);
|
||
$naslov[] = $this->encodeText($lang['srv_analiza_frekvence_titleOdstotek']);
|
||
$naslov[] = $this->encodeText($lang['srv_analiza_frekvence_titleVeljavni']);
|
||
$naslov[] = $this->encodeText($lang['srv_analiza_frekvence_titleKumulativa']);
|
||
|
||
$params = array('border' => 'TB', 'bold' => 'B', 'align2' => 'C');
|
||
|
||
//$tableHeader .= $this->tableRow($naslov, $params);
|
||
if($export_format=='xls'){
|
||
$brezHline = 1;
|
||
}else{
|
||
$brezHline = 0;
|
||
}
|
||
|
||
$tableHeader .= $this->tableRow($naslov, $brezHline);
|
||
/*$linecount = $this->pdf->getNumLines($this->encodeText($arrayText[1]), 90);
|
||
$linecount == 1 ? $height = 4.7 : $height = 4.7 + ($linecount-1)*3.3;*/
|
||
$height = 1; //$height = $this->getCellHeight($this->encodeText($arrayText[1]), 90);
|
||
|
||
//ce smo na prelomu strani
|
||
/* if( ($this->pdf->getY() + $height) > 270){
|
||
$this->drawLine();
|
||
$this->pdf->AddPage('P');
|
||
$arrayParams['border'] .= 'T';
|
||
} */
|
||
/*
|
||
if($arrayParams['align2'] != 'C')
|
||
$arrayParams['align2'] = 'L';
|
||
|
||
for($i=0;$i<count($naslov);$i++){
|
||
$tableHeader .= $naslov[$i].$this->texNewLine;
|
||
echo "naslovi v tabeli: ".$naslov[$i]."</br>";
|
||
} */
|
||
|
||
return $tableHeader;
|
||
}
|
||
|
||
//funkcija skrbi za izpis multicol celice
|
||
function MultiColCellLatex($steviloVmesnihStolpcevPodvrstic=null, $text='', $odZacetka=0, $export_format=null){
|
||
$tabela = '';
|
||
//echo "steviloVmesnihStolpcevPodvrstic: $steviloVmesnihStolpcevPodvrstic</br>";
|
||
//echo "format: $export_format</br>";
|
||
if($steviloVmesnihStolpcevPodvrstic==1){ //ce je 1, ne sme biti multicolumn{1}, saj so drugace tezave z izpisom
|
||
$tabela .= " & ".$text." ";
|
||
}else{
|
||
$steviloTabColSep = ($steviloVmesnihStolpcevPodvrstic-1)*2;
|
||
$steviloArrayrulewidth = ($steviloVmesnihStolpcevPodvrstic-1);
|
||
if($odZacetka==0){
|
||
//$tabela .= " & \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{X|}{";//zacetek multicol
|
||
if($export_format=='pdf'){
|
||
$tabela .= " & \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{>{\hsize=\dimexpr".$steviloVmesnihStolpcevPodvrstic."\hsize+".$steviloTabColSep."\\tabcolsep+".$steviloArrayrulewidth."\arrayrulewidth\\relax}C|}{";//zacetek multicol
|
||
}elseif($export_format=='rtf'){
|
||
$tabela .= " & \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{C|}{";//zacetek multicol
|
||
}
|
||
|
||
}else{
|
||
//$tabela .= " \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{X|}{";//zacetek multicol
|
||
if($export_format=='pdf'){
|
||
$tabela .= " \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{>{\hsize=\dimexpr".$steviloVmesnihStolpcevPodvrstic."\hsize+".$steviloTabColSep."\\tabcolsep+".$steviloArrayrulewidth."\arrayrulewidth\\relax}C|}{";//zacetek multicol
|
||
}elseif($export_format=='rtf'){
|
||
$tabela .= " \multicolumn{".$steviloVmesnihStolpcevPodvrstic."}{C|}{";//zacetek multicol
|
||
}
|
||
}
|
||
$tabela .= $text;
|
||
if($odZacetka==0){
|
||
$tabela .= '} ';//zakljucek multicol
|
||
}else{
|
||
$tabela .= '} &';//zakljucek multicol
|
||
}
|
||
}
|
||
|
||
//echo "fukcija s tekstom: ".$tabela." </br>";
|
||
return $tabela;
|
||
}
|
||
|
||
//funkcija skrbi za izpis multirow celice, ce je ta potrebna
|
||
function MultiRowCellLatex($steviloVmesnihVrstic=null, $text='', $tabela2 = '', $tabela3 = '', $cols=1){
|
||
$tabela = '';
|
||
global $lang;
|
||
//echo "cols: $cols</br>";
|
||
//if($steviloVmesnihVrstic > 1){ //ce je potrebno multirow prikazovanje
|
||
if($steviloVmesnihVrstic > 1 && (($tabela2!=''&&$tabela3=='') || ($tabela2!=''&&$tabela3!=''))){ //ce je potrebno multirow prikazovanje
|
||
$tabela .= '\multirow{'.$steviloVmesnihVrstic.'}{*}{'; //zacetek multirow
|
||
}
|
||
$tabela .= $text;
|
||
/* if($cols==0 && $text==$this->encodeText($lang['srv_analiza_crosstab_skupaj'])){ //premaknil nize, ker je delalo težave pri izpisu daljsih tabel
|
||
$tabela .= ' & ';
|
||
} */
|
||
//if($steviloVmesnihVrstic > 1){ //ce je potrebno multirow prikazovanje
|
||
if($steviloVmesnihVrstic > 1 && (($tabela2!=''&&$tabela3=='') || ($tabela2!=''&&$tabela3!=''))){ //ce je potrebno multirow prikazovanje
|
||
$tabela .= '}'; //konec multirow
|
||
}
|
||
|
||
if($cols==0 && $text==$this->encodeText($lang['srv_analiza_crosstab_skupaj'])){
|
||
$tabela .= ' & ';
|
||
}
|
||
//echo $tabela."</br>";
|
||
return $tabela;
|
||
}
|
||
|
||
function DisplayLatexCells($crossChk='', $podVrstice=null, $colNum=null, $steviloVmesnihStolpcevPodvrstic=2, $niSodo = 0){
|
||
$tabela = '';
|
||
//echo "steviloVmesnihStolpcevPodvrstic: $steviloVmesnihStolpcevPodvrstic </br>";
|
||
//echo "crossChk: $crossChk </br>";
|
||
if($steviloVmesnihStolpcevPodvrstic > 1 && $podVrstice){ //ce je potrebno multicol prikazovanje
|
||
//if($niSodo == 1 && $podVrstice && $steviloVmesnihStolpcevPodvrstic > 1){ //ce je potrebno multicol prikazovanje
|
||
$tabela .= $this->MultiColCellLatex($colNum, $crossChk);
|
||
}else{
|
||
$tabela .= " & ";
|
||
$tabela .= $crossChk;
|
||
}
|
||
return $tabela;
|
||
}
|
||
|
||
//function tableRow($arrayText, $brezHline=0, $brezNoveVrstice=0, $nadaljevanjeVrstice=0, $steviloPodstolpcev){
|
||
//function tableRow($arrayText, $brezHline=0, $brezNoveVrstice=0, $nadaljevanjeVrstice=0, $color='', $export_format, $steviloPodstolpcev){
|
||
function tableRow($arrayText=[], $brezHline=0, $brezNoveVrstice=0, $nadaljevanjeVrstice=0, $color='', $export_format='', $steviloPodstolpcev=[]){
|
||
$tableRow = '';
|
||
/*$linecount = $this->pdf->getNumLines($this->encodeText($arrayText[1]), 90);
|
||
$linecount == 1 ? $height = 4.7 : $height = 4.7 + ($linecount-1)*3.3;*/
|
||
$height = 1; //$height = $this->getCellHeight($this->encodeText($arrayText[1]), 90);
|
||
/* echo $arrayText[0]."</br>";
|
||
echo $arrayText[1]."</br>";
|
||
echo "brez hline: ".$brezHline."</br>"; */
|
||
|
||
if($arrayParams['align2'] != 'C')
|
||
$arrayParams['align2'] = 'L';
|
||
//echo "velikost polja s tekstom: ".count($arrayText)."</br>";
|
||
|
||
if($export_format == 'pdf'){
|
||
if($color=='blue'){
|
||
//$cellBgColor = 'cyan';
|
||
$cellBgColor = 'crta';
|
||
$color = 'besedilo';
|
||
}elseif($color=='red'){
|
||
//$cellBgColor = 'pink';
|
||
$cellBgColor = 'crtaGraf';
|
||
$color = 'besedilo';
|
||
}
|
||
$cellColoring = ' \cellcolor{'.$cellBgColor.'} ';
|
||
}else{ //drugace, ce je rtf
|
||
$cellColoring = '';
|
||
if($color=='blue'){
|
||
$color = 'cyan'; //v rtf pride modra
|
||
}elseif($color=='red'){
|
||
//$color = 'green'; //v rtf pride cyan
|
||
//$color = 'red'; //v rtf pride viola
|
||
$color = 'yellow'; //v rtf pride rdece
|
||
}
|
||
}
|
||
|
||
for($i=0;$i<count($arrayText);$i++){
|
||
//echo "array text: ".$arrayText[$i]."</br>";
|
||
|
||
####### koda, kjer sem testiral seqsplit za ureditev dolgih besed
|
||
/* if($arrayText[$i]==''){ //ce je prazen
|
||
$arrayBesedilo = $arrayText[$i];
|
||
}else{
|
||
##################### preveri, ali ima podatek, ki mora se pojaviti v celici na koncu presledek, to je pomembno za delovanje razbijanja dolgih besed v celici tabele oz. \seqsplit
|
||
$zadnjiChar = substr($arrayText[$i], -1);
|
||
if($zadnjiChar == ' '){
|
||
$arrayText[$i] = substr($arrayText[$i], 0, -1);
|
||
}
|
||
#####################
|
||
##################### ureditev specialnih znakov, da se jih da izpisati
|
||
//$arrayText[$i] = $this->pripraviBesediloZaSeqsplit($arrayText[$i]);
|
||
$arrayText[$i] = $this->pripraviBesediloZaSeqsplit($arrayText[$i]);
|
||
#####################
|
||
$arrayBesedilo = '\seqsplit{'.$arrayText[$i].'}';
|
||
} */
|
||
####### koda, kjer sem testiral seqsplit za ureditev dolgih besed - konec
|
||
|
||
$arrayBesedilo = $arrayText[$i];
|
||
|
||
if($color!=''){ //ce je potrebno besedilo dolocene barve
|
||
//$text = ' \cellcolor{'.$cellBgColor.'} '.$this->coloredTextLatex($color, $arrayText[$i]);
|
||
//$text = $cellColoring.''.$this->coloredTextLatex($color, '\seqsplit{'.$arrayText[$i].'}');
|
||
$text = $cellColoring.''.$this->coloredTextLatex($color, $arrayBesedilo);
|
||
}else{
|
||
//$text = $arrayText[$i];
|
||
//$text = '\seqsplit{'.$arrayText[$i].'}';
|
||
$text = $arrayBesedilo;
|
||
}
|
||
if($i==0&&!$nadaljevanjeVrstice&&!count($steviloPodstolpcev)){
|
||
$tableRow .= $text;
|
||
}
|
||
elseif($i==0&&!$nadaljevanjeVrstice&&count($steviloPodstolpcev)){
|
||
//$tableRow .= ' \multicolumn{'.$steviloPodstolpcev[$i].'}{c|}{ '.$text.' }';
|
||
$tableRow .= ' \multicolumn{'.$steviloPodstolpcev[$i].'}{X|}{ '.$text.' }';
|
||
}elseif(count($steviloPodstolpcev)){ //ce rabimo multicolumn
|
||
//$tableRow .= ' & \multicolumn{'.$steviloPodstolpcev[$i].'}{c|}{ '.$text.' }';
|
||
$tableRow .= ' & \multicolumn{'.$steviloPodstolpcev[$i].'}{X|}{ '.$text.' }';
|
||
}
|
||
else{
|
||
$tableRow .= ' & '.$text;
|
||
}
|
||
}
|
||
|
||
if(!$brezNoveVrstice){
|
||
$tableRow .= $this->texNewLine; /*nova vrstica*/
|
||
}
|
||
|
||
if (!$brezHline) { //dodaj se horizontal line, ce je to potrebno (po navadi vse povsod razen npr. za tabelo s st. odklonom in povprecjem)
|
||
//if($export_format != 'xls'){
|
||
if($this->export_format != 'xls'){
|
||
$tableRow .= $this->horizontalLineTex; /*obroba*/
|
||
}
|
||
}
|
||
|
||
//echo "Vrstica tabele: ".$tableRow."</br>";
|
||
|
||
return $tableRow;
|
||
}
|
||
|
||
function getSteviloPodstolpcev($steviloPodstolpcevPolje=null){
|
||
$steviloPodstolpcev = 0;
|
||
foreach($steviloPodstolpcevPolje as $stevilo){
|
||
$steviloPodstolpcev = $steviloPodstolpcev + $stevilo;
|
||
}
|
||
return $steviloPodstolpcev;
|
||
}
|
||
|
||
function AddEmptyCells($colspan=null){
|
||
$tabela = '';
|
||
if($colspan){ //ce imamo tudi horizontalne spremenljivke
|
||
for($i=0;$i<$colspan;$i++){ //dodamo ustrezno stevilo praznih celic v ustezni vrstici
|
||
$tabela .= ' & ';
|
||
}
|
||
}
|
||
return $tabela;
|
||
}
|
||
|
||
function urediCrteTabele($indeksMultiRow=null, $colspan=null, $steviloStolpcevParameterTabular=null){
|
||
$tabela = '';
|
||
if (in_array(0, $indeksMultiRow)){ //ce v polju je 0, ce ne potrebujemo vse povsod crte
|
||
for($j=0;$j<2;$j++){ //inicializacija indeksMultiRow, saj prva dva stolpca ne potrebujeta crt
|
||
array_unshift($indeksMultiRow,0); //dodaj na zacetku polja se 2 nicli
|
||
}
|
||
$clinesPrvi = array();
|
||
$clinesZadnji = array();
|
||
$prviZabelezen = 0;
|
||
foreach($indeksMultiRow as $indeks=>$vrednost){
|
||
if($vrednost==1&&$prviZabelezen==0){
|
||
$clinesPrvi[] = ($indeks+1);
|
||
$prviZabelezen = 1;
|
||
}elseif($vrednost==0&&$prviZabelezen==1){
|
||
$clinesZadnji[] = ($indeks);
|
||
$prviZabelezen = 0;
|
||
}
|
||
}
|
||
if(count($clinesPrvi)!=count($clinesZadnji)){ //ce ni istega stevila indeksov za cline
|
||
$clinesZadnji[] = $steviloStolpcevParameterTabular; //je zadnji indeks stevilo vseh stolpcev
|
||
}
|
||
foreach($clinesPrvi as $indeksPrvi=>$clinePrvi){
|
||
$tabela .= "\\cline{".$clinePrvi."-".$clinesZadnji[$indeksPrvi]."}";
|
||
}
|
||
}else{
|
||
$tabela .= "\\cline{".($colspan+1)."-".$steviloStolpcevParameterTabular."}";
|
||
}
|
||
return $tabela;
|
||
}
|
||
|
||
function displayDataCellLatex($vrsticaPodatki=null, $tableSettingsNumerus=null, $tableSettingsAvgVar=null, $tableSettingsDelezVar=null, $colspan=null, $steviloStolpcevParameterTabular=null, $export_format=''){
|
||
$tabela = '';
|
||
|
||
if($this->tableSettingsNumerus){
|
||
if($this->tableSettingsPercent||$this->tableSettingsAvgVar||$this->tableSettingsDelezVar){ //ce je potrebno izpisati se ostale vrstice izracunov
|
||
$tabela .= $this->tableRow($vrsticaPodatki['numerus'][0],1);
|
||
if($export_format != 'xls'){
|
||
$tabela .= "\\cline{".($colspan+1)."-".$steviloStolpcevParameterTabular."}"; //prekinjena horizontalna vrstica
|
||
}
|
||
$tabela .= $this->AddEmptyCells($colspan); //dodaj prazne celice
|
||
}else{
|
||
$tabela .= $this->tableRow($vrsticaPodatki['numerus'][0],1);
|
||
}
|
||
}
|
||
if($this->tableSettingsPercent){
|
||
if($this->tableSettingsAvgVar||$this->tableSettingsDelezVar){ //ce je potrebno izpisati se ostale vrstice izracunov
|
||
$tabela .= $this->tableRow($vrsticaPodatki['percent'][0],1);
|
||
if($export_format != 'xls'){
|
||
$tabela .= "\\cline{".($colspan+1)."-".$steviloStolpcevParameterTabular."}"; //prekinjena horizontalna vrstica
|
||
}
|
||
$tabela .= $this->AddEmptyCells($colspan); //dodaj prazne celice
|
||
}else{
|
||
$tabela .= $this->tableRow($vrsticaPodatki['percent'][0],1);
|
||
}
|
||
}
|
||
if($this->tableSettingsAvgVar!= ''){
|
||
$color = 'blue';
|
||
if($this->tableSettingsDelezVar){ //ce je potrebno izpisati se ostale vrstice izracunov
|
||
$tabela .= $this->tableRow($vrsticaPodatki['avg'][0],1,0,0,$color, $export_format);
|
||
//$tabela .= $this->tableRow($vrsticaPodatki['avg'][0],1);
|
||
if($export_format != 'xls'){
|
||
$tabela .= "\\cline{".($colspan+1)."-".$steviloStolpcevParameterTabular."}"; //prekinjena horizontalna vrstica
|
||
}
|
||
$tabela .= $this->AddEmptyCells($colspan); //dodaj prazne celice
|
||
}else{
|
||
$tabela .= $this->tableRow($vrsticaPodatki['avg'][0],1,0,0,$color, $export_format);
|
||
//$tabela .= $this->tableRow($vrsticaPodatki['avg'][0],1);
|
||
}
|
||
}
|
||
if($this->tableSettingsDelezVar!= ''){
|
||
$color = 'red';
|
||
$tabela .= $this->tableRow($vrsticaPodatki['delez'][0],1,0,0,$color, $export_format);
|
||
//$tabela .= $this->tableRow($vrsticaPodatki['delez'][0],1);
|
||
}
|
||
|
||
return $tabela;
|
||
}
|
||
|
||
function coloredTextLatex($color='', $text=''){
|
||
$coloredText = '';
|
||
$coloredText .= '\textcolor{'.$color.'}{'.$text.'}';
|
||
return $coloredText;
|
||
}
|
||
|
||
/** Izriše vrstico z opisnimi z Latex
|
||
*
|
||
* @param unknown_type $spremenljivka
|
||
* @param unknown_type $variable
|
||
*/
|
||
function displayDescriptivesSpremenljivkaRow($spid=null,$spremenljivka=null,$show_enota=null,$_sequence = null) {
|
||
global $lang;
|
||
//echo "funkcija displayDescriptivesSpremenljivkaRow: ".$spremenljivka['variable']." </br>";
|
||
$texDisplayDescriptivesSpremenljivkaRow = '';
|
||
if ($_sequence != null) {
|
||
$_desc = SurveyAnalysis::$_DESCRIPTIVES[$_sequence];
|
||
}
|
||
|
||
$text = array();
|
||
$text[] = '\textbf{'.$this->encodeText($spremenljivka['variable']).'}';
|
||
$text[] = '\textbf{'.$this->encodeText($spremenljivka['naslov']).'}';
|
||
|
||
#veljavno
|
||
$text[] = $this->encodeText((!$show_enota ? (int)$_desc['validCnt'] : ''));
|
||
|
||
#ustrezno
|
||
$text[] = $this->encodeText((!$show_enota ? (int)$_desc['allCnt'] : ''));
|
||
|
||
if (isset($_desc['avg']) && (int)$spremenljivka['skala'] !== 1)
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''));
|
||
$text[] = $this->encodeText(self::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''));
|
||
else
|
||
$text[] = $this->encodeText('');
|
||
|
||
if (isset($_desc['div']) && (int)$spremenljivka['skala'] !== 1)
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''));
|
||
$text[] = $this->encodeText(self::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''));
|
||
else
|
||
$text[] = $this->encodeText('');
|
||
|
||
//$text[] = $this->encodeText((int)$spremenljivka['skala'] !== 1 ? $_desc['min'] : '');
|
||
//$text[] = $this->encodeText((int)$spremenljivka['skala'] !== 1 ? $_desc['max'] : '');
|
||
$text[] = (int)$spremenljivka['skala'] !== 1 ? $_desc['min'] : '';
|
||
$text[] = (int)$spremenljivka['skala'] !== 1 ? $_desc['max'] : '';
|
||
|
||
|
||
//$texDisplayDescriptivesSpremenljivkaRow .= $this->descTableRow($text);
|
||
$texDisplayDescriptivesSpremenljivkaRow .= $this->tableRow($text);
|
||
|
||
//echo "tex iz funkcije displayDescriptivesSpremenljivkaRow: ".$texDisplayDescriptivesSpremenljivkaRow."</br>";
|
||
return $texDisplayDescriptivesSpremenljivkaRow;
|
||
}
|
||
|
||
/** Izriše vrstico z opisnimi
|
||
*
|
||
* @param unknown_type $spremenljivka
|
||
* @param unknown_type $variable
|
||
*/
|
||
function displayDescriptivesVariablaRow($spremenljivka=null, $grid=null, $variable=null) {
|
||
global $lang;
|
||
//echo "funkcija displayDescriptivesVariablaRow: ".$spremenljivka['variable']." </br>";
|
||
$texDescriptivesVariablaRow = '';
|
||
$_sequence = $variable['sequence']; # id kolone z podatki
|
||
if ($_sequence != null) {
|
||
$_desc = SurveyAnalysis::$_DESCRIPTIVES[$_sequence];
|
||
}
|
||
|
||
$text = array();
|
||
|
||
$text[] = $this->encodeText($variable['variable']);
|
||
$text[] = $this->encodeText($variable['naslov']);
|
||
|
||
#veljavno
|
||
$text[] = $this->encodeText((int)$_desc['validCnt']);
|
||
|
||
#ustrezno
|
||
$text[] = $this->encodeText((int)$_desc['allCnt']);
|
||
|
||
//if (isset($_desc['avg']) && (int)$spremenljivka['skala'] !== 1)
|
||
//if (isset($_desc['avg']) && (int)$spremenljivka['skala'] !== 1 && $spremenljivka['tip'] != 16)
|
||
if (isset($_desc['avg']) && (int)$spremenljivka['skala'] !== 1 && ($spremenljivka['tip'] != 16 && $spremenljivka['tip'] != 2))
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''));
|
||
$text[] = $this->encodeText(self::formatNumber($_desc['avg'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''));
|
||
//else if (isset($_desc['avg']) && $spremenljivka['tip'] == 2 && (int)$spremenljivka['skala'] == 1 )
|
||
else if (isset($_desc['avg']) && $spremenljivka['tip'] == 2 && (int)$spremenljivka['skala'] !== 1 && ($spremenljivka['tip'] != 16))
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_desc['avg']*100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),' %'));
|
||
$text[] = $this->encodeText(self::formatNumber($_desc['avg']*100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),' %'));
|
||
else
|
||
$text[] = $this->encodeText('');
|
||
|
||
//if (isset($_desc['div']) && (int)$spremenljivka['skala'] !== 1)
|
||
//if (isset($_desc['div']) && (int)$spremenljivka['skala'] !== 1 && $spremenljivka['tip'] != 16)
|
||
if (isset($_desc['div']) && (int)$spremenljivka['skala'] !== 1 && ($spremenljivka['tip'] != 16 && $spremenljivka['tip'] != 2))
|
||
//$text[] = $this->encodeText(SurveyAnalysis::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''));
|
||
$text[] = $this->encodeText(self::formatNumber($_desc['div'],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_DEVIATION'),''));
|
||
else
|
||
$text[] = $this->encodeText('');
|
||
|
||
//if ((int)$spremenljivka['skala'] !== 1 && $spremenljivka['tip'] != 16){
|
||
if ((int)$spremenljivka['skala'] !== 1 && ($spremenljivka['tip'] != 16 && $spremenljivka['tip'] != 2)){
|
||
$text[] = $this->encodeText($_desc['min']);
|
||
$text[] = $this->encodeText($_desc['max']);
|
||
}else{
|
||
$text[] = $this->encodeText('');
|
||
$text[] = $this->encodeText('');
|
||
}
|
||
|
||
//$text[] = $this->encodeText((int)$spremenljivka['skala'] !== 1 ? $_desc['min'] : '');
|
||
//$text[] = $this->encodeText((int)$spremenljivka['skala'] !== 1 ? $_desc['max'] : '');
|
||
|
||
|
||
$texDescriptivesVariablaRow .= $this->tableRow($text);
|
||
//echo "nekaj: ".$this->encodeText(self::formatNumber($_desc['avg']*100,SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),' %'))." ".$spremenljivka['tip']."</br>";
|
||
//echo "tex iz funkcije displayDescriptivesVariablaRow: ".$texDescriptivesVariablaRow."</br>";
|
||
return $texDescriptivesVariablaRow;
|
||
}
|
||
|
||
function returnBold($text=''){
|
||
$boldedText = '';
|
||
$boldedText .= '\textbf{'.$text.'}';
|
||
return $boldedText;
|
||
}
|
||
|
||
function returnCentered($text='', $export_format = ''){
|
||
//echo "$export_format </br>";
|
||
$centeredText = '';
|
||
if($export_format == 'pdf'){
|
||
$centeredText .= ' \begin{absolutelynopagebreak} ';
|
||
}
|
||
$centeredText .= '\begin{center}{'.$text.'} \end{center}';
|
||
if($export_format == 'pdf'){
|
||
$centeredText .= ' \end{absolutelynopagebreak} ';
|
||
}
|
||
//$centeredText .= ' \begin{absolutelynopagebreak} \begin{center}{'.$text.'} \end{center} \end{absolutelynopagebreak} ';
|
||
|
||
return $centeredText;
|
||
}
|
||
|
||
function GetSprId($spid=null){
|
||
$find = '_';
|
||
$findPos = strpos($spid, $find);
|
||
$sprId = '';
|
||
$sprId = substr_replace($spid,'',$findPos);
|
||
return $sprId;
|
||
}
|
||
|
||
function displayHeatmapImageLatex($sprId=null){
|
||
global $site_path;
|
||
$tex = '';
|
||
$this->path2HeatmapImages = $site_path.'main/survey/uploads/';
|
||
|
||
//$heatmapImageFileName = $site_url.'main/survey/uploads/heatmap'.$sprId.'.png';
|
||
$heatmapImageFileName = 'heatmap'.$sprId;
|
||
$tex .= '\includegraphics[scale=0.5]{'.$this->path2HeatmapImages.''.$heatmapImageFileName.'}';
|
||
return $tex;
|
||
}
|
||
|
||
//funkcija, ki okrog posebnih crk dodaja {}, da lahko knjiznica seqsplit lahko deluje
|
||
function pripraviBesediloZaSeqsplit($besedilo=''){
|
||
//najdi posebno crko in okoli nje dodaj {}
|
||
//echo "array text: ".$besedilo."</br>";
|
||
$chars = array('č', 'ć', 'ž', 'š', 'đ', 'Č', 'Ć', 'Ž', 'Š', 'Đ'); //polje s najbolj pogostimi posebnimi crkami, ki jih seqsplit ne sprejema
|
||
foreach($chars AS $char){ //za vsako posebno crko, uredi {}
|
||
$moreChars = 0;
|
||
$pozicijaChar = '';
|
||
$pozicijaChar = strpos($besedilo, $char); //najdi pozicijo posebne crke
|
||
if(is_numeric($pozicijaChar)){ //ce je prisotna posebna crka v besedilu
|
||
|
||
//echo "črka: ".$char."</br>";
|
||
//echo "pozicija črke: ".$pozicijaChar."</br>";
|
||
$textToChar = substr($besedilo, 0, $pozicijaChar); //tekst do posebne crke
|
||
//echo $textToChar."</br>";
|
||
$tmpTextFromChar = substr($besedilo, $pozicijaChar); //tekst po posebne crke posebno crko
|
||
//echo $tmpTextFromChar."</br>";
|
||
$textFromChar = substr($tmpTextFromChar, 2); //tekst po posebni crki dalje
|
||
//echo $textFromChar."</br>";
|
||
|
||
//$besediloTmp = $textToChar."{".$char."}".$textFromChar;
|
||
$besedilo = $textToChar."{".$char."}".$textFromChar;
|
||
$besediloTmp = $textToChar."{".$char."}";
|
||
//echo "besedilo: ".$besedilo."</br>";
|
||
//$besedilo = $besediloTmp;
|
||
|
||
do{
|
||
//ce je prisotna se kaksna posebna crka v drugem delu besedila, ponovi
|
||
$pozicijaChar = '';
|
||
$pozicijaChar = strpos($textFromChar, $char); //najdi pozicijo posebne crke v ostalem delu besedila
|
||
if(is_numeric($pozicijaChar)){ //ce je prisotna posebna crka v besedilu v ostalem delu besedila
|
||
$moreChars = 1;
|
||
$textToChar = substr($textFromChar, 0, $pozicijaChar); //tekst do posebne crke
|
||
$tmpTextFromChar = substr($textFromChar, $pozicijaChar); //tekst po posebne crke posebno crko
|
||
$textFromChar = substr($tmpTextFromChar, 2); //tekst po posebni crki dalje
|
||
$besediloTmp .= $textToChar."{".$char."}";
|
||
}else{
|
||
$moreChars = 0;
|
||
$besediloTmp .= $textFromChar;
|
||
}
|
||
//echo "moreChars: ".$moreChars."</br>";
|
||
$besedilo = $besediloTmp;
|
||
}while($moreChars == 1);
|
||
|
||
}
|
||
}
|
||
//echo "besedilo končno: ".$besedilo."</br>";
|
||
return $besedilo;
|
||
}
|
||
//funkcija, ki okrog posebnih crk dodaja {}, da lahko knjiznica seqsplit lahko deluje - konec
|
||
|
||
/*Moje funkcije - konec*/
|
||
/*Skrajsa tekst in doda '...' na koncu*/
|
||
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 formatNumber($value=null, $digit=0, $sufix="")
|
||
{
|
||
if ( $value <> 0 && $value != null )
|
||
$result = round($value,$digit);
|
||
else
|
||
$result = "0";
|
||
$result = number_format($result, $digit, ',', '.').$sufix;
|
||
return $result;
|
||
}
|
||
|
||
function getBrezHline($exportformat=''){
|
||
if($exportformat=='xls'){
|
||
$brezHline = 1;
|
||
}else{
|
||
$brezHline = 0;
|
||
}
|
||
return $brezHline;
|
||
}
|
||
|
||
} |