0

Uploadify モジュールを使用して、Silverstripe CMS ユーザーが画像を簡単にアップロードしてページに添付できるようにしたいと考えています。基本レベルのコードは次のとおりです。

class Page extends SiteTree {

       static $has_many = array( 
         "PageImages" => "PageImage" 
      );

       function getCMSFields(){ 
          $fields = parent::getCMSFields(); 
          $fields->addFieldToTab("Root.Content.PageImages", new MultipleFileUploadField('PageImages','Add Images to Page'));       
          return $fields; 
       } 
    }

    class PageImage extends Image { 

       static $has_one = array( 
          "Page" => "Page" 
       ); 

    }

ただし、ファイルが [新規アップロード] タブからアップロードされた場合、ファイルは自動的にページに添付されません。これがデフォルトの動作になると考えていました。

代わりに、CMS ユーザーは [Choose existing] タブをクリックして、目的の画像を選択/インポートする必要があります。

非常に単純なものを見逃していると思います。助けていただければ幸いです。

4

2 に答える 2

1

あなたは本当に画像自体を拡張しますか?可能かもしれませんが、私はいつも代わりにDataObjectを使用していました。つまり、Page has_many PageImages、PageImage has_one Page、およびPageImagehas_oneImageです。

完全な例については、 http://deadlytechnology.com/silverstripe/silverstripe-image-gallery/またはhttps://github.com/xeraa/silverstripe-book/tree/master/chapter-07/module_gallery/codeも参照してください。注:どちらもDataObjectManagerモジュールを使用します。

そして、私はファイルを分割するというryanwachtlの提案を2番目にしています(まだ分割しておらず、これがstackoverflowのスタイルの問題にすぎない場合)。

于 2011-11-16T12:56:35.893 に答える
0

ここでは推測ですが、 がPageImage classで定義されている場合は、SilverStripe の規則に従うために、 にPage.php変更することをお勧めします。Page_Image

于 2011-11-16T00:38:31.243 に答える