Comment fixer un post en tete de liste dans mes forums ? - Programmation
Marsh Posté le 04-09-2002 à 14:58:15
ReplyMarsh Posté le 04-09-2002 à 15:01:11
Si ca peut t'aider
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Marsh Posté le 04-09-2002 à 15:02:24
Merci de ton aide Max, je vais voir si j'y arrive ...
Ian
Marsh Posté le 04-09-2002 à 15:02:58
IanCurtis a écrit a écrit : Merci de ton aide Max, je vais voir si j'y arrive ... Ian |
Marsh Posté le 04-09-2002 à 16:08:02
Max, la je suis devant ma page phpmyadmin (chez free), j'ai choisi une ligne du tableau de la base (= un de mes forums), et g fait "inserer" ...
C bien par la qu'il faut aller ? Que faire apres ?
Ian
Marsh Posté le 04-09-2002 à 16:11:04
Je suis con, la j'insere un message et pas une colonne ...
Marsh Posté le 04-09-2002 à 16:30:13
Ok g insere la colonne "STICKY" mais qu'est ce que je met en:
Type Attributs Null Défaut Extra ?
Ou est-ce que je fais order ?
Marsh Posté le 04-09-2002 à 16:36:35
IanCurtis a écrit a écrit : Ok g insere la colonne "STICKY" mais qu'est ce que je met en: Type Attributs Null Défaut Extra ? Ou est-ce que je fais order ? |
nom sticky,
type tinyint (ca sera assez grand comme ça)
taille, tu le laisse à vide
attribut unsigned (ca te permettra d'avoir 2 fois plus de niveau sans utiliser des nombres négatif)
null soit tu met not null, soit tu met null mais avec une valeur par défaut
défaut, tu mets la valeur que prendra par défaut cette colone quand un nouvel enregistrement sera créé. C'est utile pour ne pas avoir besoin de modifier desuite les requêtes d'insertion de donnée
extra, t'y touche pas.
tu coche index pour accélérer un tout petit peu le classement des messages dans le forum
primaire, unique et texte entier, je te conseilles de les garder décoché.
Marsh Posté le 04-09-2002 à 16:52:03
Bon , j'ai inserer la colonne avec les valeurs que tu m'as donné
Tous les messages du forum ont donc la valeur sticky=0, sauf un ancien message auquel g attribue la valeur 1
Dans le tableau index, je retrouve bien sticky ... Mais le msg n'est toujours pas remonte, meme apres avoir rafraichi :-(
Marsh Posté le 04-09-2002 à 16:56:51
IanCurtis a écrit a écrit : Bon , j'ai inserer la colonne avec les valeurs que tu m'as donné Tous les messages du forum ont donc la valeur sticky=0, sauf un ancien message auquel g attribue la valeur 1 Dans le tableau index, je retrouve bien sticky ... Mais le msg n'est toujours pas remonte, meme apres avoir rafraichi :-( |
T'as modifié dans les sources du forum la requête qui va chercher la liste des dernières discutions?
Sans ça, il saura pas qu'il doit faire un tri sur sticky en majeur et sur la date en mineur.
Marsh Posté le 04-09-2002 à 17:00:02
Ok, il manque la requete ;-)
Je debute en php ... Faut donc que je trouve le fichier php qui contient la requete d'affichage ... ou il y a moyen de le faire dans phpmyadmin ?
Ian
Marsh Posté le 04-09-2002 à 17:09:17
IanCurtis a écrit a écrit : Ok, il manque la requete ;-) Je debute en php ... Faut donc que je trouve le fichier php qui contient la requete d'affichage ... ou il y a moyen de le faire dans phpmyadmin ? Ian |
Là, c'est au niveaux des fichiers que ca se passe.
Je conais pas "web agora" alors je peux pas t'indiquer a quel endroit chercher la requête en question.
Si ce forum n'est pas fait comme un ensemble de module, tu peux regarder le nom du fichier indiqué dans l'adresse de ton navigateur pour savoir quel est celui qui utilise la requête que t'as à modifier.
Ensuite, il faudra que tu analyses le fichier en question pour y trouver la bonne requête. (cherche les mots "SELECT" et include pour trouver plus vite les requêtes et les noms des fichiers inclus et donc peut être à vérifier)
Marsh Posté le 04-09-2002 à 17:15:59
je cherche, mais je suis pas rendu !
l'url vers le forum est du type "/index.php3?bn=divers"
Marsh Posté le 04-09-2002 à 17:29:16
Hou là, ca sent l'utilisation d'un système de module (toujours la même page qu'est appeller par le navigateur quelque soit la partie demandé et on fait la diférence grace à une variable).
Bon, là, visiblement, il faut que tu cherches a quel endroit la variable $bn est utilisé et ensuite essayer de voir quelles sont les requêtes et les fichier inclus par la partie du code quis era exécuter.
Marsh Posté le 04-09-2002 à 17:35:08
g trouvre des modules qui enumerent cela :
# Set core variables (managed by w-agora)
# ---------------------------------------
if (isset($bn_var)) {
unset ($bn_var);
}
$bn_var = array (
"unixdate", // timestamp (creation date)
"userid", // user ID
"mod_date", // modification date
"mod_userid", // userid of modifier
"password", // MD5 encoded password
"filename", // name of HTML note
"attachment", // attachment file name ("none" if none)
"att_type", // attachment mime-type
"att_size", // attachment file size
"mail_reply", // set to "1" if replies to this note must be sent by email
"hidden", // set to 1 if note must be approved by the moderator
"hits", // hits count
"closed", // closed thread (RFU)
"ip" // logged IP address of sender
Ce qui faudrait c que je sache de quelle maniere est demandee l'affichage des posts par date de creation (apparemment c la variable "unixdate"...
Marsh Posté le 04-09-2002 à 17:37:15
J'ai pas tous lu, mais si c'est tiré par date, tu modifie la date de ton topic et tu le met en l'an 3000 comme sa il seras toujours en haut
Marsh Posté le 04-09-2002 à 17:42:29
bozocarzu a écrit a écrit : J'ai pas tous lu, mais si c'est tiré par date, tu modifie la date de ton topic et tu le met en l'an 3000 comme sa il seras toujours en haut |
C'est la méthode bourin ça.
Si on arrivait à mettre en place une méthode plus douce, ca sera mieux et comme ça, il perdra pas l'info date.
De plus, si c'est classé en fonction de la date de dernière réponse, la date que t'auras forcé à l'an 3000 sera remplacé par la date courante dès qu'une autre réponse aura été posté.
Marsh Posté le 04-09-2002 à 17:44:44
IanCurtis a écrit a écrit : g trouvre des modules qui enumerent cela : # Set core variables (managed by w-agora) # --------------------------------------- if (isset($bn_var)) { unset ($bn_var); } $bn_var = array ( "unixdate", // timestamp (creation date) "userid", // user ID "mod_date", // modification date "mod_userid", // userid of modifier "password", // MD5 encoded password "filename", // name of HTML note "attachment", // attachment file name ("none" if none) "att_type", // attachment mime-type "att_size", // attachment file size "mail_reply", // set to "1" if replies to this note must be sent by email "hidden", // set to 1 if note must be approved by the moderator "hits", // hits count "closed", // closed thread (RFU) "ip" // logged IP address of sender Ce qui faudrait c que je sache de quelle maniere est demandee l'affichage des posts par date de creation (apparemment c la variable "unixdate"... |
Je penses pas que ca soit ça.
Il y a une autre façon d'accéder à la valeur de cette variable mais je me rappelles plus exactement le nom de la variable qui est alors employé.
Essays de trouver les chaines [bn] , ['bn'] et ["bn"] pour voir si c'est pas comme ça qu'ils s'en servent.
Marsh Posté le 04-09-2002 à 19:25:10
c bien ces chaines la qui sont utilisees.
Je sais plus ou g trouve le forum, mais c'etait sur un site php français ...
Marsh Posté le 04-09-2002 à 21:03:37
Y a p'tete moyen de configurer le forum pour maintenir un post en haut de la liste : dans la partie admin il y a ces options :
Global listing formats:
Default order (in no-threaded mode):
Max # of threads per page
Padding pattern:
Thread depth limit
Hot Topic Threshold
Newest messages: Use color: for messages newer than hours
New messages: Use color: for messages newer than hours
For older messages: Use color:
Before line script
Si vous avez un lien pour la doc de W-agora ... Ca m'interesse !!
Ian
Marsh Posté le 04-09-2002 à 21:39:44
J'ai trouve des liens :
Site officiel W-Agora
http://www.w-agora.net/
La doc en français :
http://www.w-agora.net/current/ind [...] upport_doc
Marsh Posté le 04-09-2002 à 21:53:14
Bon, g trouve la partie dans l'interface du forum qui permet d'inserer : order by sticky asc, mod_date desc
Probleme : de cette maniere, les post sujet ET reponses, ne sont pas lies par le fil de discussion ...
EX ça donne :
sujet initial
re : 1
re : 2 etc .
Et je veux
sujet initial1
- - - -re : 1
- - - -re : 2 etc .
sujet initial2
- - - -re : 1
- - - -re : 2 etc .
Comment faire ??
IAn
Marsh Posté le 05-09-2002 à 02:00:04
Bon, ce soir, j'ai téléchargé ton forum pour jeté un oeuil sur le code.
Visiblement, tout les messages que ca soit le lancement d'un topic ou les réponses se trouvent dans la même table. Il te faut donc affecté la valeur de sticky également aux réponses.
Par contre je sais pas quel est le meileur endroit pour affecter cette valeur
Marsh Posté le 05-09-2002 à 07:25:04
c TRES SYMPA DE TA PART !
Je relance le topic ce soir ...
A +
Ian
Marsh Posté le 05-09-2002 à 19:52:57
BOn, apparemment je suis pas le seul a vouloir faire des sticky posts sur W-agora, mais le createur lui-meme avoue que cette focntion n'est pas encore implementee ...
http://www.w-agora.net/current/vie [...] 1015956103
"> Hello,
>
> My name is Alex. I wan to hire you if I get Agora. I just have two questions that I need answered to help me decide.
Please, if you have time, can you?
>
> The first is about sticky posts. Can Admin make a post that always stays on top of a forum?
No, this feature is not currently implemented, but it is on the TODO
list.
>
> The second is about deleting:
>
> Can admin delete an individual post within a thread?
Yes, the admin (or moderator) can delete individual posts within a thread.
Thank you for your interest
Marc Druilhe."
Bien gentil le marco, mais on pourrait pas lui donner un coup de pouce ??
Ian
Marsh Posté le 05-09-2002 à 21:20:32
Methode bourrin 2 :
Il doit bien y arrive id diferent par topic ?
Tu fais une premeiere requete SQL on tu selection le topic a mettre en haut avec son id puis tu fais une autre requete pour afficher les autre !! (Faus faire attention a virer le topic deja afficher !)
Marsh Posté le 05-09-2002 à 21:30:49
Y a bien un champ "cle"; mais faire la requete, c pas a ma portee ...
Merci de m'aider bozocarzu !
Ian
Marsh Posté le 06-09-2002 à 10:26:07
bozocarzu a écrit a écrit : Methode bourrin 2 : Il doit bien y arrive id diferent par topic ? Tu fais une premeiere requete SQL on tu selection le topic a mettre en haut avec son id puis tu fais une autre requete pour afficher les autre !! (Faus faire attention a virer le topic deja afficher !) |
Pour moi, le principal problème de ce forum, c'est qu'il est fait de la manière la plus abstraite possible.
Quand j'ai regardé le code, il m'a falut beaucoup plus de temps à comprendre comment était formé les requêtes que ce que j'aurais imaginé.
Même en ayant passé une soiré sur son code, j'ai pas réussi à trouver où étaient affecté les valeurs qui sont utilisé ensuite pour former la requête qui sera envoyé à la base.
Ce forum marche , c'est indéniable mais il m'a pas l'air des plus lisible et son code mériterait un gros fichier d'aide sur comment ca marche. (pourtant le code est bien documenté mais son déroulement est très obcur quand on métrise pas les languages objets depuis longtemps).
Marsh Posté le 06-09-2002 à 11:04:55
tu crée ton sticky
tu cherche la table des intitules de post
tu repere l'enr qui contient ton sticky
tu bidouille au niveau des dates (genre tu lui colle 01/01/2100) pour faire croire aux scripts qu'il est le dernier à avoir été modifié .
c'est juste une idée... conné rien
Marsh Posté le 06-09-2002 à 22:13:39
Salut
"tu bidouille au niveau des dates (genre tu lui colle 01/01/2100) pour faire croire aux scripts qu'il est le dernier à avoir été modifié"
C des dates Unix : pas si simple.
SI personne saisit le code, je risque pas de trouver !!!
Marsh Posté le 04-09-2002 à 14:53:18
Salut,
G un forum web agora 4.0, et je veux pour chaque section du forum pouvoir placer un topic en tete de liste, et qu'il reste bien sur malgre les posts qui suivent ...
Le forum ne propose pas cette option : commen faut-il faire ?
IAn