Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!
Venez tester la version 1.0 beta :)

Connectix Boards > Zone développement > Programmation > Pages statiques et CB

RSS >  Pages statiques et CB
Inundir #1 10/10/2009 - 19h15

Groupe : Nouveau
Messages : 45
Enregistré le : 23/06/2008

Hors ligne Site Web

Bonjour !

Voilà j'ai une question, que je me pose depuis que je veux faire une "bibliothèque" pour mon site. Mon site parle de littérature et j'aurais aimé faire une sorte de bibliothèque où les fiches des livres seraient classées par auteur, par titre etc... ça implique une gestion des pages assez poussée : que seuls quelques utilisateurs aient le droit de publier du contenu, remplir des champs pour la parution, l'auteur, le genre, le titre etc...

Je me posais la question si on ne pouvait pas utiliser la BDD des utilisateurs du forum, le bbcode etc pour faire un espace pour créer ce contenu.
En gros, un "rédacteur" se connecterait au forum, et il devrait pouvoir écrire une fiche avec son pseudo. Est-ce possible d'utiliser le forum pour ça ? Un peu comme pour le module de news ? Ou bien ça demande trop de bidouillage...

Vous allez me répondre que je devrais utiliser un CMS, mais voilà, ils sont très mauvais pour la gestion des pages "statiques".
Désolé si je suis un peu flou mais ce n'est pas très facile à expliquer.

Quelqu'un a-t-il déjà essayé ?
Ce message a été édité par Inundir le 10/10/2009 à 19h16.
"Un homme est davantage un homme par les choses qu'il tait que par les choses qu'il dit".
[Albert Camus]
finalbob #2 10/10/2009 - 23h50

Groupe : Modérateur
Messages : 718
Enregistré le : 08/03/2007

Hors ligne Site Web

Je ne sais pas si quelqu'un a déjà essayé, mais ça me parait largement possible.

La seule difficulté réside (à mon sens) dans l'ergonomie de la chose, mais c'est parce que je ne touche pas une bille en design...
youplaboum !
Posted Image
tout mes MODs pour cb
Ishimaru Chiaki #3 11/10/2009 - 05h37

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Bonjour.

Pour ce qui est de la base utilisateur, ça ne pose aucun problème, puisque je fais ça sur mon site, où j'ai des espaces privés pour la gestion de certains modules personnalisés..  Et en utilisant une structure if...else, tu autorises l'accès aux groupes que tu veux.

Par exemple, pour restreindre l'accès aux admins :

if($_SESSION['cb_user']->userclass == '1')
{
   //affiche la page réservée aux admins
}
else
{
   //affiche un message signalant que l'utilisateur n'a pas les permissions
}


Ensuite, si tu veux autoriser l'accès à plusieurs groupes, tu utilises l'opérateur || (équivalent à OR) pour vérifier si l'utilisateur fait partie d'un des groupes

if($_SESSION['cb_user']->userclass == '1' || $_SESSION['cb_user']->userclass == '2')

Ensuite, pour l'utilisation des bbcodes, je viens d'étudier le code de CB pour pouvoir tester avec l'un de mes modules et ça fonctionne même pour les tables personnalisées.  Ce sera donc dans mes plans pour le développement de mon site.

Je te donne donc la marche à suivre.

Fonctions à utiliser

CB dispose de deux fonctions essentielles pour le parsage et le "déparsage" du BBCode dans les données entrantes et à l'édition.

clean() : Parse le BBCode du contenu en HTML.  À utiliser pour les données entrantes
unclean() : Re-parse le HTML en BBCode, pour l'édition ou la citation

Mise en place

Il faudra travailler sur les trois fichiers relatifs à tes champs :
- Fichier de traitement : le fichier contenant le script d'entrée des données envoyées dans la base de données
- Fichier d'édition : Le fichier contenant le formulaire pour éditer les données
- Fichier d'affichage : Le fichier contenant le script d'affichage dans les pages publiques

Fichier de traitement

Pour chaque donnée sous forme de texte, tu utilises la fonction clean() de cette façon, au moment où tu sécurises tes variables avant de les entrer :

            $ma_variable = clean($_POST['ma_variable']);

Selon le contexte, tu as plusieurs paramètres que tu peux utiliser :
- STR_MULTILINE : À utiliser si tu traites des données multilignes
- STR_PARSEBB : À utiliser si tu veux utiliser du BBCode dans un champ
- STR_TODISPLAY : Paramètre de sécurité contre les injections SQL.  J'ai remarqué qu'il est appliqué surtout aux champs à éditer dans la table des recherches, ainsi qu'au contenu du message en prévisualisation.  Martin pourra toujours te donner plus d'infos si t'as des questions.

Exemple d'utilisation d'un paramètre :
            $ma_variable = clean($_POST['ma_variable'],STR_MULTILINE);

Tu peux aussi en utiliser plusieurs, en les séparant par des +, comme ceci :
            $ma_variable = clean($_POST['ma_variable'],STR_MULTILINE + STR_PARSEBB);

Fichier d'édition

Pour chaque donnée sous forme de texte à éditer et qui a été traité avec clean(), il faudra utiliser unclean() et cette fois, c'est pas mal plus simple, puisqu'au moment de traiter les variables fraîchement sorties avant leur affichage, tu fais comme ceci :
            $ma_variable = unclean($donnees['ma_variable']);

Fichier d'affichage

Puisque clean() utilise déjà une protection contre les entités HTML, tu n'a donc pas besoin d'appliquer de htmlspecialchar() ou de htmlentities().

Tu affiches donc tout simplement ta variable telle quelle :
$data['style_notes']


Voilà, j'espère que ça t'aide assez pour que tu puisses implémenter ça.  Si tu as des questions, n'hésite pas.  Si je ne suis pas en mesure de répondre, Martin pourra le faire.  Par la suite ça pourrait faire un bon sujet de docuemntation.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
Inundir #4 11/10/2009 - 10h54

Groupe : Nouveau
Messages : 45
Enregistré le : 23/06/2008

Hors ligne Site Web

Ouaouh merci ! Ça c'est des réponses :)
Je vais voir ce que je peux faire avec tes précieux conseils. Je ne suis pas un expert en bidouillage mais expliqué comme ça, ça ne paraît pas si difficile.

A bientôt.
Inundir.
"Un homme est davantage un homme par les choses qu'il tait que par les choses qu'il dit".
[Albert Camus]
Ishimaru Chiaki #5 13/10/2009 - 08h21

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

N'hésite pas venir donner des nouvelles :)

De mon côté, c'est maintenant dans ma todo-list concernant mon site.

Et je suis sûre que ce sera très utile aussi pour le développement de futurs MODs plus conséquents comme un portail par exemple.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
Ishimaru Chiaki #6 25/01/2010 - 03h33

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Voilà, c'est maintenant en action sur mon site !

http://ishimaru-design.servhome.org/fr

Vous n'avez qu'à aller voir les pages des styles et des tutos GIMP où le système est utilisé sur les champs multilignes.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter

 >  Réponse rapide

Composez votre message

Connectix Boards > Zone développement > Programmation > Pages statiques et CB

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).