BaroqueW

and his side-kick nikkitaa

Customisation de WordPress – Alt to Legend

leave a comment »

Puisque je viens de migrer de Spip à WordPress, il y a pas mal de choses à refaire. Heureusement de nombreux plugins sont là pour me simplifier la tâche. Alt to Legend est un de ceux-là. Il permet en un tour de main de faire apparaître la légende des photos que vous ajoutez à vos articles. Il permet notamment de ne pas avoir à se salir les mains ou à plonger dans le code de vos thèmes pour tout faire vous-même.

J’ai dû légérement le modifier pour arriver à mes fins cela dit.

  • D’abord, le centrage des légendes ou des images ne marchaient pas. float : center ne passe pas : remplacé par margin-left : auto; margin-right : auto; pour le cadre et par <center></center> pour le texte
  • La reconnaissance du centrage ne se fait plus sur align=”left/right/center” mais sur class=”alignleft/right/center” pour refléter mon thème
  • Lorsqu’une image n’a pas de légende, elle est désormais zappée (attention, cela zappe aussi le cadre autour de l’image.
if (strcmp($al_settings['text_align'], "center") == 0) {

 		$text_style = '<span><center>';

 		$text_style_close = '</center></span>';

 	}

 	else {

 		$text_style = '<span style="text-align:'.$al_settings['text_align'].'; ">';

 		$text_style_close = '</span>';

 	}

        $counter = 0;
// Set the apperarance of the borders and the image according to user settings

        if ( $al_settings['use_border'] == false ) { $al_settings['border_style'] = 'none' ;}

        $div_open = '<div id="img_lgnd" style="position: relative; font-size: '.$al_settings['font_size'].'; border: '.$al_settings['border_size'].'px '.$al_settings['border_style'].' '.$al_settings['border_color'].'; margin: '.$al_settings['margin'].'; padding: '.$al_settings['padding'].'; max-width: '.$img_width.'px;  height:auto !important;';

if (strcmp($image_align, "right") == 0 ){

 		$div_open .= ' float : right';

 	} else if (strcmp($image_align, "left") == 0 ){

 			$div_open .= ' float : left';

 	} else if (strcmp($image_align, "center") == 0){

 		$div_open .= ' margin-left : auto; margin-right : auto';

 	}

$div_open .= '">';

$img_true_end = $img_start + strlen($img_text);

        $img_text = str_replace ($img_open, $img_incipit, $img_text);

$lgnd_start = strpos($img_text, $lgnd_open);

        if ($lgnd_start) { // if the alt or title description exists

        $img_text2 = substr($img_text, $lgnd_start + $lgnd_open_len + 1);

        $lgnd_end = strpos($img_text2, $lgnd_close);

        $lgnd_text = substr($img_text2, 0, $lgnd_end);

        $before = substr($data, 0, $img_start);

        $after = substr($data, $img_true_end);

$data_chunck[$counter] = $before.$div_open.$img_text.$text_style.$lgnd_text.
                                         $text_style_close.$div_close;

        $data = $after;

        $counter++;

        } else {

         $before = substr($data, 0, $img_true_end);

         $after = substr($data, $img_true_end);

$data_chunck[$counter] = $before;

         $data = $after;

         $counter++;

 	}

}

$data ='';

      for ( $c = 0; $c < $counter; $c++) {

       $data = $data.$data_chunck[$c];

             }

      $data = $data.$after;

       }

    return $data;

}

Written by baroquew

February 24, 2008 at 19:26

Leave a Reply