Latex za izvoze: KLIENT-97 NIJZ: preureditev izpisa vprasanj s slikami

This commit is contained in:
patrik2020 2022-03-12 12:59:56 +01:00
parent d68255cafe
commit 1aa35ea2bc

View File

@ -52,7 +52,7 @@ class LatexSurveyElement{
function __construct($anketa=null, $export_format='', $fillablePdf=null, $usr_id=null, $export_subtype='', $language=null){ function __construct($anketa=null, $export_format='', $fillablePdf=null, $usr_id=null, $export_subtype='', $language=null){
global $site_path, $global_user_id, $admin_type, $lang; global $site_path, $global_user_id, $admin_type, $lang;
$this->anketa = $anketa; $this->anketa = $anketa;
$this->path2Images = $site_path.'admin/survey/export/latexclasses/textemp/images/'; $this->path2Images = $site_path.'admin/survey/export/latexclasses/textemp/images/';
$this->path2UploadedImages = $site_path.'uploadi/editor/'; $this->path2UploadedImages = $site_path.'uploadi/editor/';
@ -85,17 +85,9 @@ class LatexSurveyElement{
} }
//preverjanje, ali je prevod //preverjanje, ali je prevod
/* if(isset($_GET['language'])){
$this->language = $_GET['language'];
$this->prevod = 1;
}else{
$this->prevod = 0;
} */
if(isset($_GET['language'])){ if(isset($_GET['language'])){
$this->language = $_GET['language']; $this->language = $_GET['language'];
$this->prevod = 1; $this->prevod = 1;
}elseif($this->language!=-1){
$this->prevod = 1;
}else{ }else{
$this->prevod = 0; $this->prevod = 0;
} }
@ -466,10 +458,9 @@ class LatexSurveyElement{
/** /**
* prevod za srv_spremenljivka * prevod za srv_spremenljivka
*/ */
function srv_language_spremenljivka ($spremenljivka=null) { function srv_language_spremenljivka ($spremenljivka=null) {
// if ($this->language != -1) { // if ($this->language != -1) {
//echo "trenuten jezik: ".$this->language."</br>";
//echo "prevod: ".$this->prevod."</br>";
if ($this->prevod) { if ($this->prevod) {
$sqll = sisplet_query("SELECT naslov, info FROM srv_language_spremenljivka WHERE ank_id='".$this->anketa."' AND spr_id='".$spremenljivka['id']."' AND lang_id='".$this->language."'"); $sqll = sisplet_query("SELECT naslov, info FROM srv_language_spremenljivka WHERE ank_id='".$this->anketa."' AND spr_id='".$spremenljivka['id']."' AND lang_id='".$this->language."'");
$rowl = mysqli_fetch_array($sqll); $rowl = mysqli_fetch_array($sqll);
@ -878,6 +869,7 @@ class LatexSurveyElement{
$imageName = $this->path2UploadedImages."".$this->getImageName($text, 0, '<img', $vre_id, $img_id); $imageName = $this->path2UploadedImages."".$this->getImageName($text, 0, '<img', $vre_id, $img_id);
$imageNameTest = $imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku $imageNameTest = $imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
//echo $imageName."</br>";
//error_log("iz survey element: ".$imageNameTest); //error_log("iz survey element: ".$imageNameTest);
//echo("iz survey element imageNameTest: ".$imageNameTest."</br>"); //echo("iz survey element imageNameTest: ".$imageNameTest."</br>");
//echo "Obstaja ? ".file_exists($imageNameTest)."</br>"; //echo "Obstaja ? ".file_exists($imageNameTest)."</br>";
@ -891,7 +883,7 @@ class LatexSurveyElement{
} */ } */
$text = ''; $text = '';
//$text = $textPrej.' '; //$text = $textPrej.' ';
//if(filesize($imageNameTest) > 0){ //if(filesize($imageNameTest) > 0){
if(file_exists($imageNameTest)){ if(file_exists($imageNameTest)){
$text .= $textPrej.' '.PIC_SIZE_ANS."{".$imageName."}"; $text .= $textPrej.' '.PIC_SIZE_ANS."{".$imageName."}";
@ -1066,48 +1058,29 @@ class LatexSurveyElement{
//detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa //detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa
$findAt = '@'; $findAt = '@';
$numOfAt = substr_count($text, $findAt); //stevilo '@' v besedilu $numOfAt = substr_count($text, $findAt); //stevilo '@' v besedilu
$text=html_entity_decode($text);
$posAt = strpos($text, $findAt); $posAt = strpos($text, $findAt);
if($posAt && $posSpace1){ //ce je prisotna afna in je prisoten presledek v besedilu if($posAt && $posSpace1){ //ce je prisotna afna in je prisoten presledek v besedilu
//echo "afna je: $posAt </br>"; //echo "afna je: $posAt </br>";
//echo "Encoding: ".$text."</br>"; //echo "Encoding: ".$text."</br>";
//najdi prvi presledek po afni //najdi prvi presledek po afni
//echo substr($text, $posAt) ."</br>"; //echo substr($text, $posAt) ."</br>";
$posSpace1Mail = strpos(substr($text, $posAt), $findSpace); //najdi pozicijo prvega presledka v besedilu po e-naslovu $posSpace1Mail = strpos(substr($text, $posAt), $findSpace); //najdi pozicijo prvega presledka v besedilu po e-naslovu
$posSpace1Mail = $posSpace1Mail+$posAt; //koncna pozicija, ce se gleda celotno besedilo $posSpace1Mail = $posSpace1Mail+$posAt; //koncna pozicija, ce se gleda celotno besedilo
//echo $posSpace1Mail."</br>"; //echo $posSpace1Mail."</br>";
//najdi prvi <br /> po afni
$posBreakMail = strpos(substr($text, $posAt), "<br />"); //najdi pozicijo prvega break v besedilu po e-naslovu
$najdi = "&nbsp;";
$posBreakMail = $posBreakMail+$posAt; //koncna pozicija, ce se gleda celotno besedilo
//echo $posBreakMail."</br>";
//najdi prvi &nbsp; po afni
$posNbspMail = strpos(substr($text, $posAt), "&nbsp;"); //najdi pozicijo prvega &nbsp; v besedilu po e-naslovu
$najdi = "&nbsp;";
$posNbspMail = $posNbspMail+$posAt; //koncna pozicija, ce se gleda celotno besedilo
//echo $posNbspMail."</br>";
//najdi prvi presledek pred afno //najdi prvi presledek pred afno
$posSpace2Mail = strripos(substr($text, 0, $posAt), $findSpace); //najdi pozicijo zadnjega presledka v besedilu pred e-naslovom $posSpace2Mail = strripos(substr($text, 0, $posAt), $findSpace); //najdi pozicijo zadnjega presledka v besedilu pred e-naslovom
//echo $posSpace2Mail."</br>"; //echo $posSpace2Mail."</br>";
//dodaj po e-naslovu potrebno latex kodo za zakljucek url //dodaj po e-naslovu potrebno latex kodo za zakljucek url
//$text = substr_replace($text, '}', $posSpace1Mail, 0); $text = substr_replace($text, '}', $posSpace1Mail, 0);
//$posEnd = min($posSpace1Mail, $posBreakMail, $posNbspMail);
$posEnd = min($posSpace1Mail, $posBreakMail);
//echo $posEnd."</br>";
$text = substr_replace($text, '}', $posEnd, 0);
//dodaj pred e-naslovom potrebno latex kodo za url //dodaj pred e-naslovom potrebno latex kodo za url
//substr_replace(string_name, replacement_string, start_pos, length) //substr_replace(string_name, replacement_string, start_pos, length)
$text = substr_replace($text, ' \url{', $posSpace2Mail+1, 0); $text = substr_replace($text, ' \url{', $posSpace2Mail+1, 0);
//echo $text."</br>"; //echo $text."</br>";
} }
//detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa - konec //detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa - konec
@ -1233,15 +1206,11 @@ class LatexSurveyElement{
//echo "imagename : ".$imageName."</br>"; //echo "imagename : ".$imageName."</br>";
$pos = $this->getEndPosition($imageName); //najdi pozicijo konca URL slike $pos = $this->getEndPosition($imageName); //najdi pozicijo konca URL slike
$imageExtension = substr($imageName, $pos-3, 3); //pridobi koncnico slike (za gif je potrebno sliko pretvoriti v png, saj latex ne podpira gif) $imageExtension = substr($imageName, $pos-3, 3); //pridobi koncnico slike (za gif je potrebno sliko pretvoriti v png, saj latex ne podpira gif)
/* echo "exr1: ".$imageExtension."</br>";
$imageExtension = strrchr($imageName, '.'); //pridobi koncnico slike (za gif je potrebno sliko pretvoriti v png, saj latex ne podpira gif, jpg in jpeg)
echo "exr2: ".$imageExtension."</br>"; */
$imageName = substr($imageName, 0, $pos); //pokazi le del params od zacetka besedila do '"' oz. konca URL slike $imageName = substr($imageName, 0, $pos); //pokazi le del params od zacetka besedila do '"' oz. konca URL slike
//$path = $site_path.'uploadi/editor/'.$imageName; $path = $site_path.'uploadi/editor/'.$imageName;
$path = $site_url.'uploadi/editor/'.$imageName; //$path = $site_url.'uploadi/editor/'.$imageName;
if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png
$this->convertGifToPng($path, $slikaNaStrezniku); $this->convertGifToPng($path, $slikaNaStrezniku);
} }
@ -1326,7 +1295,9 @@ class LatexSurveyElement{
$imageExtension = substr($imageName, $pos-3, 3); //pridobi koncnico slike $imageExtension = substr($imageName, $pos-3, 3); //pridobi koncnico slike
//echo "imageExtension: ".$imageExtension."</br>"; //echo "imageExtension: ".$imageExtension."</br>";
if($imageExtension!='jpg'&&$imageExtension!='png'&&$imageExtension!='gif'&&$imageExtension!='jpeg'){ //ce ni veljavnen extension, spremeni ga v png //if($imageExtension!='jpg'&&$imageExtension!='png'&&$imageExtension!='gif'&&$imageExtension!='jpeg'){ //ce ni veljavnen extension, spremeni ga v png
if($imageExtension=='jpg'||$imageExtension=='gif'||$imageExtension=='jpeg'){ //ce ni veljavnen extension, spremeni ga v png
//echo "spremeni extension </br>";
$imageExtension='png'; $imageExtension='png';
} }
@ -1350,6 +1321,7 @@ class LatexSurveyElement{
//za linux sisteme //exec('wget URL -P PATH '); //za linux sisteme //exec('wget URL -P PATH ');
//$command = 'wget \''.$imageName.'\' -P '.$path.' '; //$command = 'wget \''.$imageName.'\' -P '.$path.' ';
$command = 'wget -O '.$path.' \''.$imageName.'\' '; $command = 'wget -O '.$path.' \''.$imageName.'\' ';
//echo "ukaz za pobiranje: $command </br>";
} }
//echo "command: ".$command."</br>"; //echo "command: ".$command."</br>";
@ -1360,7 +1332,7 @@ class LatexSurveyElement{
/* if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png, saj latex ne podpira gif /* if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png, saj latex ne podpira gif
$this->convertGifToPng($path, $slikaNaStrezniku); $this->convertGifToPng($path, $slikaNaStrezniku);
} */ } */
//echo "imgfilename na koncu: ".$imgFilename."</br>";
if($imageExtension != 'png'){ //ce slika ni png, jo pretvori if($imageExtension != 'png'){ //ce slika ni png, jo pretvori
if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png, saj latex ne podpira gif if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png, saj latex ne podpira gif
$this->convertGifToPng($path, $slikaNaStrezniku); $this->convertGifToPng($path, $slikaNaStrezniku);
@ -1369,7 +1341,7 @@ class LatexSurveyElement{
} }
} }
//echo "imgfilename: ".$imgFilename."</br>"; //echo "imgfilename na koncu: ".$imgFilename."</br>";
return $imgFilename; return $imgFilename;
} }
#funkcija, ki skrbi za pridobitev slike, ki se nahaja nekje online in jo je potrebno izrisati, in vrne lokalno ime slike - konec ############################### #funkcija, ki skrbi za pridobitev slike, ki se nahaja nekje online in jo je potrebno izrisati, in vrne lokalno ime slike - konec ###############################
@ -1391,13 +1363,15 @@ class LatexSurveyElement{
function convertJpgToPng($path='', $slikaNaStrezniku=null, $imageExtension=''){ function convertJpgToPng($path='', $slikaNaStrezniku=null, $imageExtension=''){
$image = imagecreatefromjpeg($path); //pripravi sliko iz jpg za pretvorbo $image = imagecreatefromjpeg($path); //pripravi sliko iz jpg za pretvorbo
$imageName = substr($path, 0, strrpos($path, '.')); //ime slike brez extension-a $imageName = substr($path, 0, strrpos($path, '.')); //ime slike brez extension-a
//echo $imageName."</br>";
$imageNamePNG = $imageName.'.png'; //ime slike z ustreznim extension $imageNamePNG = $imageName.'.png'; //ime slike z ustreznim extension
imagepng($image, $imageNamePNG); //pretvori pripravljeno jpg sliko v png imagepng($image, $imageNamePNG); //pretvori pripravljeno jpg sliko v png
//echo "pretvorba v png: ".$imageNamePNG."</br>";
//echo "xtens: ".$imageExtension."</br>";
//$origExtension = strrchr($path, '.'); //$origExtension = strrchr($path, '.');
//echo "ali je slika na strežniku: ".$slikaNaStrezniku."</br>";
if($slikaNaStrezniku==0){ //ce slika je iz URL in ni na strezniku, izbrisi jo if($slikaNaStrezniku==0){ //ce slika je iz URL in ni na strezniku, izbrisi jo
//echo "tukaj </br>";
if($imageExtension == 'jpg'){ if($imageExtension == 'jpg'){
unlink($imageName.'.'.$imageExtension); //izbrisi sliko unlink($imageName.'.'.$imageExtension); //izbrisi sliko
}elseif($imageExtension == 'peg'){ }elseif($imageExtension == 'peg'){
@ -1441,7 +1415,6 @@ class LatexSurveyElement{
//if ($this->language != -1) { //if ($this->language != -1) {
/* echo "prevod funkcija: ".$this->prevod."</br>"; /* echo "prevod funkcija: ".$this->prevod."</br>";
echo "language: ".$this->language."</br>"; */ echo "language: ".$this->language."</br>"; */
if ($this->prevod) { if ($this->prevod) {
$sqllString = "SELECT naslov, naslov2 FROM srv_language_vrednost WHERE vre_id='".$vre_id."' AND lang_id='".$this->language."'"; $sqllString = "SELECT naslov, naslov2 FROM srv_language_vrednost WHERE vre_id='".$vre_id."' AND lang_id='".$this->language."'";
$sqll = sisplet_query($sqllString); $sqll = sisplet_query($sqllString);