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

Помогите доработать модуль!


Recommended Posts

Помогите с такой проблемой: есть замечательный модуль, который при первом посещении сайта выводит модальное окно с информацией, что сайт только для 18+.
Хотелось бы то же самое, но чтобы это окно появлялось только при заходе в 1 конкретную категорию, например "18+".
Как осуществить - не знаю, ибо в программировании почти совсем 0) 
Помогите, люди добрые!)

МОДУЛЬ: https://opencartforum.com/files/file/732-webme-18yo-%D0%B4%D0%BB%D1%8F-ocstore-v15x/ (автор дал согласие на вмешательство со стороны) 

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


В catalog/view/theme/ваша_тема/template/common/footer.tpl

 

Вот это:

<?php if ($webme_18yo_status) { ?>
<style type="text/css">
.ui-widget-overlay {
    opacity: .96;
}
</style>
<div id="webme_18yo_modal_container"></div>
<script>
    $(function() {
        $('#webme_18yo_modal_container').load('index.php?route=module/webme_18yo/modal');
    });
    </script>
<?php } ?>

 

заменяем на

 

<?php if ($webme_18yo_status || $_SERVER['REQUEST_URI']=='адрес категории') { ?>
<style type="text/css">
.ui-widget-overlay {
    opacity: .96;
}
</style>
<div id="webme_18yo_modal_container"></div>
<script>
    $(function() {
        $('#webme_18yo_modal_container').load('index.php?route=module/webme_18yo/modal');
    });
    </script>
<?php } ?>

где адрес категории должен быть вида, например:

/eroticheskoe-bele/bodi-teddi/

а если без включенного ЧПУ то:

/index.php?route=product/category&path=25_28

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


Почти все верно, а если товар находится в категории 18+ ?

 

Serj1992, ну мы ж с тобой этот вопрос обсуждали. Не так ли?
Надіслати
Поділитися на інших сайтах

 

Почти все верно, а если товар находится в категории 18+ ?

а в чём проблема?

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


Сделал все, как описано. Сообщение выводится на главной странице.

 

http://smartshop.96.lt/

кеш чистили?

 

P.S.

у меня вообще всё это дело криво отображает.

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


кеш чистили?

 

P.S.

у меня вообще всё это дело криво отображает.

 

У меня все ровно, только текст в окно не влазит, укоротить надо.

Почистил кеш - теперь на главной всё ок, но выводится в ЛЮБОЙ категории.

PS: А нет, при обновлении и на главную вывел(

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


сделай по другому

if ($webme_18yo_status || $this-request->get[['path'] == 73){

Т.е. я так понимаю, этим нужно заменить вот это: if ($webme_18yo_status || $_SERVER['REQUEST_URI']=='адрес категории') ?

 

А вместо 73 мне нужно написать 73_81? (т.к. адрес категории: category&path=73_81)

 

 

Или оставить как есть?

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


сделай по другому

if ($webme_18yo_status || $this-request->get[['path'] == 73){

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /home/u574746132/public_html/vqmod/vqcache/vq2-catalog_view_theme_pav_plaza_template_common_footer.tpl on line 185

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


if ($webme_18yo_status || $this->request->get['path'] == 73){

 

Ну... не знаю... мне оно такой путь дала.

 

 

/index.php?route=product/product&path=73&product_id=142

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

if ($webme_18yo_status || $this->request->get['path'] == 73){

 

Ну... не знаю... мне оно такой путь дала.

 

 

/index.php?route=product/product&path=73&product_id=142

Ну да, хотя если зайти в саму категорию - 73_81.

Все равно отображается везде...

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


Ну да, хотя если зайти в саму категорию - 73_81.

Все равно отображается везде...

значит не так что-то установлено)

К тому же в Мазилле всё видно так http://joxi.ru/ugLyUhjKTJDfXJiYG-8

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


$webme_18yo_status - Откуда эта переменная?

 

Это из конфига - типа отображать для 18+?

 

 

тогда

if ($webme_18yo_status && $this-request->get[['path'] == 73){

 

или

if ($this-request->get[['path'] == 73 || $this-request->get[['path'] == 73_81){

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

$webme_18yo_status - Откуда эта переменная?

 

Это из конфига - типа отображать для 18+?

 

 

тогда

if ($webme_18yo_status && $this-request->get[['path'] == 73){

 

или

if ($this-request->get[['path'] == 73 || $this-request->get[['path'] == 73_81){

$this-request->get[['path']   ---   тут так должно быть? $this->request->get[['path']

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


Вот что находится в catalog\controller\module\webme_18yo.php

 

<?php
class ControllerModuleWebme18YO extends Controller {
	public function index() {
		if ($this->config->get('webme_18yo_status')) {
			
			if ($this->config->get('webme_18yo_debug_mode') == 1) {
				// remove cookie while testing...
				setcookie('18yo_agree', "", time() - 10, '/');
			}
			
			$agree = isset($this->request->cookie['18yo_agree']);
			
			if (isset($this->request->post['18yo_agree'])) {
				setcookie('18yo_agree', $this->request->post['18yo_agree'], time() + 3600 * 24 * $this->config->get('webme_18yo_cookie_days_lifetime'), '/');
				// redirect to store homepage
				header('Location: '.HTTPS_SERVER.'');
			}
			
			if (!$agree) {
				$route = '';
				
				if (isset($this->request->get['route'])) {
					$part = explode('/', $this->request->get['route']);
					
					if (isset($part[0])) {
						$route .= $part[0];
					}
				}
				
				// Show site if logged in as admin
				$this->load->library('user');
				
				$this->user = new User($this->registry);
				
				if (($route != 'payment') && !$this->user->isLogged()) {
					return $this->forward('module/webme_18yo/info');
				}
			}
		}
	}
	
	public function info() {
		$this->load->language('module/webme_18yo');
		$this->document->setTitle($this->language->get('heading_title'));
		$this->data['heading_title'] = $this->language->get('heading_title');
		
		$this->data['action'] = HTTPS_SERVER."index.php?route=module/webme_18yo";
		
		// form buttons
		$this->data['button_agree'] = $this->language->get('button_agree');
		$this->data['button_disagree'] = $this->language->get('button_disagree');
		
		$this->document->breadcrumbs = array();
		$this->document->breadcrumbs[] = array(
			'text'      => $this->language->get('text_breadcrumbs'),
			'href'      => $this->url->link('module/webme_18yo'),
			'separator' => false
		); 
		
		$this->data['message'] = nl2br($this->config->get('webme_18yo_agreement'));
		$this->data['disagreement_link'] = $this->config->get('webme_18yo_disagreement_link');
		
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/webme_18yo.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/webme_18yo.tpl';
		} else {
			$this->template = 'default/template/module/webme_18yo.tpl';
		}
		
		$this->children = array(
			'common/footer',
			'common/header'
		);
		
		$this->response->setOutput($this->render());
	}
	
	public function modal() {
		$agree = isset($this->request->cookie['18yo_agree']);
		
		if ($this->config->get('webme_18yo_debug_mode') == 1) {
			// remove cookie while testing...
			setcookie('18yo_agree', "", time() - 10, '/');
		}
		
		if (!$agree) {
			$this->load->language('module/webme_18yo');
			$this->document->setTitle($this->language->get('heading_title'));
			$this->data['heading_title'] = $this->language->get('heading_title');
			$this->data['webme_18yo_header'] = $this->language->get('heading_title');
			
			$this->data['action'] = HTTPS_SERVER."index.php?route=module/webme_18yo/agree";
			
			// form buttons
			$this->data['button_agree'] = $this->language->get('button_agree');
			$this->data['button_disagree'] = $this->language->get('button_disagree');
			
			$this->document->breadcrumbs = array();
			$this->document->breadcrumbs[] = array(
				'text'      => $this->language->get('text_breadcrumbs'),
				'href'      => $this->url->link('module/webme_18yo'),
				'separator' => false
			); 
			
			$this->data['message'] = nl2br($this->config->get('webme_18yo_agreement'));
			$this->data['disagreement_link'] = $this->config->get('webme_18yo_disagreement_link');
			
			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/webme_18yo_modal.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/module/webme_18yo_modal.tpl';
			} else {
				$this->template = 'default/template/module/webme_18yo_modal.tpl';
			}
			
			$this->response->setOutput($this->render());
		} else {
			$output = "";
			die();
		}
	}
	
	public function agree() {
		$result = array();
		if (isset($this->request->post['18yo_agree'])) {
			setcookie('18yo_agree', $this->request->post['18yo_agree'], time() + 3600 * 24 * $this->config->get('webme_18yo_cookie_days_lifetime'), '/');
			$result['success'] = 1;
		} else {
			$this->load->language('module/webme_18yo');
			$result['error'] = $this->language->get('text_agree_cookie_error');
		}
		
		$this->response->setOutput(json_encode($result));
	}
}
?>
Надіслати
Поділитися на інших сайтах


Так, вроде получилось с вариантом <?php if ($webme_18yo_status && $this->request->get['path'] == 73){ ?>


Одна проблема осталась - сообщение выводится при ПОВТОРНОМ обновлении (не с первого раза)

 

 

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


 

Так, вроде получилось с вариантом <?php if ($webme_18yo_status && $this->request->get['path'] == 73){ ?>

Одна проблема осталась - сообщение выводится при ПОВТОРНОМ обновлении (не с первого раза)

 

PS: не знаю, что было, но все заработало! :) Спасибо огромное всем тем, кто принимал участие!!! Особое (самое большое) спасибо 

chukcha

 Без вас прям не знаю, что делал бы! :)

PPS: может кто-нибудь подскажет ссылочку, где быстро освоить хоть начальную стадию PHP?

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


 

Одна проблема осталась - сообщение выводится при ПОВТОРНОМ обновлении (не с первого раза)

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

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

а на это, никто внимания не обращает?  :-D

de531f3d2649f3a84933918c40f7dc218b2d9972

УПС))

Поехали)) Как поправить?)

Вот что там: 

 

<!-- End SiteHeart code -->
<!--
OpenCart is open source software and you are free to remove the powered by OpenCart if you want, but its generally accepted practise to make a small donation.
Please donate via PayPal to [email protected]
//-->
</section>
<?php if ($webme_18yo_status && $this->request->get['path'] == 73){ ?>
<style type="text/css">
.ui-widget-overlay {
	opacity: .96;
}
</style>
<div id="webme_18yo_modal_container"></div>
<script>
	$(function() {
		$('#webme_18yo_modal_container').load('index.php?route=module/webme_18yo/modal');
	});
	</script>
<?php } ?>
</body></html>
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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