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

Limit number of pages loaded in Admin


Reply

602 Views

Avatar
BuddhaSource

8 March 2012 at 8:24pm (Last edited: 16 March 2012 5:06am), Community Member, 57 Posts

Hi,

We just migrated a Word Press news portal to SilverStripe. It has around 3-4k posts. Now this become really difficult to manage in admin section. When you login all 4k posts are loaded. Extremely slow

Can somebody suggest how can I load only last few post in admin and mark rest of them as Archive or something?

Here is my code to NewsPost.php

/**
* Defines the Newspost page type
*/

class NewsPost extends BlogEntry {
   static $db = array (
'GalleryImageWidth' => 'Int',
'Featured' => 'Boolean',
'UserPost' => 'Boolean',
);
   
   static $default_parent = 'NewsHolder';
   static $can_be_root = false;
   
   static $has_one = array(
      'Photo' => 'Image'

      //'Gallery' => 'ImageGalleryPage'
      //'GalleryImages' => 'GalleryImage'
   );
   
   static $has_many = array (
'GalleryImages' => 'GalleryImage'
);

public function init() {
parent::init();

// Note: you should use SS template require tags inside your templates
// instead of putting Requirements calls here. However these are
// included so that our older themes still work

Requirements::block("sapphire/thirdparty/behaviour/behaviour.js");
   Requirements::block("sapphire/thirdparty/jquery/jquery.js");
   
}

   function getCMSFields() {
      
   $fields = parent::getCMSFields();
$fields->addFieldsToTab("Root.Content.Main", new CheckboxField('UserPost', "Post by a Member"));
   $fields->addFieldToTab("Root.Content.Main", new CheckboxField('Featured', "Featured Post"));
   $fields->addFieldToTab("Root.Content.Images", $leadImage= new ImageField('Photo', "Upload your lead image here"));
      $leadImage->setFolderName('Uploads/' .date("Y").'/' .date("m"));
   
   $fields->addFieldToTab("Root.Content.Configuration", $myField= new NumericField('GalleryImageWidth', 'Image Width'));
      /*$fields-> addFieldToTab ("Root.Content.Gallery", new DropdownField("GalleryID", "Gallery",
         DataObject::get("ImageGalleryPage")->toDropdownMap(), 'Content'));*/
      
      $manager = new ImageDataObjectManager(
$this, // Controller
'GalleryImages', // Source name
'GalleryImage', // Source class
'MyGalleryImage', // File name on DataObject
array(
'GalleryImageTitle' => 'GalleryImageTitle'
), // Headings
'getCMSFields_forPopup' // Detail fields (function name or FieldSet object)
// Filter clause
// Sort clause
// Join clause
);

$fields->addFieldToTab('Root.Content.GalleryImage', $manager);
return $fields;
}

   
// Function for SideBar
function GetSidebarContent($num=3) {

//$randomNumber =
$sidebarContent = DataObject::get_one("SidebarContent");

if(!$sidebarContent)
{
return false;
}

$contents = array();

$contents[] = DBField::create('Varchar', $sidebarContent->Content1);
$contents[] = DBField::create('Varchar', $sidebarContent->Content2);
$contents[] = DBField::create('Varchar', $sidebarContent->Content3);
$contents[] = DBField::create('Varchar', $sidebarContent->Content4);
$contents[] = DBField::create('Varchar', $sidebarContent->Content5);

shuffle($contents);

//return new DataObjectSet(array_rand($contents, $num));
return new DataObjectSet(array_slice($contents, 0, $num));
//return new DataObjectSet($contents);
}

   
}

class NewsPost_Controller extends BlogEntry_Controller{

}