Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2008-11-20 13:24:34

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Plugins et problème CSS

Coucou,

J'ai petit souci dans un plugin, lorsque ce dernier fournit des CSS qui pointent vers des images dans un sous-dossier du plugin.

le fichier style.css, placé à la racine du plugin, référence une image via url(img/head.jpg) par exemple
Le style est inclu via l'URL ?pf/plugin/style.css
L'image est bien visible via ?pf/plugin/img/head.jpg

Mais, en lisant la css, le navigateur n'arrive pas à trouver l'image. Raison : il supprime la query string de l'url et va chercher l'image dans img/head.jpg.

J'ai bien défini un urlhandler particulier qui permet de retourner la css et l'image autrement que via ?pf, mais le problème se posera toujours dans le cas deun blog configuré en QUERY_STRING (vu que l'urlhandler sera appelé via ?monurlhandler/fichier, et que la query-string sera elle aussi supprimée lors de l'inclusion)

Il y a un contournement "propre" à ce problème ? Une directive css bien cachée qui m'aiderait, ou quelque chose du genre ?


Dyslexics have more fnu!

Hors ligne

#2 2008-11-20 13:30:39

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : Plugins et problème CSS

Dans lunarPhase, je fais un

background: transparent url(index.php?pf=lunarPhase/img/nm.gif) no-repeat left 0.2em;

et ça marche nickel

Par contre, en écrivant ces lignes, je viens de me rendre compte que je ne suis pas sur du résultat en PATH INFO....


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#3 2008-11-20 13:45:21

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Plugins et problème CSS

Je peux essayer ?

Pour mon widget lastImages, j'inclus une css et éventuellement une image comme ceci

Arborescence du répertoire du plugin :

css/
  image-box.css
images/
  nothumbnail.jpg

_admin.php
_define.php
_public.php

dans le _public.php du plugin pour inclure la css

public static function publicHeadContent(&$core)
	{
		
		$url = $core->blog->getQmarkURL().'pf='.basename(dirname(__FILE__));
		echo
		'<style type="text/css">'."\n".
		'@import url('.$url.'/css/image-box.css);'."\n".
		"</style>\n";
	}

et dans une autre fonction pour appeler l'image

...
$url = $core->blog->getQmarkURL().'pf='.basename(dirname(__FILE__));
$img_thumb_name = $url.'/images/nothumbnail.jpg';
...

Evidemment ce n'est pas pareil (si j'ai bien compris) car ce n'est pas la css qui appelle l'image, mais si ça peut aider...

Hors ligne

#4 2010-01-11 16:23:42

JcDenis
Membre
Lieu : Lyon, France
Inscription : 2007-08-31
Site Web

Re : Plugins et problème CSS

Dans le plugin rateIt j'utilise aussi un tour de passe-passe.
J'enregistre une nouvel urlHandlers nommé "rateItmodule" qui appelle une fonction de ma class public. Il y a quelques conditions inutilent pour ton besoin mais la fin de la fonction est intéressante :

public static function files($args)
{
	global $core;

	if (!$core->blog->settings->rateit_active) {
		self::p404();
		return;
	}

	if (!preg_match('#^(.*?)$#',$args,$m)) {
		self::p404();
		return;
	}

	# fonction de recherche de fichier (plugin, theme, public)
	if (!($f = self::searchRateItTplFiles($m[1]))) {
		self::p404();
		return;
	}

	# limite les types de fichiers autorisés
	$allowed_types = array('png','jpg','jpeg','gif','css','js','swf');
	if (!file_exists($f) || !in_array(files::getExtension($f),$allowed_types)) {
		self::p404();
		return;
	}

	//http::cache(array_merge(array($f),get_included_files()));
	$type = files::getMimeType($f);
	header('Content-Type: '.$type.'; charset=UTF-8');
	//header('Content-Length: '.filesize($f));
	if ($type != "text/css" || $core->blog->settings->url_scan == 'path_info') {
		readfile($f);
	} else {
		echo preg_replace('#url\((?!(http:)|/)#','url('.$core->blog->url.$core->url->getBase('rateItmodule').'/',file_get_contents($f));
	}
	return;
}

Je renvois le fichier en changeant les urls de ce dernier si c'est un fichier CSS. Ca peut être une piste...


Cordialement,
_JC | Intérimaire | En mode invisible

Hors ligne

#5 2010-01-11 16:26:09

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : Plugins et problème CSS

Hmmm ... ce code ne m'est pas inconnu ... j'ai la même chose dans gallery :)


Dyslexics have more fnu!

Hors ligne

#6 2010-01-12 09:13:01

JcDenis
Membre
Lieu : Lyon, France
Inscription : 2007-08-31
Site Web

Re : Plugins et problème CSS

Dsls a écrit :

Hmmm ... ce code ne m'est pas inconnu ... j'ai la même chose dans gallery :)

Ya un peu de ça oui :)


Cordialement,
_JC | Intérimaire | En mode invisible

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map