2010-08-27 44 views
1

我有以下的JavaScript嵌入闪存在我的page.tpl.php中Drupal的路径闪存资源

      <script type="text/javascript"> 
          <!-- 
          var flashvars = { 
           xmlUrl: "xml/banner.xml" //Use to change XML filename or location 
          }; 
          var params = { 
           scale: "noscale", 
           menu: "false", 
           bgcolor: "#666666" 
          }; 
          var attributes = { 
           id: "banner_swf", 
           name: "banner_swf" 
          }; 
          swfobject.embedSWF("banner.swf", "banner_div", "873", "300", "4", "swfobject/expressInstall.swf", flashvars, params, attributes); 
          //--> 
         </script> 

的问题,现在都在该脚本提到的XML和SWF文件是在“转子”我的'customtheme'目录内的目录。我应该如何改变路径?

谢谢你的帮助! 罗伯特

回答

1

我用闪光灯笔者检查,他们问我加群:参数VAR PARAMS指定基文件夹在哪里可以找到所有的Flash文件。最后,这是我为了在Drupal中工作所做的。

      <script type="text/javascript"> 
          <!-- 
          var flashvars = { 
           //xmlUrl: "path/to/xml/filename.xml" //Use to change XML filename or location 
          }; 
          var params = { 
           base: "<?php print $base_path.$directory."/" ?>rotator/", 
           scale: "noscale", 
           menu: "false", 
           bgcolor: "#666666" 
          }; 
          var attributes = { 
           id: "banner_swf", 
           name: "banner_swf" 
          }; 
          swfobject.embedSWF("<?php print $base_path.$directory."/" ?>rotator/banner.swf", "banner_div", "876", "300", "4", "swfobject/expressInstall.swf", flashvars, params, attributes); 
          //--> 
         </script> 
0

为了让你的主题的路径,你可以这样做:

<?php $theme_path = $base_path . path_to_theme(); ?> 

然后,你可以使用以后。

现在,如果你想让事情变得更漂亮一些,你应该将所有这些javascript移动到一个js文件中,并将它添加到你的主题的.info文件中。这将使drupal缩小并缓存它。

你需要做什么然后,将路径添加到您的JavaScript,这就是全球Drupal js变量的用途。您可以在预处理页面钩子中执行此操作。

function my_theme_preprocess_page(&$vars) { 
    drupal_add_js(array('myTheme' => array('themePath' => $vars['base_path'] . path_to_theme()), 'setting'); 
} 
在你的js

然后文件,你可以得到该变量:

var path = Drupal.settings.myTheme.themePath; 

为了让事情真正的Drupal像你应该做你的JavaScript的行为,即获得的执行一次在页面加载:

Drupal.behaviors.myThemeAddFlash = function() { 
    // Do your thing here 
} 
+0

感谢您的帮助!虽然我已经做到了,但还没有尝试过。谢谢! – 2010-08-28 01:04:58