Jump to content

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

В 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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

Ограничен финансово, так бы согласился.

Share this post


Link to post
Share on other sites

 

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

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

Share this post


Link to post
Share on other sites

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

 

http://smartshop.96.lt/

кеш чистили?

 

P.S.

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

Share this post


Link to post
Share on other sites

кеш чистили?

 

P.S.

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

 

 

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

Share this post


Link to post
Share on other sites

можно долго гадать...

какой путь к файлу футера?

Share this post


Link to post
Share on other sites

можно долго гадать...

какой путь к файлу футера?

catalog/view/theme/pav_plaza/template/common/

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

 

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

Edited by chukcha

Share this post


Link to post
Share on other sites

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

 

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

 

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

$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

Share this post


Link to post
Share on other sites

$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']

Share this post


Link to post
Share on other sites

Вот что находится в 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));
	}
}
?>

Share this post


Link to post
Share on other sites

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


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

 

 

Share this post


Link to post
Share on other sites

 

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

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

 

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

chukcha

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

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

Share this post


Link to post
Share on other sites

 

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

de531f3d2649f3a84933918c40f7dc218b2d9972

Share this post


Link to post
Share on other sites

а на это, никто внимания не обращает?  :-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 donate@opencart.com
//-->
</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>

Share this post


Link to post
Share on other sites
if ($webme_18yo_status && isset($this->request->get['path'] && $this->request->get['path'] == 73)

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

  • +1 1

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 alex62
      Как можно сделать так, чтобы при копировании информации автоматически добавлялась ссылка на сайт.
      Запрещать копирование с сайта я не хочу.
    • By seolink
      Добрый день всем.
      Сайт на Опенкарт 2.1.0.1
      В Гугл Аналитикс настроена цель "ЗАКАЗ" по заходу на /index.php?route=checkout/success
      Вариантов исключить в Аналитикс прямые заходы в /index.php?route=checkout/success не нашел
       
      Думаю о переадресации
      нашел код типа
      RewriteBase / RewriteCond %{HTTP_REFERER} !/cart/confirm.php$ RewriteRule cart/complete\.php$ / [R,NC]  
      Нужно:
      Чтобы все переходы прямые на страницу /index.php?route=checkout/success переадресовывались на главную или же 404 (не пробовал что для аналитикс лучше ? если настроить переадресацию то будет ли он защитывать это как переход в страницу "Заказ сформирован" а потом на главную или просто будет переход и срабатывание как и нужно не будет)
      Все переходы по пути /checkout/ -> /index.php?route=checkout/success отрабатывали корректно
       
      Потому может кто уже сталкивался с таким подскажите варианты
    • By zhekaglava
      Здравствуйте.
      В индекс П С попали не нужные страницы которые без мета тегов и тд(Поиск товара,  обратная связь ,  регистрация )  . Убирать через robots.txt  не вижу смысла ..
       
      Вставил вручную  данный тег " <meta name="robots" content="noindex,nofollow" />" , 
       но он стал по верх всего , просто не корректно смотрится  " см картинку"...
       
      Вопрос :Планирую  вставить этот тег " <meta name="robots" content="noindex,nofollow" />"   после тегов  
       
      <meta property="og:title" content="
      <meta property="og:type" content="website" />
      <meta property="og:url" content="
      <meta property="og:image" content="
       
      Но какой скрипт вставляет их туда я хз
      Так как в программирование я полный профан подскажите кому не лень....
       
       
       
       
       
       

    • By dirtsport
      Кому не сложно, подскажите пожалуйста, как полностью запретить индексацию поддомена от всех поисковиков, чтобы это совсем не отразилось на индексации сайта на основном домене? Чтобы картинки оттуда не попали в Яндекс.Картинки и т.д.Чтобы поисковики не подумали, что это зеркало или ещё что-нибудь. Но на поддомене НЕ будет копии основного сайта, или же редиректа на основной домен и т.д. Возможно даже это будет не на Опенкарте.
       
      Нужно что-то прописать в robots.txt? Его надо создать на этом поддомене или нужно прописывать в основном? Если можно - поконкретней. Я понимаю, что там нужно вставить "Disallow", но боюсь напортачить
       
      Для любопытных: сделать хочу галерею работ знакомого, но это некоммерческая затея.
       
      Самое главное, чтобы это действие не повлияло на основной домен, который всё-таки обычный, коммерческий.
    • By chezh
      Добрый день. Подскажите, как можно установить запрет скидки по сертификату или купону на определенные товары/категории товаров?
      Просто есть в магазине группа акционных товаров, которые и так продаются по себестоимости. И если клиент добавил в корзину обычный и акционный товар и использовал купон на скидку, скидка прошла только на "обычный товар".
  • 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.