================
Grok Mini-HowTos
================

.. image:: /resources/evencaveman.jpg
   :alt: Now even cavemen can use Zope3
   :class: right

These mini-tutorials have been contributed by members of the Grok community.

* `Permissions Tutorial </minitutorials/permissions.html>`_:

  Zope3 and Grok come with authorization capabilities out of the box. While a
  vanilla Zope3 application protects all content by default and performs
  authorization checks on the content objects themselves, Grok allows access to
  everything unless you explicitly restrict it. The authorization checks here are
  done based on the Views used to access (display/manipulate) the content.

  Author: Luis De la Parra; Uli Fouquet; Jan-Wijbrand Kolman

* `Search Tutorial </minitutorials/searching.html>`_:

  Grok supports the vanilla indexing services available in Zope 3
  straight out of the box. The catalog uses developer-defined indexes
  for searching. In other words, you have to define the indexes you
  want to use to search you objects before you perform the actual
  search.

  Author: Sebastian Ware

* `Macros With Grok </minitutorials/macros.html>`_:

  Macros are a way to define a chunk of presentation in one template,
  and share it in others. Changes to the macro are immediately
  reflected in all templates, that use it.

  Author: Uli Fouquet

* `XMLRPC With Grok </minitutorials/xmlrpc.html>`_:

  XMLRPC (http://xmlrpc.com) is a spec and a set of implementations
  that allow software running on disparate operating systems, running in
  different environments to make procedure calls over the Internet.

  Author: Kushal Das

* `Navigating To Transient Objects Tutorial </minitutorials/transient-objects.html>`_:

  Sometimes you need to create objects that do not persist in the ZODB.
  For the purpose of this tutorial, we are going to call all such objects
  transient objects. This highlights the fact that, from the point of view of
  Grok, they are going to be instantiated on-the-fly as a user visits them.

  Author: Brandon Craig Rhodes

* `REST With Grok </minitutorials/rest.html>`_:

  REST is a way to build web services, i.e. a web application where the
  user is another computer, not a human being. REST takes the approach
  to make the web service look very similar to a normal web application,
  using well-known semantics of HTTP.

  Author: Martijn Faassen

* `Pluggable template laguanges </minitutorials/template-languages.html>`_:

  Grok, like the Zope 3 framework on which it is built, uses Zope Page
  Templates as its default templating language. While you can, of course, use
  whatever templating language you want in Grok by calling it manually, you can
  also ?plug in? a template language such that both inline templates and
  templates stored in files are automatically linked with your Views ? just
  like inline ``grok.PageTemplates`` and files with the ``.pt`` extension are
  by default.

  Author: Lennart Regebro

Buildout
========

Buildout is a python-based configuration-driven build tool for working with
eggs.

* `Buildout Tutorial </minitutorials/buildout.html>`_:

  This is Jim Fulton's tutorial for using `buildout
  <http://www.python.org/pypi/zc.buildout>`_ The original text document is
  available at http://svn.zope.org/zc.buildout/trunk/doc/tutorial.txt.
