Débutant : PHP et accès Database dans les articles

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Débutant : PHP et accès Database dans les articles

    Bonjour !

    Je dois sûrement m'excuser d'avance car je débute avec la prise en main de Joomla et j'ai beaucoup de mal sur certains points.

    Je dois pour mon stage créer tout un site avec un collègue. Au départ débuté sans CMS, on m'a finalement demandé de créer le site sous Joomla (un autre collègue avait commencé à créer le site avec Joomla, avec quelques pages, et une zone de login qui viennent de je-ne-sais-où). Et pour l'instant je dois avouer que je m'en serais bien passé vu que je ne comprends aucunement comment accéder à la base de données MySQL lorsque j'écris un article, et donc aussi comment inclure du code PHP dans ces derniers. Bref pour l'instant je ne peux rien faire en fait >< !

    Je regarde un peu partout sur le net, je croise des tonnes de topics où l'on dit "installez ci", "installez ça", ... ! N'y a t-il pas une solution de base pour faire ce que je veux, de façon aussi simple que quand j'écrivais mes bêtes fichier HTML et PHP >< ? Je croyais qu'un CMS était un outil sensé simplifier le développement des sites web, je crois que je me suis trompé vu que je perd un temps énorme là !

    Voici en tout cas un exemple de travail qui m'attends, et que je ne sais donc pas du tout traiter au sein d'un article avec Joomla :
    - après clic sur une image qui conclut un form, envoit avec POST de nombreuses données contenues dans la database

    Je tiens à préciser que malgré que je sois débutant avec ce CMS, je ne le suis pas forcément concernant le développement Web. Mais j'ai jamais eu de soucis en créant mes petites pages HTML, PHP, et en y incluant mes script PHP, Javascript, ... ! Mais là j'ai l'impression que je peux rien faire à part écrire du texte et balancer des images >< !

    Bref, je vous serais reconnaissant de bien vouloir m'aider à comprendre un peu comment obtenir le résultat que je souhaite! et si vous pouviez éviter de simplement me balancer des liens et me demander d'installer je-ne-sais-quoi, ça risque pas de me rassurer !
    Dernière édition par Dragonic à 15/08/2013, 15h45

  • #2
    Re : Débutant : PHP et accès Database dans les articles

    Bonjour,

    Et bienvenue sur le forum.

    La différence principale entre créer du PHP/HTML et utiliser un CMS est dès le départ philosophique.

    Pour apprivoiser un CMS tel Joomla! commencer par en comprendre la philosophie http://kiwik.net/joomla/livres-joomla

    Un CMS est toujours composé d'un noyau, et dans ce cas, Joomla! lui-même plus quelques extensions: coàntent (les articles), contact (formulaire de contact basic), links (liens web), users (gestion des utilisateur et groupes), ACL pour la gestion des droits.

    Pour en étendre les possibilités, on y attache des composants, modules, plugins et templates. Il en existe des milliers, répondant à quasiment tous les besoins.

    Pour insérer directement des requêtes SQL par exemple dans un article, il faut utiliser la classe JDatabase de Joomla!, plus un plugin genre Sourcerer http://www.nonumber.nl/extensions/sourcerer) qui servira à inclure ce code directement dans les articles, modules, etc.

    L'hypermarché de toutes les extensions est http://extensions.joomla.org (ou plus réduit, http://extensions.joomla.fr)

    Enfin, puisque Joomla! est conçu dans une logique MVC, il existe des dizaines de milliers de templates, et de soutils d ecréation de templates (par exemple Template CreatorCK) et des guides pour écrire ses propres templates en respectant tout le framework Joomla! et ses API officielles.

    - après clic sur une image qui conclut un form, envoit avec POST de nombreuses données contenues dans la database
    En logique MVC, il s'agit d'un objet métier, donc un composant gestionnaire de formulaires. Les plus réputés sous Joomla! sont BreezingForms, ChronoForms et PROForms.
    Le composant lui-même permet de créer et définir ses formulaires, avec ou sans lien avec des tables Joomla!. Des plugins et modules permettent l'interaction avec les autres composants (com_content par exemple pour insérer directement un formulaire défini dans un article) ou le module pour publier un formulaire dans une position quelconque de la page.

    Bref, je vous serais reconnaissant de bien vouloir m'aider à comprendre un peu comment obtenir le résultat que je souhaite! et si vous pouviez éviter de simplement me balancer des liens et me demander d'installer je-ne-sais-quoi, ça risque pas de me rassurer !
    J'espère t'avoir un peu élagué la logique Framework MVC de Joomla!

    Je suis désolé, mais l'utilisation d'un framework implique d'en respecter impérativement la logique.

    Dans l'exemple formulaire, il est donc logique que tu sois orienté vers un composant formulaire, et si tu préfères développer toi-même le composant en réinventant la roue Joomla!, il te faut te plonger dans la documentation développeurs, mais surtout par bien comprendre les bases.
    Composant = objet métier, module = utilitaire associé ou non à un composant et permettant de l'affichage sur une position du template, pluigin = extension d'un composant et interaction avec les autres composants, template = la partie cosmétique du site, indépendante du reste, permettant de changer de template sans rien recoder.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Débutant : PHP et accès Database dans les articles

      Merci pour tous ces détails jisse03 !

      Outre le fait que je sais un peu maintenant vers quoi m'orienter, cela confirme tout autant ce qui me faisait peur: c'est que je ne retrouverais jamais la liberté de développement que j'ai d'habitude. Je savais bien que Joomla orientait tout autour de son pattern MVC en disptachant templates, composants, modules, ... ! Mais j'aurais pensé qu'il y aurait au moins aussi un mode un peu plus "libre" nativement dans lequel le développeur pourrait au moins utiliser du code PHP au sein des éditeurs.

      D'ailleurs je n'y ai pas pensé, mais j'espère que je peux au moins y inclure du Javascript sans avoir besoin d'un autre module >< ?!

      Enfin voilà, sur ce point c'est quand même dommage, car j'imagine bien qu'une fois pris correctement en main et ayant connaissances des bonnes extensions à utiliser ce CMS peut devenir très intéressant. Mais dans mon cas, et je suppose pour tout autre développeur Web qui vient essayer un CMS comme Joomla avec déjà quelques expériences sur des sites, c'est très irritant d'être privé à ce point de certaines libertés qu'on avait par défaut.


      En logique MVC, il s'agit d'un objet métier, donc un composant gestionnaire de formulaires. Les plus réputés sous Joomla! sont BreezingForms, ChronoForms et PROForms.
      Le composant lui-même permet de créer et définir ses formulaires, avec ou sans lien avec des tables Joomla!. Des plugins et modules permettent l'interaction avec les autres composants (com_content par exemple pour insérer directement un formulaire défini dans un article) ou le module pour publier un formulaire dans une position quelconque de la page.
      Tout ça m'a l'air bien compliqué alors qu'il aurait fallu simplement que je rajoute des input cachés dont les valeurs sont renseignées en PHP par une bête requête SQL !

      Quoiqu'il en soit, je vais mettre en place ce que tu m'as conseillé, car je n'ai pas le choix, et pas le temps non plus d'apprendre à connaitre les centaines d'extensions qui pourront m'être nécessaires pour me permettre de moins galérer >< !

      P.S. : en tant normal je suis tous sauf aussi négatif, mais c'est vrai que cette première impression sur Joomla n'est vraiment pas top. Faute aussi au peu de temps que j'ai pour fournir des résultats, sachant que je savais comment faire sans CMS mais que là j'avance au ralenti >< !
      Dernière édition par Dragonic à 15/08/2013, 18h48

      Commentaire


      • #4
        Re : Débutant : PHP et accès Database dans les articles

        Envoyé par Dragonic Voir le message
        Outre le fait que je sais un peu maintenant vers quoi m'orienter, cela confirme tout autant ce qui me faisait peur: c'est que je ne retrouverais jamais la liberté de développement que j'ai d'habitude. Je savais bien que Joomla orientait tout autour de son pattern MVC en disptachant templates, composants, modules, ... ! Mais j'aurais pensé qu'il y aurait au moins aussi un mode un peu plus "libre" nativement dans lequel le développeur pourrait au moins utiliser du code PHP au sein des éditeurs.
        Ce n'est pas spécifique au framework Joomla!, mais à tous les framewxorks, quel que soit le langage de programmation. Rien qu'en PHP, Zend Framework ou Symfony sont bien plu srestrictif que le framework Platform de Joomla! Et en C++, Qt fait partie des plus stricts existants, mais aussi des plu sappréciés des développeurs.

        Mais il est vrai, lorsqu'on est habitué à une logique fonctionnelle, passer à une logique MVC, DDT (Data Driven Technology) ou prédicative (Prolog ou iLisp en intelligence artificielle) peut sembler une tâche ardue et très délicate à appréhender, puisque ces logiques imposent une méthodologie.

        Grâce à des plugins sous Joomla! (Sourcerer entre autres) on peut insérer du code arbitraire (PHP, JavaScript, HTML) directement dans les articles, tout au moins en respectant la logique Joomla!, dont respect de la classe d'abstraction aux bases de données JDatabase (ne pas le respecter pourrait créer des conflits avec des requêtes directes mysql ou PDO)

        Envoyé par Dragonic Voir le message
        D'ailleurs je n'y ai pas pensé, mais j'espère que je peux au moins y inclure du Javascript sans avoir besoin d'un autre module >< ?!
        JS étant majoritairement utilisé sur la partie client du site, les classes de gestion de documents (Document au sens page) incluent des méthodes addScript (pour le JS) et addStyle (pour le CSS). Ces méthodes ne sont pas là pour brider, mais leur utilisation permet que ces inclusions de scripts ou styles se fassent conformément aux recommandations de W3C, c'ets à dire dans le head de la page et non dans le body (sauf pour le inline JavaScript).

        Envoyé par Dragonic Voir le message
        Enfin voilà, sur ce point c'est quand même dommage, car j'imagine bien qu'une fois pris correctement en main et ayant connaissances des bonnes extensions à utiliser ce CMS peut devenir très intéressant.
        Joomla!, comme tout CMS puissant ou tout framework n"cessite, c'ets vrai un peu de temps d'apprentissage pour en comprendre la puissance, l'extensibilité et surtout la pérennité.

        Envoyé par Dragonic Voir le message
        Mais dans mon cas, et je suppose pour tout autre développeur Web qui vient essayer un CMS comme Joomla avec déjà quelques expériences sur des sites, c'est très irritant d'être privé à ce point de certaines libertés qu'on avait par défaut.
        Quel que soit notre expérience, lorsqu'on doit utiliser un outil, on doit se plier à ses contraintes. La "liberté" avec PHP se traduit hélas trop souvent par des failles de sécurité et de grosses difficultés d'intégration dès lors qu'on désire rajouter des fonctions (forum, newsletter, eCommerce, etc.) à un site, ce que ces CMS permettent aisément et sans y passer des mois. Par intégration, ne pas penser juxtaposition, mais interactions entre tous les éléments du site (par exemple commenter un article sur le forum, ce que les plugins des composants forum proposent...)

        Envoyé par Dragonic Voir le message
        Tout ça m'a l'air bien compliqué alors qu'il aurait fallu simplement que je rajoute des input cachés dont les valeurs sont renseignées en PHP par une bête requête SQL !
        Bien que cette logique paraisse complexe, elle a une raison d'exister. Un seul composant formulaires centralise tous les formulaires, souvent multiples, que le site peut utiliser. La maintenance en devient bien plus simple sur le moyen/long terme. Le codage en dur par inputs cachés, c'est très bien, mais bien moins maintenable qu'un composant permettant de modifier et étendre les divers formulaires en quelques clics.

        Etant donné que tu es en stage, cette logique permettant une maintenance et évolution aisée devient primordial. Après ton stage, l'admin du site, si tu as codé en dur un peu partout, ne pourra aisément, sauf à y passer énormément de temps, assurer le suivi, les mises à jour de sécurité, etc, du site, puisque tes codes en durs pourraient au mieux entrer en conflit avec les besoins, au pire être écrasés par une mise à jour de sécurité du CMS ou l'installation d'une version ultérieure.

        Je sais que les contraintes diverses, dont celle de maintenir les possibilités de mise à jour, évolution, administration simple, peuvent hérisser le débutant avec ces produits, mais les raisons de ces contraintes sont de permettre une maintenance à long terme, sans dépendre d'un développeur en particulier.

        Envoyé par Dragonic Voir le message
        Quoiqu'il en soit, je vais mettre en place ce que tu m'as conseillé, car je n'ai pas le choix, et pas le temps non plus d'apprendre à connaitre les centaines d'extensions qui pourront m'être nécessaires pour me permettre de moins galérer >< !
        Le forum est là aussi pour aider
        Mais prends au moins le temps de lire les guides dont je t'ai donné l'adresse, et je pense que tu verras très vite certains gros avantages des CMS
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Débutant : PHP et accès Database dans les articles

          Merci en tout cas de prendre le temps de répondre avec précision sur tous les points, ça fait plaisir à voir !

          Je crois que je suis simplement pas à l'aise avec les frameworks dits de "plus haut niveau" ! J'avais utilisé Symfony 2 il y a quelques années, et j'en garde pas un bon souvenir à cause des restrictions. Et j'ai finalement le même genre de raisonnement sur des projets 3D. J'ai testé quelques framework très haut niveau (Unity), c'était horrible. Je suis descendu un peu plus bas (Ogre3D, ...), toujours aussi chiant >< ! Donc j'ai choisis OpenGL pour aller au plus bas niveau, et c'est parfait, j'ai accès à tout, j'ai le contrôle sur tout.

          Au final, il va m'être difficile je pense d'en venir à aprécier Joomla d'ici la fin du stage, car du fait du manque de connaissances du CMS, tout ce temps à avancer aussi doucement ne peut pas donner une bonne impression pour le temps restant.

          Mais bon, je vais faire ce que je peux !

          Commentaire


          • #6
            Re : Débutant : PHP et accès Database dans les articles

            Envoyé par Dragonic Voir le message
            Je crois que je suis simplement pas à l'aise avec les frameworks dits de "plus haut niveau" ! J'avais utilisé Symfony 2 il y a quelques années, et j'en garde pas un bon souvenir à cause des restrictions.
            Que pourrais-je en dire, moi qui ai commencé avec de l'assembleur PDP-11, Motorola 6800 et Zylog Z-80...
            A ce niveau, même le C est de "plus haut niveau"
            Au début, on n'est pas à l'aise, tant qu'on n'a pas compris les raisons et objectifs que ce soit d'un framework ou d'une toolbox.

            Envoyé par Dragonic Voir le message
            JDonc j'ai choisis OpenGL pour aller au plus bas niveau, et c'est parfait, j'ai accès à tout, j'ai le contrôle sur tout.
            Évidemment, intellectuellement, c'est satisfaisant, mais quid de la maintenance par un tiers, et surtout quid de la portabilité ?
            Dans les années 90, les "hackers" et "masters" du moment s'affrontaient sur ce qui était appelé des "demos"... Le gros hic, c'est qu'une démo programmée sur un Amiga 500 ne tournait plus correctement sur Amiga 1000, et encore moins sur Atari ST ou sur PC...
            Ce codage bas niveau offre des satisfactions, mais a ses très grosses limitations.

            Dans le cadre des CMS, PHP et Joomla! en particulier, et avec une seule classe, JDatabase, l'abstraction, bien qu eparfois casse pieds, est là parce que les versions récentes de Joomla! tournent aussi bien avec MySQL que PostgreSQL ou MS SQL Server ou encore Azure...
            Sans ces abstractions, impossible de se dire je développe en local avec MySQL et en production ça sera un postgreSQL (bien que là, Joomla! manque encore un peu d'abstraction, puisqu'il ne gère pas encore le abstract DB Model purement XML)

            Il en va de même avec la logique des plugins. Cette logique permet, par exemple, d'unifier les commentaires où qu'on soit sur un site (articles, SAV, HelpDesk, Composant de gestion de recettes de cuisine, de partage multimédia...) via un seul composant + plugin de commentaires. Cette unification, bien que semblant au départ restrictive a un gros avantage, le look, les fonctions, etc. sont unifiées sur un site, évoluent de manière cohérente, et au final, c'ets à l'utilisateur final que ça profite

            Envoyé par Dragonic Voir le message
            JAu final, il va m'être difficile je pense d'en venir à aprécier Joomla d'ici la fin du stage, car du fait du manque de connaissances du CMS, tout ce temps à avancer aussi doucement ne peut pas donner une bonne impression pour le temps restant.
            Hum, je pense qu etu es jeune
            Il existe aussi une arme fatale pour Joomla!, les CCK (Content Construction Kit), dont le plus évolué, Seblod, te permet de fabriquer tes propres applis en assemblant les briques existantes, construire tes briques, et fabriquer tes propres moyens d'intégration avec les autres composants installés.

            Mais si ton stage est bref, il te sera difficile de vraiment appréhender ce que peuvent apporter ces systèmes en termes de souplesse, de facilité de maintenance et d'évolutivité, ce qui est ce que réclame le client final.
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Débutant : PHP et accès Database dans les articles

              Bon, Sourcerer semble fonctionner correctement finalement. Et a défaut de pouvoir bien utilisé les modules de formulaire je peux déjà constuire quelquechose rapidement puisque j'ai à nouveau accès au PHP et à la BDD !

              Peut être puis-je demander cependant si il n'y a pas un moyen de modifier l'indentation de cet éditeur, car c'est assez horrible pour l'instant d'apporter des modifications dans le code vu qu'il n'y a aucun retour à la ligne qui se fait automatiquement >< !
              Dernière édition par Dragonic à 16/08/2013, 10h47

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X