Перейти к содержанию
sashamaximiv

вывести значение 'position' из модуля в админке, на страницу на сайте

Рекомендуемые сообщения

Здравствуйте. Есть такой код в контроллере (admin):

if (isset($this->request->post['position'])) {
			$data['position'] = $this->request->post['position'];
		} elseif (!empty($module_info)) {
			$data['position'] = $module_info['position'];
		} else {
			$data['position'] = '';
		}

Screenshot_9.thumb.png.97700c9546868d8a53ebbe8f8db22063.png

 

При выборе значения в бд сохраняется значение position: 1 2 или 3

так вот, как вывести это значение на сайте в шаблоне tpl?

Пробовал вот так <?php echo $position; ?>
Не работает.... 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, sashamaximiv сказал:

Здравствуйте. Есть такой код в контроллере (admin):


if (isset($this->request->post['position'])) {
			$data['position'] = $this->request->post['position'];
		} elseif (!empty($module_info)) {
			$data['position'] = $module_info['position'];
		} else {
			$data['position'] = '';
		}

Screenshot_9.thumb.png.97700c9546868d8a53ebbe8f8db22063.png

 

При выборе значения в бд сохраняется значение position: 1 2 или 3

так вот, как вывести это значение на сайте в шаблоне tpl?

Пробовал вот так <?php echo $position; ?>
Не работает.... 

 

 

 

 

Именно так, как Вы написали.. Проверьте что отдаёт контроллер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АДМИНКА:

 

/admin/controller/extension/module/viewed.php

 

<?php
class ControllerExtensionModuleViewed extends Controller {
	private $error = array();

	public function index() {
		$this->load->language('extension/module/viewed');

		$this->document->setTitle($this->language->get('heading_title'));

		$this->load->model('setting/setting');

		$this->load->model('extension/module');

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			if (!isset($this->request->get['module_id'])) {
				$this->model_extension_module->addModule('viewed', $this->request->post);
			} else {
				$this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post);
			}

			$this->session->data['success'] = $this->language->get('text_success');

			$this->response->redirect($this->url->link('extension/extension', 'token=' . $this->session->data['token'], 'SSL'));
		}

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

		$data['text_edit'] = $this->language->get('text_edit');
		$data['text_enabled'] = $this->language->get('text_enabled');
		$data['text_disabled'] = $this->language->get('text_disabled');

		$data['entry_limit'] = $this->language->get('entry_limit');
		$data['entry_name'] = $this->language->get('entry_name');
		$data['entry_width'] = $this->language->get('entry_width');
		$data['entry_height'] = $this->language->get('entry_height');
		$data['entry_status'] = $this->language->get('entry_status');

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

		$data['button_save'] = $this->language->get('button_save');
		$data['button_cancel'] = $this->language->get('button_cancel');
		$data['button_module_add'] = $this->language->get('button_module_add');
		$data['button_remove'] = $this->language->get('button_remove');
		$data['text_position'] = $this->language->get('text_position');
		$data['text_position1'] = $this->language->get('text_position1');
		$data['text_position2'] = $this->language->get('text_position2');
		$data['text_position3'] = $this->language->get('text_position3');

		if (isset($this->error['warning'])) {
			$data['error_warning'] = $this->error['warning'];
		} else {
			$data['error_warning'] = '';
		}

		if (isset($this->error['name'])) {
			$data['error_name'] = $this->error['name'];
		} else {
			$data['error_name'] = '';
		}

		if (isset($this->error['width'])) {
			$data['error_width'] = $this->error['width'];
		} else {
			$data['error_width'] = '';
		}

		if (isset($this->error['height'])) {
			$data['error_height'] = $this->error['height'];
		} else {
			$data['error_height'] = '';
		}

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

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_module'),
			'href' => $this->url->link('extension/extension', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('heading_title'),
			'href' => $this->url->link('extension/module/viewed', 'token=' . $this->session->data['token'], 'SSL')
		);

		if (!isset($this->request->get['module_id'])) {
			$data['action'] = $this->url->link('extension/module/viewed', 'token=' . $this->session->data['token'], 'SSL');
		} else {
			$data['action'] = $this->url->link('extension/module/viewed', 'token=' . $this->session->data['token'] . '&module_id=' . $this->request->get['module_id'], 'SSL');
		}

		$data['cancel'] = $this->url->link('extension/extension', 'token=' . $this->session->data['token'], 'SSL');

		if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
			$module_info = $this->model_extension_module->getModule($this->request->get['module_id']);
		}

		$data['token'] = $this->session->data['token'];

		if (isset($this->request->post['name'])) {
			$data['name'] = $this->request->post['name'];
		} elseif (!empty($module_info)) {
			$data['name'] = $module_info['name'];
		} else {
			$data['name'] = '';
		}

		if (isset($this->request->post['limit'])) {
			$data['limit'] = $this->request->post['limit'];
		} elseif (!empty($module_info)) {
			$data['limit'] = $module_info['limit'];
		} else {
			$data['limit'] = 5;
		}

		if (isset($this->request->post['width'])) {
			$data['width'] = $this->request->post['width'];
		} elseif (!empty($module_info)) {
			$data['width'] = $module_info['width'];
		} else {
			$data['width'] = 200;
		}

		if (isset($this->request->post['height'])) {
			$data['height'] = $this->request->post['height'];
		} elseif (!empty($module_info)) {
			$data['height'] = $module_info['height'];
		} else {
			$data['height'] = 200;
		}

		if (isset($this->request->post['status'])) {
			$data['status'] = $this->request->post['status'];
		} elseif (!empty($module_info)) {
			$data['status'] = $module_info['status'];
		} else {
			$data['status'] = '';
		}

		if (isset($this->request->post['position'])) {
			$data['position'] = $this->request->post['position'];
		} elseif (!empty($module_info)) {
			$data['position'] = $module_info['position'];
		} else {
			$data['position'] = '';
		}

				
		$data['header'] = $this->load->controller('common/header');
		$data['column_left'] = $this->load->controller('common/column_left');
		$data['footer'] = $this->load->controller('common/footer');

		$this->response->setOutput($this->load->view('extension/module/viewed.tpl', $data));
	}

	protected function validate() {
		if (!$this->user->hasPermission('modify', 'extension/module/viewed')) {
			$this->error['warning'] = $this->language->get('error_permission');
		}

		if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 64)) {
			$this->error['name'] = $this->language->get('error_name');
		}

		if (!$this->request->post['width']) {
			$this->error['width'] = $this->language->get('error_width');
		}

		if (!$this->request->post['height']) {
			$this->error['height'] = $this->language->get('error_height');
		}

		return !$this->error;
	}
}

 

 

САЙТ:

 

/catalog/controller/extension/module/viewed.php

 

<?php
class ControllerExtensionModuleViewed extends Controller {
	public function index($setting) {
		
		$this->load->language('extension/module/viewed');

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

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

		$data['button_cart'] = $this->language->get('button_cart');
		$data['button_wishlist'] = $this->language->get('button_wishlist');
		$data['button_compare'] = $this->language->get('button_compare');

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

		$this->load->model('tool/image');

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

        $products = array();

        if (isset($this->request->cookie['viewed'])) {
            $products = explode(',', $this->request->cookie['viewed']);
        } else if (isset($this->session->data['viewed'])) {
            $products = $this->session->data['viewed'];
        }

		if (isset($this->request->post['position'])) {
			$data['position'] = $this->request->post['position'];
		} elseif (!empty($module_info)) {
			$data['position'] = $module_info['position'];
		} else {
			$data['position'] = '';
		}

        if (isset($this->request->get['route']) && $this->request->get['route'] == 'product/product') {
            $product_id = $this->request->get['product_id'];
            $products = array_diff($products, array($product_id));
            array_unshift($products, $product_id);
            setcookie('viewed', implode(',',$products), time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
        }

		if (empty($setting['limit'])) {
			$setting['limit'] = 4;
		}

		$products = array_slice($products, 0, (int)$setting['limit']);

		foreach ($products as $product_id) {
			$product_info = $this->model_catalog_product->getProduct($product_id);

			if ($product_info) {
				if ($product_info['image']) {
					$image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']);
				} else {
					$image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']);
				}

				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
				} else {
					$price = false;
				}

				if ((float)$product_info['special']) {
					$special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
				} else {
					$special = false;
				}

				if ($this->config->get('config_tax')) {
					$tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price'], $this->session->data['currency']);
				} else {
					$tax = false;
				}

				if ($this->config->get('config_review_status')) {
					$rating = $product_info['rating'];
				} else {
					$rating = false;
				}


				$data['products'][] = array(
					'product_id'  => $product_info['product_id'],
					'thumb'       => $image,
					'name'        => $product_info['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $product_info['product_id'])
				);
			}
		}



		if ($data['products']) {
			return $this->load->view('extension/module/viewed', $data);
		}

	}
}

 

/catalog/view/theme/default/template/extension/module (нужно вывести здесь значение $position)

<div class="carousel"> 
<div class="box-heading"><?php echo $position; ?></div>
	<a href="#"><div class="carousel-button-left"></div> </a>
	<a href="#"><div class="carousel-button-right"></div> </a>
      
		<div class="carousel-wrapper"> 
		   <div class="carousel-items">
					<?php foreach ($products as $product) { ?>
					<div class="carousel-block">
						<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div>
        					<h4 class="nowrap"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>
        
        				<?php if ($product['price']) { ?>
        				<p class="price">
          <?php if (!$product['special']) { ?>
          <?php echo $product['price']; ?>
          <?php } else { ?>
          <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
          <?php } ?>
          <?php if ($product['tax']) { ?>
          <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
          <?php } ?>
        </p>
        <?php } ?>

        <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');" class="s016 animate"><?php echo $button_cart; ?></button>
        			</div>
  					<?php } ?>
		   </div>
		</div>
</div>

 

Результат http://pioneerv.isp16.admintest.ru/index.php?route=product/product&product_id=50, вместо значения (1, 2 или 3), не выводится ничего. Даже ошибки нету:Screenshot_10.thumb.png.f169863606677f050af4d75109ec3cc4.png

 

Подскажите что не так...

 

 

 

 

 

Изменено пользователем sashamaximiv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прописал здесь /catalog/controller/extension/module/viewed.php:

$data['position2'] = $this->config->get('position');

А в /catalog/view/theme/default/template/extension/module/viewed.tpl:

<div class="box-heading"><?php echo $position2; ?></div>

И все равно ничего...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если так:

$data['position2'] = $this->request->get('position');

Страница вообще не прогружается. Белая.

 

Значение в БД есть:

 

Screenshot_11.png

Изменено пользователем sashamaximiv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас ошибка в контроллере. /catalog/controller/extension/module/viewed.php

Это для чего ?

if (isset($this->request->post['position'])) {
			$data['position'] = $this->request->post['position'];
		} elseif (!empty($module_info)) {
			$data['position'] = $module_info['position'];
		} else {
			$data['position'] = '';
		}

****************

 

$data['position'] = $setting['position'];
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, sashamaximiv сказал:

nexus, спасибо, помогли

На здоровье..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

извиняюсь что не в тему может подскажите как вывести на сайте кол-во товаров во всем магазине? желательно с кол-вом >0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 30.04.2017 в 13:13, kamar87 сказал:

как вывести на сайте кол-во товаров во всем магазине?

а что не получается?  в контроллере считаете товары, результат передаете в шаблон, выводите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 часов назад, fanatic сказал:

а что не получается?  в контроллере считаете товары, результат передаете в шаблон, выводите.

можно подробнее? я в этом не совсем понимаю )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.