Règles du forum

Merci de ne pas faire de suggestion de modules dans ce forum.
Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[FSBcode] Hide - limite l'affiche en fonction du groupe spéc

Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 14 fois, dernière édition par Spark, 20 Aout 2009, 4:22     Lien vers ce message 12 Juillet 2009, 21:31
Nom : FSBcode Hide

Version : 0.1 Beta

Compatible : 2.0.0

Aperçu :
7ec30235450230e4778292f34147b7c0.file

Fonctionnalité :
  1. Permet de cacher une zone au personnes n'ayant pas le niveau d'autorisation nécessaire (ex : si c'est sur Modérateur, les visiteurs et membre ne verront pas le contenu)
  2. Message prévenant la personne qu'elle n'a pas accès à une ressource, sans dire à quel groupe il faut appartenir (des fois que certain ne voudrait pas ça ce voie)
  3. Quand la personne qui visualisant le message est autorisé à voir le contenu, la balise est totalement transparente


Mise en place :

1. Téléchargez le fichier http://www.fire-soft-board.com/fsb/index.php?p=download&nocount&id=923 et copiez le dans le dossier :

tpl/WhiteSummer/img/


Téléchargez le fichier hide_background.png et copiez le dans le dossier :

tpl/WhiteSummer/img/layout/


Fichiers à éditer :

2. Éditez le fichier :

tpl/WhiteSummer/fsbcode.css


Ajoutez :
/* FSBcode hide */
.hide
{
	border: 1px solid #516eff;
	background: #faf9f8 url(img/layout/hide_background.png) repeat-x;
}

.hide .hide_title
{
	font-weight: bold;
	padding: 2px 0 2px 22px;
	background: url(img/hide.png) no-repeat;
}

.hide .hide_content
{
	padding: 10px;
}



3. Éditez le fichier :
tpl/WhiteSummer/config_tpl.cfg


Trouver :
url = <a href="%s" class="fsbcode_url" title="%s" target="_blank">%s</a>


Après ajouter :
hide = <div class="hide"><div class="hide_title">%1$s</div><div class="hide_content">%2$s</div></div>


4. Éditez le fichier :
main/class/parser/parser_fsbcode.php


Trouver :

}
/* EOF */


Avant ajouter :
	/*
	** Parse les FSBcode HIDE
	*/
	public function generate_hide($m)
	{
		$arg = $m[2];
		$content = $m[3];

		$auth = Fsb::$session->auth();
		
		if (!ctype_digit($arg) || '5' < $arg)
		{
			$error = sprintf(Fsb::$session->lang('fsbcode_hide_invalid'), $arg);
			$content = sprintf(Fsb::$session->style['fsbcode']['hide'], Fsb::$session->lang('fsbcode_hide'), $error);
		}	
		else if ($auth < $arg)
		{
			$error = sprintf(Fsb::$session->lang('fsbcode_hide_auth'), Fsb::$session->lang('fsbcode_item_hide_' . $auth));
			$content = sprintf(Fsb::$session->style['fsbcode']['hide'], Fsb::$session->lang('fsbcode_hide'), $error);
		}

		return $content;
	}



5. Éditez le fichier :
lang/fr/lg_common.php


Trouver :
  'fsbcode_text_font' => 'Changer la police du texte: [font=Arial]mon texte[/font]',



Après ajouter :
  'fsbcode_hide' => 'Hide',
  'fsbcode_text_hide' => 'Affiche une zone uniquement aux groupes autorisés: [hide=2]mon texte caché[/hide]',
  'fsbcode_item_hide_0' => 'Visiteur',
  'fsbcode_item_hide_1' => 'Membre',
  'fsbcode_item_hide_2' => 'Modérateur',
  'fsbcode_item_hide_3' => 'Modo Sup',
  'fsbcode_item_hide_4' => 'Administrateur',
  'fsbcode_item_hide_5' => 'Fondateur',
  'fsbcode_hide_invalid' => 'Le paramettre hide "%s" est inconnu',
  'fsbcode_hide_auth' => 'Votre groupe (%s) ne vous permet pas de voir le contenu de ce message',



Requête :
INSERT INTO `fsb2_fsbcode` (`fsbcode_id`, `fsbcode_tag`, `fsbcode_search`, `fsbcode_replace`, `fsbcode_fct`, `fsbcode_priority`, `fsbcode_wysiwyg`, `fsbcode_activated`, `fsbcode_activated_sig`, `fsbcode_inline`, `fsbcode_img`, `fsbcode_javascript`, `fsbcode_description`, `fsbcode_list`, `fsbcode_order`) SELECT '', 'hide', '', '', 'generate_hide', 0, 0, 1, 0, 0, '', '', '', '1\r\n2\r\n3\r\n4\r\n5', 1 + (SELECT max(fsbcode_order) FROM fsb2_fsbcode) FROM dual;


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 1 fois, dernière édition par Spark, 18 Aout 2009, 20:03     Lien vers ce message 13 Juillet 2009, 15:35
J'ai besoin d'aide pour le dernier champ de la requête, la colonne fsbcode_order, elle dépend du nombre d'FSBcode déjà présente dans la BDD et n'est pas en auto-incrémente, je ne sais pas comment faire.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Feu follet
Avatar de Nontenda
  • Messages : 129
  • Inscrit : 12 Octobre 2007
  Lien vers ce message 18 Aout 2009, 9:14
Oula vraiment bien ce mod :)
Mais juste une question il est utilisable (pas de bugs, pas de choses génantes remarquées ?) ? parce que je vois que sur ton deuxieme post tu as un problème (là dessus je pourrai pas aider désolé :s)
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 2 fois, dernière édition par Spark, 19 Décembre 2009, 4:05     Lien vers ce message 18 Aout 2009, 10:04
Salut,

Pour la requête il faut afficher la table "fsb2_fsbcode", trier avec la colonne "fsbcode_order" et regarder le chiffre le plus gros, on va dire y.

Dans la requête donné il faut remplacer 23 par y + 1.



Pour connaitre la valeur la plus élevé de la colonne il y a aussi cette requête :

SELECT max(fsbcode_order) FROM fsb2_fsbcode


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Feu follet
Avatar de Nontenda
  • Messages : 129
  • Inscrit : 12 Octobre 2007
Message édité 1 fois, dernière édition par Nontenda, 18 Aout 2009, 11:18     Lien vers ce message 18 Aout 2009, 11:10
Ok :) Ben je vias le mettre alors ^^

merci pour la réponse :)

EDIT : Petite erreur je crois :

Citation
3. Éditez le fichier :

Code (Sélectionner le code)main/class/parser/config_tpl.cfg

Ne serait-ce pas plutot :
tpl/WhiteSummer/config_tpl.cfg ?
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
  Lien vers ce message 18 Aout 2009, 16:34
Oui en effet.

J'ai mis à jour la requête pour quel fonctionne sans contrainte.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Volcan
Avatar de Talus
  • Age : 22 ans
  • Messages : 1742
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 19 Aout 2009, 10:19
Salut,

Pour la requête il faut afficher la table "fsb2_fsbcode", trier avec la colonne "fsbcode_order" et regarder le chiffre le plus gros, on va dire y.

Dans la requête donné il faut remplacer 23 par y + 1.


Pour connaitre la valeur la plus élevé de la colonne il y a aussi cette requête :

SELECT max(fsbcode_order) FROM fsb2_fsbcode


Encore mieux que ton truc là (1 + SELECT max(fsbcode_order) FROM fsb2_fsbcode) : SELECT MAX(fsbcode_order) + 1 FROM [...]. :)

Ensuite, si le mec met auth à 6, ce sera validé, et à ce que je vois, y'a pas de clé pour l'auth 6...

Enfin, je vois que tu ne fais que cacher le contenu par du CSS, donc le texte est visible quand même... Je pense que tu devrais carrément supprimer le contenu si le type il a pas le droit...


 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 2 fois, dernière édition par Spark, 19 Aout 2009, 14:21     Lien vers ce message 19 Aout 2009, 14:00
lol, y'a pas de CSS (tu vois bien que $content est modifier quand ça ne passe pas). Pour la requête tu chipotes x)

Et pour la valeur 6, ba heu j'ai édité en pensant que c'était fondateur (que j'ai voulu ajouter hier), mais visiblement j'ai cafouillé je l'avais déjà ajouté (ça n'apparait pas sur mon screen).

Merci.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Volcan
Avatar de Talus
  • Age : 22 ans
  • Messages : 1742
  • Inscrit : 28 Septembre 2006
Message édité 1 fois, dernière édition par Talus, 19 Aout 2009, 20:54     Lien vers ce message 19 Aout 2009, 20:31
Ah ouais en effet pour le CSS, pardon, j'ai cru que le background-image + repeat-y c'était pour dissimuler le contenu... :p

D'ailleurs, encore un chipotage :

<?php //...
		$arg = intval($m[2]);
		$content = $m[3];

		$auth = Fsb::$session->auth();
		
		if ($arg > 5) { // ....


Un peu mieux. :) si le mec rentre autre chose qu'un chiffre, tant pis pour lui, ce sera 0...


 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
  Lien vers ce message 20 Aout 2009, 1:08
En quoi est-ce mieux de supprimer la gestion d'erreur ?

C'est comme si tu mettais dans une calculatrice le résultat "0" pour une division par zéro au lieu de mettre un message d'erreur.

Intval est un convertisseur, ce n'est pas ce qui est souhaité, si tu met une valeur exa ça te retournera l'entier en base 10, c'est pas génial pour simplement contrôler qu'un nombre est un entier ou non.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Equipe des MODS
Avatar de Grummfy
  • Age : 25 ans
  • Messages : 5985
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 20 Aout 2009, 2:13
if (empty($arg) || !ctype_digit($arg) || '5' < $arg)

car avant php5.1 ctype_digit renvoi true si vide ...


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb1 - Mods fsb2 - Grummfy's project - Zf Planet
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 2 fois, dernière édition par Spark, 20 Aout 2009, 4:24     Lien vers ce message 20 Aout 2009, 4:18
Juste pour ça faudrait supprimer la gestion d'erreurs pour l'hypothétique possibilité que quelqu'un soit en PHP5, mais pas en 5.1 et plus et il faut aussi que le paramètre hide soit vide.

Autant mettre :

if ($arg !=1 && $arg !=2 && $arg !=3 && $arg !=4 && $arg !=5)


Au moins on utilise aucune fonction.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
Message édité 1 fois, dernière édition par Spark, 14 Mars 2010, 23:04     Lien vers ce message 14 Mars 2010, 23:04
Ce FSBcode à un gros bug, si on fait une citation d'un message, et qu'il contient du contenu dont on a pas accès, ce contenu s'affiche dans la citation en mode édition.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Nouvelle étincelle
Avatar de Nikiro
  • Messages : 2
  • Inscrit : 11 Juillet 2010
  Lien vers ce message 11 Juillet 2010, 1:47
J'ai un soucis, j'ai bien tout mis et y'a aucune erreur coté PHP, pareil pour l'INSERT, mais, y'a pas le menu pour choisir le groupe a qui le cacher a coté du menu police et si j'essai en manuel, ça ne fonctionne pas non plus :/, une idée ?
 
Etoile
Avatar de Spark
  • Messages : 2554
  • Inscrit : 24 Juin 2006
  Lien vers ce message 11 Juillet 2010, 3:27
et si j'essai en manuel, ça ne fonctionne pas non plus

Il n'y pas d'automatique de toute façon.

J'ai pas de problème, t'as du faire une erreur. Quelque chose me dis que tu n'es pas en FSB2.


Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Répondre


.