Ignore:
Timestamp:
Feb 24, 2010, 12:35:48 AM (11 years ago)
Author:
teymour
Message:

De bien belles urls pour les amendements !!!

Location:
cpc/trunk/project/apps/frontend
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/config/routing.yml

    r1021 r1122  
    196196  url: /seance/:seance/commentaires
    197197  param: {module: commentaire, action: json}
     198amendement_redirect:
     199  url: /amendement/:id
     200  param: {module: amendement, action: redirect}
     201
    198202amendement:
    199   url: /amendement/:id
     203  url: /amendement/:loi/:numero
    200204  param: {module: amendement, action: show}
     205
    201206find_amendements_by_loi_and_numero:
    202207  url: /amendements/:loi/:numero
    203   param: {module: amendement, action: find}
     208  param: {module: amendement, action: redirect}
    204209
    205210# Recherche lexicale d'interventions ou d'amendements
  • cpc/trunk/project/apps/frontend/modules/amendement/actions/actions.class.php

    r1099 r1122  
    88  {
    99    $query = doctrine::getTable('Amendement')->createquery('a')
    10         ->where('a.id = ?', $request->getParameter('id'))
    11         ->leftJoin('a.ParlementaireAmendement pa')
    12         ->leftJoin('pa.Parlementaire p');
     10      ->where('a.texteloi_id = ?', $request->getParameter('loi'))
     11      ->andWhere('a.numero = ?', $request->getParameter('numero'))
     12      ->leftJoin('a.ParlementaireAmendement pa')
     13      ->leftJoin('pa.Parlementaire p');
    1314
    1415     $this->amendement = $query->fetchOne();
     
    138139  public function executeFind(sfWebRequest $request)
    139140  {
    140     $this->lois = split(',', $request->getParameter('loi'));
    141     $amdt = $request->getParameter('numero');
    142     if ($amdt == 'all' || $amdt == 'new' ) {
    143         if (count($this->lois) == 1) $this->loi = doctrine::getTable('TitreLoi')->findLightLoi($this->lois[0]);
    144         $this->amendements_query = doctrine::getTable('Amendement')->createQuery('a')
    145         ->whereIn('a.texteloi_id', $this->lois);
    146         if ($amdt == 'new') {
    147                 $this->amendements_query->orderBy('a.texteloi_id DESC, a.created_at DESC, a.source');
    148         }else
    149                 $this->amendements_query->orderBy('a.texteloi_id DESC, a.numero, a.source');   
    150         return ;
    151     }
    152       $numeros = array();
    153       if (preg_match('/(\d+)-(\d+)/', $amdt, $match)) {
    154         for($cpt = 0 ; $cpt < 10 ; $cpt++) {
    155           if ($match[1]+$cpt > $match[2])
    156             break;
    157           array_push($numeros, $match[1]+$cpt);
    158         }
    159       } else{
    160         preg_match_all('/\D*(\d+)\D*/', $amdt, $match);
    161         $numeros = $match[1];
    162       }
    163       $amendements = array();
    164       foreach($this->lois as $loi) {
    165         foreach($numeros as $numero) {
    166           $query = PluginTagTable::getObjectTaggedWithQuery('Amendement', array('loi:amendement='.$numero));
    167           $query->andWhere('texteloi_id = ?', $loi);
    168           $res = $query->execute();
    169           if (count($res)) foreach ($res as $amd) {
    170             $amendements[$amd->id] = $amd;
    171           }
    172         }
    173       }
    174       if (count($amendements) == 1) {
    175         $a = array_keys($amendements);
    176         $this->redirect('@amendement?id='.$a[0]);
    177       }
    178       $this->amendements = array_values($amendements);
     141    $loi = $request->getParameter('loi');
     142    $num = $request->getParamter('numero');
     143    $this->redirect('@amendement?loi='.$loi.'&numero='.$numero);
     144  }
     145
     146  public function executeRedirect(sfWebRequest $request)
     147  {
     148    $id = $request->getParameter('id');
     149    $a = Doctrine::getTable('Amendement')->find($id);
     150    $this->redirect('@amendement?loi='.$a->texteloi_id.'&numero='.$a->numero);
    179151  }
    180152}
  • cpc/trunk/project/apps/frontend/modules/amendement/templates/findSuccess.php

    r1099 r1122  
    2727<ul>
    2828<?php foreach($amendements as $a) :?>
    29 <li><?php echo link_to('Amendement n°'.$a->numero.' portant sur le texte de loi n°'.$a->texteloi_id.$a->getLettreLoi(1).', '.$a->sujet, '@amendement?id='.$a->id); ?></li>
     29<li><?php
     30if ($l = $a->getLettreLoi(1))$l = "($l)";
     31echo link_to('Amendement n°'.$a->numero.' portant sur le texte de loi n°'.$a->texteloi_id.$l.', '.$a->sujet, '@amendement?loi='.$a->texteloi_id.'&numero='.$a->numero); ?></li>
    3032<?php endforeach; ?>
    3133</ul>
  • cpc/trunk/project/apps/frontend/modules/amendement/templates/showSuccess.php

    r1104 r1122  
    33      else $titre2=""; ?>
    44<?php $sf_response->setTitle(strip_tags($titre2.'  '.$titre1)); ?>
    5 <div class="amendement" id="L<?php echo $amendement->texteloi_id.$amendement->getLettreLoi(); ?>-A<?php echo $amendement->numero; ?>">
     5<div class="amendement" id="L<?php echo $amendement->texteloi_id; ?>-A<?php echo $amendement->numero; ?>">
    66<div class="source"><a href="<?php echo $amendement->source; ?>">source</a> - <a href="<?php echo $amendement->getLinkPDF(); ?>">PDF</a></div>
    77<h1><?php echo $titre1; ?></h1>
     
    1818    else $ident_titre = " ( amendement identique : "; ?>
    1919  <em><?php echo $ident_titre; foreach($identiques as $identique) if ($identique->numero != $amendement->numero)
    20       echo link_to($identique->numero, '@amendement?id='.$identique->id)." "; ?>)</em>
     20      echo link_to($identique->numero, '@amendement?loi='.$identique->texteloi_id.'&numero='.$identique->numero)." "; ?>)</em>
    2121  <?php } ?></h3>
    2222</div>
     
    2424<?php if ($sous_admts) { ?>
    2525<p>Sous-amendements associés&nbsp: <?php foreach($sous_admts as $sous)
    26  echo link_to($sous['numero'], '@amendement?id='.$sous['id']).' '; ?></p>
     26 echo link_to($sous['numero'], '@amendement?loi='.$sous['texteloi_id'].'&numero='.$sous['numero']).' '; ?></p>
    2727<?php } ?>
    2828<div class="signataires">
     
    4646    echo $sujet.' ';
    4747    if ($loi) echo '&mdash; '.link_to(preg_replace('/Simplifions la loi 2\.0 : (.*)\s*<br.*$/', '\1', $loi->titre), '@loi?loi='.$loi->texteloi_id);
    48     else echo 'de la loi N° '.myTools::getLinkLoi($amendement->texteloi_id).$amendement->getLettreLoi(1); ?></h3>
     48    else echo 'de la loi N° '.myTools::getLinkLoi($amendement->texteloi_id);
     49        if ($l = $amendement->getLettreLoi()) echo "($l)"; ?></h3>
    4950</div>
    5051<div class="texte_intervention">
  • cpc/trunk/project/apps/frontend/modules/commentaire/actions/actions.class.php

    r1102 r1122  
    1414  public function executePost(sfWebRequest $request)
    1515  {
    16     $redirect_url = array('Intervention' => '@intervention?id=', 'Amendement' => '@amendement?id=', 'QuestionEcrite' => '@question?id=', 'ArticleLoi' => '@loi_article_id?id=', 'Alinea'=> '@loi_alinea?id=');
     16    $redirect_url = array('Intervention' => '@intervention?id=', 'Amendement' => '@amendement_redirect?id=', 'QuestionEcrite' => '@question?id=', 'ArticleLoi' => '@loi_article_id?id=', 'Alinea'=> '@loi_alinea?id=');
    1717    $about = array('Intervention' => "Suite aux propos d", 'Amendement' => "Au sujet d'un amendement déposé", 'QuestionEcrite' => "A propos d'une question écrite d");
    1818
Note: See TracChangeset for help on using the changeset viewer.