Browse Source

Indication du lien de chaque article créé dans le mail + PHPCS + petits allègements du code + renommage de variables

Signed-off-by: jluc <jluc@no-log.org>
master
JLuc 6 months ago
parent
commit
a455733c73
  1. 102
      genie/rssarticle_copie.php

102
genie/rssarticle_copie.php

@ -20,43 +20,29 @@ include_spip('inc/config');
function genie_rssarticle_copie_dist($t){
// configuration (ou valeurs par defaut)
if (lire_config('rssarticle/import_statut')=="publie")
$import_statut="publie";
else
$import_statut="prop";
if (lire_config('rssarticle/mode')=="auto")
$mode_auto=true;
else
$mode_auto=false;
if (lire_config('rssarticle/email_alerte')=="on")
$email_alerte=true;
else
$email_alerte=false;
if (lire_config('rssarticle/copie_logo')=="on")
$copie_logo=true;
else
$copie_logo=false;
if (lire_config('rssarticle/html2spip')=="on")
$html2spip=true;
else
$html2spip=false;
$email_suivi = lire_config('rssarticle/email_suivi');
// Configuration (ou valeurs par defaut)
$c_import_statut= (lire_config('rssarticle/import_statut')=='publie' ? 'publie' : 'prop');
$c_mode_auto= (lire_config('rssarticle/mode')=='auto');
$c_email_alerte = (lire_config('rssarticle/email_alerte')=='on');
$c_copie_logo = (lire_config('rssarticle/copie_logo')=='on');
$c_html2spip = (lire_config('rssarticle/html2spip')=='on');
$c_email_suivi = lire_config('rssarticle/email_suivi');
// autres valeurs
// Autres valeurs
$accepter_forum = substr($GLOBALS['meta']['forums_publics'],0,3);
// principe de pile:
// on boucle sur les derniers articles syndiques pour les retirer ensuite
// bourrin voir les requetes avec jointure du Miroir ou du site Rezo
$log = "";
$log_c = 0;
$nb = 0;
// boucle sur les sites publies
if ($mode_auto)
$u = sql_select("id_syndic,id_rubrique,id_secteur","spip_syndic","statut='publie'"); // tous
else
$u = sql_select("id_syndic,id_rubrique,id_secteur","spip_syndic","statut='publie' AND rssarticle='oui'");
if ($c_mode_auto) {
$u = sql_select("id_syndic,id_rubrique,id_secteur","spip_syndic","statut='publie'"); // tous
} else {
$u = sql_select("id_syndic,id_rubrique,id_secteur", "spip_syndic", "statut='publie' AND rssarticle='oui'");
}
while ($b = sql_fetch($u)) {
$id_syndic = (int) $b['id_syndic'];
@ -64,40 +50,43 @@ function genie_rssarticle_copie_dist($t){
$id_secteur = (int) $b['id_secteur'];
// sur chaque site copie les derniers syndication
$s = sql_select("*", "spip_syndic_articles", "statut='publie' AND id_syndic='$id_syndic'","","maj DESC","10"); // par flot de 10 articles / site pour limiter la charge
$s = sql_select('*', 'spip_syndic_articles', "statut='publie' AND id_syndic='$id_syndic'", '', 'maj DESC', 10); // par lot de 10 articles / site pour limiter la charge
while ($a = sql_fetch($s)) {
$titre = $a['titre'];
$url = $a['url'];
$id_syndic_article = $a['id_syndic_article'];
// article avec mm titre existe ? (test doublons sur l'url plutot que sr le titre)
if (!$id_article = sql_getfetsel("id_article","spip_articles","url_site=".sql_quote($url))) {
// on importe s'il n'y a pas déjà un article avec cette url d'origine
if (!$id_article = sql_getfetsel('id_article', 'spip_articles', 'url_site='.sql_quote($url))) {
$texte = $a['descriptif'];
//traitement pour syntaxe SPIP
if($html2spip)
$texte = html2spip($texte);
if($c_html2spip) {
$texte = html2spip($texte);
}
$lang = $a['lang'];
$url = $a['url'];
$tags = $a['tags'];
$lsdate = $a['date'];
if ($lang=="")
if ($lang=='') {
$lang = $GLOBALS['spip_lang'];
}
// cas particulier:
// site multilingue avec la configuration: 1 lang par rubrique
// on force l'article a avoir la langue de la rubrique ds lequel il est importee(pour omaidi)
if ($GLOBALS['meta']['multi_rubriques']=='oui') {
$s_lang = sql_select("lang", "spip_rubriques", "id_rubrique=$id_rubrique");
while ($a_lang = sql_fetch($s_lang))
$s_lang = sql_select('lang', 'spip_rubriques', "id_rubrique=$id_rubrique");
while ($a_lang = sql_fetch($s_lang)) {
$lang = $a_lang['lang'];
}
}
//$lsdate = date('Y-m-d H:i:s');
// creation de l'article
$id_article = sql_insertq( 'spip_articles', array(
'titre'=>$titre, 'id_rubrique'=>$id_rubrique,
'texte'=>$texte, 'statut'=>$import_statut, 'id_secteur'=>$id_secteur,
'texte'=>$texte, 'statut'=>$c_import_statut, 'id_secteur'=>$id_secteur,
'date'=> $lsdate, 'accepter_forum'=>$accepter_forum, 'lang'=>$lang, 'url_site'=>$url));
// lier article et site
@ -106,8 +95,13 @@ function genie_rssarticle_copie_dist($t){
// gestion auteur
$auteurs= explode(", ",$a['lesauteurs']);
foreach ($auteurs as $k => $auteur) {
if ($current_id_auteur = rssarticle_get_id_auteur($auteur))
sql_insertq( 'spip_auteurs_liens', array('id_auteur'=>$current_id_auteur, 'id_objet'=>$id_article, 'objet'=>'article'));
if ($current_id_auteur = rssarticle_get_id_auteur($auteur)) {
sql_insertq('spip_auteurs_liens', array(
'id_auteur' => $current_id_auteur,
'id_objet' => $id_article,
'objet' => 'article'
));
}
}
// tags a convertir en documents distants
@ -137,46 +131,50 @@ function genie_rssarticle_copie_dist($t){
}
// logo
if ($copie_logo) {
if ($logo_site = inc_chercher_logo_dist($id_syndic,"id_syndic")) {
if ($c_copie_logo) {
if ($logo_site = inc_chercher_logo_dist($id_syndic, 'id_syndic')) {
$logo_article = "arton$id_article.".$logo_site[3];
@copy($logo_site[0],_DIR_LOGOS."$logo_article");
}
}
$log_c++;
$log .= "\n - $titre";
$nb++;
$log .= "\n - $titre ( ".url_absolue(generer_url_ecrire('article',"id_article=$id_article")). ' )';
// on "depublie" l'article syndique qui vient d'etre copie
sql_update("spip_syndic_articles", array('statut' => '"refuse"'), "id_syndic_article=".intval($id_syndic_article));
sql_update('spip_syndic_articles', array('statut' => '"refuse"'), 'id_syndic_article='.intval($id_syndic_article));
// Mise à jour des dates de rubriques après création d'un article dedans
if ($id_article) {
if (function_exists('calculer_rubriques'))
if (function_exists('calculer_rubriques')) {
calculer_rubriques();
if (function_exists('calculer_langues_rubriques'))
}
if (function_exists('calculer_langues_rubriques')) {
calculer_langues_rubriques();
if (function_exists('propager_les_secteurs'))
}
if (function_exists('propager_les_secteurs')) {
propager_les_secteurs();
}
}
} // test doublons
}
} // FIN PILE
// log et alerte email
$log .= "\n\n---------\nPlugin Copie RSS en Articles: $log_c articles copies\n";
$log .= "\n\n---------\nPlugin Copie RSS en Articles: $nb articles copiés\n";
spip_log($log);
$log .= $GLOBALS['meta']['adresse_site']."/ecrire/?exec=accueil";
if ($email_alerte && $email_suivi !="" && $log_c > 0) {
if ($c_email_alerte && $c_email_suivi && $nb) {
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
$envoyer_mail ($email_suivi, "Copie RSS en Articles", $log);
$envoyer_mail ($c_email_suivi, "Copie RSS en Articles", $log);
}
// maintenance generale
// mode auto: on efface les syndic_articles de plus de 2 mois pour soulager le systeme (cf genie/syndic)
// attention: on efface sur l'ensemble des sites syndiques ss tenir compte de l'option
if ($mode_auto) sql_delete('spip_syndic_articles', "maj < DATE_SUB(NOW(), INTERVAL 2 MONTH) AND date < DATE_SUB(NOW(), INTERVAL 2 MONTH)");
if ($c_mode_auto) {
sql_delete('spip_syndic_articles', "maj < DATE_SUB(NOW(), INTERVAL 2 MONTH) AND date < DATE_SUB(NOW(), INTERVAL 2 MONTH)");
}
return 1;
}

Loading…
Cancel
Save