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

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


mario512
 Share

Recommended Posts

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

		$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? 

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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? 

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

 

Link to comment
Share on other sites

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');
Link to comment
Share on other sites

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

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

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

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

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

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

Link to comment
Share on other sites

В 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));
	}

 

Link to comment
Share on other sites

В 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));
	}

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

Link to comment
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
 Share

×
×
  • 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.