View difference between Paste ID: BHcZL7Lt and RzdmnBJ2
SHOW: | | - or go back to the newest paste.
1
<?php
2
    
3
	/* 
4
			Filmotech publishing API
5
			(c) 2013 by Pascal PLUCHON
6
			http://www.filmotech.fr
7
 	*/
8
	
9
	/*
10
			WORDPRESS
11
	*/
12
	
13
	require( '../wp-load.php' );
14
	include('../wp-admin/includes/taxonomy.php');
15
	$post_id_maj=null;
16
	$maj = false;
17
	
18
	require_once("rest.inc.php");
19
	require_once("json.inc.php");
20
	require_once("../include/config.inc.php");	
21
		
22
	class API extends REST {
23
			
24
		public $data = "";
25
		private $cfg;
26
		private $db = NULL;
27
		
28
		// List of allowed methods
29
		private $services = array("check_server", "check_code", "get_config", "create_poster_directory",
30
		 "get_movie_list", "create_table", "update_publishing_date", "publish" );
31
32
		public function __construct(){
33
			parent::__construct();				// Init parent contructor
34
			$this->cfg = new CONFIG(); 			// Init database parameters
35
			$this->dbConnect();					// Initiate Database connection			
36
		}
37
		
38
		// Database connection
39
		private function dbConnect(){
40
			error_reporting(0); // Disable this to see PHP errors
41
			try
42
			{
43
				if ( $this->cfg->DB_TYPE == 'sqlite' ) {
44
					$db_init = new PDO('sqlite:../'.$this->cfg->DB_NAME.'.sqlite3');
45
					// $db_init->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  // Enable this to see PDO errors
46
				} else {
47
				    $db_init = new PDO('mysql:host='.$this->cfg->DB_SERVER.';dbname='.$this->cfg->DB_NAME, 
48
				    $this->cfg->DB_USER, $this->cfg->DB_PASSWORD);
49
					$db_init->query("SET NAMES UTF8"); 
50
				}
51
			}
52
			catch (Exception $e)
53
			{
54
				$error = array( 'error_msg' => $e->getMessage() );
55
				$this->response($this->json($error), 412);
56
			}
57
			$this->db = $db_init;
58
		}
59
		
60
		// Public method for access api.
61
		// This method dynmically call the method based on the query string
62
		public function processApi(){
63
			$func = strtolower(trim(str_replace("/","",$_REQUEST['rquest'])));
64
			// if((int)method_exists($this,$func) > 0)
65
			if (in_array($func,$this->services))
66
				$this->$func();
67
			else
68
				$this->response('',404); 	// If the method not exist with in this class, 
69
											// response would be "Page not found".
70
		}
71
		
72
		// Check if the service is available
73
		private function check_server(){
74
			$success = array('status' => "OK" );
75
			$this->response($this->json($success),200);
76
		}
77
		
78
		// Check the security code (API_ACCESS_CODE) and the access method (POST)
79
		private function check_code(){
80
			if($this->get_request_method() != "POST")
81
			{
82
				$error = array('error_code' => "100" );
83
				$this->response($this->json($error),401);
84
			}
85
86
			if (!$this->_request['code']) {
87
				$error = array('error_code' => "101" );
88
				$this->response($this->json($error),401);
89
			}
90
			
91
			$code = $this->_request['code'];
92
			if ($code!=$this->cfg->API_ACCESS_CODE) { 
93
				$error = array('error_code' => "102" );
94
				$this->response($this->json($error),401);
95
			}
96
		}
97
98
		// Get the configuration of the API and some parameters
99
		protected function get_config(){		
100
			$this->check_code();
101
			
102
			$tableau = array('status' => 'OK' );
103
			$tableau["API_VERSION"] = $this->cfg->API_VERSION;
104
			$tableau["POSTERS_DIRECTORY"] = $this->cfg->POSTERS_DIRECTORY;
105
			$tableau["DB_TABLE"] = $this->cfg->DB_TABLE;
106
			$tableau["PHP_VERSION"] = PHP_VERSION;
107
			$this->response($this->json($tableau),200);
108
		}
109
		
110
		// Create poster directory
111
		private function create_poster_directory(){
112
			$this->check_code();
113
114
			$result = false;
115
			$repertoire_affiches = '../' . $this->cfg->POSTERS_DIRECTORY;
116
			if (!is_dir($repertoire_affiches)) {
117
				$result = mkdir($repertoire_affiches);
118
				if (!$result)
119
				{
120
					$error = array( 'error_code' => '201'  );
121
					$this->response($this->json($error),424);
122
				}
123
			}
124
			if (isset($_POST['forceCHMOD'])) chmod( $repertoire_affiches , 0777 );
125
126
			$success = array('status' => 'OK' );
127
			$this->response($this->json($success),200);
128
		}
129
		
130
		// Empty poster directory
131
		private function empty_poster_directory(){
132
			$this->check_code();
133
134
			$repertoire_affiches = '../' . $this->cfg->POSTERS_DIRECTORY;
135
			foreach (glob($repertoire_affiches.'/Filmotech*.jpg') as $filename) {
136
				unlink($filename);
137
			}
138
		}
139
		
140
		// Return ID/Update date from the database
141
		private function get_movie_list(){		
142
			$this->check_code();
143
			/*
144
			$tableau = array('status' => 'OK' );		
145
			$res = $this->db->query("SELECT ID, DateHeureMAJ FROM " . $this->cfg->DB_TABLE );
146
			foreach ($res as $row) {
147
			    $tableau[$row['ID']] = $row['DateHeureMAJ'];				
148
			}
149
			*/
150
			$filename = 'logs.txt';
151
			if (!$handle = fopen($filename, 'w')) {
152
				$error = array('error_code' , '400' );
153
				$this->response($this->json($$error),424);
154
			}
155
			
156
			$tableau = array('status' => 'OK' );
157
			$args = array('numberposts' => -1);
158
			$lastposts = get_posts( $args );
159
			foreach($lastposts as $post) : setup_postdata($post);
160
				$ID=get_post_meta($post->ID, 'id_filmotech',true);
161
				$tableau[$ID] = get_post_meta($post->ID, 'dvd_date_maj',true);	
162
				fwrite($handle, $ID." - ".$tableau[$ID]."\n");
163
			endforeach;
164
			wp_reset_postdata();
165
166
			fclose($handle);
167
			
168
			$this->response($this->json($tableau),200);
169
		}
170
171
		// Return ID/Update date from the WORDPRESS
172
		private function get_movie_list_wordpress(){
173
			$this->check_code();
174
			$tableau = array('status' => 'OK' );
175
			/*
176
			$args = array('numberposts' => -1);
177
			$lastposts = get_posts( $args );
178
			
179
			foreach($lastposts as $post) : setup_postdata($post);
180
				//$chaine=the_ID(). $separator .utf8_decode(get_the_title(get_the_ID())). $separator.utf8_decode(get_the_date());
181
				//$chaine=get_post_meta(get_the_ID(), 'id_filmotech',true). $separator .utf8_decode(get_the_title(get_the_ID())). $separator.utf8_decode(get_the_date("Y-m-d H:i:s"));
182
				//$titre_=utf8_decode(get_the_title(get_the_ID()));
183
				//$chaine=get_post_meta(get_the_ID(), 'id_filmotech',true). $separator .html_entity_decode($titre_,ENT_NOQUOTES,"UTF-8"). $separator.utf8_decode(get_the_date("Y-m-d H:i:s"));
184
				//dvd_date_maj
185
				//$chaine=get_post_meta(get_the_ID(), 'id_filmotech',true). $separator .html_entity_decode($titre_,ENT_NOQUOTES,"UTF-8"). $separator.get_post_meta(get_the_ID(), 'dvd_date_maj',true);
186
				$ID=get_post_meta(get_the_ID(), 'id_filmotech',true);
187
				$tableau[$ID] = get_post_meta(get_the_ID(), 'dvd_date_maj',true);	
188
			endforeach;
189
			*/
190
			$this->response($this->json($tableau),200);
191
			
192
		}
193
		
194
		private function create_table_sqlite() {
195
			$sql = 
196
			  "CREATE TABLE " . $this->cfg->DB_TABLE . " ("
197
	        . "ID integer NOT NULL PRIMARY KEY,"
198
	        . "DateHeureMAJ TimeStamp NOT NULL default '0000-00-00 00:00:00',"
199
	        . "TitreVF varchar(255) NOT NULL default '',"
200
	        . "TitreVO varchar(255) default '',"
201
	        . "Genre varchar(50) default '',"
202
	        . "Pays varchar(255) default '',"
203
	        . "Annee varchar(10) default '',"
204
	        . "Duree int(11) default '0',"
205
	        . "Note int(11) default '0',"
206
	        . "Synopsis text ,"
207
	        . "Acteurs text ,"
208
	        . "Realisateurs text ,"
209
	        . "Commentaires text ,"
210
	        . "Support varchar(50) default '',"
211
	        . "NombreSupport int(11) default '0',"
212
	        . "Edition varchar(255) default '',"
213
	        . "Zone varchar(10) default '',"
214
	        . "Langues varchar(255) default '',"
215
	        . "SousTitres varchar(255) default '',"
216
	        . "Audio varchar(255) default '',"
217
	        . "Bonus text ,"
218
	        . "EntreeType varchar(255) default '',"
219
	        . "EntreeSource varchar(255) default '',"
220
	        . "EntreeDate date default '0000-00-00',"
221
	        . "EntreePrix float default '0',"
222
	        . "Sortie varchar(10) default '',"
223
	        . "SortieType varchar(255) default '',"
224
	        . "SortieDestinataire varchar(255) default '',"
225
	        . "SortieDate date default '0000-00-00',"
226
	        . "SortiePrix float default '0',"
227
	        . "PretEnCours varchar(10) default '',"
228
	        . "FilmVu varchar(5) default 'NON',"
229
	        . "Reference varchar(255) default '',"
230
	        . "BAChemin varchar(255) default '',"
231
	        . "BAType varchar(10) default '',"
232
	        . "MediaChemin varchar(255) default '',"
233
	        . "MediaType varchar(10) default '');"
234
	        . "CREATE INDEX films_idx ON " . $this->cfg->DB_TABLE . " (TitreVF ASC);";
235
236
			try
237
			{
238
				$this->db->query($sql); 
239
				$success = array('status' => "OK" );
240
				$this->response($this->json($success),200);
241
			}
242
			catch (Exception $e)
243
			{
244
				$this->db->query($sql); 
245
				$success = array('status' => "KO" );
246
				$this->response($this->json($success),200);
247
			}
248
	
249
		}		
250
251
		private function create_table_mysql() {
252
			$sql = 'CREATE TABLE IF NOT EXISTS `' . $this->cfg->DB_TABLE . '` ('
253
	        . ' `ID` bigint(20) NOT NULL,'
254
	        . ' `DateHeureMAJ` datetime NOT NULL default \'0000-00-00 00:00:00\','
255
	        . ' `TitreVF` varchar(255) NOT NULL default \'\','
256
	        . ' `TitreVO` varchar(255) NOT NULL default \'\','
257
	        . ' `Genre` varchar(50) NOT NULL default \'\','
258
	        . ' `Pays` varchar(255) NOT NULL default \'\','
259
	        . ' `Annee` varchar(10) NOT NULL default \'\','
260
	        . ' `Duree` int(11) NOT NULL default \'0\','
261
	        . ' `Note` int(11) NOT NULL default \'0\','
262
	        . ' `Synopsis` text,'
263
	        . ' `Acteurs` text,'
264
	        . ' `Realisateurs` text,'
265
	        . ' `Commentaires` text,'
266
	        . ' `Support` varchar(50) NOT NULL default \'\','
267
	        . ' `NombreSupport` int(11) NOT NULL default \'0\','
268
	        . ' `Edition` varchar(255) NOT NULL default \'\','
269
	        . ' `Zone` varchar(10) NOT NULL default \'\','
270
	        . ' `Langues` varchar(255) NOT NULL default \'\','
271
	        . ' `SousTitres` varchar(255) NOT NULL default \'\','
272
	        . ' `Audio` varchar(255) NOT NULL default \'\','
273
	        . ' `Bonus` text,'
274
	        . ' `EntreeType` varchar(255) NOT NULL default \'\','
275
	        . ' `EntreeSource` varchar(255) NOT NULL default \'\','
276
	        . ' `EntreeDate` date NOT NULL default \'0000-00-00\','
277
	        . ' `EntreePrix` float NOT NULL default \'0\','
278
	        . ' `Sortie` varchar(10) NOT NULL default \'\','
279
	        . ' `SortieType` varchar(255) NOT NULL default \'\','
280
	        . ' `SortieDestinataire` varchar(255) NOT NULL default \'\','
281
	        . ' `SortieDate` date NOT NULL default \'0000-00-00\','
282
	        . ' `SortiePrix` float NOT NULL default \'0\','
283
	        . ' `PretEnCours` varchar(10) NOT NULL default \'\','
284
	        . ' `FilmVu` varchar(5) NOT NULL default \'NON\','
285
	        . ' `Reference` varchar(255) NOT NULL default \'\','
286
	        . ' `BAChemin` varchar(255) NOT NULL default \'\','
287
	        . ' `BAType` varchar(10) NOT NULL default \'\','
288
	        . ' `MediaChemin` varchar(255) NOT NULL default \'\','
289
	        . ' `MediaType` varchar(10) NOT NULL default \'\','
290
	        . ' PRIMARY KEY (`ID`),'
291
	        . ' KEY `TitreVF` (`TitreVF`)'
292
	        . ' ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;';
293
294
			try
295
			{
296
				$this->db->query($sql); 
297
			}
298
			catch (Exception $e)
299
			{
300
				$error = array('error_code' => "200" , 'error_msg' => $e->getMessage() );
301
				$this->response($this->json($error),424);
302
			}
303
			$success = array('status' => "OK" );
304
			$this->response($this->json($success),200);
305
		}
306
		
307
		// Create the table in the database
308
		private function create_table() {		
309
			$this->check_code();
310
			
311
			if ( $this->cfg->DB_TYPE == 'sqlite' ) 
312
				{ $this->create_table_sqlite(); }
313
			else 
314
				{ $this->create_table_mysql(); }
315
			
316
		}
317
318
		// Remove a record and his poster (if any)
319
		private function del_record() {			
320
			$this->check_code();
321
			$sql = "DELETE FROM " . $this->cfg->DB_TABLE . " WHERE ID = " . $this->_request['ID'];
322
			try { 
323
				$this->db->query($sql); 
324
			} catch (Exception $e) {
325
				$error = array('error_code' => '500' , 'error_msg' => $e->getMessage()  );
326
				$this->response($this->json($error),424);
327
			}
328
			$repertoire_affiches = '../' . $this->cfg->POSTERS_DIRECTORY;
329
			$filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $this->_request['ID'] );
330
			if (file_exists($filename)) { unlink($filename); }
331
		}
332
		
333
		// Remove a record and his poster (if any) WORDPRESS
334
		private function del_record_wordpress() {			
335
			$this->check_code();
336
			//retrouver le post ui correspond a ID
337
			$args = array('meta_key'=>'id_filmotech', 'meta_value'=>$this->_request['ID']);
338
			$lastposts = get_posts( $args );
339
			foreach($lastposts as $post) : setup_postdata($post);
340
				//On efface l'affiche
341
				$id_filmo=get_post_meta(get_the_ID(), 'id_filmotech',true);
342
				$repertoire_affiches = '../' . $this->cfg->POSTERS_DIRECTORY;
343
				$filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $id_filmo );
344
				if (file_exists($filename)) unlink($filename);
345
				$post_id_maj=get_the_ID();
346
				$maj=true;
347
				//wp_delete_post(get_the_ID());
348
			endforeach;
349
		}
350
		
351
		// Add a poster
352
		private function add_poster() {
353
			$this->check_code();
354
			$repertoire_affiches = '../' . $this->cfg->POSTERS_DIRECTORY;
355
			if (isset($this->_request['Affiche'])) {
356
				$affiche = base64_decode($this->_request['Affiche']);
357
				$filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $this->_request['ID'] );
358
				if (!$handle = fopen($filename, 'wb')) {
359
					$error = array( 'error_code' => '301' );
360
					$this->response($this->json($error),424);
361
				}
362
				if (fwrite($handle, $affiche) === FALSE) {
363
					$error = array( 'error_code' => '302' );
364
					$this->response($this->json($error),424);
365
				}
366
				fclose($handle);
367
				if (isset($this->_request['forceCHMOD'])) chmod( $filename , 0777 );
368
			}
369
			
370
		}
371
372
		// Prepare SQL statement according to db type
373
		private function sql_escape($field) {
374
			if ( $this->cfg->DB_TYPE == 'sqlite' )
375
				{ return str_replace('\'','\'\'',$field); }
376
			else
377
				{ return addslashes($field); }
378
379
		}
380
		
381
		// Add a record and the poster (if any)
382
		private function add_record() {			
383
			$this->check_code();
384
			$champs = array( "DateHeureMAJ", "TitreVF", "TitreVO", "Genre", "Pays", "Annee", "Duree", "Note", "Synopsis", "Acteurs", "Realisateurs", "Commentaires", "Support", "NombreSupport", "Edition", "Zone", "Langues", "SousTitres", "Audio", "Bonus", "EntreeType", "EntreeSource", "EntreeDate", "EntreePrix", "Sortie", "SortieType", "SortieDestinataire", "SortieDate", "SortiePrix", "PretEnCours", "FilmVu", "Reference", "BAChemin", "BAType", "MediaChemin", "MediaType" );
385
386
387
			$sql = 'INSERT INTO ' . $this->cfg->DB_TABLE . '(ID'; 
388
			foreach ($champs as $value) {
389
				$sql .= ', ' . $value;
390
			}
391
			$sql .= ') VALUES(\''.$this->_request['ID'].'\'';
392-
			$filename = sprintf('affiches/Filmotech_%05d.jpg' , $this->_request['ID']);
392+
393
			foreach ($champs as $value) {
394
				$sql .= ', \'' . $this->sql_escape($this->_request[$value]) . '\'';
395-
			$liens_acteurs="";
395+
396-
			$acteurs=str_replace(array("\r", "\r\n", "\n"),'|',$this->_request['Acteurs'], $count);
396+
397-
			//printf( "Count : " .$count."\n");
397+
398-
			$liste_acteurs = explode("|", $acteurs);
398+
399-
			$virgule=",";
399+
400-
			for($i=0;$i<count($liste_acteurs);$i++) {
400+
401-
				//printf( "liste_acteur : " .str_replace('\n','',$liste_acteurs[$i]));
401+
402-
				if ($i==count($liste_acteurs)-1) $virgule="";//si dernier éléments du tableau, pas de virgule a la fin de la chaine de caractères
402+
403-
				$critere_recherche=str_replace(' ','+',$liste_acteurs[$i]);//On remplace les espaces par des +
403+
404-
				$liens_acteurs.='<a href="?s='.$critere_recherche.'">'.$liste_acteurs[$i].'</a>'.$virgule.' ';
404+
405
			} 
406
 			$this->add_poster();
407
		}
408
		
409
		// WORDPRESS
410
		// Add a record and the poster (if any)
411
		private function add_record_wordpress(){
412
			//Gestion des prêts en cours
413
				$pret = $_POST['PretEnCours'];
414
				$resultpret= "OUI";
415
					if ($pret == $resultpret) {
416
					$pretdef = "<font color= '#FF0000' > Oui </FONT>";
417
					}
418
					else {
419
					$pretdef= "<font color= '#008000' > Non </FONT>"; 		
420
					}
421-
			<p><strong>Synopsis :</strong> '.$this->sql_escape($this->_request['Synopsis']).'</p>
421+
			//Gestion des films vus
422
				$vus = $_POST['FilmVu'];
423
				$resultvus= "OUI";
424
					if ($vus == $resultvus) {
425
						$vusdef = "<font color= '#008000' > Oui </FONT>";
426
					}
427-
			<p><strong>Audio :</strong> '.$this->sql_escape($this->_request['Auduio']).'</p>
427+
					else {
428-
			<p><strong>Bonus : </strong>'.$this->sql_escape($this->_request['Bonus']); //str_replace('<br />',', ',nl2br($_POST['Acteurs']))
428+
						$vusdef= "<font color= '#FF0000' > Non </FONT>"; 		
429
					}	
430
					
431
			$bonus = $_POST['Bonus'];
432
			$synopsis = $_POST['Synopsis'];
433
			$this->check_code();
434
			$repertoire_affiches = $this->cfg->POSTERS_DIRECTORY;
435
			$filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $this->_request['ID']);
436
			
437
			//Gestion des acteurs pour ajouter un lien pour chacun
438
				$liens_acteurs="";
439
				$acteurs=str_replace(array("\r", "\r\n", "\n"),'|',$this->_request['Acteurs'], $count);
440
				//printf( "Count : " .$count."\n");
441
				$liste_acteurs = explode("|", $acteurs);
442
				$virgule=",";
443
				for($i=0;$i<count($liste_acteurs);$i++) {
444
					//printf( "liste_acteur : " .str_replace('\n','',$liste_acteurs[$i]));
445
					if ($i==count($liste_acteurs)-1) $virgule="";//si dernier éléments du tableau, pas de virgule a la fin de la chaine de caractères
446
					$critere_recherche=str_replace(' ','+',$liste_acteurs[$i]);//On remplace les espaces par des +
447
					$liens_acteurs.='<a href="?s='.$critere_recherche.'">'.$liste_acteurs[$i].'</a>'.$virgule.' ';
448
				}
449
	
450
			$id_category = wp_create_category($this->sql_escape($this->_request['Genre']));
451
			$post_title     = stripcslashes($this->sql_escape($this->_request['TitreVF']));
452
			$post_content='	<div id="affiche">
453
			<div class="reflection" align="center">
454
				<img class="reflect" src="' . $filename . '" alt="Affiche">
455
			</div>
456
			</div>
457
		
458
			<p align="center">'.$this->sql_escape($this->_request['TitreVO']).'</p>
459
			<table width="90%" align="center">
460
				<tr><td><strong>Annee :</strong> '.$_POST['Annee'].'</td><td><strong>Duree :</strong> '.$this->sql_escape($this->_request['Duree']).' mn</td></tr>
461
				<tr><td><strong>Pays :</strong> '.$_POST['Pays'].'</td><td><strong>Genre :</strong> '.$this->sql_escape($this->_request['Genre']).'</td></tr>
462
				<tr><td><strong>Support :</strong> '.$_POST['Support'].'</td><td><strong>Zone :</strong> '.$this->sql_escape($this->_request['Zone']).'</td></tr>
463
				<tr><td><strong>Pret en Cours:</strong> '.$pretdef.'</td><td><strong>Film Vu:</strong> '.$vusdef.'</td></tr>
464
			</table>
465
			<p><strong>Synopsis :</strong> '.$synopsis.'</p>
466
			<!--more-->
467
			<p><strong>Acteurs :</strong> '.$liens_acteurs.'</p>
468
			<p><strong>Realisateurs :</strong> '.$this->sql_escape($this->_request['Realisateurs']).'</p>
469
			<p><strong>Langues :</strong> '.$this->sql_escape($this->_request['langues']).'</p>
470
			<p><strong>Sous-Titres :</strong> '.$this->sql_escape($this->_request['SousTitres']).'</p>
471
			<p><strong>Audio :</strong> '.$this->sql_escape($this->_request['Audio']).'</p>
472
			<p><strong>Bonus : </strong> '.$bonus.'</p>
473
			<p><strong>Bande-annonce :</strong> </p>
474
			'.$this->sql_escape($this->_request['BAChemin']); //pas de formatage (mise en page avec <p> retour chariot) de la ligne pour le bon fonctionnement du plugin Youtube
475
			//str_replace('<br />',', ',nl2br($_POST['Acteurs']))
476
477
			
478
			$my_post = array(
479
			    'ID' => $post_id_maj,
480
			    'post_title'    => $post_title,
481
			    'post_content'    => $post_content, //The full text of the post.
482
			    'post_status'    => 'publish',
483
			    'post_author'    => 1, //The user ID number of the author.
484
			    'post_category'    => array($id_category),  //Add some categories.
485
			    'post_date'        => $this->sql_escape($this->_request['EntreeDate']), //The time post was made.
486
			    'post_name'        => sanitize_file_name($this->sql_escape($this->_request['TitreVF'])), // The name (slug) for your post
487
			    'post_type'        => 'post', // post, page, link, menu item , custom post type
488
			    'tags_input'    => $this->sql_escape($this->_request['Genre']) // For tags
489
			);
490
			
491
			// Insert the post into the database
492
			$id_post=wp_insert_post( $my_post );
493-
				$this->del_record();
493+
494-
				$this->add_record();
494+
495
				add_post_meta($id_post, "id_filmotech", $this->_request['ID']);
496
				add_post_meta($id_post, "dvd_cover", $filename);
497-
				$this->del_record();
497+
498
				add_post_meta($id_post, "dvd_ba", $this->_request['BAChemin']);
499
				add_post_meta($id_post, "dvd_date_maj", $this->_request['DateHeureMAJ']);//DateHeureMAJ
500
				add_post_meta($id_post, "dvd_pays", $this->_request['Pays']);//Pays
501
			}
502
			else {
503
				update_post_meta($id_post, "id_filmotech", $this->_request['ID']);
504
				update_post_meta($id_post, "dvd_cover", $filename);
505
				update_post_meta($id_post, "dvd_note", $this->_request['note']);
506
				update_post_meta($id_post, "dvd_ba", $this->_request['BAChemin']);
507
				update_post_meta($id_post, "dvd_date_maj", $this->_request['DateHeureMAJ']);//DateHeureMAJ
508
				update_post_meta($id_post, "dvd_pays", $this->_request['Pays']);//Pays
509
			}
510
			$this->add_poster();
511
		}
512
513
		// Update the last publishing date (shown in the movie list page)
514
		private function update_publishing_date(){
515
			$this->check_code();
516
			$filename = '../update.txt';
517
			if (!$handle = fopen($filename, 'w')) {
518
				$error = array('error_code' , '400' );
519
				$this->response($this->json($$error),424);
520
			}
521
			if (fwrite($handle, $_POST['DateMAJ'] ) === FALSE) {
522
				$error = array('error_code' , '401' );
523
				$this->response($this->json($error),424);
524
			}
525
			fclose($handle);
526
			$success = array('status' => 'OK' );
527
			$this->response($this->json($success),200);
528
		}
529
		
530
		// Main processs, add, update or remove records
531
		private function publish(){
532
			$this->check_code();
533
			
534
			if (isset($this->_request['ForceUpdate'])) $this->empty_poster_directory();
535
			
536
			if ($this->_request['ACTION']=='ADD') {
537
				//$this->add_record();
538
				/*WORDPRESS*/
539
				$this->add_record_wordpress();
540
			}
541
			if ($this->_request['ACTION']=='UPDATE') {
542
				//$this->del_record();
543
				//$this->add_record();
544
				/*WORDPRESS*/
545
				$this->del_record_wordpress();
546
				$this->add_record_wordpress();
547
			}
548
			if ($this->_request['ACTION']=='DELETE') {
549
				//$this->del_record();
550
				/*WORDPRESS*/
551
				$this->del_record_wordpress();
552
			}
553
554
			$tableau = array("action" => $this->_request['ACTION'] , 
555
				"TitreVF" => $this->_request['TitreVF'] , "ID" => $this->_request['ID'] );
556
			$this->response($this->json($tableau),200);
557
		}
558
559
		// Encode array into JSON
560
		private function json($data){
561
		// create a new instance of Services_JSON
562
			$json = new Services_JSON();
563
			if(is_array($data)){
564
				return $json->encode($data);
565
			}
566
		}
567
	}
568
569
	// Initiiate Library
570
	
571
	$api = new API;
572
	$api->processApi();
573
?>