Dotclear

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

Annonce

#1 2008-06-23 15:47:15

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Plugin Carnaval et Config blowUp.

Hello,

J'aimerais avec le plugin Carnaval utiliser le plugin Blowup Config intégré à Dotclear.

Pour rappel, Carnaval surchage les tpl CommentIfMe, PingIfMe pour récupérer la classe CSS définie via l'interface Carnaval qui associe une Classe CSS à un mail ou un site.

Je compte ajouter l'édition d'une feuille de style relative au plugin ajoutée automatiquement via les nouveaux behaviors (ça c'est déjà fait dans les plugins, ça devrait aller)

En revanche, je souhaite appeller blowUpConfig pour créer des images spécifiques..
* commentRiri-t.png
* commentRiri-b.png
Pour réperer les commentaires et rétroliens de Riri
et
* commentFifi-t.png
* commentFifi-b.png
Pour réperer les commentaires et rétroliens de Fifi

Ainsi sur un post, j'ai les commentaires classiques, les commentaires de l'auteur et ceux de Riri et Fifi qui se démarquent.

On pourrait voir cette modification comme une "extension" du plugin blowUpConfig

Mais en l'état, j'aimerais bien des pistes alors je vous sollicite :)

Merci vos retours

Hors ligne

#2 2008-06-25 09:10:24

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

En route pour un nouveau monologue :-)

Donc la nouvelle version du plugin rajoutera l'appel au fichier <nom_du_theme>-carnaval.css (je pense au plugin arlequin.. ) que je place dans un nouveau répertoire [CarnavalConfig] du répertoire [public] (via les behaviors)

Pour le dev de la nouvelle version du plugin, voici des questions et idées en vrac:
1) Pensez vous qu'il faille copier toute les classes et fonctions de blowUpConfig ou bien je peux les appeller ? et si oui comment ?
2) Si les thèmes proposent des images sur les blocs #comments dt et #comments dd, je propose d'ajouter un

background:inherit

dans ma feuille de style <nom_du_theme>-carnaval.css
3) Un ajustement de la feuille de style créée sera possible (au cas où les blocs du thème ont des noms exotiques)
4) Si le thème blowUp est activé, je créé des nouvelles images pour mes utilisateurs 'identifiés'
5) Sinon, je propose seulement de changer la couleur du texte et du fond. Est ce que je différencie le bloc dd et dt ? ou je m'occupe seulement du dt ?

J'aimerais bien avancer sur le sujet mais pas tout seul ;-)

Hors ligne

#3 2008-07-02 09:14:30

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

J'aimerais juste savoir si certains sont intéressés ou je m'embête pour grand chose ?
Ou c'est complexifier le plugin pour des cacahouettes ?


NB: N'y voyez pas un moyen de remonter le sujet dans le forum... ;-)

Hors ligne

#4 2008-07-02 10:09:42

Lomalarch
Responsable du photocopieur
Lieu : Colombes (92)
Inscription : 2006-05-02
Site Web

Re : Plugin Carnaval et Config blowUp.

Pour être honnête, ça paraît intéressant, mais je n’en comprends pas la moitié, du coup, ça limite ma capacité à proposer des commentaires pertinents ;-)


RTFM attitude : https://fr.dotclear.org/documentation/2.0
Le chantier tips, tutos et astuces : http://tips.dotaddict.org/
Rien nulle part??? une petite recherche sul’ forum, alors?: https://forum.dotclear.org/search.php ?

Hors ligne

#5 2008-09-17 09:19:36

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Up ;-)
Plus sérieusement, je regarde comment fonctionne blowupConfig et ce qui m'embête particulièrement est que j'ai une liste de règles CSS de longueur variable à ajouter (et donc stocker dans les settings du blog) puisque cette liste dépend du nombre d'enregistrements de la table spécifique du plugin.

En vrac, il me faut :

-> prévoir l'appel à lib/class.blowup.config.php, ça choque pas que j'appelle ce plugin depuis un autre ?

-> où dois je stocker les images de mon extension ? dans blowup-images déjà existant? ou un nouveau répertoire carnaval-images dans le répertoire public ?

-> Il faut donc que je prévois de supprimer le ou les settings associés à un enregistrement de ma table quand j'efface un enregistrement ? (là je vais regarder du coté de clean::config)

-> L'ajout des règles CSS automatiquement via le behavior publicHeadContent - mais en regardant le _public.php de blowupConfig :

		self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
		self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);

		self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
		self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');

Notre me est une variable donnée par l'utilsateur : TotoComment, DotclearComment (ce qu'on veut) . post_commentmy_bg_cpost_commentmy_c, commentmy-t.png ou encore commentmy-b.png.
Pour chaque enregistrement de ma table, j'aimerais :

		self::prop($css,'#comments dd.<maClasseCss>','background-color',$s['post_<maClasseCss>_bg_c']);
		self::prop($css,'#comments dd.<maClasseCss>','color',$s['post_<maClasseCss>_c']);

		self::backgroundImg($css,'#comments dt.<maClasseCss>',$s['post_<maClasseCss>_bg_c'],'<maClasseCss>-t.png');
		self::backgroundImg($css,'#comments dd.<maClasseCss>',$s['post_<maClasseCss>_bg_c'],'<maClasseCss>-b.png');

-> J'aurais donc une interface différente sur le plugin si j'ai le thème actif 'default' ou non. Le non 'default' est déjà géré par l'extension.

Vous voulez pas en faire un plugin officiel de tout ce bazar ? ça sera plus simple :-)
Sinon, vous pouvez aussi m'aider ...

Hors ligne

#6 2008-09-17 15:20:32

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Attendez, me dîtes pas que je devrais mieux stocker mes deux informations supplémentaires (couleur du fond et couleur du texte) plutôt dans ma table et pas dans les settings ? si ?

Hors ligne

#7 2008-09-18 13:31:47

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Je suis parti sur cette dernière solution, et j'en suis à positionner la pipette du colorpicker.js correctement après mes deux nouveaux champs dans mon formulaire.

Mais j'ai la petite anomalie suivante :
* A la création, ma pipette est dans ma zone input et c'est moche !
http://labo.sakeco.net/trunk/public/Sho … l-beta.png
* En édition, impeccable, la pipette est à coté :
http://labo.sakeco.net/trunk/public/Sho … beta-2.png

Voici le code concerné :

Un bout de mon index.php:

<?php
require dirname(__FILE__).'/forms.php';
echo '<div class="multi-part" id="add-class" title="'.__('Add a CSS Class').'">
	<form action="plugin.php" method="post">
	<fieldset class="two-cols"><legend>'.__('Add a new CSS Class').'</legend>
	'.$forms['form_fields'].'
	<p>'.form::hidden(array('p'),'carnaval').$core->formNonce().
	'<input type="submit" name="add_class" value="'.__('save').'" tabindex="6" /></p>
	</fieldset>
	</form>
	</div>';
?>

forms.php:

<?php 
$forms = array();

$forms['form_fields'] = '
<p><label class="required" title="'.__('Required field').'">'.__('Name:').' '.
	form::field('comment_author',30,255,html::escapeHTML($comment_author),'',2).
'</label></p>
<p><label class="required" title="'.__('Required field').'">'.__('CSS Class:').' '.
	form::field('comment_class',30,255,html::escapeHTML($comment_class),'',5).
'</label></p>
<p><label>'.__('Mail:').' '.
	form::field('comment_author_mail',30,255,html::escapeHTML($comment_author_mail),'',3).
'</label></p>
<p><label>'.__('URL:').' '.
	form::field('comment_author_site',30,255,html::escapeHTML($comment_author_site),'',4).
'</label></p>
<p><label>'.__('Text color:').' '.
	form::field('comment_text_color',7,7,html::escapeHTML($comment_text_color),'colorpicker',6).
'</label></p>
<p><label>'.__('Background color:').' '.
	form::field('comment_background_color',7,7,html::escapeHTML($comment_background_color),'colorpicker',7).
'</label></p>
';
?>

Qqun peut m'aider à placer à pipette correctement ?

Hors ligne

#8 2008-09-18 14:31:56

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Pour donner suite au message précédent, voici les deux codes sources différents :
En ajout

<label>
Couleur de fond :
<span style="padding: 0pt 5px 0pt 0pt; position: relative; display: block; width: 12px;">
<input id="comment_background_color" class="colorpicker" type="text" tabindex="7" value="#ECEADE" maxlength="7" name="comment_background_color" size="7" style="background-color: rgb(236, 234, 222); color: rgb(0, 0, 0);"/>
<img src="images/picker.png" alt="" style="position: absolute; top: 3px; right: 0pt; cursor: default;"/>
</span>
</label>

En édition

<label>
Couleur de fond :
<span style="padding: 0pt 5px 0pt 0pt; position: relative; display: block; width: 160px;">
<input id="comment_background_color" class="colorpicker" type="text" tabindex="7" value="#a5fa57" maxlength="7" name="comment_background_color" size="7" style="background-color: rgb(165, 250, 87); color: rgb(0, 0, 0);"/>
<img src="images/picker.png" alt="" style="position: absolute; top: 3px; right: 0pt; cursor: default;"/>
</span>
</label>

c'est bien l'outil JavaScript Color picker qui m'ajoute ces <span>.
Maintenant pourquoi dans un cas j'ai width: 160px et dans l'autre width: 12px ?

Hors ligne

#9 2008-09-18 14:39:38

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Raahh, j'ai trouvé qqch :)
Il y a des interférences avec le fonctionnement <div class="multi-part">
=> Si j'appelle colorpicker dans une #div qui n'a pas la classe "multipart", ma pipette est bien placée.

Je vais saisir un bug tiens pour la peine.

Hors ligne

#10 2008-10-15 15:07:17

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Je n'ai pas abandonné le sujet.
Maintenant que je sais à peu près réutiliser le principe de blowupConfig pour la personnalisation CSS (voir pre2ol), je m'attaque à la partie de construction d'images.

Dans blowup, les infos sont contenus dans un tableau avec toutes les caractéristiques du style de l'utilisateur.
Pour Carnaval je stocke mes infos dans une table.

Donc je suis obligé de parcourir ma table (à coup de fetch) et pour chaque enregistrement, je veux créer mes nouvelles images (ou les mettre à jour si les infos ont changés) et ajouter de nouvelles règles CSS.

Voilà ce que j'écris pour la partie CSS de publicHeadContent:

	public static function publicHeadContent(&$core)
	{
		echo '<style type="text/css">'."\n".self::carnavalStyleHelper()."\n</style>\n";
	}
	
	public static function carnavalStyleHelper()
	{
		$cval = dcCarnaval::getClasses();
		$css = array();
		$res = '';
		while ($cval->fetch())
			{
				$cl_class = $cval->comment_class;
				$cl_txt = $cval->comment_text_color;
				$cl_backg = $cval->comment_background_color;
				self::prop($css,'#comments dd.$cl_class','color',$cl_txt);
				self::prop($css,'#comments dd.$cl_class','background-color',$cl_backg);
				self::backgroundImg($css,'#comments dt.$cl_class',$cl_backg,'comment-t.png');
				self::backgroundImg($css,'#comments dd.$cl_class',$cl_backg,'comment-b.png');
				foreach ($css as $selector => $values)
				{
					$res .= $selector." {\n";
					foreach ($values as $k => $v) {
						$res .= $k.':'.$v.";\n";
					}
					$res .= "}\n";
				}
				return $res;
			}
	}

	protected static function prop(&$css,$selector,$prop,$value)
	{
		if ($value) {
			$css[$selector][$prop] = $value;
		}
	}
	
	protected static function backgroundImg(&$css,$selector,$value,$image)
	{
		$file = blowupConfig::imagesPath().'/'.$image;
		if ($value && file_exists($file)){
			$css[$selector]['background-image'] = 'url('.blowupConfig::imagesURL().'/'.$image.')';
		}
	}

Ce qui me pose pb et ce pourquoi je vous demande un coup de main c'est

self::backgroundImg($css,'#comments dt.$cl_class',$cl_backg,'comment-t.png');

'#comments dt.$cl_class' => c'est bon ça ??

cl_class étant le nom de ma classe CSS dans ma table carnaval. J'aimerais être sûr que le machin que j'écris me rendra des règles CSS du style :

#comments dt.DotclearClass {background-color : #123456}
#comments dt.DotclearClass {background-img: url('public/blowup-images/DotclearClass-comment-t.png)}
#comments dd.DotclearClass {background-img: url('public/blowup-images/DotclearClass-comment-b.png)}

Les images DotclearClass-comment-t.png et DotclearClass-comment-b.png auront été créé via une fonction createImages du même tonneau que celle la méthode blowupConfig. celle actuelle lit le tableau des $settings. J'ai juste besoin pour mon plugin de lui passer en paramêtre la couleur et le nom de ma classe CSS.

C'est du b-a-ba de la programmation j'imagine mais moi j'y connais pas grand chose :)
V'pouvez m'aider ?

Hors ligne

#11 2008-10-15 23:03:19

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Je vous remercie de ne pas m'aider. vraiment.
C'est tellement gratifiant de trouver tout seul :)

J'ai bien avancé. Le seul truc qui me chagrine, c'est la sortie de carnavalStyleHelper.
Voyez ce qu'il en est :

	public static function carnavalStyleHelper()
	{
		$cval = dcCarnaval::getClasses();
		$css = array();
		$res = '';
		while ($cval->fetch())
			{
				$cl_class = $cval->comment_class;
				$cl_txt = $cval->comment_text_color;
				$cl_backg = $cval->comment_background_color;
				self::prop($css,'#comments dd.'.$cl_class,'color',$cl_txt);
				self::prop($css,'#comments dd.'.$cl_class,'background-color',$cl_backg);
				self::backgroundImg($css,'#comments dt.'.$cl_class, $cl_backg,$cl_class.'-comment-t.png');
				self::backgroundImg($css,'#comments dd.'.$cl_class,$cl_backg,$cl_class.'-comment-b.png');
				foreach ($css as $selector => $values)
				{
					$res .= $selector." {\n";
					foreach ($values as $k => $v) {
						$res .= $k.':'.$v.";\n";
					}
					$res .= "}\n";
				}
				return $res;
			}
	}

La fonction me retourne qu'un seul 'return' (j'imagine que ça doit être le but du return :p)
Comment m'en sortir pour ma fonction me retourne l'ensemble de propriétés CSS pour CHACUN de mes enregistrements ?
Cette fois-ci, vous pouvez m'aider :)

Hors ligne

#12 2008-10-15 23:10:37

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Vous dérangez pas pour moi...
Il fallait juste sortir le return de la boucle while ;).

Bon c'est du coup bientôt fini \o/

Hors ligne

#13 2008-10-16 07:50:09

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Pour voir : http://labo.sakeco.net/trunk/index.php? … t#comments

Ce serait top si seulement il ne me mettrait pas des lignes en trop.
Dans le code source de ma page, voici le bloc ajouté par l'extension:

#comments dd.Peter {
color:#28779F;
background-color:#42432D;
background-image:url(/trunk/public/carnaval-images/Peter-comment-b.png);
}
#comments dt.Peter {
background-image:url(/trunk/public/carnaval-images/Peter-comment-t.png);
}
#comments dd.Peter {
color:#28779F;
background-color:#42432D;
background-image:url(/trunk/public/carnaval-images/Peter-comment-b.png);
}
#comments dt.Peter {
background-image:url(/trunk/public/carnaval-images/Peter-comment-t.png);
}
#comments dd.John {
color:#D98787;
background-color:#D9D887;
background-image:url(/trunk/public/carnaval-images/John-comment-b.png);
}
#comments dt.John {
background-image:url(/trunk/public/carnaval-images/John-comment-t.png);
}
#comments dd.Peter {
color:#28779F;
background-color:#42432D;
background-image:url(/trunk/public/carnaval-images/Peter-comment-b.png);
}
#comments dt.Peter {
background-image:url(/trunk/public/carnaval-images/Peter-comment-t.png);
}
#comments dd.John {
color:#D98787;
background-color:#D9D887;
background-image:url(/trunk/public/carnaval-images/John-comment-b.png);
}
#comments dt.John {
background-image:url(/trunk/public/carnaval-images/John-comment-t.png);
}
#comments dd.Osku {
color:#FCF8F8;
background-color:#561515;
background-image:url(/trunk/public/carnaval-images/Osku-comment-b.png);
}
#comments dt.Osku {
background-image:url(/trunk/public/carnaval-images/Osku-comment-t.png);
}

Une idée du pourquoi / comment ?

Hors ligne

#14 2008-10-16 09:43:24

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Trouvé :)

	public static function carnavalStyleHelper()
	{
		$cval = dcCarnaval::getClasses();
		$css = array();
		while ($cval->fetch())
			{
				$res = '';
				$cl_class = $cval->comment_class;
				$cl_txt = $cval->comment_text_color;
				$cl_backg = $cval->comment_background_color;
				self::prop($css,'#comments dd.'.$cl_class,'color',$cl_txt);
				self::prop($css,'#comments dd.'.$cl_class,'background-color',$cl_backg);
				self::backgroundImg($css,'#comments dt.'.$cl_class, $cl_backg,$cl_class.'-comment-t.png');
				self::backgroundImg($css,'#comments dd.'.$cl_class,$cl_backg,$cl_class.'-comment-b.png');
				foreach ($css as $selector => $values)
				{
					$res .= $selector." {\n";
					foreach ($values as $k => $v) {
						$res .= $k.':'.$v.";\n";
					}
					$res .= "}\n";
				}
				return $res;
			}
	}

=> Le $res = ''; dans la boucle while

Des gens veulent tester ?

Hors ligne

#15 2008-10-20 13:44:04

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

La prochaine version de Carnaval est donc maintenant compatible avec le thème Blowup.

Deux nouveaux champs font leur apparition dans le formulaire d'ajout de classe CSS dans l'admin.
* La couleur du texte
* La couleur du fond

Via la nouvelle mécanique, vous pourrez avoir ce genre de rendu : http://www.sakeco.net/blog/post/2008/07 … s-javatars sur votre blog.

Vous pouvez m'aider à la proposer plus rapidement cette extension sur dotaddict en la testant. :)

Voici donc la version 2.0 RC1 de l'extension Carnaval.

Hors ligne

#16 2008-12-17 10:50:14

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Plugin Carnaval et Config blowUp.

Euh flûte, toujours pas de retours sur la version blowup friendly

http://dcplugins.googlecode.com/files/p … 1.2RC1.zip

Z'en dîtes quoi ?

Je rappelle qu'avec cette version, vous pouvez choisir les couleurs du texte et du fond des commentaires que vous souhaitez. ET le ploug créé tout seul comme un grand les images utiles -- C'est ça le truc en plus de cette version.

Hors ligne

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

Pied de page des forums

Sites map