X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins%2Fauto%2Ftradrub%2Finc%2Frubrique_select.php;fp=www%2Fplugins%2Fauto%2Ftradrub%2Finc%2Frubrique_select.php;h=86a9ec8b9ee1532fc90a47d26a48d8fcbb08f690;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hp=0000000000000000000000000000000000000000;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c;p=velocampus%2Fweb%2Fwww.git diff --git a/www/plugins/auto/tradrub/inc/rubrique_select.php b/www/plugins/auto/tradrub/inc/rubrique_select.php new file mode 100644 index 0000000..86a9ec8 --- /dev/null +++ b/www/plugins/auto/tradrub/inc/rubrique_select.php @@ -0,0 +1,113 @@ + sa premiere rubrique + // autre ==> la derniere rubrique cree + if (!$row['id_parent']) { + if ($connect_id_rubrique) + $row['id_parent'] = $id_parent = $connect_id_rubrique[0]; + else { + $row_rub = sql_fetsel("id_parent", "spip_rubriques", "", "", "id_rubrique DESC", 1); + $row['id_parent'] = $id_parent = $row_rub['id_parent']; + } + if (!autoriser('creerrubriquedans', 'rubrique', $row['id_parent'] )){ + // 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('creerrubriquedans', 'rubrique', $row['id_parent'] ) && $row_rub = sql_fetch($res)){ + $row['id_parent'] = $id_parent = $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_parent)); + $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 +// +function rubrique_select_trad($lier_trad, $id_parent=0) { + // Recuperer les donnees de l'article original + $row = sql_fetsel("*", "spip_rubriques", "id_rubrique=" . sql_quote($lier_trad)); + if ($row) { + $row['titre'] = filtrer_entites(_T('info_nouvelle_traduction')).' '.$row["titre"]; + + } else $row = array(); + + if ($id_parent) { + $row['id_parent'] = $id_parent; + return $row; + } + + $id_parent = $row['id_parent']; + // 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']))) { + // langue changeante par rubrique + 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_parent = 0; + } else { + // on cherche une rubrique soeur dans la bonne langue + $row_rub = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=$id_parent"); + $id_parent_parent = $row_rub['id_parent']; + } + $row_rub = sql_fetsel("id_rubrique", "spip_rubriques", "lang='".$GLOBALS['spip_lang']."' AND id_parent=" . sql_quote($id_parent_parent)); + if ($row_rub) + $row['id_parent'] = $row_rub['id_rubrique']; + } + } + return $row; +} + +?>