Latex za izvoze: KLIENT-97 NIJZ: ureditev izpisa uvoda s sliko
This commit is contained in:
parent
c36e81f57c
commit
b721ff8292
@ -11,6 +11,7 @@
|
|||||||
include('../../vendor/autoload.php');
|
include('../../vendor/autoload.php');
|
||||||
|
|
||||||
define("RADIO_BTN_SIZE", 0.13);
|
define("RADIO_BTN_SIZE", 0.13);
|
||||||
|
define("PIC_SIZE_ANS", "\includegraphics[width=3cm]"); //slika dolocene sirine
|
||||||
|
|
||||||
class LatexSurvey{
|
class LatexSurvey{
|
||||||
|
|
||||||
@ -49,6 +50,8 @@ class LatexSurvey{
|
|||||||
|
|
||||||
protected $language = -1; // Katero verzijo prevoda izvazamo
|
protected $language = -1; // Katero verzijo prevoda izvazamo
|
||||||
|
|
||||||
|
public static $spremenljivka;
|
||||||
|
|
||||||
//function __construct($anketa, $export_format){
|
//function __construct($anketa, $export_format){
|
||||||
function __construct($anketa=null, $export_format='', $export_show_intro=null, $export_show_if=null, $export_data_skip_empty=null, $export_data_skip_empty_sub=null){
|
function __construct($anketa=null, $export_format='', $export_show_intro=null, $export_show_if=null, $export_data_skip_empty=null, $export_data_skip_empty_sub=null){
|
||||||
global $site_path, $global_user_id, $admin_type, $lang;
|
global $site_path, $global_user_id, $admin_type, $lang;
|
||||||
@ -209,8 +212,6 @@ class LatexSurvey{
|
|||||||
if(isset($_GET['language'])){
|
if(isset($_GET['language'])){
|
||||||
$this->language = $_GET['language'];
|
$this->language = $_GET['language'];
|
||||||
$prevod = 1;
|
$prevod = 1;
|
||||||
}elseif($this->language!=-1){
|
|
||||||
$prevod = 1;
|
|
||||||
}else{
|
}else{
|
||||||
$prevod = 0;
|
$prevod = 0;
|
||||||
}
|
}
|
||||||
@ -223,14 +224,18 @@ class LatexSurvey{
|
|||||||
$rowl = mysqli_fetch_array($sqll); //pridobi prevod uvoda v ustreznem jeziku
|
$rowl = mysqli_fetch_array($sqll); //pridobi prevod uvoda v ustreznem jeziku
|
||||||
$intro = $rowl['naslov']; //prevod uvoda v ustreznem jeziku
|
$intro = $rowl['naslov']; //prevod uvoda v ustreznem jeziku
|
||||||
}else{
|
}else{
|
||||||
$intro = (SurveyInfo::getInstance()->getSurveyIntro() == '') ? $lang['srv_intro'] : SurveyInfo::getInstance()->getSurveyIntro();
|
//$intro = (SurveyInfo::getInstance()->getSurveyIntro() == '') ? $lang['srv_intro'] : SurveyInfo::getInstance()->getSurveyIntro();
|
||||||
|
$sqlIntroString = "SELECT introduction FROM srv_anketa WHERE id=".$this->anketa." ";
|
||||||
|
$sqlIntro = sisplet_query($sqlIntroString);
|
||||||
|
$rowl = mysqli_fetch_array($sqlIntro); //pridobi besedilu uvoda
|
||||||
|
$intro = $rowl['introduction']; //prevod uvoda v ustreznem jeziku
|
||||||
}
|
}
|
||||||
$tex .= $this->encodeTextHere($intro);
|
$tex .= $this->encodeTextHere($intro);
|
||||||
if($intro){
|
if($intro){
|
||||||
$tex .= $this->texNewLine;
|
$tex .= $this->texNewLine;
|
||||||
$tex .= $this->texNewLine;
|
$tex .= $this->texNewLine;
|
||||||
}
|
}
|
||||||
|
//echo "uvod: $intro</br>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1217,11 +1222,34 @@ class LatexSurvey{
|
|||||||
}
|
}
|
||||||
|
|
||||||
#funkcija ki skrbi za encode dolocenih spornih delov besedila v latex-u prijazno
|
#funkcija ki skrbi za encode dolocenih spornih delov besedila v latex-u prijazno
|
||||||
function encodeTextHere($text='', $vre_id=0){
|
function encodeTextHere($text='', $vre_id=0, $naslovStolpca = 0, $img_id=0){
|
||||||
global $site_path, $lang;
|
global $site_path, $lang;
|
||||||
|
//$text = str_replace(' ','X',$text); //nadomesti presledke
|
||||||
//echo "Encoding ".$text."</br>";
|
//echo "Encoding ".$text."</br>";
|
||||||
//echo "vre_id: ".$vre_id."</br>";
|
//echo "vre_id: ".$vre_id."</br>";
|
||||||
|
//echo "ime spremenljivke ".$this->variableName."</br>";
|
||||||
|
|
||||||
|
$text = htmlspecialchars_decode($text); //vse html special chars kot je & spremeni v ustrezne simbole (npr. &=>&)
|
||||||
|
|
||||||
|
//resevanje razbirajanja predolgih neprekinjenih besed in URL - spremenljivke za kasnejsi prilagojen izpis
|
||||||
|
//$numOfWords = str_word_count($text, 0);
|
||||||
|
$numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu
|
||||||
|
$stringLength = strlen($text);
|
||||||
|
|
||||||
|
$findSpace = ' ';
|
||||||
|
$posSpace1 = strpos($text, $findSpace); //najdi pozicijo prvega presledka v besedilu
|
||||||
|
$posSpace2 = strripos($text, $findSpace); //najdi pozicijo zadnjega presledka v besedilu
|
||||||
|
|
||||||
|
|
||||||
|
$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
|
||||||
|
|
||||||
$this->path2UploadedImages = $site_path.'uploadi/editor/';
|
$this->path2UploadedImages = $site_path.'uploadi/editor/';
|
||||||
if($text == ''){ //ce ni teksta, vrni se
|
if($text == ''){ //ce ni teksta, vrni se
|
||||||
@ -1234,6 +1262,7 @@ class LatexSurvey{
|
|||||||
$findImgLength = strlen($findImg);
|
$findImgLength = strlen($findImg);
|
||||||
$findUl = '<ul';
|
$findUl = '<ul';
|
||||||
$findUlLength = strlen($findUl);
|
$findUlLength = strlen($findUl);
|
||||||
|
$findOl = '<ol';
|
||||||
$findLi = '<li';
|
$findLi = '<li';
|
||||||
|
|
||||||
$findPar = '<p>';
|
$findPar = '<p>';
|
||||||
@ -1241,28 +1270,140 @@ class LatexSurvey{
|
|||||||
$pos = strpos($text, $findme);
|
$pos = strpos($text, $findme);
|
||||||
$posImg = strpos($text, $findImg);
|
$posImg = strpos($text, $findImg);
|
||||||
$posUl = strpos($text, $findUl);
|
$posUl = strpos($text, $findUl);
|
||||||
|
$posOl = strpos($text, $findOl);
|
||||||
$posLi = strpos($text, $findLi);
|
$posLi = strpos($text, $findLi);
|
||||||
$posPar = strpos($text, $findPar);
|
$posPar = strpos($text, $findPar);
|
||||||
|
|
||||||
|
//echo "pozicija paragrafa: $posPar </br>";
|
||||||
|
|
||||||
|
//ureditev izrisa slike
|
||||||
|
if($posImg !== false){
|
||||||
|
$numOfImgs = substr_count($text, $findImg); //stevilo '<img ' 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
|
||||||
|
|
||||||
|
$imageName = $this->path2UploadedImages."".$this->getImageName($text, 0, '<img', $vre_id, $img_id);
|
||||||
|
$imageNameTest = $imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
|
||||||
|
//echo $imageName."</br>";
|
||||||
|
//error_log("iz survey element: ".$imageNameTest);
|
||||||
|
//echo("iz survey element imageNameTest: ".$imageNameTest."</br>");
|
||||||
|
//echo "Obstaja ? ".file_exists($imageNameTest)."</br>";
|
||||||
|
//echo("iz survey element imageName: ".$imageName."</br>");
|
||||||
|
//echo "velikost: ".filesize($imageNameTest)."</br>";
|
||||||
|
/* if(filesize($imageNameTest) > 0){
|
||||||
|
$text = $textPrej.' '.PIC_SIZE_ANS."{".$imageName."}".' '.$textPotem;
|
||||||
|
}else{
|
||||||
|
$image = $lang['srv_pc_unavailable'];
|
||||||
|
$text = $textPrej.' '.$image.' '.$textPotem;
|
||||||
|
} */
|
||||||
|
$text = '';
|
||||||
|
//$text = $textPrej.' ';
|
||||||
|
|
||||||
|
//if(filesize($imageNameTest) > 0){
|
||||||
|
if(file_exists($imageNameTest)){
|
||||||
|
$text .= $textPrej.' '.PIC_SIZE_ANS."{".$imageName."}";
|
||||||
|
}else{
|
||||||
|
$image = $lang['srv_pc_unavailable'];
|
||||||
|
$text .= $image;
|
||||||
|
}
|
||||||
|
$text .= ' '.$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
|
//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('\\','\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);
|
||||||
|
|
||||||
|
if(substr_count($text, '#')){ //ce je stevilo # vecje od 1
|
||||||
$text = str_replace('#','\#',$text);
|
$text = str_replace('#','\#',$text);
|
||||||
|
}else{
|
||||||
|
$text = str_replace('#','\# ',$text);
|
||||||
|
}
|
||||||
$text = str_replace('%','\% ',$text);
|
$text = str_replace('%','\% ',$text);
|
||||||
$text = str_replace('€','\euro',$text);
|
$text = str_replace('€','\euro',$text);
|
||||||
$text = str_replace('^','\textasciicircum{} ',$text);
|
$text = str_replace('^','\textasciicircum{} ',$text);
|
||||||
$text = str_replace('_','\_ ',$text);
|
$text = str_replace('_','\_ ',$text);
|
||||||
$text = str_replace('~','\textasciitilde{} ',$text);
|
$text = str_replace('~','\textasciitilde{} ',$text);
|
||||||
|
if(strpos($text, '&')){ //ce je prisotno v besedilu &'
|
||||||
$text = str_replace('&','\& ',$text);
|
$text = str_replace('&','\& ',$text);
|
||||||
|
}else{
|
||||||
|
$text = str_replace('&','\& ',$text);
|
||||||
|
}
|
||||||
|
$text = str_replace(' ','~',$text);
|
||||||
//$text = str_replace('<','\textless ',$text);
|
//$text = str_replace('<','\textless ',$text);
|
||||||
$text = str_replace('<',' \textless ',$text);
|
$text = str_replace('<',' \textless ',$text);
|
||||||
//$text = str_replace('>','\textgreater ',$text);
|
//$text = str_replace('>','\textgreater ',$text);
|
||||||
$text = str_replace('>',' \textgreater ',$text);
|
$text = str_replace('>',' \textgreater ',$text);
|
||||||
//ureditev posebnih karakterjev za Latex - konec
|
//ureditev posebnih karakterjev za Latex - konec
|
||||||
|
|
||||||
|
//ureditev grskih crk
|
||||||
|
$text = str_replace('α','\textalpha ',$text); //ά
|
||||||
|
$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('ο','o',$text); // \textomicron ne dela
|
||||||
|
$text = str_replace('ο','\textgreek{ο}',$text);
|
||||||
|
//$text = str_replace('ς','\textvarsigma ',$text);
|
||||||
|
$text = str_replace('ς','\textgreek{ς}',$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);
|
||||||
|
$text = str_replace('ύ','\textgreek{ύ}',$text);
|
||||||
|
//ureditev grskih crk - konec
|
||||||
|
|
||||||
|
//ureditev ostalih posebnih crk
|
||||||
|
$text = str_replace('ə','\textschwa ',$text);
|
||||||
|
//ureditev ostalih posebnih crk - konec
|
||||||
|
|
||||||
|
|
||||||
//ureditev preureditve html kode ul in li v latex itemize
|
//ureditev preureditve html kode ul in li v latex itemize
|
||||||
if($posUl !== false){
|
if($posUl !== false){
|
||||||
//echo "text prej: ".$text."</br>";
|
//echo "text prej: ".$text."</br>";
|
||||||
@ -1272,8 +1413,12 @@ class LatexSurvey{
|
|||||||
//if($numOfUl!=0){
|
//if($numOfUl!=0){
|
||||||
if($numOfUl!=0 && $posLi !== false){ //ce imamo ul in li
|
if($numOfUl!=0 && $posLi !== false){ //ce imamo ul in li
|
||||||
$text = str_replace('<ul>','\begin{itemize} ', $text);
|
$text = str_replace('<ul>','\begin{itemize} ', $text);
|
||||||
$text = str_replace('<li>','\item ', $text);
|
$text = str_replace('<ul','\begin{itemize} ', $text);
|
||||||
$text = str_replace('</ul>','\end{itemize} ', $text);
|
/* $text = str_replace('<li>','\item ', $text);
|
||||||
|
$text = str_replace('<li','\item ', $text); */
|
||||||
|
$text = str_replace('<li>','\item \ ', $text);
|
||||||
|
$text = str_replace('<li','\item \ ', $text);
|
||||||
|
$text = str_replace('</ul>','\end{itemize} \ ', $text);
|
||||||
}
|
}
|
||||||
//echo "prazno v html: ".strpos($text, '\r')."</br>";
|
//echo "prazno v html: ".strpos($text, '\r')."</br>";
|
||||||
//echo "text potem: ".$text."</br>";
|
//echo "text potem: ".$text."</br>";
|
||||||
@ -1281,18 +1426,120 @@ class LatexSurvey{
|
|||||||
}
|
}
|
||||||
//ureditev preureditve html kode ul in li v latex itemize - konec
|
//ureditev preureditve html kode ul in li v latex itemize - konec
|
||||||
|
|
||||||
|
//ureditev preureditve html kode ol in li v latex enumerate, ki je ostevilcen
|
||||||
|
if($posOl !== false){
|
||||||
|
//echo "text prej: ".$text."</br>";
|
||||||
|
$numOfOl = substr_count($text, $findOl); //stevilo '<ol' v tekstu
|
||||||
|
//echo "numOfUl ".$numOfUl."</br>";
|
||||||
|
######################
|
||||||
|
//if($numOfUl!=0){
|
||||||
|
if($numOfOl!=0 && $posLi !== false){ //ce imamo ol in li
|
||||||
|
$text = str_replace('<ol>','\begin{enumerate} ', $text);
|
||||||
|
/* $text = str_replace('<li>','\item ', $text);
|
||||||
|
$text = str_replace('<li','\item ', $text); */
|
||||||
|
$text = str_replace('<li>','\item \ ', $text);
|
||||||
|
$text = str_replace('<li','\item \ ', $text);
|
||||||
|
$text = str_replace('</ol>','\end{enumerate} \ ', $text);
|
||||||
|
}
|
||||||
|
//echo "prazno v html: ".strpos($text, '\r')."</br>";
|
||||||
|
//echo "text potem: ".$text."</br>";
|
||||||
|
######################
|
||||||
|
}
|
||||||
|
//ureditev preureditve html kode ol in li v latex enumerate, ki je ostevilcen - 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($posPar !== false){ //ce je kaksen html tag <p>, dodaj prazno vrstico oz. break
|
if($posPar !== false){ //ce je kaksen html tag <p>, dodaj prazno vrstico oz. break
|
||||||
|
if($this->variableName=='gdpr'){
|
||||||
if($numOfUl!=0 && $posLi !== false){ //ce imamo ul in li
|
if($numOfUl!=0 && $posLi !== false){ //ce imamo ul in li
|
||||||
$divider = ' ';
|
$divider = ' ';
|
||||||
}else{
|
}else{
|
||||||
$divider = ' \\ \\\\ ';
|
$divider = ' \\ \\\\ ';
|
||||||
}
|
}
|
||||||
//$text = str_replace('<p>',' ', $text);
|
|
||||||
//$text = str_replace('<p>',' \break ', $text);
|
|
||||||
//$text = str_replace('<p>',' \\\\ ', $text);
|
|
||||||
|
|
||||||
$text = str_replace('<p>',$divider, $text);
|
$text = str_replace('<p>',$divider, $text);
|
||||||
|
}else{
|
||||||
|
$text = str_replace('<p>',' ', $text);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//priprava izpisa zelo dolgega besedila brez presledkov (URL, email, ...)
|
||||||
|
//if($numOfSpacesPrej == 0 && ($stringLength >= MAX_STRING_LENGTH)){ //ce v besedilu ni presledkov in je besedilo daljse od max dovoljene dolzine
|
||||||
|
if( ($numOfSpacesPrej == 0 && ($stringLength >= MAX_STRING_LENGTH)) || ($numOfSpacesPrej == 1 && $posSpace1 == $posSpace2 && $stringLength >= MAX_STRING_LENGTH)){ //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
|
||||||
|
$text = substr_replace($text, $this->texNewLine, MAX_STRING_LENGTH, 0); //dodaj na ustrezni dolzini besedila prehod v novo vrstico
|
||||||
|
}
|
||||||
|
//priprava izpisa zelo dolgega besedila brez presledkov - konec
|
||||||
|
|
||||||
|
//echo "text potem: ".$text."</br>";
|
||||||
|
|
||||||
|
//detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa
|
||||||
|
$findAt = '@';
|
||||||
|
$numOfAt = substr_count($text, $findAt); //stevilo '@' v besedilu
|
||||||
|
|
||||||
|
$posAt = strpos($text, $findAt);
|
||||||
|
if($posAt && $posSpace1){ //ce je prisotna afna in je prisoten presledek v besedilu
|
||||||
|
//echo "afna je: $posAt </br>";
|
||||||
|
//echo "Encoding: ".$text."</br>";
|
||||||
|
|
||||||
|
//najdi prvi presledek po afni
|
||||||
|
//echo substr($text, $posAt) ."</br>";
|
||||||
|
$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
|
||||||
|
//echo $posSpace1Mail."</br>";
|
||||||
|
|
||||||
|
//najdi prvi presledek pred afno
|
||||||
|
$posSpace2Mail = strripos(substr($text, 0, $posAt), $findSpace); //najdi pozicijo zadnjega presledka v besedilu pred e-naslovom
|
||||||
|
//echo $posSpace2Mail."</br>";
|
||||||
|
|
||||||
|
//dodaj po e-naslovu potrebno latex kodo za zakljucek url
|
||||||
|
$text = substr_replace($text, '}', $posSpace1Mail, 0);
|
||||||
|
|
||||||
|
//dodaj pred e-naslovom potrebno latex kodo za url
|
||||||
|
//substr_replace(string_name, replacement_string, start_pos, length)
|
||||||
|
$text = substr_replace($text, ' \url{', $posSpace2Mail+1, 0);
|
||||||
|
//echo $text."</br>";
|
||||||
|
}
|
||||||
|
//detekcija prisotnosti e-naslova v besedilu in primerna preureditev, da pride do pravilnega izpisa - konec
|
||||||
|
|
||||||
|
|
||||||
|
//RESEVANJE BESEDILA V CIRILICI
|
||||||
|
$contains_cyrillic = (bool) preg_match('/[\p{Cyrillic}]/u', $text); //ali je v besedilu cirilica?
|
||||||
|
if($contains_cyrillic){ // ce je cirilica v besedilu
|
||||||
|
$text = '\foreignlanguage{russian}{'.$text.'}';
|
||||||
|
}
|
||||||
|
//RESEVANJE BESEDILA V CIRILICI - konec
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//RESEVANJE odstranitve dodatnih style tag-ov po ul, ipd. #######################################################
|
||||||
|
$findStyleTagFull = '<style="';
|
||||||
|
$findStyleTagIn = 'style="';
|
||||||
|
$findStyleTagEnd = '">';
|
||||||
|
$numOfStyleTagsFull = substr_count($text, $findStyleTagFull); //stevilo '<style=" ' v tekstu
|
||||||
|
$numOfStyleTagsIn = substr_count($text, $findStyleTagIn); //stevilo 'style=" ' v tekstu
|
||||||
|
if($numOfStyleTagsFull){
|
||||||
|
$numOfStyleTags = $numOfStyleTagsFull;
|
||||||
|
$findStyleTag = $findStyleTagFull;
|
||||||
|
$offset = 2;
|
||||||
|
}else{
|
||||||
|
$numOfStyleTags = $numOfStyleTagsIn;
|
||||||
|
$findStyleTag = $findStyleTagIn;
|
||||||
|
$offset = 1;
|
||||||
|
}
|
||||||
|
for($s=0; $s<$numOfStyleTags; $s++){ //za vsako najdeno 'style=" ' besedilo, uredi njeno odstranitev
|
||||||
|
$posStyleTag = strpos($text, $findStyleTag);
|
||||||
|
$posStyleTagEnd = strpos($text, $findStyleTagEnd, $posStyleTag); //strpos(string,find,start) najdi $findStyleTagEnd v $text, isci od $posStyleTag dalje
|
||||||
|
$dolzinaOff = $posStyleTagEnd - $posStyleTag + $offset;
|
||||||
|
$text = substr_replace($text, "", $posStyleTag, $dolzinaOff); //substr_replace(string,replacement,start,length)
|
||||||
|
}
|
||||||
|
//RESEVANJE odstranitve dodatnih style tag-ov po ul, ipd. - konec #################################################
|
||||||
|
|
||||||
|
//echo "po style: ".$text."</br>";
|
||||||
|
|
||||||
if($pos === false && $posImg === false) { //v tekstu ni br in img
|
if($pos === false && $posImg === false) { //v tekstu ni br in img
|
||||||
|
|
||||||
@ -1302,6 +1549,7 @@ class LatexSurvey{
|
|||||||
$text2Return = ''; //tekst ki bo vrnjen
|
$text2Return = ''; //tekst ki bo vrnjen
|
||||||
|
|
||||||
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico
|
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico
|
||||||
|
if($naslovStolpca==0){ // ce besedilo ni naslov stolpca tabele
|
||||||
if($pos !== false){
|
if($pos !== false){
|
||||||
$pos = strpos($text, $findme);
|
$pos = strpos($text, $findme);
|
||||||
$numOfBr = substr_count($text, $findme); //stevilo '<br />' v tekstu
|
$numOfBr = substr_count($text, $findme); //stevilo '<br />' v tekstu
|
||||||
@ -1331,6 +1579,7 @@ class LatexSurvey{
|
|||||||
}
|
}
|
||||||
$text = $text2Return;
|
$text = $text2Return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico - konec
|
//ureditev preureditev html kode za novo vrstico v latex, ureditev prenosa v novo vrstico - konec
|
||||||
//echo "text potem: ".$text."</br>";
|
//echo "text potem: ".$text."</br>";
|
||||||
$text = preg_replace("/(\R){2,}/", "$1", $text);
|
$text = preg_replace("/(\R){2,}/", "$1", $text);
|
||||||
@ -1339,4 +1588,183 @@ class LatexSurvey{
|
|||||||
}
|
}
|
||||||
#funkcija ki skrbi za encode dolocenih spornih delov besedila v latex-u prijazno - konec
|
#funkcija ki skrbi za encode dolocenih spornih delov besedila v latex-u prijazno - konec
|
||||||
|
|
||||||
|
#funkcija, ki skrbi za pridobitev imena slike, ki jo je potrebno izrisati ######################################
|
||||||
|
function getImageName($text='', $sprId=null, $findme='', $vre_id=0, $img_id=0){
|
||||||
|
global $site_path, $site_url;
|
||||||
|
$imageName = '';
|
||||||
|
//echo "id slike $img_id </br>";
|
||||||
|
if($text == 'hotspot' && $findme == 'hotspot_image='){
|
||||||
|
$sqlParametrov = sisplet_query("SELECT params FROM srv_spremenljivka WHERE id='".$sprId."'");
|
||||||
|
$rowParametrov = mysqli_fetch_row($sqlParametrov);
|
||||||
|
$text = $rowParametrov[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
$pos = strpos($text, $findme); //najdi pozicijo teksta v $findme
|
||||||
|
//echo "text za echo: ".$text."</br>";
|
||||||
|
//if($pos!=''){ //ce je slika v bazi
|
||||||
|
if($pos!=''||$pos==0){ //ce je slika v bazi
|
||||||
|
$imageName = substr($text,$pos); //pokazi le del text od besedila $findme dalje (vkljucno z besedilom)
|
||||||
|
//echo "imageName prej: ".$imageName."</br>";
|
||||||
|
|
||||||
|
//$findme = $site_path.'uploadi/editor/';
|
||||||
|
$findme = $site_url.'uploadi/editor/';
|
||||||
|
//$findme = 'uploadi/editor/';
|
||||||
|
//$findme = 'editor/';
|
||||||
|
//echo "findme: ".$findme."</br>";
|
||||||
|
$pos = strpos($imageName, $findme); //najdi pozicijo teksta v $findme
|
||||||
|
//echo "najdi tole: ".$findme."</br>";
|
||||||
|
//echo "najdi tukaj: ".$imageName."</br>";
|
||||||
|
//echo "pozicija tega: ".$pos."</br>";
|
||||||
|
if($pos){ //ce je slika na strezniku
|
||||||
|
$slikaNaStrezniku = 1;
|
||||||
|
}else{//ce slike ni na strezniku
|
||||||
|
$slikaNaStrezniku = 0;
|
||||||
|
}
|
||||||
|
//echo "ali je slika na strežniku: ".$slikaNaStrezniku."</br>";
|
||||||
|
if($slikaNaStrezniku==1){ //ce je slika na strezniku
|
||||||
|
$findEditor = 'editor/';
|
||||||
|
$posEditor = strpos($imageName, $findEditor); //najdi pozicijo teksta v $findEditor
|
||||||
|
$imageName = substr($imageName,$posEditor+7); //pokazi le del params od besedila 'editor/' dalje, brez besedila 'editor/'
|
||||||
|
//echo "imagename : ".$imageName."</br>";
|
||||||
|
$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)
|
||||||
|
$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_url.'uploadi/editor/'.$imageName;
|
||||||
|
|
||||||
|
if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png
|
||||||
|
$this->convertGifToPng($path, $slikaNaStrezniku);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($imageExtension == 'jpg' || $imageExtension == 'peg'){ //ce je slika jpg ali jpeg, jo je potrebno pretvoriti v png
|
||||||
|
$this->convertJpgToPng($path, $slikaNaStrezniku, $imageExtension);
|
||||||
|
}
|
||||||
|
}elseif($slikaNaStrezniku==0){ //ce slike ni na strezniku
|
||||||
|
//echo "vre_id: $vre_id </br>";
|
||||||
|
$imageName = $this->getOnlineImageName($imageName, $slikaNaStrezniku, $vre_id, $img_id); //pridobi njen URL
|
||||||
|
}
|
||||||
|
|
||||||
|
$imageName = substr($imageName, 0, strrpos($imageName, '.'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//echo "imagename pred return: ".$imageName."</br>";
|
||||||
|
return $imageName;
|
||||||
|
}
|
||||||
|
#funkcija, ki skrbi za pridobitev imena slike, ki jo je potrebno izrisati - konec ###############################
|
||||||
|
|
||||||
|
function getEndPosition($imageName=''){
|
||||||
|
$findme = '"';
|
||||||
|
$pos = strpos($imageName, $findme); //najdi pozicijo teksta '"'
|
||||||
|
return $pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertGifToPng($path='', $slikaNaStrezniku=null){
|
||||||
|
//echo "path: ".$path."</br>";
|
||||||
|
$image = imagecreatefromgif($path); //pripravi sliko iz gif za pretvorbo
|
||||||
|
$imageName = substr($path, 0, -3); //ime slike brez extension-a
|
||||||
|
//echo $imageName."</br>";
|
||||||
|
$imageNamePNG = $imageName.'png'; //ime slike z ustreznim extension
|
||||||
|
imagepng($image, $imageNamePNG); //pretvori pripravljeno gif sliko v png
|
||||||
|
|
||||||
|
if($slikaNaStrezniku==0){ //ce slika je iz URL in ni na strezniku, GIF izbrisi
|
||||||
|
unlink($imageName.'gif'); //izbrisi gif sliko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertJpgToPng($path='', $slikaNaStrezniku=null, $imageExtension=''){
|
||||||
|
$image = imagecreatefromjpeg($path); //pripravi sliko iz jpg za pretvorbo
|
||||||
|
$imageName = substr($path, 0, strrpos($path, '.')); //ime slike brez extension-a
|
||||||
|
//echo $imageName."</br>";
|
||||||
|
$imageNamePNG = $imageName.'.png'; //ime slike z ustreznim extension
|
||||||
|
imagepng($image, $imageNamePNG); //pretvori pripravljeno jpg sliko v png
|
||||||
|
//echo "pretvorba v png: ".$imageNamePNG."</br>";
|
||||||
|
//echo "xtens: ".$imageExtension."</br>";
|
||||||
|
//$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
|
||||||
|
//echo "tukaj </br>";
|
||||||
|
if($imageExtension == 'jpg'){
|
||||||
|
unlink($imageName.'.'.$imageExtension); //izbrisi sliko
|
||||||
|
}elseif($imageExtension == 'peg'){
|
||||||
|
unlink($imageName.'.j'.$imageExtension); //izbrisi sliko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#funkcija, ki skrbi za pridobitev slike, ki se nahaja nekje online in jo je potrebno izrisati, in vrne lokalno ime slike ######################################
|
||||||
|
function getOnlineImageName($imageName='', $slikaNaStrezniku=null, $vre_id=null, $img_id=0){
|
||||||
|
global $site_path;
|
||||||
|
//echo "imageName v getOnlineImageName nekje vmes 1: ".$imageName."</br>";
|
||||||
|
$row = Cache::srv_spremenljivka(self::$spremenljivka);
|
||||||
|
//echo "sprem: ".self::$spremenljivka."</br>";
|
||||||
|
$spremenljivkaParams = new enkaParameters($row['params']);
|
||||||
|
//echo "params: ".$spremenljivkaParams->get('hotspot_image')."</br>";
|
||||||
|
$imageNameTmp = $spremenljivkaParams->get('hotspot_image');
|
||||||
|
//if($imageNameTmp!=''){ //ce je hotspot
|
||||||
|
if($imageNameTmp!=''&&$vre_id==0){ //ce je hotspot
|
||||||
|
$imageName = $imageNameTmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
$findHttp = 'http';
|
||||||
|
$posHttp = strpos($imageName, $findHttp);
|
||||||
|
$imageName = substr($imageName,$posHttp); //besedilo do zacetka http
|
||||||
|
|
||||||
|
$pos = $this->getEndPosition($imageName); //najdi pozicijo konca URL slike
|
||||||
|
$imageName = substr($imageName, 0, $pos); //pokazi le del params od zacetka besedila do '"' oz. konca URL slike
|
||||||
|
//echo "imageName v getOnlineImageName nekje vmes 2: ".$imageName."</br>";
|
||||||
|
$imageExtension = substr($imageName, $pos-3, 3); //pridobi koncnico slike
|
||||||
|
//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=='gif'||$imageExtension=='jpeg'){ //ce ni veljavnen extension, spremeni ga v png
|
||||||
|
//echo "spremeni extension </br>";
|
||||||
|
$imageExtension='png';
|
||||||
|
}
|
||||||
|
|
||||||
|
if($vre_id){ //ce se pridobiva imena tmp slik iz vrednosti vprasanja
|
||||||
|
//$imgFilename = self::$spremenljivka.'_'.$vre_id.'_tmpImage.'.$imageExtension; //tmp ime slike, ki je sestavljeno iz id spremenljivke+tmpImage+extension
|
||||||
|
$imgFilename = self::$spremenljivka.'_'.$vre_id.'_tmpImage_'.$img_id.'.'.$imageExtension; //tmp ime slike, ki je sestavljeno iz id spremenljivke+tmpImage+extension
|
||||||
|
}else{
|
||||||
|
//$imgFilename = self::$spremenljivka.'_tmpImage.'.$imageExtension; //tmp ime slike, ki je sestavljeno iz id spremenljivke+tmpImage+extension
|
||||||
|
$imgFilename = self::$spremenljivka.'_tmpImage_'.$img_id.'.'.$imageExtension; //tmp ime slike, ki je sestavljeno iz id spremenljivke+tmpImage+extension
|
||||||
|
}
|
||||||
|
|
||||||
|
$pathDir = $site_path.'uploadi/editor/'; //pot za novo mapo, kjer se bodo shranjevale slike za trenutno anketo
|
||||||
|
$path = $pathDir.$imgFilename; //pot do datoteke z imenom datoteke
|
||||||
|
|
||||||
|
# ukaz za pretakanje slike
|
||||||
|
if(IS_WINDOWS){
|
||||||
|
//za windows sisteme //powershell -command "& { iwr URL -OutFile 'PATH' }"
|
||||||
|
$command = 'powershell -command "& { iwr \''.$imageName.'\' -OutFile \''.$path.'\' }"';
|
||||||
|
//$command = 'wget -O \''.$imageName.'\' -O '.$path.' ';
|
||||||
|
}elseif(IS_LINUX){
|
||||||
|
//za linux sisteme //exec('wget URL -P PATH ');
|
||||||
|
//$command = 'wget \''.$imageName.'\' -P '.$path.' ';
|
||||||
|
$command = 'wget -O '.$path.' \''.$imageName.'\' ';
|
||||||
|
//echo "ukaz za pobiranje: $command </br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
//echo "command: ".$command."</br>";
|
||||||
|
exec($command); //pretoci sliko
|
||||||
|
|
||||||
|
//$path = $pathDir.$imgFilename; //pot do datoteke z imenom datoteke
|
||||||
|
|
||||||
|
/* if($imageExtension == 'gif'){ //ce je slika gif, jo je potrebno pretvoriti v png, saj latex ne podpira gif
|
||||||
|
$this->convertGifToPng($path, $slikaNaStrezniku);
|
||||||
|
} */
|
||||||
|
//echo "imgfilename na koncu: ".$imgFilename."</br>";
|
||||||
|
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
|
||||||
|
$this->convertGifToPng($path, $slikaNaStrezniku);
|
||||||
|
}else{
|
||||||
|
$this->convertJpgToPng($path, $slikaNaStrezniku, $imageExtension);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//echo "imgfilename na koncu: ".$imgFilename."</br>";
|
||||||
|
return $imgFilename;
|
||||||
|
}
|
||||||
|
#funkcija, ki skrbi za pridobitev slike, ki se nahaja nekje online in jo je potrebno izrisati, in vrne lokalno ime slike - konec ###############################
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user