Udt Gallery et Uploads -
Rams51 - 09/10/2012
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonsoir,
Voila je revient avec ce même besoin et question
Quand un membres uploads coté frontend un fichiers avec le module Uploads il y a le nom de l'image, le titre et la description.
Je souhaiterai que c 'est informations soit remplie en même temps dans ça galerie qui est a sont nom avec titre et description qu'il a remplie dans la page uploads du module uploads.
Voila mon premier udt qui fonctionne bien.
Code :
[== PHP ==]
$gCms = cmsms();
$propname="email";
#The name of an existing FrontEndUser property to assign to the new group.
#Could be a dummy property.
#If no property is assigned to the group there will be an error when trying to edit the group.
if (!cms_utils::get_module('Gallery')) {return 'Erreur Module';}
if (!cms_utils::get_module('Uploads')) {return 'Erreur Module';}
$feu = cms_utils::get_module('FrontEndUsers');
if (!$feu) {return;}
$uname = $params['name'] ? $params['name'] : $params['username'];
$uid = $params['id'];
if (!$uname || !$uid) {return '2';}
$result=$feu->AddGroup( "Groupe_" . $uname, "Groupe personnel de " . $uname);
if (!$result[0]) {return '3';}
$gid=$result[1];
if (!$feu->AssignUserToGroup( $uid, $gid)) {return '3';}
if (!$feu->AddGroupPropertyRelation( $gid, $propname, 1, -1, 1)) {return '4';}
$db =& $gCms->GetDb();
$category_id= $db->GenID( cms_db_prefix () . "module_uploads_categories_seq");
$category_name = "Album photos de" . $uname;
$category_desc = "Les photos de " . $uname;
$category_path = "images/Gallery/membres/album_" . $uname;
$category_listable = 1;
$category_deletable = 1;
$category_expires_hrs = 0;
$category_scannable = 1;
$query = "INSERT INTO " . cms_db_prefix() . "module_uploads_categories
(upload_category_id, upload_category_name, upload_category_description,
upload_category_path, upload_category_listable, upload_category_deletable,
upload_category_expires_hrs, upload_category_scannable, upload_category_groups)
VALUES (?,?,?,?,?,?,?,?,?)";
$dbresult = $db->Execute( $query, array (
$category_id,
$category_name,
$category_desc,
$category_path,
$category_listable,
$category_deletable,
$category_expires_hrs,
$category_scannable,
$gid));
if (!$dbresult) {return '5';}
$conf =& $gCms->GetConfig();
if (!mkdir( $conf['uploads_path'] . "/" . $category_path, 0755)) {return '6';}
( Si il peu être optimisé ou autre je ne suis pas contre )
Il créer un dossier et tout ce qui faut pour que mes nouveaux membres est sont dossier privée.
Ensuite voila un autre udt que j'avais trouvé sur .org mais il faudrait l'adapté pour que lorsque que un membre upload une photos avec un titre et une description celle-ci soit aussi enregistré dans gallery.
Code :
[== PHP ==]
$gCms = cmsms();
if (!$gCms->modules['FrontEndUsers']['object']) {return;}
if (!$gCms->modules['Uploads']['object']) {return;}
if (!$gCms->modules['Gallery']['object']) {return;}
$db =& $gCms->GetDb();
$gallery= $params['category'];
$filename = $params['name'];
$title = $params['summary'];
$comment = $params['description'];
if ( !ereg( "^membres/(.+)", $gallery, $capture) ) {return;}
$uname = $capture[1];
$query = "SELECT fileid FROM " . cms_db_prefix() . "module_gallery WHERE filepath='membres' AND filename='" . $uname . "/' LIMIT 1";
$parent_id = $db->getOne( $query );
if (!$parent_id) {return;}
$query = "INSERT INTO " . cms_db_prefix() . "module_gallery
(fileid, filename, filepath, filedate, fileorder,
active, defaultfile, galleryid, title, comment)
VALUES (0, ?, ?, NOW(), ?, ?, ?, ?, ?, ?)";
$dbresult = $db->Execute( $query, array (
$filename,
$gallery,
0,1,0,
$parent_id,
$title,
$comment));
Alors oui je demande beaucoup ou pas mais cette ensemble d'udt sur mon projet actuelle me serait d'un grand utile.
Donc je peu faire des testé et j'ai déjà essaye plusieurs modifie sur cette udt en fonction du premier est rien n'y fait dans gallery l'image est bien la mais aucun titre ni description dans les champs concerner.
Merci d'avance de l'aide pour la mise au point et propre de l'udt.
Udt Gallery et Uploads -
heriquet - 10/10/2012
Salut,
Avant d'aller plus loin, as-tu été regarder les différentes méthodes du module Gallery ?
C'est un peu chaud d'attaquer directement en SQL. S'il y a des fonctions pour gérer ces différents éléments, il faut passer par elles car elles contiennent toute la logique nécessaires.
J'ai regardé en diagonale : dans le module Gallery, il y a un dossier lib dans lequel tu trouveras un fichier class.Gallery_utils.php.
Il y a là dedans une fonction AddFileToDB.
Cherche peut-être de ce côté-là ou en tout cas dans le module pour voir comment on fait pour ajouter "proprement" ton image.
Autre chose :
Code :
[== PHP ==]
$gCms->GetDb();
ne peut plus être écrit comme ca. Remplace "$gCms" par "cmsms()"
Udt Gallery et Uploads -
heriquet - 10/10/2012
Pour t'aider à voir pourquoi le titre et la description n'apparaissent pas, vérifie que tes variables sont bien remplies en affichant leur contenu quelque part.
Udt Gallery et Uploads -
Rams51 - 10/10/2012
Bonjour,
Oui j'ai déjà repérer la fonction, je vais essayé dans la journée de revoir l'udt.
Je vais remplacer ce que tu ma dit aussi et normal que les udt soit chargé il date un peu quand je les ai trouvé sur le .org pour ça j'aimerai les faire fonctionne ensemble.
ça peu toujours servir
Udt Gallery et Uploads -
Rams51 - 10/10/2012
Le deuxième UDT c'est lui qui me pose beaucoup souci car il ne fonctionne pas du tout.
La suis complétement perdu et j'avance même plus.
Udt Gallery et Uploads -
heriquet - 10/10/2012
Avant d'aller plus loin, est-ce que la seconde UDT est exécutée au moment de l'upload d'une photo ?
Elle fait une erreur/pas ce que tu veux ou ne se lance carrément pas du tout ?
Udt Gallery et Uploads -
Rams51 - 10/10/2012
Donc le premier udt est accroché a l événement lorsque que un nouveau membre s'inscrit:
Création d'un groupe,
Mise en place de du propname commun qui est email,
Creation de la catégorie dans uploads avec le groupe personnel créer,
Création du dossier.
Donc en temps normal ensuite chaque membre a sont dossier et peu uploader des fichier dans sont propre dossier et chacun ne vois que sont dossier et sont contenu.
Pour le second udt j'ai tenté plein modification mais rien ne fonctionne.
Ce que je souhaite c 'est lorsque un membre upload une photo il peu mettre un titre et une description sur la formulaire upload.
J'aimerai que cela soit insérer dans table gallery dans le champs de l'image uploader.
J'ai aucune erreur mais j'ai mis des chiffre au niveau return est dés le premier return ça bloque.
Pour ça je fait appel a la communauté car me suis souvent débrouiller mais la je bloque totalement.
Udt Gallery et Uploads -
heriquet - 10/10/2012
est-ce que tu as vérifié que tes variables étaient remplies au moment ou tu les utilises dans l'UDT ?
C'est difficile de "debugger" en regardant le code.
Si tu veux, tu peux me passer un accès temporaire (un utilisateur admin "heriquet") le temps de regarder d'ou ca coince. On gagnera du temps tous les 2.
Udt Gallery et Uploads -
Rams51 - 10/10/2012
Alors oui j'ai vérifier a première vue elle reste vide.
Je sais que la debbugage est assez lourd j'en suis bien désoler.
Je t'envoie les informations necessaires
Udt Gallery et Uploads -
Rams51 - 11/10/2012
Bonsoir ou nuit,
Après longue journée a vouloir quand même trouver la réponse a cette udt qui peu être assez utile dans certaine utilisation.
Avec beaucoup aide et de piste lancé par Heriquet que je remercie.
J'ai trouvé est réussie a faire faire ce que je voulais de l'udt
Je vais remettre au propre et optimisé au mieux.
Le posterai ici
Bonne nuit.
Udt Gallery et Uploads -
heriquet - 11/10/2012
Bravo pour ta persévérance !
Udt Gallery et Uploads -
Rams51 - 11/10/2012
Donc voila après un certain temps passé l'udt qui fonctionne:
Code :
[== PHP ==]
$gCms = cmsms();
$modops = cmsms()->GetModuleOperations();
$uploads = $modops->get_module_instance('Uploads');
$gallery = $modops->get_module_instance('Gallery');
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->LoggedInID();
$db = cmsms()->GetDB();
$filepath = "membres/". $feu_user ."/";
$filename = $params['name'];
$title = $params['summary'];
$comment = $params['description'];
$query = "SELECT fileid FROM " . cms_db_prefix() . "module_gallery WHERE filepath='membres/' AND filename='" . $feu_user . "/' LIMIT 1";
$galleryid = $db->getOne( $query );
if (!$galleryid) {return 'Erreur galerie parent';}
$query = "INSERT INTO " . cms_db_prefix() . "module_gallery
(fileid, filename, filepath, filedate, fileorder,
active, defaultfile, galleryid, title, comment)
VALUES (0, ?, ?, NOW(), ?, ?, ?, ?, ?, ?)";
$dbresult = $db->Execute( $query, array (
$filename,
$filepath,
0,1,0,
$galleryid,
$title,
$comment));
Donc maintenant je voudrais juste savoir ce que je peu optimisé ou pas.
Je voulais utilisé la function que offre le module gallery mais alors c'est une autre histoire pas réussi a faire fonctionner.
Udt Gallery et Uploads -
heriquet - 11/10/2012
Vraiment pour chicaner...
Tu ne testes pas le résultat de $feu->LoggedInID();
=> s'il est vide, ca coince
Mais c'est vraiment pour chicaner hein
.
Udt Gallery et Uploads -
Rams51 - 11/10/2012
Pour chicaner... suis d'accord avec toi vais rajouté cela car ça peu ce produire.
Vue le temps passé a faire fonctionné et ben je peu bien optimisé cela
ça me permet d'apprendre car chaque chose que j'apprends sera moins de chose que je viendrai demandé ici ^^
Udt Gallery et Uploads -
jissey - 11/10/2012
Salut,
j'ai suivi de loin, mais pour chicaner, tu peux enlever la toute première ligne :
$gCms = cmsms();
et tout ce que tu apprends pourra te servir à aider les autres ensuite
Udt Gallery et Uploads -
Rams51 - 11/10/2012
Salut,
D'accord c'est par rapport a quoi que je peu le retirer $gCms = cmsms();
Par rapport a cela je pense: $modops = cmsms()->GetModuleOperations();
Udt Gallery et Uploads -
jissey - 11/10/2012
ouioui, puisque tu n'utilises plus $gCms et c'est pour pinailler
Udt Gallery et Uploads -
Rams51 - 11/10/2012
Chicaner et pinailler seront ressorti de ce poste
Suis toujours entrain voir comment améliorer et en tirer un maximum ^^
Merci.
Udt Gallery et Uploads -
Rams51 - 12/10/2012
Bonjour,
Donc après plusieurs teste tout fonctionne comme je souhaité.
Me reste plus que a mettre encore au propre tout par rapport a mes debug et teste.
Je posterai surement dimanche l'ensemble au propre car cela peu servir et c'est simple a mettre en place. ( aura peu être encore des optimisations a faire )
Si possible le proposerai en parti développement et astuces.
Bonne journée.