我试图在OpenCart中创建两个全局变量。我希望能够在任何.tpl
文件
<?php echo $global1; ?>
我试过编辑,library/system.php
和config.php
通过在我的文件中添加$global1="test"
。然而,在.tpl
文件调用是不工作吗?
示例,看看下面的文件,我希望能够随时调用这些变量。我必须编辑config.php还是什么??该示例显示了$header
调用,该调用用于每个.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?>
<标题> 更新/目录/控制器/共同/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');
<?=$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?>
和错误:
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
标题>如果您只想使用静态值,则可以使用常量。只需在config.php文件中创建一个,例如
define('CDN_URL', 'http://cdn.someurl.com/');
你可以使用
<?php echo CDN_URL; ?>
在应用程序中的任何位置。如果你想编码它,就像你在编辑的问题中一样,你的代码的根本缺陷是你在控制器文件中使用$cdnDefault
而不是$this->data['cdnDefault']
,从而导致未定义的问题。但是请注意,这个变量根本不是全局的,它只是按照
在我看来,正确的方法是创建一个新的设置值,供您在管理区域的SYSTEM > SETTINGS
中编辑,然后使用$this->config->get('config_value_here')
调用它,而不是采用被认为是更快速的破解方法
可以使用$GLOBALS
super global array
controller/common/header.php
中首先声明$GLOBALS["1"] = "test";
然后在任何TPL文件中使用它,如
<?php echo $GLOBALS["1"]; ?>
关于header
的事情,header
和five other files
实际上是在每个控制器文件中声明的(对应于每个tpl文件),就像这样
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);
更新问题的答案
/目录/控制器/共同/header。php
<?php
class ControllerCommonHeader extends Controller {
protected function index() {
// NEW GLOBAL VARS
$GLOBALS["cdnDefault"]="//www.gorgeouscouturedev.com/catalog/view/theme/";
$GLOBALS["currentUseLang"] = $this->language->get('code');
<?=$header?>
<?=$column_left?>
<?=$column_right?>
<div id="content">
<? echo $GLOBALS["cdnDefault"]; ?>
<? echo $GLOBALS["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?>