API Joomla

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

  • [RÉGLÉ] API Joomla

    Bonjour,

    J'aimerais pouvoir manipuler mes articles/catégories/menus via du code PHP. L'idée serait de pouvoir mettre à jour des articles, en créer et les rendre accessibles dans un menu.

    Pour cela, je me suis penché dans un premier temps sur les classes ContentModelArticle(s) et ContentModelCategory.

    Voici ce que j'ai essayé pour l'instant :

    Code:
    		JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_categories/tables');
    		require_once JPATH_ADMINISTRATOR . '/components/com_content/models/article.php';
    		require_once JPATH_ADMINISTRATOR . '/components/com_categories/models/category.php';
    		
    		$artmodel = new ContentModelArticle();
    		
    		$artmodel->getItem(72);
    		
    		$data = array(
    				'id' => 72,
    				'catid' => 1,
    				'title' => 'SOME TITLE BIS',
    				'introtext' => 'SOME TEXT T',
    				'fulltext' => 'SOME TEXT',
    				'state' => 1,
    		);
    		//ne met pas à jour l'article
    		$result = $artmodel->save($data);
    		
    		//cree un nouvel article
    		$artmodel = new ContentModelArticle();
    		
    		$data = array(
    				'catid' => 1,
    				'title' => 'SOME TITLE BIS',
    				'introtext' => 'SOME TEXT T',
    				'fulltext' => 'SOME TEXT',
    				'state' => 1,
    		);
    		$result = $artmodel->save($data);
    		
    		$catmodel = new CategoriesModelCategory(array());
    		
    		$data = array (
    				'parent_id' => '0',
    				'extension' => 'com_content',
    				'title' => 'coucou',
    				'alias' => '',
    				'note' => '',
    				'description' => 'my description',
    				'published' => '1',
    				'access' => '1',
    				'metadesc' => '',
    				'metakey' => '',
    				'created_user_id' => '1',
    				'language' => '*',
    				'rules' =>
    				array (
    						'core.create' =>
    						array (
    						),
    						'core.delete' =>
    						array (
    						),
    						'core.edit' =>
    						array (
    						),
    						'core.edit.state' =>
    						array (
    						),
    						'core.edit.own' =>
    						array (
    						),
    				),
    				'params' =>
    				array (
    						'category_layout' => '',
    						'image' => '',
    				),
    				'metadata' =>
    				array (
    						'author' => '',
    						'robots' => '',
    				),
    		);
    		
    		$status = $catmodel->save($data);
    Est-ce que ces objets permettent de mettre à jour les articles/catégories ?
    Si oui, comment ?
    Ou est-ce qu'il faut les surcharger ? Utiliser d'autres objets ? Attaquer directement la BDD ?

    Merci d'avance pr votre aide.

  • #2
    Re : API Joomla

    [modo]Sujet déplacé en développement[/modo]
    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 : API Joomla

      Bonjour,
      Joomla intègre la gestion des articles, menus, etc.. dans le code.
      Ce que tu cherches, si je comprends bien, c'est créer dans un seul menu les liens vers les la modification des articles, des menus, etc..
      Si c'est cela, tu peux alors chercher sur la personnalisation des menus :
      Find extensions for your Joomla site in the Joomla Extensions Directory, the official directory for Joomla components, modules and plugins.

      Cordialement,
      Chabi01 - http://www.xlformation.com

      Commentaire


      • #4
        Re : API Joomla

        Envoyé par chabi01 Voir le message
        Bonjour,
        Joomla intègre la gestion des articles, menus, etc.. dans le code.
        Ce que tu cherches, si je comprends bien, c'est créer dans un seul menu les liens vers les la modification des articles, des menus, etc..
        Si c'est cela, tu peux alors chercher sur la personnalisation des menus :
        Find extensions for your Joomla site in the Joomla Extensions Directory, the official directory for Joomla components, modules and plugins.

        Cordialement,
        Merci pour ta réponse.

        Non, ça n'est pas du tout ce que je cherche à faire. :/ Je cherche à pouvoir créer/modifier des articles via PHP (sans interface web, uniquement via du code).

        Mes articles proviendraient d'une autre base de données et j'aimerais pouvoir automatiser les MAJ et l'ajout d'article. (Voilà le pourquoi j'ai besoin de ne pas passer par l’interface web).

        Commentaire


        • #5
          Re : API Joomla

          Dans ce cas, tu vas devoir développer une "simple" page d'accès aux tables pour stocker les informations.
          Par contre, avant, il va bien falloir que tu étudies les tables et les relations entre les données stockées.
          Pour cela, je te conseille de consulter les documentations à dispositions :


          Cordialement,
          Chabi01 - http://www.xlformation.com

          Commentaire


          • #6
            Re : API Joomla

            Ok, donc il faudrait que je passe directement par la BDD.

            Justement, pour éviter d'avoir à me soucier de toutes les relations, j'avais pensé qu'en utilisant des objets de Joomla représentant les articles/catégories/etc, je m'affranchissais de ce problème.

            Il y a plus qu'à comme on dit.

            Merci

            Commentaire


            • #7
              Re : API Joomla

              Envoyé par aschaeffer Voir le message

              Il y a plus qu'à comme on dit.
              C'est clair
              Bon courage.
              Si tu as la réponse à ta question (à défaut d'avoir le travail terminé), passe le sujet en réglé
              Cordialement,
              Chabi01 - http://www.xlformation.com

              Commentaire


              • #8
                Re : API Joomla

                Au cas où ça intéressera quelqu'un plus tard, ce bout de code m'a pas mal aidé :


                Il n'intègre pas les relations, mais pour faire les ajouts et les modifications dans les tables, c'est déjà mieux que de faire les requêtes à la mano.

                Commentaire


                • #9
                  Re : API Joomla

                  Bonjour,

                  Bien vu aschaeffer, ce code permet surement de faire ce dont tu as besoin
                  et en plus en utilisant les API de mapping objet et de persistance de Joomla, plutot que de taper en SQL dans la BDD

                  Donc oui, la solution proposée permet bien de :
                  - instancier l'objet JTable des données 'content'
                  - puis d'executer les methodes de :
                  > bind : pour stocker tes données articles de ton tableau (array) dans l'objet JTable (mapping objet)
                  > check : pour vérifier l'intégriter de l'objet JTable alimenté
                  > store : pour effectuer le stockage SQL de ton article

                  Plus d'infos sur JTable : http://api.joomla.fr/joomla15/d2/d7a/classJTable.html

                  Reste plus qu'a adapter le code trouvé a tes besoins, bon courage
                  Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
                  « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
                  c’est parce que nous n’osons pas qu’elles sont difficiles. »
                  - Sénèque

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X