Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal HTML:如何在每次访问时更改我的网站背景?_Drupal_Drupal 6 - Fatal编程技术网

Drupal HTML:如何在每次访问时更改我的网站背景?

Drupal HTML:如何在每次访问时更改我的网站背景?,drupal,drupal-6,Drupal,Drupal 6,每次访问时,改变网站背景的最佳方法是什么 1) 编写php代码,加载包含后台属性的随机css文件 2) 编写php代码,生成不同的html(并将后台属性直接包含到html代码中) 3) 还有别的吗 谢谢我可能会: 使用hook_userop login检测登录,然后将背景颜色代码存储在用户对象中 在页面模板中,使用存储在用户对象上的值为背景色创建内联样式。对于匿名用户,不执行任何操作,并在样式表中定义默认值 我可能会: 使用hook_userop login检测登录,然后将背景颜色代码存储在用户

每次访问时,改变网站背景的最佳方法是什么

1) 编写php代码,加载包含后台属性的随机css文件 2) 编写php代码,生成不同的html(并将后台属性直接包含到html代码中) 3) 还有别的吗

谢谢

我可能会:

  • 使用
    hook_user
    op login检测登录,然后将背景颜色代码存储在用户对象中
  • 在页面模板中,使用存储在用户对象上的值为背景色创建内联样式。对于匿名用户,不执行任何操作,并在样式表中定义默认值
  • 我可能会:

  • 使用
    hook_user
    op login检测登录,然后将背景颜色代码存储在用户对象中
  • 在页面模板中,使用存储在用户对象上的值为背景色创建内联样式。对于匿名用户,不执行任何操作,并在样式表中定义默认值

  • 使用会话cookie。可以通过js(客户端)或类似php(服务器端)的方式进行设置。下面是一个仅js解决方案的示例:

    <!doctype html>
    <html><head><script>
    
    var backgrounds=['foo.png', 'bar.png', 'hahah.png'];
    
    function setBg () {
      var currentBg=readCookie('which_bg');
      if (!currentBg) {
        currentBg=backgrounds[Math.random()*backgrounds.length|0];
        createCookie('which_bg', currentBg);
      }
      document.body.style.backgroundImage='url('+currentBg+')';
    }
    
    // from http://www.quirksmode.org/js/cookies.html
    
    function createCookie(name,value,days) {
      if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
      }
      else var expires = "";
      document.cookie = name+"="+value+expires+"; path=/";
    }
    
    function readCookie(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for (var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
    }
    
    function eraseCookie(name) {
      createCookie(name,"",-1);
    }
    
    </script></head>
    <body onload="setBg();">
    ...
    </body></html>
    
    
    var backgrounds=['foo.png','bar.png','hahah.png'];
    函数setBg(){
    var currentBg=readCookie('which_bg');
    如果(!currentBg){
    currentBg=backgrounds[Math.random()*backgrounds.length | 0];
    createCookie('which_bg',currentBg');
    }
    document.body.style.backgroundImage='url('+currentBg+');
    }
    //从http://www.quirksmode.org/js/cookies.html
    函数createCookie(名称、值、天数){
    如果(天){
    变量日期=新日期();
    date.setTime(date.getTime()+(天*24*60*60*1000));
    var expires=“;expires=“+date.togmString();
    }
    else var expires=“”;
    document.cookie=name+“=”+value+expires+“path=/”;
    }
    函数readCookie(名称){
    变量nameEQ=name+“=”;
    var ca=document.cookie.split(“;”);
    对于(变量i=0;i
    使用会话cookie。可以通过js(客户端)或类似php(服务器端)的方式进行设置。下面是一个仅js解决方案的示例:

    <!doctype html>
    <html><head><script>
    
    var backgrounds=['foo.png', 'bar.png', 'hahah.png'];
    
    function setBg () {
      var currentBg=readCookie('which_bg');
      if (!currentBg) {
        currentBg=backgrounds[Math.random()*backgrounds.length|0];
        createCookie('which_bg', currentBg);
      }
      document.body.style.backgroundImage='url('+currentBg+')';
    }
    
    // from http://www.quirksmode.org/js/cookies.html
    
    function createCookie(name,value,days) {
      if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
      }
      else var expires = "";
      document.cookie = name+"="+value+expires+"; path=/";
    }
    
    function readCookie(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for (var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
    }
    
    function eraseCookie(name) {
      createCookie(name,"",-1);
    }
    
    </script></head>
    <body onload="setBg();">
    ...
    </body></html>
    
    
    var backgrounds=['foo.png','bar.png','hahah.png'];
    函数setBg(){
    var currentBg=readCookie('which_bg');
    如果(!currentBg){
    currentBg=backgrounds[Math.random()*backgrounds.length | 0];
    createCookie('which_bg',currentBg');
    }
    document.body.style.backgroundImage='url('+currentBg+');
    }
    //从http://www.quirksmode.org/js/cookies.html
    函数createCookie(名称、值、天数){
    如果(天){
    变量日期=新日期();
    date.setTime(date.getTime()+(天*24*60*60*1000));
    var expires=“;expires=“+date.togmString();
    }
    else var expires=“”;
    document.cookie=name+“=”+value+expires+“path=/”;
    }
    函数readCookie(名称){
    变量nameEQ=name+“=”;
    var ca=document.cookie.split(“;”);
    对于(变量i=0;i
    这可以在您的计算机中完成。将随机样式存储在$\u会话数组中,以便对同一用户会话中的所有页面重复使用。并将标记附加到模板中使用的
    $head
    变量

    YOURTHEME_preprocess_page(&$variables) {
      $style = $_SESSION['YOURTHEME_background_style'];
      if (!$style) {
        $style = array();
        //Generate your random CSS here
        $style = "background-image: url('bg-". rand(0,10) .".png')";
        $_SESSION['YOURTHEME_background_style'] = $style;
      }
      $variables['head'] .= '<style type="text/css">body {'. implode("\n", $style) .'}</style>';
    }
    
    YOURTHEME\u预处理页面(&$variables){
    $style=$\会话['YOURTHEME\u background\u style'];
    如果(!$style){
    $style=array();
    //在这里生成你的随机CSS
    $style=“背景图像:url('bg-”.rand(0,10)。.png');
    $\u SESSION['YOURTHEME\u background\u style']=$style;
    }
    $variables['head'].='body{'。内爆(“\n”,$style)。'}';
    }
    
    通常,
    $head
    放在page.tpl.php templaye中的
    $style
    之前,因此任何.CSS文件中的CSS规则都将覆盖您的随机规则。您可能必须使用
    !重要信息
    在您的随机CSS中,以避免出现这种情况。

    这可以在您的CSS中完成。将随机样式存储在$\u会话数组中,以便对同一用户会话中的所有页面重复使用。并将标记附加到模板中使用的
    $head
    变量

    YOURTHEME_preprocess_page(&$variables) {
      $style = $_SESSION['YOURTHEME_background_style'];
      if (!$style) {
        $style = array();
        //Generate your random CSS here
        $style = "background-image: url('bg-". rand(0,10) .".png')";
        $_SESSION['YOURTHEME_background_style'] = $style;
      }
      $variables['head'] .= '<style type="text/css">body {'. implode("\n", $style) .'}</style>';
    }
    
    YOURTHEME\u预处理页面(&$variables){
    $style=$\会话['YOURTHEME\u background\u style'];
    如果(!$style){
    $style=array();
    //在这里生成你的随机CSS
    $style=“背景图像:url('bg-”.rand(0,10)。.png');
    $\u SESSION['YOURTHEME\u background\u style']=$style;
    }
    $variables['head'].='body{'。内爆(“\n”,$style)。'}';
    }
    

    通常,
    $head
    放在page.tpl.php templaye中的
    $style
    之前,因此任何.CSS文件中的CSS规则都将覆盖您的随机规则。您可能必须使用
    !重要信息
    在随机CSS中,以避免出现这种情况。

    要在每次页面加载时更改背景图像(但不完全是“访问”),可以使用Drupal模块。对于Drupal7,只有7.x-2.x分支包含随机循环背景的选项。您可以通过以下方式安装它:

    drush dl dynamic_background-7.x-2.x&&drush en dynamic_background
    

    该功能还可以添加到7.x-1.x分支,类似地,也可以添加到6.x-1.x分支。

    要在每次页面加载时更改背景图像(但不完全是“访问”),可以使用Drupal模块。对于Drupal7,只有7.x-2.x分支包含随机循环背景的选项。您可以通过以下方式安装它:

    drush dl dynamic_background-7.x-2.x&&drush en dynamic_background
    

    该功能还可以通过添加到7.x-1.x分支,也可以类似地添加到6.x-1.x分支。

    我认为最好的方法通常是不这样做。我认为最好的方法通常是不这样做