Titre du sujet : Re: Utiliser l'api allociné dans xoopstube par seboseboss sur 24/12/2014 19:57:11
Salut slider
ET au fait JOYEUX NOEL A TOUS!!!
Merci pour les infos, je regarderais ça.
J'ai du modifier quand même un peu les tables car il y a eu des modifs chez allociné depuis que ce code à été écrit, ça donne ça:
CREATE TABLE FILM (
id_film int(11) NOT NULL auto_increment,
code_film int(11) NOT NULL,
titre varchar(255) NOT NULL default '',
pays_id int(11) NOT NULL default '0',
annee int default NULL,
duree int(11) NOT NULL default '0',
date_sortie date default NULL,
nom_realisateur varchar(255) NOT NULL default '',
synopsis text NOT NULL,
PRIMARY KEY (id_film),
KEY code_film (code_film),
KEY titre (titre),
KEY pays_id (pays_id),
KEY duree (duree),
KEY date_sortie (date_sortie),
KEY nom_realisateur (nom_realisateur),
KEY annee (annee)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE ACTEUR (
id_acteur int(11) NOT NULL auto_increment,
nom_acteur varchar(255) NOT NULL default '',
PRIMARY KEY (id_acteur)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE GENRE (
id_genre int(11) NOT NULL auto_increment,
nom_genre varchar(255) NOT NULL default '',
PRIMARY KEY (id_genre)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE ACTEUR_FILM (
acteur_id int(11) NOT NULL auto_increment,
film_code int(11) NOT NULL default '0',
KEY ACTEUR (acteur_id,film_code)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE GENRE_FILM (
genre_id int(11) NOT NULL default '0',
film_id int(11) NOT NULL auto_increment,
KEY GENRE (genre_id,film_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE PAYS (
id_pays int(11) NOT NULL default '0',
nom_pays varchar(255) NOT NULL default '',
PRIMARY KEY (id_pays)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE REALISATEUR (
id_realisateur int(11) NOT NULL auto_increment,
nom_realisateur varchar(255) NOT NULL default '',
PRIMARY KEY (id_realisateur)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Et c'est bon j'ai réussi à enregistrer les données dans la base, j'ai fait sans la vérif. J'ai aussi remodifié un peu mon fichier php en rapport:
<?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 = 27061;
$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>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>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));
// Enregistrement des infos dans la base si le code n'existe pas déja..
$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','', '$synopsis')";
if (!$result = $xoopsDB->query($sql)) {
$_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
}
else {
redirect_header('index.php', 2, _MD_XTUBE_MODIFYNOTALLOWED);
}
$xoopsTpl->assign('module_dir', $xoopsModule->getVar('dirname'));
include XOOPS_ROOT_PATH . '/footer.php';
?>
Pour l'instant ,je fait simple pour l'affichage et les requêtes (1 chose à la fois),j'ai juste fait la table film, maintenant je vais devoir associer toutes les tables, ça va être moins marrant .
Petit à petit l'oiseau fait son nid.
|