[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 09/05/2012
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : Ovh
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour, alors voilà une partie de mon gabarit :
Code :
[== HTML ==]
{* Affiche les fichiers a telecharger *}
{page_attr key="extra3" assign="ex3"}
{capture block="telechargements" assign='fichier'}
{telechargements name= $ex3}
{/capture}
{if $ex3 != "" && $ex2 !=""}
{if $fichier !=""}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-78px;">
{$dl}
{/if}
</div>
{else}
{if !isempty($fichier)}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">
{$dl}
</div>
{/if}
{/if}
{*Fin telechargement*}
si l'attribut 2 est absent le bloc téléchargement si positionne bien, pareil si l'attribut 2 n'est pas renseigné.
Mon problème (encore un
) est que je rempli tous les champs ex3 avec leur valeur, du coup avec mon code il m'affiche l’icône même s'il n'y a aucun fichier dans le dossier. J'ai essayé d'utiliser la balise capture comme pour les news mais hélas ça ne marche pas (bizarre :lol: ). Si vous avez une idée je suis preneur...
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 09/05/2012
Pourquoi utilises-tu !isempty($fichier) ?
Ce ne serait pas mieux avec if (file_exists($fichier)) ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 09/05/2012
Effectivement c'est mieux. Par contre maintenant il ne m'affiche plus rien, même quand un fichier est présent...
Code :
[== HTML ==]
{* Affiche les fichiers a telecharger *}
{page_attr key="extra3" assign="ex3"}
{capture assign='fichier'}
{telechargements name= $ex3}
{/capture}
{if $ex3 != "" && $ex2 !=""}
{if (file_exists($fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-78px;">
{$fichier}
</div>
{/if}
{else}
{if (file_exists($fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">
{$fichier}
</div>
{/if}
{/if}
{*Fin telechargement*}
Pourtant je test si "mon fichier existe" alors j'affiche, ça devrait fonctionner non ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 09/05/2012
En fait j'ai le même problème pour mes news, j'ai du halluciné je croyais que ça fonctionnait mais en fait non... J'ai toujours le template qui est affiché même si la catégorie ne contient pas de news
Code :
[== Indéfini ==]
{*News defilantes *}
{page_attr key="extra1" assign="ex1"}
{if $ex1 != ""}
{*On test si des news existes dans la categorie*}
{capture assign="nouvelle"}
{news number='3' category=$ex1 detailpage='info-actu' summarytemplate='slide_01' lang='fr_FR'}
{/capture}
{if $nouvelle != ""}
{$nouvelle}
{/if}
{/if}
{* Fin news defilantes *}
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 09/05/2012
Fais un petit {get_template_vars} pour connaître les valeurs de tes variables.
Essaye avec $smarty.capture.nomVariableCapturee quand tu veux utiliser la variable capturée : {if $smarty.capture.nouvelle != ""}
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
D'abord merci de te pencher sur mon problème.
J'ai testé ce code :
Code :
[== HTML ==]
{*News defilantes *}
{page_attr key="extra1" assign="ex1"}
{if $ex1 != ""}
{*On test si des news existes dans la categorie*}
{capture name=nouvelle}
{news number='3' category=$ex1 detailpage='info-actu' summarytemplate='slide_01' lang='fr_FR'}
{/capture}
{if $smarty.capture.nouvelle != ""}
{$smarty.capture.nouvelle}
{/if}
{/if}
{* Fin news defilantes *}
Toujours le même résultat...
Pour le {get_template_vars}, voici ce que contient la variable nouvelle :
- sur une page sans news, nouvelle n'apparait pas
- sur une page avec news :
Code :
[== Indéfini ==]
nouvelle = <!-- Displaying News Module -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="modules/NewsSlides/Linking/js/slides.min.jquery.js"></script>
<script>
$(function(){
// Set starting slide to 1
var startSlide = 1;
// Get slide number if it exists
if (window.location.hash) {
startSlide = window.location.hash.replace('#','');
}
// Initialize Slides
$('#slides').slides({
preload: true,
preloadImage: 'modules/NewsSlides/Linking/img/loading.gif',
generatePagination: true,
play: 5000,
pause: 2500,
hoverPause: true,
// Get the starting slide
start: startSlide,
animationComplete: function(current){
// Set the slide number as a hash
window.location.hash = '#' + current;
}
});
});
</script>
<div id="container">
<div id="example">
<div id="slides">
<div class="slides_container">
<div class="slide">
<div style="font-weight:bold;" class="NewsSummaryLink">
<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=78&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125" title="L'APPUI 72 oeuvre pour les enfants en souffrance">L'APPUI 72 oeuvre pour les enfants en souffrance</a>
</div>
<div style="font-size:x-small;" class="NewsSummaryPostdate">
27/09/2011
</div>
<div style="font-size:x-small;" class="NewsSummarySummary">
<img style="float: left;" src="uploads/images/images_info_actu/vignettes/appui72-petit.png" alt="" width="100" height="62" />Pour la deuxième année consécutive,l'APPUI 72 met en place une action à destination des enfants de 6 à 9 ans, témoins de violences conjugales ou intrafamiliales.Le service propose ainsi un espace d'expression thérapeutique sécurisant, afin d'encourager les enfants à développer des stratégies de protection. Neuf rencontres de 2 heures avec des professionnels de l'enfance sont ainsi prévues, à la salle municipale du quartier des Sablons. Grâce à la contribution de la Ville du Mans, aucune participation n'est demandée aux familles.
</div>
<div style="font-size:xx-small" class="NewsSummaryMorelink">
[<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=78&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125">Plus</a>]
</div>
</div>
<div class="slide">
<div style="font-weight:bold;" class="NewsSummaryLink">
<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=24&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125" title="Journée internationale des femmes">Journée internationale des femmes</a>
</div>
<div style="font-size:x-small;" class="NewsSummaryPostdate">
03/03/2010
</div>
<div style="font-size:x-small;" class="NewsSummarySummary">
<p>"Droits égaux, Opportunités égales : Progrès pour tous" est le thème officiel de la <span style="color: #993366;"><strong>Journée Internationale de la Femme 2010</strong>. </span>Grâce au "<strong>Collectif du 8 mars</strong>" et en partenariat avec la <strong>Maison de l'Europe</strong>, la déclinaison sarthoise de cette journée sera aux couleurs européennes.</p>
<p>Au programme, deux débats :<br />1er thème : <span style="color: #993366;"><strong>Egalité femmes-hommes dans la vie professionnelle et en politique</strong></span><br />2ème thème : <span style="color: #993366;"><strong>Lutte contre les violences faites aux femmes</strong>.</span></p>
</div>
<div style="font-size:xx-small" class="NewsSummaryMorelink">
[<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=24&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125">Plus</a>]
</div>
</div>
<div class="slide">
<div style="font-weight:bold;" class="NewsSummaryLink">
<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=19&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125" title=""APPUI TOIT" : un accueil familial pour les femmes victimes de violences conjugales">"APPUI TOIT" : un accueil familial pour les femmes victimes de violences conjugales</a>
</div>
<div style="font-size:x-small;" class="NewsSummaryPostdate">
03/02/2010
</div>
<div style="font-size:x-small;" class="NewsSummarySummary">
<img style="margin-left: 10px; margin-right: 10px; float: left;" src="uploads/images/images_info_actu/convention.jpg" alt="" width="186" height="123" />Dans le cadre de l’expérimentation de l’accueil familial des femmes victimes de violences au sein du couple, une convention cadre a été signée par <strong>Emmanuel BERTHIER</strong> Préfet de la Sarthe, <strong>Roland du LUART</strong>, Président du Conseil général et <strong>Gérard GALIENNE,</strong> Président de l’association Montjoie, ce lundi 1er février.
</div>
<div style="font-size:xx-small" class="NewsSummaryMorelink">
[<a href="http://www.montjoie.asso.fr/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=19&cntnt01origid=178&cntnt01lang=fr_FR&cntnt01returnid=125">Plus</a>]
</div>
</div>
<!-- End News Display Template -->
</div>
<a href="#" class="prev"><img src="uploads/images/slideNews/arrow-prev.png" width="24" height="43" alt="Arrow Prev"></a>
<a href="#" class="next"><img src="uploads/images/slideNews/arrow-next.png" width="24" height="43" alt="Arrow Next"></a>
</div>
<img src="modules/NewsSlides/Linking/img/example-frame.png" width="539" height="341" alt="Example Frame" id="frame">
</div>
</div>
[/*]
Il a pourtant l'air de bien les reconnaitre mes news...
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
$nouvelle fonctionne, c'est déjà bien de le savoir
Si je comprend bien ton problème, le gabarit des news s'affiche, même s'il n'y a pas d'article dans la catégorie spécifiée dans la balise.
Essaye ceci : {capture assign=ex1}{page_attr key="extra1"}{/capture}
et en ne mettant pas de quote pour l'assign si capture.
Ceci également : {telechargements name= $ex3} -> {telechargements name=$ex3}
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Attends
Laisses-moi quelques minutes pour trouver la bonne méthode.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Voilà pour tes news :
Code :
{page_attr key="extra1" assign=ex1} {if $ex1 ne ''}{capture assign="nouvelle"} {News category=$ex1}{/capture}{if $itemcount > 0}{$nouvelle} {/if}{/if}
Le problème venait que ta condition devait connaître s'il y a des news dans la catégorie demandée, c'est fait avec itemcount > 0.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
Pour "détaillé" mon problème : je souhaite afficher les news de manière défilante, pour ce faire j'utilise le module présenter ici :
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4072. Si pas de news pas de slide, s'il existe une ou plusieurs news dans la catégorie on les affiche.
Les news sont organiser de la façon suivante (pour la catégorie) : NewsSite | Pôles territoriaux | Sarthe (72) | LAPPUI72, par exemple sur la page de LAPPUI72 l'attr1 vaut LAPPUI72.
Dans le gabarit j'utilise donc le code suivant :
Code :
[== Indéfini ==]
{page_attr key="extra1" assign=ex1}
{if $ex1 ne ''}
{capture assign="nouvelle"}
{news category=$ex1}
{/capture}
{if itemcount > 0}
{news number='3' category=$ex1 detailpage='info-actu' summarytemplate='slide_01' lang='fr_FR'}
{/if}{/if}
La balise smarty {get_template_vars} m'indique bien que la variable nouvelle existe (comme précédemment) mais je n'ai toujours pas d'affichage.
Je m'attaquerai aux téléchargements après...
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Pour ton fichier, donne le code complet.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
Pardon, tu veux quel fichier ? Mon gabarit ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Juste une petite erreur
: $itemcount et pas itemcount
Donc, pour ton cas précis :
Code :
{page_attr key="extra1" assign=ex1}
{if $ex1 ne ''}{capture assign="nouvelle"}{news number='3' category=$ex1 detailpage='info-actu' summarytemplate='slide_01' lang='fr_FR'}{/capture}
{if $itemcount > 0}{$nouvelle}{/if}
{/if}
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Pour les téléchargements : le gabarit et l'udt {telechargements} et {$dl}, tout ce qui a un rapport.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
Merci beaucoup, le petit $ a tout changé. Les news fonctionnent correctement
Pour les téléchargement :
l'udt :
Code :
[== PHP ==]
/* repertoire du dossier */
$config = cmsms()->getConfig();
$dir = $config['root_path']."/uploads/telechargements/".$params['name'];
$dh = opendir($dir);
$i=0;
while ( $file = readdir($dh) )
{
/* enleve les fichiers . et .. */
if ($file != '.' && $file != '..')
{
/* on passe les datas dans un tableau */
$ListFiles[$i]=$file;
$i++;
}
}
closedir($dh);
/* tri par ordre decroissant */
if(count($ListFiles)!=0)
{
if($list_tri == 'DESC')
{
rsort($ListFiles);
}
else
{
sort($ListFiles);
}
}
if(count($ListFiles)!=0)
{
echo '<ul style="line-height:0px;">';
/* on affiche chaque element */
foreach($ListFiles as $elem)
{
if (preg_match("#.pdf$#", $elem)) {
$icon="Pdf.png";
} elseif (preg_match("#.xlsx$#", $elem)) {
$icon="Excel.png";
} elseif (preg_match("#.xls$#", $elem)) {
$icon="Excel.png";
} elseif (preg_match("#.docx$#", $elem)) {
$icon="Word.png";
} elseif (preg_match("#.doc$#", $elem)) {
$icon="Word.png";
} elseif (preg_match("#.pptx$#", $elem)) {
$icon="PowerPoint.png";
} elseif (preg_match("#.ppt$#", $elem)) {
$icon="PowerPoint.png";
} elseif (preg_match("#.ppsx$#", $elem)) {
$icon="PowerPoint.png";
} elseif (preg_match("#.pps$#", $elem)) {
$icon="PowerPoint.png";
} elseif (preg_match("#.zip$#", $elem)) {
$icon="Zip.png";
}else {
$icon="inconnu.png";
}
echo '<div align="center" style="text-align:left; margin-left:50px;"><li style="list-style-type:none;"><a href="/uploads/telechargements/'.$params['name'].'/'.$elem.'"><img src="uploads/telechargements/icones/'.$icon.'" title="'.$elem.'"></a>
<a href="/uploads/telechargements/'.$params['name'].'/'.$elem.'" title="'.pathinfo($elem,PATHINFO_FILENAME).'">'.pathinfo($elem,PATHINFO_FILENAME).'</a></li><br/></div>';
} //Fin du foreach
} //Fin du if
Pour les fichiers j'utiliserai un css par la suite
Mon gabarit :
Code :
[== Indéfini ==]
{* Affiche les fichiers a telecharger *}
{page_attr key="extra3" assign="ex3"}
{capture assign='fichier'}
{telechargements name= $ex3}
{/capture}
{if $ex3 != "" && $ex2 !=""}
{*if (file_exists($fichier))*}
{if (file_exists($smarty.capture.fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-78px;">
{$fichier}
</div>
{/if}
{else}
{*if (file_exists($fichier))*}
{if (file_exists($smarty.capture.fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">
{$fichier}
</div>
{/if}
{/if}
{*Fin telechargement*}
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Je teste et je te dis quoi.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Il y a déjà un problème au niveau du $dir de l'udt : H:\wamp\www\1.10.3/uploads/images/logo1.gif.
Donc : $dir = $config['root_path']."\uploads\telechargements\\".$params['name'];
Attention, \ est un caractère d'échappement, il faut donc le doubler avant le double quote.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
Pour cette ligne : $dir = $config['root_path']."\uploads\telechargements\\".$params['name'];
C'est pas plutôt comme ça : $dir = $config['root_path']."/uploads/telechargements//".$params['name'];
Mon code marchait plutôt bien (même s'il a des défauts comme tu me le montres et merci de le faire).
du coup en changeant cette ligne quand je fais {get_template_vars} : j'obtiens
Code :
[== Indéfini ==]
ex3 = LAPPUI72
fichier = <ul style="line-height:0px;"><div align="center" style="text-align:left; margin-left:50px;"><li style="list-style-type:none;"><a href="/uploads/telechargements/LAPPUI72/présence u19.xlsx"><img src="uploads/telechargements/icones/Excel.png" title="présence u19.xlsx"></a>
<a href="/uploads/telechargements/LAPPUI72/présence u19.xlsx" title="présence u19">présence u19</a></li><br/></div>
donc il récupère bien mon fichier.
Maintenant je voudrais faire comme les news, si pas de fichier dans le dossier je n'affiche rien (pour le moment j'ai un logo download tout le temps).
Code :
[== Indéfini ==]
{* Affiche les fichiers a telecharger *}
{page_attr key="extra3" assign="ex3"}
{capture assign='fichier'}
{telechargements name= $ex3}
{/capture}
{if $ex3 != "" && $ex2 !=""}
{*if (file_exists($fichier))*}
{if (file_exists($smarty.capture.fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-78px;">
{$fichier}
</div>
{/if}
{else}
{*if (file_exists($fichier))*}
{if (file_exists($smarty.capture.fichier))}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">
{$fichier}
</div>
{/if}
{/if}
{*Fin telechargement*}
Mon soucis doit venir d'ici non ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Je suis sans doute un peu lent, mais je ne comprends pas ce que tu souhaites obtenir en définitive.
S'il y a au moins 1 fichier dans le répertoire /telechargements, tu souhaites l'afficher avec l'icône correspondant à son extension, c'est bien cela ?
Que mets-tu dans extra 2 ?
Extra 3 est un sous-dossier de telechargement, exact ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 10/05/2012
Non c'est moi qui doit mal m’exprimer
Au début j'avais juste ce code :
Code :
[== Indéfini ==]
{* Affiche les fichiers a telecharger *}
{page_attr key="extra3" assign="ex3"}
{if $ex3 != "" && $ex2 !=""}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-78px;">
{telechargements name= $ex3}
</div>
{else}
<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">
{telechargements name= $ex3}
</div>
{/if}
{*Fin telechargement*}
Qui m'affiche bien ça :
extra 2 c'est le cadre avec les coordonnées, je teste juste dans le cas ou il n'y pas de cadre, d'afficher le "bloc" téléchargement au centre.
extra 3 : exact c'est mon sous dossier (par exemple pour cette page ext3=LAPPUI72, ce qui me renvoie au dossier uploads/telechargements/LAPPUI72)
Maintenant si c'est faisaible, j'aimerai que si le dossier LAPPUI72 est vide (donc pas de fichier mais le dossier existe) qu'il ne m'achiffe pas l’icône du dossier
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
Ok, je regarde.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 10/05/2012
J'ai trouvé ton code trop complexe pour le résultat que tu désirais obtenir.
J'en ai refait un nouveau : UDT (ne pas oublier de virer toute la css de la div pour la mettre dans le fichier css)
Code :
[== Indéfini ==]
$config = cmsms()->getConfig();
$dir=$config["uploads_path"].DIRECTORY_SEPARATOR.'telechargements'.DIRECTORY_SEPARATOR.$params['name'].DIRECTORY_SEPARATOR;
echo $dir;
$url = './uploads/telechargements/'.$params['name'].'/';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ('file' == filetype($dir . $file)) {
echo '<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 160px; padding:2px ; border-left:1px; border-right:1px; border-bottom:1px; border-top:1px; height:72px; margin-top:-10px;">';
echo '<a href="'.$url.$file.'">'.$file.'</a></div>';
}
}
closedir($dh);
}
}
DIRECTORY_SEPARATOR équivaut à '\\'
Gabarit :
Code :
{page_attr key="extra3" assign="ex3"}
{telechargements name=$ex3}
Comme cela, si tu as plusieurs fichiers, il les affiche tous, et, s'il n'y en a pas, il n'affiche rien.
Et pour l'affichage des icônes d'extension de fichier, tu fais comme je te l'ai expliqué dans ton autre post :
http://www.cmsmadesimple.fr/forum/viewtopic.php?pid=27105#p27105
ATTENTION au nom des fichiers uploadés : pas d'accent ni de caractères spéciaux.
Pour ton extra key 2, soit tu crées une seconde UDT telechargementsCentre et tu poses ta condition dans le gabarit, soit tu récupères le paramètre dans l'udt et tu crées ta condition.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 11/05/2012
Merci, je test ça ce weekend (je suis en déplacement aujourd'hui).
Une question me traine dans la tête : pour les news, tu penses que je peux adapté mon code au gabarit de la news directement ? Ainsi dans les gabarits je n'aurais qu'à utiliser la balise {news...} au lieu de faire les tests, comme ça à la moindre modification je n'aurai qu'un fichier à modifier et non tous les gabartis ?
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Jean le Chauve - 11/05/2012
Celtic MAn a écrit :Une question me traine dans la tête : pour les news, tu penses que je peux adapté mon code au gabarit de la news directement ? Ainsi dans les gabarits je n'aurais qu'à utiliser la balise {news...} au lieu de faire les tests, comme ça à la moindre modification je n'aurai qu'un fichier à modifier et non tous les gabartis ?
Tu parles de quel code ? Celui du téléchargement de fichier ? C'est lui que tu veux inclure dans le gabarit des news ?
Si oui, je pense que tu devrais y arriver sans trop de difficultés.
[Résolu]Le retour de ma balise qui liste les fichiers d'un dossier -
Celtic MAn - 11/05/2012
Non celui des news, pour l'afficage des news (je passe du "coq à l'âne" désolé).
Code :
[== Indéfini ==]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="modules/NewsSlides/Linking/js/slides.min.jquery.js"></script>
<script>
{literal}
$(function(){
// Set starting slide to 1
var startSlide = 1;
// Get slide number if it exists
if (window.location.hash) {
startSlide = window.location.hash.replace('#','');
}
// Initialize Slides
$('#slides').slides({
preload: true,
preloadImage: 'modules/NewsSlides/Linking/img/loading.gif',
generatePagination: true,
play: 5000,
pause: 2500,
hoverPause: true,
// Get the starting slide
start: startSlide,
animationComplete: function(current){
// Set the slide number as a hash
window.location.hash = '#' + current;
}
});
});
{/literal}
</script>
<div id="container">
<div id="example">
<div id="slides">
<div class="slides_container">
{foreach from=$items item=entry}
<div class="slide">
<div style="font-weight:bold;" class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>
{if $entry->postdate}
<div style="font-size:x-small;" class="NewsSummaryPostdate">
{$entry->postdate|cms_date_format}
</div>
{/if}
{if $entry->summary}
<div style="font-size:x-small;" class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
<div style="font-size:xx-small" class="NewsSummaryMorelink">
[{$entry->morelink}]
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{if isset($entry->extra)}
<div class="NewsSummaryExtra">
{eval var=$entry->extra}
{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}
</div>
{/if}
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
</div>
{/foreach}
<!-- End News Display Template -->
</div>
<a href="#" class="prev"><img src="uploads/images/slideNews/arrow-prev.png" width="24" height="43" alt="Arrow Prev"></a>
<a href="#" class="next"><img src="uploads/images/slideNews/arrow-next.png" width="24" height="43" alt="Arrow Next"></a>
</div>
<img src="modules/NewsSlides/Linking/img/example-frame.png" width="539" height="341" alt="Example Frame" id="frame">
</div>
</div>
Penses tu que je peux intégrer les tests que tu m'as montré directement dans ce gabarit ?
Code :
[== Indéfini ==]
{if $itemcount > 0}
Comme ça j'aurais :
Code :
[== Indéfini ==]
{page_attr key="extra1" assign=ex1}
{if $ex1 ne ''}
{news number='3' category=$ex1 detailpage='info-actu' summarytemplate='slide_01' lang='fr_FR'}
{/if}
Mais je sais pas si ça va marcher par rapport à la catégorie...