Отображение блока на сайте

Главные вкладки

Аватар пользователя NemoKiss NemoKiss 16 июня 2011 в 17:01

Можно ли сделать так что б, По основному адресу (test.ru) блок был виден всем пользователям, а когда заходят через зеркало на сайт (tester.ru) блок не отображался?

Комментарии

Аватар пользователя NemoKiss NemoKiss 16 июня 2011 в 17:20

<?php
function request_uri() {

  if (isset(

$_SERVER['REQUEST_URI'])) {
    
$uri $_SERVER['REQUEST_URI'];
  }
  else {
    if (isset(
$_SERVER['argv'])) {
      
$uri $_SERVER['SCRIPT_NAME'] . '?' $_SERVER['argv'][0];
    }
    elseif (isset(
$_SERVER['QUERY_STRING'])) {
      
$uri $_SERVER['SCRIPT_NAME'] . '?' $_SERVER['QUERY_STRING'];
    }
    else {
      
$uri $_SERVER['SCRIPT_NAME'];
    }
  }
  
// Prevent multiple slashes to avoid cross site requests via the Form API.
  
$uri '/' ltrim($uri'/');

  return 

$uri;
}
?>

Подскажи пожалуйста куда свой адрес тут вставлять что б не отображался блок на tester.ru. Куда в блоке это вставить я нашёл.

Аватар пользователя NemoKiss NemoKiss 16 июня 2011 в 17:59

добовляю, включаю Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов). всё без изменений

Аватар пользователя CASHMAR CASHMAR 17 июня 2011 в 15:00

Вот этот код вставь PHP-фильтр видимости блока:
<?php if ($_SERVER['HTTP_REFERER'] == 'test.ru') {return TRUE;) ?>

В этом случае блок будет показываться каждый раз, когда пользователь заходит на страницу с домена "test.ru".

Аватар пользователя CASHMAR CASHMAR 17 июня 2011 в 17:31

Возможно, в этом проблема.

Quote:
<?php if ($_SERVER['HTTP_REFERER'] == 'test.ru' || $_SERVER['HTTP_REFERER'] == 'www.test.ru') {return TRUE;) ?>

Если по-прежнему не работает, вставь в тело блока (не забудь поставить PHP формат)
Quote:
<?php print $_SERVER['HTTP_REFERER']; ?>

и напиши, что выводит блок при заходе с "test.ru", а что с "tester.ru".

Аватар пользователя NemoKiss NemoKiss 10 ноября 2015 в 11:47

отображается текст тот что я ввёл в блоке, вот картинка. Отображается одинаково на обоих адресах.

Последний код даже места текста вставил и тоже нечего не пишет.

PHP режим ставил

Аватар пользователя CASHMAR CASHMAR 17 июня 2011 в 18:39

Вот 100%-ый вариант.
<?php if ($_SERVER['HTTP_REFERER'] == 'http://test.ru' || $_SERVER['HTTP_REFERER'] == 'http://www.test.ru') {return TRUE;) ?>

Этот сниппет вставляй в PHP фильтр видимости блока.

Аватар пользователя NemoKiss NemoKiss 17 июня 2011 в 18:56

CASHMAR wrote:
Вот 100%-ый вариант.
<?php if ($_SERVER['HTTP_REFERER'] == 'http://test.ru' || $_SERVER['HTTP_REFERER'] == 'http://www.test.ru') {return TRUE;) ?>

Этот сниппет вставляй в PHP фильтр видимости блока.

Фильтр видимости, это то поле что на картинке?

Аватар пользователя NemoKiss NemoKiss 17 июня 2011 в 18:43

о пля. не заню что сделалось, удалил первый вариант <?php if ($_SERVER['HTTP_REFERER'] == 'test.ru' || $_SERVER['HTTP_REFERER'] == 'www.test.ru') {return TRUE;) ?> и потом вставил <?php print $_SERVER['HTTP_REFERER']; ?> Исчез по одному адресу, а по другому виден.

Вторично, просто вставляю <?php print $_SERVER['HTTP_REFERER']; ?> нечего не даёт. Опять проделываю последовательность вставки удаления как написал выше, тогда работает -( что за хрень -(

Аватар пользователя CASHMAR CASHMAR 17 июня 2011 в 19:17

Да, оно самое.
"Установки видимости для страницы"
Выбирай -> "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)"
Там должно быть только
<?php if ($_SERVER['HTTP_REFERER'] == 'http://test.ru' || $_SERVER['HTTP_REFERER'] == 'http://www.test.ru') {return TRUE;) ?>

Аватар пользователя CASHMAR CASHMAR 17 июня 2011 в 20:02

"NemoKiss" wrote:
Подскажите, а возможно ли что настройки хостинга не позволяют это делать?

Я о таком не слышал.

  1. Отчисти блок.
  2. В поле "Текст блока" напиши "<?php print $_SERVER['HTTP_REFERER']; ?>".
  3. Установи "формат ввода" в "PHP code" (если нет такого - включи модуль "PHP filter", он идёт вместе с друплом).
  4. Убедись, что в фильтре видимости пусто и он установлен в "Показывать на всех страницах кроме перечисленных".

Установи этот блок в один из регионов. И напиши чего он выводит при переходе на сайт "test.ru" с сайта "tester.ru", и чего пишет при переходах внутри сайта "test.ru".

Аватар пользователя CASHMAR CASHMAR 18 июня 2011 в 18:50

Вот твой рабочий код фильтра видимости «Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)»
<?php if ($_SERVER['HTTP_REFERER'] == 'http://test.ru') {return TRUE;) ?>

Аватар пользователя NemoKiss NemoKiss 10 ноября 2015 в 11:47

Ставлю, и по двум адресам пусто стало. вот скриншот, кривоватый так как целиком сделать не могу в экран не влазил, по частям. всё что я делаю. а убераю строчку в фильтре видно на обоих

Аватар пользователя NemoKiss NemoKiss 19 июня 2011 в 0:00

Ура!!! Спасибо большое!!!! теперь работает!!! Вы гений!!!

Одна только фигня когда заходишь на сайт tester.ru или test.ru блок не виден но как только жму на любую новость или лажу где угодно, всё как надо.

Аватар пользователя CASHMAR CASHMAR 19 июня 2011 в 11:54

<?php
$ref = array();
$ref = explode('/', $_SERVER['HTTP_REFERER']);
if (in_array('test.ru', $ref) || is_empty($_SERVER['HTTP_REFERER']) {return TRUE;}
?>

Этот фильтр будет показывать блок только внутри сайта "test.ru" или если юзер зашёл на "test.ru" не по внешней ссылке (открыл "test.ru" в новой влкадке браузера и т.п.).