Fork me on GitHub

Rapport de message :*
 

Re: mydownloads 1.44 et la DATE

Titre du sujet : Re: mydownloads 1.44 et la DATE
par cyborgjeff sur 04/11/2007 17:56:37

oui oui oui !! là je suis vraiment TROP content !
Ca fait des années que j'aimerai arrivé à cela, et en me mettant dans le code pour la relation entre TAG et Mydownloads,.. je me suis dit que je devrais pouvoir aussi être capable d'y arriver... je n'y croyais pas.. mais ca marche ,)

Donc, en gros, .. pour l'instant, je peux donc maintenant garder la date d'un item déjà créer (quand je l'édite), ou la modifier à ce moment là (je m'attaquerais ensuite à reproduire cela dans le code de la page pour la création d'un nouvel item au besoin.

les modifications ont été faites dans le fichier Mydownloads/admin/index.php

Au alentour de la ligne 390 commence la fonction function modDownload() qui m'intéresse (modification d'un Download)

juste avant les //*** sont créés toutes les variables j'ajoute donc les miennes

// HACK CJ AJOUT VARIABLE DATE
    
$encdate1 $xoopsDB->query("SELECT date FROM ".$xoopsDB->prefix("mydownloads_downloads")." WHERE lid=$lid");
    list(
$encdate2)=$xoopsDB->fetchRow($encdate1);
    
$datetime formatTimestamp($encdate2,"s");

Récupérer de la DB la date de l'item, Fetchrow semble nécessaire (je ne m'y connais pas que pour l'expliquer), et là vu que j'ai récupéré une date en format "mysql" je dois la reformater en format de date plus correct ! (j'ai trouvé cela dans la page viewcat.php du module, là ou il affiche le contenu d'un item dans le site.

2° étape, afficher un champs dans le formulaire, cela s'ajoute juste un peu en dessous de la ligne //*** par exemple entre le champs Titre et URL.

$sform->addElement(new XoopsFormText(_MD_FILETITLE,'title',50,100,$title),true);
    
//HACK CJ DATE
    
$sform->addElement (new XoopsFormText (DATE,'date',50,50,$datetime),true);
    
// --
    
$sform->addElement(new XoopsFormText(_MD_DLURL,'url',50,250,$url),false);


le champs DATE affichera déjà l'ancienne de l'item que l'on modifiera au besoin.

3° étape, balancer les nouvelles infos dans DB en lieu et place de la fonction actuel qui récupérait la date du jour... Il faut maintenant partir plus loin dans le code de la page, au niveau de la ligne 830, dans la fonction modDownloads. Au début s'instencie toutes les variables récupérées du formulaire, de nouveau avant le // *** j'ajoute mes variable de date.

// HACK CJ DATE !!
    
$datetime $myts->addSlashes($_POST['date']);
    
$datetime strtotime ($datetime);


Tout d'abord, je récupère la variable, et ensuite via la fonction strtotime je la transforme en variable compatible avec la base de donnée Mysql.

ensuite, un poil plus bas, après un 2° // *** vous pouvez trouver la définition d'une variable *sql ou l'on attribuait un time(), je modifie toute cette ligne comme suit :

$sql sprintf("UPDATE %s SET cid = %u, title = '%s', url = '%s', homepage = '%s', version = '%s', size = %u, platform = '%s', logourl = '%s', status = %u, date = %u WHERE lid = %u"$xoopsDB->prefix("mydownloads_downloads"), $cid$title$url$homepage$version$size$platform$logourl2$datetime$_POST['lid']);


ET voilà.. le tour est joué...

Maintenant, plus qu'à faire de même pour la création d'un nouvel ITEM, mais là en proposant par défaut la date du jour dans le champs date !!

N'hésitez pas si vous avez des conseils ou remarques à formuler... c'est franchement mon truc dans le genre.. j'en suis fier, mais j'ai encore beaucoup à apprendre !!!
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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