Changeset 3091


Ignore:
Timestamp:
Jan 30, 2013, 9:58:22 AM (7 years ago)
Author:
goya
Message:

refacto api code to add task to generate dump of all amdmts for a bill

Location:
cpc/trunk/project
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/modules/api/actions/actions.class.php

    r3037 r3091  
    133133  }
    134134
    135 
    136   protected static function array2hash($array, $hashname) {
    137     if (!$array)
    138       return array();
    139     $hash = array();
    140     if (!isset($array[0])) {
    141       if (isset($array->fonction))
    142         return array("organisme" => $array->getNom(), "fonction" => $array->fonction);
    143       else return $array;
    144     }
    145     foreach($array as $e) if ($e) {
    146       if (isset($e->fonction))
    147         $hash[] = array($hashname => array("organisme" => $e->getNom(), "fonction" => $e->fonction));
    148       else $hash[] = array($hashname => preg_replace('/\n/', ', ', $e));
    149     }
    150     return $hash;
    151   }
    152 
    153135  public function executeListParlementaires(sfWebRequest $request)
    154136  {
     
    226208      $groupe = $parl->getGroupe();
    227209      if (is_object($groupe))
    228         $res['groupe'] = self::array2hash($groupe, 'groupe_politique');
     210        $res['groupe'] = myTools::array2hash($groupe, 'groupe_politique');
    229211      else if ($format == 'csv')
    230212        $res['groupe'] = "";
     
    235217    $res['parti_ratt_financier'] = $parl->parti;
    236218    if (!$light) {
    237       $res['responsabilites'] = self::array2hash($parl->getResponsabilites(), 'responsabilite');
    238       $res['responsabilites_extra_parlementaires'] = self::array2hash($parl->getExtras(), 'responsabilite');
    239       $res['groupes_parlementaires'] = self::array2hash($parl->getGroupes(), 'responsabilite');
     219      $res['responsabilites'] = myTools::array2hash($parl->getResponsabilites(), 'responsabilite');
     220      $res['responsabilites_extra_parlementaires'] = myTools::array2hash($parl->getExtras(), 'responsabilite');
     221      $res['groupes_parlementaires'] = myTools::array2hash($parl->getGroupes(), 'responsabilite');
    240222    }
    241223    if ($light != 2) {
    242       $res['sites_web'] = self::array2hash(unserialize($parl->sites_web), 'site');
    243       $res['emails'] = self::array2hash(unserialize($parl->mails), 'email');
    244       $res['adresses'] = self::array2hash(unserialize($parl->adresses), 'adresse');
    245       $res['anciens_mandats'] = self::array2hash(unserialize($parl->anciens_mandats), 'mandat');
    246       $res['autres_mandats'] = self::array2hash(unserialize($parl->autres_mandats), 'mandat');
    247       $res['anciens_autres_mandats'] = self::array2hash(unserialize($parl->anciens_autres_mandats), 'mandat');
     224      $res['sites_web'] = myTools::array2hash(unserialize($parl->sites_web), 'site');
     225      $res['emails'] = myTools::array2hash(unserialize($parl->mails), 'email');
     226      $res['adresses'] = myTools::array2hash(unserialize($parl->adresses), 'adresse');
     227      $res['anciens_mandats'] = myTools::array2hash(unserialize($parl->anciens_mandats), 'mandat');
     228      $res['autres_mandats'] = myTools::array2hash(unserialize($parl->autres_mandats), 'mandat');
     229      $res['anciens_autres_mandats'] = myTools::array2hash(unserialize($parl->anciens_autres_mandats), 'mandat');
    248230    }
    249231    $res['profession'] = $parl->profession;
  • cpc/trunk/project/apps/frontend/modules/api/templates/csvSuccess.php

    r2839 r3091  
    1515echo "\n";
    1616
    17 function depile_assoc($asso, $breakline, $multi) {
    18   global $alreadyline;
    19   $semi = 0;
    20   foreach (array_keys($asso) as $k) {
    21     if (isset($multi[$k]) && $multi[$k]) {
    22       $semi = 1;
    23     }
    24     depile($asso[$k], $breakline, $multi, $semi);
    25     if ($k == $breakline) {
    26       echo "\n";
    27     }
    28   }
    29   return $semi;
    30 }
    31 
    32 function depile($res, $breakline, $multi, $comma = 0) {
    33   if (is_array($res)) {
    34     if (isset($res['organisme']) && isset($res['fonction']))
    35       return depile($res['organisme']." - ".$res['fonction'], $breakline, $multi, $comma);
    36     if (!isset($res[0])) {
    37       if (array_keys($res))
    38         return depile_assoc($res, $breakline, $multi);
    39       echo ";";
    40       return;
    41     }
    42     foreach($res as $r)
    43       $semi = depile($r, $breakline, $multi);
    44     if ($semi)
    45       echo ';';
    46   }else{
    47     if ($comma)
    48       $res = preg_replace('/[,;]/', '', $res);
    49     $string = preg_match('/[,;"]/', $res);
    50     if ($string) {
    51       $res = preg_replace('/"/', '\"', $res);
    52       echo '"';
    53     }
    54     echo $res;
    55     if ($string)
    56       echo '"';
    57     if ($comma)
    58       echo '|';
    59     else echo ';';
    60   }
    61 }
    62 
    63 depile($res, $breakline, $multi);
     17myTools::depile_csv($res, $breakline, $multi);
     18?>
  • cpc/trunk/project/apps/frontend/modules/api/templates/jsonSuccess.php

    r1216 r3091  
    1 <?
    2 
    3 echo json_encode($res);
     1<?php echo json_encode($res); ?>
  • cpc/trunk/project/apps/frontend/modules/api/templates/xmlSuccess.php

    r2525 r3091  
    1 <?
    2 $alreadyline = 0;
    3 function depile_assoc($asso, $breakline) {
    4   global $alreadyline;
    5   foreach (array_keys($asso) as $k) {
    6     if (!$alreadyline && $k == $breakline) {
    7       echo "\n";
    8       $alreadyline = 1;
    9     }
    10     echo "<$k>";
    11     echo depile($asso[$k], $breakline);
    12     echo "</$k>";
    13     if ($k == $breakline) {
    14       echo "\n";
    15     }
    16   }
    17 }
    18 
    19 function depile($res, $breakline) {
    20   if (is_array($res)) {
    21     if (!isset($res[0])) {
    22       depile_assoc($res, $breakline);
    23     }else{
    24       foreach($res as $r) {
    25         depile($r, $breakline);
    26       }
    27     }
    28   }else{
    29     $res = str_replace('<', '&lt;', $res);
    30     $res = str_replace('>', '&gt;', $res);
    31     $res = str_replace('&', '&amp;', $res);
    32     echo $res;
    33   }
    34 }
    35 
    36 depile($res, $breakline);
     1<?php myTools::depile_xml($res, $breakline); ?>
  • cpc/trunk/project/bin/load_amdmts_loi

    r3078 r3091  
    2929#rm cache/frontend/prod/template/*/all/amendement/show/loi/${loi}/numero/*
    3030
     31bash bin/dump_amendements_loi $loi
     32
  • cpc/trunk/project/lib/model/doctrine/myTools.class.php

    r2985 r3091  
    295295  }
    296296
     297  public static function array2hash($array, $hashname) {
     298    if (!$array)
     299      return array();
     300    $hash = array();
     301    if (!isset($array[0])) {
     302      if (isset($array->fonction))
     303        return array("organisme" => $array->getNom(), "fonction" => $array->fonction);
     304      else return $array;
     305    }
     306    foreach($array as $e) if ($e) {
     307      if (isset($e->fonction))
     308        $hash[] = array($hashname => array("organisme" => $e->getNom(), "fonction" => $e->fonction));
     309      else $hash[] = array($hashname => preg_replace('/\n/', ', ', $e));
     310    }
     311    return $hash;
     312  }
     313
     314  public static function depile_assoc_xml($asso, $breakline, $alreadyline) {
     315    foreach (array_keys($asso) as $k) {
     316      if (!$alreadyline && $k == $breakline) {
     317        echo "\n";
     318        $alreadyline = 1;
     319      }
     320      echo "<$k>";
     321      echo self::depile_xml($asso[$k], $breakline, $alreadyline);
     322      echo "</$k>";
     323      if ($k == $breakline) {
     324        echo "\n";
     325      }
     326    }
     327  }
     328
     329  public static function depile_xml($res, $breakline, $alreadyline = 0) {
     330    if (is_array($res)) {
     331      if (!isset($res[0])) {
     332        self::depile_assoc_xml($res, $breakline, $alreadyline);
     333      }else{
     334        foreach($res as $r) {
     335          self::depile_xml($r, $breakline, $alreadyline);
     336        }
     337      }
     338    }else{
     339      $res = str_replace('<', '&lt;', $res);
     340      $res = str_replace('>', '&gt;', $res);
     341      $res = str_replace('&', '&amp;', $res);
     342      echo $res;
     343    }
     344  }
     345 
     346  public static function depile_assoc_csv($asso, $breakline, $multi, $alreadyline) {
     347    $semi = 0;
     348    foreach (array_keys($asso) as $k) {
     349      if (isset($multi[$k]) && $multi[$k]) {
     350        $semi = 1;
     351      }
     352      self::depile_csv($asso[$k], $breakline, $multi, $semi, $alreadyline);
     353      if ($k == $breakline) {
     354        echo "\n";
     355      }
     356    }
     357    return $semi;
     358  }
     359 
     360  public static function depile_csv($res, $breakline, $multi, $comma = 0, $alreadyline = 0) {
     361    if (is_array($res)) {
     362      if (isset($res['organisme']) && isset($res['fonction']))
     363        return self::depile_csv($res['organisme']." - ".$res['fonction'], $breakline, $multi, $comma, $alreadyline);
     364      if (!isset($res[0])) {
     365        if (array_keys($res))
     366        return self::depile_assoc_csv($res, $breakline, $multi, $alreadyline);
     367        echo ";";
     368        return;
     369      }
     370      foreach($res as $r)
     371        $semi = self::depile_csv($r, $breakline, $multi, 0, $alreadyline);
     372      if ($semi)
     373        echo ';';
     374    }else{
     375      if ($comma)
     376        $res = preg_replace('/[,;]/', '', $res);
     377      $string = preg_match('/[,;"]/', $res);
     378      if ($string) {
     379        $res = preg_replace('/"/', '\"', $res);
     380        echo '"';
     381      }
     382      echo $res;
     383      if ($string)
     384        echo '"';
     385      if ($comma)
     386        echo '|';
     387      else echo ';';
     388    }
     389  }
     390
    297391}
Note: See TracChangeset for help on using the changeset viewer.