Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Решено] Вывести переменную ?


Recommended Posts

Добрый день подскажите что не так делаю

 

создаю файл \catalog\controller\test\test.php 

 

в нем

 

<?
class ControllerTestTest extends Controller {
 
    //private $error = array();
    public function index() {
    
    $this->load->language('test/test');
    
    $this->data['var_name']='LALALA';
    
    }
}
?>

 

создаю файл шаблона  \catalog\view\theme\default\test\test.tpl

 

в нем пишу

 

<p><?php echo $var_name; ?></p>

 

Создаю в шаблоне файла  \catalog\view\theme\default\template\common\header.tpl

 

ссылку  <a href="index.php?route=test/test" >Test</a>

 

При нажатии на ссылку  выходит пустая страница ?! :(

 

 

 

 

 

 

Link to post
Share on other sites

Замените последние 2 строки следующим:

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/test/test.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/test/test.tpl';
		} else {
			$this->template = 'default/template/test/test.tpl';
		}

		$this->render(); 
	}
}
?>
P.S. Файл шаблона должен лежать здесь: catalog/view/theme/default/template/template/test.tpl
Link to post
Share on other sites

из контроллера нужно подключить шаблон, он автоматически не подключается

после чего сделать рендер

откройте любой контроллер и посмотрите как там все сделано

Link to post
Share on other sites

И там и так попробывал ..результат тот же ..белый экран ... если переименовываю файл tpl  то ошибку выводит нормально Notice: Error: Could not load template

Link to post
Share on other sites

В котроллере в первой строке

<?
замените на
<?php
Link to post
Share on other sites

В котроллере в первой строке

<?
замените на
<?php

 

Заменил ... результат тот же !  Что самое интересное ..попробовал в header существующего сайта ..переменную эту же вывести ..все выводит нормально ...Что тут не так не пойму ?

Link to post
Share on other sites

Синтаксическая ошибка может в контроллере допущена. Не закрытая кавычка или точка с запятой пропущена.

Или скобка где-нибудь лишняя.

См. логи сервера.

Link to post
Share on other sites

Синтаксическая ошибка может в контроллере допущена. Не закрытая кавычка или точка с запятой пропущена.

Или скобка где-нибудь лишняя.

См. логи сервера.

Ткните носом меня пожалуйста ..где можно посмотреть логи сервера ?!

Link to post
Share on other sites

Ткните носом меня пожалуйста ..где можно посмотреть логи сервера ?!

Как правило, в панели управления хостингом. У каждого хостера - по разному.

Вы покажите лучше полностью код из контроллера.

Link to post
Share on other sites

Как правило, в панели управления хостингом. У каждого хостера - по разному.

Вы покажите лучше полностью код из контроллера.

Немного изменил шаблон ..сейчас у сайта в админке выбран шаблон Space-cart

 

Ссылка вставлена на главную страницу в файле www\site\catalog\view\theme\Space-cart\template\common\header.tpl

 

</head>

<body>

<a href="index.php?route=pricelist/price" >Ссылка</a>

...

 

 

В файле www\site\catalog\controller\pricelist\price.php

 

<?php

class Controllerpricelistprice extends Controller {

 

    private $error = array();

    public function index() {

    

    $this->data['var_name']='LALALA';

    

    $this->template = 'Space-cart/template/pricelist/price.tpl';

        

    $this->render();

        

    }

}

?>

в файле www\site\catalog\view\theme\Space-cart\template\pricelist\price.tpl

 

<?php

  echo $var_name;

?>

 

И вот при нажатии на ссылку ...выходит пустая страница .

Link to post
Share on other sites

Вместо

$this->render();

Нужно использовать

$this->response->setOutput($this->render());

И в вашем случае

private $error = array();

на фиг не нужна...

Link to post
Share on other sites

Вместо

$this->render();

Нужно использовать

$this->response->setOutput($this->render());

И в вашем случае

private $error = array();

на фиг не нужна...

ах вон оно что михалыч )))) спасибо большое ..вот другое теперь интересно ... где берут документацию чтобы знать что надо именно так ?  $this->response->setOutput($this->render());  такую строку не видел вообще в существующем сайте

Link to post
Share on other sites

такую строку не видел вообще в существующем сайте

Взято из information/information.

Link to post
Share on other sites

Взято из information/information.

не понял ..это где такое ..скажите пожалуйста полную ссылку ?!

Link to post
Share on other sites

не понял ..это где такое ..скажите пожалуйста полную ссылку ?!

catalog/controller/information/information.php
Link to post
Share on other sites

catalog/controller/information/information.php

Есть такое да .... Скажите пожалуйста ...а я так понял что официальной документации полной для разработчиков нет вообще ?! кроме той что на http://docs.opencart.com/display/opencart/Loading+files+in+the+controller

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.