Fork me on GitHub

Rapport de message :*
 

Re: Hack block wfdownloads

Titre du sujet : Re: Hack block wfdownloads
par machenzy sur 25/04/2005 13:52:59

Salut,

Je vous propose ma solution définitive pour avoir deux blocs wfdownloads : 1 pour le suivi des uploads et 1 pour le suivi des mises à jour de ces uploads.

J'ai adapté cette partie pour tenir au courant les membres des évolutions des fichiers proposés... En effet, si le bloc programmé à l'origine réfère des derniers fichiers proposés, il n'averti en rien une modification (ou mise à jour). Je tiens à signalé pour comprendre le hack dans son ensemble que celui-ci intervient dans une configurtation où wfdownloads est sous sa version 2.05a et que les uploads sont en "auto-approuvement" !! Donc, dans un autre cas, à vous d'adapter...

VOICI LE HACK :

Modification du fichier ".../modules/wfdownloads/blocks/wfdownloads_top.php" ligne 36 :

=> On ajoute la sortie des variables "status, updated, version" de la table

Avant
$result $xoopsDB->query("SELECT lid, cid, title, date, hits FROM " $xoopsDB->prefix('wfdownloads_downloads') . " WHERE status > 0 AND offline = 0 ORDER BY " $options[0] . " DESC"$options[1], 0);


Après
$result $xoopsDB->query("SELECT lid, cid, title, date, status, updated, version, hits FROM " $xoopsDB->prefix('wfdownloads_downloads') . " WHERE status > 0 AND offline = 0 ORDER BY " $options[0] . " DESC"$options[1], 0);


Modification du fichier ".../modules/wfdownloads/blocks/wfdownloads_top.php" ligne 33 :

=> Dénomination des variables qui serviront pour le template

Avant
if ($options[0] == "date")
            {
                
$download['date'] = formatTimestamp($myrow['date'], $xoopsModuleConfig['dateformat']);


Après
if ($options[0] == "date")
            {
                
$download['date'] = formatTimestamp($myrow['date'], $xoopsModuleConfig['dateformat']);
            
$download['status'] = $myrow['status'];
            
$download['updated'] = formatTimestamp($myrow['updated'], $xoopsModuleConfig['dateformat']);
            
$download['version'] = $myrow['version'];


Modification du fichier ".../modules/wfdownloads/submit.php" ligne 187 : En effet, un petit truc, si un fichier est modifié par un membre, la base n'est pas avertie de la mise à jour, il faut donc ajouter cette ligne après "$updated = time();"
$status 2;


Ensuite, je vous propose d'aller vous plonger dans le manuel de référence, on y trouve : Le clonage d'un module
Intéressez-vous particulièrement à la partie : bloc.
Ajoutez donc un bloc appelé : "updated" (ou comme vous voulez )comme ceci :
$modversion['blocks'][3]['file'] = "wfdownloads_top.php";
$modversion['blocks'][3]['name'] = "updated";
$modversion['blocks'][3]['description'] = "Shows recently added donwload files";
$modversion['blocks'][3]['show_func'] = "b_wfdownloads_top_show";
$modversion['blocks'][3]['edit_func'] = "b_wfdownloads_top_edit";
$modversion['blocks'][3]['options'] = "updated|5|70";
$modversion['blocks'][3]['template'] = 'wfdownloads_block_updated.html';


Ensuite éditez le fichier template : ".../modules/wfdownloads/templates/blocks/wfdownloads_block_new.html" et habillez-le comme vous le souhaiter, voici mon habillage :
<{foreach item=download from=$block.downloads}>
<{if 
$download.status == "2"}>
<
img src="<{$xoops_url}>/modules/<{$download.dirname}>/images/maj.gif">
<{else}>
<
img src="<{$xoops_url}>/modules/<{$download.dirname}>/images/new.gif">
<{/if}>    
<
a href="<{$xoops_url}>/modules/<{$download.dirname}>/singlefile.php?cid=<{$download.cid}>&lid=<{$download.id}>"><{$download.title}> - v.<{$download.version}></a>
<{if 
$download.status == "2"}>
(<{
$download.updated}>)
<{else}>
(<{
$download.date}>)
<{/if}>
<
br>
<{/foreach}>


Créez maintenant le fichier template : ".../modules/wfdownloads/templates/blocks/wfdownloads_block_updated.html", il ne va référencer que les fichiers au status "2", c'est à dire "mis à jour", c'est ce que l'on veut :
<{foreach item=download from=$block.downloads}>
<{if 
$download.status == "2"}>
<
img src="<{$xoops_url}>/modules/<{$download.dirname}>/images/maj.gif">
<
a href="<{$xoops_url}>/modules/<{$download.dirname}>/singlefile.php?cid=<{$download.cid}>&lid=<{$download.id}>"><{$download.title}> - v.<{$download.version}></a>
(<{
$download.updated}>)
<{/if}>
<
br>
<{/foreach}>


Et voilà , le résultat ? Venez jetter un coup d'oeil ICI

Bon xoops @+
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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