Annonce

#1 2013-10-28 13:16:16

Yop
Invité

Sélection visibilité des Albums/photos par les groupes à l'upload

Bonjour,

Actuellement, j'ai installé le plugin "Community", qui me permet l'ajout des photos par les utilisateurs, et j'ai aussi "Icy Modify Picture" pour qu'il puisse modifier/supprimer les photos.

Je souhaite intégrer une fonction qui permettrait à mes utilisateurs de choisir quels groupes peuvent voir les photos qu'ils rajoutent.
Existe t'il un plugin/bout de code/config pour mettre en place ceci ?

Si non est t'il possible de me décrire comment se passe l'ajout de permissions sur les groupe au niveau de la BDD?
c'est à dire lorsque j'autorise un groupe sur un album via l'interface d'administration que se passe t'il?
Quels tables(BDD) sont impactées?


Merci

#2 2013-10-29 10:35:38

Yop
Invité

Re: Sélection visibilité des Albums/photos par les groupes à l'upload

Re salut,


Finalement, j'ai codé la fonctionnalité moi même.
Fonctionnalité qui permet à l'utilisateur de choisir quel groupe peut accéder à cette album lorsqu'il upload des photos dans un album.

Je ne peut pas partager le code car j'ai fait un truc pas adaptatif du tout, et qui fonctionne que dans mon cas (avec mes groupes). Mais je peut aider si besoin :)

#3 2013-10-29 10:45:59

flop25
Équipe Piwigo
2006-07-06
6477

Re: Sélection visibilité des Albums/photos par les groupes à l'upload

Bonjour
vous pouvez toujours copier ici en censurant le nom de groupe si besoin :)

Hors ligne

#4 2013-10-30 00:02:35

Yop
Invité

Re: Sélection visibilité des Albums/photos par les groupes à l'upload

Je n'ose pas trop vous le dévoiler (vraiment pas bien fait), mais je vais vous le décrire, avec des morceaux de code.

j'ai commencé par rajouté en dur mes cases de type checkbox qui permet à l'utilisateur de sélectionner les familles :
Dans add_photos.tpl :

Code:

<div style="display:none" id="GroupSelect" >
    <fieldset>
      <legend>{'Qui peut voir l\'album ?'|@translate}</legend>
    <table>
    <tr>
    <td><INPUT type="checkbox" name="group" value="4"> Groupe 1</td>
        ...                     ....                   ....                     ...
      <td><INPUT type="checkbox" name="group" value="30"> Groupe X</td></tr>
    </table>
    </fieldset>
</div>

J'ai créé une DIV de style display none afin quel ne s'affiche que lorsque l'on créer un album.
Le value="4" est l'id d'un de mes groupes dispo (j'ai regardé dans la bdd) et donc j'ai fait autant de INPUT que j'avais de groupes.

ensuite dans la fonction qui est appeler lorsque l'on appuis sur le bouton upload jQuery("input[type=button]").click(function()

J'ai rajouté un bout de code afin d'aller mettre les droits aux groupes sélectionnés sur l'album:

Code:

if (document.getElementsByName("group")[0].checked) {
        var groupe1=document.getElementsByName("group")[0].value;  
    } else {
        var groupe1=0;    
    }
            ...                 ...
if (document.getElementsByName("group")[X].checked) {
        var groupeX=document.getElementsByName("group")[X].value;  
    } else {
        var groupeX=0;    
    }

  jQuery.ajax({
    type: "POST",
        url: "groups.php",
        data: {
      id_categorie_parent: jQuery("select[name=category_parent] option:selected").val(),
          id_categorie: jQuery("select[name=category] option:selected").val(),
          id_groupe1: groupe1,
                   ...       .... 
          id_groupeX: groupeX, 
       
        },
        success:function(html) {
       return true;
       
        },

En gros je test si mon utilisateur a checker la case, s'il la fait, je relève l'id du groupe, sinon je met 0.
Ensuite en ajax j'envoi les donnée(les id des groupes qui sont checker, l'id de l'abum sur lequel on va rajouter la permission, et eventuellement l'album parent pour y ajouter les droit aussi) via la method post.
Donc je crée un nouveau fichier groups.php qui va juste m'update(si la permission existe déjà) ou insérer, l'ID du groupe et L'ID  de l'album dans la table photos_group_access.

Code:

if($id_groupe1!='0'){
  $result1=mysql_query("UPDATE photos_group_access SET group_id='".$id_groupe1."', cat_id='".$id_categorie."' WHERE group_id='".$id_groupe1."' and cat_id='".$id_categorie."'");
  if($result1) {
    if(mysql_affected_rows()==0) {
      mysql_query("INSERT INTO photos_group_access (group_id,cat_id) VALUES ('".$id_groupe1."','".$id_categorie."')");
    }
  }
} 
.... // etc ....

Et c'est tout!

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2020 · Contact