• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

[хак] Показываем popup только 1 раз за сутки

Статус
В этой теме нельзя размещать новые ответы.
омг. по вашему коду с rnd в яве...

вам не кажется, что при первом посещении мы увидим случайный баннер из трех... и все. через сутки опять случайный из трех и т.д.

как я понял, человеку нужно так.

заход - только первый баннер, новая страница - второй баннер, другая страница - третий... дальше на сутки "тишина"
 
Да имено так! Например pop-up рекломадателей порядка 5 (нужда требует пока) вот, чтобы они открывались один раз в сутки и кто когда откроется неважно - толи это при переходе на другую страницу или перезагрузки контента и.т.д но смысл имено в этом. Да еще нехотелось бы отдавать хиты этим засранцам (спонсорам) которые итак кидают на клики, а так хиты хоть при тебе останутся и они начнуть верещать. Если это можно то отпишите полным, единым кодом ну как инструкцию. Спасибо!
 
ой, теоретически оно будет выглядеть так (не проверял в работе)
Код:
$popup1="code_banner_1";
$popup2="code_banner_2";
$popup2="code_banner_3";

if (isset($_COOKIE['popup_showed_1']))
	{
	$tpl->set('{popup1}', "");
	if (isset($_COOKIE['popup_showed_2']))
		{
		$tpl->set('{popup2}', "");
		if (isset($_COOKIE['popup_showed_3']))
			{
			$tpl->set('{popup3}', "");
			}
		else
			{
			set_cookie ("popup_showed_3", $member_id['name'], time()+3600*24);
			$tpl->set('{popup3}', $popup1);
			}
		}
	else
		{
		set_cookie ("popup_showed_2", $member_id['name'], time()+3600*24);
		$tpl->set('{popup2}', $popup1);
		}
	}
else
	{
	set_cookie ("popup_showed_1", $member_id['name'], time()+3600*24);
	$tpl->set('{popup1}', $popup1);
	}
это на три "баннера"

ПРАВИЛЬНЕЕ с делать в куках счетчик и вызывать код через CASE, ибо код выше слишком громоздкий и засирает браузер куками
 
ой, теоретически оно будет выглядеть так (не проверял в работе)
Код:
$popup1="code_banner_1";
$popup2="code_banner_2";
$popup2="code_banner_3";
 
if (isset($_COOKIE['popup_showed_1']))
    {
    $tpl->set('{popup1}', "");
    if (isset($_COOKIE['popup_showed_2']))
        {
        $tpl->set('{popup2}', "");
        if (isset($_COOKIE['popup_showed_3']))
            {
            $tpl->set('{popup3}', "");
            }
        else
            {
            set_cookie ("popup_showed_3", $member_id['name'], time()+3600*24);
            $tpl->set('{popup3}', $popup1);
            }
        }
    else
        {
        set_cookie ("popup_showed_2", $member_id['name'], time()+3600*24);
        $tpl->set('{popup2}', $popup1);
        }
    }
else
    {
    set_cookie ("popup_showed_1", $member_id['name'], time()+3600*24);
    $tpl->set('{popup1}', $popup1);
    }
это на три "баннера"

ПРАВИЛЬНЕЕ с делать в куках счетчик и вызывать код через CASE, ибо код выше слишком громоздкий и засирает браузер куками

Спасибо за этот код, но может попробовать написать как ты сказал с посетам в куках и вызов через CASE.

Да самое главное куда этот код вставлять в index.php и это в main.tpl {popup1}. Так или нет?
 
ну так что, $aSH? доделаешь или нет?
а вдогонку вопрос, ты этот код наисал, как его вставлять что бы согласовать с тем хаком который написан в начале поста?
 
ну хотите, попробую. просто занят был.

ну просто переменную в название куков заменить... и в принципе можно. главное чтобы не пересекались переменные
 
если с логикой ничего не напутал, то получается такая загогулина.

в \index.php перед
Код:
$tpl->load_template('main.tpl');

вставить
Код:
if (isset($_COOKIE['popup']))
	{
	//если куки установлены, считываем их значение и выводим соответствующий баннер
	switch ($_COOKIE["popup"])
		{
		case "1" :
			$popup="<script>alert(\"а я абрикос, на юге рос\")</script>"; //второй баннер
			break;
		case "2" :
			$popup="<script>alert(\"а я томат!\")</script>"; //третий баннер
			break;
		case "3" :
			$popup="<script>alert(\"вместе мы фруктовый сад!\")</script>"; //четвертый баннер
			break;
		case "4" :
			$popup="<script>alert(\"а я не курил\")</script>"; //пятый баннер
			break;
		}
	$_COOKIE['popup']++;
	setcookie ("popup", $_COOKIE['popup']++, time()+3600*24);
	}
else
	{
	//если куков нет, начинаем считать
	setcookie ("popup", 1, time()+3600*24);
	$popup="<script>alert(\"я слива лиловая, спелая садовая\")</script>"; //первый баннер
	}
$tpl->set('{popup}', $popup);

в своем шаблоне вставить один раз {popup}

!!! не забывате экранировать двойные кавычки в коде баннеров, одинарные можно не трогать
 
поставил, полную проверку провести не получится, пока не отсчитается время для показа, так что только завтра.
-заменил "24" на "12", как писали выше, что бы до конца суток было, а не раз в 24 часа (хотя это все равно как я понимаю галиматья, если делать показ раз в сутки, то еще код писать надо... ну все-таки хоть что-то)
-как я понял надо удалить/добавить CASE-ы под то количество сколько есть партнерок

так вроде ошибок не возникает, но уточнить на всякий случай должен: в этом коде надо все двойные кавычки на одинарные исправить или только определенные?
 
да, просто правится количество CASE

Код:
$popup="тут больше двойные кавычки использовать нельзя, только \" экранированные или ' одинарные";
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху