libreavous/libreavous_fonctions.php
2021-09-02 20:04:44 +02:00

230 lines
6.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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) {
$sans = array(
"Chronique dIsabella Vanni sur ",
"Chronique dIsabella Vanni : ",
"Chronique dIsabella Vanni ",
"Chronique dIsabella Vanni : ",
"Chronique dIsabella sur ",
"Chronique de Xavier Berne sur ",
"Chronique de Laurent et Lorette Costy sur le thème ",
"Chronique de Luk sur le thème ",
"Chronique de Véronique Bonnet sur le thème ",
"Chronique dÉric Fraudain sur ",
"Chronique de Jean-Christophe Becquet sur ",
"Chronique de Marie-Odile Morandi sur ",
"Chronique de Vincent Calame sur ",
"Chronique dAntanak sur ",
"Chronique dEmmanuel Revah sur ",
"Chronique dIsabella Vanni sur ",
"Chronique de Noémie Bergez sur ",
);
$titrecourt = str_replace($sans,'',$titre);
return $titrecourt;
}