Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

добавление языковых переменных в нестандартный tpl


Recommended Posts

Здравствуйте. У меня есть часто повторяющийся кусок кода, который мне надо вставлять в разные модули. например в последнее, рекомендуемое, еще куда-то. Я вынесла этот кусок в отдельный tpl файл и через include подцепляю его. 

файл лежит в папке с шаблоном: template/new/product.tpl

В этом файле помимо прочего мне нужно выводить русский текст. Почитала всяческое в интернетах и сделала так:

1) завела в файл language/russian/new/product.php

<?php
$_['mynewtext']       = 'траляля';
?>

2) в new/product.tpl в нужном мне месте написала

<?php echo $mynewtext; ?>

3) создала файл catalog/controller/new/product.php

там написала вот такое

<?php  
class ControllerModuleNewProduct extends Controller {
	protected function index() {	
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/new/product.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/new/product.tpl';
		} else {
			$this->template = 'default/template/new/product.tpl';
			}
        $this->language->load('new/product');			
		$this->data['mynewtext'] = $this->language->get('mynewtext');		
	}
}
?>

Подозреваю, что в последнем пункте у меня косяки, так как  есть всяческие мануалы, как сделать это для нового модуля, а для моего случая (когда нужно просто подцепить новый tpl файл) ничего нет:(

 

Подскажите, как исправить, ибо  на сайте вместо моей переменной  "траляля" выводится

Notice: Undefined variable: mynewtext

Надіслати
Поділитися на інших сайтах


А где Вы вызываете эту переменную и как?

 

попробовала - не помогло :(

Еще у Вас 

class ControllerModuleNewProduct

Хотя файл у Вас лежит как я понимаю catalog/controller/new/product.php

То есть должно быть

class ControllerNewProduct
Надіслати
Поділитися на інших сайтах

И 

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

Есть у Вас или нет в файле контроллера? Код весь показали?

Змінено користувачем Prorab337
Надіслати
Поділитися на інших сайтах

 

А где Вы вызываете эту переменную и как?

Переменную вызываю  файле template/new/product.tpl (который в свою очередь вызываю через include из latest.tpl) вот так:

<?php echo $mynewtext; ?>

ControllerModuleNewProduct переименовала в ControllerNewProduct, но это тоже эффекта не произвело. 

да, код контроллера привела полностью.

такого куска текста $this->response->setOutput($this->render()); у меня не было. 

Строку эту я добавила, ничего не изменилось. Что еще я неправильно делаю?

Змінено користувачем fendile
Надіслати
Поділитися на інших сайтах


Покажите код latest.tpl, а то что-то я уже запутался...

Если вы просто делаете инклуд  template/new/product.tpl то результата не будет

Змінено користувачем Prorab337
Надіслати
Поділитися на інших сайтах

Покажите код latest.tpl, а то что-то я уже запутался...

Если вы просто делаете инклуд  template/new/product.tpl то результата не будет

<?php include('catalog/view/theme/'.$config->get('config_template').'/template/new/product.tpl'); ?>
Надіслати
Поділитися на інших сайтах


Если Вам в latest.tpl нужна переменная $mynewtext; то сделали бы так:

 

1. В контроллере latest 

$this->data['mynewtext'] = $this->getChild('new/product');

2. В контроллере NewProrduct должны сделать return того что хотите видеть в mynewtext к примеру

<?php  
class ControllerNewProduct extends Controller {
	public function index() {	
		
        $this->language->load('new/product');	
       $this->data['mynewtext'] = $this->language->get('mynewtext');

             if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/new/product.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/new/product.tpl';
	    } else {
			$this->template = 'default/template/new/product.tpl';
	    }		
		
       return $this->render();		
	}
}
?>

3. А уже в latest.tpl спокойно

<?php echo $mynewtext; ?>

Можно и попроще сделать не придерживаясь принципов движка.

 

Как-то так если я правильно понял

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.