Changeset 77048 in spip-zone
- Timestamp:
- Oct 7, 2013, 7:49:10 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/trad-lang/trunk/inc/tradlang_verifier_langue_base.php
r75953 r77048 5 5 * © Florent Jugla, Fil, kent1 6 6 * 7 * @package SPIP\Tradlang\8 7 */ 9 8 … … 24 23 $langue_mere = sql_getfetsel('lang_mere','spip_tradlang_modules','module='.sql_quote($module)); 25 24 25 $trad_langue_mere_id = $trad_langue_cible_id = array(); 26 26 27 /** 27 * On teste et on ajoute ce qu'il y a en trop 28 * On crée deux tableaux: 29 * -* l'ensemble des id de la langue mère non supprimés 30 * -* l'ensemble des id de la langue cible non supprimés 28 31 */ 29 $trad_langue_mere_id = array(); 30 $trad_langue_mere = sql_select('*','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue_mere)); 31 while($row_langue_mere = sql_fetch($trad_langue_mere)){ 32 $trad_langue_mere_id[] = $row_langue_mere['id']; 32 $trad_langue_meres = sql_allfetsel('id','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue_mere).' AND statut !="attic"'); 33 foreach($trad_langue_meres as $trad_langue_mere){ 34 $trad_langue_mere_id[] = $trad_langue_mere['id']; 33 35 } 34 $trad_langue_cible_id = array(); 35 $trad_langue_cible = sql_select('*','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue)); 36 while($row_langue_cible = sql_fetch($trad_langue_cible)){ 37 $trad_langue_cible_id[] = $row_langue_cible['id']; 36 $trad_langue_cibles = sql_allfetsel('id','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue).' AND statut !="attic"'); 37 foreach($trad_langue_cibles as $trad_langue_cible){ 38 $trad_langue_cible_id[] = $trad_langue_cible['id']; 38 39 } 39 40 41 $inserees = $supprimees = 0; 40 42 /** 41 * $diff1 est l'ensemble des chaines manquantes dans la langue fille43 * $diff1 est l'ensemble des chaines manquantes dans la langue cible 42 44 * et donc à insérer 45 * 46 * On met dans un tableau les chaines en question si on a au moins un résultat 43 47 */ 44 48 $diff1 = array_diff($trad_langue_mere_id, $trad_langue_cible_id); 45 $diff1_array = sql_allfetsel('*','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue_mere).' AND '.sql_in('id',$diff1)); 46 $inserees = 0; 49 if(count($diff1) > 0) 50 $diff1_array = sql_allfetsel('*','spip_tradlangs','module='.sql_quote($module).' AND lang='.sql_quote($langue_mere).' AND '.sql_in('id',$diff1)); 51 47 52 /** 48 53 * $diff2 est l'ensemble des chaines en trop dans la langue fille … … 50 55 */ 51 56 $diff2 = array_diff($trad_langue_cible_id,$trad_langue_mere_id); 52 $supprimees = 0; 57 58 /** 59 * Si on a des éléments dans les diffs, on applique les modifications 60 */ 53 61 if((count($diff1)>0) OR (count($diff2)>0)){ 54 if(is _array($diff1_array)){62 if(isset($diff1_array) && is_array($diff1_array)){ 55 63 foreach($diff1_array as $key => $array){ 56 64 $array['orig'] = 0; … … 65 73 } 66 74 } 67 68 foreach($diff2 as $key => $id){ 69 $array['id'] = $id; 70 $array['statut'] = 'attic'; 71 $id_tradlang = sql_getfetsel('id_tradlang','spip_tradlangs','id='.sql_quote($id)." AND module=".sql_quote($module)." AND lang=".sql_quote($langue)); 72 sql_updateq('spip_tradlangs',$array,'id_tradlang='.intval($id_tradlang)); 73 $supprimees++; 75 /** 76 * On donne le statut attic aux chaînes en trop 77 * On incrémente le nombre de chaînes supprimées 78 */ 79 if(count($diff2) > 0){ 80 foreach($diff2 as $key => $id){ 81 sql_updateq('spip_tradlangs',array('statut' => 'attic'),'id='.sql_quote($id).' AND lang='.sql_quote($langue).' AND module='.sql_quote($module)); 82 $supprimees++; 83 } 74 84 } 75 85 }else
Note: See TracChangeset
for help on using the changeset viewer.