libreavous/libreavous_fonctions.php
2021-10-12 17:06:22 +02:00

233 lines
6.6 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) {
$chaineaveczero = $chaine;
if (strlen($chaine) == '1') {
$chaineaveczero = '0'.$chaine;
}
return $chaineaveczero;
}