Fork me on GitHub


 Bas   Précédent   Suivant

« 1 ... 5 6 7 (8) 9 10 11 ... 44 »


Re: Bloquer l'édition des commentaires dans xoops 2.5
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Je t'indique un hack compliqué pour obtenir une fonction de blocage de l'édition des commentaires des membres dans tout Xoops!

Attention : (très) bon niveau de programmation recommandé pour effectuer les modifications. De plus, attendre la validation par un développeur de l'équipe Xoops actuelle avant de faire cela sur un site en production. Je tourne sur une plateforme Xoops 2.0.1x, donc je n'ai pas vérifié si cela fonctionne sous une Xoops 2.4 ou 2.5.

Il faut modifier manuellement 2 fichiers : root/class/commentrenderer.php et root/modules/system/templates/system_comment.html

Le plus difficile est d'appliquer le hack dans commentrenderer.php, la modification dans le fichier template est simplissime ensuite.

L'objectif est de créer une variable booléenne, nommée 'canedit', qui va déterminer, ou non, l'affichage du bouton 'edit'. Le délai, dans la variable $the_delay est exprimé en minutes; dans mon exemple, le délai est fixé à 1 jour (24x60=1440 minutes).

Dans le fichier commentrenderer.php, il faut ajouter ce code (3 fois, dont 1 différent...) :

1- Dans la function renderFlatView (environ ligne 100 dans mon fichier), juste vers la fin de la fonction (vers ligne 120), il faut remplacer :
$this->_tpl->append('comments', array('id' => $this->_comments[$i]->getVar('com_id'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($this->_comments[$i]->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($this->_comments[$i]->getVar('com_modified'), 'm'), 'poster' => $poster));


par

//hack date edit - JF Fortier - www.aquaportail.com - 25 nov, 2010
$created_date $this->_comments[$i]->getVar('com_created');
$the_delay 1440// 24 hours = 1440 minutes -set this value to your own
$canEdit = (time()-$created_date) < ($the_delay*60);
$this->_tpl->append('comments', array('id' => $this->_comments[$i]->getVar('com_id'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($this->_comments[$i]->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($this->_comments[$i]->getVar('com_modified'), 'm'), 'poster' => $poster'canedit' => $canEdit));


2- Dans la function renderThreadView (environ ligne 140 dans mon fichier), juste vers la fin de la fonction (vers ligne 180), il faut remplacer :
$this->_tpl->append('comments', array('pid' => $tree[$comment_id]['obj']->getVar('com_pid'), 'id' => $tree[$comment_id]['obj']->getVar('com_id'), 'itemid' => $tree[$comment_id]['obj']->getVar('com_itemid'), 'rootid' => $tree[$comment_id]['obj']->getVar('com_rootid'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_modified'), 'm'), 'poster' => $this->_getPosterArray($tree[$comment_id]['obj']->getVar('com_uid')), 'replies' => $replies'show_replies' => $show_replies));


par

//hack date edit - JF Fortier - www.aquaportail.com - 25 nov, 2010
$created_date $tree[$comment_id]['obj']->getVar('com_created');
$the_delay 1440// 24 hours = 1440 minutes -set this value to your own
$canEdit = (time()-$created_date) < ($the_delay*60);
$this->_tpl->append('comments', array('pid' => $tree[$comment_id]['obj']->getVar('com_pid'), 'id' => $tree[$comment_id]['obj']->getVar('com_id'), 'itemid' => $tree[$comment_id]['obj']->getVar('com_itemid'), 'rootid' => $tree[$comment_id]['obj']->getVar('com_rootid'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_modified'), 'm'), 'poster' => $this->_getPosterArray($tree[$comment_id]['obj']->getVar('com_uid')), 'replies' => $replies'show_replies' => $show_replies'canedit' => $canEdit));


3- Dans la function renderNestView (environ ligne 235 dans mon fichier), juste vers la fin de la fonction (vers ligne 265), il faut remplacer :
$this->_tpl->append('comments', array('pid' => $tree[$comment_id]['obj']->getVar('com_pid'), 'id' => $tree[$comment_id]['obj']->getVar('com_id'), 'itemid' => $tree[$comment_id]['obj']->getVar('com_itemid'), 'rootid' => $tree[$comment_id]['obj']->getVar('com_rootid'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_modified'), 'm'), 'poster' => $this->_getPosterArray($tree[$comment_id]['obj']->getVar('com_uid')), 'replies' => $replies));


par

//hack date edit - JF Fortier - www.aquaportail.com - 25 nov, 2010
$created_date $tree[$comment_id]['obj']->getVar('com_created');
$the_delay 1440// 24 hours = 1440 minutes -set this value to your own
$canEdit = (time()-$created_date) < ($the_delay*60);
$this->_tpl->append('comments', array('pid' => $tree[$comment_id]['obj']->getVar('com_pid'), 'id' => $tree[$comment_id]['obj']->getVar('com_id'), 'itemid' => $tree[$comment_id]['obj']->getVar('com_itemid'), 'rootid' => $tree[$comment_id]['obj']->getVar('com_rootid'), 'title' => $title'text' => $text'date_posted' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_created'), 'm'), 'date_modified' => formatTimestamp($tree[$comment_id]['obj']->getVar('com_modified'), 'm'), 'poster' => $this->_getPosterArray($tree[$comment_id]['obj']->getVar('com_uid')), 'replies' => $replies'canedit' => $canEdit));


Ca, c'est fait, c'était le plus gros morceau.

Maintenant, il faut modifier le template modules/system/templates/system_comment.html en insérant un test de validité du booléen créé précédemment comme ceci :

<{if $comment.canedit}>le lien pour editer un commentaire<{/if}>


Evidemment, il faut laisser à l'admin/modo la possibilité d'éditer tous les messages et cela va ressembler à ceci pour la modification du template (il faut repérer où est afficher la variable $lang_edit).
Attention : ne pas recopier ce bout de html stricto-sensu! Il tient compte de votre template... c'est le test smarty qui entoure le lien d'édition qui est important.
<{elseif $xoops_isuser == true && $xoops_userid == $comment.poster.id}>
 <
td class="even right">
  <{if 
$comment.canedit}><class=btSearch href="<{$editcomment_link}>&amp;com_id=<{$comment.id}>"><{$lang_edit}></a> <{/if}>


SVP : attendez la validation d'un développeur confirmé de l'équipe Xoops... Ce genre de modif peut facilement planter un site...

Note : évidemment, dans les options admins de Xoops, il faudra forcer la mise à jour des templates pour que les modifications soient visibles.

Ce hack est à réserver aux experts : il est aussi dangereux qu'une pieuvre en colère!

Posté le : 25/11/2010 19:49
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: Bloquer l'édition des commentaires dans xoops 2.5
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
En ce qui concerne le délai d'édition, je pense que tu aurais souhaité le réglage comme celui existant dans le module forum newbb/cbb. Mais il n'en est rien, il n'existe rien du même style dans le système de commentaire (à moins qu'une évolution ait eu lieu en 2.5 mais je ne crois pas).

En revanche, j'avoue volontiers qu'une telle fonctionnalité serait appréciée dans une future mouture de Xoops.

Dans le forum de mon site d'aquariums, j'ai laissé la possibilité de modifier les messages pendant 2 jours... je trouve que c'est déjà pas mal, car comme tu le dis, beaucoup de site bloquent cette solution après quelques minutes seulement parfois. Le problème vient de la modération : rien n'avertit les admins/modos d'une modification d'un message et c'est un réel souci dans des sites communautaires actifs.

Posté le : 25/11/2010 17:42
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Plan du site non accessible
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Bonjour,
je signale que les membres n'ont pas les droits/privilèges pour accéder à la zone 'plan du site'... (lien dans le footer)

Ca me paraîtrait judicieux qu'on puisse visualiser cette page, non?

Posté le : 25/11/2010 15:35
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: Module xoops et access FTP
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Bonjour,
cela n'est pas faisable : ce sont des ressources serveur (apache ou autre) et non des ressources 'xoops'.

Posté le : 25/11/2010 15:24
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: Article sur la version 2.5.0
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Je suis intervenu sur WRI (j'y poste égulièrement) pour donner l'adresse de mon site d'aquario.

Posté le : 24/11/2010 16:42
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: NewBB : retirer le bouton "citation" du dernier message?
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Citation :
babouille a écrit :
cela me rappelle l'idée d'un certain forum.



Bah oui, et comme on fréquente les mêmes sites de perdition en SEO... (et le même groupe Skype pour parler de SEO) il y a des idées qu'on retient. Et la remarque de Olivier Duffez concernant le Duplicate Content totalement inutile du dernier message avec un aspect anti-référencement a fait tilt chez moi. Conclusion, j'adopte l'idée, puis l'adapte pour en devenir adepte et si possible, l'améliorer.

Et dans un aspect compétition dans les SERP, le moindre détail est important, surtout en SEO. Un texte dupliqué trop proche de la source citée est typiquement un frein au référencement puisque cela est immédiatement identifié comme du spam (ou, ad minima, une technique spammy).

En revanche, dans quel fichier as-tu cette ligne foreach? Parce qu'avec le pagenav, je me suis perdu dans le code et pourtant, je ne suis habituellement pas manchot. A la limite, je peux faire une requête SQL (voir une fonction dédiée) pour déterminer le dernier message d'un sujet, mais si je pouvais éviter...

@Ghia : le problème rencontré est un peu différent : il concerne des newbies qui ne savent pas très bien se servir d'un forum et qui appuient "bêtement" (simplement) sur le bouton "citation" en lieu et place du bouton "répondre". Ces nouveaux membres (voir nouveaux sur Internet) ne savent pas (et ne prennent pas la peine) nettoyer les parties de messages inutiles. ;)


ps: dsl pour le délai de réponse mais j'avais oublié de mettre en suivi (c'est fait automatiquement sur mes sites pour le créateur d'un fil de discussion : un petit hack bien utile).

Posté le : 24/11/2010 10:53
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


NewBB : retirer le bouton "citation" du dernier message?
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Bonjour,

j'ai dans l'idée de retirer le bouton "citation" du dernier message posté d'un sujet de forum; en effet, je ne vois vraiment pas l'intérêt de "citer" le message juste précédent. Outre que cela crée des pages à rallonge, on se doute bien que la réponse se rapporte au dernier message en l'absence de toute autre précision.

Est-ce que quelqu'un a déjà hacké NewBB pour faire sauter ce bouton de citation dans le dernier message d'un sujet?

A la limite, le nom du fichier (ou des fichiers?) dans lequel faire la modif me suffira, je ne suis pas trop exigeant.

Xoops version 2.0.1x (mais ça ne change pas grand chose à NewBB).

Posté le : 21/11/2010 15:53
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: Hacking, module news ?
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Citation :
J'ai désactiver l'ajout d'info par les anonymes..ce que j'avais oublié

C'est clair que les spammeurs avaient la voie libre, surtout si tu n'emploies pas pas captcha...

Posté le : 21/11/2010 15:47
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: smartsection et SEO
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Bonjour,

@nikita : faut surtout pas faire ça, le module ne peut plus fonctionner. Toute la gestion "historique" de l'url-rewriting dans ce module smartsection est basée sur un passage d'argument : et en remplaçant 'category', etc, tel que proposé, ça ne peut plus fonctionner.

@abpf83 : il faut modifier le fichier /modules/smartsection/include/seo_functions.php et la fonction indiquée par Nikita "smartsection_seo_genUrl".

A peu près ligne 65 à 70, tu as une ligne de code qui ressemble à :
return XOOPS_URL."/" $smartModuleConfig['module_seo_modulename'] . ".${op}.${id}/${short_url}";

C'est ce code qu'il faut modifier...

Mais ce que tu demandes n'est pas faisable! En effet, tu proposes de supprimer l'identifiant numérique (ID) et le type d'opération (OP) : comment savoir ce qu'on va reécrire dans le sens inverse ensuite?

Personnellement, j'ai remplacé la ligne citée précédemment par la règle suivante :
return XOOPS_URL."/articles-".$op."-".$id."-".$short_url;

Cela donne une adresse définitive du style : www.aquaportail.com/articles-i ... oisson-rouge-records.html

Il faut évidemment installer un règle ad-hoc dans le htaccess :
RewriteRule ^articles-([a-z]+)-([0-9.]+)-        modules/smartsection/seo.php?seoOp=$1&seoArg=$[L]


Dans ton cas, cela pourrait se transformer (avec quelques modifications) en quelque chose du genre :
batisseurs-pere-fils.com/travaux/category-60/quis-sommes-nous.html

Posté le : 21/11/2010 15:28
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer


Re: Petit soucis avec SmartSection et ces éditeurs de texte
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
J'ai bien galéré à une époque pour homogénéiser tous ces éditeurs de tous les modules. Il y a des choses qui marquent.

Posté le : 21/11/2010 15:02
_________________
Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 ... 5 6 7 (8) 9 10 11 ... 44 »




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

86 Personne(s) en ligne (61 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 86 | Plus ...