41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
class Zend_View_Helper_RemplaceSiren extends Zend_View_Helper_Abstract
|
|
{
|
|
public function __construct()
|
|
{
|
|
require_once 'Scores/Siren.php';
|
|
}
|
|
|
|
public function RemplaceSiren($texte)
|
|
{
|
|
$pattern = "/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/";
|
|
return preg_replace_callback($pattern, array($this, 'replace_siren'), $texte);
|
|
}
|
|
|
|
public function replace_siren($matches)
|
|
{
|
|
foreach ($matches as $i => $sirenBrut) {
|
|
$siren = strtr($sirenBrut, array(' '=>'', '.'=>'', '-'=>''));
|
|
if (strlen($sirenBrut)==9) {
|
|
$sirenBrut = implode(' ', str_split($sirenBrut, 3));
|
|
}
|
|
$sirenMethod = new Siren();
|
|
if ($sirenMethod->valide($siren)) {
|
|
if ($sirenMethod->exist($siren)){
|
|
$href = $this->view->url(array(
|
|
'controller' => 'identite',
|
|
'action' => 'fiche',
|
|
'siret' => $siren,
|
|
), null, true);
|
|
return '<a href="'.$href.'" title="Voir la fiche identité de cette entreprise">'.$sirenBrut.'</a>';
|
|
} else {
|
|
return $sirenBrut;
|
|
}
|
|
}
|
|
return $sirenBrut;
|
|
}
|
|
}
|
|
}
|
|
|
|
|