Titre du sujet : Re: Utiliser l'api allociné dans xoopstube par seboseboss sur 25/12/2014 02:56:41
Mais non j'abandonne pas et d'ailleur j'ai réussi en changeant ma méthode, mais par contre c'est pas xoopsien mais ça marche.
Verdict final ou presque pour alloinfos.php:
<?php
/**
* $Id: alloinfos.php
* Module: XoopsTube
*/
include 'header.php';
include XOOPS_ROOT_PATH . '/header.php';
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 = 1;
$profile = 'small';
//Ensuite, il est conseillé d'effectuer des requêtes dans un bloc try{} catch(){} pour gérer les erreurs.
try
{
// Envoi de la requête
$data = $helper->movie( $code, $profile );
//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;
// Afficher les infos
echo "<div class='xoopstube_cadreblock'><b><font color=#ff7400>Code du film:</font></b> ", $data->code, "<br />n";
echo "<b><font color=#ff7400>Titre du film:</font></b> ", $data->title, "<br />n";
echo "<b><font color=#ff7400>pays:</font></b> ", $data->nationality[0]['$'], "<br />n";
echo "<b><font color=#ff7400>pays_id:</font></b> ", $data->nationality[0]['code'], "<br />n";
echo "<b><font color=#ff7400>Année de production:</font></b> ", $data->productionYear, "<br />n";
echo "<b><font color=#ff7400>Durée:</font></b> $heure H : $minute min : $seconde sec <br />n";
echo "<b><font color=#ff7400>Date de sortie:</font></b> ", $data->release['releaseDate'], "<br />n";
echo "<b><font color=#ff7400>Realisateur:</font></b> ", $data->castingShort['directors'], "<br />n";
echo "<b><font color=#ff7400>Acteur:</font></b> ", $data->castingShort['actors'], "<br />n";
echo "<b><font color=#ff7400>Genre:</font></b> ", $data->genre[0]['$'], "<br />n";
echo "<b><font color=#ff7400>Genre_id:</font></b> ", $data->genre[0]['code'], "<br />n";
echo "<b><font color=#ff7400>Synopsis:</font></b> ", $data->synopsisShort, "<br /></div>n";
// Afficher toutes les données
//print_r($data->getArray());
}
catch( ErrorException $error )
{
// En cas d'erreur
echo "Erreur n°", $error->getCode(), ": ", $error->getMessage(), PHP_EOL;
}
$code_film = $xtubemyts->addslashes(ltrim($data->code));
$title = $xtubemyts->addslashes(ltrim($data->title));
$pays_id = $xtubemyts->addslashes(ltrim($data->nationality[0]['code']));
$annee = $xtubemyts->addslashes(ltrim($data->productionYear));
$duree = $xtubemyts->addslashes(ltrim($data->runtime));
$date_sortie = $xtubemyts->addslashes(ltrim($data->release['releaseDate']));
$nom_realisateur = $xtubemyts->addslashes(ltrim($data->castingShort['directors']));
$synopsis = $xtubemyts->addslashes(ltrim($data->synopsisShort));
$nom_acteur = $xtubemyts->addslashes(ltrim($data->castingShort['actors']));
$nom_genre = $xtubemyts->addslashes(ltrim($data->genre[0]['$']));
$film_code = $xtubemyts->addslashes(ltrim($data->code));
$genre_id = $xtubemyts->addslashes(ltrim($data->genre[0]['code']));
$id_pays = $xtubemyts->addslashes(ltrim($data->nationality[0]['code']));
$nom_pays = $xtubemyts->addslashes(ltrim($data->nationality[0]['$']));
// Enregistrement des infos dans la base si le code n'existe pas déja..
$film = array (
'TITRE' => $title,
'CODE_FILM' => $code_film,
'PAYS' => $nom_pays,
'ANNEE' => $annee,
'GENRE' => $nom_genre,
'DUREE' => $duree,
'DATE_SORTIE' => $date_sortie,
'ACTEUR' => $nom_acteur,
'REALISATEUR' => $nom_realisateur,
'SYNOPSIS' => $synopsis
);
require ('connect.php');
require ('lib.php');
$id_film = existe_table($film['CODE_FILM'], 'FILM', 'ID_FILM', 'CODE_FILM');
if ($id_film==0){
$sql = 'INSERT INTO FILM'
. ' (id_film, code_film, titre, pays_id, annee, duree, date_sortie, nom_realisateur, synopsis) ';
$sql .= " VALUES ('', $code_film, '$title', $pays_id, '$annee', $duree, '$date_sortie','$nom_realisateur', '$synopsis')";
if (!$result = $xoopsDB->query($sql)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql2 = 'INSERT INTO ACTEUR'
. ' (id_acteur, nom_acteur) ';
$sql2 .= " VALUES ('', '$nom_acteur')";
if (!$result = $xoopsDB->query($sql2)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql3 = 'INSERT INTO GENRE'
. ' (id_genre, nom_genre) ';
$sql3 .= " VALUES ('', '$nom_genre')";
if (!$result = $xoopsDB->query($sql3)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql4 = 'INSERT INTO ACTEUR_FILM'
. ' (acteur_id, film_code) ';
$sql4 .= " VALUES ('', '$film_code')";
if (!$result = $xoopsDB->query($sql4)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql5 = 'INSERT INTO GENRE_FILM'
. ' (genre_id, film_id) ';
$sql5 .= " VALUES ('$genre_id', '')";
if (!$result = $xoopsDB->query($sql5)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql6 = 'INSERT INTO PAYS'
. ' (id_pays, nom_pays) ';
$sql6 .= " VALUES ('', '$nom_pays')";
if (!$result = $xoopsDB->query($sql6)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
$sql7 = 'INSERT INTO REALISATEUR'
. ' (id_realisateur, nom_realisateur) ';
$sql7 .= " VALUES ('', '$nom_realisateur')";
if (!$result = $xoopsDB->query($sql7)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
else {
echo '<h4>' . _MD_XTUBE_INSERT_INFOS_OK . '</h4>';
}
}else
{
echo '<h4>' . _MD_XTUBE_CODE_ALREADY_IN_BDD . '</h4>';
}
$xoopsTpl->assign('module_dir', $xoopsModule->getVar('dirname'));
include XOOPS_ROOT_PATH . '/footer.php';
?>
Y'a certainement moyen de faire plus cours, mais faut pas trop m'en demander non plus un.
Le principal, c'est déja que ça fonctionne, c'est déja un miracle que j'y soit arrivé.
Dans le lib on trouve la fonction suivante:
function existe_table($element, $table, $id_primaire_table, $nom_champ_element) {
// vérifie l'existence de l'élément $element dans la table $table et renvoie son id
// si l'élément n'existe pas, retourne 0
global $mysql_link;
$element=trim($element);
$sql = "SELECT $id_primaire_table FROM $table WHERE $nom_champ_element LIKE '$element'";
$result = mysql_query($sql, $mysql_link);
if (mysql_num_rows($result)==0) {
$id_primaire_table = 0;
}
else {
$row = mysql_fetch_row($result);
$id_primaire_table = $row[0];
mysql_free_result($result);
}
return($id_primaire_table);
}
|