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

TDM-Downloads

Gérard 74
2024/10/24 19:56
#1
Gérard 74
2024/10/24 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 :

Quote:
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 816
2024/10/24 20:13
#2
Alain T 816
2024/10/24 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 816
2024/10/24 20:34
#3
Alain T 816
2024/10/24 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 :
Quote:
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 816
2024/10/24 20:50
#4
Alain T 816
2024/10/24 20:50
Tente de remplacer les " " par des ' '
sauf pour SRC
Re : TDM-Downloads
Gérard
Gérard

Re : TDM-Downloads

Gérard 74
2024/10/24 21:14
#5
Gérard 74
2024/10/24 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 74
2024/10/26 19:40
#6
Gérard 74
2024/10/26 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 (lid, description) VALUES (1772, 'Ceci est un test de Description pour étudier l'ajout d'une fiche !!')
Error number: 1064
Error message
: You have an error in your SQL syntax; check 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 74
2024/10/26 21:49
#7
Gérard 74
2024/10/26 21:49
C'est bon , j'ai résolu ...
Re : TDM-Downloads
Alain T
Alain T

Re : TDM-Downloads

Alain T 816
2024/10/27 8:30
#8
Alain T 816
2024/10/27 8: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 74
2024/10/28 13:32
#9
Gérard 74
2024/10/28 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, $logourl, 2, time(), $_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 74
2024/10/28 13:43
#10
Gérard 74
2024/10/28 13:43
Suite à la correction, j'ai torturé avec succès le module selon ce descriptif-test :

Quote:
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