Прикрепить изображение к странице с помощью Uploadify в Silverstripe CMS - PullRequest
0 голосов
/ 16 ноября 2011

Мы хотим использовать модуль 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 должны нажать на вкладку «Выбрать существующую» и выбрать / импортировать изображения, которые им нужны.

Полагаю, мы упустили что-то очень простое, любая помощь будет признательна.

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Вы действительно расширяете само изображение? Это может быть возможно, но я всегда использовал 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.

И я второе предложение Райануахтля разбить файл (если вы этого еще не сделали, и это всего лишь некоторая проблема со стилеванием в stackoverflow).

0 голосов
/ 16 ноября 2011

Здесь только предположение, но если в Page.php определено PageImage class, вы можете изменить его на Page_Image, чтобы следовать соглашениям SilverStripe.

...