【问题标题】:Attach Image to Page with Uploadify in Silverstripe CMS在 Silverstripe CMS 中使用 Uploadify 将图像附加到页面
【发布时间】:2011-11-15 22:46:21
【问题描述】:

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

我猜我们错过了一些非常非常简单的事情,我们将不胜感激。

【问题讨论】:

    标签: php uploadify silverstripe


    【解决方案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 上的一些样式问题)。

    【讨论】:

    • 我确实将 PageImage(我重命名了,感谢@ryanwachtl)拆分为它自己的 DataObject。事后看来,我可能太聪明了。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多