exporter mes categories et articles ainsi que le menu si possible

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

  • exporter mes categories et articles ainsi que le menu si possible

    Bonjour
    J'essais de faire un changement de template et j'ai une question :
    J'utilise un template quickstart en local et je voudrais savoir si il était possible d'exporter mes articles, mes catégories et mes menus de mon ancien site vers ce nouveau
    Je pense que c'est possible avec des exports en bdd, mais je n'arrive pas à trouver l'ensemble des table qu'il faut que j'exporte
    Merci pour votre aide
    Et bonne journée

  • #2
    Regarde du côté de J2XML pour l'export-import des articles et catégories. Je n'en ai pas suffisamment l'expérience pour savoir s'il peut aussi gérer les menus.
    Sinon, il existe des extensions commerciales comme SP Transfer si ton ancien site est en version 2.5 au moins, JMigrator, Migrate Me... qui vont plus loin dans les possibilités de transfert.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide). MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

    Commentaire


    • #3
      Bonjour,

      Pourquoi passer par un quickstart plutôt que d'installer votre template directement sur votre ancienne installation ? On peut installer plusieurs templates sur un même site.

      Pascal
      JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

      If anything can go wrong, it will...
      If I can help, I will ..https://conseilgouz.com

      Commentaire


      • #4
        Merci à tous les 2
        Je voulais passer par le kickstart simplement car depuis maintenant 8 années que j'ai mon site joomla j'en aurais profité pour faire du nettoyage
        C'est bien seulement un changement de template que je voulais faire pas une migration
        Je passe d'un j3 à un j3

        Commentaire


        • #5
          Bonjour,
          en fait quand tu achètes un template assez complexe et joli, tu as souvent un fichier quickstart (démarrage rapide) qui sert souvent de mode d'emploi et qui reproduit tout le site tel que tu le vois dans la démo. En étudiant comment il fonctionne, tu peux ensuite reproduire sur ton propre site en installant cette fois ci, le template seul.
          Un changement de template, c'est pas toujours simple car les positions changent et on a souvent de nouvelles fonctionnalités d'un template a un autre.

          Donc, on installe le quickstart dans un coin en local ou serveur de test pour tester et bien comprendre comment tout ça fonctionne
          Et une fois qu'on maitrise bien, on installe le template seul sur une copie de son site pour commencer a bosser dessus.
          Une fois qu'on a fini, on transfert le boulot vers le serveur online ou si c'est quelque modifs, on duplique les modifs testées sur la copie sur le site en production ... mais attention, il faut le mettre hors ligne sinon tes visiteurs auront de mauvaises surprises !
          Dernière édition par manu93fr à 04/05/2018, 10h08
          “Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter le nouveau service (en Beta) de la base de connaissance https://kb.joomla.fr

          Commentaire


          • #6
            A quand une fonction native d'export du contenu Joomla ?
            Est ce prévu dans J4 ? Tout comme la différenciation module/composant/plugin vs articles ? Car pour le moment, tout ça est géré avec la table assets, qui comlexifie le transfert via bdd...
            Venant de Spip, c'était là une puissance de ce CMS, et un gros manque pour Joomla.

            Commentaire


            • #7
              Envoyé par christophe31 Voir le message
              ... Tout comme la différenciation module/composant/plugin vs articles ? Car pour le moment, tout ça est géré avec la table assets, qui comlexifie le transfert via bdd...
              Peux tu être + clair, car en lisant tes propos on a l'impression que tu embrouilles un peu tout.

              Un Module est bien différent d'un Composant qui sont tous deux différents d'un Plugin.
              Chacun a son rôle, même si un module ou un plugin peuvent dépendre d'un ou de plusieurs composants.

              Concernant la comparaison avec un article, un article est géré par un composant (com_content), c'est tout.

              Et la table #_assets concerne l'ACL (donc partie du framework de Joomla) et est partagée entre l'ensemble des composants utilisant la gestion des droits proposée par le framework (une des (très) grande force de Joomla).

              Et effectivement si on peut envisager de transfert d'un article (au sens de son contenu), tout comme n’importe quel autre élément de contenu géré par des composants utilisant la puissance du Framework (événements, liens, forums, articles commerciaux, etc...), il est très difficile de transférer leurs droits d'accès, et même leurs catégories par exemple, vu que ces tables sont communes et gérées par le framework de Joomla.
              Sauf à gérer des correspondances avec des tables de "mapping" (une belle usine à gaz à gérer !).

              Concernant un export "simple", la formule viendra peut-être des fonctions de webservice que l'on attend depuis longtemps et qui devraient être dispo avec J4.
              Dernière édition par roland_d_alsace à 07/05/2018, 13h39
              A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
              Rejoignez le Joomla Users Groupe Alsace...
              roland_d_alsace va-t-il devenir roland_du_grand_est ?

              Commentaire


              • #8
                Assets ne concerne que les ACL ? (j'ai encore bcp à apprendre). Il me semblait que les asset étaient une espèce de table d'organisation des catégories, articles composants etc...

                Quand j'ai voulus transférer les articles d'une bdd à une autre, j'ai butté sur la table Asset, qui dépendait des composants, des articles et des rubriques... Mais peut-être me trompe-je ?

                Commentaire


                • #9
                  Envoyé par christophe31 Voir le message
                  Assets ne concerne que les ACL ? (j'ai encore bcp à apprendre). Il me semblait que les asset étaient une espèce de table d'organisation des catégories, articles composants etc...
                  Oui et effectivement on retrouve tous les composants du core (que tu sites) dedans.
                  Envoyé par christophe31 Voir le message
                  Quand j'ai voulus transférer les articles d'une bdd à une autre, j'ai butté sur la table Asset, qui dépendait des composants, des articles et des rubriques... Mais peut-être me trompe-je ?
                  Si c'est pour cloner un site (donc à l'identique en effaçant la DB de destination pour la remplacer par les DB source), pas de soucis.

                  Mais si c'est pour injecter par exemple des articles (et que des articles) d'un site vers un autre, déjà rien qu'au niveau des users et des catégories tu vas avoir un problème.
                  Comme indiqué dans ma réponse, il faudra faire un mappage (tables de correspondances id<->id user, id <-> id catégories, etc... entre les 2 sites).

                  Et pour les droits, les tags, etc... c'est plus complexe.
                  Et il faut aussi importer les images, avoir les même plugin actifs, etc...
                  A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                  Rejoignez le Joomla Users Groupe Alsace...
                  roland_d_alsace va-t-il devenir roland_du_grand_est ?

                  Commentaire


                  • #10
                    dans mon cas, j'avais exporter mes articles spip, dans un fichier excel. J'ai modifié les users, pour qu'ils existent dans joomla, et j'ai attribué les rubriques, transféré les images via FTP, et remappé mes colonnes comme il faut.... Donc pas de soucis, mais la table Asset, elle me posait problème, car en important mes articles ainsi, je n'ai pas mis à jour ma table asset.

                    Commentaire


                    • #11
                      Bonjour,
                      et sinon tu as essayé ce site qui propose justement de passer d'un cms a un autre ?
                      https://cms2cms.com/

                      Je rejoins Rolland, chaque Cms a sa logique (et heureusement) Joomla! embarque quand même pas mal de truc que SPIP n'a pas ... d'ou les liaisons de mappage entre plusieurs tables ...
                      “Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter le nouveau service (en Beta) de la base de connaissance https://kb.joomla.fr

                      Commentaire


                      • #12
                        Envoyé par christophe31 Voir le message
                        dans mon cas, j'avais exporter mes articles spip, dans un fichier excel. J'ai modifié les users, pour qu'ils existent dans joomla, et j'ai attribué les rubriques, transféré les images via FTP, et remappé mes colonnes comme il faut.... Donc pas de soucis, mais la table Asset, elle me posait problème, car en important mes articles ainsi, je n'ai pas mis à jour ma table asset.
                        Je suis en déplacement, je n'ai pas toutes les infos, mais la génération automatique d'articles ce sont des manips que je fais dans certains de mes composants.
                        J'ai aussi fait des "moulinettes" de reprise de sites vers Joomla (forums, annonces, articles, etc...).

                        Le plus simple est de s'inspirer des méthode du CMS de destination (ce qui accessoire permet aussi d'apprendre la nouvelle logique).
                        Il te faut donc voir comment com_content enregistre un article et laisser gérer la table assets par ses fonctions.

                        Apparemment tu es développeur, voici donc un petit début d'une méthode d’enregistrement d'un article (en supposant que tu es sur du Joomla 3.+, et à adapter selon tes besoins) :

                        Code PHP:
                             public static function store($Param)
                            {
                                if (
                        version_compare(JVERSION'3.0''lt')) {
                                    
                        JTable::addIncludePath(JPATH_PLATFORM 'joomla/database/table');
                                }

                                
                        $app=\Joomla\CMS\Factory::getApplication();
                                
                        $article JTable::getInstance('content');

                                if(!
                        property_exists($Param,'title')|| $Param->title==''){
                                    
                        $app->enqueueMessage('Il faut donner un titre à l\'article','NOTICE');
                                    return 
                        false;
                                }
                                
                        $article->title            $Param->title;

                                
                        // il faut faire une recherche sur l'alias, voir si l'article n'existe pas déjà

                                // S'il existe verifier l'auteur et faire une maj, si non publié


                                
                        if(property_exists($Param,'introtext'))$article->introtext        $Param->introtext;
                                if(
                        property_exists($Param,'fulltext'))$article->fulltext $Param->fulltext;

                                if(!
                        property_exists($Param,'catid')|| (int)$Param->catid<=0){
                                    
                        $app->enqueueMessage('Il faut donner une catégorie à l\'article','NOTICE');
                                    return 
                        false;
                                }
                                
                        $article->catid            $Param->catid;

                                if(
                        property_exists($Param,'alias')){
                                    
                        $article->alias $Param->alias;
                                }else{
                                    
                        $article->alias JFilterOutput::stringURLSafe($Param->title.' ' self::_next_article_id());
                                }

                                
                        $DH=new DateTime();
                                
                        $date = \Joomla\CMS\Factory::getDate($DH->getTimestamp())->toSQL();


                                
                        $article->created_by_alias '';
                                
                        $article->state            1;
                                
                        $article->access           1;

                                if(
                        property_exists($Param,'publish_up')){
                                    
                        $article->publish_up = \Joomla\CMS\Factory::getDate($Param->publish_up)->toSQL();
                                }else{
                                    if(
                        property_exists($Param,'publish_up_in_mn')){
                                        
                        $DH->add(new DateInterval('PT'.$Param->publish_up_in_mn.'M'));
                                            
                        $article->publish_up = \Joomla\CMS\Factory::getDate($DH->getTimestamp())->toSQL();
                                    }elseif(!
                        property_exists($article,'publish_up') || !$article->publish_up){
                                        
                        $article->publish_up $date;
                                    }
                                }
                                if(
                        property_exists($Param,'metadata')){
                                    
                        $article->metadata="";
                                    if(
                        is_array($Param->metadata)){
                                        foreach (
                        $Param->metadata AS $metadata){
                                            if(
                        $article->metadata<>""){
                                                
                        $article->metadata.=',';
                                            }else{
                                                
                        $article->metadata.='{';
                                            }
                                            
                        $article->metadata.='"'.$metadata.'":""';
                                        }
                                        if(
                        $article->metadata<>""){
                                            
                        $article->metadata.='}';
                                        }
                                    }else{
                                        
                        $article->metadata.='{"'.$Param->metadata.'":""}';
                                    }
                                }
                                    
                        //$article->metadata         = '{"page_title":"","author":"","robots":""}';
                                
                        $article->language         '*';
                                if(
                        property_exists($Param'tags')) $article->newTags $Param->tags;
                                if(!
                        self::_article_store($article)) return false;

                                return 
                        $article;
                            }

                            private static function 
                        _article_store(&$article){

                                if (!
                        $article->check()) {
                                    
                        $app->enqueueMessage($article->getError(),'NOTICE');
                                    return 
                        FALSE;
                                }

                                
                        JPluginHelper::importPlugin('content');
                                
                        $dispatcher    JEventDispatcher::getInstance();

                                
                        $result $dispatcher->trigger('onContentBeforeSave', array('com_content.article', &$articletrue));
                                if (
                        in_array(false$resulttrue))
                                {
                                    
                        // There are some errors in the plugins


                                    
                        try
                                    {

                                        
                        JLog::add(JText::sprintf('COM_GSKI_ARTICLE_NON_ENREGISTRE_ERREUR_PLUGINS',implode(', '$object_file->getErrors())),
                                                
                        JLog::INFO,
                                                
                        'upload'
                                                
                        );
                                    }
                                    catch (
                        RuntimeException $exception)
                                    {
                                        
                        // Informational log only
                                    
                        }
                                    
                        $app->enqueueMessage(JText::sprintf('COM_GSKI_ARTICLE_NON_ENREGISTRE_ERREUR_PLUGINS',implode(', '$object_file->getErrors())),'ERROR');
                                    return 
                        false;
                                }

                                if (!
                        $article->store()) {
                                    
                        $app->enqueueMessage($article->getError());
                                    return 
                        FALSE;
                                }

                                
                        // Trigger the onContentAfterSave event.
                                
                        $dispatcher->trigger('onContentAfterSave', array('com_content.article', &$articletrue));

                                return 
                        true;
                            } 
                        Dernière édition par roland_d_alsace à 07/05/2018, 14h36
                        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                        Rejoignez le Joomla Users Groupe Alsace...
                        roland_d_alsace va-t-il devenir roland_du_grand_est ?

                        Commentaire


                        • #13
                          Je ne suis pas encore développeur, mais merci pour le bout de code. Je suis un bon bidouilleur, rien de plus.
                          Et attention, je ne dis pas que Spip est meilleur que Joomla, je dis juste que sur l'export du com_content, joomla est galère. Le but de la discussion n'est pas de savoir comment programmer l'export, mais juste de savoir si la version 4 allait simplifier la démarche...

                          Quand à cms2cms, c'est une solution payante, donc pas intéressante pour moi. J'ai pu avoir une licence de SP transfert, et c'était très bien (à qqs bug prés).

                          Merci à vous.

                          Commentaire


                          • #14
                            meme proble que moi

                            Commentaire


                            • #15
                              Envoyé par christophe31 Voir le message
                              Quand à cms2cms, c'est une solution payante, donc pas intéressante pour moi. J'ai pu avoir une licence de SP transfert, et c'était très bien (à qqs bug prés)....
                              Ne pas oublier J2XML (cité par Robert en début de conversation) qui fait très bien le travail aussi pour les menus/articles/catégories/utilisateurs/.. en version gratuite.https://www.eshiol.it/joomla/j2xml/j2xml-3.html

                              Pascal
                              christophe31 likes this.
                              JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

                              If anything can go wrong, it will...
                              If I can help, I will ..https://conseilgouz.com

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X