Skip to content
Extraits de code Groupes Projets
Valider 1350eeef rédigé par kent1's avatar kent1
Parcourir les fichiers

Chaque table ayant un champ "lang" n'est pas obligé d'avoir de champ...

Chaque table ayant un champ "lang" n'est pas obligé d'avoir de champ langue_choisie (cas de spip_syndic_articles du plugin sites).

Du coup la fonction instituer_langue_objet provoquait des erreurs Mysql du type :

:Pri:ERREUR: Erreur 1054 de mysql: Unknown column 'langue_choisie' in 'field list'
in /blahblah/ecrire/action/instituer_langue_objet.php L39 [sql_updateq(),action_instituer_langue_objet_dist(),objet_modifier_champs(),inserer_article_syndique(),syndic_a_jour(),queue_start_job(),queue_schedule(),action_syndiquer_site_dist(),traiter_appels_actions()]
UPDATE `blablah`.spip_syndic_articles
SET lang='fr',langue_choisie='oui'
WHERE id_syndic_article=32583

Cette fonction n'est utilisée qu'une seule fois dans le core, au lieu de l'alourdir en passant à nouveau par trouver_table, on change sa signature, c'est objet_modifier_champs (où est son seul appel et qui fait déjà un trouver_table) qui stipule si oui ou non on change le champ langue_choisie.
parent 35f37d75
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -27,16 +27,20 @@ if (!defined('_ECRIRE_INC_VERSION')) { ...@@ -27,16 +27,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @param int $id * @param int $id
* @param int $id_rubrique * @param int $id_rubrique
* @param string $changer_lang * @param string $changer_lang
* @param bool $langue_choisie : la table à modifier dispose-t-elle d'un champ 'langue_choisie'
* @return string * @return string
*/ */
function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_lang) { function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_lang, $langue_choisie = true) {
if ($changer_lang) { if ($changer_lang) {
$table_objet_sql = table_objet_sql($objet); $table_objet_sql = table_objet_sql($objet);
$id_table_objet = id_table_objet($objet); $id_table_objet = id_table_objet($objet);
if ($changer_lang != "herit") { if ($changer_lang != "herit") {
sql_updateq($table_objet_sql, array('lang' => $changer_lang, 'langue_choisie' => 'oui'), $champs = array('lang' => $changer_lang);
"$id_table_objet=" . intval($id)); if ($langue_choisie) {
$champs['langue_choisie'] = 'oui';
}
sql_updateq($table_objet_sql, $champs, "$id_table_objet=" . intval($id));
include_spip('inc/rubriques'); include_spip('inc/rubriques');
if ($table_objet_sql == 'spip_rubriques') { if ($table_objet_sql == 'spip_rubriques') {
calculer_langues_rubriques(); calculer_langues_rubriques();
...@@ -48,8 +52,11 @@ function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_ ...@@ -48,8 +52,11 @@ function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_
if (!$langue_parent) { if (!$langue_parent) {
$langue_parent = $GLOBALS['meta']['langue_site']; $langue_parent = $GLOBALS['meta']['langue_site'];
} }
sql_updateq($table_objet_sql, array('lang' => $langue_parent, 'langue_choisie' => 'non'), $champs = array('lang' => $langue_parent);
"$id_table_objet=" . intval($id)); if ($langue_choisie) {
$champs['langue_choisie'] = 'non';
}
sql_updateq($table_objet_sql, $champs, "$id_table_objet=" . intval($id));
$changer_lang = $langue_parent; $changer_lang = $langue_parent;
if ($table_objet_sql == 'spip_rubriques') { if ($table_objet_sql == 'spip_rubriques') {
include_spip('inc/rubriques'); include_spip('inc/rubriques');
......
...@@ -202,7 +202,7 @@ function objet_modifier_champs($objet, $id_objet, $options, $c = null, $serveur ...@@ -202,7 +202,7 @@ function objet_modifier_champs($objet, $id_objet, $options, $c = null, $serveur
$id_rubrique = sql_getfetsel($parent, $spip_table_objet, "$id_table_objet=" . intval($id_objet)); $id_rubrique = sql_getfetsel($parent, $spip_table_objet, "$id_table_objet=" . intval($id_objet));
} }
$instituer_langue_objet = charger_fonction('instituer_langue_objet', 'action'); $instituer_langue_objet = charger_fonction('instituer_langue_objet', 'action');
$champs['lang'] = $instituer_langue_objet($objet, $id_objet, $id_rubrique, $changer_lang); $champs['lang'] = $instituer_langue_objet($objet, $id_objet, $id_rubrique, $changer_lang, isset($desc['langue_choisie']));
} }
// on laisse 'lang' dans $champs, // on laisse 'lang' dans $champs,
// ca permet de passer dans le pipeline post_edition et de journaliser // ca permet de passer dans le pipeline post_edition et de journaliser
......
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