$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; } ?>