Skip to content
Extraits de code Groupes Projets
Valider ccdb46f3 rédigé par erational's avatar erational
Parcourir les fichiers

(commit de g0uZ)

suivi de multilguisme (https://core.spip.net/issues/2746#change-11251)
on ré-integré le patch de maiis
ajouter d'un autorisation pour les liens de traduction
parent d4c39e80
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -33,7 +33,9 @@ function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_
if ($changer_lang != "herit") {
sql_updateq($table_objet_sql, array('lang'=>$changer_lang, 'langue_choisie'=>'oui'), "$id_table_objet=".intval($id));
include_spip('inc/rubriques');
include_spip('inc/rubriques');
if ($table_objet_sql == 'spip_rubriques')
calculer_langues_rubriques();
$langues = calculer_langues_utilisees();
ecrire_meta('langues_utilisees', $langues);
}
......@@ -42,7 +44,11 @@ function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_
if (!$langue_parent)
$langue_parent = $GLOBALS['meta']['langue_site'];
sql_updateq($table_objet_sql, array('lang'=>$langue_parent, 'langue_choisie'=>'non'), "$id_table_objet=".intval($id));
$changer_lang = $langue_parent;
$changer_lang = $langue_parent;
if ($table_objet_sql == 'spip_rubriques') {
include_spip('inc/rubriques');
calculer_langues_rubriques();
}
}
}
return $changer_lang;
......
......@@ -379,7 +379,52 @@ function test_previsualiser_objet_champ($type = null, $id = 0, $qui = array(), $
* @return bool true s'il a le droit, false sinon
**/
function autoriser_changerlangue_dist($faire, $type, $id, $qui, $opt) {
return autoriser('modifier',$type,$id,$qui,$opt);
$multi_objets = explode(',', lire_config('multi_objets'));
$gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
$table = table_objet_sql($type);
if (in_array($table, $multi_objets) or in_array($table, $gerer_trad_objets)) { // affichage du formulaire si la configuration l'accepte
$multi_secteurs = lire_config('multi_secteurs');
$champs = objet_info($type, 'field');
if ($multi_secteurs == 'oui' and array_key_exists('id_rubrique', $champs)) { // multilinguisme par secteur et objet rattaché à une rubrique
if ($table != 'spip_rubriques') {
$id_rubrique = sql_getfetsel('id_rubrique', "$table", "id_$type=".intval($id));
} else {
$id_rubrique = $id;
}
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique));
if ( ! $id_secteur > 0 )
$id_secteur = $id_rubrique;
$langue_secteur = sql_getfetsel('lang', "spip_rubriques", "id_rubrique=".intval($id_secteur));
$langue_objet = sql_getfetsel('lang', "$table", "id_$type=".intval($id));
if ( $langue_secteur != $langue_objet){ // configuration incohérente, on laisse l'utilisateur corriger la situation
return true;
}
if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
return false;
} else {
$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique='.intval($id));
if ($id_parent != 0) // sous-rubriques : pas de choix de langue
return false;
}
}
} else {
return false;
}
return autoriser('modifier',$type,$id,$qui,$opt);
}
/**
* Autorisation de changer le lien de traduction
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
function autoriser_changertraduction_dist($faire, $type, $id, $qui, $opt) {
return autoriser('modifier',$type,$id,$qui,$opt);
}
/**
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter