Jump to content
Sign in to follow this  
mario512

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

Recommended Posts

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

Share this post


Link to post
Share on other sites
37 минут назад, mario512 сказал:

Пробовал разные варианты, ничего не выходит.

это хорошо бы написать))

 

Share this post


Link to post
Share on other sites

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

Edited by mario512

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, mario512 сказал:

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

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

Share this post


Link to post
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? 

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

 

Share this post


Link to post
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');

Share this post


Link to post
Share on other sites
3 минуты назад, pashast сказал:

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

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

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

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

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

Share this post


Link to post
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));
	}

 

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
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));
	}

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By hardmonick
      Недавно обнаружил в некоторых категория товаров следующую ошибку Notice: unserialize(): Error at offset 9 of 50 bytes in /home/promar06/pro-mart.com.ua/www/system/storage/modification/catalog/controller/product/category.php on line 715. Может кто сталкивался с данной проблемой? Подскажите пожалуйста в какой стороне искать решение данной проблемы. Спасибо!

    • By Stokoles
      Добрый день!
      Возможно кто-то сталкивался, в чем может быть проблема?
      При обновлении модификаторов в админке, вылазит ошибкаи не пускает в админку.
      При удалении этого файла, ошибка исчезает и доступ в админку появляется.
      Что и с чем может конфликтовать и как решить проблему?
    • By Cybervizor
      Здравствуйте!
      Есть проблема: при работе модуля Диспетчер YML\XML v. 3.0 при загрузке цен и веса товаров точка заменяется на запятую, в результате в базу данные не попадают. Цитирую разработчика:
      Здесь описана схожая ситуация. https://stackoverflow.com/questions/41954111/php-change-the-decimal-separator
       
      В общем нужно на сервере найти и решить эту проблему за вознаграждение.
    • By valauto
      При добавлении расширения "Рекомендуемые категории" через админку при сохранении опции 'Enabled' Opencart 3x выдает ошибку: Notice: Undefined index: category_id in C:\xampp\htdocs\valauto\upload-3033-rs3\admin\controller\extension\module\latestcategory.php on line 16Notice: Undefined property: Proxy::addModule2 in C:\xampp\htdocs\valauto\upload-3033-rs3\system\storage\modification\system\engine\action.php on line 79, подскажите пожалуйста как быть?


    • By Stokoles
      Разбирались с языками, меняли кода в локализации, устанавливали разные пакеты.
      Была изначально кодировка ua, но по международным требованиям в конечном итоге изменили ua на uk.
      В связи с этими действиями исчезло с главной страницы https://prnt.sc/tv0lwm
      Что бы могло это быть? Есть ли пути это исправить?
      Бекап не помог.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.