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

[Résolu] Variable irrécupérable pour afficher une gallery
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.4
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.3
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.4
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.10
#~ Search: 1.7.7
#~ ThemeManager: 1.1.7
#~ FormBuilder: 0.7.3
#~ Gallery: 1.6
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression:
#~ max_upload_size: 20000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 3000
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 20M
#~ session_save_path: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.30
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

ce soir (enfin cette nuit ^^), je fais face à un problème qui me semblait simplissime, mais que je n'arrive pas à résoudre, voilà le topo :

Dans mon template, j'ai inséré ce code :
Code :
[== Indéfini ==]
{capture name='galerie'}{content oneline='true'}{/capture}

Puis :
Code :
[== Indéfini ==]
{Gallery dir='{$smarty.capture.galerie}'}

L'intérêt ? L'utilisateur a juste à saisir le nom de la galerie dans le champ {content} qui affiche alors la galerie correspondante.
Le problème, c'est que la variable est à l'intérieur de {Gallery} et ça ne fonctionne pas. J'arrive à capturer la variable entré dans {content}, je la vois, mais impossible de la faire fonctionner en corrélation avec Gallery.

Je dois passer à côté d'un détail...

Merci beaucoup pour votre aide,
Bonne soirée (nuit ^^),
Marouy
#2

Pas besoin de capture : {Gallery dir=$content} Cool
#3

1. Merci, je vais essayer. Et je peux tout de même passer des paramètres à content (oneline="true) ?

2. Question subsidiaire : est-il possible de ne pas générer de vignettes avec Gallerie ? En effet, j'ai une fonction qui tourbe dans une balise utilisateur qui permet d'afficher des images d'un dossier créé avec gallery de manière aléatoire, mais je ne veux pas de vignette.
#4

1. Je viens de tester, mais ça ne fonctionne pas.
Cela fonctionne :
Code :
[== Indéfini ==]
{content oneline="true"}
{Gallery dir='Nom-de-ma-galerie'}
Mais lorsque je passe {content} en variable :
Code :
[== Indéfini ==]
{content oneline="true"}
{Gallery dir=$content}
Le slider se met en place, mais il cherche les photos dans des endroits incongrus (vu avec firebug). Par exemple, la photo qui s'affiche normalement comme ça (dans mon premier cas) :
Code :
[== Indéfini ==]
<img src="uploads/images/Gallery/instax/instax-2.jpg" alt="" />
Il l'a cherche ici :
Code :
[== Indéfini ==]
<img src="http%3A//127.0.0.1/Schmitty/index.php%3Fmact%3DGallery%2Cm721d7%2Cdefault%2C1%26amp%3Bm721d7dir%3Dinstax%252F%26amp%3Bm721d7returnid%3D61%26amp%3Bpage%3D61?1359807026219" alt=""/>

J'ai vraiment besoin de votre aide là...
Merci d'avance,
Marouy
#5

Tu n'utilises pas bien {content}, oneline ne fonctionne pas avec content tout seul (voir doc extensions->balises).
Tu dois plutôt créer un {content block="galerie" label="Entrez le nom de la galerie à utiliser pour cette page" wysiwyg=false oneline=true default="nomGalerieParDéfaut" assign="nomGalerie"}
Tu peux alors récupérer le nom de galerie avec {Gallery dir=$nomGalerie}
#6

Effectivement, tu viens de me donner une bonne leçon sur la balise {content}, je suis parti sur une utilisation un peu "exotique"...

Tout rentre à présent dans l'ordre !

Pour ma seconde question (ne pas créer de vignettes dans les dossiers créés avec gallery), as-tu une idée ?

Merci infiniment pour ton aide !
#7

Les vignettes sont appelées avec $image->thumb.
Vérifie ton gabarit de galerie et enlève ce que tu ne veux pas.
Sans ton gabarit, je ne peux pas plus t'aider.
#8

En fait, je ne m'occupe pas des vignettes dans mes gabarits : à ce niveau-là, pas de problèmes !
Mais j'utilise "Gallery" pour ajouter des photos que j'affiche ensuite à l'aide d'un script php aléatoirement dans une balise utilisateur.
Et ce qui me gène, c'est carrément la présence des vignettes dans les dossiers, parce qu'elles viennent s'afficher aussi aléatoirement alors que je ne les veux pas.

Comment stopper la génération automatique ?
#9

Comment veux-tu que je sache Rolleyes
On n'a aucune donnée sur les codes que tu utilises.
Si tu utilises un code php pour afficher tes images, je ne vois pas où tu as un problème de vignette...
#10

Voici le script que j'utilise pour afficher une image aléatoire d'un dossier (il fonctionne), mais qui prend en compte aussi les vignettes (ce qui me déplaît...)
Il faudrait que j'arrive à mettre une exception sur les fichiers commençant par "thumb"...

Code :
[== PHP ==]
    $chem_img = "./uploads/images/gallery/portfolio";
    $handle  = opendir($chem_img);
    while ($file = readdir($handle))
        {
            // Je pense qu'il faut que j'ajoute une condition ici pour ne pas afficher les images commençant par "thumb..." mais la syntaxe php m'échappe...
            if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file))
                {
                    $listef[] = $file;
                }
        }
    
    $random_img = rand(0, count($listef)-1);
    $size = getimagesize($chem_img."/".$listef[$random_img]);
    echo "<img src=\"".$chem_img."/".$listef[$random_img]."\" />";
    closedir($handle);

Merci beaucoup et bonne journée,
Marouy
#11

Utilise cette fonction : http://www.php.net/manual/fr/function.strpos.php
#12

Parfait, c'est la fonction qu'il me fallait. J'espère l'utiliser correctement...

Est-ce que cela te semble fonctionnel (PHP était mon ami, mais ça fait un bout de temps qu'on ne s'est plus parlé Wink) :

Code :
[== PHP ==]
    $chem_img = "./uploads/images/gallery/portfolio";
    $handle  = opendir($chem_img);
    while ($file = readdir($handle))
        {
            
            if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file))
                {
                    $findme = 'thumb';
                    $pos = strpos($file, $findme);
                    if ($pos === false)
                        {
                        $listef[] = $file;
                        }
                }
        }
    
    $random_img = rand(0, count($listef)-1);
    $size = getimagesize($chem_img."/".$listef[$random_img]);
    echo "<img src=\"".$chem_img."/".$listef[$random_img]."\" />";
    closedir($handle);
#13

Parfait, merci beaucoup Jean pour ta précieuse aide, mon problème est résolu ! Big Grin
Bonne journée,
Marouy
Sujet fermé


Atteindre :


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