[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty - Pierre CIHOLAS - 04/02/2010
Bonjour a tous !
Au terme d'une longue et infructueuse recherche, je me permet de déranger votre communauté pour une question à propos de smarty.
Je cherche a récupérer l'adresse d'une page CMS Made Simple via smarty, mais uniquement son adresse, je ne souhaite pas générer de lien tout fait comme le permet la fonction {cms_selflink page='mapage'}.
En gros récupérer la valeur du href généré par cette meme fonction.
J'ai longuement lu et feuilletté la FAQ ainsi que le wiki officiel sans trouver de réponse.
N.B. S'il existe une page qui liste toutes les fonctions smarty propres a CMS Made Simple, je suis également preneur.
Je vous remercie tous d'avance.
Pierre CIHOLAS.
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante : 1.6.6 bonde mle
#~ Informations Système :
#~ Cms Version: 1.6.6
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.1
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.1
#~ * News: 2.10.3
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.1
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.5.5
#~ * FormBuilder: 0.6.1
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 2000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: true
#~ * page_extension: .html
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 4.3.9
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * memory_limit: 32000000
#~ * max_execution_time: 30
#~ * safe_mode: Off (Faux)
#~ * session_save_path: /var/lib/php/session (0770)
#~ * session.use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 4.1.20
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty -
Jean le Chauve - 04/02/2010
A partir de la même page ? Tu es en mod_rewrite => /{title}.html
Ou {$content_obj->GetURL()}
Ou {if isset($canonical)}{$canonical}{/if}
D'autres techniques ?
Crée une balise utilisateur : request_url
Code :
echo $_SERVER["REQUEST_URI"];//ou encore $_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"]
Colle {request_uri} dans le content où tu veux l'afficher.
Ou encore
Code :
global $gCms;
$smarty = &$gCms->GetSmarty();
$url= $_SERVER["REQUEST_URI"];
$smarty->assign('url', $url);
Pour la récupérer : {request_uri} pour appeler la balise et {$url} pour afficher l'url.
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty - Pierre CIHOLAS - 05/02/2010
Merci a toi !
Seulement ca ne fonctionne pas en fait, j'explique tout le problème :
J'ai une template avec un menu totalement en image (oui, nul, je sais mais je n'ai pas eu le choix du design a installer) et il y a une image avec deux drapeaux (fr et us) cliquable qui doivent changer la langue, le problème c'est quand que je met un lien qui sans le mod_rewrite, par exemple :
{$smarty.server.REQUEST_URI}&hl=fr_FR
Bah avec le mod rewrite ca me donne une page "mapage.html&hl=fr_FR", qui ne switche meme pas la langue évidement :/
Donc si quelqu'un a une solution de secours ou connais comment créer un lien de changement de langue en smarty (idem, récupérer juste l'url, sinon il me suffirait d'utiliser {lang} je suis preneur également
Bonne journée a tous.
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty -
jce76350 - 05/02/2010
re,
attention c'est une version MLE donc prudence car NON standard voir le forum EN
http://forum.cmsmadesimple.org/index.php/board,41.0.html
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty - Pierre CIHOLAS - 05/02/2010
Bon je me suis résigner a faire un code "a la boucher", pas propre, pas beau, mais qui marche :
{php}echo str_replace('fr_FR', 'en_US', $_SERVER['REQUEST_URI']){/php}
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty - Djules - 15/02/2010
Si j'ai bien compris ta demande,
c'est tout simple !
tu dois utiliser le paramètre 'href' de ta balise cms_selflink, qui te génère uniquement l'url de la page indiquée.
Exemple :
Code :
<a href="{cms_selflink href='home'}">English version</a>
ce qui t'affichera :
Code :
<a href="http://monsite.com/index.php?page="home">English version</a>
C'était ce que tu voulais ?
[RESOLU] Afficher uniquement l'adresse d'une page cmsms via smarty - Pierre CIHOLAS - 22/02/2010
Je te remercie infiniement ! c'est exactement ce dont j'avais besoin !