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

Ticket #3877 : Lors de la création d'une traduction, prendre en compte les...

Ticket #3877 : Lors de la création d'une traduction, prendre en compte les logos (les recopier) et un éventuel champ 'virtuel' des redirections.
On passe par un appel à objet_modifier_champs avec une nouvelle action 'completer_traduction' qui permet à d'éventuels plugins d’ajouter des champs
à compléter au moment d’une création de traduction, ou de faire d’autres actions à ce même moment, en utilisant les pipelines pre_edition ou post_edition.
parent a1440700
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -92,6 +92,7 @@ ecrire/inc/charger_php_extension.php -text ...@@ -92,6 +92,7 @@ ecrire/inc/charger_php_extension.php -text
ecrire/inc/chercher_logo.php -text ecrire/inc/chercher_logo.php -text
ecrire/inc/chercher_rubrique.php -text ecrire/inc/chercher_rubrique.php -text
ecrire/inc/commencer_page.php -text ecrire/inc/commencer_page.php -text
ecrire/inc/completer_traduction.php -text
ecrire/inc/cookie.php -text ecrire/inc/cookie.php -text
ecrire/inc/couleurs.php -text ecrire/inc/couleurs.php -text
ecrire/inc/csv.php -text ecrire/inc/csv.php -text
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Post-traitement des formulaires d'édition d'objets, lors d'une création d’une nouvelle traduction
*
* @package SPIP\Core\Objets
**/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Compléter une nouvelle traduction avec des éléments utiles.
*
* @param string $objet Objet
* @param int $id_objet Identifiant du nouvel objet
* @param int $id_trad Identifiant de l’objet qu'on a traduit
* @return string Erreur éventuelle
*/
function inc_completer_traduction_dist($objet, $id_objet, $id_trad) {
// dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit
// cf API editer_liens
include_spip('action/editer_liens');
objet_dupliquer_liens($objet, $id_trad, $id_objet, null, array('auteur'));
$_id_table = id_table_objet($objet);
// recuperer le logo
$chercher_logo = charger_fonction('chercher_logo','inc');
include_spip('action/editer_logo');
foreach (array('on', 'off') as $etat) {
$logo = $chercher_logo($id_trad, $_id_table, $etat);
if ($logo AND $file = reset($logo)) {
logo_modifier($objet, $id_objet, $etat, $file);
}
}
// dupliquer certains champs
$trouver_table = charger_fonction('trouver_table','base');
$desc = $trouver_table(table_objet_sql($objet));
$champs = $set = array();
// un éventuel champ 'virtuel' (redirections)
if (!empty($desc['field']['virtuel'])) {
$champs[] = 'virtuel';
}
if ($champs) {
$set = sql_fetsel($champs, $desc['table'], $_id_table . '=' . intval($id_trad));
}
/*
* Le pipeline 'pre_edition' sera appelé avec l'action 'completer_traduction'.
* Des plugins pourront ainsi compléter les champs d'un objet traduit lors d'une nouvelle traduction.
*/
$err = objet_modifier_champs(
$objet,
$id_objet,
array(
'data' => $set,
'action' => 'completer_traduction',
),
$set
);
return $err;
}
\ No newline at end of file
...@@ -88,10 +88,13 @@ function formulaires_editer_objet_traiter( ...@@ -88,10 +88,13 @@ function formulaires_editer_objet_traiter(
// referencer la traduction // referencer la traduction
$referencer_traduction = charger_fonction('referencer_traduction', 'action'); $referencer_traduction = charger_fonction('referencer_traduction', 'action');
$referencer_traduction($type, $id, $lier_trad); $referencer_traduction($type, $id, $lier_trad);
// dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit // actions de recopie de champs / liens sur le nouvel objet créé
// cf API editer_liens $completer_traduction = charger_fonction('completer_traduction', 'inc');
include_spip('action/editer_liens'); $err = $completer_traduction($type, $id, $lier_trad);
objet_dupliquer_liens($type, $lier_trad, $id, null, array('auteur')); if ($err) {
$res['message_erreur'] = $err;
return $res;
}
} }
$res['message_ok'] = _T('info_modification_enregistree'); $res['message_ok'] = _T('info_modification_enregistree');
......
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