Vue que l'accès à ma Big Base de Photos est lent,
je vais mettre en place 6 fois le script PWG (phpwebgallery1, 2, 3, etc..) avec 6 bases SQL ou peut-être changer de préfixe à l'installation des tables, et de répartir mes photos sur les 6 galleries.
Lorsqu'un utilisateur s'inscrit sur un des site, il faudrait qu'il puisse accéder aux autres sites sans qu'il se réinscrive.
Es-ce qu'il existe une méthode, il me semble que cela peut se faire mais comment.
Pour Rub, j'espère que je ne vais pas me faire gronder hi !!! (voir http://forum.phpwebgallery.net/viewtopi … 870#p70870)
Merci.
Dernière modification par patnoe (2007-09-14 20:03:40)
Hors ligne
Sur 6 prefixes différents de tables.
Mais une seule base.
Cela sera faisable.
Mais les perfs: pas certain que tous les problèmes soient réglés pour autant.
8-)
Hors ligne
Ou bien je reste sur ma 1ère idée de créer 6 bases SQL, j'inscris mes utilisateurs sur le 1er site et ils s'inscrivent sur les sites qui les intéressent.
Mais je souhaiterai tout de même connaitre la méthode de mise en oeuvre avec les différents changement de préfixe des tables.
Hors ligne
Dans 5 installations, on modifiera le ./include/constant.php
Et pour les tables ci-dessous on modifiera le préfixe pour pointer sur le préfixe de l'installation maître.
define('USERS_TABLE', $conf['users_table']);
define('USER_INFOS_TABLE', $prefixeTable.'user_infos');
define('USER_FEED_TABLE', $prefixeTable.'user_feed');
define('USER_MAIL_NOTIFICATION_TABLE', $prefixeTable.'user_mail_notification');
Je pense que cela devrait marcher, je n'ai rien testé.
8-)
Hors ligne
si j'ai bien compris il faut changer $prefixeTable par le préfixe phpwebgallery2, 3, 4, 5
pour chaque site : dans constant.php voir ci-dessous :
exemple pour la table N°2
// Table names
define('CATEGORIES_TABLE', phpwebgallery2.'categories');
etc...
sauf les lignes pour pointer vers le N° 1 par le préfixe phpwebgallery1
define('USERS_TABLE', $conf['users_table']);
define('USER_INFOS_TABLE', phpwebgallery1.'user_infos');
define('USER_FEED_TABLE', phpwebgallery1.'user_feed');
define('USER_MAIL_NOTIFICATION_TABLE', phpwebgallery1.'user_mail_notification');
VDigital : un des compte est toujours ouvert sur mon site, tu peux tester.
Hors ligne
Comme les variables phpwebgallery2.' n'existent pas: Cela ne m'archera pas.
Ce n'est pas comme ça qu'il faudra l'écrire:
Pour tous les sites
define('CATEGORIES_TABLE', $prefixeTable.'categories');
//etc...
// sauf les lignes pour pointer vers le N° 1 avec un nom en DUR !!!!
define('USERS_TABLE', 'phpwebgallery1_users');
define('USER_INFOS_TABLE', 'phpwebgallery1_user_infos');
define('USER_FEED_TABLE', 'phpwebgallery1_user_feed');
define('USER_MAIL_NOTIFICATION_TABLE', 'phpwebgallery1_user_mail_notification');
Hors ligne
J'ai fait les modifs comme tu les a écrit, et cela fonctionne, la recopie des utilisateurs se fait correctement.
//En laissant la ligne suivante seule en dur et les autres en variables, même fonctionnement à vérifier
define('USERS_TABLE', 'phpwebgallery1_users');
//Les groupes seront identiques dans les 6 sites j'ai mis en dur
define('USER_GROUP_TABLE', 'phpwebgallery1_user_group');
J'ai compris le principe du constant.php
Le plug-in : "Additional Pages" me permettra de créer des liens et commentaires pour accéder sur les autres pages,
j'espère obtenir un gain de vitesse d'exécution.
Il suffit de faire un test sur l'ensemble avec une monter en charge progressive.
Merci.
Patrice
Hors ligne
patnoe a écrit:
//En laissant la ligne suivante seule en dur et les autres en variables, même fonctionnement à vérifier
define('USERS_TABLE', 'phpwebgallery1_users');
//Les groupes seront identiques dans les 6 sites j'ai mis en dur
define('USER_GROUP_TABLE', 'phpwebgallery1_user_group');
Que _users ? Non... Il change la personnalisation... Alors c'est la même partout => _user_infos
Après _user_feed et _user_mail_notification cela se discute.
Quant à _user_group si tu le fait comme ça, alors également faire _groups...
8-)
Hors ligne
Voilà les changements que j'ai apporté dans constant.php
Recopie de la config, group, user, infos, toujours idem pour les 6 sites, pour le reste Feed et Notification je ne sais pas.
//les modifications
define('CONFIG_TABLE', 'phpwebgallery1_config');
define('USER_GROUP_TABLE', 'phpwebgallery1_user_group');
define('USERS_TABLE', 'phpwebgallery1_users');
define('USER_INFOS_TABLE', 'phpwebgallery1_user_infos');
Hors ligne
Attention,
- a ce jour (1.7), les seules tables qui sont safe a partager est USERS et USER_INFOS ...
- partager USER_FEED_TABLE n'a pas de sens (de toute maniere il y aura 6 flux differents avec 6 url differents)
- partager USER_MAIL_NOTIFICATION pose probleme - 6 bases veut dire 6 mails differents et cette table contient une seule fois last_send
- le partage de USER_GROUP_TABLE et GROUPS_TABLE pose probleme a l'effacement d'un group. Il faut aller sur les 5 autres tables et effacer les lignes correspondantes au groupe de la table GROUP_ACCESS_TABLE. En plus ajouter/virer un membre au/du groupe demande de invalider le cache de permissions pour les autres 5 installations.
Dernière modification par rvelices (2007-09-14 23:45:07)
Hors ligne
Au départ, je n'avais proposé que:
USERS
USER_INFOS
USER_FEED_TABLE
USER_MAIL_NOTIFICATION
Mais à la réflexion, tu as raison (comme d'hab 8-) ).
USERS
USER_INFOS
Point final !
Full stop !
Au delà, point de salut!
Salut.
8-)
Hors ligne
Dans mon idée de partage, je ne pensais pas faire de la sorte.
Je voulais le faire sans modification du source de PWG.
Je m'explique:
o il faut une base de données unique appelé BDD
o avoir une première galerie PWG sur BDD avec pwg_ comme prefixe de table (à choisir lors de l'installation), on l'appelle galerie principale
o avoir x galeries PWG sur BDD avec pwg_00x_ comme prefixe de table (à choisir lors de l'installation), on les appelle galerie1, galerie2, ....
o la galerie principale supporte les utilisateurs et ne propose que des liens vers les galeries galerie1, galerie2, .... (cf la demo)
o pour chacunes des galeries x, on modifie le config_local.inc.php pour aoujter:
$conf['users_table'] = 'pwg_'.'users';
o on a donc x+1 sites qui utilise la même base utilisateurs mais qui sont indépendantes
Et tout ca, c'est fait sans bidouille de constantes, etc...
Par contre, pourquoi pas dans la 1.8 donner la possibilité de partager d'autres tables (info, etc...).
Mais uniquement en paramètrant les tables et sans paramètrer les champs comme pour la table #_user.
Ps: Pour les pbs de synchro, penses à diviser ton répertoire galerie en plusieurs site (répertoire)
Hors ligne
100% d'accord.
Mais je pensais qu'en attendant, il était important de partager au moins user_infos en plus de users.
On le fera bien entendu pour la 1.8
8-)
Hors ligne
J'ai fait les BDD suivantes
la galleries-1 avec préfixe phpwebgallery1
la galleries-2 avec préfixe phpwebgallery2
etc...
dans la galleries-2
mis constant.php sans modif
avec localfiles editor j'ai rajouté
$conf['users_table'] = 'phpwebgallery1_users'
aucune recopie des users
Ou est l'erreur
Actuellement je fonctionne à nouveau avec le constant.php modifié
Pour Rub, VDigital et Rvelices même login et passe
site idem sauf archives devient archives-1
Hors ligne
Tu me redonnes les accès par email...
Je ne conserve rien des accès (je fait des confitures)...
8-)
PS: La soulitin de Rub ne recopie rien... Mais le partage de user_infos n'est pas compris.
La solution dans ton cas, à ce jour est meilleure.
8-)
Hors ligne