Fork me on GitHub

Rapport de message :*
 

Re: Utiliser l'api allociné dans xoopstube

Titre du sujet : Re: Utiliser l'api allociné dans xoopstube
par seboseboss sur 29/12/2014 19:41:57

Re

J'ai du reprendre la fonction que j'avais au début car les titres de films avec lettre accentué ne passaient pas tout comme les apostrophes.

Le fichier allosearch.php:
<?php
/**
 * $Id: allosearch.php
 * Module: XoopsTube
 */

include 'header.php';
include 
XOOPS_ROOT_PATH '/header.php';
require_once 
XOOPS_ROOT_PATH '/api-allocine/api-allocine-helper.php';
global 
$xoopsModule$xtubemyts$xoopsModuleConfig;
    
    echo 
'<h1>' _MD_XTUBE_ALLOFORM_TITLE '</h1>';
?>
<html><div class="xoopstube_cadreblock" style="overflow: auto; margin-left: 5%; margin-right: 5%;"></html>
<?php
        $helper  
= new AlloHelper;

    function 
removeAccents($title)
        {
        
$accentued = array("à","á","â","ã","ä","ç","è","é","ê","ë","ì",
        
"í","î","","ï","ñ","ò","ó","ô","õ","ö","ù","ú","û","ü","ý","ÿ",
        
"À","Á","Â","Ã","Ä","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò",
        
"Ó","Ô","Õ","Ö","Ù","Ú","Û","Ü","Ý");
        
$nonaccentued = array("a","a","a","a","a","c","e","e","e","e","i","i",
        
"i","i","n","o","o","o","o","o","u","u","u","u","y","y","A","A","A",
        
"A","A","C","E","E","E","E","I","I","I","I","N","O","O","O","O","O",
        
"U","U","U","U","Y");

        
$title str_replace($accentued$nonaccentued$title);

        return 
$title;
        }
        
$title $_POST['filmtitle'];
    
    
$q removeAccents($title);
    
$page 1;
    
$count 16;
    
    
$filter = array('movie');
    
$profile 'small';

if (isset(
$_POST['submit'])) {
    try {
        
// Envoi de la requête
        
$arrayMovie   $helper->search($q$page$count$filter)->getArray();
 
            if (isset(
$arrayMovie['movie'])) {
                foreach (
$arrayMovie['movie'] as $key) {
                if (isset(
$key['title'])) {
                echo 
"<div class='xoopstube_descrblock' style='float: left; width: 190px; margin: 5px;margin-bottom: 20px; padding: 2px; font-size: 90%; text-align: center;'><span><img src=",$key['poster']," style='width: 190px; height: 260px; align: left;'></img></span>
                <span><font style='color: orange;'>" 
.$key['title']."</font><br />
                <form action='submit_film.php' method='POST'>
                <input type='hidden' value="
.$key['code']." name='filmcode'>
                <input type='submit' value='Selectionner'>
                </form></span></div>"
;
                
                }
                    else {
                        
$titreor $key['originalTitle'];
                        echo 
'<li onClick="fill(''.$titreOr.'');">'.$titreOr.'</li>';
                    }
                }
            }
    }   
    catch (
ErrorException $error) {
        
// En cas d'erreur
        
echo "Erreur n°"$error->getCode(), ": "$error->getMessage(), PHP_EOL;
    }
}else{
    echo 
"pas de résultat";
}    
   
?>
<html></div></html>
<?php


$xoopsTpl
->assign('module_dir'$xoopsModule->getVar('dirname'));
include 
XOOPS_ROOT_PATH '/footer.php';    
?>


Maintenant c'est bon les lettre accentué ne gêne plus mais j'ai toujours le soucis des apostrophes.

Vu que j'ai supprimé l'enregistrement en bdd avant soumission, il ne devrait plus y avoir de soucis car on ne passe pas par mysql, de plus j'ai fait un echo pour voir le titre en sortie de $_post et pas de soucis bien écrit sans antislashe, donc je sais pas.

J'ai aussi enlever les addslash dans submit_film.php

Le bout de code correspondant:

//récupération infos allociné et autocompletion
    
require_once XOOPS_ROOT_PATH '/api-allocine/api-allocine-helper.php';
    
   
// Créer l'objet
    
$helper = new AlloHelper;

    
//Pour plus de clareté, on définit les paramètres à l'avance: le code du film, et la quantité d'informations à récupérer.

    
$code $_POST['filmcode'];
    
$profile 'medium';
    
    
//Ensuite, il est conseillé d'effectuer des requêtes dans un bloc try{} catch(){} pour gérer les erreurs.
if(isset($_POST['filmcode'])) {
    try
    {
        
// Envoi de la requête
        
$data $helper->movie$code$profile$filter );
        
//print_r($data->getArray());
        
        //Convertir la durée en hh:mm:ss
        
$total $data->runtime//Nombre de secondes
        
$heure intval(abs($total 3600));
        
$total $total - ($heure 3600);
        
$minute intval(abs($total 60));
        
$total $total - ($minute 60);
        
$seconde $total;
        
        
//Convertir la date en jj.mm.aa
        
$date $data->release['releaseDate'];
        function 
datefr($date) { 
        
$split preg_split("#-#",$date); 
        
$annee $split[0]; 
        
$mois $split[1]; 
        
$jour $split[2]; 
        return 
"$jour"."-"."$mois"."-"."$annee"


        
$date $data->release['releaseDate'];; // Date format américain
        // $date=date("Y-m-d"); // Ou date du jour

    
}
    catch( 
ErrorException $error )
    {
        
// En cas d'erreur
        
echo "Erreur n°"$error->getCode(), ": "$error->getMessage(), PHP_EOL;
    }
    
    
    
$url_img $data->poster;
    
$titre $data->title;
    
$annee $data->productionYear;
    
$duree $data->runtime;
    
$date_sortie $data->release['releaseDate'];
    
$nom_realisateur $data->castingShort['directors'];
    
$synopsis $data->synopsis;
    
$nom_acteur $data->castingShort['actors'];
    
$nom_pays $data->nationality[0]['$'];
    
$bande_a $data->trailerEmbed;
    
$nom_genre $data->genre[0]['$'];
    
$nom_genre2 $data->genre[1]['$'];
    
$nom_genre3 $data->genre[2]['$'];
    
$nom_genre4 $data->genre[3]['$'];
    
    
$descrip '' $data->synopsis .'<br /><br />Date de sortie ' datefr($date) . '('.$heure.':'.$minute.':'.$seconde.')<br />Réalisé par ' $nom_realisateur '<br />Avec ' $nom_acteur '<br />Genre ' $nom_genre '<br />Nationalité ' $nom_pays '<br /><img src="' $data->poster '" style="width: 190px; height: 260px;"></img><br />' $data->trailerEmbed '';
}
       
$sql         'SELECT * FROM ' $xoopsDB->prefix('xoopstube_videos') . ' WHERE lid=' intval($lid);
        
$video_array $xoopsDB->fetchArray($xoopsDB->query($sql));

        
$lid          $video_array['lid'] ? $video_array['lid'] : 0;
        
$cid          $video_array['cid'] ? $video_array['cid'] : 2;
        
$title        $video_array['title'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['title']) : ''.$titre.' [FilmFR]';
        
$vidid        $video_array['vidid'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['vidid']) : '';
        
$publisher    $video_array['publisher'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['publisher']) : '';
        
$screenshot   $video_array['screenshot'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['screenshot']) : '';
        
$descriptionb $video_array['description'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['description']) : ''.$descrip.'';
        
$published    $video_array['published'] ? $video_array['published'] : 0;
        
$expired      $video_array['expired'] ? $video_array['expired'] : 0;
        
$updated      $video_array['updated'] ? $video_array['updated'] : 0;
        
$offline      $video_array['offline'] ? $video_array['offline'] : 0;
        
$vidsource    $video_array['vidsource'] ? $video_array['vidsource'] : 0;
        
$ipaddress    $video_array['ipaddress'] ? $video_array['ipaddress'] : 0;
        
$notifypub    $video_array['notifypub'] ? $video_array['notifypub'] : 0;
        
$vidrating    $video_array['vidrating'] ? $video_array['vidrating'] : 1;
        
$time         $video_array['time'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['time']) : ''.$heure.'h'.$minute.'min';
        
$keywords     $video_array['keywords'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['keywords']) : '';
        
$item_tag     $video_array['item_tag'] ? $xtubemyts->htmlSpecialCharsStrip($video_array['item_tag']) : ''.$data->genre[0]['$'].",".$nom_genre2.",".$nom_genre3.",".$nom_genre4.'';


Mais je vais les remettre car ça ne change rien et ils vont en avoir besoin au cas d'un update par exemple ou la les infos viendrons de mysql.

Rofl j'y comprend rien, j'ai remis addslashes mais il me coupe quand même le titre.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

34 Personne(s) en ligne (28 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 34 | Plus ...