ExperienceLibre : Fire Soft Board

Suite à mon billet précédent je vous présente le logiciel libre fire soft board ou simplement FSB.

Késako?

FSB, est un forum programmée en PHP et disponible en deux version. De plsu, il est possible d’ajouter une multitude de mods et de thèmes.

La version 1 est un forum basique et léger, fonctionnant, pur ainsi dire, que avec mysql.
La version 2 est assez léger mais comporte énormément d’options, multi-langue, multi base de données.

Ma découverte

Mon histoire avec FSB, commence à ces débuts, lorsque il était encore en cours d’élaboration. En fait, à l’époque j’utilisai PHPBB que je trouvait intéressant et empli de mods. Avec d’autre j’ai participé à la création d’une communauté belge phpbb-be, disparue aujourd’hui et je voulait créer d’autre projet afin d’aider les gens à programmer des mods et autres via phpbb.

Cependant, plus je m’intéressait, plus je trouvait que phpbb était brouillon et peu modifiable. Je me suis dit il doit bien exister autre chose! Et puis l’idée faisant son chemin, et trainant sur le forum portail-maker (aujourd’hui disparu) que dirigeait le créateur de FSB, j’ai très rapidement accroché à l’idée du nouveau forum qu’était FSB. Certes, la version 1 n’était pas l’idéal que je m’était fixé, cependant elle permettait d’être facilement modifié (vu le peu d’option dispo) et disposait de commentaire en français (ce qui à l’époque, était un problème pour moi).

Ma participation

Depuis la première beta, j’ai participer à la découverte de bug et à leur correction. J’ai donnée pas mal d’idée que se soit de mods ou de fonctionnalité. Mais j’en ai surtout fait la promotion. Pour moi, ce forum était génial dans le sens où il était nettement plus sûr que PHPBB (de part le peu de présence de FSB sur la toile et de part sa conception).

Depuis quelque temps, je suis aussi modérateurs et responsables validations des mods et rédacteurs du wiki (wiki, qui après insistance fut enfin installé!) de FSB.

J’ai aussi créer diverse prémods, mods et aide au modeurs pour FSB 1.*.*. Bref j’ai participé et participe encore a ce projet.

Mon utilisation

Pour ce qui est de l’utilisation du logiciel, je doit dire que j’ai quatre site sur lequel je l’utilise, 2 en version 1 et 2 en version 2! Je ne suis que peu déçus par FSB, même si je regrette l’absence d’une api de programmation!

Statut actuelle du logiciel

Actuellement, FSB va bientôt sortir sa version 2 qui apporte au moins deux nouveautés unique (à ma connaissance):

  • Des procédures modératives
  • Des FSBCard, un système permettant d’exporter/importer son profil utilisateur dans un autre forum (idée dont je en suis pas peu fière)!

Bien entendu cela ne se limite pas à cela.

A noter que FSB recherche des graphistes pour le projet!

Site

Je vous invite à en découvrir plus sur le site officiel est http://www.fire-soft-board.com, en français (qui à l’heure où je parle est en transformation).

PHP : fonction callback et méthode

PHP permet bien des choses, notamment l’utilisation de fonction de callback. Les fonction de callback sont des fonctions qui seront appeler durant l’exécution d’une autre fonction, et ce de manière automatique.

C’est bien souvent le cas lors d’expression régulière ou encore lors d’une session php passant par ses propres fonctions (via session_set_save_handler() )!

Les fonctions de callback peuvent être rpésente sous différentes forme :

  • Fonction de PHP
  • Fonction que vous avez définie
  • Méthode static
  • Méthode non-static

Dans le cas de fonctions, il suffit de mettre le nom de la fonction entre guillemet.

Mais dans le cas de méthode, il vous faut utiliser un array

Pour les méthodes static, ce sera : array('NOMDELACLASS', 'NOMDELAMETHODE')

Pour les méthodes non-static, ce sera : array(INSTANCEDELACLASS, 'NOMDELAMETHODE')

Exemple :

 class maClass {     static function toto()     {         echo 'on a appellé toto';     }     public function totor()     {         echo 'on a appellé totor';     } } //cas static call_user_func(array('maClass', 'toto')); //on a appellé toto //cas non-static $maClass = new maClass(); call_user_func(array($maClass, 'totor')); //on a appellé totor 

J’espère que ce petit truc vous sera utile.

Fire Soft Board v2 RC5 presque disponible!

Fire Soft Board ou FSB sortira prochainement la rc5 de sa version 2

FSB est un forum, un forum qui a au moins deux choses d’unique :

  • FSBcard : un système de carte de profil, permettant à l’inscription de directement remplir son profil avec ses préférences! (à partir de la rc5)
  • Procédure modérative : des mini scripts permettant d’effectuer plusieurs action de modérations l’une à la suite de l’autre

En dehors de cela FSB est un forum utilisant des technologies moderne: AJAX, PHP5, POO, XHTML, CSS, … mysql, postgresql, et autre et respectant les standards!

De plus, d’ici la version 2.0.0 un sdk externe devrait sortir, afin de fournir diverse méthode pour interconnecter un site et son forum.

Il est l’un des forum les mieux conçu tant du point de vue code que ergonomique, que je connaissent.

Le site : http://www.fire-soft-board.com

ZF : comprendre le fonctionnement des urls

Url de ZF et distribution des rôles aux contrôleurs

Avec Zend Framework, de base le système mis en place par le contrôleur est celui-ci :

url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news default news index
http://exemple.test/news/ajouter default news ajouter
http://exemple.test/news/modifier/id/5 default news modifier id=5
http://exemple.test/news/modifier/?id=5 default news modifier id=5

Avec des modules perso

Maintenant ajoutons la gestion des modules news et livredor:

 $ctrl->setControllerDirectory(     array(         'news'    => '/module/news/controllers',         'livredor'    => '/livredor/ctrl'     ) ); 
url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news news index index
http://exemple.test/news/ajouter news ajouter index
http://exemple.test/news/modifier/id/5 news modifier id
http://exemple.test/news/modifier/?id=5 news modifier index id=5

Comprendre le Zend_Controller_Router_Route

ce que l’on vient de voir s’explique par ceci :

 $route = new Zend_Controller_Router_Route(     ':module/:controller/:action/*',     array('module' => 'default') ); $router->addRoute('default', $route); 

Ce qui correspond à l’option par défaut. De plus, ceci nous montre un exemple de paramètre par défaut, en effet à module, on attribue la valeur default.

Allons plus loin et créer nos propres routes!

Route personnalisée

imagions un espace membre, on désire afficher chaque profile. On pourrait imaginer quelque chose du genre : http://exemple.test/profil/voir/id/5 ou encore http://exemple.test/profil/voir/membre/grummfy afin d’avoir le contrôleur profil et et l’action voir. Cependant ce n’est ni joli, ni pratique. Utilisons donc le Zend_Controller_Router_Route

 $route = new Zend_Controller_Router_Route(     'profiledemembre/:username/*',     array(         'controller' => 'profil',         'action'     => 'voir'     ) ); $router->addRoute('myProfileRoute', $route); 

Ce qu’on fait pour les url du type http://exemple.test/profiledemembre/grummfy, on assigne les valeurs suivantes :

 * controller = profil  * action = voir  * username = grummfy, ceci via les :  * et on garde la possibilité d'avoir des paramètres avec *

Dans le contrôleur profil, on fera ceci :

 <?php public function voirAction() {     $request = $this->getRequest();     $username = $request->getParam('username');     // ou     $username = $this->_getParam('username'); } 

Aller plus loin

Le manuel de Zend vous enseignera comment faire des url avec expression régulière ou encore des rotue static, et bien plus! Mais aussi cette autre page : http://framework.zend.com/manual/fr…

Zend Framework (ZF) : un livre d’or, sixième étapes : Conclusions

Créations d’un livre d’or en 6 étapes

  1. Définition
  2. Créations des tables sql et des répertoires
  3. Bases des fichiers
  4. Affichages et ajout de messages
  5. Modification et suppression des messages
  6. Conclusions

Conclusions

Avant de faire la conclusion finale, je vais ajouter deux trois trucs au script : Dans la base de donnée ajouter trois champs : ip(varchar de 15), email(varchar de 60) et site(varchar de 60) et modifier en conséquence le fichier contrôleur

On pourrait ajouter un système de validation des messages… et encore d’autre choses.

On peux ajouter un système de cache (voir archive)

Afin de terminer en plus joli voici une feuille de style à ajouter : /public/style/site.css

 body,html { 	margin: 0px; 	font-family: Verdana,Arial,Helvetica,sans-serif; 	color: #000000; 	background-color: #ffffff; 	text-align: justify; } h1 { 	font-size: 1.4em; 	color: #800000; } #content { 	margin: 0px auto 0px auto; 	width: 500px; } .livre_block_message { 	border: 1px dotted #aaaaaa; 	margin-bottom: 1.5em; 	padding: 0.5em; } a { 	color: #800000; }

et pour qu’elle soit pris en compte on modifie header.phtml :

 ... 	<link rel="stylesheet" type="text/css" media="screen" href="<?php echo $this->baseUrl;?>/public/style/site.css" /> </head> ...

Conclusion

Dans ce tutoriel on a :

  • Utiliser Zend_View
  • Utiliser Zend_View_Helper
  • Utiliser Zend_Db_Table
  • Utiliser Zend_Config_Ini
  • Utiliser Zend_Controller_Front

Maintenant essayer de modifier et de bien comprendre tout cela, lisez le manuel de Zend Framework et vous irez rapidement vers de plus grosses application!

Télécharger