Intereting Posts
Почему параметры запроса для многих веб-сайтов (MySQL) являются очень загадочными длинными целыми числами? Как преобразовать массив в несколько переменных в PHP php добавление изображений в другое изображение, точное позиционирование как использовать SQL-соединение в PHP для выполнения запроса по двум базам данных Как заставить php-скрипт удалять себя (и включает в себя dir) Как отобразить загрузочное изображение gif или сообщение, когда PHP выполняет пакетный файл? PHP 5.3+ enable_dl не включает dl ()? Показать изображение на основе даты в PHP Есть ли элегантный способ уменьшить структуру до простого массива? Почему этот запрос показывает только один результат? Отправка / отображение изображения с кодировкой base64 Где именно я помещаю SESSION_START? jQuery Мобильная проверка формы с ошибкой PHP php + заполнить выпадающее меню при выборе другого Что значит ? … : … делать?

OpenCart: Как создать глобальную переменную?

Я пытаюсь сделать две глобальные переменные в 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?> 

обновленный

/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'); 

И теперь в /catalog/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?> 

И ошибки:

  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 

вы можете использовать супер глобальный массив $GLOBALS

например, сначала объявить его в 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' ); 

Ответ на обновленный вопрос

/catalog/controller/common/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'); 

И теперь в /catalog/view/theme/default/template/common/home.tpl

 <?=$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?> 

Если вы просто хотите использовать статическое значение, вы можете просто использовать константу. Просто создайте файл в файле 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') а чем считать то, что считается более быстрым методом взлома