Ajouter des variables perso dans un TPL
Visiteur
Boosteur Inactif
j'ai un petit souci avec les templates. Quand j'essaie de rajouter une variable du type {MA_VARIABLE} dans un fichier template celle-ci ne fonctionne pas, pourtant j'ai bien rajouter ma variable dans le php adéquat?
quelqu'un aurait-il un début de piste?
Si vous avez rien compris à mon message, je posterai un exemple plus concret, merci d'avance ++
Édité par Visiteur Le 12/01/2012 à 14h31
Visiteur
Boosteur Inactif
Chose toute bête, tu as fait un rafraichissement des caches ?? Sinon je passe mon tour, étant une bille en php ...
Visiteur
Boosteur Inactif
voilà en gros ce que j'aimerais faire.
Dans mon template j'aimerais ajouter une variable perso de cette façon:
dans le php je fais ça, par exemple:
[...] = substitution de chaine

Code PHP :
$tpl_news->assign_vars(array( [...] 'MA_VARIABLE' => 'Ma Variable', ));
le problème c'est qu'il ne m'affiche 'Ma Variable' de la variable 'MA_VARIABLE' :/
voillà
Édité par Visiteur Le 11/01/2012 à 12h42
Visiteur
Boosteur Inactif
swan :
re,
Chose toute bête, tu as fait un rafraichissement des caches ?? Sinon je passe mon tour, étant une bille en php ...
Chose toute bête, tu as fait un rafraichissement des caches ?? Sinon je passe mon tour, étant une bille en php ...
je vais tester, mais pars-que tu me donne le doute, c'est le genre de chose que je fais habituellement (a force de voir ta signature)
Visiteur
Boosteur Inactif
sawk Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre sawk
- Inscrit le : 09/01/2012
- Site internet
Visiteur
Boosteur Inactif
sawk :
[...]Si j'ai bien compris au lieu de t'afficher la valeur de ta variable il t'affiche {MA_VARIABLE} tout moche ?
non il n'affiche rien
je te poste le script dans la soirée ++
sawk Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre sawk
- Inscrit le : 09/01/2012
- Site internet
alain91 Membre non connecté
Booster Missile
-
Booster Missile
- Voir le profil du membre alain91
- Inscrit le : 26/09/2010
- Groupes :
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).
Visiteur
Boosteur Inactif
En faite ce n'est pas d'en un script ou un template particulier
mais plus dans le framework.Exemple sur un template pour le module news(ça va faire long). J'aimerai ajouter une variable perso:
Code TPL :
<script type="text/javascript">
<!--
function Confirm() {
return confirm("{L_ALERT_DELETE_NEWS}");
}
-->
</script>
# IF C_NEWS_EDITO #
<div class="news_container_ed">
<div class="news_top_l_ed"></div>
<div class="news_top_r_ed"></div>
<div class="news_top_ed">
<div class="titred" >{TITLE}<span># IF C_IS_ADMIN # <a href="../news/admin_news_config.php" title="{L_EDIT}"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/ed.png" class="valign_middle" alt="{L_EDIT}" /></a> # ENDIF #</span></div>
</div>
<div class="news_content_ed">
{CONTENTS}
</div>
<div class="news_bottom_l_ed"></div>
<div class="news_bottom_r_ed"></div>
<div class="news_bottom_ed"></div>
</div>
# ENDIF #
# IF C_NEWS_NO_AVAILABLE #
<div class="news_container">
<div class="news_top_l"></div>
<div class="news_top_r"></div>
<div class="news_top">
<div style="float:left;padding-left:30px;"><a href="../syndication.php?m=news" title="Syndication"><img class="valign_middle" src="../templates/{THEME}/images/rss.png" alt="Syndication" title="Syndication" /></a></div>
<div style="float:right;"><h3 class="title valign_middle">{L_LAST_NEWS}</h3></div>
</div>
<div class="news_content">
<p class="text_strong text_center">{L_NO_NEWS_AVAILABLE}</p>
</div>
<div class="news_bottom_l"></div>
<div class="news_bottom_r"></div>
<div class="news_bottom"></div>
</div>
# ENDIF #
# IF C_NEWS_BLOCK #
# START news #
# IF news.C_NEWS_ROW # <div class="spacer"></div> # ENDIF #
# IF C_NEWS_BLOCK_COLUMN #
<div class="news_container" style="float:left;width:45%">
# ELSE #
<div class="news_container">
# ENDIF #
<div class="news_top_l"></div>
<div class="news_top_r"></div>
<div class="news_top">
<span style="float:left;padding-left:5px;">
<a class="news_title" href="../news/news{news.U_NEWS_LINK}">{news.TITLE}</a>
</span>
</div>
<div class="news_content">
<div class="datee">
<!-- <span style="float:left" ><a style="padding-left:7px;" class="small_link" href="../member/member{news.U_USER_ID}"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/members_mini.png" alt="" class="valign_middle" />{news.PSEUDO} {news.DATE}</a>-->
<!-- </span>-->
<span style="float:left" ><a style="padding-left:7px;" class="small_link" href="../news/news{news.U_NEWS_LINK}">{news.DATE}</a>
</span>
<span style="float:right" >
# IF C_IS_ADMIN #
<a href="../news/admin_news.php?id={news.ID}" title="{L_EDIT}"><img class="valign_middle" src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/ed.png" alt="{L_EDIT}" /></a>
<a href="../news/admin_news.php?delete=1&id={news.ID}&token={TOKEN}" title="{L_DELETE}" onclick="javascript:return Confirm();"><img class="valign_middle" src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/del.png" alt="{L_DELETE}" /></a>
# ENDIF #
<span style="background:#ececec;border:1px solid #dddddd ; padding: 3px;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/comm.png" alt="" class="valign_middle" /> {news.U_COM}</span>
<!-- <a href="../syndication.php?m=news" title="Rss"><img class="valign_middle" src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/rrs.png" alt="Rss" title="Rss" /></a>-->
</span>
</div>
<div class="spacer"></div>
# IF news.IMG # <img src="{news.IMG}" alt="{news.IMG_DESC}" title="{news.IMG_DESC}" class="img_right" /> # ENDIF #
# IF news.C_ICON # <a href="news.php?cat={news.IDCAT}"><img class="valign_middle" src="{news.ICON}" alt="" /></a> # ENDIF #
{news.CONTENTS}
<br /><br />
{news.EXTEND_CONTENTS}
<div class="spacer"></div>
</div>
<div class="news_bottom_l"></div>
<div class="news_bottom_r"></div>
<div class="news_bottom"></div>
</div>
{COMMENTS}
# END news #
# IF C_NEWS_NAVIGATION_LINKS #
<div style="width:90%;padding:20px;margin:auto;margin-top:-15px;">
# IF C_PREVIOUS_NEWS # <span style="float:left;"><a href="news{U_PREVIOUS_NEWS}"><img src="../templates/{THEME}/images/left.png" alt="" class="valign_middle" /></a> <a href="news{U_PREVIOUS_NEWS}">{PREVIOUS_NEWS}</a></span> # ENDIF #
# IF C_NEXT_NEWS # <span style="float:right;"><a href="news{U_NEXT_NEWS}">{NEXT_NEWS}</a> <a href="news{U_NEXT_NEWS}"><img src="../templates/{THEME}/images/right.png" alt="" class="valign_middle" /></a></span> # ENDIF #
</div>
# ENDIF #
<div class="spacer"></div>
<div class="text_center">{PAGINATION}</div>
<div class="text_center">{ARCHIVES}</div>
<div class="spacer"></div>
# ENDIF #
# IF C_NEWS_LINK #
<div class="news_container">
<div class="news_top_l"></div>
<div class="news_top_r"></div>
<div class="news_top">
<div style="float:left"><a href="../syndication.php?m=news" title="Syndication"><img class="valign_middle" src="../templates/{THEME}/images/rss.png" alt="Syndication" title="Syndication" /></a> <h3 class="title valign_middle">{L_LAST_NEWS}</h3></div>
<div style="float:right"># IF C_IS_ADMIN # <a href="admin_news_cat.php?id={IDCAT}" title="{L_EDIT}"><img class="valign_middle" src="../templates/{THEME}/images/{LANG}/edit.png" /></a> # ENDIF #</div>
</div>
<div class="news_content">
# START list #
# IF list.C_NEWS_ROW #
<div class="spacer"></div>
# ENDIF #
# IF C_NEWS_LINK_COLUMN #
<div style="float:left;width:{COLUMN_WIDTH}%">
# ELSE #
<div>
# ENDIF #
<ul style="margin:0;padding:0;list-style-type:none;">
<li><img src="../templates/{THEME}/images/li.png" alt="" /> {list.ICON} <span class="text_small">{list.DATE} :</span> <a href="{list.U_NEWS}">{list.TITLE}</a></li>
</ul>
</div>
# END list #
<div class="spacer"> </div>
<div class="text_center">{PAGINATION}</div>
<div class="text_center">{ARCHIVES}</div>
</div>
<div class="news_bottom_l"></div>
<div class="news_bottom_r"></div>
<div class="news_bottom"></div>
</div>
# ENDIF #
bon j'aimerai ajouter dedans une variable perso nommée {THEME_MOBILE}, donc pour cela je suis allé dans le fichier news.php vu que le template est pour le module news:
Code PHP :
<?php /*################################################## * news.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ require_once('../kernel/begin.php'); require_once('../news/news_begin.php'); require_once('../kernel/header.php'); //$idnews, $idcat, $show_archive définies dans news_begin.php $is_admin = $User->check_level(ADMIN_LEVEL); if (empty($idnews) && empty($idcat)) // Accueil du module de news { import('modules/modules_discovery_service'); $modulesLoader = new ModulesDiscoveryService(); $module_name = 'news'; $module = $modulesLoader->get_module($module_name); if ($module->has_functionality('get_home_page')) { echo $module->functionality('get_home_page'); require_once('../kernel/footer.php'); exit; } elseif (!$no_alert_on_error) { global $Errorh; $Errorh->handler('Le module <strong>' . $module_name . '</strong> n'a pas de fonction get_home_page!', E_USER_ERROR, __LINE__, __FILE__); exit; } } elseif (!empty($idnews)) //On affiche la news correspondant à l'id envoyé. { if (empty($news['id'])) $Errorh->handler('e_unexist_news', E_USER_REDIRECT); import('content/comments'); import('content/syndication/feed'); $tpl_news = new Template('news/news.tpl'); $next_news = $Sql->query_array(PREFIX . "news", "title", "id", "WHERE visible = 1 AND id > '" . $idnews . "' " . $Sql->limit(0, 1), __LINE__, __FILE__); $previous_news = $Sql->query_array(PREFIX . "news", "title", "id", "WHERE visible = 1 AND id < '" . $idnews . "' ORDER BY id DESC " . $Sql->limit(0, 1), __LINE__, __FILE__); $tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'C_NEWS_BLOCK' => true, 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' =>!empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'], )); $tpl_news->assign_block_vars('news', array( 'C_IMG' => !empty($news['img']), 'C_ICON' => (!empty($news['icon']) && $CONFIG_NEWS['activ_icon'] == 1), 'ID' => $news['id'], 'IDCAT' => $news['idcat'], 'ICON' => second_parse_url($news['icon']), 'TITLE' => $news['title'], 'CONTENTS' => second_parse($news['contents']), 'EXTEND_CONTENTS' => second_parse($news['extend_contents']) . '<br /><br />', 'IMG' => second_parse_url($news['img']), 'IMG_DESC' => $news['alt'], 'PSEUDO' => $CONFIG_NEWS['display_author'] ? $news['login'] : '', 'DATE' => $CONFIG_NEWS['display_date'] ? $LANG['on'] . ': ' . gmdate_format('date_format_short', $news['timestamp']) : '', 'U_COM' => ($CONFIG_NEWS['activ_com'] == 1) ? Comments::com_display_link($news['nbr_com'], '../news/news' . url('.php?cat=0&id=' . $idnews . '&com=0', '-0-' . $idnews . '+' . url_encode_rewrite($news['title']) . '.php?com=0'), $idnews, 'news') : '', 'U_USER_ID' => url('.php?id=' . $news['user_id'], '-' . $news['user_id'] . '.php'), 'U_NEWS_LINK' => url('.php?id=' . $news['id'], '-0-' . $news['id'] . '+' . url_encode_rewrite($news['title']) . '.php'), 'FEED_MENU' => Feed::get_feed_menu(FEED_URL) )); } elseif (!empty($idcat)) { $tpl_news = new Template('news/news_cat.tpl'); $cat = $Sql->query_array(PREFIX . 'news_cat', 'id', 'name', 'icon', "WHERE id = '" . $idcat . "'", __LINE__, __FILE__); if (empty($cat['id'])) $Errorh->handler('error_unexist_cat', E_USER_REDIRECT); $tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'C_NEWS_LINK' => true, 'CAT_NAME' => $cat['name'], 'IDCAT' => $cat['id'], 'L_EDIT' => $LANG['edit'], 'L_CATEGORY' => $LANG['category'] )); $result = $Sql->query_while("SELECT n.id, n.title, n.nbr_com, nc.id AS idcat, nc.icon FROM " . PREFIX . "news n LEFT JOIN " . PREFIX . "news_cat nc ON nc.id = n.idcat WHERE n.visible = 1 AND n.idcat = '" . $idcat . "' ORDER BY n.timestamp DESC", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $tpl_news->assign_block_vars('list', array( 'ICON' => ((!empty($row['icon']) && $CONFIG_NEWS['activ_icon'] == 1) ? '<a href="news' . url('.php?cat=' . $row['idcat'], '-' . $row['idcat'] . '.php') . '"><img class="valign_middle" src="' . $row['icon'] . '" alt="" /></a>' : ''), 'TITLE' => $row['title'], 'COM' => $row['nbr_com'], 'U_NEWS' => 'news' . url('.php?id=' . $row['id'], '-0-' . $row['id'] . '+' . url_encode_rewrite($row['title']) . '.php') )); } } //Affichage commentaires. if (isset($_GET['com']) && $idnews > 0) { $tpl_news->assign_vars(array( 'COMMENTS' => display_comments('news', $idnews, url('news.php?id=' . $idnews . '&com=%s', 'news-0-' . $idnews . '.php?com=%s')) )); } $tpl_news->parse(); require_once('../kernel/footer.php'); ?>
à la ligne 64 on tombe sur un truc dans le genre:
Code PHP :
$tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'C_NEWS_BLOCK' => true, 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' =>!empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'], ));
On peut voir par exemple la variable L_EDIT qui défini le texte du bouton edit si j'ai bien compris, elle est retranscri dans le template de cette façon {L_EDIT}.
Donc par logique je me suis dis que si je voulais me rajouter une variable j'avais juste à ajouter dans:
Code PHP :
$tpl_news->assign_vars(array([...]
ma variable de cette façon:
Code PHP :
'THEME_MOBILE' => 'nom du thème',
pour finir dans le template news.tpl j'ai ajouté ma variable {THEME_MOBILE}. Mais voilà elle n'affiche rien ?
voilà le problème
++
Édité par Visiteur Le 12/01/2012 à 19h03
alain91 Membre non connecté
Booster Missile
-
Booster Missile
- Voir le profil du membre alain91
- Inscrit le : 26/09/2010
- Groupes :
Code PHP :
$tpl_news->assign_vars(array([...]);
Édité par alain91 Le 12/01/2012 à 21h05
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).
Visiteur
Boosteur Inactif
Code PHP :
'THEME_MOBILE' => 'nom du thème',
que j'ai mis entre ([...] chaine tonquer)
Code PHP :
$tpl_news->assign_vars(array([...]);
à la ligne 64 du fichier news.php
plus exactement à la ligne 64 dans:
Code PHP :
$tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'C_NEWS_BLOCK' => true, 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' =>!empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'], ));
J'ai fait
Code PHP :
$tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'C_NEWS_BLOCK' => true, 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' =>!empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'], 'THEME_MOBILE' => 'nom du thème' ));
voilà
++
Édité par Visiteur Le 12/01/2012 à 21h28
alain91 Membre non connecté
Booster Missile
-
Booster Missile
- Voir le profil du membre alain91
- Inscrit le : 26/09/2010
- Groupes :
Code PHP :
$tpl_news->assign_vars(array( 'C_IS_ADMIN' => $is_admin, 'TOTO' => 'mon titi', 'C_NEWS_BLOCK' => true, => Condition pour afficher un segment du template 'C_NEWS_NAVIGATION_LINKS' => true, 'C_PREVIOUS_NEWS' => !empty($previous_news['id']), 'C_NEXT_NEWS' =>!empty($next_news['id']), 'TOKEN' => $Session->get_token(), 'PREVIOUS_NEWS' => $previous_news['title'], 'NEXT_NEWS' => $next_news['title'], 'U_PREVIOUS_NEWS' => url('.php?id=' . $previous_news['id'], '-0-' . $previous_news['id'] . '+' . url_encode_rewrite($previous_news['title']) . '.php'), 'U_NEXT_NEWS' => url('.php?id=' . $next_news['id'], '-0-' . $next_news['id'] . '+' . url_encode_rewrite($next_news['title']) . '.php'), 'L_SYNDICATION' => $LANG['syndication'], 'L_ALERT_DELETE_NEWS' => $LANG['alert_delete_news'], 'L_ON' => $LANG['on'], 'L_DELETE' => $LANG['delete'], 'L_EDIT' => $LANG['edit'], ));
Ensuite il faut faire ATTENTION OU ON DOIT METTRE LA VARIABLE car le fichier news.tpl comprend plusieurs segments qui sont affichés selon une condition.
C_NEWS_BLOCK => soit ligne 46 du fichier tpl
Code PHP :
# IF C_NEWS_BLOCK #
{TOTO}
# START news #
# IF news.C_NEWS_ROW # <div class="spacer"></div> # ENDIF #
# IF C_NEWS_BLOCK_COLUMN #
L'affichage se produit dans le block => c'est à dire lorsqu'on clique pour afficher une news (pas dans la liste mais l'affichage d'une seule news)
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).
Visiteur
Boosteur Inactif
En faite on est obliger de passer par une condition pour afficher une variable?
Je ne peu pas créer une variable que je pourrait utiliser là où je veux dans le template?
Édité par Visiteur Le 12/01/2012 à 21h51
sawk Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre sawk
- Inscrit le : 09/01/2012
- Site internet
par exemple dans le fichier php tu met ça
Code PHP :
'VARIABLE' => 'Je suis une variable',
en ne pas oubliant de parser le tout avec un
Code PHP :
$tpl_news->parse();
et dans ton fichier tpl un jolie {VARIABLE} fera l'affaire
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie