Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-12-18 11:04:39

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

js скрипт

var Cookie = new Object();
Cookie.set = function(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }
Cookie.get = function(name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  }
Cookie.del = function(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }
var myVar = null;// просто переменная со значением, для проверки кукисов
myVar = Cookie.get("имя_для_куков");
if (myVar != "1")// проверка на то есть куки или нету, если есть то не выполнять скрипт иначе задается вопрос
{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 Cookie.set("имя_для_куков", "1");
 }
 else
 {location.href = "http://ngcms.ru/";}
}

Суть скрипта:
1. Проверить куки, если куки есть, пустить на сайт не выполняя дальше скрипта
2. Если их нет, продолжается выполнение скрипта и задаётся вопрос, хочет ли посетитель просмотреть сайт
3. Если да, записать куки, пропустить на сайт.
4. Если нет, ничего в куки не записывать, отправить на другой сайт.

До этого я писал скрипт прямо в шаблоне main.tpl, потом подумал что надо сделать скрипт отдельным документом и оставить на него ссылку вида:

<script type="text/javascript" src="{admin_url}/includes/js/skript.js"></script>

Но все танцы с бубном ни к чему не привели. Может кто знает что ему надо?

Всё, разобрались, решение найдено. В коде я исправил ошибки, если кому понадобится скрипт. Скрипт в этом посту рабочий.
Скрипт снова поправлен, пока глюков не замечал, если что то не так работать будет после установки скрипта, пишите, будем дальше разбираться. Просьбы сделать немного по другому скрипт или вопросы: "а как сделать скрипт вот так то?" не принимаются.

Изменено Nushaba (2009-12-23 23:03:12)

Не в сети

#2 2009-12-19 04:10:35

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: js скрипт

Nushaba, клевая вещь, спасибо! :)


I NGeneration CMS

Не в сети

#3 2009-12-21 23:38:23

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: js скрипт

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

Изменено Nushaba (2009-12-21 23:45:57)

Не в сети

#4 2009-12-23 22:59:25

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: js скрипт

Скрипт обновлён в первом посту, по крайней мере глюк с невозможностью вернуться назад по кнопке браузера исчез, краткая история изменения скрипта:
1. Скрипт теперь проверяет не наличие куков, а их отсутствие
2. Скрипт при наличии куков останавливается, а точнее не выполняется дальше
3. При отсутствии куков так же задаётся вопрос, при положительном ответе записываются куки.
4. Убрана переменная history.go

Изменено Nushaba (2009-12-23 22:59:41)

Не в сети

#5 2010-03-10 12:02:41

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: js скрипт

Возникла у меня необходимость сделать так, что бы куки записывались с любой входной страницы для всего сайта, а не той страницы, на которой ответил утвердительно на вопрос скрипта, возможно такая же опция понадобится и остальным, для этого найдите строку:
((path) ? "; path=" + path : "") +
и замените её на
((path) ? "; path=" + path : "; path=/") +

Изменено Nushaba (2010-03-10 12:03:10)

Не в сети

Подвал раздела

Работает на FluxBB