Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Blog Module /

Discuss the Blog Module.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

adding image to blogs in silverstripe 3


Reply


3 Posts   1984 Views

Avatar
nmshah

Community Member, 21 Posts

22 October 2012 at 12:41am

I am trying to add an option to add images to blog posts. Have used the post here http://www.ssbits.com/tutorials/2011/adding-an-image-to-a-blog-post-using-decorators-and-the-silverstripe-blog-module/

I have changed the code as per ss3 requirements yet I don't see upload image option when creating a new blog post.
Created a file BlogEntryDecorator.php inside mysite/code like:

<?php
class BlogEntryDecorator extends SiteTreeDecorator {

   static $has_one = array(
      'BlogImage' => 'Image'
   );

   public function getCMSFields() {
      $fields = parent::getCMSFields();
      $fields->addFieldToTab("Root.Images", new UploadField('BlogImage'));
      return $fields;
   }
}

and then in mysite/_config.php added the following line:

DataObject::add_extension('BlogEntry', 'BlogEntryDecorator');

Kindly suggest as to how can I make this work

Avatar
nimda

Community Member, 1 Post

23 October 2012 at 4:17am

<?php
#-------------------------------------------------------------
# Silverstripe v3.0.2 BlogEntry Upload Image
# Create file: mysite/code/ext/BlogEntryDecorator.php
#-------------------------------------------------------------
class BlogEntryDecorator extends DataExtension {

   static $has_one = array(
      'BlogImage' => 'Image'
   );

   public function updateCMSFields(FieldList $fields) {
      parent::updateCMSFields($fields);
      $fields->addFieldToTab("Root.Main", $BlogImage = new UploadField('BlogImage'), 'Content');
      $BlogImage->getValidator()->setAllowedExtensions(File::$app_categories['image']);
   }

}
?>

<?php
#-------------------------------------------------------------
# Edit file: mysite/code/_config.php
#-------------------------------------------------------------
Object::add_extension('BlogEntry', 'BlogEntryDecorator');
?>

Avatar
SSK

Community Member, 4 Posts

25 March 2013 at 3:32am

Edited: 25/03/2013 3:33am

Greatly appreciated, this update to SS 3.0.x. The SSbits entry (see above) is no longer up to date and generates an error.

Don't forget to adjust \blog\templates\Includes\BlogSummary.ss, for example:

   <% if BlogHolder.ShowFullEntry %>
      $Content
   <% else %>
         <% if BlogImage %>
   <div class="captionImage left" style="width: 200px;">
         <% with BlogImage %>$CroppedImage(200,133)<% end_with %>
         </div>
         <% end_if %>
      <% control Content %>$Summary.NoHTML<% end_control %>
      <a href="$Link" title="<% _t('VIEWFULL', 'View full post: ') %> '$Title'">Read more...</a></p>
   <% end_if %>