Changeset 74863 in spip-zone


Ignore:
Timestamp:
Aug 21, 2013, 7:39:37 AM (6 years ago)
Author:
esj@…
Message:

iterateurs: Report de SPIP 20775: les chaînes de langues calculées dans les squelettes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/iterateurs/public/compiler.php

    r72598 r74863  
    775775                case 'idiome':
    776776                        $l = array();
    777                         foreach ($p->arg as $k => $v) {
    778                           if ($k) $l[]= _q($k).' => '.calculer_liste($v,$descr,$boucles,$id_boucle);
    779                         }
    780                         $l = !$l ? '' : (", array(".implode(",\n",$l).")");
    781                         $code = "_T('" . $p->module . ":" .$p->nom_champ . "'$l)";
     777                        $code = '';
     778                        foreach ($p->arg as $k => $v){
     779                                $_v = calculer_liste($v, $descr, $boucles, $id_boucle);
     780                                if ($k)
     781                                        $l[] = _q($k) . ' => ' . $_v;
     782                                else $code = $_v;
     783                        }
     784                        /// Si le module n'est pas fourni,
     785                        /// l'expliciter sauf si calcule
     786                        if ($p->module) {
     787                                $m = $p->module .':'.$p->nom_champ;
     788                        } elseif ($p->nom_champ) {
     789                                $m = MODULES_IDIOMES .':'.$p->nom_champ;
     790                        } else  $m = '';
     791
     792                        $code = (!$code ? "'$m'" :
     793                                        ($m ? "'$m' . $code" :
     794                                                ("(strpos(\$x=$code, ':') ? \$x : ('" . MODULES_IDIOMES . ":' . \$x))")))
     795                                . (!$l ? '' : (", array(" . implode(",\n", $l) . ")"));
     796                        $code = "_T($code)";
    782797                        if ($p->param) {
    783798                                $p->id_boucle = $id_boucle;
Note: See TracChangeset for help on using the changeset viewer.