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

добавление языковых переменных в нестандартный 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

Link to post
Share on other sites

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

 

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

Еще у Вас 

class ControllerModuleNewProduct

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

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

class ControllerNewProduct
Link to post
Share on other sites

 

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

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

<?php echo $mynewtext; ?>

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

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

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

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

Edited by fendile
Link to post
Share on other sites

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

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

Edited by Prorab337
Link to post
Share on other sites

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

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

<?php include('catalog/view/theme/'.$config->get('config_template').'/template/new/product.tpl'); ?>
Link to post
Share on other sites

Если Вам в 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; ?>

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

 

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

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
  • Similar Content

    • By grechanyuk
      Доброго времени суток! Имеется OpenCart 2.3, сейчас настраиваю вывод договора с заполненными данными пользователя, но они все никак не хотят отображаться в tpl
      Контроллер:
      $this->load->model('account/signup'); $vendor_data = $this->model_account_signup->getVendorDataUI(); foreach ($vendor_data AS $result) { $data['vendor_data'][] = array ( 'username' => $result['username'], 'firstname' => $result['firstname'], 'middle_name' => $result['middle_name'], 'lastname' => $result['lastname'], 'date_added' => $result['date_added'] ); $username = $result['username']; $firstname = $result['firstname']; $middle_name = $result['middle_name']; $lastname = $result['lastname']; $date_added = $result['date_added']; } $data['username'] = $username; $data['date_added'] = $date_added; $data['firstname'] = $firstname; $data['middle_name'] = $middle_name; $data['lastname'] = $lastname; $this->load->language('account/dogovor'); $data['text_head'] = $this->language->get('text_head'); $data['text_first'] = sprintf($this->language->get('text_first'), $lastname, $firstname, $middle_name); $data['text_city'] = $this->language->get('text_city'); $data['text_date'] = $this->language->get('text_date'); $data['text_head'] = $this->language->get('text_head'); $data['text_predmet'] = $this->language->get('text_predmet'); $data['text_second'] = $this->language->get('text_second'); $data['text_oplata'] = $this->language->get('text_oplata'); $data['text_third'] = $this->language->get('text_third'); $data['text_poryadok'] = $this->language->get('text_poryadok'); $data['text_fourth'] = $this->language->get('text_fourth'); $data['text_otvet'] = $this->language->get('text_otvet'); $data['text_fifth'] = $this->language->get('text_fifth'); $data['text_fors'] = $this->language->get('text_fors'); $data['text_sixth'] = $this->language->get('text_sixth'); $data['text_osob'] = $this->language->get('text_osob'); $data['text_seventh'] = $this->language->get('text_seventh'); $data['text_rekv'] = $this->language->get('text_rekv'); $data['text_eighth'] = $this->language->get('text_eighth'); $data['text_seller'] = $this->language->get('text_seller'); $data['text_nickname'] = $this->language->get('text_nickname'); $this->response->setOutput($this->load->view('common/success', $data)); Модель:
      public function getVendorDataUI() { $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "user` WHERE username = '" . (int)$this->request->get['username'] . "'"); return $query->row; } Вызов контролера происходит по ссылке вида:
      https://tu***.ru/index.php?route=account/signupsuccess&username=avrora
    • By webwork
      Добрый день.
      Возник вопрос переименования категории, ну и естественно существующие подкатегории и товарные страницы будут отдавать 404 ошибку, если позиций не много то этот вопрос решается просто.
      В htaccess прописывал
      RewriteCond %{QUERY_STRING} '^_route_=stroitelnaya-himiya/akrilovaya-shtukaturka-anserglob-kameschkovaya-belaya.html$' RewriteRule ^(.*)$ http://www.lbud.com.ua/decor/akrilovaya-shtukaturka-anserglob-kameschkovaya-belaya.html? [R=301,L] так все прекрасно работает если надо несколько страниц переадрессовать.
      Но что делать если их около 1000 ???
      Я попробовал использовать еще одну переменную в
      RewriteCond %{QUERY_STRING} '^_route_=stroitelnaya-himiya/^(.*)$' RewriteRule ^(.*)$ http://www.lbud.com.ua/decor/$1? [R=301,L] но почему то так не работает результат такой
      www.lbud.com.ua/decor/index.php
       
      Подскажите плз как правильно сделать???
      Заранее всем спасибо))
    • By dnutsa
      Здравствуйте! В карточке товара есть описание, содержащее переменные. Сейчас работают следующие вставки:
      <?php echo $heading_title; ?> <?php echo $model; ?> и
      <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?> Хочу, как минимум, вывести еще что-то типа
      <?php echo $subcategory; ?> Ну или $category, $category_id, $subcategory['name']: не могу найти переменную для вывода подкатегории.

      Подскажите, пожалуйста, как правильно описать эту переменную в контроллере и вывести ее в product.tpl.
      Спасибо!
    • By alexstorm
      Всем привет! Подскажите, как вывести следующие переменные в виде цифр:

      1. Новый заказ (Кол-во новых заказов)

      2. Новый отзыв (Кол-во новых отзывов)

      3. Новый вопрос (Для модуля FAQ кол-во новых вопросов)

      4. Всего товаров

      Хочу улучшить юзабилити админки)

       

      И такой вопрос.. Где можно найти хлебные крошки, чтобы их подкорректировать, а если конкретно то убрать вот это - :: и слово главная..
  • 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.