Merci à Simon qui, en me posant la question de savoir si je connaissais une méthode pour créer un quickstart à la manière des auteurs de templates, avec ses propres exemples, m'a amené à chercher et trouver une solution !

Bien sûr, la première idée a été de proposer Akeeba backup, mais déployer une telle sauvegarde conserve les infos d'accès des utilisateurs originels, dont le super utilisateur, ce qui n'est pas la meilleure idée à mon sens.

Sur le net, j'ai trouvé deux sites expliquant comment faire pour créer un quickstart, mais leurs explications, si elles m'ont mis sur la voie, ne m'ont pas totalement convaincu. Pour avoir péniblement créé de tels packs il y a quelques années, lorsque j'avais traduit les articles et les autres exemples de la version 1.6, je savais bien qu'il fallait générer un fichier SQL du même type que ceux d'exemples livrés avec les packs d'installation standard de Joomla! afin de compléter les données installées par défaut. Je me suis donc aussi inspiré du pack "brochure Joomla!" pour prévoir comment exporter les données dans un fichier d'exemples spécifique.

La procédure que j'ai suivie est donc celle-ci, procédure modifiée après tests complémentaires :

  • Installation d'une version neuve de Joomla! (avec GetJoomla FR pour accélérer la procédure), avec un super utilisateur qui ne devra plus l'être lors de l'installation du quickstart, et les exemples "brochure" dans cet essai ;
  • En fin d'installation, je n'ai pas supprimé mais seulement renommé le dossier "installation" afin de pouvoir lui redonner son nom d'origine dans le quickstart, sans devoir recopier le même dossier depuis le pack standard de même version ;
  • Installation des extensions souhaitées, en l'occurrence JCE 2.6.7.1, Akeeba backup5.2.5, Acymailing 5.6.1 et Kunena 5.0.5 (versions gratuites) ainsi que le template gratuit JoomSpirit 123 ;
  • Je n'ai fait aucun paramétrage de ces extensions ni utilisation d'Akeeba backup afin de ne pas embarquer de données inutiles lors de la création du fichier de données ;
  • Vérification de l'absence de fichiers dans les dossiers "cache" en dehors des index.html, sinon, supprimer ces fichiers de cache ;
  • Copie de l'ensemble des dossiers et fichiers du site d'origine vers un nouveau dossier, ou simplement conservation du dossier d'origine ; on redonne le nom "installation" au dossier d'installation précédemment renommé ;
  • Il restait alors à exporter les données et créer un ficher SQL d'exemples. La méthode a été celle-ci :
    • Ouverture de la base de données avec phpMyAdmin, sélection de la base pour affichage de ses tables ;
    • Clic sur le bouton "Export" et passage en mode personnalisé ;
    • Sélection de l'envoi du fichier non compressé pour pouvoir le modifier ensuite directement ;
    • Sélection de toutes les tables ; désactivation des "clés étrangères" (par habitude) ;
    • Coche des paramètres "CREATE TABLE" et "IF NOT EXISTS" afin de pouvoir ajouter les tables des extensions complémentaires, "Vider la table avant d'insérer" et "INSERT IGNORE" (probablement inutile) pour l'insertion des données ;
    • Export demandé de la structure et des données ;
    • Validation de l'export.
  • Une fois ce fichier obtenu, ouverture dans notepad++ pour modifications :
    • Remplacement de toutes les occurrences du préfixe des tables par "#_" afin que les noms comme "np6rb_nom-de-la-table" deviennent "#__nom-de-la-table" (double trait de soulignement) ;
    • Recherche de la table "#__usergroup_map" et dans la partie "INSERT IGNORE INTO", remplacement du "8" correspondant au groupe "super utilisateur" par "2" correspondant à celui d'enregistré, afin que le créateur du site de départ ne soit plus autorisé à gégrer ce nouveau site ; on peut à l'inverse lui conserver son statut si on doit ensuite intervenir sur le nouveau site pour aider son responsable ;
    • Enregistrement de ce fichier sous le nom de "sample_demo_fr.sql" dans le dossier "installation/sql/mysql" et suppression des autres fichiers exemples, pour simplifier le choix de l'utilisateur ;
    • Ajout dans le fichier "installation/language/fr-FR/fr-FR.ini" de la ligne suivante, pour que le texte "Données exemple" soit proposé dans la page d'ajout des exemples :
      • INSTL_SAMPLE_DEMO_FR_SET="Données exemples"
      • INSTL_SAMPLE_DEMO_FR_SET_DESC=""Données exemples du site de démonstration"_QQ_"RobertG démo"_QQ_"""
  • Dernière étape : on compresse l'ensemble des dossiers et fichiers du site (pas son propre dossier, et en excluant le fichier configuration.php) pour créer le quickstart, et on teste sur le même serveur ou un autre afin de s'assurer qu'on n'a pas fait d'erreur.

Un problème est apparu avec Kunena : cette extension a mémorisé le chemin d'accès au template défini par défaut lors de son installation, ce qui provoque une erreur lors de l'affichage du forum sur le nouveau site, nécessitant de changer de template dans les paramètres de Kunena, ce qui ne me paraît pas normal. Je n'ai pas trouvé comment, sauf aller dans la base de données, corriger ce lien vers ce template.

La cause en était en fait la présence d'un dossier "cache/kunena/" que je n'avais pas remarqué. Une fois celui-ci supprimé, l'accès à l'accueil du forum fonctionne. Il faut donc s'assurer que les dossiers "cache" ne comportent plus que le fichier index.html

N'hésitez pas à me contacter si vous relevez des erreurs dans ma procédure !

Sur les serveurs mutualisés OVH, le nom de domaine principal doit toujours être placé dans le répertoire "www".

Que ce soit par l'utilisation de l'installation de Joomla! en "module OVH" ou par transfert d'un site préparé en local ou tout simplement du pack d'installation, l'erreur fréquente est de placer le contenu du site dans un sous-répertoire, par exemple "Joomla1.6", ce qui va obliger le visiteur à saisir l'adresse "http://www.monsite.tld/Joomla1.6" ou l'auteur du site à créer dans le répertoire "www" un fichier .htaccess redirigeant vers ce sous-répertoire, dont le nom apparaîtra ainsi dans la barre d'adresse du navigateur. Certains pensent que cela facilite l'indexation du site, si le nom de ce sous-répertoire correspond à un mot-clé important du site. Je n'en suis pas convaincu, c'est pourquoi je préconise de ramener tout le site dans ce répertoire racine "www" par une procédure très rapide.

Il faut donc tout simplement, avec un client FTP, déplacer par glisser-déposer tout le contenu de votre répertoire « Joomla1.6 » (pour conserver l'exemple précédent) vers « www », ou passer par net2ftp disponible depuis le Manager OVH, et utiliser la fonction « Déplacer ». Ceci ne va prendre que quelques secondes. Ce répertoire vide doit ensuite être supprimé, puisque devenu inutile.

Il est ensuite nécessaire de supprimer la référence à ce sous-dossier dans les valeurs des chemins d’accès aux répertoires « logs » et « tmp » du fichier « configuration.php », soit à la main (en prenant bien soin d'enregistrer le fichier en UTF-8 NO BOM), soit avec MoovJla.php : le site sera alors fonctionnel directement sur l’adresse du nom de domaine.

À cette adresse, vous trouverez un utilitaire permettant de créer un nouveau mot de passe pour un compte existant de super-administrateur :

http://www.joomlafrance.org/Les_News/Addon_et_Hack/Retrouver_son_mot_de_passe_administrateur_de_Joomla.html

Il est également possible d'intervenir directement dans la base de données en passant par phpMyAdmin.

Il faut sélectionner et éditer le compte présent dans la table "jos_users" (si le préfixe de table a été fixé à "jos_"), puis, sur la ligne "password", sélectionner le cryptage MD5 et entrer le nom du nouveau mot de passe en clair. Il suffit alors de cliquer sur le bouton "Exécuter" pour que ce nouveau code soit attribué au super administrateur.

passe

Autre solution encore plus simple : utiliser la fonction "mot de passe oublié" depuis le formulaire d'identification du site, si elle est activée.

Si votre hébergeur vous permet la création de sous-domaines (ce que me permettaient les différents comptes mutualisés sur lesquels j'ai pu tester, chez PHPNET, OVH et 1and1), l'important à mon sens est de bien utiliser ce que permet l'hébergeur, à savoir l'isolement complet du site principal et des sous-domaines.

  • le site principal doit être dans son propre répertoire : obligatoirement "www" chez OVH s'il s'agit du nom de domaine principal lié au pack d'hébergement, dans un sous-répertoire du répertoire racine, défini par l'utilisateur, chez PHPNET et 1and1
  • chaque site en sous-domaine doit être placé dans son propre dossier au même niveau que celui du nom de domaine, ceci permettant d'interdire un accès au sous-domaine avec une adresse du type "mon-nom-de-domaine/dossier-du-sous-domaine" et ne permettre d'ouvrir le sous-domaine que par son propre nom
  • selon l'hébergeur, le lien à faire entre le nom du sous-domaine et le dossier contenant le site sera déterminé à un moment différent, mais il est de toutes manières toujours nécessaire d'avoir au moins créé le dossier avant de tenter ce lien :
    • chez PHPNET, c'est à la création du nom de sous-domaine que le lien se fait avec son répertoire (liste déroulante ou saisie manuelle selon le type de compte d'hébergement)
    • chez OVH, c'est également à la création que ce lien se fait, par saisie manuelle (remplacer "www" par le nom du dossier du site)
    • chez 1and1, cela demande deux étapes : créer le nom du sous-domaine, qui le lie par défaut à la racine, puis sélectionner ce nom dans la liste des domaines et cliquer sur le bouton de menu "Destination" ->"Modifier la destination : selon qu'il y a beaucoup de dossiers ou pas, il faudra soit saisir à la main le nom du dossier de destination du sous-domaine, soit le sélectionner dans une liste déroulante.

Dans tous les cas, il faut attendre quelques instants pour que le lien entre le nom et le répertoire du site soit bien interprété et qu'il soit donc possible d'accéder au site en question.

Le mail de confirmation de commande adressé au client et dont le double parvient à l'administrateur comporte une ligne qui est un lien vers la page de détail de commande, sur le site.

Or l'adresse transmise ne comporte pas le début de l'url et ne commence que par "index.php" ou "index2.php", la variable "SECUREURL" n'étant pas ajoutée (constaté avec Joomla! 1.5.9 et VM 1.1.3).

Pour corriger cette erreur, suivre les instructions ci-dessous (origine : http://forum.virtuemart.net/index.php?topic=47313.msg164762#msg164762 ) :


Fichier:

administrator/components/com_virtuemart/classes/ps_checkout.php

lignes 1803-4:
Avant :

$shopper_order_link = $sess->url( SECUREURL ."index.php?page=account.order_details&order_id=$order_id", true, false);
$vendor_order_link = $sess->url( SECUREURL ."index2.php?page=order.order_print&order_id=$order_id&pshop_mode=admin", true, false);

Après :

$shopper_order_link = $sess->url( SECUREURL ."index.php?page=account.order_details&order_id=$order_id", true, false, true);
$vendor_order_link = $sess->url( SECUREURL ."index2.php?page=order.order_print&order_id=$order_id&pshop_mode=admin", true, false, true );