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

[Resolu] Récupération $page_alias pour {content_image}
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.6.8 ?
#~ Nom de l'hébergeur : Local
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

Bonjour à tous.

J'ai un pb que je n'arrive pas à résoudre.
Dans un de mes gabarits, j'ai intégré un {content_image} et je souhaiterai récupérer l'alias de la page pour qu'il pointe vers le dossier uploads/images/{$page_alias}.
avec bien évidemment des dossiers "alias_page1", "alias_page2", "alias_page3",... créés dans le dossier uploads/images.

J'ai tenté ceci, mais bien sûr, ça ne marche pas et je ne sais pas comment m'y prendre et si c'est possible :

{content_image block='logo' dir='images/{$page_alias}'}

Si quelqu'un peut m'éclairer.

Merci.

Dipsy
#2

Tu ne peux pas placer des accolades dans des accolades. Assigne la valeur de la balise smarty à une variable :
{capture assign='page_alias'}{$page_alias}{/capture}
Tu pourras maintenant utiliser $page_alias :
{content_image block='logo' dir='images/$page_alias'}
#3

Merci pour la réponse.

Peux-tu m'indiquer la manip.
J'ai cherché comment installer un nouveau tag et j'ai trouvé çà :
http://wiki.cmsmadesimple.org/index.php/...sions/Tags

J'ai donc créer un fichier function.page_alias.php avec {capture assign='page_alias'}{$page_alias}{/capture} à l'intérieur.
Je l'ai ensuite placé dans le dossier plugins.
et dans mon gabarit, j'ai mis le code : {content_image block='logo' dir='images/$page_alias'}.

Est-ce la bonne manip car ça ne fonctionne pas ?

Merci de ton aide.
#4

J'ai été trop vite !
Dans le gabarit au lieu de : {content_image block='logo' dir='images/{$page_alias}'}
Tu écris :
{capture assign='page_alias'}images/{$page_alias}{/capture}
{content_image block='logo' dir=$page_alias}
#5

Re,

@ JLC ce topic m'interesse aussi, et j'aimerais savoir si cette UDT fait le même boulot ou si ton tag est plus approprié

Code :
if (!isset ($_GET["page"]))
{
echo '<img src="uploads/images/home.jpg" />';
}


if(file_exists('uploads/images/'.$_GET["page"].'.jpg'))
{
echo '<img src="uploads/images/'.$_GET["page"].'.jpg" />';
}

else

echo '<img src="uploads/images/imagedefaut.jpg" />';

dans le tag que tu cites
Citation :{content_image block='logo' dir='images/$page_alias'}
le content est il a même de charger plusieurs images du (dir) alias_page1 crée dans le dossier uploads/images et enfin doit on donner un nom spécifique aux images de ce dossier

-.
#6

Ça n'a rien en commun, le problème posé par Dipsy est l'inclusion d'accolades dans des accolades.
Ouvre un autre topic et explique ce que tu veux (en passant, ton code renverra une erreur).
#7

JLC,

Bon et bien ça ne fonctionne toujours pas.
J'ai testé pour voir si je récupérais bien les données en texte dans un bloc et ça fonctionne.
j'obtiens dans le front end : images/aliasdelapage

Par contre, il semblerait qu'il y ai un pb dans l'espace d'admin avec cette valeur.
J'ai également essayé de changer par :
Citation :{capture assign='logo'}images/{$page_alias}{/capture}
{content_image block='logo' dir=$logo}
pensant que la valeur assign='$page_alias' pouvait poser pb.

Mais rien à faire, j'obtiens toujours : "Erreur lors de la récupération de la Liste des fichiers"
#8

Re,

autant pour moi Jean en fait je suis revenu sur un de tes anciens post
http://www.cmsmadesimple.fr/forum/viewto...p?pid=6911

et j'ai utilisé le select-image avec la balise page-image

bonne continuation et excusez mon intrusion je pensais
que ce que voulait faire Dipsy avait un rapport avec le fait de récupérer une image pour chaque contenu de page; a priori j'ai confondu ;

peut être auront nous bientôt droit au fameux module CCK (Content Construction Kit) normalement cela sera pour la version2.1
http://www.cmsmadesimple.org/development/roadmap/

-.
#9

On va commencer par le début Wink

{content_image block='logo'} sert à ajouter un dropdown (intitulé : logo) proposant les images se trouvant dans /uploads dans le backend d'une page (Contenu » Pages » Éditer la pageSmile, tout comme {content} affiche un bloc de contenu normal, ou encore {global_content name='myblob'} affiche un bloc de contenu supplémentaire intitulé "myblob".
Si on ajoute le paramètre dir, on affichera un dropdown d'images se situant dans un sous-répertoire de /uploads/valeurDuParamètreDir.
Ex : dir='images' affichera un dropdown avec toutes les images se situant dans uploads/images.

La demande qui a été faite par Dipsy est telle qu'il a dû créer un sous-répertoire /uploads/images/nomDePage pour chaque pages : uploads/images/home, uploads/images/contact, etc. pour que cela fonctionne.
La balise modifiée que j'ai proposé affichera donc un dropdown affichant les images se trouvant dans le sous-répertoire uploads/images/aliasDeLaPageActuelle.
Si ce répertoire n'existe pas, il y aura "Erreur lors de la récupération de la Liste des fichiers".

Attention : la version cmsms 1.8.+ est obligatoire, sinon l'erreur se déclenche.
Ton problème provient donc de ta version. Il te faut upgrader cmsms si tu désires utiliser cette méthode.
#10

Bonjour JLC.

Alors je viens de mettre à jour ma version de cms en 1.8.2.
J'ai fait la modif. Malheureusement, ça ne marche toujours pas.

Pour être sur, j'ai fait une install de la 1.8.2 vierge.
J'ai été dans le gabarit NCleanBlue.
J'ai inséré le code après la balise {content}
Citation :{capture assign='logo'}images{/capture}
{content_image block='logo' dir=$logo}

Et ça ne marche pas. Donc, je me demande si on peut rajouter une variable dans la balise {content_image}
#11

Re,

en faisant

{content_image block='logo' dir='logo'}
çà marche mais attention le dossier des images : logo] est situé dans uploads/logo et non dans uploads/images/logo

-.
#12

Isa46,

Merci pour ta réponse, mais ça ne résout pas le problème.
Le chemin que tu donnes dir='logo' est alors en dur (fixe) et non dynamique.
Ce que souhaite obtenir, c'est un chemin dynamique en fonction de l'alias de la page.

Par contre, j'ai essayé cette méthode pour rediriger sur une galerie bien spécifique et ça marche.

Citation :{capture assign='galerie'}{$page_alias}{/capture}
{Gallery dir=$galerie}

Donc, je me demande, si c'est le fait de récupérer cette valeur pour le backoffice qui pose problème
ou si c'est {content_image} qui n'accepte pas de données dynamique ?
#13

Re,

je comprends tout à fait ce que tu veux faire et ce que je disais était un premier point à prendre en compte
maintenant c'est sûre que pour capturer le bon dir de chaque alias...... mais cela doit être faisable........

-.
#14

Oups, j'ai la tête dans les nuages, j'avais oublié de te mettre le bon code (qui ne marche qu'avec 1.8+)
Code :
{capture assign='logo'}dir=images/{$page_alias}{/capture}
{content_image block='logo' $logo}
#15

JLC,

Tout d'abord, un grand merci pour ton aide.
Car là, je suis perdu.

Je viens de copier ton code dans une install vierge de cmsms 1.8.2
dans le gabarit NCleanBlue.
J'ai également créer le dossier home dans le dossier uploads/images
avec à l'intérieur une image.
Et j'ai toujours le même message d'erreur :
Citation :logo:
Erreur lors de la récupération de la Liste des fichiers
#16

re,

pareil sur 1.8.1

-.
#17

version 1.8.2
template Top simple navigation + left subnavigation + 1 column
Codes qui fonctionnent :
Code :
<h2>{title}</h2>{capture assign='essai'}dir="images/{$page_alias}"{/capture}
{content_image block='rouge' $essai}{content}
Code :
<h2>{title}</h2>{capture assign='essai'}images/{$page_alias}{/capture}
{content_image block='rouge' dir=$essai}{content}
[Image: Sans-titre-1.png]
Testé également sur CleanBlue, aucun problème.

J'ai un dossier uploads/images/aliasDeLaPageEnCours/desImages.jpg
#18

Bon et bien je ne sais pas ce qui cloche JLC,

Je viens d'essayer d'insérer les 2 portions de code sur une install vierde de cmsms 1.8.2,
sur 2 ordinateurs différents avec 2 os différents : mac 10.5 et mac 10.6
et j'ai toujours le même pb. Je pensais que ça pouvait venir de snow leopard (10.6) qui semble avoir des soucis avec php 5.3 et e-deprecated.
mais c'est idem sur 10.5. Je vais essayer sur mon espace hébergement.

Juste une p'tite question. je vois sur ta capture d'écran que tu peux gérer le gabarit de ta page directement sur l'onglet Accueil.
As-tu une version modifiée de cmsms 1.8.2. Peut-être qu'il me manque un module ?
Et comment fais-tu pour avoir cette option directement dans l'onglet "Accueil" et non "Options".

Merci.
#19

Bonne question, j'ai l'option uniquement dans ce site (base en 1.8 suivi de 2 upgrades)
----------------------------------------------

Citation :Cms Version: 1.8.2

Installed Modules:

CMSMailer: 2.0
FileManager: 1.0.2
MenuManager: 1.6.5
ModuleManager: 1.4
News: 2.10.6
nuSOAP: 1.0.2
Printing: 1.1.0
Search: 1.6.5
ThemeManager: 1.1.1
TinyMCE: 2.7.2
FormBuilder: 0.6.4
CGExtensions: 1.19.2
JQueryTools: 1.0.6
CGSimpleSmarty: 1.4.5
CGCalendar: 1.5.2
ConfigGUI: .2
XMLMadeSimple: 0.0.2
youtubeplayer: 1.3
NMS: 2.3.2
Album: 0.9.3
CGFeedMaker: 1.0.11

Config Information:

php_memory_limit: 128M
process_whole_template: true
output_compression: false
max_upload_size: 2000000
default_upload_permission: 664
url_rewriting: mod_rewrite
page_extension: .html
query_var: page
use_hierarchy: true
image_manipulation_prog: GD
auto_alias_content: true
locale: fr_FR.utf8
default_encoding: utf-8
admin_encoding: utf-8
set_names: true

Php Information:

phpversion: 5.2.13
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: 30
output_buffering: On
safe_mode: Off (Faux)
file_uploads: On (Vrai)
post_max_size: 64M
upload_max_filesize: 64M
session_save_path: /tmp (1777)
session_use_cookies: On (Vrai)
xml_function: On (Vrai)

Server Information:

Server Api: cgi
Server Db Type: MySQL (mysql)
Server Db Version: 5.0.90
----------------------------------------------

Sur une nouvelle install 1.8.2, le gabarit est dans le second onglet et je me prends l'erreur dans le nez.

Bizarre, ça pue le bug. Dans tous les cas, ce code devrait fonctionner, ce n'est qu'avec content_image que ça déconne.

Si tu me dis exactement ce que tu désires faire et tes objectifs, on devrait trouver un moyen de contourner ce problème.
#20

Citation :Juste une p'tite question. je vois sur ta capture d'écran que tu peux gérer le gabarit de ta page directement sur l'onglet Accueil.
As-tu une version modifiée de cmsms 1.8.2. Peut-être qu'il me manque un module ?


c'est une fonctionnalité de cmsms de choisir ce que l'on passe de l'onglet option à l'onglet général d'une page. C'est ni un bug ni une version différente de cmsms ni un module. Juste un paramétrage de cmsms différent.

ca se passe de mémoire dans la partie admin général de cmsms.
#21

Salut Bess,
Je ne trouve pas cette option (en plus tout le backend est par défaut).
Le bug concerne le plugin {content_image} qui devrait accepter le paramètre proposé.
#22

Administration du site » Paramètres globaux

onglet Paramètres avancés



Citation :Propriétés basiques de la page (utiliser Ctrl pour annuler) :


Cette sélection vous permet de spécifier des propriétés affichables de "Contenu/Pages" sans que les utilisateurs aient la permission ("Manage All Content") de modifier la structure de la page.
#23

Ça te permet de cacher des propriétés, pas de les déplacer d'un onglet à l'autre.
#24

ma réponse ci dessous est à l'attention de cette portion du message de Dipsy

Citation :Juste une p'tite question. je vois sur ta capture d'écran que tu peux gérer le gabarit de ta page directement sur l'onglet Accueil.
As-tu une version modifiée de cmsms 1.8.2. Peut-être qu'il me manque un module ?

[Image: cms02.png]
[Image: cms01.png]
[Image: 44935127.png]
[Image: cms04.png]

Donc pour moi : oui on peut cacher/afficher des infos de l'onglet général comme la gestion d'un gabarit si cmsms est bien paramétré
#25

Tu as raison, mais il faut dire que l'explication n'est adéquate :
Citation :Cette sélection vous permet de spécifier des propriétés affichables de "Contenu/Pages" sans que les utilisateurs aient la permission ("Manage All Content") de modifier la structure de la page.
Citation :Sélectionner des propriétés permet de les déplacer dans l'onglet accueil de l'édition de page au lieu de l'onglet options.
Sujet fermé


Atteindre :


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