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 用户必须单击“选择现有”选项卡并选择/导入他们想要的图像。

我猜我们错过了一些非常简单的东西,任何帮助将不胜感激。

4

2 回答 2

1

你真的扩展了图像本身吗?这可能是可能的,但我一直使用 DataObject 代替。所以 Page has_many PageImages, PageImage has_one Page 和 PageImage has_one Image。

有关完整示例,另请参见http://deadlytechnology.com/silverstripe/silverstripe-image-gallery/https://github.com/xeraa/silverstripe-book/tree/master/chapter-07/module_gallery/code。注意:两者都使用 DataObjectManager 模块。

我支持 ryanwachtl 的拆分文件的建议(如果您还没有这样做,这只是 stackoverflow 上的一些样式问题)。

于 2011-11-16T12:56:35.893 回答
0

这里只是一个猜测,但如果PageImage class在中定义,Page.php您可能希望将其更改为Page_Image, 以遵循 SilverStripe 约定。

于 2011-11-16T00:38:31.243 回答