Drupal闪存资源的路径

时间:2010-08-27 09:39:21

标签: flash drupal

我有以下javascript来嵌入我的page.tpl.php

中的flash
                         <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'目录下的'rotator'目录下。我该如何改变路径?

谢谢你的帮助! 罗伯特

2 个答案:

答案 0 :(得分:1)

我查了一下flash作者,他们让我在var params中添加base:参数来指定我可以找到所有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>

答案 1 :(得分:0)

要制作主题的路径,您可以这样做:

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

然后你可以在以后使用它。

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

您需要做的是添加javascript的路径,这就是全局Drupal js变量的用途。您可以在preprocss页面挂钩中执行此操作。

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
}