[RC] [3.1/3.2] Délestage des sujets surveillés

Pour les extensions destinées à phpBB 3.1.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

[RC] [3.1/3.2] Délestage des sujets surveillés

Messagepar pierredu » 26 Oct 2015 à 21:29

Bonjour,

J'ai l'idée de développer une extension qui permettrait aux utilisateurs de délester les sujets qu'ils surveillent. Cela est possible actuellement dans l'onglet Aperçu, puis Gestion des surveillances et Sujets surveillés.

Or, lorsqu'un utilisateur a coché dans son profil la case de surveillance automatique, tous les sujets dans lesquels il intervient sont ajoutés à la liste. Avec le temps, cela peut donner des listes considérables. Par exemple, sur mon forum, un utilisateur un peu bavard qui s'est inscrit il y a un peu plus de 10 ans a plus de 16 000 sujets surveillés, soit 800 pages dans le mécanisme d'affichage de cet onglet. Un autre, un peu moins bavard, a tout de même près de 7900 sujets surveillés.

Il est clair à mes yeux que la fonction qui existe actuellement dans la version 3.1.x ne convient pas face à cette situation. Je pense qu'il faudrait que l'utilisateur puisse délester tous les sujets surveillés qui n'ont pas eu de nouveau message depuis 3, 6 ou 12 mois (par exemple).

De la même manière, il faudrait que les administrateurs puisse faire le même délestage pour tous les utilisateurs pour les sujets qui n'ont pas eu de nouveau message depuis 6, 12 ou 24 mois.

Cela supposerait donc une fonction dans le panneau de l'utilisateur et dans le panneau de l'administrateur.

Pour ce qui concerne le premier, le fait que l'on ait un unique formulaire pour les forums et les sujets fait que l'on ne peut pas vraiment s'insérer dans cet onglet. Il faut donc envisager d'en créer un autre.

Pour ce qui concerne le panneau d'administration, on est un peu plus libre.

Qu'en dites-vous ?
Modifié en dernier par pierredu le 10 Nov 2015 à 10:27, modifié 1 fois.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar FoFa » 27 Oct 2015 à 00:25

Hello,

pierredu a écrit:il faudrait que les administrateurs puisse faire le même délestage pour tous les utilisateurs pour les sujets qui n'ont pas eu de nouveau message depuis 6, 12 ou 24 mois.

La fonction "délestage automatique" présente dans chaque forum ne suffit pas pour cette partie ?
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

Re: Délestage des sujets surveillés

Messagepar Zoddo » 27 Oct 2015 à 00:26

Bonjour,

Pourquoi pas si vous en avez l'utilité.

Après, le fait d'avoir un nombre important de sujets surveillés ne devraient pas vraiment poser de problèmes. Ça ne fait "que" des lignes supplémentaires en base de données.

Mais c'est vrai que ça peut-être une bonne idée pour les gros forums.

Donc tu fais un formulaire qui supprime à la demande ou un délestage automatique ?

FoFa a écrit:La fonction "délestage automatique" présente dans chaque forum ne suffit pas pour cette partie ?

Il parle de délester les abonnements aux sujets (ce que tu as ici) et non les sujets eux-même.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6588
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Délestage des sujets surveillés

Messagepar FoFa » 27 Oct 2015 à 00:54

En effet... super idée alors :wink:
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

Re: Délestage des sujets surveillés

Messagepar pierredu » 27 Oct 2015 à 08:38

Merci à tous les deux pour vos commentaires.
Je vais essayer d'avancer.
J'ai déjà le code mySQL pour effectuer l'opération.
Il suffit :shock: de réaliser l'interface.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar pierredu » 03 Nov 2015 à 09:49

  • Titre : Purge Subscribed Topics 1.0.0
  • Description : Délestage des sujets surveillés
  • Version : 1.0.0
  • Auteur : Pierre Duhem
  • Historique des versions :

Github : https://github.com/pierrdu/lmdi_purgesub

La partie ACP a été codée et semble fonctionner correctement.

J'en arrive à la partie UCP et je tombe sur un os. J'ai mis du code dans le fichier de migration pour créer un module UCP. L'onglet apparaît effectivement dans l'UCP dans l'onglet Page principale. Il est également présent dans la Gestion des modules de l'utilisateur, onglet Système du panneau d'administration. Mais je n'arrive pas à comprendre comment lier cela à un fichier de code php pour faire le travail et à un gabarit html pour l'affichage. Il n'y a pratiquement pas d'extensions qui utilisent des modules UCP (le seul que j'aie trouvé est phpbbireland/kiss_portal, mais il est affreusement compliqué et je ne suis pas parvenu à comprendre ce qui se passe).

Si quelqu'un a une piste...
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar Zoddo » 04 Nov 2015 à 09:19

Les modules UCP fonctionnent exactement comme les modules acp :)

Rappel : Pour que ça marche, le nom de la class doit être le nom du fichier sans l'extension :)
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6588
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Délestage des sujets surveillés

Messagepar pierredu » 04 Nov 2015 à 10:04

Ah, ça doit être ça...
Merci.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar pierredu » 10 Nov 2015 à 10:27

J'ai maintenant codé la partie du panneau d'utilisateur.
Et le dépôt sur github a été mis à jour.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar Zoddo » 11 Nov 2015 à 14:04

Salut,

Code: Tout sélectionner
                $sql  = "SELECT COUNT(*) as nb ";
                $sql .= " FROM " . TOPICS_WATCH_TABLE;
                $sql .= " INNER JOIN " . TOPICS_TABLE;
                $sql .= "    WHERE " . TOPICS_WATCH_TABLE . ".topic_id = ";
                $sql .= TOPICS_TABLE . ".topic_id AND ";
                $sql .= TOPICS_WATCH_TABLE . ".user_id = $uid AND ";
                $sql .= "(FROM_UNIXTIME(". TOPICS_TABLE . ".topic_last_post_time)) < ";
                $sql .= "date_sub(now(), interval $nbma month)"


Tout simplement :
Code: Tout sélectionner
                $sql  = "SELECT COUNT(*) as nb
                        FROM "
 . TOPICS_WATCH_TABLE . "
                        INNER JOIN "
 . TOPICS_TABLE . "
                            WHERE "
 . TOPICS_WATCH_TABLE . ".topic_id = " . TOPICS_TABLE . ".topic_id
                            AND "
 . TOPICS_WATCH_TABLE . ".user_id = $uid 
                            AND (FROM_UNIXTIME("
. TOPICS_TABLE . ".topic_last_post_time)) <
                                date_sub(now(), interval 
$nbma month)"
(attention, phpBB fait sauter les tabulations dans les codes)
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6588
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Délestage des sujets surveillés

Messagepar pierredu » 11 Nov 2015 à 15:34

Oui, fondamentalement c'est la même chose, d'avoir des opérateurs de concaténation au milieu des segments ou sur plusieurs lignes. J'ai pris l'habitude d'écrire mes requêtes comme ça, ça me permet de faire du copier-coller en ayant des lignes de code réutilisables telles quelles.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Délestage des sujets surveillés

Messagepar pierredu » 13 Nov 2015 à 12:07

Bon, je crois que j'y suis maintenant.
Le code fonctionne dans le panneau d'utilisateur et dans le panneau d'administration.
On a la possibilité de distinguer entre les sujets sans message supplémentaire et les sujets sans visite.

Le dépôt sur github a été mis à jour.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: [3.1/3.2] Délestage des sujets surveillés

Messagepar pierredu » 04 Jan 2018 à 18:10

J'ai mis à jour une version 1.2.0 sur github (https://github.com/pierrdu/lmdi_purgesub).

Cette version remanie assez fortement les fonctions dans le panneau d'utilisation : elle masque le sous-onglet de surveillance des sujets de l'onglet Aperçu et crée un onglet spécifique avec trois sous-onglets : gestion des surveillances de l'utilisateur au regard de la date de dernier message et de dernière visite, ainsi que délestage des forums d'une part et des sujets d'autre part, ce qui permet d'accélérer le travail quand on a beaucoup de sujets surveillés, sans la crainte de supprimer des surveillances de forums.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris


Retourner vers Extensions en développement

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron