From 3cdcb5ca02a94b2b342c30903a27d47d35d46e55 Mon Sep 17 00:00:00 2001 From: hukl Date: Tue, 17 Feb 2009 12:47:49 +0100 Subject: added will_paginate plugin --- vendor/plugins/will_paginate/README.rdoc | 107 +++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 vendor/plugins/will_paginate/README.rdoc (limited to 'vendor/plugins/will_paginate/README.rdoc') diff --git a/vendor/plugins/will_paginate/README.rdoc b/vendor/plugins/will_paginate/README.rdoc new file mode 100644 index 00000000..2a412f51 --- /dev/null +++ b/vendor/plugins/will_paginate/README.rdoc @@ -0,0 +1,107 @@ += WillPaginate + +Pagination is just limiting the number of records displayed. Why should you let +it get in your way while developing, then? This plugin makes magic happen. Did +you ever want to be able to do just this on a model: + + Post.paginate :page => 1, :order => 'created_at DESC' + +... and then render the page links with a single view helper? Well, now you +can. + +Some resources to get you started: + +* {Installation instructions}[http://github.com/mislav/will_paginate/wikis/installation] + on {the wiki}[http://github.com/mislav/will_paginate/wikis] +* Your mind reels with questions? Join our + {Google group}[http://groups.google.com/group/will_paginate]. +* {How to report bugs}[http://github.com/mislav/will_paginate/wikis/report-bugs] + + +== Example usage + +Use a paginate finder in the controller: + + @posts = Post.paginate_by_board_id @board.id, :page => params[:page], :order => 'updated_at DESC' + +Yeah, +paginate+ works just like +find+ -- it just doesn't fetch all the +records. Don't forget to tell it which page you want, or it will complain! +Read more on WillPaginate::Finder::ClassMethods. + +Render the posts in your view like you would normally do. When you need to render +pagination, just stick this in: + + <%= will_paginate @posts %> + +You're done. (You can find the option list at WillPaginate::ViewHelpers.) + +How does it know how much items to fetch per page? It asks your model by calling +its per_page class method. You can define it like this: + + class Post < ActiveRecord::Base + cattr_reader :per_page + @@per_page = 50 + end + +... or like this: + + class Post < ActiveRecord::Base + def self.per_page + 50 + end + end + +... or don't worry about it at all. WillPaginate defines it to be 30 by default. +But you can always specify the count explicitly when calling +paginate+: + + @posts = Post.paginate :page => params[:page], :per_page => 50 + +The +paginate+ finder wraps the original finder and returns your resultset that now has +some new properties. You can use the collection as you would with any ActiveRecord +resultset. WillPaginate view helpers also need that object to be able to render pagination: + +
    + <% for post in @posts -%> +
  1. Render `post` in some nice way.
  2. + <% end -%> +
+ +

Now let's render us some pagination!

+ <%= will_paginate @posts %> + +More detailed documentation: + +* WillPaginate::Finder::ClassMethods for pagination on your models; +* WillPaginate::ViewHelpers for your views. + + +== Authors and credits + +Authors:: Mislav Marohnić, PJ Hyett +Original announcement:: http://errtheblog.com/post/929 +Original PHP source:: http://www.strangerstudios.com/sandbox/pagination/diggstyle.php + +All these people helped making will_paginate what it is now with their code +contributions or just simply awesome ideas: + +Chris Wanstrath, Dr. Nic Williams, K. Adam Christensen, Mike Garey, Bence +Golda, Matt Aimonetti, Charles Brian Quinn, Desi McAdam, James Coglan, Matijs +van Zuijlen, Maria, Brendan Ribera, Todd Willey, Bryan Helmkamp, Jan Berkel, +Lourens Naudé, Rick Olson, Russell Norris, Piotr Usewicz, Chris Eppstein, +Denis Barushev, Ben Pickles. + + +== Usable pagination in the UI + +There are some CSS styles to get you started in the "examples/" directory. They +are {showcased online here}[http://mislav.caboo.se/static/will_paginate/]. + +More reading about pagination as design pattern: + +* {Pagination 101}[http://kurafire.net/log/archive/2007/06/22/pagination-101] +* {Pagination gallery}[http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/] +* {Pagination on Yahoo Design Pattern Library}[http://developer.yahoo.com/ypatterns/parent.php?pattern=pagination] + +Want to discuss, request features, ask questions? Join the +{Google group}[http://groups.google.com/group/will_paginate]. + -- cgit v1.3