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

Передать значение переменной.


mario512

Recommended Posts

Добрый вечер. Подскажите, как протащить <?php echo $review['author']; ?> из review.tpl в product.tpl. Пробовал разные варианты, ничего не выходит. 

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

@anboza <?php echo $review['author']; ?> и еще несколько...

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

Я так понял, что сюда залетают отзывы:

		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);

		foreach ($results as $result) {
			$data['reviews'][] = array(
				'author'     => $result['author'],
				'text'       => nl2br($result['text']),
				'rating'     => (int)$result['rating'],
				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}

Как их передать в product.tpl? 

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

1 минуту назад, mario512 сказал:

Как их передать в product.tpl? 

заявить контроллер product.php в модели ревью, потом вывести для отображения в product.tpl. Может кто подскажет проще вариант, но мне кажется, это самый простой, без создания никаких доп запросов.

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

26 минут назад, mario512 сказал:

Я так понял, что сюда залетают отзывы:


		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);

		foreach ($results as $result) {
			$data['reviews'][] = array(
				'author'     => $result['author'],
				'text'       => nl2br($result['text']),
				'rating'     => (int)$result['rating'],
				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}

Как их передать в product.tpl? 

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

 

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

26 минут назад, mario512 сказал:

Я так понял, что сюда залетают отзывы:


		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);

		foreach ($results as $result) {
			$data['reviews'][] = array(
				'author'     => $result['author'],
				'text'       => nl2br($result['text']),
				'rating'     => (int)$result['rating'],
				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}

Как их передать в product.tpl? 

Вставьте ваш код в product.php до загрузки шаблона

$this->response->setOutput($this->load->view('product/product', $data));

И перед вашим кодом нужно еще вызвать модель

$this->load->model('catalog/review');
Надіслати
Поділитися на інших сайтах

3 минуты назад, pashast сказал:

Вставьте ваш код в product.php до загрузки шаблона


$this->response->setOutput($this->load->view('product/product', $data));

И перед вашим кодом нужно еще вызвать модель


$this->load->model('catalog/review');

ну в принципе да, только примером )) 

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

В 22.12.2018 в 21:38, pashast сказал:

Вставьте ваш код в product.php до загрузки шаблона


$this->response->setOutput($this->load->view('product/product', $data));

И перед вашим кодом нужно еще вызвать модель


$this->load->model('catalog/review');

Да это все присутствует в контроллере по дефолту. 

public function review() {
		$this->load->language('product/product');

		$this->load->model('catalog/review');

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

		if (isset($this->request->get['page'])) {
			$page = $this->request->get['page'];
		} else {
			$page = 1;
		}

		$data['reviews'] = array();

		$review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']);

		
		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);

		foreach ($results as $result) {
			$data['reviews'][] = array(
				'author'     => $result['author'],
				'text'       => nl2br($result['text']),
				'rating'     => (int)$result['rating'],
				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}
        
		$pagination = new Pagination();
		$pagination->total = $review_total;
		$pagination->page = $page;
		$pagination->limit = 5;
		$pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}');

		$data['pagination'] = $pagination->render();

		$data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5));

		$this->response->setOutput($this->load->view('product/review', $data));
	}

 

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

Ну так вы же привели код метода review(), и шаблон там product/review.tpl

 

А вам нужно получить переменную в шаблоне product/product.tpl значит надо код писать в метод index()

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

В 22.12.2018 в 21:38, pashast сказал:

Вставьте ваш код в product.php до загрузки шаблона


$this->response->setOutput($this->load->view('product/product', $data));

И перед вашим кодом нужно еще вызвать модель


$this->load->model('catalog/review');

Да это все присутствует в контроллере по дефолту. 

public function review() {
		$this->load->language('product/product');

		$this->load->model('catalog/review');

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

		if (isset($this->request->get['page'])) {
			$page = $this->request->get['page'];
		} else {
			$page = 1;
		}

		$data['reviews'] = array();

		$review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']);

		
		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);

		foreach ($results as $result) {
			$data['reviews'][] = array(
				'author'     => $result['author'],
				'text'       => nl2br($result['text']),
				'rating'     => (int)$result['rating'],
				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
			);
		}
        
		$pagination = new Pagination();
		$pagination->total = $review_total;
		$pagination->page = $page;
		$pagination->limit = 5;
		$pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}');

		$data['pagination'] = $pagination->render();

		$data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5));

		$this->response->setOutput($this->load->view('product/review', $data));
	}

Спасибо, буду пробовать.

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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