Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Web Pro : Ecrire une "Moulinette" - #1
Posté par : bartok

Rechercher dans Php, Mysql, ...

 Lorsque l'on maintient un site internet, il arrive forcément un jour où l'on doit modifier 'en rafale', le contenu d'une donnée située dans une table de la base de données Mysql.

 

La plupart des professionnels de l'informatique en général et des NTIC's, en particulier, savent ce qu'est une moulinette'.

Si c'est votre cas et, qu'en plus, vous êtes un virtuose de php, alors je vous propose de retourner à votre passe-temps préféré car ce qui suit ne vous apprendra rien.

Sinon, voici la suite:

Je ne comprenais pas pourquoi, quelle que soit la valeur indiquée dans les préférences de NPDS, le nombre de news affichées dans la page principale, pour un utilisateur enregistré, se limitait toujours à 10.

Je voulais que les 25 derniers articles soient affichés.

Une petite consultation de la bible de NPDS (CONFIGURATION: Les préférences) m'a permis de trouver la raison...

J'ai appris que la donnée concernée par cette limite était storynum, donnée de la table Users. Lors de la création d'un utlisateur, la donnée storynum est initialisée à 10 et cette valeur prime sur la valeur 5 (indiquée dans les préférences), qui s'adresse aux visiteurs non inscrits.

Il ne me restait plus qu'a corriger la valeur de storynum pour chaque utilisateur.

Ceci dit, comment faire lorsque plus de deux cents utilisateurs sont déjà enregistrés...

Première solution: modifier à la main, le contenu de la donnée en question.

C'est juste long comme un jour sans pastis! (même avec modération...).

Plutôt 'cossard' par nature, j'en ai choisi une autre, moins chronophage...

J'ai opté pour l'écriture d'une moulinette en PHP, qui remplacerait automatiquement le contenu de storynum de chaque élément de la table Users par la valeur 25, pour ce site.

Comme ça a bien marché (en une seconde tout au plus), je propose la méthode à tous ceux qui voudraient bien et qui n'osent pas.

La moulinette en question se découpe en quatre éléments:

A-Déclaration des identifiants de connexion à la base mysql:

moulinette_1.jpg

 

B-Connexion:

moulinette_2.jpg

 

C-Requête de modification:

moulinette_3.jpg

D-Traitement du résultat:

moulinette_4.jpg

 


Procédure:

1) placer le code source dans un répertoire spécifique et protégé de votre site au moyen de votre client ftp habituel;

2) Sauvegarder la table avant toute exécution (on ne sait jamais...). 

3) Exécuter le code php à l'aide de votre navigateur.

    Si tout se passe bien, le nombre de données modifiées sera affiché en résultat du traitement.

4) Contrôler le résultat en consultant la table..


La version non commentée donne ceci:

moulinette_light.jpg

 

Dernier point : vous l'aurez compris, il suffit de peu de modification dans le code pour modifier/initialiser une autre donnée dans une autre table.

Enfin et si vos tables sont préfixées il faudra simplement rajouter le prefix à la table users (par exemple : si le prefix est "1234" alors il faut mettre 1234users)

 



Samedi 21 décembre 2013 @ 17:58:16    Page Spéciale pour impression Envoyer cet Article à un ami    Précédent |  Suivant

gilbau
485      

gilbau
  Posté : 29-12-2013 21:48

Il aurait suffit d'aller dans le sql.free.Fr
login et mot de passe
et d'executer

update users SET storynum ='25' WHERE storynum='10';

Et pour npds, n'étant pas du tout programmeur
j'ai plein de "moulinettes" sql, car il y a des manques dans la gestion des forum et j'ai eu des besoins spécifiques
Voici quelques commandes a adapter selon les forum npds

Deplacer tous les messages d'un sujet vers un autre sujet pour les fusionner (le 1er topic_id est celui qui existera)
UPDATE `posts` SET `topic_id` = 20224 WHERE `topic_id` =20279;

Fonction pour le parametre permetant de recevoir des messages privés pour tous les utilisateurs
UPDATE `users` SET `send_email` = '1' WHERE uid > 1;

effacer messages du tchat d'un user
DELETE FROM `chatbox` WHERE `username` = 'pseudo_du_membre'

Exemples pour Enlever les message privés anciens
DELETE FROM `priv_msgs` WHERE `msg_time` <= '2013-01-01 00:00:01';
DELETE FROM `priv_msgs` WHERE `msg_time` <= '01-01-2009 00:01';
DELETE FROM priv_msgs WHERE SUBSTRING(msg_time,7,4) < '2009'

Mise à jour en groupe 35 (membre du groupe 35 avec nombre de messages postés superieur à 4)
UPDATE `users_status` SET `groupe` = '35' WHERE groupe = 0 and posts >4;

update theme du site en theme donné
UPDATE `users` SET `theme` = '' WHERE `theme` = 'nouveau_theme';

Enlever les post liés
UPDATE `posts` SET `post_idH` = "" WHERE post_idH >1;

mettre les stories en 0 (visiteurs) au lieu de 1 (membres)
UPDATE `stories` SET `ihome` = 0 WHERE ihome = 1;

effacer les messages privés à telle date et tel user vers tel user
DELETE FROM `priv_msgs` WHERE `msg_time` >= '27-09-2011 17:02' and from_userid =19353 and to_userid =12587;

effacer les envois de messages privés de tel user
DELETE FROM `priv_msgs` WHERE `msg_time` >= '15-05-2013 17:02' and from_userid =1202;

Changer ID user pour un autre user dans les posts (nouveau pseudo du membre vers ancien)
UPDATE `posts` SET `poster_id` = 13036 WHERE `poster_id` = 31856;

cacher les posts d'un user
UPDATE `posts` SET `post_aff` = 0 WHERE poster_id =11060;

cacher les posts d'un user
UPDATE `posts` SET `post_aff` = 0 WHERE poster_id =15926;

remettre visible messages d'un user
UPDATE `posts` SET `post_aff` = 1 WHERE poster_id =15926 and forum_id=19;

cacher les posts d'un user à partir d'un numero de message
UPDATE `posts` SET `post_aff` = 0 WHERE poster_id =19353 and post_id >2260284;

Fonction pour limiter le nombre d'articles en premiere page pour tous les utilisateurs
UPDATE `users` SET `storynum` = '20' WHERE uid > 1;

pour fusionner les posts de 2 pseudos
UPDATE `posts` SET `poster_id` = '31400' WHERE poster_id = 30492;

Fonction pour ajouter ou remanier les moderateurs
UPDATE `forums` SET `forum_moderator` = '14,46,3184,5292,9893,20834,21194,745,13140' WHERE forum_id > 1;

  Profil  www
developpeur
24560       
 

developpeur
  Posté : 30-12-2013 11:33

pour la bible se serait parfait non ?

  Profil  www
bartok
294     

bartok
  Posté : 30-12-2013 15:34

Ok. En avant pour la bible.

  Profil
bartok
294     

bartok
  Posté : 30-12-2013 16:03

Ok. En avant pour la bible!

  Profil
Les Commentaires sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leur contenu.

Temps : 0.035 seconde(s)