(1) 2 »
TDM-Downloads
Gérard
Gérard

TDM-Downloads

Gérard 68
24/10/2024 19:56
#1
Gérard 68
24/10/2024 19:56
Bonjour/Bonsoir,

Je tente un essai avec TDM-Downloads version 2.1 beta sous Xoops 2.5.11
Je n'ai trouvé que cette version.

Après installation du module, voici l'erreur dans l'administration :

Citation :
Erreur: SmartyCompilerException: Syntax error in template "db:db:tdmdownloadsadminfooter.t" on line 1 "
XOOPS
" - Unexpected ".", expected one of: "}>" dans le fichier /class/libraries/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php ligne 1


Je sens que ce n'est pas gagné d'avance ...
Re : TDM-Downloads
Alain T
Alain T

Re : TDM-Downloads

Alain T 792
24/10/2024 20:13
#2
Alain T 792
24/10/2024 20:13
Moi je dirais que tu n'as pas lu le tuto sur les article sur le Passage de smarty 2 à smarty 3/4

Autre solution (A tester) : Tu peux utiliser le module xmdoc.
C'est ce qu'on utilise sur monxoops.fr pour la gestion des téléchargements.
Re : TDM-Downloads
Alain T
Alain T

Re : TDM-Downloads

Alain T 792
24/10/2024 20:34
#3
Alain T 792
24/10/2024 20:34
tdmdownloads/templates/admin/tdmdownloads_admin_footer.tpl

<div class="center"><a href="https://xoops.org/" title="Visit XOOPS" target="_blank"><img src="<{xoModuleIcons32 'xoopsmicrobutton.gif'}>" alt="XOOPS">a>< /div>


Non ça semble correct.
Dans le tuto l'exemple donné est :
Citation :
xoModuleIcons32
La ligne 51 indique :
<img src="/modules/xmtutorial/admin/<{xoModuleIcons32 edit.png}>" alt="<{$smarty.const._MA_XMNEWS_EDIT}>" />

Pour corriger cette erreur, il faut entourer edit.png avec des quotes : 'edit.png'.
<img src="/modules/xmtutorial/admin/<{xoModuleIcons32 'edit.png'}>" alt="<{$smarty.const._MA_XMNEWS_EDIT}>" />



Donc c'est une autre erreur...
Re : TDM-Downloads
Alain T
Alain T

Re : TDM-Downloads

Alain T 792
24/10/2024 20:50
#4
Alain T 792
24/10/2024 20:50
Tente de remplacer les " " par des ' '
sauf pour SRC
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 68
24/10/2024 21:14
#5
Gérard 68
24/10/2024 21:14
Merci pour les infos ...

Ah oui le tuto , il faut que je me lance !!
Je vais étudier le module xmDoc ... l'idée c'est de récupérer une logithèque Mydownloads.
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 68
26/10/2024 19:40
#6
Gérard 68
26/10/2024 19:40
Bonjour à Tous,

Je continue sur l'adaptation d'un module Mydownloads pour Xoops 2.5.11 . J'ai vraiment bien avancé cependant il me reste un dernier point sur lequel je bute, à savoir l'enregistrement (ou modification) d'une fiche. Tout va bien tant qu'il n'y a pas de guillemet simple dans le champ Description.

Sinon, cela déclenche une erreur sql :

0,000320 INSERT INTO mydownloads_text (liddescriptionVALUES (1772'Ceci est un test de Description pour étudier l'ajout d'une fiche !!')
Error number1064
Error message
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'ajout d'une fiche !!')' at line 1



J'ai bien essayé d'échapper les guillements addSlashes() ... mais sans succès !

une idée ?
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 68
26/10/2024 21:49
#7
Gérard 68
26/10/2024 21:49
C'est bon , j'ai résolu ...
Re : TDM-Downloads
Alain T
Alain T

Re : TDM-Downloads

Alain T 792
27/10/2024 08:30
#8
Alain T 792
27/10/2024 08:30
Super.
Idéalement, ça serait top que tu expliques ce que tu as réalisé pour régler ce probleme.
L'idée, c'est de partager afin que ça puisse aider d'autres personnes.
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 68
28/10/2024 13:32
#9
Gérard 68
28/10/2024 13:32
Dans le module en cours d'adptatation 2.5.11 , il y a dans le fichier /admin/index.php, une function modDownloadS() qui sert à enregistrer une modification de fiche dans MySql et c'est cette fonction ne supportait pas la présence de simple guillemet dans le champ Descriptif :

function modDownloadS()
{
    global 
$xoopsDB$myts$eh;
    
$cid $_POST["cid"];
    if ((
$_POST["url"]) || ($_POST["url"]!="")) {
        
$url $myts->addSlashes($_POST["url"]);
    }
    
$logourl $myts->addSlashes($_POST["logourl"]);
    
$title $myts->addSlashes($_POST["title"]);
    
$homepage $myts->addSlashes($_POST["homepage"]);
    
$version $myts->addSlashes($_POST["version"]);
    
$size $myts->addSlashes($_POST["size"]);
    
$platform $myts->addSlashes($_POST["platform"]);
    
$description $myts->addSlashes($_POST["description"]);
    
$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$logourl2time(), $_POST['lid']);
    
$xoopsDB->query($sql)  or $eh->show("0013");
    
$sql sprintf("UPDATE %s SET description = '%s' WHERE lid = %u"$xoopsDB->prefix("mydownloads_text"), $description$_POST['lid']);
    
$xoopsDB->query($sql)  or $eh->show("0013");
    
redirect_header("index.php",1,_MD_DBUPDATED);
}


Pour échapper les car spéciaux, voici la correction :

// modif Hack GG
function modDownloadS()
{
    global 
$xoopsDB$myts$eh;

    
$cid intval($_POST["cid"]); // Assurez-vous que cid est un entier

    // Vérifiez si l'URL est définie
    
$url = isset($_POST["url"]) && $_POST["url"] !== "" $myts->addSlashes($_POST["url"]) : '';

    
$logourl $myts->addSlashes($_POST["logourl"]);
    
$title $myts->addSlashes($_POST["title"]);
    
$homepage $myts->addSlashes($_POST["homepage"]);
    
$version $myts->addSlashes($_POST["version"]);
    
$size intval($_POST["size"]); // Assurez-vous que size est un entier
    
$platform $myts->addSlashes($_POST["platform"]);

    
// Échappez les guillemets simples dans la description
    
$description addslashes($_POST["description"]); // Ajoutez une barre oblique inversée devant les guillemets simples

    // Préparation de la requête SQL pour mettre à jour les téléchargements
    
$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,
        
$logourl,
        
2,
        
time(),
        
intval($_POST['lid']) // Assurez-vous que lid est un entier
    
);

    
// Exécution de la requête et gestion des erreurs
    
if (!$xoopsDB->query($sql)) {
        
$eh->show("0013");
        
error_log("SQL Error: " $xoopsDB->error());
    }

    
// Préparation de la requête SQL pour mettre à jour la description
    
$sqlDescription sprintf(
        
"UPDATE %s SET description = '%s' WHERE lid = %u",
        
$xoopsDB->prefix("mydownloads_text"),
        
$description,
        
intval($_POST['lid']) // Assurez-vous que lid est un entier
    
);

    
// Exécution de la requête et gestion des erreurs
    
if (!$xoopsDB->query($sqlDescription)) {
        
$eh->show("0013");
        
error_log("SQL Error: " $xoopsDB->error());
    }

    
// Redirection après la mise à jour
    
redirect_header("index.php"1_MD_DBUPDATED);
}
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 68
28/10/2024 13:43
#10
Gérard 68
28/10/2024 13:43
Suite à la correction, j'ai torturé avec succès le module selon ce descriptif-test :

Citation :
Contrôle de qualité ! Ce logiciel est conçu pour :
- Améliorer la productivité.
- *Éviter* les erreurs humaines.
- Gérer les "tâches" complexes.

Voici quelques caractères spéciaux :
- @ # $ % ^ & * ( ) _ + { } [ ] : ; " ' , . ? /
- Une apostrophe dans une phrase : L'outil est utile.
- Un accent grave : `code`
- Des emojis


Edit : Je note que je n'ai pas pu mettre le descriptif-test complet dans ce forum car il bloque l'enregistrement de ma réponse ... dommage