Nenesse

requeteur_v0.8

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