summaryrefslogblamecommitdiffstats
path: root/admin/survey/classes/class.SurveyHeatMapBackground.php
blob: 0b37a7e6c240272e97468521dfa399a7f6891391 (plain) (tree)








































































































































                                                                                                                                                              
<?php
/** 
 *  November 2016
 * 
 * Pridobi podatke o klikanih tockah na slikah, za njihov prikaz v heatmap
 * 
 * @author Patrik Pucer
 */
include_once('../survey/definition.php');

class SurveyHeatMapBackground
{	
    function __construct() {		
    }

    function ajax() {
        if(isset($_POST['heatmapBackground_data'])) {
			$spr_id = $_POST['heatmapBackground_data'];
			//echo $spr_id;
			$data = sisplet_query("SELECT params from srv_spremenljivka WHERE id = $spr_id");
			$rowImageHtml = mysqli_fetch_assoc($data);
			$spremenljivkaParams = new enkaParameters($rowImageHtml['params']);
			
			//kopiranje slike iz spleta, ce ta ni na lokalnem strezniku
			//$this->getImagename('hotspot', $spr_id, 'hotspot_image=');
			$text=$spremenljivkaParams->get('hotspot_image');
			$this->changeHeatmapImage($text, $spr_id);
			//kopiranje slike iz spleta, ce ta ni na lokalnem strezniku - konec			
			
			
			echo $spremenljivkaParams->get('hotspot_image');
        }
		exit();
    }
	
		
	//function getImagename($text, $sprId, $findme){
	function changeHeatmapImage($text, $sprId){
		global $site_path;
		$imageName = $text;		
		//echo "imageName ".$imageName."</br>";
		$findme = 'editor/';
		
		$pos = strpos($imageName, $findme);	//najdi pozicijo teksta 'editor/'
		//echo "editor je tu ".$pos."</br>";

		if($pos){	//ce je slika na strezniku
			$slikaNaStrezniku = 1;
		}else{//ce slike ni na strezniku
			$slikaNaStrezniku = 0;
		}
		
		if($slikaNaStrezniku==0){	//ce slika ni na strezniku
			$this->getOnlineImageName($imageName, $slikaNaStrezniku, $sprId);	//pridobi njen URL				
		}
		//$imageName = substr($imageName, 0, $pos-4);	//pokazi le del params od zacetka besedila do '"'-4character manj ".png"/".jpg"*/
		
		//echo "imagename pred return: ".$imageName."</br>";
		//return $imageName;		
	}
	
	function getEndPosition($imageName){
		$findme = '"';
		$pos = strpos($imageName, $findme);	//najdi pozicijo teksta '"'
		return $pos;
	}
	
	function getOnlineImageName($imageName, $slikaNaStrezniku, $sprId){
		global $site_path;
		global $site_url;
		//$imageName = "jo je potrebno pobrati online";
		//$row = Cache::srv_spremenljivka(self::$spremenljivka);
		$row = Cache::srv_spremenljivka($sprId);
		//echo "sprem: ".self::$spremenljivka."</br>";
		$spremenljivkaParams = new enkaParameters($row['params']);
		//echo "params: ".$spremenljivkaParams->get('hotspot_image');
		$imageName = $spremenljivkaParams->get('hotspot_image');
 		
		$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
		$imageExtension = substr($imageName, $pos-3, 3);	//pridobi koncnico slike
		
		if($imageExtension!='jpg'&&$imageExtension!='png'&&$imageExtension!='gif'){	//ce ni veljavnen extension, spremeni ga v png
			$imageExtension='png';
		}
	
		$imgFilename = $sprId.'tmpImage.'.$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.'\' }"';
		}elseif(IS_LINUX){
			//za linux sisteme //exec('wget URL -P PATH ');
			//$command = 'wget \''.$imageName.'\' -P '.$path.' ';
			$command = 'wget -O '.$path.' \''.$imageName.'\' ';
		}		
		//echo $command;
		exec($command); //pretoci sliko
		
		//$path = $pathDir.$imgFilename;	//pot do datoteke z imenom datoteke
		if($imageExtension == 'gif' || $imageExtension == 'jpg'){	//ce je slika gif, jo je potrebno pretvoriti v png,  saj latex ne podpira gif
			//$this->convertGifToPng($path, $slikaNaStrezniku);
			$this->convertGifToPng($path, $slikaNaStrezniku, $imageExtension);
		}

	}
	
	function convertGifToPng($path, $slikaNaStrezniku, $imageExtension){
		//echo "path: ".$path."</br>";
		if($imageExtension == 'gif'){
			$image = imagecreatefromgif($path);	//pripravi sliko iz gif za pretvorbo
		}elseif($imageExtension == 'jpg'){
			$image = imagecreatefromjpeg($path);	//pripravi sliko iz jpeg 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,
			if($imageExtension == 'gif'){
				unlink($imageName.'gif');	//izbrisi gif sliko
			}elseif($imageExtension == 'jpg'){
				unlink($imageName.'jpg');	//izbrisi jpg sliko
			}
		}		
	}
	
	
}