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

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

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

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

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


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

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)

 

 

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
if ($webme_18yo_status && isset($this->request->get['path'] && $this->request->get['path'] == 73)

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

  • +1 1

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От 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 отрабатывали корректно
       
      Потому может кто уже сталкивался с таким подскажите варианты
    • От 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="
       
      Но какой скрипт вставляет их туда я хз
      Так как в программирование я полный профан подскажите кому не лень....
       
       
       
       
       
       

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

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

×

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

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