Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Cataloger et UDT de téléchargement
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.13
#~ Url du site : http://terroirs77.fr/cmsmadesimple/index...ge=edition
#~ Hébergeur / Soft : OVH
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.13
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.9
#~ ModuleManager: 1.5.8
#~ News: 2.15
#~ Search: 1.7.12
#~ ThemeManager: 1.1.8
#~ CGFavs: 1.1
#~ CGExtensions: 1.45
#~ ExtendedTools: 1.3.3
#~ CGSmartImage: 1.17.2
#~ FormBuilder: 0.8.1.1
#~ Gallery: 2.0.2
#~ CGSimpleSmarty: 1.7.4
#~ CGCalendar: 1.14.6
#~ FrontEndUsers: 1.26
#~ AireLibs: 1.3.2
#~ EventsManager: 1.2.7
#~ SelfRegistration: 1.8.3
#~ Captcha: 0.5.2
#~ JQueryTools: 1.3.4
#~ CustomContent: 1.10
#~ CGContentUtils: 1.5
#~ ListIt2: 1.4.1
#~ ListIt2Listeterroirs: 1.4.1
#~ SiteMapMadeSimple: 1.2.8
#~ CGJobMgr: 1.3.4
#~ NMS: 2.9.5
#~ AdvancedContent: 0.9.4.3
#~ Cataloger: 0.11.3
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR.utf-8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.4.38
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ memory_limit: 512M
#~ max_execution_time: 300
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (0700)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: fpm-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.73
#~ Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Sur ce site en construction et en gros chantier, j'utilise Cataloger sur cette page et je cherche à placer l'UDT conseillé ici par Jean Le Chauve...

Bien content d'avoir trouvé ce Topic, car exactement ce que je cherchais... mais je n'ai pas réussi à le faire fonctionner... Je me demande s'il n'y a pas une interférence avec les fichiers téléchargeable directement dans les options de Cataloger et cet UDT !?

D'autre part, il me semble qu'il y a une "petite coquille" dans le code affiché à cette ligne !? :
Code :
[== Indéfini ==]
$filenameD = $config['root_path']."/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf";

Est-ce que ce n'est pas plutôt $filenameDP ?
et du coup, idem pour tout le reste de l'UDT !?

Mais, bon, de toutes les façons, avec ou sans, chez moi, ça ne fonctionne pas.
Il y a seulement l'icone PDF qui vient se loger devant mes fichiers Pdf placés par le module Cataloger, lui-même...

Auriez-vous une piste ?

Merci.

Bonne journée

Rolleyes
Répondre
#2

Salut,
Il n'y a pas de coquille dans l'udt.
Que tu définisses une variable $toto ou $filenameDP n'a aucune importance, cela sert uniquement à rendre la lecture du code plus aisée. Il faut connaître un minimum les bases de php pour construire un site avec cmsms.
Si ça ne fonctionne pas, c'est que tu as commis une erreur, mais comme tu ne donnes pas le code utilisé...
Je vois, par ailleurs, que tu utilises table-based pour le détail des articles et css-based pour l'affichage du catalogue. Au vu du contenu de l'article, l'usage des tables n'est pas approprié.
Et l'icône pdf ne provient pas du module cataloger, mais de la css donnée dans mon tutoriel.
Répondre
#3

Bonjour,
Oui... je sais, je suis nul en php. Sad
Mais avec ton explication, j'ai un peu mieux compris, n'est-ce pas...

Pour l'icône, j'ai bien compris qu'elle venait de la css de ton tutoriel...
Je me suis logé une icône dans le bon répertoire, collé la css dans ma feuille de style perso et hop... elle vient se coller en face des fichiers PDF appelé par le module Cataloger !!!
Donc, c'est uniquement ce que je soulignais... Je pensais la trouver devant le nom de fichier appelé par l'UDT.
Cet UDT ne fonctionnant pas... Voici le code de l'UDT :
Nom de l'UDT : downloadFiles
Code :
[== Indéfini ==]
if (!function_exists(human_filesize)) {
  function human_filesize($bytes, $decimals = 0) {
    $sz = 'BKMGTP';
    $factor = floor((strlen($bytes) - 1) / 3);
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
  }
}
$config = cmsms()->getConfig();
$filenameDP = $config['root_path']."/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf";
$filenameFT = $config['root_path']."/uploads/catalogerfiles/FichesTechniques/".$params['name']."-FT.pdf";
$filenameP = $config['root_path']."/uploads/catalogerfiles/Photos/".$params['name']."-P.zip";
if (file_exists($filenameD)||file_exists($filenameFT)||file_exists($filenameP)) {
    echo "<h3>Téléchargements</h3>";
    if (file_exists($filenameDP)) {
        echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/Dossiers/".$params['name'].".pdf\">Extraits de l'ouvrage (".human_filesize(filesize($filenameDP)).")</a></p>";
    }
    if (file_exists($filenameFT)) {
        echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/FichesTechniques/".$params['name'].".pdf\">Fiche technique (".human_filesize(filesize($filenameFT)).")</a></p>";
    }
    if (file_exists($filenameP)) {
        echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/Photos/".$params['name'].".zip\">Photos (".human_filesize(filesize($filenameP)).")</a></p>";
    }
}

J'utilise CSS-based "modifié" que voici :
Code :
[== Indéfini ==]
<div class="item">
{*<p><strong>{$title}</strong></p>*}
</br>
<table>
<tr>
<td>
<img id="item_image" name="item_image"  src="{$image_1_url}" title="{$title}" alt="{$title}" />
</td>
</tr>
</table>
<p><strong>{section name=at loop=$attrlist}
{eval var=$attrlist[at].key}</strong></p>
{/section}
{literal}<script type="text/javascript">function repl(img)   {   document.item_image.src=img;   }</script>
{/literal}
<td>
{if $file_count > 0}<ul class="files">{section name=ind loop=$file_name_array}<li><a href="{$file_url_array[ind]}">{$file_name_array[ind]}</a></li>{/section}</ul>{/if}
</td>

<div class="download">Téléchargement{downloadFiles name=$page_alias}</div>
</div>

et pour la catégorie :
Code :
[== Indéfini ==]
{*$title*}
<div class="category_item">
{section name=numimg loop=$image_url_array}
<img src="{$image_url_array[numimg]}" alt="{$title}" title="{$title}" />
{/section}
{$notes}<div class="category_items">  
{*{if $hasnav == 1}<div class="catnav">{$prev}{$navstr}{$next}</div>    {/if}*}
{section name=numloop loop=$items}
<div class="category_item">
<a href="{$items[numloop].link}"><img src="{$items[numloop].image}"
title="{$items[numloop].title}" alt="{$items[numloop].title}"/></a><br />
<a href="{$items[numloop].link}">{$items[numloop].title}</a></div>    {/section}    
{*{if $hasnav == 1}<div class="catnav">{$prev}{$navstr}{$next}</div>    {/if}*}
</div>
</div>

J'ai transformé ces codes d'affichage d'après ceux fournis pour ne pas les détériorer...
Pour le contenu de l'article, effectivement, je peux me passer des tables...

J'espère que je fournis bien les codes.

Rolleyes
Répondre
#4

Quelle balise d'appel pour l'udt "downloadFiles" utilises-tu ?
Tu as copié mon udt telle quelle ? Sans modification des chemins ?

Il y a effectivement une erreur dans l'affichage du lien, j'ai oublié le suffixe ($params['name']."-DP.pdf):
Code :
...
echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf\">Extraits de l'ouvrage (".human_filesize(filesize($filenameDP)).")</a></p>";
{* corriger les autres ancres *}
Explications de code :
Code :
{*
$params['name'] récupère le paramètre donné dans la balise d'appel de l'udt :
Ici $page_alias, le nom de l'alias de la page dans laquelle est appelée l'udt.
Ensuite on lui concatène le suffixe -DP.pdf
ex : $filenameDP = http: //site.fr/uploads/catalogerfiles/Dossiers/aliasdepage-DP.pdf
*}
$filenameDP = $config['root_path']."/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf";
...
{* s'il y a un fichier correspondant à $filenameDP, affiche-le dans une ancre *}
if (file_exists($filenameDP)) {
        echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf\">Extraits de l'ouvrage (".human_filesize(filesize($filenameDP)).")</a></p>";
    }

Pour les suffixes DP, P et FT, ils correspondent à Dossier de présentation, Photos et Fiches techniques. A toi de les adapter suivant tes besoins, ex. : EO pour Extraits de l'ouvrage...
Ils sont là pour différencier les noms de fichiers afin que le rédacteur soit certain de les avoir mis dans le bon dossier.
Si tu n'as que des fichiers "extraits de l'ouvrage", tu n'as pas besoin de tout recopier (de même, l'utilisation d'un suffixe est superflu, il ne sert qu'à être certain que les fichiers sont dans le bon dossier et pour qu'ils aient un nom différent sont) :
Code :
if (!function_exists(human_filesize)) {
  function human_filesize($bytes, $decimals = 0) {
    $sz = 'BKMGTP';
    $factor = floor((strlen($bytes) - 1) / 3);
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
  }
}
$config = cmsms()->getConfig();
$filename = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name'].".pdf";
if (file_exists($filename) {
    echo "<h3>Téléchargements</h3>";
    echo "<p><a target='_blank' href='".$filename."'>Extraits de l'ouvrage (".human_filesize(filesize($filename)).")</a></p>";
}

Ensuite, tu vas avoir un problème : tu veux afficher 3 fichiers alors que le code n'en prévoit qu'un par "suffixe". Il faut soit modifier le code, soit que tu regroupes tes pdf en un seul fichier ou que tu les zippes.
Tu dois me dire si tu vas mettre d'autres fichiers en téléchargement (photos...) pour que je puisse modifier le code en fonction.
Répondre
#5

Bon, demie victoire !!!

En fait, j'essayais d'appliquer l'UDT à des articles existant et ça coinçait... j'en ai créé un nouveau et ça fonctionne

Voici ma balise d'appel
Code :
[== Indéfini ==]
<div class="download">Téléchargement{downloadFiles name=$page_alias}</div>
</div>
et ça fonctionne sur cet article ... en revanche, le téléchargement ne fonctionne que si je change l'URL à cause de mon foutu dossier "cmsmadesimple" !!!
Il faut que je retrouve dans le forum, les critiques que l'on m'a déjà faites à ce propos sur un autre site.

En revanche, deux petites choses :

j'ai dû faire une petites modif dans ton UDT pour que le bon fichier soit appelé... :

echo "<p><a target='_blank' href=\"/uploads/catalogerfiles/Dossiers/".$params['name']."-DP.pdf\">Extraits de l'ouvrage (".human_filesize(filesize($filenameD)).")</a></p>";

sans ajouter "-DP", il ne m'appelait que le fichier en reprenant l'alias seul !

Et puis autre petit souci esthétique,
J'avais collé une classe CSS au mot "Téléchargement" mais évidemment elle n'affecte pas l'UDT... et ça je sais pas faire.

Merci pour ce topic qui répondait pile à ma recherche.
Pour le reste (look de mon catalogue), je vais y bosser.

Rolleyes
Répondre
#6

Attention, j'ai modifié le code de mon message précédent.
Répondre
#7

Je constate avec satisfaction que tu n'es plus si "nul" en php, puisque tu as trouvé et réparé l'oubli du suffixe Smile
Répondre
#8

Ah! merci... un peu de pommade pour finir l'après-midi Big Grin :lol:
En revanche, je me rends bien compte que ce foutu dossier "cmsmadesimple" me mets une pagaille sans nom !
C'est l'installation automatique d'OVH du CMS qui organise cela ainsi...
On m'avait conseillé de tout déplacer le contenu de mon site sous la racine www.
Ouaip, je viens d'essayer, évidemment, je perds l'accès à l'admin et quand je retrace l'URL de l'admin, je n'ai plus accès à son contenu.
Je l'ai pourtant fait pour un autre site !
Pourrais-tu me rappeler la méthode ?
Faut-il tout réinstaller ou bien s'agit-il du .htacces qu'il faut réécrire et comment ?
merci

Rolleyes
Répondre
#9

Citation :J'avais collé une classe CSS au mot "Téléchargement" mais évidemment elle n'affecte pas l'UDT... et ça je sais pas faire.
Là, par contre...
if (file_exists($filename) {
echo "<h5 class="taClasse">Téléchargements</h5>";
ou encore
.download h5{}
...
Répondre
#10

Pose ta question dans un nouveau post en ajoutant tous les éléments nécessaires, en particulier les dns et les redirections actives. Je suis certain que notre spécialiste de la question Jce résoudra ton problème.
Répondre
#11

Ah ! Alors...
Aucune des deux solutions ne fonctionnent dans l'UDT...
Mais j'ai réussi avec ça :

Dans le sous-gabarit, j'appelle la balise ainsi :

Code :
[== Indéfini ==]
<div class="download">{downloadFiles name=$page_alias}</div>
et dans l'UDT, j'ai ceci :
Code :
[== Indéfini ==]
{
    echo "Téléchargements";
Et ça marche ! :lol:
Je vais passer une bonne soirée...

Bon, j'ai toujours pas de solution pour mon foutu répertoire "cmsmadesimple"...
...effectivement, je vais faireun nouveau post.
Je suis opiniâtre... Rolleyes

Encore Merci.

Rolleyes
Répondre
#12

Bonjour,

Pour continuer sur Cataloger et les fichiers de téléchargement...
Et comme je l'évoquais hier...

Il y a t-il un moyen d'afficher avec ta solution, plusieurs fichiers du même type, > plusieurs PDF en même temps !?

Bonne journée, merci.

Rolleyes
Répondre
#13

Citation :Ensuite, tu vas avoir un problème : tu veux afficher 3 fichiers alors que le code n'en prévoit qu'un par "suffixe". Il faut soit modifier le code, soit que tu regroupes tes pdf en un seul fichier ou que tu les zippes.
Tu dois me dire si tu vas mettre d'autres fichiers en téléchargement (photos...) pour que je puisse modifier le code en fonction.
Répondre
#14

Bonjour, merci pour ce message. Wink
Citation :Il faut soit modifier le code, soit que tu regroupes tes pdf en un seul fichier ou que tu les zippes.
Tu dois me dire si tu vas mettre d'autres fichiers en téléchargement (photos...) pour que je puisse modifier le code en fonction.
Je ne mets en téléchargement que des PDF.
Mais comme ce sont des extraits de gros bouquins avec un gros contenu icono... ils sont assez lourds.
Même bien compressés, j'ai des pdf de 10 Mo donc je les coupe en 3...
Si je les zippe, on va me dire "comment on fait avec ces fichiers ... ?" !?!
Moi qui suis "nul en php", je peux te dire qu'il y a plus nul que moi en .zip, .rar, ... etc.
Donc, "il me semble" que la meilleur solution est de proposer 3 pdf.

Rolleyes
Répondre
#15

Citation :ce sont des extraits de gros bouquins
Tu es l'auteur ? ou tu as le droit de diffuser ces "GROS extraits" ?

J-C Etiemble v 2.2.xx
Répondre
#16

Alors, c'est facile, un peu d'hémisphère gauche et hop :
Code :
[== Indéfini ==]
if (!function_exists(human_filesize)) {
  function human_filesize($bytes, $decimals = 0) {
    $sz = 'BKMGTP';
    $factor = floor((strlen($bytes) - 1) / 3);
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
  }
}
$config = cmsms()->getConfig();
$filename1 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part1.pdf";
$filename2 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part2.pdf";
$filename3 = $config['root_path']."/uploads/catalogerfiles/extraitsOuvrage/".$params['name']."-part3.pdf";
if (file_exists($filename1) {    
echo "<h3>Téléchargements</h3>";
    echo "<p><a target='_blank' href='".$filename1."'>Extraits de l'ouvrage partie 1 (".human_filesize(filesize($filename)).")</a></p>";
}
if (file_exists($filename2) {
echo "<p><a target='_blank' href='".$filename2."'>Extraits de l'ouvrage partie 2 (".human_filesize(filesize($filename)).")</a></p>";
}
if (file_exists($filename3) {
echo "<p><a target='_blank' href='".$filename3."'>Extraits de l'ouvrage partie 3 (".human_filesize(filesize($filename)).")</a></p>";
}
Tes fichiers devront avoir les suffixes requis.
Ce code n'est pas optimisé car tu ne sauras jamais combien de fichiers il pourrait y avoir.
Puisque tu es là pour apprendre, à toi d'améliorer ce code pour le rendre dynamique avec scandir() et foreach(). Merci de nous communiquer tes résultats Smile.
Répondre
#17

Citation :Tu es l'auteur ? ou tu as le droit de diffuser ces "GROS extraits" ?
Big Grin Oui... j'ai le droit de diffuser de gros extraits !
Je suis le metteur en page et... co-auteur et j'ai l'accord des autres co-auteurs et je le fais sur leur demande pour l'association éditrice ! ! Wink

Citation :Alors, c'est facile, un peu d'hémisphère gauche et hop :

Chouette... je vais faire chauffer mon hémisphère gauche... pourvu que le droit me fiche la paix ! :lol:
J'examine ce que tu m"envoies et je te donne le résultat aussitôt terminé !
Merci beaucoup... beaucoup.

Rolleyes
Répondre
#18

Bon, je poste ici... car ça concerne Cataloger apparemment...

Après échange avec JLChauve sur ce post...

Je viens d'upgrader la dernière version CMS en faisant auparavant une sauvegarde du site en totalité. Il est en construction, donc, il n'y a pas grand chose dedans ! Ce qui m'a quand même surpris c'est de trouver une base de donnée totalement vide au point qu'il m'a été impossible d'en faire une sauvegarde :
[Image: phpmyadmin.jpg]
Ce n'est bien sûr pas bien grave pour le contenu... Mais c'est bizarre !? Rolleyes
D'ailleurs, finalement le contenu du site n'a pas changé... sauf pour Cataloger qui n'affiche plus ses images et qui n'en accepte plus non plus ! - Je viens d'ajouter un article "Essai" et rien... !
Alors, là, c'est très gênant... !
Je ne comprends pas bien !? Les textes du site, eux... n'ont pas bougé et les images téléchargées il y a quelques jours sont toujours dans leurs répertoires... j'ai posé une galerie ici pour voir ...
Comprends pô Sad

Une piste ?

Merci bonne journée

Rolleyes
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)