【发布时间】:2014-11-13 04:37:15
【问题描述】:
我有一个模块,如果它不存在,它应该使用 php 创建一个 cookie。如果它不确认 cookie 的存在,它会创建它并实现一个 js 文件,然后显示一个覆盖。否则函数应该结束。问题是,js 在每次刷新时都会加载,即使它不应该加载。请帮忙,非常感谢,谢谢。
Cookie PHP
<?php
/**
* @file
* Checks for cookie, non-existent: creates cookies + implements js, else
* removes specfic content
*/
/*
* Implements hook_preprocess_page().
*/
function cookie_check_preprocess_page($hook, &$variables) {
// Check for cookie
if (!isset($_COOKIE['firsttime'])) {
// Set variables for setcookie
$name = 'firsttime';
$value = 'no';
// six months
$expire = time()+(15768000);
// Directory
$path = '/~wolfden/';
$domain = 'hitechwolf.com';
// Create cookie
setcookie($name, $value, $expire, $path, $domain, true, true);
// Implement the js
// Welcome Overlay/Button Functionality ONLY ON FIRST TIME VISIT
$path = drupal_get_path('module', 'cookie_check');
drupal_add_js($path . '/js/welcome_button.js');
}
else {
return '';
}
}
覆盖 JS
/**
* @file
* Appends Welcome Overlay to page, upon button
* click closes overlay
*/
(function ($, Drupal){
Drupal.behaviors.welcomeOverlay = {
attach : function() {
$('#block-panels-mini-welcome-overlay').appendTo('body');
function clickButton() {
$('.welcome-content').fadeTo('500', 0, 'linear', function(){
$('.welcome-overlay').slideToggle('700', 'linear', function(){
$('#block-panels-mini-welcome-overlay').remove();
});
});
}
setTimeout(function () {
$('.welcome-overlay').slideToggle('700', 'linear', function(){
$('.welcome-content').fadeTo('500', 1, 'linear');
});
}, 1500);
$('.w-button').on('click', clickButton);
}
}
})(jQuery, Drupal);
【问题讨论】: