<commit_before><?php

/**
 * This class has been auto-generated by the Doctrine ORM Framework
 */
class Amendement extends BaseAmendement {

  public function getLink() {
    return '@amendement?id='.$this->id;
  }

  public function __toString() {
    $str = substr(strip_tags($this->expose), 0, 250);
    if (strlen($str) == 250) {
      $str .= '...';
    }
    return $str;
  }

  public function setAuteurs($auteurs) {
    $groupe = null;
    $sexe = null;
    if (preg_match('/^\s*(.*),+\s*les\s+(.*\s+[gG]roupe|membres|députés)\s+(.*)\s*$/' ,$auteurs, $match)) {
      $auteurs = $match[1];
      $groupe = preg_replace("/^\s*(de la|de l'|du)\s*/", "", $match[3]);
      if (preg_match('/^(.*)(et|,)\s+(M[\s\.ml].*)$/' ,$groupe, $match2)) {
        $groupe = $match2[1];
        $auteurs .= ", ".$match2[3];
      }
      if (preg_match('/(union.*mouvement.*populaire|UMP)/i',$groupe)) $groupe = "UMP";
      elseif (preg_match('/(socialiste.*radical|SRC)/i',$groupe)) $groupe = "SRC";
      elseif (preg_match('/(gauche.*démocrate|GDR)/i',$groupe)) $groupe = "GDR";
      elseif (preg_match('/(nouveau.*centre|NC)/i',$groupe)) $groupe = "NC";
      else $groupe = null;
    }
    if ($debug) echo $auteurs." // ".$groupe."\n";
    $arr = preg_split('/,/', $auteurs);
    $signataireindex = 1;
    foreach ($arr as $depute) {
      if (preg_match('/^(.*)\((.*)\)/', $depute, $match)) {
        $depute = trim($match[1]);
        $circo = preg_replace('/\s/', '-', ucfirst(trim($match[2])));
      } else $circo = null;
      if (preg_match('/(gouvernement|président|rapporteur|commission|questeur)/i', $depute)) {
        if ($debug) print "WARN: Skip auteur ".$depute." for ".$this->source."\n";
        continue;
      } elseif (preg_match('/^\s*(M+[\s\.ml]{1})[a-z]*\s*([a-zA-Z].*)\s*$/', $depute, $match)) {
          $nom = $match[2];
          if (preg_match('/M[ml]/', $match[1]))
            $sexe = 'F';
          else $sexe = 'H';
      } else $nom = preg_replace("/^\s*(.*)\s*$/", "\\1", $depute);
      $nom = ucfirst($nom);
      if ($debug) echo $nom."//".$sexe."//".$groupe."//".$circo." => ";
      $depute = Doctrine::getTable('Parlementaire')->findOneByNomSexeGroupeCirco($nom, $sexe, $groupe, $circo, $this);
      if (!$depute) print "ERROR: Auteur introuvable in ".$this->source." : ".$nom." // ".$sexe." // ".$groupe."\n";
      else {
        if ($debug) echo $depute->nom."\n";
        if (!$groupe && $depute->groupe_acronyme != "") $groupe = $depute->groupe_acronyme;
        $this->addParlementaire($depute, $signataireindex);
        $depute->free();
      }
      $signataireindex++;
    }
  }

  public function addParlementaire($depute, $signataireindex) {
    foreach($this->getParlementaires() as $par)
      if ($par == $depute) {
        $par->free();
        return true;
      }
    $pa = new ParlementaireAmendement();
    $pa->_set('Parlementaire', $depute);
    $pa->_set('Amendement', $this);
    $pa->numero_signataire = $signataireindex;
    if ($pa->save()) {
      $pa->free();
      return true;
    } else return false;
  }

  public function getSignataires($link = 0) {
    $signa = preg_replace("/M\s+/", "M. ", $this->_get('signataires'));
    if ($link)
      $signa = preg_replace('/(M+[\.mles\s]+)?([\wàéëêèïîôöûüÉ\s-]+)\s*(,\s*|$)/', '<a href="/deputes?search=\\2">\\1\\2</a>\\3', $signa);
    return $signa;
  }

  public function getTitre() {
    $parent = 0;
    $pluriel = "";
    $parent = $this->getTags(array('is_triple' => true,
	  'namespace' => 'loi',
	  'key' => 'sous_amendement_de',
	  'return'    => 'value'));
    if (count($parent) == 1)
      $titre = "Sous-Amendement";
    else {
      $parent = "";
      $titre = "Amendement";
    }
    $numeros = $this->numero;
    $ident = $this->getTags(array('is_triple' => true,
	  'namespace' => 'loi',
	  'key' => 'amendement',
	  'return'    => 'value'));
    if (count($ident) > 1) {
      sort($ident);
      $numeros = implode(', ', $ident);
      $pluriel = "s";
    }
    $titre .= $pluriel." N° ".$numeros;
    if ($this->rectif == 1)
      $titre .= " rectifié".$pluriel;
    elseif($this->rectif > 1)
      $titre .= " ".$this->rectif."ème rectif.";
    if ($parent != 0)
      $titre .= " à l'amendement N° ".link_to($parent[0], '@find_amendements_by_loi_and_numero?loi='.$this->texteloi_id.'&numero='.$parent[0]);
    return "$titre";
  }

  public function getTexte($style=1) {
    if ($style == 1)
      return preg_replace('/\<p\>\s*«\s*([^»]+)\s+»(\W*)\<\/p\>/', '<p class="indent_guillemets">«&nbsp;\1&nbsp;»\2</p>', $this->_get('texte'));
    else return $this->_get('texte');
  }

public function getTitreNoLink() {
    return preg_replace('/\<a href.*\<\/a\>/', '', $this->getTitre());
  }

  public function getLinkPDF() {
    return preg_replace('/\/amendement/', '/pdf/amendement', preg_replace('/\.asp(.*)$/', '.pdf', $this->source));
  }
}<commit_msg>blockquote au lieu de class css inutile<commit_after><?php

/**
 * This class has been auto-generated by the Doctrine ORM Framework
 */
class Amendement extends BaseAmendement {

  public function getLink() {
    return '@amendement?id='.$this->id;
  }

  public function __toString() {
    $str = substr(strip_tags($this->expose), 0, 250);
    if (strlen($str) == 250) {
      $str .= '...';
    }
    return $str;
  }

  public function setAuteurs($auteurs) {
    $groupe = null;
    $sexe = null;
    if (preg_match('/^\s*(.*),+\s*les\s+(.*\s+[gG]roupe|membres|députés)\s+(.*)\s*$/' ,$auteurs, $match)) {
      $auteurs = $match[1];
      $groupe = preg_replace("/^\s*(de la|de l'|du)\s*/", "", $match[3]);
      if (preg_match('/^(.*)(et|,)\s+(M[\s\.ml].*)$/' ,$groupe, $match2)) {
        $groupe = $match2[1];
        $auteurs .= ", ".$match2[3];
      }
      if (preg_match('/(union.*mouvement.*populaire|UMP)/i',$groupe)) $groupe = "UMP";
      elseif (preg_match('/(socialiste.*radical|SRC)/i',$groupe)) $groupe = "SRC";
      elseif (preg_match('/(gauche.*démocrate|GDR)/i',$groupe)) $groupe = "GDR";
      elseif (preg_match('/(nouveau.*centre|NC)/i',$groupe)) $groupe = "NC";
      else $groupe = null;
    }
    if ($debug) echo $auteurs." // ".$groupe."\n";
    $arr = preg_split('/,/', $auteurs);
    $signataireindex = 1;
    foreach ($arr as $depute) {
      if (preg_match('/^(.*)\((.*)\)/', $depute, $match)) {
        $depute = trim($match[1]);
        $circo = preg_replace('/\s/', '-', ucfirst(trim($match[2])));
      } else $circo = null;
      if (preg_match('/(gouvernement|président|rapporteur|commission|questeur)/i', $depute)) {
        if ($debug) print "WARN: Skip auteur ".$depute." for ".$this->source."\n";
        continue;
      } elseif (preg_match('/^\s*(M+[\s\.ml]{1})[a-z]*\s*([a-zA-Z].*)\s*$/', $depute, $match)) {
          $nom = $match[2];
          if (preg_match('/M[ml]/', $match[1]))
            $sexe = 'F';
          else $sexe = 'H';
      } else $nom = preg_replace("/^\s*(.*)\s*$/", "\\1", $depute);
      $nom = ucfirst($nom);
      if ($debug) echo $nom."//".$sexe."//".$groupe."//".$circo." => ";
      $depute = Doctrine::getTable('Parlementaire')->findOneByNomSexeGroupeCirco($nom, $sexe, $groupe, $circo, $this);
      if (!$depute) print "ERROR: Auteur introuvable in ".$this->source." : ".$nom." // ".$sexe." // ".$groupe."\n";
      else {
        if ($debug) echo $depute->nom."\n";
        if (!$groupe && $depute->groupe_acronyme != "") $groupe = $depute->groupe_acronyme;
        $this->addParlementaire($depute, $signataireindex);
        $depute->free();
      }
      $signataireindex++;
    }
  }

  public function addParlementaire($depute, $signataireindex) {
    foreach($this->getParlementaires() as $par)
      if ($par == $depute) {
        $par->free();
        return true;
      }
    $pa = new ParlementaireAmendement();
    $pa->_set('Parlementaire', $depute);
    $pa->_set('Amendement', $this);
    $pa->numero_signataire = $signataireindex;
    if ($pa->save()) {
      $pa->free();
      return true;
    } else return false;
  }

  public function getSignataires($link = 0) {
    $signa = preg_replace("/M\s+/", "M. ", $this->_get('signataires'));
    if ($link)
      $signa = preg_replace('/(M+[\.mles\s]+)?([\wàéëêèïîôöûüÉ\s-]+)\s*(,\s*|$)/', '<a href="/deputes?search=\\2">\\1\\2</a>\\3', $signa);
    return $signa;
  }

  public function getTitre() {
    $parent = 0;
    $pluriel = "";
    $parent = $this->getTags(array('is_triple' => true,
	  'namespace' => 'loi',
	  'key' => 'sous_amendement_de',
	  'return'    => 'value'));
    if (count($parent) == 1)
      $titre = "Sous-Amendement";
    else {
      $parent = "";
      $titre = "Amendement";
    }
    $numeros = $this->numero;
    $ident = $this->getTags(array('is_triple' => true,
	  'namespace' => 'loi',
	  'key' => 'amendement',
	  'return'    => 'value'));
    if (count($ident) > 1) {
      sort($ident);
      $numeros = implode(', ', $ident);
      $pluriel = "s";
    }
    $titre .= $pluriel." N° ".$numeros;
    if ($this->rectif == 1)
      $titre .= " rectifié".$pluriel;
    elseif($this->rectif > 1)
      $titre .= " ".$this->rectif."ème rectif.";
    if ($parent != 0)
      $titre .= " à l'amendement N° ".link_to($parent[0], '@find_amendements_by_loi_and_numero?loi='.$this->texteloi_id.'&numero='.$parent[0]);
    return "$titre";
  }

  public function getTexte($style=1) {
    if ($style == 1)
      return preg_replace('/\<p\>\s*«\s*([^»]+)\s+»(\W*)\<\/p\>/', '<blockquote>«&nbsp;\1&nbsp;»\2</blockquote>', $this->_get('texte'));
    else return $this->_get('texte');
  }

public function getTitreNoLink() {
    return preg_replace('/\<a href.*\<\/a\>/', '', $this->getTitre());
  }

  public function getLinkPDF() {
    return preg_replace('/\/amendement/', '/pdf/amendement', preg_replace('/\.asp(.*)$/', '.pdf', $this->source));
  }
}
{'fraction_non_alphanumeric': 0.24913389036070918, 'fraction_numerical': 0.0077440391277766455, 'mean_word_length': 2.8520408163265305, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 97, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '917823', 'n_tokens_mistral': 3904, 'n_tokens_neox': 3818, 'n_words': 663}