PluXml.org

Blog ou CMS à l'Xml

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

#1 21/07/2011 18:54:16

ologram
Membre
Inscription : 19/07/2011
Messages : 23

[plugin] plxornament

Bonjour,

J'ai créé un plugins pour avoir un champs complémentaire à la saisie d'un article pour pouvoir lier une illustration (image) à un article.

Utilisant le theme shaken adapté par hamtaro
(theme disponible ici http://forum.pluxml.org/viewtopic.php?id=2391)
j'ai modifié ce theme pour ne plus utiliser le chapo mais mon nouveau champs (nommé ornament)

http://www.ologram.fr/?static1/projets

J'aimerais ajouter un bouton pour aider la saisie du lien vers l'image, si quelqu'un veux bien me donner un coup de main.

Hors ligne

#2 21/07/2011 19:17:24

ologram
Membre
Inscription : 19/07/2011
Messages : 23

Re : [plugin] plxornament

Concernant le thème, j'ai remplacé :

<?php if ($plxShow->plxMotor->plxRecord_arts->f('chapo') != '') {
$thumbID = $plxShow->plxMotor->plxRecord_arts->f('chapo'); ?>

par

<?php if ($plxShow->plxMotor->plxRecord_arts->f('ornament') != '') {
$thumbID = $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?>

Dans le fichier home.php

Hors ligne

#3 21/07/2011 19:21:31

flipflip
Membre
Lieu : Lyon
Inscription : 19/05/2008
Messages : 768
Site Web

Re : [plugin] plxornament

Sympa l'idée du champs supplémentaire mais est-ce qu'il n'aurait pas été plus simple d'utiliser timthumb qui prend la première image de l'article pour en faire la vignette ?


"J'ai un string dans l'array" | http://www.blogoflip.fr

Hors ligne

#4 21/07/2011 19:30:19

ologram
Membre
Inscription : 19/07/2011
Messages : 23

Re : [plugin] plxornament

Le thème utilise déjà timbthumb, mais cela permet d'avoir une image associé à l'article

Hors ligne

#5 23/07/2011 00:47:37

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

@ologram, grand merci j'attendais ce plugin depuis des mois. tongue

@flipflip : si tu veux un slider cliquable vers l'article (par exemple), c'est tout de même plus simple avec un champ de donnée supplémentaire.

J'aimerais ajouter un bouton pour aider la saisie du lien vers l'image, si quelqu'un veux bien me donner un coup de main.

Pourquoi, ce n'est pas utile, car il s'agit d'un champ d'information de plus comme le custom-field de Wordpress. smile

Il pourrait servir de source d'information pour autre chose que l'url d'une image.
Genre le prix de vente d'un produit, l'url d'un site pour une annuaire, une css différente sans changer de template, un script jquery spécifique à un article, un sous-titre, un info disant qu'un article fait partie d'une série d'article, etc ...

STP Ologram, ne change rien. tongue

Hors ligne

#6 25/07/2011 22:45:26

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

Au fait, Ologram sur un thème quel code je dois mettre ?
<?php $plxShow->callHook('ornament') ?> ou autre chose ? smile

Un aide à la flipflip, ça serait bien !! wink

Hors ligne

#7 29/07/2011 09:19:53

ologram
Membre
Inscription : 19/07/2011
Messages : 23

Re : [plugin] plxornament

Le code que tu cite permet de récupérer le lien vers l'image.
Après, libre à toi de la mettre comme tu veux dans ton template (balise img pour insérer une image ou lightbox...)

Hors ligne

#8 29/07/2011 11:12:53

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

Merci. wink Je voulais juste savoir si c'était le bon code. Pour son utilisation, ça devrait aller. big_smile

Je te fais un petit retour. Le code HTML généré est coupé, je n'obtient que l'url du site.
En résumé ça donne : http://www.monsite.com/ et non http://www.mon-site.com/data/images/mon-images.jpg.

Je l'ai formaté ainsi :

<img src="<?php $plxShow->callHook('ornament') ?>"  alt="<?php $plxShow->artTitle(''); ?>">

Hors ligne

#9 30/07/2011 09:03:43

grenouille
Membre
Inscription : 22/02/2010
Messages : 81

Re : [plugin] plxornament

Bloody a écrit :

Merci. wink Je voulais juste savoir si c'était le bon code. Pour son utilisation, ça devrait aller. big_smile

Je te fais un petit retour. Le code HTML généré est coupé, je n'obtient que l'url du site.
En résumé ça donne : http://www.monsite.com/ et non http://www.mon-site.com/data/images/mon-images.jpg.

Je l'ai formaté ainsi :

<img src="<?php $plxShow->callHook('ornament') ?>"  alt="<?php $plxShow->artTitle(''); ?>">

il faut mettre :

<?php echo $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?>

Hors ligne

#10 30/07/2011 10:34:28

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

Merci Grenouille !! wink

As-tu remarqué que l'attribut "alt" n'était pas généré ? hmm

Dernière modification par Bloody (30/07/2011 10:34:42)

Hors ligne

#11 30/07/2011 10:42:58

grenouille
Membre
Inscription : 22/02/2010
Messages : 81

Re : [plugin] plxornament

oui en fait jetais un peu rapide
reprend ta balise <img src=" et met ici le code que j'ai donné plus haut, puis tu rajoute le "alt" comme tu avait fait
il faut juste que tu mette le bon chemin de ton image dans le champ ornament,

Hors ligne

#12 30/07/2011 11:54:32

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

Merci Grenouille. wink
J'avais testé cette manière, mais j'avais laissé mon image en chapô et je ne comprenais pas pourquoi j'avait 2 images générées. big_smile
J'ai enfin pu y ajouter ma class css.

Pour ne pas avoir à recharger une image et reprendre mes anciens articles, j'ai ajouté une condition de plus, comme suit :

<?php ob_start(); 
	$plxShow->artContent($chapo=true);
	$content = ob_get_clean();
	$masque = '#<img.+src="(.+?)"#i'; preg_match($masque, $content, $resultats);
	$extension = pathinfo($resultats[1], PATHINFO_EXTENSION); ?>
                    
	<?php if($extension['extension'] == ('jpg'||'jpeg'||'png'||'gif')) : ?>
							

<a href="<?php $plxShow->artUrl($type='relatif'); ?>" rel="bookmark" title="Lien vers <?php $plxShow->artTitle(''); ?>">        
<img src="<?php $plxShow->template(); ?>/thumb.php?src=<?php echo $resultats[1]; ?>&w=400&h=150&zc=1&q=100" alt="<?php $plxShow->artTitle(''); ?>" width="400px" height="150px" class="thumbnail-400-150" />
</a>					
<?php else : ?>

<a href="<?php $plxShow->artUrl($type='relatif'); ?>" rel="bookmark" title="Lien vers <?php $plxShow->artTitle(''); ?>">        
<img src="<?php echo $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?>"  alt="<?php $plxShow->artTitle(''); ?>" width="400px" height="150px" class="thumbnail-400-150">
</a>

<?php endif; ?>

Résolu pour moi. smile

Dernière modification par Bloody (30/07/2011 12:12:25)

Hors ligne

#13 31/07/2011 23:49:57

libertyweb
Membre
Lieu : Marseille
Inscription : 01/07/2010
Messages : 26
Site Web

Re : [plugin] plxornament

Ce plugin est vraiment excellent et le travail tout simplement génial car du coup ça permet de faire des articles une vrai gestion d'annonce.

En revanche ce qui serait un vrai plus cela serait de remplacer le champ d'url de l'image par un boutn appelant le gestionnaire de média, c'est juste pour l'ergonomie.
Si pour tout ceux qui sont ici cela ne posera aucun problème, pour un utilisateur lambda c'est plus complexe wink

Et encore merci pour cette fonction ! ! !

Hors ligne

#14 17/08/2011 13:01:56

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [plugin] plxornament

Bonjour,

Petite remarque à ne pas prendre mal mais je ne comprends pas trop l'intérêt de ce plugin : le châpo ne permet-il pas directement de faire ça, surtout si on utilise plxToolbar qui permet d'importer une image directement depuis le gestionnaire de médias) ??? hmm


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#15 17/08/2011 14:24:59

Bloody
Membre
Lieu : Finistère, Strawberry's field
Inscription : 04/04/2011
Messages : 296
Site Web

Re : [plugin] plxornament

Jerry Wham es-tu utilisateur de Wordpress ? smile

Ce plugin ne sert pas que pour image. Pour moi, c'est un champ d'information supplémentaire qui associé a un article. Niveau usage, je te fais un C/C de ce que j'ai dis plus haut. wink

Il pourrait servir de source d'information pour autre chose que l'url d'une image.
Genre le prix de vente d'un produit, l'url d'un site pour une annuaire, une css différente pour un article sans changer de template, un script jquery spécifique à un article, un sous-titre, un info disant qu'un article fait partie d'une série d'article, etc ...

Ce plugin permet de placer n'importe où dans une page article (et pas seulement le chapô) une information.

En tant que codeur, tu verras vite les possibilités d'un tel plugin. L'idéal serait que ce plugin permette d'ajouter pas un seul mais plusieurs champs. Pour l'instant, j'ai modifié le plugin pour avoir 2 champs d'info en bas de mes articles, coté admin.

Alors si ça te dis de le modifier ? Je suis preneur tongue

Hors ligne

#16 17/08/2011 15:51:05

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [plugin] plxornament

@Bloody : Merci pour ta réponse. Je n'avais pas bien compris. Il faut que je teste pour me rendre compte. Et pour répondre à ta question, non je n'utilise pas wordpress. Trop l'usine à gaz pour ce que j'attends d'un CMS (et c'est pour ça que j'aime bien pluxml).
Si je cherche des fonctionnalités autres, je préfère utiliser un framework (comme Yii par exemple ou Cakephp). J'ai pas encore eu la patience de me plonger dans la doc de wordpress pour en tirer la substantifique moelle (ouh, ça me rappelle mes années lycée tout ça... lol )


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#17 23/08/2011 02:16:31

danielsan
Membre
Lieu : Montpellier
Inscription : 18/07/2011
Messages : 1 280

Re : [plugin] plxornament

ben moi j'aime bien cette idée d'avoir le bouton qui va bien juste à côté du champ qui va bien big_smile

Pour cela, il y a quelques petits trucs:
1/ plxtoolbar s'insère automatiquement avant un textarea ( via une fonction javascript )
2/ les nouveaux champs se trouvent en dehors des balises fieldset
3/ plxtoolbar doit savoir où insérer l'image

Pour se faire:
1/ dans plxornament.php:
remplacez

echo '<?php plxUtils::printInput("ornament",plxUtils::strCheck($ornament),"text","66-255"); ?>';

par

echo '<?php plxUtils::printArea("ornament",plxUtils::strCheck($ornament),"35","1","",""); ?>';

cela va insérer un textarea plutôt qu'un input, qui aura pour conséquence d'insérer automatiquement le bandeau plxtoolbar avant

2/ dans core/admin/article.php
déplacez

<?php eval($plxAdmin->plxPlugins->callHook('AdminArticleContent')) ?>

dans le fieldset ( je trouve qu'il a une place plus logique ici ... )

3/ dans plugin/plxtoolbar/medias.php

# Recuperation de l'id de l'éditeur appelant
$editor = (isset($_GET['id']) AND in_array($_GET['id'], array('content', 'chapo'))) ? $_GET['id'] : die;

rajoutez ornament dans le tableau

# Recuperation de l'id de l'éditeur appelant
$editor = (isset($_GET['id']) AND in_array($_GET['id'], array('content', 'chapo', 'ornament'))) ? $_GET['id'] : die;

ben ça à l'air de marcher chez moi ... tongue et chez vous ?

Et si vous ne souhaitez avoir que le bouton image, à l'étape 1/ remplacez par:

			echo '<?php plxUtils::printInput("ornament",plxUtils::strCheck($ornament),"text","66-255"); ?>';
			echo '<input class="media" type="button" onclick="plxToolbar.openPopup(\'../../plugins/plxtoolbar/medias.php?id=ornament\',\'Médias\',\'750\',\'580\');return false;" title="Gestionnaire de médias">';

( ça insère un input et rajoute juste le bouton qui va bien à côté du champ qui va bien tongue )


Cordialement,
_____
D.San

Dernière modification par danielsan (23/08/2011 02:19:35)


Que l'inspiration soit avec vous, à jamais !

Hors ligne

#18 06/09/2011 11:32:32

jofdesign
Membre
Inscription : 22/07/2010
Messages : 22

Re : [plugin] plxornament

Merci danielsan, ca marche nickel.

2 petites "améliorations" :

- j'ajouterais un  value="Explorer" dans ton input type="button"

- comment peut-on ne récupérer que l'url de l'image plutôt que le code complet <img src="url_de_l_image"> dans la zone de texte car il peut être utile de maitriser les arguments de la balise (ajout d'une classe, etc...) ?

Merci

Hors ligne

#19 06/09/2011 12:50:22

danielsan
Membre
Lieu : Montpellier
Inscription : 18/07/2011
Messages : 1 280

Re : [plugin] plxornament

de rien, cool de voir que c'est utilisé wink

les modifs que tu souhaites concernent donc le plugin plxToolbar si je comprend bien ?

Je ne vois pas ce qui mérite d'être automatisé autre que l'attribut alt ?
Tu peux préciser ton cas de figure ? Il y a peut-être un autre moyen ... ?

Sinon, pour le rajout de "explorer", on peut aussi passer par le CSS wink
dans plugins/plxornament/plxornament.php, rajoute la class ornament à l'input type button:

<input class="media ornament" type="button" onclick="plxToolbar.openPopup(\'../../plugins/plxtoolbar/medias.php?id=ornament\',\'Médias\',\'750\',\'580\');return false;" title="Gestionnaire de médias">

et dans plugin/plxtoolbar/plxtoolbar/style.css, rajoute:

input.media.ornament { width: 22px; height: 22px; margin: 0; padding: 0; border: 0px; outline:none; background: url(img/media.png) no-repeat; border: none; padding: 2px 4px; }

et ça fera un beau bouton avec l'icone d'insertion d'image tongue

Cordialement,
_____
D.San

Dernière modification par danielsan (06/09/2011 12:55:08)


Que l'inspiration soit avec vous, à jamais !

Hors ligne

#20 06/09/2011 14:33:08

jofdesign
Membre
Inscription : 22/07/2010
Messages : 22

Re : [plugin] plxornament

Bien vu pour le bouton ! Merci.

Pour mon autre question (c'est effectivement peut-être une amélioration de plxtoolbar):

Lorsque j'insère une image via le gestionnaire des médias, il insère dans la zone de texte <img src="url_de_l_image" />. Donc le code : <?php echo $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?> retourne <img src="url_de_l_image" />.
Or, j'ai besoin d'obtenir <img src="url_de_l_image" alt="texte" class="class" />.

Donc ce que j'aimerais c'est que lorque j'insère une image, le gestionnaire colle seulement l'url de l'image (sans la balise <img>) pour que je puisse utiliser le code <img src="<?php echo $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?>"  alt="texte" class="class"> et contrôler manuellement (et pas automatiquement justement) les classes et textes alternatifs en fonction des pages.

Hors ligne

#21 06/09/2011 15:35:59

danielsan
Membre
Lieu : Montpellier
Inscription : 18/07/2011
Messages : 1 280

Re : [plugin] plxornament

ah ouais, donc en gros:
    1/ un champ pour une image associée à l'article ( ornament )
    2/ un bouton pour ouvrir le gestionnaire de média ( toolbar )
    3/ lorsqu'on sélectionne l'image voulue, ça n'insère que l'url de l'image ( gestionnaire media )
    4/ et la moulinette dans le template ...

faudrait rajouter une nouvelle fonction toolbar appelée par un nouveau bouton
ou approfondir le plugin ornament
( mais je ne vois pas pour l'instant, et surtout n'ai pas le temps )

j'ai bien trouvé un truc,
mais ça agit sur l'ensemble des boutons d'insertion d'image,
tu perdras ainsi cette fonctionnalité,
je la déconseille ...

si tu veux absolument savoir, wink
dans plugins/plxtoolbar/medias.php ( script qui ouvre et formate la fenêtre de gestionnaire des médias ),
le bloc ci-dessous gère le formatage de ce qui est inséré ...

		if(type=='1') { // 1 == images, 0 = documents
			if(p_src!='') {
				return alignStart+'<a href="'+basename(p_href)+'"'+p_title+p_rel+p_class+'><img src="'+basename(p_src)+'" alt="" /></a>'+alignEnd;
			} else {
				return alignStart+'<img src="'+basename(p_href)+'" alt="" />'+alignEnd;
			}
		} else {
			return alignStart+'<a href="'+basename(p_href)+'"'+p_title+p_rel+p_class+'>'+basename(p_href)+'</a>'+alignEnd;
		}

mais bon, ce n'est pas la bonne solution selon moi car:
lorsqu'on insère une image avec le gestionnaire, ça rajoute déjà alt="" ( pas chez toi ? ),
dans mon template, j'encadre l'appel du plugin ornament dans un div

<div class="ornament">
	<?php if($plxShow->plxMotor->plxRecord_arts->f('ornament')): ?>
		<?php echo $plxShow->plxMotor->plxRecord_arts->f('ornament'); ?>
	<?php endif; ?>
</div>

pour atteindre ladite image via le css

div#section div.ornament img{ ... }

l'attribut alt doit normalement être propre à l'image,
je le rajoute donc aussi manuellement.

Cordialement,
_____
D.San

Dernière modification par danielsan (06/09/2011 15:38:04)


Que l'inspiration soit avec vous, à jamais !

Hors ligne

#22 06/09/2011 16:39:49

jofdesign
Membre
Inscription : 22/07/2010
Messages : 22

Re : [plugin] plxornament

Merci pour les infos. Comme j'appelle mes images à différents endroits, et que je souhaite gérer aussi les attributs width et height, que mon attribut alt peut changer aussi en fonction de la page, je voudrais vraiment avoir cette possibilité.

Je me risque à une modif de plxtoolbar :

Dans medias.php :
ligne 110 - ajout d'une variable (p_editor) à la fonction formatHTML :

function formatHTML(p_editor,p_href, p_src, type) {

ligne 130 - insertion d'une condition

if(p_editor!='ornament') {

ligne 138 - fin de la condition

} else {
		return alignStart+''+basename(p_href)+''+alignEnd;
	  }

ligne 268 à 269 - on remplace :

echo '<a onclick="window.opener.plxToolbar.insert(\''.$editor.'\',formatHTML(\''.$v['path'].'\', \'\',\''.($_SESSION['medias']==$plxAdmin->aConf['images']).'\'),\'\');self.close();return false;" title="'.plxUtils::strCheck($v['name']).'" href="javascript:void(0)">'.plxUtils::strCheck($v['name']).'</a><br />';
	if($v['thumb']) {
		echo '<a onclick="window.opener.plxToolbar.insert(\''.$editor.'\',formatHTML(\''.$v['path'].'\', \''.plxUtils::thumbName($v['path']).'\',\''.($_SESSION['medias']==$plxAdmin->aConf['images']).'\'),\'\');self.close();return false;" title="'.L_MEDIAS_ADD.' '.L_MEDIAS_THUMB.' : '.plxUtils::strCheck($v['name']).'" href="javascript:void(0)">'.L_MEDIAS_THUMB.'</a> : '.$v['thumb']['infos'][0].' x '.$v['thumb']['infos'][1]. ' ('.plxUtils::formatFilesize($v['thumb']['filesize']).')';
	}

par

echo '<a onclick="window.opener.plxToolbar.insert(\''.$editor.'\',formatHTML(\''.$editor.'\',\''.$v['path'].'\', \'\',\''.($_SESSION['medias']==$plxAdmin->aConf['images']).'\'),\'\');self.close();return false;" title="'.plxUtils::strCheck($v['name']).'" href="javascript:void(0)">'.plxUtils::strCheck($v['name']).'</a><br />';
	if($v['thumb']) {
		echo '<a onclick="window.opener.plxToolbar.insert(\''.$editor.'\',formatHTML(\''.$editor.'\',\''.$v['path'].'\', \''.plxUtils::thumbName($v['path']).'\',\''.($_SESSION['medias']==$plxAdmin->aConf['images']).'\'),\'\');self.close();return false;" title="'.L_MEDIAS_ADD.' '.L_MEDIAS_THUMB.' : '.plxUtils::strCheck($v['name']).'" href="javascript:void(0)">'.L_MEDIAS_THUMB.'</a> : '.$v['thumb']['infos'][0].' x '.$v['thumb']['infos'][1]. ' ('.plxUtils::formatFilesize($v['thumb']['filesize']).')';
	}

Ca fonctionne chez moi : ca n'insère que l'URL.
Dites-moi ce que vous en penser.

Hors ligne

#23 09/05/2012 15:35:05

ologram
Membre
Inscription : 19/07/2011
Messages : 23

Re : [plugin] plxornament

Je suis en train de modifier mon plugins pour ajouter différentes petites choses.
Par contre, est-ce que quelqu'un peux m'aider, j'aimerai ajouter un hook dans le moteur de pluxml.

La fonction où j'aimerai ajouter un hook est lastArtList. actuellement il existe le hook plxShowLastArtList, mais il n'en existe pas pour pouvoir ajouter des variables.

J'ai donc ajouté à la fin de la fonction une ligne (ligne 842):

if(eval($this->plxMotor->plxPlugins->callHook('plxShowLastArtListVar'))) return;

Ensuite dans mon plugins, j'ai ajouté :

	public function plxShowLastArtListVar() {
			$row = str_replace('#art_ornament',$art['ornament'], $row);
        }

J'ai du louper quelque chose.

Dernière modification par ologram (09/05/2012 15:43:33)

Hors ligne

#24 09/05/2012 15:51:50

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [plugin] plxornament

Bonjour

pour injecter du code php au niveau du hook à partir de ton plugin, il faut utiliser cette syntaxe

public function plxShowLastArtListVar() {
	echo "<?php $row = str_replace('#art_ornament',$art['ornament'], $row); ?>";
}

Ancien responsable de PluXml  cool

Hors ligne

#25 09/05/2012 16:01:15

ologram
Membre
Inscription : 19/07/2011
Messages : 23

Re : [plugin] plxornament

Merci pour ton coup de main,

Y'avais aussi \ à mettre avant les $ et cela donne :

public function plxShowLastArtListVar() {
echo "<?php     \$row = str_replace('#art_ornament',\$art['ornament'], \$row); ?>";
}	

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés