Changeset 2443


Ignore:
Timestamp:
Nov 2, 2011, 4:46:36 AM (9 years ago)
Author:
komodo
Message:

fix links documents/amendements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpc/branches/senat/project/lib/model/doctrine/Intervention.class.php

    r2436 r2443  
    287287      foreach (explode('</p>', $intertot) as $inter) {
    288288       //Repère les amendements (pour les linkifier)
    289        if (preg_match_all('/(amendements?[,\s]+(identiques?)?[,\s]*)((n[°os\s]*|\d+\s*|,\s*|à\s*|et\s*|rectifié\s*)+)/', $inter, $match)) {
     289       if (preg_match_all('/(amendements?[,\s]+(identiques?)?[,\s]*)((n[°os\s]*|([ABICOM]+-)?\d+\s*|,\s*|à\s*|et\s*|rectifié\s*)+)/', $inter, $match)) {
    290290        $lois = implode(',', $this->getTags(array('is_triple' => true,
    291291                                                  'namespace' => 'loi',
     
    293293                                                  'return' => 'value')));
    294294        if ($lois) for ($i = 0 ; $i < count($match[0]) ; $i++) {
    295           $match_protected = preg_replace('/(\s*)(\d[\d\s\à]*rectifiés?|\d[\d\s\à]*)(,\s*|\s*et\s*)*/', '\1%\2%\3', $match[3][$i]);
     295          $match_protected = preg_replace('/(\s*)([ABICOM\-]*\d[\d\s\à]*rectifiés?|[ABICOM\-]*\d[\d\s\à]*)(,\s*|\s*et\s*)*/', '\1%\2%\3', $match[3][$i]);
    296296          if (preg_match_all('/\s*%([^%]+)%(,\s*|\s*et\s*)*/', $match_protected, $amends)) {
    297297            $replace = $match_protected;
    298298            foreach($amends[1] as $amend) {
    299299              $am = preg_replace('/à+/', '-', $amend);
    300               $am = preg_replace('/[^\d\-]+/', '',$am);
    301               if ($this->type == 'commission')
     300              $am = strtoupper(preg_replace('/[^\d\-ABICOM]+/', '',$am));
     301              if ($this->type == 'commission' && !preg_match("/COM/", $am))
    302302                $am = "COM-".$am;
    303303              $link = str_replace('LLL', urlencode($lois), $linko);
     
    311311
    312312      //Repère les documents parlementaires (pour les linkifier)
    313       if (preg_match_all('/(projet|proposition|annexe|rapport|avis)[^<x]+[<i>]*(nos?\s|n<sup>[os\&nbp\;]+[^>]*>|n°s?)(\W*[^<x\)]*\d[^<x\)\w]*)/i', $inter, $matches)) {
     313      if (preg_match_all('/(projet|proposition|annexe|rapport|avis)[^<°]+[<i>]*(n[os°\s<\/up>]+)(([\s,;\w°]{0,8}\W*\d+([\s,\d\(\)\[\]\-])?)+)/i', $inter, $matches)) {
    314314        $match = $matches[3];
    315315        sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
    316         for($i = 0 ; $i < count($match) ; $i++) {
     316        for($i = 0 ; $i < count($match) ; $i++) if (!preg_match('/ du /', $match[$i])) {
    317317                $match[$i] = preg_replace('/[, ]+et[, ]+/', ', ', $match[$i]);
    318318                $matche = explode(';', $match[$i]);
    319                 if (count($matche) == 1 && (strlen($match[$i]) > 16 || strlen($match[$i]) < 14))
     319                if (count($matche) == 1 && preg_match('\d\d\d\d', $match[$i]))
    320320                        $matche = explode(',', $matche[0]);
    321321                $loie = $matche;
     
    330330                        if (strlen($loie[$y]) < 10) continue;
    331331                        $matche[$y] = preg_replace('/\D/', '.', trim($matche[$y]));
    332                         $inter = preg_replace('/(n[os\s<up>°]*)?('.$matche[$y].')/', '<a href="'.url_for('@document?id='.$loie[$y]).'">\\1\\2</a>', $inter);
     332                        $inter = preg_replace('/(n[os\s<\/up>°]*)?('.$matche[$y].')/', '<a href="'.url_for('@document?id='.$loie[$y]).'">\\1\\2</a>', $inter);
    333333                        $oldloi = $loie[$y];
    334334                }
Note: See TracChangeset for help on using the changeset viewer.