•  » Plugins
  •  » Elaboration de technical_cats

#1 2007-08-30 08:47:30

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Elaboration de technical_cats

Futur plugin pour exclure de certains modules quelques catégories...

Ce plugin est devenu nécéssaire depuis la publication de [Plugin] Build a wall.

Plus d'éléments? relire à partir de http://forum.phpwebgallery.net/viewtopi … 222#p69222

Synthèse:

Je m'appuies sur $user['forbidden_categories'].
Seulement je rencontre encore et toujours le problème du menu qui lui n'en tient pas compte.

Je sais bien que c'est la table cache qui m'embête... 8-)
Je sais aussi que je ne peux pas mettre enable le filtage, cela fausserai le résultat de la requête précédente. Donc, cela me prive du bon boulot de  update_cats_with_filtered_data.

En fait pour moi cela passe par du ménage dans le _tlpdata via le trigger loc_end_menubar, ce n'est pas cela qui va me gêner...
8-)

Ce qui me dérange pour l'instant, c'est le cas suivant:
cat_id=25 name='Vacances 2005' catégorie normale
et
cat_id=35 name='Vacances 2005' catégorie technique

Dans mon _tpldata, j'ai des choses comme ça _tpldata["."][0]["MENU_CATEGORIES_CONTENT"]

string(777) "
    <ul>

    <li class="selected"><a href="index.php?/category/1" title="xx images dans yy sous-catégories">zzzzzzzzzzzzzz</a>
    <span class="menuInfoCatByChild" title=" xx images dans yy sous-catégories">[xx]</span><img title="Images de moins de&nbsp;7&nbsp;jours" src="template/yoga/icon/recent_by_child.png" class="icon" style="border: 0pt none ; height: 14px; width: 16px;" alt="(!)">
    <ul>

    <li><a href="index.php?/category/80" title="xxx images dans cette catégorie / xxxx images dans yyyy sous-catégories">zzzzzzzzzzzzz</a>

    <span class="menuInfoCat" title=" xxx images dans cette catégorie / xxxx images dans yyyy sous-catégories">[xxx]</span><img title="Images de moins de&nbsp;7&nbsp;jours" src="template/yoga/icon/recent.png" class="icon" style="border: 0pt none ; height: 14px; width: 16px;" alt="(!)">
    </li></ul>
    </li></ul>"

1 - Il faut vraiment qu'on génère ça autrement.
2 - Vive le trigger get_categories_menu_sql_where!
3 - Il faut que je sache nettoyer la catégorie 80 par exemple et tout ce qui y est dessous... Dans quoi je me suis lancé!

8-)

PS: Dans mon malheur, j'ai déjà de la chance.
Quelque soit l'url-rewriting choisi nous avons l'id de la catégorie disponible.

Voilà où j'en suis sur l'élaboration des technical_cats.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#2 2007-08-30 08:49:09

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

Coup de chance disais-je car:

// category_url_style : one of 'id' (default) or 'id-name'. 'id-name'
// means that an simplified ascii represntation of the category name will
// appear in the url
$conf['category_url_style'] = 'id';

Déjà merci rvelices.

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2007-08-30 09:29:34

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

Supposons une découpe sur /category/

[0]=>  string(47) "
<ul>

<li class="selected"><a href="index.php?"



  [1]=>  string(338) "1" title="xx images dans yy sous-catégories">zzzzzzzzzzzzzz</a>
<span class="menuInfoCatByChild" title=" xx images dans yy sous-catégories">[xx]</span><img title="Images de moins de&nbsp;7&nbsp;jours" src="template/yoga/icon/recent_by_child.png" class="icon" style="border:0;height:14px;width:16px" alt="(!)" />
<ul>

<li><a href="index.php?"


  [2]=>  string(372) "80" title="xxx images dans cette catégorie / xxxx images dans yyyy sous-catégories">zzzzzzzzzzzzz</a>
<span class="menuInfoCat" title=" xxx images dans cette catégorie / xxxx images dans yyyy sous-catégories">[xxx]</span><img title="Images de moins de&nbsp;7&nbsp;jours" src="template/yoga/icon/recent.png" class="icon" style="border:0;height:14px;width:16px" alt="(!)" />

</li></ul>
</li></ul>"

Il faut que pour chaque catégorie technique je récupère la liste des sous-catégories pour faire une liste complète.
Que je retire toutes ces catégories du menu proprement depuis le '<a href="index' précédent juqu'au </a>.
Que je retire toutes les balises devenues inutiles de <li  jusqu'à /li> si pas de balise <a href="index à l'intérieur.
Que je retire toutes les balises devenues inutiles de <ul  jusqu'à /ul> si pas de balise <a href="index à l'intérieur.
Que je remplace tous les espaces multiples par des \n
A quelque chose près, cela devrait être bon, non?

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#4 2007-08-30 10:35:31

Nicco
Membre
Paris - Val de Marne
2006-05-12
1794

Re: Elaboration de technical_cats

salut ...

c est la suite du sujet sur comment faire une categorie utilisable mais caché etc ... ?

bon sinon comme je l ai dis dan s un autre poste, je ne suis pas dispo avant la nuit de dimanche pour bosser sur PWG !
mais j ai eu besoin il y a quelques mois de categorie quelque peu bizarre ...

voici l idee de mes modifs ...
1) une categorie peut etre caché mais active par le biais de ma bidouille avec la cat mere caché
2) une categorie permet de REFUSER l'acces aux images qu elle contient pour ceux qui sont autorisés dessus ( bizarre mais tres utile )
3) a l'inverse une categorie permet de FORCER l'autorisation aux images qu elle contient pour ceux qui sont autorisés dessus pour bypasser le filtrage d'audience par image

donc je propose de donner des infos la dessus si ca peut aider ???


Nicco Starrrr ..... voici ma galerie http://gallery-nicco.no-ip.org & ma passion http://bd-nicco.no-ip.org
version PWG 1.7.1 + de nombreux plugins actifs (trop pour les énumérer)

Hors ligne

#5 2007-08-30 11:52:25

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Elaboration de technical_cats

VDigital a écrit:

Ce plugin est devenu nécéssaire depuis la publication de [Plugin] Build a wall.

Il y ad'autres solutions quand même (nouvelle méthode en WS par exemple)


VDigital a écrit:

Je m'appuies sur $user['forbidden_categories'].
Seulement je rencontre encore et toujours le problème du menu qui lui n'en tient pas compte.

Je sais bien que c'est la table cache qui m'embête... 8-)
Je sais aussi que je ne peux pas mettre enable le filtage, cela fausserai le résultat de la requête précédente. Donc, cela me prive du bon boulot de  update_cats_with_filtered_data.

Pas tout à fait d'accord, à mon avis, tu peux t'appuyer sur le filtre.
Il suffirrait de surcharger la méthode de filtre actuelle et tu pourrais mettre des filtres dans pour autant que les filtres sur les récents ne soit actifs ou que le bandeau d'info s'affiche.

Sinon, il y a aussi une autre solution pour la 1.8 si les triggers sur les permissions sont mis en place.

[HS]
Perso, à ta place, j'implémenterais une nouvelle méthode WS pour le mur.
Et, je ferais un plugin de catégories digitales heu techniques compatibles 1.7.1 si tu choisis ta voie actuelle ou 1.8 si tu prends en compte les plugins de permissions.
[/HS]

Hors ligne

#6 2007-08-30 12:28:08

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

rub a écrit:

autres solutions quand même (nouvelle méthode en WS par exemple)

Nouvelle méthode de WS:
- réalisable,
- un peu double emploi avec le signon via WS à mon avis

L'avis de rvelices serait le bienvenu.

rub a écrit:

Il suffirrait de surcharger la méthode de filtre actuelle et tu pourrais mettre des filtres dans pour autant que les filtres sur les récents ne soit actifs ou que le bandeau d'info s'affiche.)

Sans modifier le code actuel... Explique-moi ça.

rub a écrit:

Sinon, il y a aussi une autre solution pour la 1.8 si les triggers sur les permissions sont mis en place.

[HS]
Perso, à ta place, j'implémenterais une nouvelle méthode WS pour le mur.
Et, je ferais un plugin de catégories digitales heu techniques compatibles 1.7.1 si tu choisis ta voie actuelle ou 1.8 si tu prends en compte les plugins de permissions.
[/HS]

Je ne veux pas attendre la 1.7.1 et encore moins la 1.8. Quand celles-ci sortiront, le plugin évoluera dans la direction la plus simple possible.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#7 2007-08-30 12:29:24

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Elaboration de technical_cats

Bon, je dois surement etre un boulet, mais je ne comprend pas qu'est-ce que vous appelez catégories techniques?
Que va faire ce nouveau plugin exactement?

Est-ce que ca pourrait servir à améliorer le plugin Categories Title (que je n'avais pas publié d'ailleur, car il fallait modifier un peu de code)

Dernière modification par P@t (2007-08-30 12:30:50)


P@t

Hors ligne

#8 2007-08-30 12:53:03

sakkhho
Membre
Paris
2007-04-02
1836

Re: Elaboration de technical_cats

la 1ere utilité sera :
cat technique = cat publique mais invisible.

pratique pour le WALL


Piwigo 2.3.5

Hors ligne

#9 2007-08-30 12:56:08

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Elaboration de technical_cats

VDigital a écrit:

rub a écrit:

autres solutions quand même (nouvelle méthode en WS par exemple)

Nouvelle méthode de WS:
- réalisable,
- un peu double emploi avec le signon via WS à mon avis

Le but est de pouvoir donner accés à des infos sur la galerie pour n'importe qui car le cas de l'utilisation particulière d'un mur.
Un méthode avec un id_md5_wall ne me semble pas faire double emploi. Les besoins et les cibles ne sont pas les mêmes.

VDigital a écrit:

L'avis de rvelices serait le bienvenu.

Yep!

VDigital a écrit:

rub a écrit:

Il suffirrait de surcharger la méthode de filtre actuelle et tu pourrais mettre des filtres dans pour autant que les filtres sur les récents ne soit actifs ou que le bandeau d'info s'affiche.)

Sans modifier le code actuel... Explique-moi ça.

Me suis fait eu ;-)
ASAP, je mets le nez dedans...

Hors ligne

#10 2007-08-30 13:02:56

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

P@t a écrit:

Bon, je dois surement etre un boulet, mais je ne comprend pas qu'est-ce que vous appelez catégories techniques?
Que va faire ce nouveau plugin exactement?

Est-ce que ca pourrait servir à améliorer le plugin Categories Title (que je n'avais pas publié d'ailleur, car il fallait modifier un peu de code)

Le boulet: c'est moi !

Via loc_index_category_thumbnail, tu as su simplement masquer les catégories /// du menu.
Je n'ai plus qu'à m'en inspirer...

Pour ta question, la réponse est : Non!
Mais par contre, tu pourras t'inspirer de mon plugin pour ne plus avoir besoin des ///
Et que dire de ces catégories dans search.php par exemple.

8-)

PS: A ma décharge, j'étais en vacances quand tu as sorti Categories Title...


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2007-08-30 13:35:11

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Elaboration de technical_cats

VDigital a écrit:

PS: A ma décharge, j'étais en vacances quand tu as sorti Categories Title...

No no no!
C'est meme toi qui m'a donné l'idée des catégories bidons!!!


P@t

Hors ligne

#12 2007-08-30 14:59:43

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Elaboration de technical_cats

rub a écrit:

VDigital a écrit:

rub a écrit:

Il suffirrait de surcharger la méthode de filtre actuelle et tu pourrais mettre des filtres dans pour autant que les filtres sur les récents ne soit actifs ou que le bandeau d'info s'affiche.)

Sans modifier le code actuel... Explique-moi ça.

Me suis fait eu ;-)
ASAP, je mets le nez dedans...

En 1.7.0,
En verifiant qu'on a bien

Code:

$conf['filter_pages'] = array
  (
..
    'ws' => array('used' => false),
...

voici un exmple de plugin pour ne plus afficher la catégorie no 7:

Code:

<?php
/*
Plugin Name: digital_cat
Version: 0.0.0.0
Description: It's your digital_cat plugin / c'est votre plugin personnel
Plugin URI: http://www.phpwebgallery.net
Author: Moi, nous et vous
Author URI: http://www.phpwebgallery.net
*/


//add_event_handler('loc_begin_menubar', 'digital_cat_filter_button_move');
//add_event_handler('loc_begin_page_tail', 'digital_cat_sync_not_simulate');
add_event_handler('init', 'digital_cat_init');

function digital_cat_init()
{
  global $page, $template, $filter, $user;

/*  if (in_array(script_basename(), array('register', 'profile')))
  {
    if (isset($_POST['submit']) or isset($_POST['validate']))
    {
      if (empty($_POST['mail_address']))
      {
        $_POST['mail_address'] = '<A REMPLIR>';
      }
    }
  }*/
  //if ($filter['enabled']) { echo 'toto'; TODO}
  $filter['enabled'] = true;
  $filter['recent_period'] = 99999;


    // Need to compute dats
    $filter['check_key'] = get_filter_check_key();
    $filter['categories'] = get_computed_categories($user, (int)$filter['recent_period']);
    
    //supprime la catégorie 7
    unset($filter['categories'][7]);

    $filter['visible_categories'] = implode(',', array_keys($filter['categories']));
    if (empty($filter['visible_categories']))
    {
      // Must be not empty
      $filter['visible_categories'] = -1;
    }

    $query ='
SELECT
  distinct image_id
FROM '.
  IMAGE_CATEGORY_TABLE.' INNER JOIN '.IMAGES_TABLE.' ON image_id = id
WHERE ';
    if (!empty($filter['visible_categories']))
    {
    $query.= '
  category_id  IN ('.$filter['visible_categories'].') and';
    }
  $query.= '
    date_available >= SUBDATE(
      CURRENT_DATE,INTERVAL '.$filter['recent_period'].' DAY)';

    $filter['visible_images'] = implode(',', array_from_query($query, 'image_id'));

    if (empty($filter['visible_images']))
    {
      // Must be not empty
      $filter['visible_images'] = -1;
    }

}


?>

Les reste a faire:
  o interagir avec le vrai 'filtre' pour que la fonction fonctionne encore.
  o Optimisé le calcul des catégories en ne le faisant que si nécessaire (grace à $user['need_update_done']) et sauvegarder des infos en session (comme vrai filtre) ou en base.


Les effets de bords:
  o On aura toujours l'expand dans le menu (il y a surement façon de contourner)
  o le bouton filtre n'est le bon mais ca doit se corriger en plugin
  o pour les grosses, grosses galeries pas top (mais plusieurs milliers de photos sans problème, je pense)

Hors ligne

#13 2007-08-30 15:03:04

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Elaboration de technical_cats

rub a écrit:

o On aura toujours l'expand dans le menu (il y a surement façon de contourner)

Simplement en triggers en retirant les lignes générés qu'on ne veut pas.

Hors ligne

#14 2007-08-30 15:13:40

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

P@t a écrit:

VDigital a écrit:

PS: A ma décharge, j'étais en vacances quand tu as sorti Categories Title...

No no no!
C'est meme toi qui m'a donné l'idée des catégories bidons!!!

Oui, peut-être, mais j'étais quand même en vacances.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2007-08-31 14:48:02

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Elaboration de technical_cats

Le principe sera d'indiquer qu'une catégorie sera technique ou pas.

Pour chaque catégorie technique, on pourra néanmoins indiquer ses Exceptions (quels modules continuent de voir la catégorie comme "normale").
A ces exceptions quelques fonctionnalités seront également traitées.

Quelque exemples pour être un peu plus clair:
- la catégorie 31 sera invisible de partout sauf de upload.php
- la catégorie 33 sera invisible de partout sauf de ws.php
- la catégorie 35 sera invisible de partout sauf dans "content" (faire des séparateurs...?)
mais également:
- la catégorie 38 sera visible de partout sauf dans le "menu" et/ou de "content".

Résumé:
1 - L'Administration de la galerie ne subit pas le filtrage technique des catégories.
2 - Une catégorie dit technique peut être totalement exclue des (autres) traitements: pas d'Exception proposée.
3 - Un à n modules (cf. module de l'URL en cours) peuvent être des Exceptions.
4 - En plus des modules connus, s'ajoutent aux Exceptions: "menubar" et "content".
5 - Procesus inverse: s'ajoutent également "menudiv" et "contentdiv". Dans ces cas: la  catégorie ne sera plus vraiment considérée comme technique mais simplement comme non proposée dans respectivement le div menubar ou le div content quelques soient les autres indications. Au cas où à la fois "menudiv" et "contentdiv" étaient sélectionnés la catégorie ne serait plus présentée ni dans menubar ni dans "content" mais par contre elle le serait partout ailleurs.

Tout ça, bien entendu, en respectant les règles de verrouillage et d'autorisations.
8-)

PS: La publication, la semaine prochaine probablement.
Reste à faire l'interface d'administration...

Je me propose de faire ça dans les fonctions avancées (ainsi plus proche de Construire un mur).


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

  •  » Plugins
  •  » Elaboration de technical_cats

Pied de page des forums

Propulsé par FluxBB

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