доступ к ява скрипту только для пользователей "Гость"

доступ к ява скрипту только для пользователей с группы "Гост

#16 9 мая 2014 в 23:53
Нил, спасибо! Пробовала, но у меня шаблон не дефолтный и что-то не срабатывает такой метод.

С предыдущих рекомендаций у меня ничего не получилось, или туплю или что-то не так. Авторам большое спасибо!
Объясню подробно, надо в com_content_read.tpl и com_content_view.tpl вставить Google Adsense без модулей и видимый только для гостей.
#17 10 мая 2014 в 00:38
1)
components/content/fronted.php
после
  1. cmsPage::initTemplate('components', $template)->
и после
  1. cmsPage::initTemplate('components', $article['tpl'])->
вставить

Код PHP:
assign('is_auth', $inUser->id)->

Fuze
то есть
  1. assign('is_auth', $inUser->id)->
2)
в файлах шаблона com_content_view.tpl и com_content_read.tpl в нужных местах вставить

  1. {if $is_auth}
здесь то что увидят авторизованные пользователи
  1. {else}
здесь то что увидят гости
  1. {/if}
3)
точно не помню но если вы используете асинхронный код адсенс то там кажется в начале его нужно добавить {literal}
а в конце {/literal} иначе при вставке его в tpl файл, страница со статьей не будет открываться.
#18 10 мая 2014 в 07:56

Пробовала, но у меня шаблон не дефолтный и что-то не срабатывает такой метод.

wportal
По идее это не должно зависеть от шаблона…
Попробуйте проверить совет от Нила с вставкой либо исходного кода, либо вызов файла из includes/myphp предварительно закинув файл туда)
Проверять желательно с простым текстом… просто напишите в модуле любое слово или в вызываемом файле и настройте вывод модуля только гостям — если работать не будет (хотя должно), то следующее точно должно работать, то что посоветовал Fuze:
в индексном файле добавление вызова файла в хедер (это для проверки)
  1.  
  2. <?php if (!$inUser->id) {
  3. $inPage->addHeadJS('path/to/js_file.js');
  4. } ?>
  5.  
или в любое место индексного файла (и это для проверки)

  1.  
  2. <?php if (!$inUser->id) { ?>
  3. Проверочный текст - если видно то меняем на скрипт в формате <script>...</script>
  4. <?php } ?>
  5.  
Можете проверить на чистой установке — все методы работают...

ps: Кстати, это

надо в com_content_read.tpl и com_content_view.tpl вставить Google Adsense

wportal
и это

Мне надо сделать доступ к ява скрипту только для пользователей с группы "Гость"

wportal
Немного разные вопросы…
Просто показать скрипт гостям и показать блок гостям на определенных страницах, реализуется по разному, поэтому у вас ничего и не получалось — вопросы нужно задавать полностью и четко!)
#19 10 мая 2014 в 10:32

1)
components/content/fronted.php
после
Код PHP:
cmsPage::initTemplate('components', $template)->
и после
Код PHP:
cmsPage::initTemplate('components', $article['tpl'])->

reload

Нет таких строк кода. у меня версия 1.10.1.


<?php if (!$inUser->id) { ?>
Проверочный текст — если видно то меняем на скрипт в формате <script>...</script>
<?php } ?>

reload
Если без изменений Нила, то показывает и для зарегистрированных и для гостей

точно не помню но если вы используете асинхронный код адсенс то там кажется в начале его нужно добавить {literal}
а в конце {/literal} иначе при вставке его в tpl файл, страница со статьей не будет открываться.

reload
Это я сделала
#20 10 мая 2014 в 11:04

Нет таких строк кода. у меня версия 1.10.1.

wportal

после
  1. $smarty = $inCore->initSmarty('components', $template);
и
  1. $smarty = $inCore->initSmarty('components', $article['tpl']);
вставьте
  1. $smarty->assign('is_auth', $inUser->id);
остальное то же что "пост 17 — 2)"
#21 10 мая 2014 в 11:07
или просто вставьте в com_contenr_read.tpl и com_content_view.tpl
модульную позицию
  1. {php}cmsModule('adsense'){/php}
в файл position.txt добавьте строку
  1. adsense
и создайте новый модуль с показом его на позиции adsense в настройках модуля — показывать только гостям
синхронный код адсенсе в модулях через источник нормально показывается
#22 10 мая 2014 в 13:48
Нил, спасибо! По посту 20 всё получилось! В файлы шаблонов статей и категорий я установила.
Но еще проблемка если я закидываю в модуль через вставку внешнего скрипта. Создала файл php и вставила в этот файл код Adsense. Установила доступ только для гостей, но показывает для всех. Наверное проблема в шаблоне, но как это можно сделать в самом файле что я создала? По посту 21 не получилось

Вот код файла
  1. <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  2. <!-- 250x250 -->
  3. <ins class="adsbygoogle"
  4. style="display:inline-block;width:250px;height:250px"
  5. data-ad-client="ca-pub-2008229019214043"
  6. data-ad-slot="8644456611"></ins>
  7. <script>
  8. (adsbygoogle = window.adsbygoogle || []).push({});
  9. </script>
  10.  
#23 10 мая 2014 в 13:58
вы уверены, что модуль показывается для всех? Если вы проверяете с аккаунта админа, то админ видит все модули в любом случае. Зайдите на сайт как обычный пользователь.
#24 10 мая 2014 в 14:13
да, но я установила только для права только гостей, админ не указан. Вопрос, почему тогда видит админ?
#25 10 мая 2014 в 15:12
в том списке где вы указывали админа вообще нет. там есть пользователи из группы администраторы которых назначает главный админ. ваш выбор или не выбор касается их, а главный админ видит в любом случае.
если для вас это принципиально, в template.php найдите модульную позицию на которой вы хотите выводить модуль только для гостей.
если это maintop то после
  1. <?php $inPage->printModules('maintop'); ?>
вставьте
  1. <?php if (!$inUser->id){ ?>
  2. <?php $inPage->printModules('maintop2'); ?>
  3. <?php } ?>
  4.  
в файл positions.txt добавьте строку: maintop2 и выводите ваш модуль с кодом на позиции maintop2.
#26 10 мая 2014 в 16:46
Нил, спасибо! Все получилось!
#27 18 февраля 2015 в 23:25
Опять проблемка. Вставила код через "Источник" в модуль. Код представляет собой Adsense. Как в таком случае сделать чтоб отображался только гостям?
#28 18 февраля 2015 в 23:41
А просто модуль скрыть от зарегистрированных не вариант? или там по мимо этого кода ещё что то?
#29 18 февраля 2015 в 23:45
))) туплю.
Спасибо
#30 18 февраля 2015 в 23:47
да, выход. Но не так как хотелось.
Но надо скрыть и для админа. Тоесть показывать только гостям.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.