X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Farticle_select.php;fp=www%2Fecrire%2Finc%2Farticle_select.php;h=03808ca2bd208cfec21f42f5bb05a2d696be29f6;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/article_select.php b/www/ecrire/inc/article_select.php new file mode 100644 index 0000000..03808ca --- /dev/null +++ b/www/ecrire/inc/article_select.php @@ -0,0 +1,137 @@ + $contenu) + $row[$champ] = $contenu; + } + } + return $row; + } + + // id_article non numerique, c'est une demande de creation. + // Si c'est une demande de nouvelle traduction, init specifique + if ($lier_trad){ + $row = article_select_trad($lier_trad, $id_rubrique); + $row['statut'] = ''; // le nouvel article n'a pas encore de statut ! + } + else { + $row['titre'] = '';//filtrer_entites(_T('info_nouvel_article')); + //$row['onfocus'] = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\""; + $row['id_rubrique'] = $id_rubrique; + } + + // appel du script a la racine, faut choisir + // admin restreint ==> sa premiere rubrique + // autre ==> la derniere rubrique cree + if (!$row['id_rubrique']) { + if ($connect_id_rubrique) + $row['id_rubrique'] = $id_rubrique = $connect_id_rubrique[0]; + else { + $row_rub = sql_fetsel("id_rubrique", "spip_rubriques", "", "", "id_rubrique DESC", 1); + $row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique']; + } + if (!autoriser('creerarticledans','rubrique',$row['id_rubrique'] )){ + // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises + $res = sql_select("id_rubrique", "spip_rubriques", "id_parent=0"); + while (!autoriser('creerarticledans','rubrique',$row['id_rubrique'] ) && $row_rub = sql_fetch($res)){ + $row['id_rubrique'] = $row_rub['id_rubrique']; + } + } + } + + // recuperer le secteur, pour affecter les bons champs extras + if (!$row['id_secteur']) { + $row_rub = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=" . sql_quote($id_rubrique)); + $row['id_secteur'] = $row_rub; + } + + return $row; +} + +// +// Si un article est demande en creation (new=oui) avec un lien de trad, +// on initialise les donnees de maniere specifique +// +// http://doc.spip.org/@article_select_trad +function article_select_trad($lier_trad, $id_rubrique=0) { + // Recuperer les donnees de l'article original + $row = sql_fetsel("*", "spip_articles", "id_article=$lier_trad"); + if ($row) { + $row['titre'] = filtrer_entites(_T('info_nouvelle_traduction')).' '.$row["titre"]; + + } else $row = array(); + if ($id_rubrique) { + $row['id_rubrique'] = $id_rubrique; + return $row; + } + $id_rubrique = $row['id_rubrique']; + // Regler la langue, si possible, sur celle du redacteur + // Cela implique souvent de choisir une rubrique ou un secteur + if (in_array($GLOBALS['spip_lang'], + explode(',', $GLOBALS['meta']['langues_multilingue']))) { + // Si le menu de langues est autorise sur les articles, + // on peut changer la langue quelle que soit la rubrique + // donc on reste dans la meme rubrique + if ($GLOBALS['meta']['multi_articles'] == 'oui') { + $row['id_rubrique'] = $row['id_rubrique']; # explicite :-) + } + else if ($GLOBALS['meta']['multi_rubriques'] == 'oui') { + // Sinon, chercher la rubrique la plus adaptee pour + // accueillir l'article dans la langue du traducteur + if ($GLOBALS['meta']['multi_secteurs'] == 'oui') { + $id_parent = 0; + } else { + // on cherche une rubrique soeur dans la bonne langue + $row_rub = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=$id_rubrique"); + + $id_parent = $row_rub['id_parent']; + } + $row_rub = sql_fetsel("id_rubrique", "spip_rubriques", "lang='".$GLOBALS['spip_lang']."' AND id_parent=$id_parent"); + if ($row_rub) + $row['id_rubrique'] = $row_rub['id_rubrique']; + } + } + return $row; +} + +?>