Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Utilisation de cgsi_convert
#10

Bon,

j'ai appris un truc, c'est que le "foreach as $img" et modifier $img a l'interieur de la boucle, ca ne marche pas.

J'ai trouve une recette sur Stack Overflow que j'ai adapte a mon probleme. J'ai rajoute style / alt / class a la liste des tags lus et copiés dans le nouvel element CGSmartImage.

Code :
@$doc->loadHTML($content);

//following http://stackoverflow.com/questions/11067587/dom-replacechild-not-replacing-all-specified-elements

$imgElements = $doc->getElementsByTagName('img');
$imgCount = $imgElements->length;

for($i= $imgCount-1;$i>=0;--$i) {
    $img=$imgElements->item($i);

    if ($img->hasAttribute('src') AND substr($img->getAttribute('src'), 0, 7) == "uploads") {        
        $img_source = $img->getAttribute('src');
        $img_width = $img->getAttribute('width');
        $img_height = $img->getAttribute('height');
                $img_title = $img->getAttribute('title');
                $img_alt = $img->getAttribute('alt');
                $img_style = $img->getAttribute('style');
                $img_class = $img->getAttribute('class');
        
        $smarty_data = "{CGSmartImage src=\"$img_source\" filter_resizetofit=\"$img_width,$img_height\" title=\"$img_title\" alt=\"$img_alt\" class=\"$img_class\" style=\"$img_style\"}";

        @ob_start();
                echo $smarty->display('eval:'.$smarty_data) ;
        $_contents = @ob_get_contents();
        @ob_end_clean();
                
                $new = $doc->createTextNode($_contents);
                $img->parentNode->replaceChild($new,$img);        
    }
}


Voila voila.
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)