2012-05-06 4 views
0

私はimagecacheモジュールがサイト/すべての下にあるマルチサイト設定を持っています。私の目標は、すべてのサイトが、そのサイトに所属する独自のimagecacheフォルダを要求で満たしていることです。例えばdomain1/imagecache/files/thumb_image/photos/bigavatar.jpgを参照してください。drupals imagecacheモジュールは 'default'サイトでのみ動作しますか?

写真のフォルダはFTPでアップロードされているのでdrupalは基本的にはそれを知っていませんが、imagecacheはサイトが/ default/files/photosの下にあり、default/imagecache/files/thumb_image/photos/bigavatar.jpg。

オプションの設定を探しました - サイトのアップロードパスが変更された場合、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は、任意の場所に対応させる、2つのサイトが共通を共有する必要がある場合に言うことを望みますgallery/imagefolder。

編集;私は解決策が私の派生モジュールからのImageCache関数を呼び出し、別のhook_menuを作成することです考え出し - 私のfolderhooksが含まれている場合はその出回っ依存関係として、これは私が

<?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 
      ); 
     } 
} ?> 

を推測するために、十分なモジュラーだろう「DOMAIN2//バーfoo」で、その後、 これはhttp://domain.tld/drupal/?q=domain2/foo/bar/imagecache/myimagefolder/galleryid/photo.jpg

スプレンディッド=の使用ができます)

+0

あなたの質問は何ですか?申し訳ありませんが、私はそれを取得しません。 –

+0

サイト/デフォルト/ファイル/写真はfubarです、サイト/ドメイン/ファイル/写真である必要があります – mschr

+0

ああ、そうです。 Imagecacheは内部URLのみで動作するため、マルチサイト構成では動作しません。この問題を回避するために[imagecache_external](http://drupal.org/project/imagecache_external)を使ってみましたか? –

答えて

0
<?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 
      ); 
     } 
} ?> 
関連する問題