Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

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

Помогите с такой проблемой: есть замечательный модуль, который при первом посещении сайта выводит модальное окно с информацией, что сайт только для 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 || $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

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


а на это, никто внимания не обращает?  :-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>
Ссылка на комментарий
Поделиться на других сайтах


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

Хм... а почему это в футере

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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