THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Prefixer les tables

(15-01-2007 23:49:08)


Salut !

je vous propose une petite modification pour le futur module d'install : il faudrait pouvoir choisir de donner (ou pas) un préfixe aux tables générées thelia.

Ex : Avec le prefixe "th_" par exemple la table "administrateur" deviendrait "th_administrateur"

Cela permettrait de faire cohabiter au sein d'une même base Thelia et d'autres applications (blog, stats, etc...) sans que leurs tables ne se télescopassent (ouille! )


www.xcesslab.com
www.eco20.com

  • yoan
  • Cofondateur Thelia

Offline

#2 Re: Prefixer les tables

(16-01-2007 08:54:53)


tout à fait je prends ça en compte.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#3 Re: Prefixer les tables

(01-01-2008 23:27:58)


J'essaye de préfixer les tables à la main, mais je n'y arrive pas. J'ai préfixé les tables dans la BDD avec "th_". J'ai modifié le fichier Cnx.class.php à la ligne 40 : var $table = 'th_.$table
J'ai des messages d'erreur. J'ai alors également modifié Requete.class.php ligne 36 de la même façon, mais toujours des erreurs sql. Sans doute n'est-ce pas la bonne méthode, mais alors que faire ?

  • manu
  • faï tot petar miladiu

Offline

#4 Re: Prefixer les tables

(02-01-2008 15:33:14)


j'ai essayer de chercher de mon coté voila ce que j'ai fait :
- j'ai préfixé toutes les tables avec "th_" comme vous l'avez fait de votre coté.

- j'ai modifié toutes les fichiers du dossier classes dans lesquesl on trouve var $table="nomdelatable" par var $table="th_nomdelatable" et je n'ai pas touché aux fichier Cnx.class.php et Requete.class.php

- j'ai changer les requets dans accueil.php se situant dans le dossier admin il faut modifier :
          Ligne 110 vous devez avoir ca : SELECT sum(th_venteprod.quantite*th_venteprod.prixu) as ca FROM th_venteprod where commande in ($list)

          Ligne 114 : SELECT sum(port)as ca FROM th_commande where id in ($list)

         Ligne 119 : SELECT sum(remise)as ca FROM th_commande where id in ($list)

Après ces modifications y a pas mal de chose qui marche mais il reste des erreurs dont j'ai un peu de mal à trouver comme les imaes par exemples ca les enregistres dans la table, ca les upload mais ca les affiches ni dans le BO ni dans le catalogue du site.

Voila je pense que j'ai ouvert une piste de réfléxion, il faut tester sur des thelia de test. Il y a surement d'autres erreurs j'ai pas testé par exemple avec les déclinaisons et caractéristiques

Ca fait pas mal de modification directement dans le code de thélia et je suis pas sur que ca colle avec le philosophie de développement de thélia (peut etre que yoan me contredira :p)


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • manu
  • faï tot petar miladiu

Offline

#5 Re: Prefixer les tables

(03-01-2008 14:50:47)


J'ai travaillé un peu plus dessus, j'ai pu tester les déclinaisons et caractéristiques grâce au nouveau template fourni sur le blog et tout marche.

Concernant les images la je sais pas trop d'où ca vient, tout les templates avec lesquels j'ai travaillé pour la boucle image j'avai ca (c'est aussi ce qu'il y a dans le template de base) :

<THELIA_img type="IMAGE" num="1" produit="#ID" largeur="300">
                 <a href="#" onclick="window.open('imgpop.php?ref=#PRODUIT_REF&id_image=#ID', '', 'toolbar,width=600,height=840')">
                <img src="#IMAGE"  alt="#PRODTITRE" title="#PRODTITRE" border="0" class="contourImage"  id="photozoom" /></a>          
                </THELIA_img>

donc avec cette boucle rien ne s'affiche il y a juste le texte alternatif au cas où l'image ne s'affiche pas et en fait j'ai changer cette boucle pour obtenir :

<THELIA_IMAGE type="IMAGE" num="1" produit="#ID"  largeur="300">       
                <a href="#FICHIER" rel="lightbox" title="">
                    <img src="#FICHIER"  alt="#PRODTITRE  " title="#PRODTITRE  " border="0" class="contourImage4" id="photozoom"/>
                </a>   
                </THELIA_IMAGE>

et là les images s'affichent.

Maintenant si vous voulez préfixer vos tables, il faudra aussi modifier les plugins que vous avez installés (par exemple avec le nouveau template offert, j'ai modifié le plugin MVENTES pour qu'il soit fonctionnel).

Ces modifications ne font pas parti du thelia d'origine donc a chaque mise à jour de celui-ci il se peut que vous ayez des soucis car pas les mêmes tables donc la mise à jour sera plus longue car il faudra reprendre les fichiers pour vérifier le nom des tables et les changer si besoin.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • manu
  • faï tot petar miladiu

Offline

#6 Re: Prefixer les tables

(03-01-2008 18:34:25)


J'ai trouvé d'où venait mon problème à propos de la boucle et à vrai j'ai un peu honte de moi :s, j'avai tout simplement oublié d'installer l'extension GD pour PHP. C'est à cause de ça aussi que je ne voyai pas les images dans le BO.

Donc c'est bon en fait il y a juste les modifications à faire indiquer dans mon premier post et dans les plugins que vous avez installé comme dit précédemment.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline

#7 Re: Prefixer les tables

(04-01-2008 10:08:47)


Super. Merci.

Offline

#8 Re: Prefixer les tables

(28-04-2008 12:33:24)


Bonjour ...
je suis la dedans aussi ...

j'ai modifié l'install de manière à automatiser la création des tables avec le préfixe ...
par contre je ne sais pas trop comment attaquer la partie requete ...

j'ai essayé de modifier requete class pour inclure le suffixe mais je vois pas trop comment faire ...

je suppose que le request class  contient toutes les possibilités de requetes du site ?


voila ma demarche : modification des pages
repertoire installation
choixbase.php : ajout de la ligne   65        <input type="hidden" name="suffixe" value="<?php echo $_SESSION['suffixe']; ?>" />

verificationdesdroits.php: ajout de la ligne :
13    $sql = ereg_replace("suffixe_", $_SESSION['suffixe'], $sql);   


modification du fichier sql, j'ai ajouté suffixe_ devant tous les noms de table

enfin 
configuration.php
ligne 14         $fic = ereg_replace("suffixe_des_tables", $_SESSION['suffixe'], $fic);   

la ligne modifiée est aussi rajoutée dans le fichier cnx.classe.php.orig


j'en suis la ....

la creation des bases se fait correctement , mais je ne sais pas par ou attaquer pour modifier le nom des tables dans le code ... a part tout renommer a la main mais une automatisation serait plus appropriée...

sauf qu'apparemment il y'a des requetes directement dans les pages donc il faudrait pouvoir les modifier à l'install ....