OpenCart: Comment faire une variable globale?
Je suis en train de faire deux variables globales au sein de OpenCart. En gros, je veux être en mesure de les déclarer dans aucun de mes .tpl
fichiers
<?php echo $global1; ?>
J'ai essayé d'édition, library/system.php
et aussi config.php
en ajoutant $global1="test"
à l'intérieur de mes fichiers. Cependant l'appel que dans .tpl
fichiers ne fonctionne pas?
Exemple, regardez le fichier ci-dessous, je veux être en mesure d'appeler ces variables à tout moment.. ce que je dois modifier config.php ou quoi?? L'exemple montre l' $header
appel qui est utilisé sur tous les .le fichier tpl.
not_found.tpl
<?=$header?>
<div class="breadcrumb">
<? foreach ($breadcrumbs as $breadcrumb) { ?>
<? $breadcrumb['separator']; ?><a href="<?=$breadcrumb['href']?>"><?=$breadcrumb['text']?></a>
<? } ?>
</div>
<div id="content">
<?=$global1?>
<img src="/catalog/view/theme/default/image/error.png"/>
</div>
<?=$footer?>
Mis à jour
/catalog/controller/common/header.php
<?php
class ControllerCommonHeader extends Controller {
protected function index() {
//NEW GLOBAL VARS
$cdnDefault="//www.gorgeouscouturedev.com/catalog/view/theme/";
$currentUseLang = $this->language->get('code');
Et maintenant dans /catalogue/view/theme/default/template/common/home.tpl
<?=$header?>
<?=$column_left?>
<?=$column_right?>
<div id="content">
<? echo $cdnDefault ?>
<? echo $currentUseLang ?>
<?=$content_top?>
<div class="flexslider">
<ul class="slides">
<li><img src="catalog/view/theme/default/image/desktop.png"/></li>
<li><img src="catalog/view/theme/default/image/blogger.png"/></li>
</ul>
</div>
<?=$content_bottom?>
</div>
<?=$footer?>
Et les erreurs:
Notice: Undefined variable: cdnDefault in /catalog/view/theme/default/template/common/home.tpl on line 6
Notice: Undefined variable: currentUseLang in /catalog/view/theme/default/template/common/home.tpl on line 7
- vous pouvez utiliser $_SESSION variable
- J'ai pensé à cela aussi, mais comment pourrais-je la mettre en œuvre. Je ne suis pas confiance en l'utilisation de
SESSION
variables lorsque j'utilise simplement un non-variable de session. Je ne veux pas avoir à faire une session pour cela.
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser
$GLOBALS
super tableau globalpar exemple déclarer d'abord dans
controller/common/header.php
ensuite les utiliser dans un fichier tpl comme
concernant que
header
chose, queheader
etfive other files
sont effectivement déclarés dans chaque fichier contrôleur (correspondant à chaque fichier tpl ), comme celaRéponse à la mise à jour question
/catalog/controller/common/header.php
Et maintenant dans /catalogue/view/theme/default/template/common/home.tpl
Si vous avez envie d'utiliser une valeur statique, vous pouvez simplement utiliser une constante. Tout simplement en créer un dans votre config.php fichier(s) comme
Vous pouvez ensuite utiliser
n'importe où dans votre application. Si vous voulez le code que vous avez dans votre édité question, th faille fondamentale avec votre code, c'est que vous êtes en utilisant
$cdnDefault
au lieu de$this->data['cdnDefault']
dans votre contrôleur de fichier, à l'origine de l'indéfini question. Notez cependant que cette variable n'est pas globale dans le moindre, il s'agit simplement d'été codé comme il se doitÀ mon avis, la bonne façon de le faire serait de créer une nouvelle valeur de paramètre que vous pouvez modifier dans
SYSTEM > SETTINGS
dans votre espace d'administration, puis l'appeler à l'aide$this->config->get('config_value_here')
plutôt que de prendre ce qui est considéré comme plus rapide hack méthode