Forumods



  • Bonjour à tous :)

    Je viens ici vous présenter mon nouveau projet: forumods, créez votre propre site à partir d'un forum.
    Cela fait maintenant plusieurs mois que je le développe et voici qu'il sort en phase Bêta avec 5 modules disponibles. Pour plus d'informations, voici ci dessous une petite description. N'hésitez pas à l'essayer et à dire ce que vous en pensez :D


    Forumods est un logiciel réalisé en HTML/CSS/PHP/Javascript/SQL par the dadateam

    Lorsque vous installez Forumods, vous installez un forum de base qui permet d'ajouter, éditer, supprimer, déplacer des messages et/ou des fourms et/ou des catégories de forums. Le forum permet d'avoir une gestion de son profil d'utilisateur (fiche de présentation, signature, avatar...) et d'avoir un accès aux profils des autres utilisateurs. Ce forum fonctionne avec un éditeur wysiwyg (what you see is what you get) qui est Tinymce.

    Forumods se veut modulaire pour pouvoir ainsi, créer son propre site totalement personnalisable à partir du forum. Et ce, grâce à deux points:

    • Tout d'abord, vous pourrez créer ou télécharger des designs pour votre forum. Une fois que c'est fait, il vous suffit d'aller le placer dans le dossier "design" du forum, d'aller choisir le design que vous venez d'installer dans le panneau d'administration et le tour est joué: vous aurez votre propre design.

    • Ensuite, grâce à l'installation de modules. Par exemple, vous avez un forum qui contient les nouveautés de votre site. Vous pouvez alors télécharger le modules "news", l'installer sur votre forum dans le dossier modules et l'administrer à partir d u panneau d'administration. Vous dites que le module doit porter sur votre forum de nouveauté et à partir de ce moment, vous aurez un nouveau menu "Nouveauté" qui s'affichera dans les menus où, lorsque vous cliquerez dessus, vous pourrez avoir accès à la dernière news où l'affichage est spécial pour les news et n'a plus rien à voir avec un affichage d'un forum.

    Il est aussi possible d'avoir des modules qui sont totalement indépendant du forum. Par exemple, vous voulez que lorsque le visiteur arrive sur votre site, celui-ci ne voit pas directement les forums mais plutôt une page où vous lui souhaitez la bienvenue et que vous pouvez totalement personnaliser. Il vous suffit alors de télécharger le module "page d'accueil" qui vous permet de faire cela.

    Ainsi, en installant les modules que vous voulez avec le design que vous avez choisi, vous aurez un site personnalisé à partir d'un forum ==> Forumods



  • Quelques question (je ne vais pas m'amuser à critiquer le thème du site dédié à ton "outil", je laisse ce plaisir à d'autres) :

    • Pourquoi ne pas être parti de quelque chose d'existant si le but c'est de fournir des modules autour d'un forum ? Genre coder un système de modules "faciles" pour phpBB etc ?
    • Pourquoi ne pas utiliser de framework (Zend, Symfony pour ne citer que ces deux) qui sont vraiment spécialiser dans l'objet (et qui du coup permettent du code très propre et modulaire)
    • Enfin, pourquoi vous utilisez à mort des fichiers pour sauvegarder vos informations (tout votre dossier infos/) alors que vous avez un mysql à dispo :o ?

    Enfin une dernière remarque d'ordre général : c'est bien de vouloir faire un découpage par "tâche", mais je trouve que c'est un peu séparer à l'excès. Il aurait été plus intéressant de faire un fichier "gérer_forum" (par exemple) qui permet d'ajouter/modifier/supprimer un forum, avec dans ce fichier 3 fonctions qui font les tâches.

    Car là, par exemple votre supprimer_categorie.php (dans include_admin), on doit l'inclure, mais pas n'importe quand n'importe comment, faut déclarer une variable avant de l'include, sinon ça marche pas... va le deviner quand tu codes.. tu vois ce que j'veux dire ?

    Il est plus intuitif de créer des fonctions qui nécessite des paramètres, que d'include des fichiers avec des pré-requis avant l'include.. surtout que ce fichier en l'occurence n'est a priori utilisé que dans gestion_forum.php.. quel intérêt de sortir ça du fichier "gestion_forum.php" ?

    Fin bon, bon courage en tout cas, et bravo pour le début :) (même si pour moi, l'architecture de votre "soft" est à revoir je pense)

    (NB: le but n'est pas de te "casser", aucun intérêt, je te donne juste mon point de vue sur les choses que je trouve "illogiques" ou non pertinentes. Courage ! :))



  • Sans rentrer dans le détail du graphisme.

    -> Tu as des erreurs HTML plein ton site à commencer par le doctype qui est erroné. Ca fait pas très sérieux :)

    Je voudrais revenir sur le but premier de ton logiciel. Si j'ai bien compris tu souhaites permettre l'installation d'un forum qui puisse ensuite s'étendre vers des fonctionnalités de CMS. (j'ai bon ou pas ?)

    Maitriser un coeur de métier est une tâche ardue que peu de logiciel peuvent prétendre. Il existe des logiciels de forum, des logiciel type CMS, mais chacun est maitre dans son domaine (je gère une communauté d'un CMS pour ma part). Il arrive très fréquemment qu'un logiciel tente une percée dans un autre coeur de métier, et je t'assure que le résultat est toujours le même : c'est pas terrible.

    Phpbb tente le CMS grâce à des modules
    Prestashop tente le CMS (haha la blague)
    Joomla tente le Blog
    ...

    Si je demande le pourquoi de ces succès en grosse demi-teinte la réponse est toujours la même : On ne s'invente pas un nouveau cœur de métier en 5 minutes. Ca prend même des années pour maitriser ce que le public attend de son logiciel et les erreurs sont très courante.

    Et toi tu te lance dans un logiciel rejoignant les deux cœurs de métier d'un coup. Bon courage :wink:

    Je crains que tu ne t’épuise à coder dans tous les sens sans réussir à obtenir suffisamment vite le résultat escompté. Tu es seul pour une tâche qui est clairement énorme.

    Alors je ne dis pas que c'est peine perdu, car si tu le veux vraiment tu y arriveras. Ce que je voulais faire passer comme message c'était te prévenir que tu t'engage sur une montagne d'emmerdes et de travail si tu souhaites faire quelque chose de bien. ;)

    L'autre point qui m'embête est cette fois architecturale et Althalus l'a très bien noté : pourquoi réinventer la roue ? des framework très puissant sont déjà sur le marché est t'aiderais beaucoup dans tes dev :)

    Voilà de mon côté.

    Et pour la petite histoire : sur ma communauté : j'ai deux logiciels qui tournent : un CMS et un Forum (fluxbb) ;) je mélange jamais les deux.



  • Vous trouvez le graphisme si pas terrible que ça?? :p (au niveau de l'agencement des éléments ou au niveau des couleurs? Dans le dernier cas, si vous avez une palette de couleurs que vous trouveriez mieux (étant daltonien et choisissant ma palette de couleur à partir de ce site: http://kuler.adobe.com/), je suis preneur :)

    Sinon, pour commencer à répondre:
    @Althalus:

    • Pourquoi ne pas être parti de quelque chose d'existant si le but c'est de fournir des modules autour d'un forum ? Genre coder un système de modules "faciles" pour phpBB etc ?

    Sans rentrer dans les détails, avant de faire forumods, j'ai un peu participé au développement d'un projet de forum php qui s'appelait softbb mais qui a été par la suite abandonné. J'ai alors décidé de faire forumods sur les bases de softbb mais je me suis vite rendu compte que faire une adaptation d'un forum qui n'était pas du tout destiné à ce genre de projet (CMS) était… chaud patate. Donc j'ai préféré reprendre tout à zéro (je n'ai donc pas essayé ce que cela donnait avec phpbb) pour partir d'un élément qui était directement destiné à l'insertion de modules
    @Althalus:

    • Pourquoi ne pas utiliser de framework (Zend, Symfony pour ne citer que ces deux) qui sont vraiment spécialiser dans l'objet (et qui du coup permettent du code très propre et modulaire)

    Je m'étais intéressé à Symfony à un moment donné mais j'sais pas… J'ai pas vraiment accroché et j'ai laissé tombé. Après, une fois qu'on a l'outil en main, c'est plus facile de développé (à ce que j'ai compris) mais est-ce que c'est possible que cela soit tout aussi facile pour l'utilisateur final?
    @Althalus:

    • Enfin, pourquoi vous utilisez à mort des fichiers pour sauvegarder vos informations (tout votre dossier infos/) alors que vous avez un mysql à dispo ?

    "Méthode" que j'ai découverte avec softbb qui permet un gain en requêtes SQL. Ainsi, les données importantes (utilisateurs, messages, forums…) sont stockées dans une BDD et les moins importantes dans des fichiers (nom du forum, description, s'il est ouvert...). Et les quelques requêtes gagnées pourront être utilisées pour les modules.
    Et la même chose pour ces modules: stocker quand c'est possible dans des données dans des fichiers.
    Et ainsi, ce n'est pas parce que l'on installe des modules que l'on alourdi le forum en requête SQL (/on l'alourdi le moins possible)
    D'ailleurs, ça me fait penser que j'ai oublié de mettre de htaccess empêchant de voir les fichiers dans les dossiers :roll:
    @Althalus:

    Enfin une dernière remarque d'ordre général : c'est bien de vouloir faire un découpage par "tâche", mais je trouve que c'est un peu séparer à l'excès. Il aurait été plus intéressant de faire un fichier "gérer_forum" (par exemple) qui permet d'ajouter/modifier/supprimer un forum, avec dans ce fichier 3 fonctions qui font les tâches.

    Car là, par exemple votre supprimer_categorie.php (dans include_admin), on doit l'inclure, mais pas n'importe quand n'importe comment, faut déclarer une variable avant de l'include, sinon ça marche pas… va le deviner quand tu codes.. tu vois ce que j'veux dire ?

    Il est plus intuitif de créer des fonctions qui nécessite des paramètres, que d'include des fichiers avec des pré-requis avant l'include.. surtout que ce fichier en l'occurence n'est a priori utilisé que dans gestion_forum.php.. quel intérêt de sortir ça du fichier "gestion_forum.php" ?

    Tout a fait d'accord avec toi pour cet exemple… J'avais commencé à faire le fichier avec des fonctions et je sais plus trop pourquoi, cela n'avait pas fonctionner, d'où le fait que j'avais fait comme ça et je n'y ai plus touché. Mais je vais y regarder.
    Par contre, pour les fichiers qui sont appelés sur plusieurs pages, c'est plus facile de faire comme ça, non?? (définir des variables puis inclure plutôt que d'inclure le fichier avec la fonction, appeler la bonne fonction avec les bons paramètres dans le bon ordre)?
    @Althalus:

    Fin bon, bon courage en tout cas, et bravo pour le début (même si pour moi, l'architecture de votre "soft" est à revoir je pense)

    (NB: le but n'est pas de te "casser", aucun intérêt, je te donne juste mon point de vue sur les choses que je trouve "illogiques" ou non pertinentes. Courage ! )

    C'est pour ça que je le sors en bêta, avoir d'autres avis pour pouvoir améliorer son fonctionnement :) . Et je ne le prends pas du tout comme un "cassage", des critiques constructives ne peuvent que faire avancer :) .

    @besstiolle:

    -> Tu as des erreurs HTML plein ton site à commencer par le doctype qui est erroné. Ca fait pas très sérieux

    En effet, pour le doctype, je ne sais pas pourquoi j'ai mis celui-là… Je vais le changer et mettre le doctype html5 qui, je pense, sera déjà un peu plus correct.
    Par contre, pour les erreurs dans le HTML :shock: Tu sais me donner des exemples parce que là...

    @besstiolle:

    Je voudrais revenir sur le but premier de ton logiciel. Si j'ai bien compris tu souhaites permettre l'installation d'un forum qui puisse ensuite s'étendre vers des fonctionnalités de CMS. (j'ai bon ou pas ?)
    […]

    Oui, si on veut.
    Après, je ne sais pas comment réagisse les différents logiciels que tu as cité mais j'avais essayé "Phorum" qui est un forum en php qui proposait aussi des modules sauf que pour pouvoir les installer, il fallait les télécharger, mettre les fichiers qu'il faut dans les bons dossiers (le premier dans le dossier machin, le deuxième dans le dossier bidule qui se trouve dans le dossier truc) et fallait aller ajouter des éléments dans lignes de code (je sais pas si c'est tjrs le cas mntnt mais bon…).
    Moi, j'ai fait en sorte qu'il suffit de télécharger le module, le placer dans le dossier module du forum et c'est tout (pas besoin d'aller modifier quoi que ce soit dans les lignes de codes). Il suffit d'aller dans l'administration des modules, sélectionner le module et l'installation se fait tout seul. C'est quand même beaucoup plus simple je trouve :) .

    Après, je me suis rendu compte que ça prenait du temps (ça va faire presque qu'un an que je le développe... en passant parfois plusieurs semaines sans mettre la main dessus mais bon... :P) et mon but n'est certainement pas de concurrencer les grosses productions.
    Dans un premier temps, je réalise les modules qui me sont utiles à moi et si cela peut être utile pour quelques personnes qui veulent quelque chose de simple, rapide et efficace à mettre en place, c'est du bénéf :) .

    @besstiolle:

    L'autre point qui m'embête est cette fois architecturale et Althalus l'a très bien noté : pourquoi réinventer la roue ? des framework très puissant sont déjà sur le marché est t'aiderais beaucoup dans tes dev

    En ce qui concerne les framework, vous avez peut-être raison que c'est un tord de ne pas les utiliser étant donné que j'en ai jamais vraiment utiliser pour voir le maximum qui est réalisable. Cela viendra peut-être avec le temps.
    En ce qui concerne la question de réinventer la roue, je ne sais pas si c'est vraiment ce que je suis en train de faire (loin de moi la prétention de dire que j'invente quoi que ce soit et que ce que je fais va révolutionner le monde). Mais pour moi, ce n'est pas en reprenant à chaque fois ce qui existe qui existe que l'on va avancer. C'est plutôt en regardant ce qui existe, ce qui est bien, ce qu'il faut garder, ce qu'il faut améliorer et faire/créer en conséquences que l'on avoir de nouvelles choses/technologies (et je pense/espère faire partie de cette catégorie là ;) )

    Sinon, grand merci à vous deux pour vos questions, remarques, commentaires et pour avoir essayé Forumods et avoir pris le temps de dire ce que vous en pensiez :)



  • Vous trouvez le graphisme si pas terrible que ça??

    Haa si si si faut le reconnaitre, le tout-tableau c'était très à la mode en 1990. :wink:

    http://www.csszengarden.com/tr/francais/, un exemple de mise en page agréable, tu en as plein plein sur la colonne de droite. Avoue qu'un site comme celà, ça en jette un peu plus question "sérieux" :)

    Après c'est les gouts & couleur hein ;)

    Question framework : Zend, Symfony, Smarty, une fois maitrisé tu va accélérer ton développement. Normalement c'est transparent pour les utilisateurs, un framework ne faisant pas le front-office directement.

    Ta description des modules à installer sans modification de code, repose sur une méthode de type API : un échange de contrat entre le noyau de ton logiciel et les moduless venant s'abonner aux fonctions du noyau. Un logiciel que je maitrise bien qui utilise QUE ce genre de fonctionnement c'est CmsMadeSimple (www.cmsmadesimple.fr) et tu peux lire la doc destinés aux développeurs de modules : http://www.cmsmadesimple.org/apidoc/

    Avec cette API : moi, simple développeur, je suis capable de coder un module de Chat, de le packager et de le proposer à n'importe qui qui possède CmsMadeSimple. Lui en 1 clic il installe mon module et à aucun moment le code source du projet Cms Made Simple ne sera modifié.

    A l'inverse : phpBB et fluxBB nécessite de modifier les fichiers sources pour faire fonctionner les add-on : je trouve ça exécrable.

    Prévois ton projet de façon modulaire => API API API !



  • Clairement, phpBB et fluxBB ne sont pas du tout destiné à des modules malheureusement..

    Sinon :

    mais est-ce que c'est possible que cela soit tout aussi facile pour l'utilisateur final

    Vu qu'un framework n'a pour but que (en partie) simplifié / organiser ton code, l'utilisateur final lui ne vas voir "que" le rendu de la page, pas le code en lui même, donc pour lui, ça ne sera pas plus compliqué, et pour toi, encore moins selon le cas.
    Et oui, je trouve que ça améliore le rendement et la qualité du code, surtout quand j'vois qu'actuellement en moins d'une heure tu peux faire par exemple un module de blog, basique certes, mais fonctionnel avec Symfony par exemple) mais malheureusement, ça demande quelques heures d'entrainement, et tutos, mais c'est toujours gagné pour plus tard ;)

    Second grand avantage d'un framework, et j'y reviendrais plus loin, c'est la présence de grande communauté, de tutos, de modules existants et bien codé, bien entretenu.

    Par contre, pour les fichiers qui sont appelés sur plusieurs pages, c'est plus facile de faire comme ça, non?? (définir des variables puis inclure plutôt que d'inclure le fichier avec la fonction, appeler la bonne fonction avec les bons paramètres dans le bon ordre)?

    Oui/Non. Je m'explique :

    • oui car ça t'évitera d'écrire 2 fois la même chose, de maintenir 2 fois le même code etc
    • non dans la mesure où tu le conserve comme actuellement, inclure du code "libre" n'est pas forcément pratique car il faut l'inclure dans une situation particulière, alors qu'une fonction tu l'appelles si t'en a besoin, peut importe où tu es, elle est censé fonctionner.

    Pour ma part, je présentais mes fichiers comme ça :

    • index.php : point d'entré du site
    • core/common.php : fichier inclus dans toute les page et qui gère les inclusions communes à tout le site
    • core/config.php : config générales du site (info db par ex). Inclus dans common.php
    • core/functions.php : functions diverses du site. idem pour l'inclusion.
    • core/db_fonction.php : fonction spécifique à la base, idem pour inclusion.
    • etc..

    Ca me permettait de tout include, à l'aide d'un seul fichier (le common.php) : pas de risque d'oublie quelque part, et c'est que des appels de fonction pour les actions spécifiques qui peuvent être faite une ou plusieurs fois à différents endroits.

    Après, je ne sais pas comment réagisse les différents logiciels que tu as cité mais j'avais essayé "Phorum" qui est un forum en php qui proposait aussi des modules sauf que pour pouvoir les installer, il fallait les télécharger, mettre les fichiers qu'il faut dans les bons dossiers (le premier dans le dossier machin, le deuxième dans le dossier bidule qui se trouve dans le dossier truc) et fallait aller ajouter des éléments dans lignes de code (je sais pas si c'est tjrs le cas mntnt mais bon…).

    Pour donner une idée, Symfony (vue que c'est ce que j'utilise a présent), présente son architecture sous forme de "bundle" (une boite "noire", où tout le code pour une fonctionnalité/un module se trouve, par exemple, un bundle "blog" qui gère le fonctionnement d'un module blog au complet). Pour l'utiliser, il faut, pour simplifier, déclarer le bundle dans le code (à la main à un endroit bien précis prévu pour ça) et définir les routes pour accéder au bundle dans les configs. Rien de bien compliquer, et selon le bundle, t'as fini "le boulot" :)

    A contrario, t'as les truc "mégacompliqués", genre phpBB ou tu bidouilles le code, à t'en perdre et oublier où tu fais tes modifs..

    En ce qui concerne la question de réinventer la roue, je ne sais pas si c'est vraiment ce que je suis en train de faire (loin de moi la prétention de dire que j'invente quoi que ce soit et que ce que je fais va révolutionner le monde). Mais pour moi, ce n'est pas en reprenant à chaque fois ce qui existe qui existe que l'on va avancer. C'est plutôt en regardant ce qui existe, ce qui est bien, ce qu'il faut garder, ce qu'il faut améliorer et faire/créer en conséquences que l'on avoir de nouvelles choses/technologies (et je pense/espère faire partie de cette catégorie là )

    Tout l'intérêt d'un framework est là en fait : tu prends le framework, qui t'offre une "manière" de travailler et d'ordonner ton projet (que ce soit dans tes idées ou dans l'architecture) et derrière tu code tes modules par exemple qui feront le boulot que tu veux. Il ne vas pas te donner un truc "tout fait prémaché" (c'est pas un CMS) mais une aide pour facilité ton travail et te permettre de focaliser sur ce qui est vraiment important : le contenu, et non pas l'architecture, la façon de naviguer entre tes fichiers etc.

    Autre point non négligeable des framework, c'est qu'on retrouve, comme dis plus haut, une communauté présente, soudée et prête à aidé si besoin, et surtout beaucoup de chose sont disponible, souvent bien fait, bien testé et éprouvé (c'est le plus important d'ailleurs) et très bien maintenu. Souvent tu as également la possibilité de prendre un module (ou bundle pour Symfony) de base, qui va te servir uniquement de base pour ton utilisation (par exemple un bundle de gestion d'user/groupe qui gère le login etc de manière sécurisée)



  • Clairement que tu te dirige vers un framework ou un autre, je suis certain qu'il existe déjà des projets présentant une fonctionnalité de forum, tu pourrais même partir de ceux là pour étendre vers des besoins Tiers comme le CMS, le blog ou autre. Ainsi le logiciel Fluxbb va être entièrement recodé sous le framework Laravel

    http://fluxbb.fr/forums/viewtopic.php?id=12756

    Et je penses qu'ils ont raison : ils abandonnent leur code perso mal entretenu (comme tous les codes perso, il n'y a pas de miracle) pour une base commune avec des milliers d'autres codeurs, c'est donc un code épuré de la plupart des erreurs courantes, c'est bien structuré et ça t'apporte une discipline de code que tu pourras réutiliser plus tard.

    Aucune hésitation : les frameworks sont l'avenir du programmeur.



  • Dans la même idée, phpBB 4 sera également avec Symfony 2 normalement



  • j'ai envie de dire : il était temps :mrgreen:

    quelle infamie ces modifications en dur -_-'



  • Haa si si si faut le reconnaitre, le tout-tableau c'était très à la mode en 1990.

    Bah, il y en a qui font des jeux designs rétros, d'autres des sites designs retros 8) 8)
    Plus sérieusement, j'vais voir comment je peux améliorer cela pour que cela passe mieux maintenant, merci pour tes liens :)

    Sinon, je vais continuer à développer mon truc pour le moment mais suivant vos conseils, je vais commencer en parallèle à m'intéresser aux framework :)



  • Un choix judicieux.

    Ca va pas se faire en un claquement de doigt mais tu fait le bon choix :)


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.