Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

вывод своей переменой в twig


 Поделиться

Рекомендованные сообщения

Доброго утра. Есть у меня файл - парсит курсы валют из xml, valute.php  В нём есть рабочая (получает значения) переменная $ruValue

я разместил файл valute.php по пути admin\controller\common так как планировал выводить значение в header

далее я в файле admin\view\template\common\header.twig пытаюсь вывести значение переменой {{ ruValue }}  и конечно ничего не выходит!

ВОПРОС: как правильно объявить данную переменную в admin\controller\common\header.php ?

Ссылка на комментарий
Поделиться на других сайтах


28.05.2022 в 05:17, vladimir911 сказал:

Доброго утра. Есть у меня файл - парсит курсы валют из xml, valute.php  В нём есть рабочая (получает значения) переменная $ruValue

я разместил файл valute.php по пути admin\controller\common так как планировал выводить значение в header

далее я в файле admin\view\template\common\header.twig пытаюсь вывести значение переменой {{ ruValue }}  и конечно ничего не выходит!

ВОПРОС: как правильно объявить данную переменную в admin\controller\common\header.php ?

В контроллере 

$data['ruValue'] = $this->load->controller('common/valute');

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Например вот так в common/header

$data['ruValue']=$this->load->controller('common/valute');
 

Ну и конечно же  контроллер common/valute должен возвращать это значение

$ruValue = "....";
return $ruValue;

 

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


28.05.2022 в 08:29, adrozdiuk7 сказал:

Например вот так в common/header

$data['ruValue']=$this->load->controller('common/valute');
 

Ну и конечно же  контроллер common/valute должен возвращать это значение

$ruValue = "....";
return $ruValue;

 

 

Вроде все логично, более в файле valute.php я упростил запись контрольно до двух строк

$ruValue = "0,36";
return $ruValue;

в header.php  в контролере объявил

<?php
// *	@source		See SOURCE.txt for source and other copyright.
// *	@license	GNU General Public License version 3; see LICENSE.txt

class ControllerCommonHeader extends Controller {
	public function index() {
		$data['title'] = $this->document->getTitle();

		if ($this->request->server['HTTPS']) {
			$data['base'] = HTTPS_SERVER;
		} else {
			$data['base'] = HTTP_SERVER;
		}

		$data['description'] = $this->document->getDescription();
		$data['keywords'] = $this->document->getKeywords();
		$data['links'] = $this->document->getLinks();
		$data['styles'] = $this->document->getStyles();
		$data['scripts'] = $this->document->getScripts();
		$data['lang'] = $this->language->get('code');
		$data['direction'] = $this->language->get('direction');
      //моя переменная//
 $data['ruValue'] = $this->load->controller('common/valute');
		$this->load->language('common/header');

и наконец в header.twig  я указал переменную

<div class="container-fluid">

<p> курс рубля : {{ ruValue }}</p>

и ничего, просматривая код страницы вижу только

<div class="container-fluid">

   <p> курс рубля : </p>
   <br>
    <a href="#" id="button-menu" class="hidden-md hidden-lg"><span class="fa fa-bars"></span></a> 
</div>

 

Изменено пользователем vladimir911
Ссылка на комментарий
Поделиться на других сайтах


28.05.2022 в 13:03, vladimir911 сказал:

Вроде все логично, более в файле valute.php я упростил запись контрольно до двух строк

$ruValue = "0,36";
return $ruValue;

в header.php  в контролере объявил

и наконец в header.twig  я указал переменную

и ничего, просматривая код страницы вижу только

 

valute.php должен иметь вид

<?php 
class ControllerCommonValute extends Controller {
	public function index() {
		$ruValue = "0,36";
		return $ruValue;
	}
}

Не забывайте чистить кеш модификаторов.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

отдельно благодарю bogdan281989 все сработало, но теперь не могу разобраться с return -  передается только почему то одна переменная

<?php 
class ControllerCommonValute extends Controller {
	public function index() {
      $euValue = "20";
      $dlValue = "19";
      $ruValue = "0,36";
      
	return $ruValue;
        return $euValue;
        return $dlValue;
	}
}

хоть в в файле header.php я указал 

$data['ruValue'] = $this->load->controller('common/valute');
$data['euValue'] = $this->load->controller('common/valute');
$data['dlValue'] = $this->load->controller('common/valute');

но на выходе в twig всем трем переменным присвоено значение 0,36

Изменено пользователем vladimir911
Ссылка на комментарий
Поделиться на других сайтах


Первый return прекращает дальнейшее выполнение функции.

Сложи все значения в массив и возвращай его.

$value['ru']='..';
$value['eu']='..';

В контроллере header

$data['value']= $this->loader->controller('common/valute');

В шаблоне

{{value.ru}}
{{value.eu}}
и т.д.

 

 

 

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


29.05.2022 в 11:18, adrozdiuk7 сказал:

Первый return прекращает дальнейшее выполнение функции.

Сложи все значения в массив и возвращай его.

$value['ru']='..';
$value['eu']='..';

В контроллере header

$data['value']= $this->loader->controller('common/valute');

В шаблоне

{{value.ru}}
{{value.eu}}
и т.д.

 

 

 

 

с массивом я уже понял, но не понял как return массива формируется ?

return ['ru','eu'];

так?или просто 

return $value;

 

Изменено пользователем vladimir911
Ссылка на комментарий
Поделиться на других сайтах


29.05.2022 в 11:56, vladimir911 сказал:

с массивом я уже понял, но не понял как return массива формируется ?

return ['ru','eu'];

так?

$value['ru']='..';
$value['eu']='..';

return $value;

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


<?php 
class ControllerCommonValute extends Controller {
	public function index($lang = 'ru') {
		$valutes = [
			'en' => '20',
			'dl' => '19',
			'ru' => '0.36'
		];

		return $valutes[$lang];
	}
}


//$data['ruValue'] = $this->load->controller('common/valute', 'ru');
//$data['euValue'] = $this->load->controller('common/valute', 'en');
//$data['dlValue'] = $this->load->controller('common/valute', 'dl');

 

Но лучше массив в common/header прописать т.к. контроллер подключается за 1-6мс

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.