Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Resolu] "Dupliquer" des éléments d'un site vers un autre ?
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.2
#~ Nom de l'hébergeur : ovh
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~


Arg ca "clot" trop vite sur ce forum :o Smile
Donc une question liée au cas concret de la création de sites en plusieurs versions.


Je me pose la question de savoir quoi copier-coller d'un site A, pour aller vers un site B et C, une fois qu'on considère que des éléments communs existent entre ces 3 sites A, B et C. Eléments communs et notamment :
- les contenus des sites (ou en tous cas les structures des menus)
- le design du site


Pour les contenus, l'export du champ "xxx_content" de la base du site A pour l'importer dans B ou C.
Est-ce la bonne démarche ? Y aurait-il d'autres choses à faire ?

Pour le design : copier-coller des répertoires :
- /admin/themes , /images et /upload ?


C'est ça ? Ou bien erreur ou oublis ? Par avance merci Smile
#2

stephan53 a écrit :Pour les contenus, l'export du champ "xxx_content" de la base du site A pour l'importer dans B ou C.
Est-ce la bonne démarche ? Y aurait-il d'autres choses à faire ?


C'est ça ? Ou bien erreur ou oublis ? Par avance merci Smile

Pas suffisant apparemment : j'ai qq menus qui sont bien présents, mais comme "tronqués". Il manque aussi des bouts de textes...
#3

plein de solution. Tout dépend de ce que tu veux dupliquer et en quelle quantité

-copier/coller depuis le panneau d'admin de chaque site : pratique, rapide, tant qu'on ne dépasse pas les quelques éléments à dupliquer

-script SQL depuis phpmyadmin : puissant autant que dangereux. pratique pour des larges duplication de donnée mais pas pratique pour quelques points précis ou pour de la mise à jour ponctuelle de quelques éléments. Dangereux dans le cas de clé étrangères qui ne seraient pas correspondante dans une autre table. (Connaissances en SQL requises !!)


Pour tout ce qui n'est pas en base de donnée : != contenu / texte / css / ... il faut passer par FTP

répertoire d'origine -> répertoire cible

un script php spécialement développé pourrait éventuellement être utilisé pour copier en masse les données d'une liste de répertoire vers leur cible, pratique durant une phase de dev ou de test en local. Par contre ca nécessite un poil de connaissance en php
#4

bess a écrit :-copier/coller depuis le panneau d'admin de chaque site : ...

Comment ca peut se faire ça ? Autant les duplications/copies, ca va, mais pour passer ça sur un autre site ?
#5

t'ouvre 2 navigateurs différents ouvert chacun sur un site.

tu ouvres la page toto, Crtl+A Crtl+C
tu ouvres la page toto de l'autre site Crtl+V
tu enregistres

ca marche aussi pour le CSS, les UDT, les contenus globaux, les gabarits, ....
#6

"Ca enregistre"...

Dans le navigateur, oui. Mais dans les fichiers sources ? (qq chose m'échappe je crois) Smile
#7

Je relis le tuto sur Firefox, je pense que ca va m'aider pas mal aussi... Wink
#8

je pense oui.

tu as bien compris que tout ce qui était CSS, les UDT, les contenus globaux, les gabarits, news, pages, ... TOUT ÇA est stocké en base de donnée dans cmsms ?

la copie / collage ne fait ce transporter d'un site à un autre le contenu des formulaires de saisit

bref tu dupliques manuellement le contenu d'une page de ton site A vers une page existante de ton site B

mais comme t'as pas été des plus clairs dans ta demande initiale je suis sur et certain que je te répond à côté de la plaque Smile
#9

Je pense dans tout ça que le principal c'est de savoir à quoi correspondent les champs dans les BDD créées par CMSMS, je me trompe ?

En tous cas j'ai tenté un import du champ "xxx_content" vers "yyy_content" (après avoir préalablement vidé mon champ "yyy_content") -> résultat mitigé. J'ai perdu des boutons du menu (et donc à l'affichage, des pages), et autre chose visiblement les caractères à accent posent probleme, car mes pages dont le titre ou le texte du menu comporte un accent s'arrêtent à la lettre qui précède cet accent.
(Ca me fait pour illustrer une rubrique "D" au lieu de "Découvrir".)

Du coup j'ai revidé mon champ "yyy_content" nouvellement rempli, je l'ai re-rempli avec son ancien contenu, et curieusement je garde mes nouveaux paramètres... (les menus tronqués, etc...)


Bref je pense que ce champ "xxx_content" (ou "yyy_content" ou "zzz_content" ) n'est pas le seul qu'il faudrait que j'importe. Il y aurait qq part un descriptif succint de tous les champs de la base de données sous CMS MS ?
#10

Il te manque la duplication de content_props pour le contenu des pages.
xxx_htmlblobs contient les blocs de contenu globaux (attention, il y a un _crossreference à peut-être modifier)
xxx_userplugins contient les udt ou balises utilisateur (codes php).
xxx_module_templates contient les template (dont les menus).

stephan53 a écrit :car mes pages dont le titre ou le texte du menu comporte un accent s'arrêtent à la lettre qui précède cet accent
Attention que, lors de l'import, le codage soit respecté : é doit rester é et que les tables dupliquées soient dans le même encodage.
Il ne faut pas copier-coller du site vers la base de données.
Vérifier également que les alias et les urls ne comportent pas de caractères réservés ou espaces.
#11

Maintenant, que veux-tu dire par
Citation :Donc une question liée au cas concret de la création de sites en plusieurs versions.
Si c'est uniquement pour changer l'apparence, il te suffit de modifier les css.
http://forum.cmsmadesimple.org/index.php...792.0.html
http://www.kelvinluck.com/2006/05/switch...th-jquery/
#12

Jean le Chauve a écrit :Il te manque la duplication de content_props pour le contenu des pages.
xxx_htmlblobs contient les blocs de contenu globaux (attention, il y a un _crossreference à peut-être modifier)
xxx_userplugins contient les udt ou balises utilisateur (codes php).
xxx_module_templates contient les template (dont les menus).

Merci beaucoup, c'est l'information que je recherchais... Smile


Jean le Chauve a écrit :
stephan53 a écrit :car mes pages dont le titre ou le texte du menu comporte un accent s'arrêtent à la lettre qui précède cet accent
Attention que, lors de l'import, le codage soit respecté : é doit rester é et que les tables dupliquées soient dans le même encodage.
Il ne faut pas copier-coller du site vers la base de données.
Vérifier également que les alias et les urls ne comportent pas de caractères réservés ou espaces.

Ce que j'avais fait : un export (en distant) de la table (du site A), que j'ai enregistré sur mon ordi dans un fichier texte, puis fichier texte que j'ai exporté vers la même table (du site B), après l'avoir préalablement vidée de son contenu.
Mauvaise méthode ?



Sinon pour expliquer le pourquoi de ma démarche : je crée un site de type "demo", en 3 versions, pour une mairie.

Donc oui il y a aussi un template à changer pour chaque (mais ce n'est pas ça qui me soucie, à priori je sais comment faire fonctionner les gabarits sous CMSMS), mais il y a surtout une structure différente de l'arborescence des pages du site (pour simplifier : du site "basique" vers un site de plus en plus complexe, avec plus de pages, de rubriques,..).

D'où malgré tout au départ une même base : c'est cette base que je veux pouvoir recopier d'un site à l'autre (cad les menus et les pages de bases).
#13

Citation :c'est cette base que je veux pouvoir recopier d'un site à l'autre (cad les menus et les pages de bases).

donc la méthode de Jean le Chauve sera la meilleure.

par contre personnellement j'opte pour une copie de sql hors phpmyadmin ce qui m'évite bien des soucis d'accent. Je sais que c'est pas toujours possible mais autant que faire ce peut je passe par un export sql depuis Unix (connexion SSH) lorsque j'importe des masses de données.

j'ai eu trop de soucis pour repasser par phpmyadmin :]
#14

Les menus, css et templates, il n'y en a pas beaucoup, copie-les plutôt d'admin en admin.
Citation :Ce que j'avais fait : un export (en distant) de la table (du site A), que j'ai enregistré sur mon ordi dans un fichier texte, puis fichier texte que j'ai exporté vers la même table (du site B), après l'avoir préalablement vidée de son contenu.
Mauvaise méthode ?
Si tu utilises phpmyadmin, fais directement un copier-coller par "exporter" en ne cochant pas "transmettre" pour éviter de passer par un fichier texte (qui a peut-être modifié l'encodage).
#15

Jean le Chauve a écrit :Si tu utilises phpmyadmin, fais directement un copier-coller par "exporter" en ne cochant pas "transmettre" pour éviter de passer par un fichier texte (qui a peut-être modifié l'encodage).
C'est bête mais je bute sur l'importation dans Mysql. A part importer un fichier texte (avec les soucis d'encodage que ça me crée actuellement), je ne sais pas comment importer encore plus directement (cad copier-coller le contenu de ma table A vers la table B)... Honte à moi !
#16

Il m'arrive des trucs bizarres dans mes import-export (via des fichiers textes, car pour le moment je ne vois pas d'autre méthode) dans phpmyadmin :


Un exemple :
(J'ai mes tables A_xxx et mes tables B_xxxx.)

Si je vide B_content_props et que j'y importe A_content_props, je me retrouve avec... B_content_props_seq !??!


(J'ai bien vérifié mes textes prêt à l'import, il n'y a pas d'erreur dans les titres - ni dans les contenus)
#17

Tu te places dans la table à exporter.
Tu cliques exporter (sql + ne pas cocher transmettre)
Une fenêtre s'ouvre.
CtrlA Ctrl C du code.
Tu vas dans la bd qui doit recevoir l'import.
Tu cliques sur l'onglet SQL et tu colles.
#18

Jean le Chauve a écrit :...
Tu cliques sur l'onglet SQL et tu colles.
Cet onglet donne un champ pour des requêtes !
#19

Et ce n'est pas une requête ?
#20

Non, je veux (très concrètement) recopier mes pages ainsi que les textes mis dedans...
Il faut donc le contenu intégral des champs concernés (arrêtez-moi si je dis une bêtise...)
#21

Et donc tu appliques l'opération que je t'ai donnée avec cms_content et cms_content_props. Un import est un INSERT qui est une requête sql.
#22

Non je suis désolé je lâche cette méthode. Je viens de repasser par mes imports de fichiers textes, je préfère (car je comprends)


Quand j'importe mon fichier texte issu du champ xxx_content (modifié car ce qui est en "xxx_" doit devenir en "yyy_") :

- j'ai bien un duplicata de ma structure de menus
- toujours mon probleme d'accents, qui tronque la suite de mes menus où un accent apparaît
- je n'ai pas mes contenus des pages (donc ils sont je suppose dans un autre champ)


J'ai testé plus tôt mes imports de :
xxx_content_props
xxx_content_props_seq

Sans résultat conséuqent, ça nne change rien à me pages (d'ailleurs en regardant les contenus de ces champs, ils sont identiques dans xxx ou yyy)
#23

le contenu est dans le champ content_en de _content_props. Déjà expliqué plus haut.
#24

Ok, ca marche en effet. Merci...
Me reste le soucis des caractères...

"Attention que, lors de l'import, le codage soit respecté : é doit rester é et que les tables dupliquées soient dans le même encodage."


Après une petite recherche je n'ai aucun caractère é dans mes tables xxx_... exportées.
Par contre j'ai bien des è, é, etc...
Donc je suppose que c'est lors de mon export que je dois veiller à ça ? Que dois-je faire concrètement ?
#25

Jean le Chauve a écrit :Tu te places dans la table à exporter.
Tu cliques exporter (sql + ne pas cocher transmettre)
Une fenêtre s'ouvre.
CtrlA Ctrl C du code.
Tu vas dans la bd qui doit recevoir l'import.
Tu cliques sur l'onglet SQL et tu colles.
et tu ajoutes drop table, sinon, il ne voudra pas.
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)