path = $c->profil->path->shared.'/persist/logos'; $this->siren = $siren; $this->isin = $isin; } public function affiche() { // Ne pas afficher le logo si il n'existe pas OU // si le siren est à 0 OU si le siren est inférieur a 100 $logo = $this->exist($this->siren, $this->isin); if ( $logo && (intval($this->siren)!=0 || intval($this->siren)>100) ) { $tabTmp = @getimagesize($this->path.'/'.$logo); $w = $tabTmp[0]; $h = $tabTmp[1]; if ($w > 350) { $strSize = $this->redimage($this->path.'/'.$logo, 350, 150); } else { $strSize = ''; } return ''; } return ''; } public function getFromUrl($siteWeb) { $img = false; if (substr($siteWeb,-1)!='/') $siteWeb.='/'; try { $client = new Zend_Http_Client($url); $response = $client->request('GET'); $siteBody = $response->getBody(); } catch (Zend_Http_Client_Exception $e) { } if (preg_match('/setStream(); $response = $client->request('GET'); if ( $response->isSuccessful() ) { $img = $this->path.'/'.$this->siren.'.'.$ext; copy($response->getStreamName(), $img); chmod($img, 0755); } } catch (Zend_Http_Client_Exception $e) {} } return $img; } public function exist() { $img_ext = array('gif', 'png', 'jpg', 'jpeg'); $ext = ''; // Recherche le logo avec le siren $locImg = $this->path.'/'.$this->siren; foreach($img_ext as $extension){ if( file_exists($locImg.'.'.$extension) ) { return $this->siren.'.'.$extension; break; } } // Recherche de logos avec le code isin if(!empty($this->isin)) { $locImg = $this->path.'/'.$this->isin; foreach($img_ext as $extension) { if( file_exists($locImg.'.'.$extension) ) { return $this->isin.'.'.$extension; break; } } } return false; } function redimage($img_src,$dst_w,$dst_h) { // Lit les dimensions de l'image $size = getimagesize($img_src); $src_w = $size[0]; $src_h = $size[1]; // Teste les dimensions tenant dans la zone $test_h = round(($dst_w / $src_w) * $src_h); $test_w = round(($dst_h / $src_h) * $src_w); // Si Height final non précisé (0) if(!$dst_h) $dst_h = $test_h; // Sinon si Width final non précisé (0) elseif(!$dst_w) $dst_w = $test_w; // Sinon teste quel redimensionnement tient dans la zone elseif($test_h>$dst_h) $dst_w = $test_w; else $dst_h = $test_h; // Affiche les dimensions optimales return "width=".$dst_w." height=".$dst_h; } }