Nenesse

requeteur_v0.7

Mar 17th, 2011
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.75 KB | None | 0 0
  1. <?php
  2. #################################################################################################
  3. # REQUETEUR.PHP ( Filmotech 3.0.0 )
  4. #
  5. # (c) 2007-2010 Pascal PLUCHON
  6. #
  7. # Informations : http://www.filmotech.fr
  8. #################################################################################################
  9. //
  10.  
  11. /** Make sure that the WordPress bootstrap has run before continuing. */
  12. require( dirname(__FILE__) . '/wp-load.php' );
  13. include('wp-admin/includes/taxonomy.php');
  14.  
  15. //require_once("config.inc.php");
  16. $version_requeteur = "3.1.1";
  17. $identifiant = "identifiant";
  18. $separator = "£#$";
  19. $maj = false;
  20. $post_id_maj=null;
  21. $repertoire_affiches = "affiches";
  22. $chaine="";
  23. $message = array(
  24. 'CodeIncorrect' => 'Code d\'accès incorrect',
  25. 'AffichesSupprimees' => '%d affiche(s) supprimée(s).',
  26. 'TableFilmsVidee' => 'Table des films vidée.',
  27. 'ErreurCreationRepertoire' => 'Erreur à la création du répertoire \'' . $repertoire_affiches . '\'.',
  28. 'RepertoireCree' => 'Le répertoire \'' . $repertoire_affiches . '\' a été créé.',
  29. 'RepertoireExisteDeja' => 'Le répertoire \'' . $repertoire_affiches . '\' existe déjà.',
  30. 'ActionInvalide' => 'Action invalide',
  31. 'ParametresInvalides' => 'Paramètres invalides',
  32. 'IdentifiantAbsent1' => '<br />Requeteur <b>Filmotech</b>.<br />Pour accéder cette page, vous devez utiliser Filmotech.<br /><br />',
  33. 'IdentifiantAbsent2' => 'Pour plus d\'informations allez sur <a href="http://www.filmotech.fr">le site Filmotech</a>.',
  34. 'ErreurOuvrirAffiche' => 'Impossible d\'ouvrir le fichier affiche\n',
  35. 'ErreurEcrireAffiche' => 'Impossible d\'écrire dans le fichier affiche\n',
  36. 'AfficheMiseAJour' => 'Affiche %s mise à jour.',
  37. 'AfficheAjoutee' => 'Affiche %s ajoutée.',
  38. 'MiseAJourBasev1v2' => 'la base a été mise jour v1 -> v2',
  39. 'ForcerMiseAJour' => 'Vous devrez forcer la mise à jour des films dans l\'écran suivant',
  40. 'EnregistrementAjoute' => 'Enregistrement n°%s (%s) ajouté.',
  41. 'EnregistrementMisAJour' => 'Enregistrement n°%s (%s) mis à jour.',
  42. 'EnregistrementSupprime' => 'Enregistrement n°%s (%s) supprimé.',
  43. 'AfficheSupprimee' => 'Affiche %s supprimée.',
  44. 'ParamVersion' => 'Version',
  45. 'ParamTable' => 'Table des films',
  46. 'ParamRepertoire' => 'Répertoire des images'
  47.  
  48. );
  49.  
  50. if (!get_magic_quotes_gpc()) {
  51. $_POST = addslashes_array($_POST);
  52. }
  53. function addslashes_array($data) {
  54. if (is_array($data)){
  55. foreach ($data as $key => $value){
  56. $data[$key] = addslashes_array($value);
  57. }
  58. return $data;
  59. }else{
  60. return addslashes($data);
  61. }
  62. }
  63. // Contrôle systématique : l'identifiant doit être renseigné
  64. if (!isset($_POST['identifiant']) )
  65. {
  66. echo( $message['IdentifiantAbsent1'] );
  67. echo( $message['IdentifiantAbsent2'] );
  68. exit;
  69. }
  70. elseif ( stripcslashes(utf8_decode($_POST['identifiant'])) != $identifiant ) {
  71. { echo( $message['CodeIncorrect'] . "\n" ); exit; }
  72. }
  73. if (isset($_POST['action'])) {
  74. switch ($_POST['action']) {
  75. case 0: // Création de la table des films si elle n'existe pas
  76. // on zappe
  77. echo("REQUETE OK\n");
  78. break;
  79.  
  80. case 1: // Récupération de la liste pour comparaison
  81. $args = array('numberposts' => -1);
  82. $lastposts = get_posts( $args );
  83. foreach($lastposts as $post) : setup_postdata($post);
  84. //$chaine=the_ID(). $separator .utf8_decode(get_the_title(get_the_ID())). $separator.utf8_decode(get_the_date());
  85. //$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"));
  86. $titre_=utf8_decode(get_the_title(get_the_ID()));
  87. //$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"));
  88. //dvd_date_maj
  89. $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);
  90. echo $chaine;
  91. echo("\n");
  92. //the_content();
  93. endforeach;
  94. echo("REQUETE OK\n");
  95. break;
  96.  
  97. case 2: // Paramétrage
  98. echo("REQUETE OK\n");
  99. echo( "PARAM_VERSION : " . $message['ParamVersion'] . " : " . $version_requeteur . "\n" );
  100. echo( "PARAM_TABLE : " . $message['ParamTable'] . " : " . $nom_table . "\n" );
  101. echo( "PARAM_REPERTOIRE : " . $message['ParamRepertoire'] . " : " . $repertoire_affiches . "\n" );
  102. break;
  103.  
  104. case 3: // Identifiant d'accès
  105. if (stripcslashes(utf8_decode($_POST['identifiant'])) == $identifiant ) echo( "REQUETE OK\n" ); else echo( $message['CodeIncorrect'] . "\n" );
  106. break;
  107.  
  108. case 4: // Effacer les films provenants de Filmotech
  109. $force_delete = 1; // bypass trash
  110. $args = array('numberposts' => -1);
  111. $lastposts = get_posts( $args );
  112. foreach($lastposts as $post) : setup_postdata($post);
  113. if ( get_post_meta($post->ID, 'id_filmotech', true) ) {
  114. //$custom_field = get_post_meta($post->ID, 'fmt_ID', true) ;
  115. wp_delete_post( $post->ID, $force_delete );
  116. }
  117. endforeach;
  118. echo("REQUETE OK\n");
  119. echo("INFO : " . $message['TableFilmsVidee'] );
  120. break;
  121.  
  122. case 6: // Effacer les affiches
  123. $cpt=0;
  124. if ($handle = opendir($repertoire_affiches)) {
  125. while (false !== ($file = readdir($handle))) {
  126. if ($file != "." && $file != "..") {
  127. if ((substr($file,0,10) == "Filmotech_") && (substr($file,15) == ".jpg"))
  128. { unlink($repertoire_affiches."/".$file); $cpt+=1; }
  129. }
  130. }
  131. closedir($handle);
  132. }
  133. echo("REQUETE OK\n");
  134. printf( "INFO : " . $message['AffichesSupprimees'] , $cpt );
  135. break;
  136.  
  137. case 8: // Création du répertoire des affiches (si besoin)
  138. $result = false;
  139. if (!is_dir($repertoire_affiches)) {
  140. $result = mkdir($repertoire_affiches);
  141. if ($result===false) echo($message['ErreurCreationRepertoire']);
  142. }
  143. echo( "REQUETE OK\n" );
  144. if ($result) echo( "INFO : " . $message['RepertoireCree'] ); else echo( "INFO : " . $message['RepertoireExisteDeja'] );
  145. if (isset($_POST['forceCHMOD'])) chmod( $repertoire_affiches , 0777 );
  146. break;
  147.  
  148. case 106: // Mise à jour- On supprime
  149. /*
  150. mysql_select_db($database_fmt, $fmt);
  151. $updateSQL = sprintf("DELETE FROM " . $nom_table . " WHERE ID='%s'", $_POST['ID']);
  152. $Result1 = mysql_query($updateSQL, $fmt) or die(mysql_error());
  153. $filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $_POST['ID'] );
  154. if (file_exists($filename)) unlink($filename);
  155. */
  156. //retrouver le post ui correspond a ID
  157. $args = array('meta_key'=>'id_filmotech', 'meta_value'=>$_POST['ID']);
  158. $lastposts = get_posts( $args );
  159. foreach($lastposts as $post) : setup_postdata($post);
  160. //On efface l'affiche
  161. $id_filmo=get_post_meta(get_the_ID(), 'id_filmotech',true);
  162. $filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $id_filmo );
  163. if (file_exists($filename)) unlink($filename);
  164. $post_id_maj=get_the_ID();
  165. //wp_delete_post(get_the_ID());
  166. endforeach;
  167. $maj = true;
  168. // Sans le break, on passe à l'ajout
  169. case 108: // Ajout
  170. // Le Film
  171. /*
  172. mysql_select_db($database_fmt, $fmt);
  173. $insertSQL = sprintf("INSERT INTO " . $nom_table . " (ID, TitreVF, TitreVO, DateHeureMAJ, Genre, Synopsis, Acteurs, Realisateurs, Commentaires, Bonus, Annee, Duree, Pays, Note, Langues, SousTitres, Audio, Support, NombreSupport, Edition, Zone, EntreeType, EntreeSource, EntreeDate, EntreePrix, SortieType, SortieDestinataire, SortieDate, SortiePrix, Sortie, PretEnCours, FilmVu, Reference, BAChemin, BAType, MediaChemin, MediaType ) VALUES ('%s', '%s', '%s', '%s' , '%s' , '%s' , '%s', '%s' , '%s' , '%s' , '%s' , '%s', '%s' , '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
  174. $_POST['ID'], utf8_decode($_POST['TitreVF']), utf8_decode($_POST['TitreVO']), $_POST['DateHeureMAJ'] ,
  175. utf8_decode($_POST['Genre']), utf8_decode($_POST['Synopsis']), utf8_decode($_POST['Acteurs']),
  176. utf8_decode($_POST['Realisateurs']), utf8_decode($_POST['Commentaires']),
  177. utf8_decode($_POST['Bonus']), utf8_decode($_POST['Annee']), utf8_decode($_POST['Duree']), utf8_decode($_POST['Pays']), $_POST['Note'],
  178. utf8_decode($_POST['Langues']), utf8_decode($_POST['SousTitres']), utf8_decode($_POST['Audio']),
  179. utf8_decode($_POST['Support']), $_POST['NombreSupport'], utf8_decode($_POST['Edition']), $_POST['Zone'],
  180. utf8_decode($_POST['EntreeType']), utf8_decode($_POST['EntreeSource']), $_POST['EntreeDate'], $_POST['EntreePrix'],
  181. utf8_decode($_POST['SortieType']), utf8_decode($_POST['SortieDestinataire']), $_POST['SortieDate'], $_POST['SortiePrix'],
  182. utf8_decode($_POST['Sortie']), utf8_decode($_POST['PretEnCours']), utf8_decode($_POST['FilmVu']),
  183. utf8_decode($_POST['Reference']), utf8_decode($_POST['BAChemin']), utf8_decode($_POST['BAType']),
  184. utf8_decode($_POST['MediaChemin']), utf8_decode($_POST['MediaType']) );
  185. $Result1 = mysql_query($insertSQL, $fmt) or die(mysql_error());
  186. */
  187. $filename = sprintf('affiches/Filmotech_%05d.jpg' , $_POST['ID'] );
  188.  
  189. //Gestion des acteurs pour ajouter un lien pour chacun
  190. $liens_acteurs="";
  191. $acteurs=str_replace(array("\r", "\r\n", "\n"),'|',$_POST['Acteurs'], $count);
  192. //printf( "Count : " .$count."\n");
  193. $liste_acteurs = explode("|", $acteurs);
  194. for($i=0;$i<count($liste_acteurs);$i++) {
  195. //printf( "liste_acteur : " .str_replace('\n','',$liste_acteurs[$i]));
  196. 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
  197. $nomacteur = explode("(", $liste_acteurs[$i]);
  198. $critere_recherche=str_replace(' ','+',$nomacteur[0]); //On remplace les espaces par des +
  199. if (count($nomacteur) > 1) {
  200. $nomrole = '('.$nomacteur[1].', ';
  201. }
  202. else {
  203. $nomrole = ', ';
  204. }
  205. $liens_acteurs.='<a href="?s='.$critere_recherche.'">'.$nomacteur[0].'</a>'.$nomrole.' ';
  206. }
  207. //Gestion des prêts en cours
  208. $pret = $_POST['PretEnCours'];
  209. $resultpret= "OUI";
  210. if ($pret == $resultpret) {
  211. $pretdef = "<font color= '#FF0000' > Oui </FONT>";
  212. }
  213. else {
  214. $pretdef= "<font color= '#008000' > Non </FONT>";
  215. }
  216. //Gestion des films vus
  217. $vus = $_POST['FilmVu'];
  218. $resultvus= "OUI";
  219. if ($vus == $resultvus) {
  220. $vusdef = "<font color= '#008000' > Oui </FONT>";
  221. }
  222. else {
  223. $vusdef= "<font color= '#FF0000' > Non </FONT>";
  224. }
  225.  
  226. //gestion du post de l'article sur Wordpress
  227. $chemin = $_POST['BAChemin'];
  228. If(!is_bool(strrpos($chemin, "allocine"))) $chemin = substr($chemin, 0, strrpos($chemin, '&cfilm'));
  229. If(!is_bool(strrpos($chemin, "commeaucinema"))) $chemin = substr($chemin, 0, strrpos($chemin, '.html'));
  230. $post_content=' <div id="affiche">
  231. <div class="reflection" align="center">
  232. <img class="reflect" src="' . $filename . '" alt="Affiche">
  233. </div>
  234. </div>
  235.  
  236. <p align="center">'.stripcslashes($_POST['TitreVO']).'</p>
  237.  
  238. <table width="90%" align="center">
  239. <tr><td><strong>Annee :</strong> '.$_POST['Annee'].'</td><td><strong>Duree :</strong> '.$_POST['Duree'].' mn</td></tr>
  240. <tr><td><strong>Pays :</strong> '.$_POST['Pays'].'</td><td><strong>Genre :</strong> '.$_POST['Genre'].'</td></tr>
  241. <tr><td><strong>Support :</strong> '.$_POST['Support'].'</td><td><strong>Zone :</strong> '.$_POST['Zone'].'</td></tr>
  242. <tr><td><strong>Pret en Cours:</strong> '.$pretdef.'</td><td><strong>Film Vu:</strong> '.$vusdef.'</td></tr>
  243. </table>
  244. <p><strong>Synopsis :</strong> '.stripcslashes($_POST['Synopsis']).'</p>
  245. <!--more-->
  246. <p><strong>Acteurs :</strong> '.$liens_acteurs.'</p>
  247. <p><strong>Realisateurs :</strong> '.$_POST['Realisateurs'].'</p>
  248. <p><strong>Langues :</strong> '.$_POST['Langues'].'</p>
  249. <p><strong>Sous-Titres :</strong> '.$_POST['SousTitres'].'</p>
  250. <p><strong>Audio :</strong> '.$_POST['Audio'].'</p>
  251. <p><strong>Bonus :</strong>'.stripcslashes($_POST['Bonus']).'</p>
  252. <p><strong>Bande Annonce :</strong>
  253. <p align="center">[video] '.$chemin.'[/video]'; //str_replace('<br />',', ',nl2br($_POST['Acteurs']))
  254.  
  255. //Gestion des catégories
  256.  
  257. //$my_cat = array('cat_name' => $_POST['Genre'], 'category_description' => 'A Cool Category', 'category_nicename' => 'category-slug', 'category_parent' => '');
  258. // Create the category
  259. //$my_cat_id = wp_insert_category($my_cat);
  260. $id_category = wp_create_category($_POST['Genre'], 0);
  261. $post_title = stripcslashes($_POST['TitreVF']);
  262.  
  263. $my_post = array(
  264. 'ID' => $post_id_maj,
  265. 'post_title' => $post_title,
  266. 'post_content' => $post_content, //The full text of the post.
  267. 'post_status' => 'publish',
  268. 'post_author' => 1, //The user ID number of the author.
  269. 'post_category' => array($id_category), //Add some categories.
  270. 'post_date' => $_POST['EntreeDate'], //The time post was made.
  271. 'post_name' => sanitize_file_name($_POST['TitreVF']), // The name (slug) for your post
  272. 'post_type' => 'post', // post, page, link, menu item , custom post type
  273. 'tags_input' => $_POST['Genre'] // For tags
  274. );
  275. // Insert the post into the database
  276. $id_post=wp_insert_post( $my_post );
  277.  
  278. if($maj==false){
  279. add_post_meta($id_post, "id_filmotech", $_POST['ID']);
  280. add_post_meta($id_post, "dvd_cover", $filename);
  281. add_post_meta($id_post, "dvd_note", $_POST['Note']);
  282. add_post_meta($id_post, "dvd_ba", $_POST['BAChemin']);
  283. add_post_meta($id_post, "dvd_date_maj", $_POST['DateHeureMAJ']);
  284. }
  285. else {
  286. update_post_meta($id_post, "id_filmotech", $_POST['ID']);
  287. update_post_meta($id_post, "dvd_cover", $filename);
  288. update_post_meta($id_post, "dvd_note", $_POST['Note']);
  289. update_post_meta($id_post, "dvd_ba", $_POST['[youtube]BAChemin[/youtube]']);
  290. update_post_meta($id_post, "dvd_date_maj", $_POST['DateHeureMAJ']);
  291. }
  292.  
  293. echo("REQUETE OK\n");
  294. if ($maj) printf( "INFO : " . $message['EnregistrementMisAJour'] . "\n" , $_POST['ID'] , stripcslashes(utf8_decode($_POST['TitreVF'])) );
  295. else printf( "INFO : " . $message['EnregistrementAjoute'] . "\n", $_POST['ID'] , stripcslashes(utf8_decode($_POST['TitreVF'])) );
  296.  
  297. // L'affiche (si elle existe)
  298. if (isset($_POST['Affiche'])) {
  299. $affiche = base64_decode($_POST['Affiche']);
  300. $filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $_POST['ID'] );
  301. if (!$handle = fopen($filename, 'wb')) {
  302. echo( $message['ErreurOuvrirAffiche'] . "\n" );
  303. exit;
  304. }
  305. if (fwrite($handle, $affiche) === FALSE) {
  306. echo( $message['ErreurEcrireAffiche'] . "\n" );
  307. exit;
  308. }
  309. else {
  310. if ($maj) printf( "INFO : " . $message['AfficheMiseAJour'] . "\n" , $filename );
  311. else printf( "INFO : " . $message['AfficheAjoutee'] . "\n" , $filename );
  312. }
  313. fclose($handle);
  314. if (isset($_POST['forceCHMOD'])) chmod( $filename , 0777 );
  315. }
  316. break;
  317.  
  318. case 200: // Controle de la version de la table
  319. /*
  320. mysql_select_db($database_fmt, $fmt);
  321. $requeteSQL = "SHOW COLUMNS FROM " . $nom_table;
  322. $Recordset1 = mysql_query($requeteSQL, $fmt) or die(mysql_error());
  323. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  324. if ($totalRows_Recordset1 == 32) { // Base v1
  325. $requeteSQL = 'ALTER TABLE ' . $nom_table . ' ADD COLUMN `Reference` VARCHAR(255) NOT NULL default \'\',';
  326. $requeteSQL .= ' ADD COLUMN `BAChemin` VARCHAR(255) NOT NULL default \'\',';
  327. $requeteSQL .= ' ADD COLUMN `BAType` VARCHAR(10) NOT NULL default \'\',';
  328. $requeteSQL .= ' ADD COLUMN `MediaChemin` VARCHAR(255) NOT NULL default \'\',';
  329. $requeteSQL .= ' ADD COLUMN `MediaType` VARCHAR(10) NOT NULL default \'\';';
  330. $Recordset1 = mysql_query($requeteSQL, $fmt) or die(mysql_error());
  331. echo("REQUETE OK\n");
  332. echo( "INFO : " . $message['MiseAJourBasev1v2'] . "\n" );
  333. echo( $message['ForcerMiseAJour'] . "\n" );
  334. }
  335. else
  336. {
  337. echo("REQUETE OK\n");
  338. }
  339. */
  340. echo("REQUETE OK\n");
  341. break;
  342. case 205: // Suppression
  343. /*
  344. mysql_select_db($database_fmt, $fmt);
  345. $updateSQL = sprintf("DELETE FROM " . $nom_table . " WHERE ID='%s'", $_POST['ID']);
  346. $Result1 = mysql_query($updateSQL, $fmt) or die(mysql_error());
  347. */
  348.  
  349. //retrouver le post ui correspond a ID
  350. $args = array('meta_key'=>'id_filmotech', 'meta_value'=>$_POST['ID']);
  351. $lastposts = get_posts( $args );
  352. foreach($lastposts as $post) : setup_postdata($post);
  353. //On efface l'affiche
  354. //$id_filmo=get_post_meta(get_the_ID(), 'id_filmotech',true);
  355. $id_filmo=get_post_meta($post->ID, 'id_filmotech',true);
  356. $filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $id_filmo );
  357. if (file_exists($filename)) { unlink($filename); printf( "INFO : " . $message['AfficheSupprimee'] , $filename ); }
  358. //$post_id_maj=get_the_ID();
  359. $force_delete = 1; // bypass trash
  360. //wp_delete_post(get_the_ID(), $force_delete);
  361. wp_delete_post($post->ID, $force_delete);
  362. endforeach;
  363.  
  364. echo("REQUETE OK\n");
  365. //$filename = sprintf($repertoire_affiches.'/Filmotech_%05d.jpg' , $_POST['ID'] );
  366. //if (file_exists($filename)) { unlink($filename); printf( "INFO : " . $message['AfficheSupprimee'] , $filename ); }
  367. printf( "INFO : " . $message['EnregistrementSupprime'] , $_POST['ID'] , stripcslashes(utf8_decode($_POST['TitreVF'])) );
  368.  
  369. break;
  370.  
  371. case 210: // Creation du fichier de date de mise a jour
  372. $filename = 'update.txt';
  373. if (!$handle = fopen($filename, 'w')) {
  374. echo( $message['ErreurFichierDateMAJ'] . "\n" );
  375. exit;
  376. }
  377. if (fwrite($handle, $_POST['DateMAJ'] ) === FALSE) {
  378. echo( $message['ErreurFichierDateMAJ'] . "\n" );
  379. exit;
  380. }
  381. else { echo("REQUETE OK\n"); }
  382. fclose($handle);
  383. break;
  384.  
  385. default:
  386. echo($message['ActionInvalide'] . "\n");
  387. break;
  388. }
  389. }
  390. else
  391. {
  392. echo($message['ParametresInvalides'] . "\n");
  393. }
  394. ?>
Add Comment
Please, Sign In to add comment