===============================
Migrating from NuxMetaDirectory
===============================

:Revision: $Id: migrating-from-nuxmetadirectories.txt 30366 2005-12-06 21:18:48Z dkuhlman $

.. sectnum::    :depth: 4
.. contents::   :depth: 4


Context
=======

NuxMetaDirectories has been deprecated in CPS3 in favor of
CPSDirectories (cleaner architecture, based on CPSSchemas).

Changes
=======

1. Change all references to "portal_metadirectories" to
   "portal_directories".

2. Replace "display_prop" (property of a directory) with
   "title_field".

3. Replace references to ``directory_*`` skins by ``cpsdirectory_*``.
   Beware that some skin names have changed, and that the
   parameters to cpsdirectory_entry_view are now "dirname" and
   "id" (not "entry_id").

4. Calls to ``getEntry('foo')`` will not return None anymore if the
   entry does not exist but raise KeyError. If you want None
   returned, use ``getEntry('foo', default=None)``.

5. Replace "getSearchableSchemaKeys" by querying the schema
   directly for the fields that you want.

6. Be aware that results from a searchEntry is different than
   before.

   If there are no return_fields, you get::

     ['id1', 'id2', etc.]

   If there is a return_fields parameter, you get::

     [('id1', {'field1': value1, 'field2': value2}),
       ('id2', {'field1': value3, 'field2': value4}),
       etc.
     ]

   return_fields being in this example ('field1', 'field2')
