Image typo dans la css

Bonjour,

Est-il possible de reproduire dans une css le code équivalent à :

[(#TITRE|image_typo{police=stencil.ttf})]

Car je voudrais traiter mes intertitres (h3.spip) avec une image.

merci !
dd

dd <lemotjuste@free.fr> wrote:

Bonjour,

Est-il possible de reproduire dans une css le code équivalent à :

[(#TITRE|image_typo{police=stencil.ttf})]

Car je voudrais traiter mes intertitres (h3.spip) avec une image.

avec une css je ne pense pas mais avec un filtre sur #TEXTE filtre
utilisant une expression rationnelle pour remplacer les <h3
class='spip'>xxx</h3> par une image typo

function fabrique_image($h3){
        return produire_image_typo($h3, $police='stencil.ttf');
}

function h3_typo($text) {
        $text = reg_replace_callback( '`<h3
class=\'spip\'>(.*)</h3>`/ui' , $fabrique_image , $text);
        return $text;
}

et dans tes squelettes utiliser le filtre [(#TEXTE|h3_typo)]

Pas testé mais un truc du genre devrait marcher.
je ne suis pas certain de la façon d'invoquer produire_image_typo, si
quelqu'un peut corriger évetuellement.

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

dd a écrit :

Est-il possible de reproduire dans une css le code équivalent à :
[(#TITRE|image_typo{police=stencil.ttf})]

il est toujours possible de faire :
<div style="background-image: url([(#TITRE|image_typo{police=stencil.ttf}|extraire_attribut{src})]);">
   bla
</div>

dans une feuille de style externe, prévoir de la nommer et de l'appeler correctement avec les arguments nécessaires.

Dominique a écrit :

avec une css je ne pense pas mais avec un filtre sur #TEXTE filtre
utilisant une expression rationnelle pour remplacer les <h3
class='spip'>xxx</h3> par une image typo

function fabrique_image($h3){
        return produire_image_typo($h3, $police='stencil.ttf');
}

function h3_typo($text) {
        $text = reg_replace_callback( '`<h3
class=\'spip\'>(.*)</h3>`/ui' , $fabrique_image , $text);
        return $text;
}

et dans tes squelettes utiliser le filtre [(#TEXTE|h3_typo)]

Pas testé mais un truc du genre devrait marcher.
je ne suis pas certain de la façon d'invoquer produire_image_typo, si
quelqu'un peut corriger évetuellement.

Merci de ta réponse rapide,

mais cela retourne une erreur et je vaux 0 en code donc je ne sais pas ce qui cloche :

Fatal error: Call to undefined function reg_replace_callback() in /home/dd/www/site/squelettes/mes_fonctions.php on line 10

dd

Le 30 août 2009 19:18, dd<lemotjuste@free.fr> a écrit :

Merci de ta réponse rapide,

mais cela retourne une erreur et je vaux 0 en code donc je ne sais pas ce
qui cloche :

Fatal error: Call to undefined function reg_replace_callback() in
/home/dd/www/site/squelettes/mes_fonctions.php on line 10

Peut-être la version de php utilisée
preg_replace_callback :
(PHP 4 >= 4.0.5, PHP 5)

--
@plus

Jacques

Pour les lyonnais++ spip-lyon@rezo.net http://spip-party.net/-Lyon-

dd <lemotjuste@free.fr> wrote:

Dominique a écrit :

> avec une css je ne pense pas mais avec un filtre sur #TEXTE filtre
> utilisant une expression rationnelle pour remplacer les <h3
> class='spip'>xxx</h3> par une image typo
>
> function fabrique_image($h3){
> return produire_image_typo($h3, $police='stencil.ttf');
> }
>
> function h3_typo($text) {
> $text = reg_replace_callback( '`<h3
> class=\'spip\'>(.*)</h3>`/ui' , $fabrique_image , $text);
> return $text;
> }
>
> et dans tes squelettes utiliser le filtre [(#TEXTE|h3_typo)]
>
> Pas testé mais un truc du genre devrait marcher.
> je ne suis pas certain de la façon d'invoquer produire_image_typo, si
> quelqu'un peut corriger évetuellement.
>
> Merci de ta réponse rapide,

mais cela retourne une erreur et je vaux 0 en code

C'est l'occasion de s'y mettre...

donc je ne sais pas ce qui cloche :

Fatal error: Call to undefined function reg_replace_callback()
in /home/dd/www/site/squelettes/mes_fonctions.php on line 10

Quelques corrections après vérification ....
C'est bien la fonction preg_replace_callback (manquait le p...)

function fabrique_image($h){
        return produire_image_typo($h[1], $police='stencil.ttf');
}

function h3_typo($text) {
        $text = preg_replace_callback(
'`<h3 class=\'spip\\'>(.*)</h3>`/Ui' , 'fabrique_image' , $text);
        return $text;
}

Il faut aussi probablement échapper aussi l'anti-slash dans class='spip'
(vérifier si c'est une apostrophe ou un guillemet dans ce qui est généré
dans le code par spip et adapter en conséquence).
dans ce cas '`<h3 class="spip">(.*)</h3>`/Ui' devrait le faire comme
motif

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Dominique <dwojylac@free.fr> wrote:

Quelques corrections après vérification ....
C'est bien la fonction preg_replace_callback (manquait le p...)

function fabrique_image($h){
        return produire_image_typo($h[1], $police='stencil.ttf');
}

function h3_typo($text) {
        $text = preg_replace_callback(
'`<h3 class=\'spip\\'>(.*)</h3>`/Ui' , 'fabrique_image' , $text);
        return $text;
}

Il faut aussi probablement échapper aussi l'anti-slash dans class='spip'
(vérifier si c'est une apostrophe ou un guillemet dans ce qui est généré
dans le code par spip et adapter en conséquence).
dans ce cas '`<h3 class="spip">(.*)</h3>`/Ui' devrait le faire comme
motif

Après quelques tests voilà ce qui fonctionne

dans mes_fonctions.php

function fabrique_image_h3($h){
    $arg1 = 'police=stencil.ttf';
    $arg2 = 'taille=24';
    // $arg3 = 'couleur='; au besoin modif en conséquence ci-dessous
// adapter les arguments ci-dessous
    return produire_image_typo($h[1], $arg1, $arg2);
}

function h3_typo($text) {
    $text = preg_replace_callback('`<h3 class="spip">(.*)</h3>`Ui' ,
'fabrique_image_h3' , $text);
    return $text;
}

et dans les squelettes : #TEXTE|h3_typo

Bon après on peut raffiner :
définir des globals dans mes_options par exemple...
ou définir un style particulier pour les images typo (pour leur
positionnement exemple)

dans ce cas remplacer :
return produire_image_typo($h[1], $arg1, $arg2);
par
return '<h3 class="h3_typo">'.produire_image_typo($h[1], $arg1,
$arg2).'</h3>';

--
Dominique
http://wojylac.free.fr