we got need display blog posts page display x posts - first post displayed header , rest in 2 columns. page has show more button @ bottom fetches next page posts using ajax , adding them @ bottom. possible x+1 items subsequent pages?
any hint, in code welcome since use sourced version of orchard installation.
so before cluttering comments above proposed solution.
i think there slight misunderstanding changing controller action i'd clarify (i hope understood correctly now):
orchard.blogs | blogcontroller | item action
public actionresult item(int blogid, pagerparameters pagerparameters) { // original code pager pager = new pager(_siteservice.getsitesettings(), pagerparameters); var blogpart = _blogservice.get(blogid, versionoptions.published).as<blogpart>(); if (blogpart == null) return httpnotfound(); if (!_services.authorizer.authorize(orchard.core.contents.permissions.viewcontent, blogpart, t("cannot view content"))) { return new httpunauthorizedresult(); } // actual change: // use pagerparameters provided, otherwise fall blog settings pager.pagesize = pagerparameters.pagesize.hasvalue ? pager.pagesize : blogpart.postsperpage; // original code again _feedmanager.register(blogpart, _services.contentmanager.getitemmetadata(blogpart).displaytext); var blogposts = _blogpostservice.get(blogpart, pager.getstartindex(), pager.pagesize) // new page size used .select(b => _services.contentmanager.builddisplay(b, "summary")); dynamic blog = _services.contentmanager.builddisplay(blogpart); var list = shape.list(); list.addrange(blogposts); blog.content.add(shape.parts_blogs_blogpost_list(contentitems: list), "5"); var totalitemcount = _blogpostservice.postcount(blogpart); blog.content.add(shape.pager(pager).totalitemcount(totalitemcount), "content:after"); return new shaperesult(this, blog); }
so change subtle, way configure blogs default pagesize 7 items , every subsequent ajax-request i'd provide "pagesize"-parameter desired size.
Comments
Post a Comment