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

Получение массива переменных в языковом файле


Recommended Posts

Сорри, не знал куда тему опубликовать.

Немного не догоняю всю соль, с какой целью в контролёрах получают каждую переменную по отдельности и присваивают отдельно. Код получается не читабельным, я бы сказал отвратительным. Я конечно понимаю "магия" сеттеров и геттеров и так далее, но всё же.

Я вот по этому, как пример:

			$data['text_recurring_item'] = $this->language->get('text_recurring_item');
			$data['text_next'] = $this->language->get('text_next');
			$data['text_next_choice'] = $this->language->get('text_next_choice');
			$data['column_image'] = $this->language->get('column_image');
			$data['column_name'] = $this->language->get('column_name');
			$data['column_model'] = $this->language->get('column_model');
			$data['column_quantity'] = $this->language->get('column_quantity');
			$data['column_price'] = $this->language->get('column_price');
			$data['column_total'] = $this->language->get('column_total');
			$data['button_update'] = $this->language->get('button_update');
			$data['button_remove'] = $this->language->get('button_remove');
			$data['button_shopping'] = $this->language->get('button_shopping');
			$data['button_checkout'] = $this->language->get('button_checkout');

А если 100 переменных, нет 200 или 300. 

Я немножко переделал 

system/library/language.php

добавив после 

public function get($key) {
   return (isset($this->data[$key]) ? $this->data[$key] : $key);
}

вот это

	/**
	 * return all keys
	* @return array
	 */
	public function getAll() {
		return $this->data;
	}

 

В контролёрах убирается простыня из присвоений и заменяется следующим

 

			$data = array_merge($this->language->getAll(),$data);

Можно конечно ещё упростить, избавившись от array_merge();

Например так

 

			$data['language'] = $this->language->getAll();

Но тогда надо будет переделывать все шаблоны, поэтому не надо последнее

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

2 часа назад, ArtemPitov сказал:

$data = $this->load->language('.../...');

 

Согласен, даже проще. Не посмотрел этот код.

 

Тогда не понимаю смысла в этой простыне в ControllerCheckoutRegister

Спойлер



		$this->load->language('checkout/checkout');

		$data['text_checkout_payment_address'] = $this->language->get('text_checkout_payment_address');
		$data['text_your_details'] = $this->language->get('text_your_details');
		$data['text_your_address'] = $this->language->get('text_your_address');
		$data['text_your_password'] = $this->language->get('text_your_password');
		$data['text_select'] = $this->language->get('text_select');
		$data['text_none'] = $this->language->get('text_none');
		$data['text_loading'] = $this->language->get('text_loading');

		$data['entry_customer_group'] = $this->language->get('entry_customer_group');
		$data['entry_firstname'] = $this->language->get('entry_firstname');
		$data['entry_lastname'] = $this->language->get('entry_lastname');
		$data['entry_email'] = $this->language->get('entry_email');
		$data['entry_telephone'] = $this->language->get('entry_telephone');
		$data['entry_fax'] = $this->language->get('entry_fax');
		$data['entry_company'] = $this->language->get('entry_company');
		$data['entry_address_1'] = $this->language->get('entry_address_1');
		$data['entry_address_2'] = $this->language->get('entry_address_2');
		$data['entry_postcode'] = $this->language->get('entry_postcode');
		$data['entry_city'] = $this->language->get('entry_city');
		$data['entry_country'] = $this->language->get('entry_country');
		$data['entry_zone'] = $this->language->get('entry_zone');
		$data['entry_newsletter'] = sprintf($this->language->get('entry_newsletter'), $this->config->get('config_name'));
		$data['entry_password'] = $this->language->get('entry_password');
		$data['entry_confirm'] = $this->language->get('entry_confirm');
		$data['entry_shipping'] = $this->language->get('entry_shipping');

		$data['button_continue'] = $this->language->get('button_continue');
		$data['button_upload'] = $this->language->get('button_upload');


 

 

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

  • 4 months later...
12 минут назад, DM8985 сказал:

А можно поподробней?

посмотрите как в 3-ке подгружаются языковые переменные
 

 

В 28.09.2017 в 22:49, chukcha сказал:

событие на load image

здесь я описался
 

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

class ControllerEventLanguage extends Controller {
	public function index(&$route, &$args) {
		foreach ($this->language->all() as $key => $value) {
			if (!isset($args[$key])) {
				$args[$key] = $value;
			}
		}
	}

 

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

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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