summaryrefslogtreecommitdiffstats
path: root/admin/survey/classes/class.SurveyHeatMapBackground.php
blob: 0b37a7e6c240272e97468521dfa399a7f6891391 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?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
			}
		}		
	}
	
	
}