Php drupals imagecache模块仅适用于';默认值';地点

Php drupals imagecache模块仅适用于';默认值';地点,php,drupal,module,image-caching,Php,Drupal,Module,Image Caching,我有多站点设置,其中imagecache模块位于sites/all下。我的目标是让每个站点都有自己的imagecache文件夹,其中包含属于该站点的请求;e、 g.通过domain1/imagecache/files/thumb_image/photos/bigavatar.jpg引用它们 照片文件夹是通过FTP上传的,因此drupal基本上不知道它(数据库方面),但是如果文件夹位于sites/default/files/photos下,并由default/imagecache/files/th

我有多站点设置,其中imagecache模块位于sites/all下。我的目标是让每个站点都有自己的imagecache文件夹,其中包含属于该站点的请求;e、 g.通过domain1/imagecache/files/thumb_image/photos/bigavatar.jpg引用它们

照片文件夹是通过FTP上传的,因此drupal基本上不知道它(数据库方面),但是如果文件夹位于sites/default/files/photos下,并由default/imagecache/files/thumb_image/photos/bigavatar.jpg引用,则imagecache功能完美

寻找了设置选项,发现如果站点的上传路径被更改,那么imagecache可以使用它,但是;对于我的(JS)图像存储,发送到我的图库的存储数据来自我自己的模块ximagegallery。这就是路径的生成方式:

<?php
/**
 * @param title : visible gallery title
 * @param basename filename base of image
 * @param site current site (commonly guessed from REQUEST_URI but goal is to let this be configurable)
 * @param location path of $basename imagefile underneath sites/$site/
*/
    function ximagegallery_get_object($title, $basename, $site, $location) {
        return array(
             "title" => $title,
             "link" => "{$site}{$location}/{$basename}",
             "screenpath" => "{$site}/imagecache/screen{$location}{$basename}",
             "thumbpath" => "{$site}/imagecache/small_thumb{$location}{$basename}"
        );
    }
    ?>

Imagecache仅适用于文件系统配置的上载路径,我希望超越这一点,并使Imagecache响应任何位置,例如,如果两个站点需要共享一个公共的gallery/imagefolder

编辑;我想一个解决方案是创建另一个hook_菜单,从我的派生模块调用imagecache函数——因为它是一个依赖项,我想这将是模块化的

<?php
function ximagegallery_menu() {
        // standard route hook
    $items['ximagegallery/store/%'] = array(
         'title' => 'ximagegallery_GENERATE',
         'page callback' => 'ximagegallery_generate_store',
         'page arguments' => array(1),
         'access callback' => 'ximagegallery_access'
    );
        // one hook for each configured path
        $hooks = get_variable('ximagegallery_folderhooks', array());
        foreach($hooks as $folder) {
           $items['$folder.'/imagecache'] = array(
         'page callback' => 'imagecache_cache',
         'access callback' => '_imagecache_menu_access_public_files',
         'type' => MENU_CALLBACK
           );
       }
} ?>

你的问题是什么?对不起,我不明白。sites/default/files/photos是fubar,它必须是sites/domain/files/photosOh,我明白了。Imagecache在多站点配置中不起作用,因为它仅适用于内部URL。你有没有试过用它来解决这个问题?thx for heads up,正在浏览这些问题的hook_菜单,找到了一个解决方法然后将其添加为答案:)当有人遇到同样的问题时,它会很有用。
<?php
function ximagegallery_menu() {
        // standard route hook
    $items['ximagegallery/store/%'] = array(
         'title' => 'ximagegallery_GENERATE',
         'page callback' => 'ximagegallery_generate_store',
         'page arguments' => array(1),
         'access callback' => 'ximagegallery_access'
    );
        // one hook for each configured path
        $hooks = get_variable('ximagegallery_folderhooks', array());
        foreach($hooks as $folder) {
           $items['$folder.'/imagecache'] = array(
         'page callback' => 'imagecache_cache',
         'access callback' => '_imagecache_menu_access_public_files',
         'type' => MENU_CALLBACK
           );
       }
} ?>