232 lines
6.5 KiB
PHP
232 lines
6.5 KiB
PHP
<?php
|
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
|
return;
|
|
}
|
|
|
|
function filtre_escape_json($texte) {
|
|
return str_replace("\"", "\\\"", str_replace("\n", "\\n", str_replace("\n\n", "\n<br><br>\n", $texte)));
|
|
}
|
|
|
|
function filtre_decode_html($texte) {
|
|
return html_entity_decode($texte);
|
|
}
|
|
|
|
function filtre_libreavous_supp_numero($texte) {
|
|
$idx = strpos($texte, "-");
|
|
return trim(substr($texte, $idx +1));
|
|
}
|
|
|
|
function balise_LIBREAVOUS_IMPORT($p) {
|
|
$id_rubrique = "''";
|
|
$id_secteur = "''";
|
|
if (($v = interprete_argument_balise(1,$p))!==NULL){
|
|
$id_rubrique = $v;
|
|
if (($v = interprete_argument_balise(2,$p))!==NULL) {
|
|
$id_secteur = $v;
|
|
}
|
|
}
|
|
$p->code = "libreavous_Import()";
|
|
return $p;
|
|
}
|
|
|
|
function libreavous_Import_Historique() {
|
|
$historique = simplexml_load_file ("/var/www/exemole.fr/libreavous/historique.xml");
|
|
foreach ($historique->item as $item) {
|
|
$code = $item['code'];
|
|
$array = array(
|
|
'drupal_guid' => $item['guid'],
|
|
'drupal_pubdate' => $item['pubdate']
|
|
);
|
|
$type = $item['type'];
|
|
if ($type == 'emission') {
|
|
$existant = sql_select("id_article","spip_articles","podcast_code=".sql_quote($code));
|
|
if ($existant and sql_count($existant)>0) {
|
|
$r = sql_fetch($existant);
|
|
$id_article = $r["id_article"];
|
|
sql_updateq("spip_articles", $array, "id_article=".$id_article);
|
|
} else {
|
|
echo "Émission inconnue = $code<br>" ;
|
|
}
|
|
} else {
|
|
$chapitreExistant = sql_select("id_chapitre","spip_chapitres",array("code_podcast=".sql_quote($code), "code_fichier=".sql_quote($item['chapitre'])));
|
|
if ($chapitreExistant and sql_count($chapitreExistant)>0) {
|
|
$r = sql_fetch($chapitreExistant);
|
|
$id_chapitre = $r["id_chapitre"];
|
|
sql_updateq("spip_chapitres", $array, "id_chapitre=".$id_chapitre);
|
|
} else {
|
|
echo "Chapitre inconnu = $code / fichier = ".$item['chapitre']."<br>" ;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function libreavous_Import($id_rubrique, $id_secteur) {
|
|
$emissions = simplexml_load_file ("/var/www/exemole.fr/libreavous/verspip.xml");
|
|
foreach ($emissions->emission as $emission) {
|
|
$code = $emission["code"];
|
|
$emissionArray = array(
|
|
'lang' => 'fr',
|
|
'surtitre' => $emission["numero"],
|
|
'titre' => $emission["numero"].' - '.$emission["titre"],
|
|
'soustitre' => "",
|
|
'id_rubrique' => $id_rubrique,
|
|
'id_secteur' => $id_secteur,
|
|
'descriptif' => $emission["description"],
|
|
'chapo' => $emission["programme"],
|
|
'texte' => $emission["references"],
|
|
'ps' => "",
|
|
'statut' => 'publie',
|
|
'accepter_forum' => 'non',
|
|
'date' => libreavous_toDateIso($emission["code"]),
|
|
'podcast_code' => $emission["code"],
|
|
'podcast_duree' => $emission["duree"],
|
|
'podcast_mp3' => $emission["mp3"],
|
|
'podcast_ogg' => $emission["ogg"],
|
|
'podcast_transcription' => $emission["transcription"],
|
|
'podcast_personnes' => $emission["personnes"],
|
|
'podcast_galeriephotos' => $emission["galeriephotos"],
|
|
'podcast_musique' => $emission["musique"]
|
|
);
|
|
$existant = sql_select("id_article","spip_articles","podcast_code=".sql_quote($code));
|
|
if ($existant and sql_count($existant)>0) {
|
|
$r = sql_fetch($existant);
|
|
$id_article = $r["id_article"];
|
|
sql_updateq("spip_articles", $emissionArray, "id_article=".$id_article);
|
|
} else {
|
|
$id_article = sql_insertq("spip_articles", $emissionArray);
|
|
}
|
|
foreach ($emission->chapitre as $chapitre) {
|
|
$code_chapitre = $chapitre["code"];
|
|
$chapitreArray = array(
|
|
'titre' => $chapitre["titre"],
|
|
'code' => $chapitre["code"],
|
|
'id_article' => $id_article,
|
|
'code_fichier' => $chapitre["fichier"],
|
|
'code_podcast' => $emission["code"],
|
|
'debut' => $chapitre["debut"],
|
|
'fin' => $chapitre["fin"],
|
|
'type_sujet' => $chapitre["type"],
|
|
'chronique' => $chapitre["chronique"],
|
|
'mp3' => $chapitre["mp3"],
|
|
'ogg' => $chapitre["ogg"],
|
|
'references_sujet' => $chapitre["references"]
|
|
);
|
|
$chapitreExistant = sql_select("id_chapitre","spip_chapitres",array("id_article=".$id_article, "code=".sql_quote($code_chapitre)));
|
|
if ($chapitreExistant and sql_count($chapitreExistant)>0) {
|
|
$r = sql_fetch($chapitreExistant);
|
|
$id_chapitre = $r["id_chapitre"];
|
|
sql_updateq("spip_chapitres", $chapitreArray, "id_chapitre=".$id_chapitre);
|
|
} else {
|
|
$id_nouveau_chapitre = sql_insertq("spip_chapitres", $chapitreArray);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
function libreavous_toDateIso($code) {
|
|
$texte = substr($code, 0, 4)."-".substr($code,4,2)."-".substr($code,6,2)." 15:30:00";
|
|
return $texte;
|
|
}
|
|
|
|
function libreavous_conversionDrupal($shortdate) {
|
|
$annee = substr($shortdate, 0, 4);
|
|
$mois = substr($shortdate, 4, 2);
|
|
$jour = substr($shortdate, 6, 2);
|
|
if (substr($jour, 0, 1) == "0") {
|
|
$jour = substr($jour, 1, 1);
|
|
}
|
|
return $jour."-".libreavous_conversionMoisDrupal($mois)."-".$annee;
|
|
}
|
|
|
|
function libreavous_conversionMoisDrupal($mois) {
|
|
switch($mois) {
|
|
case "01":
|
|
return "janvier";
|
|
case "02":
|
|
return "fevrier";
|
|
case "03":
|
|
return "mars";
|
|
case "04":
|
|
return "avril";
|
|
case "05":
|
|
return "mai";
|
|
case "06":
|
|
return "juin";
|
|
case "07":
|
|
return "juillet";
|
|
case "08":
|
|
return "aout";
|
|
case "09":
|
|
return "septembre";
|
|
case "10":
|
|
return "octobre";
|
|
case "11":
|
|
return "novembre";
|
|
case "12":
|
|
return "decembre";
|
|
default:
|
|
return "XX";
|
|
}
|
|
}
|
|
|
|
function libreavous_nomtypesujet($abbr) {
|
|
switch($abbr) {
|
|
case "CH":
|
|
return "Chronique";
|
|
case "SL":
|
|
return "Sujet libre";
|
|
case "AN":
|
|
return "Annonce";
|
|
default:
|
|
return $abbr;
|
|
}
|
|
}
|
|
|
|
// plutot utiliser la fonction spip taille_en_octets
|
|
function libreavous_mio($number) {
|
|
$mio = round($number / (1024 * 1024), 1);
|
|
if ($mio < 10) {
|
|
$mio = round($mio, 2);
|
|
return number_format($mio, 2, ',', ' ');
|
|
} else if ($mio < 100) {
|
|
$mio = round($mio, 1);
|
|
return number_format($mio, 1, ',', ' ');
|
|
} else {
|
|
$mio = round($mio, 0);
|
|
return number_format($mio, 0, ',', ' ');
|
|
}
|
|
return $mio;
|
|
}
|
|
|
|
function titre_chronique_court($titre) {
|
|
// annuler le filtre
|
|
return $titre;
|
|
}
|
|
|
|
// calculer la durée d'un chapitre
|
|
// $start et $end sous form hh:mm:ss
|
|
function libreavous_duree($start,$end) {
|
|
|
|
$timestart = new DateTime($start);
|
|
$timeend = new DateTime($end);
|
|
$timeduree = $timestart->diff($timeend);
|
|
$duree = $timeduree->format('%h h %i min. %s s.');
|
|
|
|
return $duree;
|
|
|
|
}
|
|
// retirer l'heure si 0 h dans la duree
|
|
function libreavous_sanszeroh($chaine) {
|
|
$chaine = str_replace('0 h ','',$chaine);
|
|
return $chaine;
|
|
}
|
|
// ajoute un 0 si un seul chiffre (date du jour < à 10)
|
|
function libreavous_aveczerod($chaine) {
|
|
if (strlen($chaine) == '1') {
|
|
$chaineaveczero = '0'.$chaine;
|
|
}
|
|
return $chaineaveczero;
|
|
}
|
|
|