3 commits - kolab.org/www

Torsten Grote grote at kolabsys.com
Mon Aug 13 13:33:14 CEST 2012


 kolab.org/www/drupal-6.26/sites/all/modules/ctools/API.txt                                                                                                    |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/CHANGELOG.txt                                                                                              |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/LICENSE.txt                                                                                                |  601 +-
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.css                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.info                                                                               |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.module                                                                             |   15 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.hu.po                                                                 |   40 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.pot                                                                   |   69 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/collapsible-div.css                                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/context.css                                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/ctools.css                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/dropdown.css                                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/export-ui-list.css                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/modal.css                                                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/stylizer.css                                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/wizard.css                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.api.php                                                                                             |   17 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.info                                                                                                |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.install                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.module                                                                                              |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info                                                           |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info                                                                 |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.info                                                           |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.install                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.module                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content.inc                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/README.txt                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.info                                                           |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.module                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.pages_default.inc                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/arg_length.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/example_role.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/translations/ctools_plugin_example-plugins-access.hu.po               |   40 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/simplecontext_arg.inc                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/translations/ctools_plugin_example-plugins-arguments.hu.po         |   20 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/no_context_content_type.inc                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/relcontext_content_type.inc                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/simplecontext_content_type.inc                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/translations/ctools_plugin_example-plugins-content_types.hu.po |   95 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/relcontext.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/simplecontext.inc                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/translations/ctools_plugin_example-plugins-contexts.hu.po           |   34 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/panels.pages.inc                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/relcontext_from_simplecontext.inc                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/translations/ctools_plugin_example-plugins-relationships.hu.po |   18 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/translations/ctools_plugin_example.hu.po                                             |   56 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/about.html                                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ajax.html                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-access.html                                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-arguments.html                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-content.html                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-context.html                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-relationships.html                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context.html                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ctools.help.ini                                                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export-ui.html                                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export.html                                                                                           |   10 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/form.html                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/modal.html                                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/object-cache.html                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-api.html                                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-creating.html                                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-implementing.html                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins.html                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/wizard.html                                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/ajax.inc                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/collapsible.theme.inc                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.inc                                                                                       |   43 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.menu.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.theme.inc                                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-access-admin.inc                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-admin.inc                                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-task-handler.inc                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.inc                                                                                       |    5 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.menu.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.theme.inc                                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/css.inc                                                                                           |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dependent.inc                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dropdown.theme.inc                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.inc                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.menu.inc                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export.inc                                                                                        |   44 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/form.inc                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/jump-menu.inc                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/math-expr.inc                                                                                     |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/menu.inc                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/modal.inc                                                                                         |    3 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.cron.inc                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.inc                                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.menu.inc                                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/plugins.inc                                                                                       |   45 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.inc                                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.theme.inc                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/translations/includes.hu.po                                                                       |  185 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/utility.inc                                                                                       |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.inc                                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.theme.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/ajax-responder.js                                                                                       |   33 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/auto-submit.js                                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/collapsible-div.js                                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dependent.js                                                                                            |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dropdown.js                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/jump-menu.js                                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/modal.js                                                                                                |   17 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/stylizer.js                                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/css/page-manager.css                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/about.html                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-handler.html                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-type.html                                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task.html                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-access.html                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-arguments.html                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-menu.html                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages.html                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-create.html                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-nodes.html                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-vocabulary.html                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-members.html                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-page-list.html                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started.html                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/page_manager.help.ini                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/variants.html                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/js/page-list.js                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.admin.inc                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.info                                                                             |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.install                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.module                                                                           |   11 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/task_handlers/http_response.inc                                                       |   27 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog.inc                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog_user.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_site.inc                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_user.inc                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_edit.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_view.inc                                                                   |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.admin.inc                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.inc                                                                        |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/poll.inc                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/search.inc                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/translations/page_manager-plugins-tasks.hu.po                                   |  651 --
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/user_view.inc                                                                   |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/page-manager-edit-page.tpl.php                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/translations/page_manager-theme.hu.po                                                   |   52 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.de.po                                                               |  947 ---
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.fr.po                                                               | 1091 ---
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.hu.po                                                               |  268 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.pot                                                                 |  921 ---
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/compare_users.inc                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/context_exists.inc                                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/front.inc                                                                                   |   45 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_access.inc                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_language.inc                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_type.inc                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/path_visibility.inc                                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/perm.inc                                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/php.inc                                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/role.inc                                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/site_language.inc                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_equal.inc                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_length.inc                                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term.inc                                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_parent.inc                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_vocabulary.inc                                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/theme.inc                                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/translations/plugins-access.hu.po                                                           |  184 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/nid.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_add.inc                                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_edit.inc                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/rid.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/string.inc                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/term.inc                                                                                 |    3 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/terms.inc                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/translations/plugins-arguments.hu.po                                                     |  108 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/uid.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/user_name.inc                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/vid.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/block.inc                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/translations/plugins-content_types-block.hu.po                                 |   34 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/contact.inc                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/translations/plugins-content_types-contact.hu.po                             |   32 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/user_contact.inc                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/custom.inc                                                                    |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/translations/plugins-content_types-custom.hu.po                               |   40 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/form.inc                                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/translations/plugins-content_types-form.hu.po                                   |   22 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/node.inc                                                                        |    9 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/translations/plugins-content_types-node.hu.po                                   |   32 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_attachments.inc                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_author.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_body.inc                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_book_nav.inc                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comment_form.inc                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comments.inc                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_content.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_created.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_links.inc                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_terms.inc                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_title.inc                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_type_desc.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_updated.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/translations/plugins-content_types-node_context.hu.po                   |  151 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_attachments.inc                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_author.inc                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_book.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_buttons.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_comment.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_input_format.inc                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_log.inc                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_menu.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_path.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_publishing.inc                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_taxonomy.inc                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/translations/plugins-content_types-node_form.hu.po                         |  112 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_breadcrumb.inc                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_feed_icons.inc                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_footer_message.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_help.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_logo.inc                                                                   |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_messages.inc                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_mission.inc                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_primary_links.inc                                                          |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_secondary_links.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_site_name.inc                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_slogan.inc                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_tabs.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_title.inc                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/translations/plugins-content_types-page.hu.po                                   |   44 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_form.inc                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_result.inc                                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/translations/plugins-content_types-search.hu.po                               |   63 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_description.inc                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_list.inc                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/translations/plugins-content_types-term_context.hu.po                   |   52 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields_pane.tpl.php                                             |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/translations/plugins-content_types-user_context.hu.po                   |   42 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_picture.inc                                                        |   17 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_profile.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_signature.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/translations/plugins-content_types-vocabulary_context.hu.po       |   36 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/vocabulary_terms.inc                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node.inc                                                                                  |   16 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_add_form.inc                                                                         |    9 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_edit_form.inc                                                                        |   11 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/string.inc                                                                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/term.inc                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/terms.inc                                                                                 |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/token.inc                                                                                 |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/translations/plugins-contexts.hu.po                                                       |  100 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/user.inc                                                                                  |   13 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/vocabulary.inc                                                                            |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.class.php                                                               |   23 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.inc                                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/book_parent.inc                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/node_edit_form_from_node.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_from_node.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_parent.inc                                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/terms_from_node.inc                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/translations/plugins-relationships.hu.po                                             |   41 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/user_from_node.inc                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer.inc                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer_ui.class.php                                                           |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.info                                                                                     |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.install                                                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.module                                                                                   |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.de.po                                                                                  | 1691 ------
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.fr.po                                                                                  |   92 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.hu.po                                                                                  | 2794 ----------
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.pot                                                                                    | 1643 -----
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/general.de.po                                                                                 |  451 -
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/general.hu.po                                                                                 |  268 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/general.pot                                                                                   |  375 -
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/translations/views_content-plugins-content_types.hu.po                 |  150 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views.inc                                                              |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_attachments.inc                                                  |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_empty.inc                                                        |    5 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_exposed.inc                                                      |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_feed.inc                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_footer.inc                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_header.inc                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_pager.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_panes.inc                                                        |    5 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/content_types/views_row.inc                                                          |   11 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/contexts/view.inc                                                                    |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/relationships/node_from_view.inc                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/relationships/term_from_view.inc                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/relationships/user_from_view.inc                                                     |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/views/translations/views_content-plugins-views.hu.po                                 |  176 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/views/views_content.views.inc                                                        |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/views/views_content_plugin_display_ctools_context.inc                                |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/views/views_content_plugin_display_panel_pane.inc                                    |    3 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/plugins/views/views_content_plugin_style_ctools_context.inc                                  |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/translations/views_content.de.po                                                             |  457 -
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/translations/views_content.fr.po                                                             |  490 -
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/translations/views_content.hu.po                                                             |   41 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/translations/views_content.pot                                                               |  437 -
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/views_content.info                                                                           |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ctools/views_content/views_content.module                                                                         |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/.cvsignore                                                                                       |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ChangeLog                                                                                        |   32 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/LICENSE.txt                                                                                      |  601 +-
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/README-PUID.txt                                                                                  |  115 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/changelog.txt                                                                                    |   83 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/LDAPInterface.inc                                                                       |   85 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/ldap.core.inc                                                                           |  658 ++
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.inc                                                                               |  326 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.js                                                                                |   30 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.api.php                                                                                 |  118 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.features.inc                                                                            |  250 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.info                                                                                    |   10 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.install                                                                                 |  242 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.module                                                                                  |  403 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.theme.inc                                                                               |   10 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.admin.inc                                                                               |   24 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.info                                                                                    |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.install                                                                                 |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.module                                                                                  |  661 ++
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.theme.inc                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.admin.inc                                                                             |  362 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.api.php                                                                               |   47 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.inc                                                                                   |  309 -
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.info                                                                                  |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.install                                                                               |    1 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.module                                                                                |  170 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.css                                                                            |    9 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.info                                                                           |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.module                                                                         |  364 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_status.inc                                                                     |  373 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_wizard.inc                                                                     |  368 +
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.admin.inc                                                                               |  140 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.info                                                                                    |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.install                                                                                 |   29 
 kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.module                                                                                  |  423 +
 kolab.org/www/drupal-6.26/sites/all/modules/upgrade.py                                                                                                        |   37 
 343 files changed, 6380 insertions(+), 16009 deletions(-)

New commits:
commit 193acd440541aef7b2fde7b0f070821fff76800e
Author: Torsten Grote <grote at kolabsys.com>
Date:   Mon Aug 13 13:31:35 2012 +0200

    updated ldap_integration plugin

diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/.cvsignore b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/.cvsignore
deleted file mode 100644
index 3a4edf6..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-.project
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ChangeLog b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ChangeLog
deleted file mode 100644
index f3c4b7e..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ChangeLog
+++ /dev/null
@@ -1,32 +0,0 @@
-2007-08-29  kreaper  <http://rajeev.name>
-
-	* ldapauth.module: http://drupal.org/node/171440
-	the extra <strong> the problem with the fieldset and is removed.
-
-2007-08-22 kreaper <http://rajeev.name>
-
-	* ldap_integration/LDAPInterface.php: http://drupal.org/node/164049
-	Allow anonymous LDAP connect();
-
-	* ldapauth.module: http://drupal.org/node/164078
-	HTML fixes
-
-	* ldap_integration/LDAPInterface.php: http://drupal.org/node/158671
-	No longer initializing $ldap->server to "example.com"
-	
-2007-07-22 kreaper <http://rajeev.name>
-
-	* ldapauth.module: http://drupal.org/node/158671
-	contributed code that modifies code flow and also enabled ldapauth_auth() to work with other modules. 
-
-	* ldapdata.module: bug fix for http://drupal.org/node/136068
-	http://bugs.mysql.com/bug.php?id=25520 specifies that in Windows, TEXT/BLOB cannot have a default value
-
-2007-07-09 kreaper <http://rajeev.name>
-
-	* ldapgroups.module: renamed the global variable $ldap to $ldapgroups_ldap. 
-	Created a new function _ldapgroups_ldap_init() to setup the ldapgroups_ldap object.
-
-	* ldapdata.module: renamed the global variable $ldap to $ldapdata_ldap
-
-	* ldapauth.module: renamed the global variable $ldap to $ldapauth_ldap
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/LICENSE.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/LICENSE.txt
index 2c095c8..d159169 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/LICENSE.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/LICENSE.txt
@@ -1,274 +1,339 @@
-GNU GENERAL PUBLIC LICENSE
-
-              Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
-verbatim copies of this license document, but changing it is not allowed.
-
-                  Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public License
-applies to most of the Free Software Foundation's software and to any other
-program whose authors commit to using it. (Some other Free Software
-Foundation software is covered by the GNU Library General Public License
-instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients
-to know that what they have is not the original, so that any problems
-introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-           GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-               MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter, translation
-is included without limitation in the term "modification".) Each licensee is
-addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made
-by running the Program). Whether that is true depends on what the Program
-does.
-
-1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
-a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
-
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
-
-c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this License.
-(Exception: if the Program itself is interactive but does not normally print such
-an announcement, your work based on the Program is not required to print
-an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you distribute
-them as separate works. But when you distribute the same sections as part
-of a whole which is a work based on the Program, the distribution of the
-whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to
-work written entirely by you; rather, the intent is to exercise the right to
-control the distribution of derivative or collective works based on the
-Program.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
 
 In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of a
-storage or distribution medium does not bring the other work under the scope
-of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
-a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above
-on a medium customarily used for software interchange; or,
-
-b) Accompany it with a written offer, valid for at least three years, to give
-any third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding
-source code, to be distributed under the terms of Sections 1 and 2 above on
-a medium customarily used for software interchange; or,
-
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object
-code or executable form with such an offer, in accord with Subsection b
-above.)
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
 
 The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
 refrain entirely from distribution of the Program.
 
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose
-that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address new
-problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If
-the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
-               NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
-ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
-OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
-IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.
-
-          END OF TERMS AND CONDITIONS
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/README-PUID.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/README-PUID.txt
new file mode 100644
index 0000000..367e375
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/README-PUID.txt
@@ -0,0 +1,115 @@
+
+LDAP Integration Module - Persistent and Unique IDs (PUID)
+
+Overview
+========
+
+LDAP Integration needs to map Drupal users to LDAP user.  Generally, just 
+mapping via the user name works.  However, LDAP in enterprise settings can
+be a very dynamic. People can change user names and e-mail addresses, be moved 
+between LDAP trees (e.g. ou=Contract -> ou=Employee), and the like.
+
+The PUID attribute can be used to better map LDAP users to Drupal users.  This
+will allow LDAP Integration to definitively map an LDAP object to a Drupal user.
+
+The PUID can be a site specific attribute such as employeeNumber.  It can also
+use one of the various default attributes that LDAP servers supply for this
+purpose.  Some examples are:
+
+entryUUID - RFC 4530 standard operational attribute which the server assigns
+            a unique GUID to each LDAP object.  OpenLDAP, Apache DS, and other
+            impliment this.
+            
+objectGUID - Microsoft Active Directory standard attribute which get a unique
+             GUID as well.  NOTE:  This is a binary attributes.
+
+Note that most major LDAP servers currently have an attribute that supplies
+this functionality, even if the don't support RFC 4530.  Review your server
+documentation to determine what this is.
+             
+             
+Using PUID with LDAP Integration
+================================
+
+The first step is make sure you have the latest version of LDAP Integration
+install (after 4/24/2012) and have run UPDATE.php
+
+Next, you can edit your LDAP server settings to define the attribute to use
+for a PUID.
+
+Once you define a PUID, new users will be automatically be associated with 
+this as their accounts are created.  Existing users will be mapped to the
+PUID as they log on.  With the next version of ldapsync, this can also be 
+done by syncing the LDAP to Drupal users.
+
+An existing Drupal user is mapped via the PUID to an LDAP user if the following
+test are all true:
+
+- The Drupal user name matches the Authenticated ldap user name attribute.
+- The matching user is marked as an ldap user.
+- The Drupal user's stored dn matches the ldap dn
+- The Drupal user's server id matches the ldap server id or the Drupal sid does 
+  not exist anymore (i.e. server deleted/recreated)
+  
+Note that if the matching user is not an ldap user, the User conflict settings
+will be used to associate this or deny access.
+
+Some Operational Notes
+======================
+
+The PUID LDAP to Drupal user mappings are cleared when:
+
+- The PUID attribute is changed (or set initially) or
+- The Server entry is deleted.
+
+This should not have any major impact other than causing the "matching" rules
+to come into play as existing users log in.  You may want to use ldapsync to
+prevent any problems with name changes before the person logs in.
+
+
+Note that not all tools and LDAP backup software will properly migrate 
+the operational UUID attributes.  Many do, so make sure that your backup 
+and recovery/migrate processes include the PUID attributes.
+
+If your recover/migrate without these, you will have to clear the 
+ldapauth_users info for the effected server(s).  This can be done by 
+blanking out the PUID attribute, saving the server, then reentering the
+PUID value and saving the server.  Existing users will be mapped according 
+to the rules above. 
+
+Developer Notes:
+================
+
+The PUID mapping information is stored in the ldapauth_users table and can be
+managed by the ldapauth_userinfo_* CRUD functions in the ldap.core.inc file.
+
+There are two hooks that can effect Drupal to LDAP user mapping.  These are:
+
+/**
+ * Called if the LDAP user's PUID attribute does not exist or is empty.
+ */
+hook_ldap_user_puid_alter( &$puid, $name, $dn, $sid)
+
+This is a way for a site specific module to create or calculate PUID values for
+users.  Note that implementors will need to save this to the LDAP entry since 
+ldapauth may not have LDAP auth write priviledges.
+   
+/**
+ * Called after the ldap user is authenticated but before the Drupal user
+ * lookup/create process is done.
+ */
+hook_ldap_drupal_user_name_alter( &$name, $ldap, $dn )
+
+This allows sites to use a custom module to define the Drupal user name that 
+will be used to map to an LDAP user.  
+
+For example, if you have multiple servers with a possiblity of duplicate user 
+names, you can use this to prefix the Drupal name with the server machine name.
+So, LDAP user jsmith on the Student server maps to Drupal user id student-jsmith
+while jsmith on the Staff server maps to staff-jsmith.
+
+With a PUID, both users can log on using jsmith and their password and be 
+correctly mapped to different Drupal users.  Of course, if both users happen 
+to choose the same password... there may be problems.
+   
+See the ldapauth.api.php file for argument details.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/changelog.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/changelog.txt
new file mode 100644
index 0000000..b0f982d
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/changelog.txt
@@ -0,0 +1,83 @@
+
+LDAP Integration Changelog
+==========================
+Issue #1664384 by cgmonroe Fatal error on viewing a user profile
+Issue #1525752 by cgmonroe Original issue solution needed additional logic to allow for mixed mode users. 
+by cgmonroe Allow Drupal name to be null in ldapauth_drupal_user_lookup
+by cgmonroe Made sure role lookup querys were case insensitive
+by cgmonroe Added hook_ldap_user_groups_alter and hook_ldap_user_roles_alter to ldapgroups and ldapgroups.api.php doc. 
+by cgmonroe Allowed multiple Drupal roles to be defined in the group to role mapping area.
+by cgmonroe Added a test user group mappings option to ldapgroups admin that displays groups found, access rights, and roles for a specific user.
+by cgmonroe Converted ldapgroups "account creation" to ldap access rules.
+by cgmonroe Improved ldapgroups admin screen layout and text
+Issue #492082 by rjmackay, cgmonroe Provide option to disallow changing Username on user edit form
+by cgmonroe Added ability to convert ldap users back to local users (on user profile page).
+Issue #1279166 by cgmonroe Enabling groups overrides roles
+by cgmonroe ldapsync now has a User Conflict resolution option to deal with existing drupal users who match LDAP users
+by cgmonroe added a Sync Existing user only option to ldapsync
+by cgmonroe ldapsync's optional search filter can now contain multiple filters and optionally have the default filter appended.
+by cgmonroe Included ldapauth_users table removal in ldapauth uninstall function.
+Issue #1550504 by superhenne,cgmonroe ldapauth_users table not created on update/installation
+by cgmonroe Convert ldapgroups from $user to recommended $account for user handling.
+Issue #805752 by cgmonroe Detecting Groups failing (when user has no groups and only allow from these groups defined).
+by cgmonroe Restructured ldapgroups to support hook_ldap_user_deny_alter
+Issues #897222 and #949560 by cgmonroe Added hook_ldap_user_deny_alter so ldapgroups (and other modules) could deny an ldap user access to server before account creation/login.
+by cgmonroe Fixed features api so it worked with the new ldap.core structure
+by cgmonroe Restructured ldapsyn to use new core functions and fix multiple issues 
+by cgmonroe Added caching to ldapauth_lookup_user_by_dn
+Issue #862930 by cgmonroe LDAP should not be queried on every hook_user_view call
+Issue #688502 by cgmonroe Changed "sync passwords" option text to be clearer about behaviour.
+by cgmonroe Moved from authmap to checking account settings in a lot of places
+by cgmonroe Converted from include and requires to module_load_include
+by cgmonroe Fixed ldapdata bug that caused non-LDAP admin accounts to "blank out" profile info if they clicked on "Edit"
+by cgmonroe Added hooks for site specific modules to create PUIDs and influence LDAP user id to Drupal User id mapping - See ldapauth.api.php
+by cgmonroe Added/Restructured code to use ldapauth_drupal_user_lookup (map ldap ID to Drupal id) and ldapauth_drupal_user_create (create new Drupal user logic).
+by cgmonroe Refactored ldapauth so "core" functions (used by other modules) are in includes\ldap.core.inc file.
+by cgmonroe (Related to many issues) Added support for Persistent and Unique IDs (PUID) - Requires update.php to be run
+by cgmonroe Fix problem with server name and or machine name not being stored if they are changed in admin screens.
+by cgmonroe Cache attributes needed by sid and op rather than just op.
+Issue #1537556 by macman824,cgmonroe Lastest dev breaks ability to change AD password.
+Issue #1475228 by antgiant LDAP Sync Block Missing Users is Case Sensitive
+Issue #1475234 by antgiant LDAP Sync does show username of enabled users
+by cgmonroe Create D7 style ldapauth.api.php doc
+by cgmonroe Added machine_name as an LDAPInterface option/updated init code
+by cgmonroe Optimized server info caching by converting to ldapauth_server_load calls.
+Issue #1031425 by joelstein,johnbarclay,cgmonroe Return only specific attributes from ldap_read
+Issue #1525752 by msielski,cgmonroe If "Remove email field from form" is selected, user email address can not be changed.
+Issue #1209556 by johnbarclay,ericksm,cgmonroe Need to check for existing emails in ldapauth.module
+by cgmonroe Feature revert now correctly uses machine names to identify existing server entries.
+by cgmonroe Fixed PhP errors that occur if ldapdata attribute mapping still exist when the related *profile module is disabled.
+by cgmonroe Updated field description to include default port numbers.
+by cgmonroe Fixed bug with bindpw being cleared on save
+Issue #1400154 by cgmonroe Ldapdata module support for updating LDAP attributes from Content Profile Nodes
+by cgmonroe Added machine_name to database (requires Update.php run!) and support in admin screens.
+by cgmonroe Fix coder complaints about messages.
+by cgmonroe Added some common CRUD functions for accessing server info..
+by cgmonroe Add server import / export via admin GUI if ctools enabled.
+Issue #692670 by cgmonroe Integration with Features Module
+Issue #62784 by adzuledu,cgmonroe: Mapping image-type attribute from LDAP
+Issue #256226 by paolomainardi: Option to prevent new accounts from LDAP from being added to Drupal 
+Issue #1435486 by eiriksm: Coding Standards
+by cgmonroe: Fixed arraymerge error if no profile fields defined
+Issue #580786 by retsamedoc Standard LDAP Password Encryption
+Issue #1253020 by superhenne,cgmonroe  $profile_fields / $content_profile_fields messed up in ldapdata.module
+Issue #594598 by eporama.  Updated original to work on login page & test for admin.
+Issue #1243564 by wadmiraal.  translation fix.
+Issue #594598 by eporama.  Fix of error message on failed logon when reset password disabled.
+Issue #514986.  Error in error message when start tls fails.
+Issue #3918612 by pembertona.  Content Profile support additions and profile fixes.
+Issue #514986 by jlea9378. Bad error catching when start tls fails.  Produced extra errors.
+Issue #406038.  Fixed wording on fieldset for LDAP groups which allow automatic account creation
+Issue #655918 by sutch.  Fixed working of ldap server directions.
+Issue #821776 by gibus.  fixed use of t() function.
+Issue #953744 by erikwebb.  SQL error in ldap synch fixed.
+Brought last head into synch http://drupalcode.org/project/ldap_integration.git/commit/b16d5e2fd87f99d9abb4c35211da5be8e7977abe.  Primary change was addition of ldap synch.
+Issue #641558 by ShutterFreak :  password field should not be trimmed.
+Issue #171763 by retsamedoc : date support in profile
+Issue #793586 by robb: error catching for fail to connect
+Issue #986322 by lavamind: since email field is simply hidded, don't change in ldap
+Issue #339821 by presleyd: Fix encoding for AD passwords.
+Issue #636150 by patrizio:  allow non ldap users to request new password.
+Issue #417892 by johnbarclay: changed explode on , to ldap_explode_dn function to deal with escaping characters
+Merged Head and Beta2 into head for 6.x-1.x-dev
+Issue #514986 by jlea9378:  start tls not working because of incorrect check.  Patch by catfink.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/LDAPInterface.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/LDAPInterface.inc
index ba10f8f..8b873cd 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/LDAPInterface.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/LDAPInterface.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: LDAPInterface.inc,v 1.6 2009/10/27 14:29:18 miglius Exp $
 
 /**
  * @file
@@ -38,6 +37,9 @@ class LDAPInterface {
       case 'name':
         $this->name = $value;
         break;
+      case 'machine_name':
+        $this->machine_name = $value;
+        break;
       case 'server':
         $this->server = $value;
         break;
@@ -47,8 +49,8 @@ class LDAPInterface {
       case 'tls':
         $this->tls = $value;
         break;
-      case 'encrypted':
-        $this->encrypted = $value;
+      case 'enc_type':
+        $this->enc_type = $value;
         break;
       case 'user_attr':
         $this->user_attr = $value;
@@ -62,6 +64,12 @@ class LDAPInterface {
       case 'mail_attr':
         $this->mail_attr = $value;
         break;
+      case 'puid_attr':
+        $this->puid_attr = $value;
+        break;
+      case 'binary_puid':
+        $this->binary_puid = $value;
+        break;
       case 'binddn':
         $this->binddn = $value;
         break;
@@ -84,14 +92,17 @@ class LDAPInterface {
       case 'name':
         $ret = $this->name;
         break;
+      case 'machine_name':
+        $ret = $this->machine_name;
+        break;
       case 'port':
         $ret = $this->port;
         break;
       case 'tls':
         $ret = $this->tls;
         break;
-      case 'encrypted':
-        $ret = $this->encrypted;
+      case 'enc_type':
+        $ret = $this->enc_type;
         break;
       case 'user_attr':
         $ret = isset($this->user_attr) ? $this->user_attr : NULL;
@@ -105,6 +116,12 @@ class LDAPInterface {
       case 'mail_attr':
         $ret = isset($this->mail_attr) ? $this->mail_attr : NULL;
         break;
+      case 'puid_attr':
+        $ret = isset($this->puid_attr) ? $this->puid_attr : NULL;
+        break;
+      case 'binary_puid':
+        $ret = isset($this->binary_puid) ? $this->binary_puid : NULL;
+        break;
       case 'binddn':
         $ret = isset($this->binddn) ? $this->binddn : NULL;
         break;
@@ -129,16 +146,16 @@ class LDAPInterface {
   }
 
   function initConnection() {
-    if (!$con = ldap_connect($this->server, $this->port)) {
+    if (!$this->connection = ldap_connect($this->server, $this->port)) {
       watchdog('ldap', 'LDAP Connect failure to @server:@port', array('@server' => $this->server, '@port' => $this->port), WATCHDOG_ERROR);
       return;
     }
 
-    ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
-    ldap_set_option($con, LDAP_OPT_REFERRALS, 0);
+    ldap_set_option($this->connection, LDAP_OPT_PROTOCOL_VERSION, 3);
+    ldap_set_option($this->connection, LDAP_OPT_REFERRALS, 0);
     // TLS encryption contributed by sfrancis at drupal.org
     if ($this->tls) {
-      ldap_get_option($con, LDAP_OPT_PROTOCOL_VERSION, $vers);
+      ldap_get_option($this->connection, LDAP_OPT_PROTOCOL_VERSION, $vers);
       if ($vers == -1) {
         watchdog('ldap', 'Could not get LDAP protocol version.', array(), WATCHDOG_ERROR);
         return;
@@ -147,28 +164,32 @@ class LDAPInterface {
         watchdog('ldap', 'Could not start TLS, only supported by LDAP v3.', array(), WATCHDOG_ERROR);
         return;
       }
-      else if (!function_exists('ldap_start_tls')) {
+      elseif (!function_exists('ldap_start_tls')) {
         watchdog('ldap', 'Could not start TLS. It does not seem to be supported by this PHP setup.', array(), WATCHDOG_ERROR);
         return;
       }
-      else if (!ldap_start_tls($con)) {
-        watchdog('ldap', 'Could not start TLS. (Error %errno: %error).', array('%errno' => ldap_errno($con), '%error' => ldap_error($con)), WATCHDOG_ERROR);
+      elseif (!ldap_start_tls($this->connection)) {
+        watchdog('ldap', 'Could not start TLS. (Error %errno: %error).', array('%errno' => ldap_errno($this->connection), '%error' => ldap_error($this->connection)), WATCHDOG_ERROR);
         return;
       }
     }
-    $this->connection = $con;
   }
 
   function connectAndBind($dn = '', $pass = '') {
     $this->initConnection();
 
-    $con = $this->connection;
-    if (!$this->bind($dn, $pass)) {
-      watchdog('ldap', 'LDAP Bind failure for user %user. Error %errno: %error', array('%user' => $dn, '%errno' => ldap_errno($con), '%error' => ldap_error($con)));
-      return NULL;
+    if ($this->connection) {
+      if (!$this->bind($dn, $pass)) {
+        watchdog('ldap', 'LDAP Bind failure for user %user. Error %errno: %error', array('%user' => $dn, '%errno' => ldap_errno($this->connection), '%error' => ldap_error($this->connection)));
+        return NULL;
+      }
+      return $this->connection;
+    }
+    else {
+      return $false;
     }
 
-    return $con;
+
   }
 
   function bind($dn, $pass) {
@@ -204,13 +225,20 @@ class LDAPInterface {
     }
     return $ret;
   }
-
-  // WARNING! WARNING! WARNING!
-  // This function returns its entries with lowercase attribute names.
-  // Don't blame me, blame PHP's own ldap_get_entries()
-  function retrieveAttributes($dn) {
+/**
+ * Retrieve all or some of the attributes for the ldap dn.
+ *
+ * WARNING! WARNING! WARNING!
+ * This function returns its entries with lowercase attribute names.
+ * Don't blame me, blame PHP's own ldap_get_entries()
+ *
+ * @param String $dn Required - The full dn to the object
+ * @param Array  $attributes Optional - an array of specific attributes to
+ *               retrieve.  See ldap_read.
+ */
+  function retrieveAttributes($dn, $attributes = array()) {
     set_error_handler(array('LDAPInterface', 'void_error_handler'));
-    $result = ldap_read($this->connection, $dn, 'objectClass=*');
+    $result = ldap_read($this->connection, $dn, 'objectClass=*', $attributes );
     $entries = ldap_get_entries($this->connection, $result);
     restore_error_handler();
 
@@ -218,7 +246,7 @@ class LDAPInterface {
   }
 
   function retrieveAttribute($dn, $attrname) {
-    $entries = $this->retrieveAttributes($dn);
+    $entries = $this->retrieveAttributes($dn, array($attrname));
     return isset($entries[strtolower($attrname)]) ? $entries[strtolower($attrname)][0] : NULL;
   }
 
@@ -245,6 +273,12 @@ class LDAPInterface {
           ldap_mod_del($this->connection, $dn, array($key => $old_value));
         }
       }
+      //Encodes password for use in Active Directory // http://drupal.org/node/339821
+      if ($key == "unicodePwd") {
+        $cur_val = "\"" . $cur_val . "\"";
+        $attributes[$key] = mb_convert_encoding($cur_val, "UTF-16LE");
+      }
+
       if (is_array ($cur_val)) {
         foreach ($cur_val as $mv_key => $mv_cur_val) {
           if ($mv_cur_val == '') {
@@ -256,7 +290,6 @@ class LDAPInterface {
         }
       }
     }
-
     return ldap_modify($this->connection, $dn, $attributes);
   }
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/ldap.core.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/ldap.core.inc
new file mode 100644
index 0000000..2bfde2a
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/includes/ldap.core.inc
@@ -0,0 +1,658 @@
+<?php
+
+/**
+ * @file
+ * The core functions that ldapauth supplies for submodules.  Will be included
+ * by default by ldapauth.
+ *
+ */
+
+//////////////////////////////////////////////////////////////////////////////
+// Server Information CRUD functions
+
+/**
+ * Retrieve server setting object by sid or machine_name
+ * ( menu load function too)
+ *
+ * @param Mixed $sid Either the sid number or the machine name
+ * @param boolean $reset  Cache is cleared if true.
+ * @return The server object or FALSE
+ */
+function ldapauth_server_load( $sid, $reset=FALSE ) {
+  static $servers = array();
+
+  if ( $reset ) {
+    $servers = array();
+  }
+  if ( isset($servers[$sid]) ) {
+    return $servers[$sid];
+  }
+
+  if ( is_numeric($sid) ) {
+    $where = "sid = %d";
+  }
+  else {
+    $where = "machine_name = '%s'";
+  }
+  $server = db_fetch_object(
+    db_query("SELECT * FROM {ldapauth} WHERE " . $where, $sid));
+  $servers[$sid] = $server;
+  return $server;
+}
+/**
+ * Retrieve server settings by human name.
+ *
+ * @param String $name The description name of the server.
+ * @return Object or FALSE if not found.
+ */
+function ldapauth_server_load_by_name( $name ) {
+  $server = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE name = '%s'", $name));
+  if ( ! $server ) {
+    return FALSE;
+  }
+  return $server;
+}
+/**
+ * Retrieve all servers from database.
+ *
+ * @param Boolean $reset Clear the static cache if TRUE
+ * @return An array of server objects ordered by weight with sid as key.
+ */
+function ldapauth_server_load_all( $reset=FALSE ) {
+  static $servers = array();
+  if ( $reset ) {
+    $servers = array();
+  }
+
+  if ( empty($servers) || $reset ) {
+    $results = db_query("SELECT * FROM {ldapauth} ORDER BY weight");
+    while ($server = db_fetch_object($results)) {
+      $servers[$server->sid] = $server;
+    }
+  }
+  return $servers;
+}
+/**
+ * Create/Update server settings... updates if $server->sid is set or not.
+ * Uses machine_name as the key field for features.
+ *
+ * @param Mixed $server Server settings to save as object or array
+ * @param Boolean $quiet If true, no success message will be displayed to user.
+ * @param Boolean $use_sid If true, use sid to update entry rather than machine name.
+ */
+function ldapauth_server_save( &$server, $quiet=FALSE, $use_sid=FALSE ) {
+  if ( is_array($server)) {
+    $server = (object)$server;
+    $array = TRUE;
+  }
+  else {
+    $array = FALSE;
+  }
+  if ( isset($server->sid ) ) {
+    $type = "updated";
+    if ( $use_sid ) {
+      $update = 'sid';
+    }
+    else {
+      $update = 'machine_name';
+    }
+  }
+  else {
+    $type = "added";
+    $update = array();
+  }
+  $params = array('%name' => $server->name, '%type' => $type);
+  if ($rc = drupal_write_record('ldapauth', $server, $update)) {
+    if ( ! $quiet ) {
+      drupal_set_message(t('Server settings for %name have been %type.', $params));
+    }
+    watchdog('ldapauth', 'LDAP Configuration %name has been %type.', $params);
+  }
+  else {
+    drupal_set_message(t('Failed to write the server settings for %name .', array('%name' => $server->name)), 'warning');
+  }
+  if ( $array ) {
+    $server = ( array ) $server;
+  }
+  return $rc;
+}
+/**
+ * Delete server settings
+ *
+ * @param Mixed $server A server object, array, or an integer sid.
+ * @param Boolean $quiet
+ */
+function ldapauth_server_delete( $server, $quiet=FALSE ) {
+  if ( is_numeric( $server ) ) {
+    $server = ldapauth_server_load($server);
+  }
+  elseif ( is_array($server)) {
+    $server = (object)$server;
+  }
+  if ( $server && isset($server->sid) ) {
+    ldapauth_userinfo_delete_by_sid($server);
+    db_query("DELETE FROM {ldapauth} WHERE sid = %d", $server->sid);
+    if ( ! $quiet ) {
+      drupal_set_message(t('LDAP Configuration %name has been deleted.', array('%name' => $server->name)));
+    }
+    watchdog('ldapauth', 'LDAP Configuration %name has been deleted.', array('%name' => $server->name));
+  }
+}
+//////////////////////////////////////////////////////////////////////////////
+// LDAP User Information CRUD functions
+
+/**
+ * Create / Update a record in the ldapauth_users table.
+ *
+ * @param Mixed $userinfo Object or Array containing record info.
+ */
+function ldapauth_userinfo_save( $userinfo ) {
+  if ( is_array($userinfo)) {
+    $userinfo = (object)$userinfo;
+    $array = TRUE;
+  }
+  else {
+    $array = FALSE;
+  }
+  if ( isset($userinfo->luid ) ) {
+    $update = 'luid';
+  }
+  if (!($rc = drupal_write_record('ldapauth_users', $userinfo, $update))) {
+    drupal_set_message(t('Failed to write the ldap user info for uid: %name .', array('%name' => $userinfo->uid)), 'warning');
+  }
+  if ( $array ) {
+    $userinfo = ( array ) $userinfo;
+  }
+  return $rc;
+}
+/**
+ * Load a ldapauth_user record
+ *
+ * @param unknown_type $luid
+ */
+function ldapauth_userinfo_load( $luid ) {
+  $userinfo = db_fetch_object(
+    db_query("SELECT * FROM {ldapauth_users} WHERE luid = '%s'", $luid));
+  return $userinfo;
+}
+/**
+ * Load a ldapauth_user record by puid
+ *
+ * @param String $puid The users puid (after convertion from binary if needed).
+ */
+function ldapauth_userinfo_load_by_puid( $puid ) {
+  $userinfo = db_fetch_object(
+    db_query("SELECT * FROM {ldapauth_users} WHERE puid = '%s'", $puid));
+  return $userinfo;
+}
+/**
+ * Load a ldapauth_user record by uid
+ *
+ * @param int $uid The user's uid
+ */
+function ldapauth_userinfo_load_by_uid( $uid ) {
+  $userinfo = db_fetch_object(
+    db_query("SELECT * FROM {ldapauth_users} WHERE uid = %d", $uid));
+  return $userinfo;
+}/**
+ * Delete a ldapauth_users record.
+ *
+ * @param Mixed $userinfo Either the luid or the full object to delete
+ */
+function ldapauth_userinfo_delete( $userinfo ) {
+  if ( is_numeric( $userinfo ) ) {
+    $userinfo = ldapauth_userinfo_load($userinfo);
+  }
+  elseif ( is_array($userinfo)) {
+    $userinfo = (object)$userinfo;
+  }
+  if ( $userinfo && isset($userinfo->luid) ) {
+    db_query("DELETE FROM {ldapauth_users} WHERE luid = %d", $userinfo->luid);
+  }
+}
+/**
+ * Clear all entries from {ldapauth_users} who match the given server id.
+ *
+ * @param Mixed $sid A server object or sid
+ */
+function ldapauth_userinfo_delete_by_sid( $server ) {
+  if ( isset($server->sid ) ) {
+    $sid = $server->sid;
+  }
+  else {
+    $sid = $server;
+  }
+  if ( is_numeric($sid)  ) {
+    db_query("DELETE FROM {ldapauth_users} WHERE sid = %d", $sid);
+  }
+}
+//////////////////////////////////////////////////////////////////////////////
+// Attribute search functions.
+/**
+ * get array of required attributes for an ldap query.
+ *
+ * The op parameter should be one of the LDAPAUTH_SYNC_CONTEXT* constants.
+ *
+ * @param string $op is operation being performed
+ * @param string $sid server id being used
+ */
+function ldapauth_attributes_needed($op, $sid = NULL, $reset=FALSE) {
+  static $attributes = array();
+  if ( $reset ) {
+    $attributes = array();
+  }
+  if (!isset($attributes[$sid][$op])) {
+    drupal_alter('ldap_attributes_needed', $attributes[$sid][$op], $op, $sid);
+    // attributes array needs to have no gaps of ldap_search(), ldap_read(), ldap_list() so apply array_values()
+    $attributes[$sid][$op] = array_values(array_unique($attributes[$sid][$op]));
+  }
+  return $attributes[$sid][$op];
+}
+//////////////////////////////////////////////////////////////////////////////
+// PUID Common functions
+/**
+ * Extracts the puid value from an ldap search result with binary handling
+ *
+ * @param Mixed $server The server object or sid
+ * @param The drupal user name
+ * @param Array $ldap_entry LDAP search or retrieveAttributes result.
+ */
+function ldapauth_extract_puid( $server, $name, $ldap_entry ) {
+  if ( is_numeric( $server )) {
+    $server = ldapauth_server_load($server);
+  }
+  // DO NOT CONVERT TO Drupal STRING FUNCTIONS AS CODER SUGGESTS...
+  // These are byte operations.
+  $puid = $ldap_entry[strtolower($server->puid_attr)][0];
+  if ( $puid && $server->binary_puid ) {
+    if (strlen($puid) == 16) {  // Assume a binary GUID ala MS
+      $hex_string = bin2hex($puid);
+      // (MS?) GUID are displayed with first three GUID parts as "big endian"
+      // Doing this so String value matches what other LDAP tool displays for AD.
+      $puid=strtoupper(substr( $hex_string, 6, 2) . substr( $hex_string, 4, 2) .
+        substr( $hex_string, 2, 2) . substr( $hex_string, 0, 2) . '-' .
+        substr( $hex_string, 10, 2) . substr( $hex_string, 8, 2) . '-' .
+        substr( $hex_string, 14, 2) . substr( $hex_string, 12, 2) . '-' .
+        substr( $hex_string, 16, 4) . '-' . substr( $hex_string, 20, 12));
+    }
+    else {
+      $puid = bin2hex($puid);
+    }
+  }
+  if ( empty($puid) ) {
+     // Give other modules a chance to create a puid if needed.
+     drupal_alter('ldap_user_puid', $puid, $name, $ldap_entry['dn'], $server->sid);
+  }
+  return $puid;
+}
+/**
+ * Create a "binary safe" LDAP search filter for finding objects from puid.
+ *
+ * @param Mixed $server Server object or sid
+ * @param String $puid The puid value from ldapauth_users
+ */
+function ldapauth_puid_filter( $server, $puid ) {
+  if ( is_numeric( $server )) {
+    $server = ldapauth_server_load($server);
+  }
+  $filter = $server->puid_attr . "=";
+  $match = '';
+  if ( $server->binary_puid ) {
+    // Is it a simple Hex string
+    if ( preg_match('/^[a-f0-9]+$/i', $puid ) ) {
+      for ( $i=0; $i < strlen($puid); $i=$i+2 ) {
+        $match .= '\\' . substr($puid, $i, 2);
+      }
+    }
+    elseif ( preg_match('/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i', $puid)) {
+      // Reconstruct proper "memory" order from GUID string.
+      $hex_string = str_replace('-', '', $puid);
+      $puid = substr( $hex_string, 6, 2) . substr( $hex_string, 4, 2) .
+        substr( $hex_string, 2, 2) . substr( $hex_string, 0, 2) .
+        substr( $hex_string, 10, 2) . substr( $hex_string, 8, 2) .
+        substr( $hex_string, 14, 2) . substr( $hex_string, 12, 2) .
+        substr( $hex_string, 16, 4) . substr( $hex_string, 20, 12);
+      for ( $i=0; $i < strlen($puid); $i=$i+2 ) {
+        $match .= '\\' . substr($puid, $i, 2);
+      }
+    }
+  }
+  else {
+    $match = $puid;
+  }
+  return $filter . $match;
+}
+/**
+ * Map an LDAP user to a Drupal user account if one exists.
+ *
+ * @param LDAPInterface $ldap An initialized LDAP server interface object.
+ * @param String $name The user name (from login form)
+ * @param String $dn The user's dn
+ * @param String $error An error message or '' if no errors.  NOTE: Errors NOT reported via watchdog
+ * @param String $puid Save an ldap query if the PUID is already known (e.g ldapsync)
+ *
+ * @return A user object, FALSE (user not found) or NULL (if error)
+ */
+function ldapauth_drupal_user_lookup( $ldap, $name, $dn, &$error, $puid=NULL ) {
+
+  $error = '';
+  if (!$ldap) {
+    $error = t('LDAPInterface not initialized in ldapauth_drupal_user_lookup!');
+    return NULL;
+  }
+
+  $sid = $ldap->getOption('sid');
+
+  // If a PUID attribute is set, then use this to map users
+  if ( $ldap->getOption('puid_attr')) {
+    if ( ! $puid ) {
+      $ldap_entry = ldapauth_user_lookup_by_dn($ldap, $dn, LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER);
+      if ( empty($ldap_entry )) {
+        $error = t("Error looking up user in LDAP:  Supplied dn not found! sid=%sid dn=%dn", array('%sid' => $sid, '%dn' => $dn));
+        return NULL;
+      }
+      $puid = ldapauth_extract_puid($sid, $name, $ldap_entry);
+    }
+
+    // Try to get PUID to UID mapping.
+    if ( ! empty($puid) ) {
+      $user_info = ldapauth_userinfo_load_by_puid( $puid );
+      // Found matching ldapauth_users entry.  Return this users.
+      if ( isset($user_info->uid ) ) {
+        $account = user_load($user_info->uid);
+        $account->ldap_puid = $puid;
+        return $account;
+      }
+    }
+    else {
+      $error = t("LDAP user did not have required PUID attribute, %puid_attr! sid=%sid dn=%dn", array('%puid_attr' => $ldap->getOption('puid_attr'), '%sid' => $sid, '%dn' => $dn));
+      return NULL;
+    }
+
+    // Have PUID but no matching userinfo, then see if entry needs to be rebuilt.
+    // Most likely one of the following:
+    //   Converting from prePUID to PUID;
+    //   Changed PUID attribute; or
+    //   Server re-created with new sid.
+    // TODO: Make this configurable?
+    $drupal_name = ldapauth_drupal_user_name($name, $ldap, $dn);;
+    $account = user_load(array('name' => $drupal_name));
+    if ( ! $account ) {
+      return FALSE;
+    }
+    // Does the name map to an existing LDAP related account.
+    if ( isset($account->ldap_authentified) ) {
+      $user_info = ldapauth_userinfo_load_by_uid( $account->uid );
+      // No user with different PUID
+      if ( empty( $user_info )) {
+        // DNs match.
+        if ( drupal_strtolower($account->ldap_dn) == drupal_strtolower($dn)) {
+          $old_server = ldapauth_server_load($account->ldap_config);
+          // Do sids match or old sid does not exist
+          if ( $account->ldap_config == $sid || empty( $old_server )) {
+            $user_info = array(
+              'uid' => $account->uid,
+              'sid' => $sid,
+              'machine_name' => $ldap->getOption('machine_name'),
+              'dn' => $dn,
+              'puid' => $puid,
+            );
+            ldapauth_userinfo_save($user_info);
+            $account->ldap_puid = $puid;
+            return $account;
+          }
+        }
+      }
+      else {
+        $error = t('User, %name, already associated with a different LDAP user', array('%name' => $name));
+        return NULL;
+      }
+    }
+    // Return normal drupal account so login process can decide to map or not.
+    $account->ldap_puid = $puid;
+    return $account;
+  }
+  // Not using PUID so just use name.
+  else {
+    $drupal_name = ldapauth_drupal_user_name($name, $ldap, $dn);;
+    $account = user_load(array('name' => $drupal_name));
+
+    if ( ! $account ) {
+      return FALSE;
+    }
+    // Double check that ldap user matches this account.
+    if ( $account->ldap_authentified ) {
+      // Do DNs map
+      if ( drupal_strtolower($account->ldap_dn) == drupal_strtolower($dn)) {
+        $old_server = ldapauth_server_load($account->ldap_config);
+        // Do sids match or old sid does not exist
+        if ( $account->ldap_config == $sid || empty( $old_server )) {
+          $account->ldap_puid = $name;  // Default if puid attr not set.
+          return $account;
+        }
+      }
+      return FALSE;
+    }
+    $account->ldap_puid = $name;  // Default if puid attr not set.
+    return $account;
+  }
+}
+/**
+ * Create a new Drupal user from an LDAP user entry with checks to ensure that:
+ *
+ * The admin settings allow account creation
+ * The user name is unique.
+ * The e-mail is unique and not a reserved address.
+ * If PUID are used that the PUID is unique and not null.
+ *
+ * @param LDAPInterface $ldap An initialized LDAP server Interface object
+ * @param String $name The LDAP user name/login name.  If Null, user name will be extracted from attributes.
+ * @param Mixed $ldap_user The user's dn or and with the user's ldap attributes.
+ * @param String $error An error message or '' if no errors.  Errors also logged via watchdog.
+ * @return The new user object or FALSE if an error occured.
+ */
+function ldapauth_drupal_user_create( $ldap, $name, $ldap_user, &$error ) {
+
+  if ( is_string( $ldap_user ) ) {
+    $is_dn = TRUE;
+    $dn = $ldap_user;
+  }
+  elseif ( isset($ldap_user['dn'])) {
+    $is_dn = FALSE;
+    $dn = $ldap_user['dn'];
+  }
+  else { // Hmm invalid entry maybe should log this?
+    $error = t('Invalid LDAP information supplied!  Could not find dn.');
+    watchdog('ldapauth', 'Drupal user %name could not be created because the ldap_user parameter did not contain a valid dn.', array('%name' => $name), WATCHDOG_ERROR);
+    return FALSE;
+  }
+
+  $error = '';
+  // Has the admin turned of automatic account creation?
+  if (!variable_get('ldapauth_create_users', TRUE)) {
+    $error = t('Your account is not authorized to access this system.');
+    watchdog('ldapauth', 'The valid LDAP account %name was denied access because there was no matching Drupal account.', array('%name' => $name), WATCHDOG_ERROR);
+    return FALSE;
+  }
+
+  if ( $is_dn ) {
+    $ldap_user = ldapauth_user_lookup_by_dn($ldap, $dn, LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER );
+  }
+
+  // Get drupal name from ldap uid name
+  if ( ! $name ) {
+    $name_attr = $ldap->getOption('user_attr') ? $ldap->getOption('user_attr') : LDAPAUTH_DEFAULT_USER_ATTR;
+    $name = isset($ldap_user[$name_attr][0]) ? $ldap_user[$name_attr][0] : (isset($ldap_user[drupal_strtolower($name_attr)][0]) ? $ldap_user[drupal_strtolower($name_attr)][0] : $name);
+  }
+  // Let other modules change this if needed.
+  $drupal_name = ldapauth_drupal_user_name($name, $ldap, $dn);
+  // Check for unique name probably already done but double check to be sure.
+  if ( user_load(array('name' => $drupal_name) ) ) {
+    watchdog('ldapauth', 'LDAP user with DN %dn has a naming conflict with a local Drupal user %name', array('%dn' => $dn, '%name' => $drupal_name), WATCHDOG_ERROR);
+    $error = t('Another user already exists in the system with the same login name. You should contact the system administrator in order to solve this conflict.');
+    return FALSE;
+  }
+
+
+  if ( $ldap_user) {
+    // If mail attribute is missing, set the name as mail.
+    $init = $mail = key_exists(($ldap->getOption('mail_attr') ? $ldap->getOption('mail_attr') : LDAPAUTH_DEFAULT_MAIL_ATTR), $ldap_user) ? $ldap_user[$ldap->getOption('mail_attr')][0] : $name;
+
+    // Check that the e-mail is not denied.
+    if (drupal_is_denied('mail', $mail)) {
+      $error = t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $name));
+      return FALSE;
+    }
+
+    // Check that e-mail is unique
+    if ( $existing_user_by_email = user_load(array('mail' => $mail))) {
+      $error = t('The e-mail address, %mail, associated with this account is already in use.', array('%mail' => $mail));
+      watchdog('ldapauth', 'The valid LDAP account %name was denied access their email address, %mail, was already in use.', array('%name' => $name, '%mail' => $mail), WATCHDOG_ERROR);
+      return FALSE;
+    }
+
+    $sid = $ldap->getOption('sid');
+
+    // Validate / Create PUID entry.
+    if ( $ldap->getOption('puid_attr') ) {
+      $puid = ldapauth_extract_puid($sid, $name, $ldap_user);
+      if ( empty($puid) ) {
+        // Give other modules a chance to create a puid if needed.
+        drupal_alter('ldap_user_puid', $puid, $name, $dn, $sid);
+      }
+      if ( empty($puid) ) {
+        $error = t("This LDAP user entry was not configured properly (No PUID).  Please contact your system administrator.");
+        watchdog('ldapauth', 'LDAP user did not have required PUID attribute! ldap_attr=%attr sid=%sid dn=%dn',
+          array(
+            '%attr' => $ldap->getOption('puid_attr'),
+            '%sid' => $sid,
+            '%dn' => $dn
+          ),
+          WATCHDOG_ERROR);
+        return FALSE;
+      }
+      if ( ldapauth_userinfo_load_by_puid( $puid ) ) {
+        $error = t("This LDAP user entry was not configured properly (Duplicate PUID).  Please contact your system administrator.");
+        watchdog('ldapauth', 'A duplicate PUID was found! attr=%attr sid=%sid dn=%dn',
+          array(
+            '%attr' => $ldap->getOption('puid_attr'),
+            '%sid' => $sid,
+            '%dn' => $dn
+          ),
+          WATCHDOG_ERROR);
+        return FALSE;
+      };
+    }
+    else {
+      $puid = $name; // default to $name for PUID.
+    }
+
+    // Use name as is set in the LDAP server.
+    $name_attr = $ldap->getOption('user_attr') ? $ldap->getOption('user_attr') : LDAPAUTH_DEFAULT_USER_ATTR;
+    $name_new = isset($ldap_user[$name_attr][0]) ? $ldap_user[$name_attr][0] : (isset($ldap_user[drupal_strtolower($name_attr)][0]) ? $ldap_user[drupal_strtolower($name_attr)][0] : $name);
+    // Unless another module has altered it.
+    if ( $drupal_name != $name ) {
+      $name_new = $drupal_name;
+    }
+    // Generate a random drupal password. LDAP password will be used anyways.
+    $pass_new = (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_EXCLUSIVED || !LDAPAUTH_SYNC_PASSWORDS) ? user_password(20) : $pass;
+
+    $new_user = array(
+      'name' => $name_new,
+      'pass' => $pass_new,
+      'mail' => $mail,
+      'init' => $init,
+      'status' => 1,
+      'authname_ldapauth' => $name,
+      'ldap_authentified' => TRUE,
+      'ldap_dn' => $ldap_user['dn'],
+      'ldap_config' => $ldap->getOption('sid'),
+      'ldap_name' => $name,
+    );
+    $account = user_save('', $new_user);
+
+    // Save ldapauth_users info.
+    $user_info = array(
+      'uid' => $account->uid,
+      'sid' => $sid,
+      'machine_name' => $ldap->getOption('machine_name'),
+      'dn' => $dn,
+      'puid' => $puid,
+    );
+    ldapauth_userinfo_save($user_info);
+    watchdog('ldapauth', 'New external user %name created from the LDAP server %server.', array('%name' => $name, '%server' => $ldap->getOption('name')), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
+    // Invoke post user creation hook.
+    module_invoke_all('ldapauth_create', $account);
+    return $account;
+  }
+  $error = t("Could not find dn entry! dn=%dn", array('%dn' => $dn));
+  return FALSE;
+}
+/**
+ * Retrieves required attributes for specific user and operation.
+ *
+ * @param LDAPInterface $ldap An initialized LDAP server Interface object
+ * @param String $dn The LDAP user's dn
+ * @param String $op The type of load operation (see LDAPAUTH_SYNC_CONTEXT* constants)
+ * @param boolean $reset If true the cache will be cleared.
+ * @return An array of the user's ldap attributes as defined by the operation.
+ */
+function ldapauth_user_lookup_by_dn( $ldap, $dn, $op, $reset=FALSE ) {
+  static $ldap_user_cache = array();;
+
+  if ( $reset ) {
+    $ldap_user_cache = array();
+  }
+
+  if ( ! $ldap ) {  // Allow cache resets without lookup.
+    return FALSE;
+  }
+  $sid = $ldap->getOption('sid');
+  if ( ! isset( $ldap_user_cache[$op][$sid][$dn]) ) {
+    $attrs = ldapauth_attributes_needed($op, $ldap->getOption('sid'));
+    $ldap_user_cache[$op][$sid][$dn] = $ldap->retrieveAttributes($dn, $attrs );
+  }
+  return $ldap_user_cache[$op][$sid][$dn];
+}
+/**
+ * Allow modules to do site dependent login form name to drupal account name
+ * mapping.
+ *
+ * Calls the hook_ldap_drupal_user_name_alter function(s) once per name.
+ *
+ * @param String $name Name entered on login form (case insensitive match to user attr).
+ * @param LDAPInterface $ldap Fully initialized LDAP server interface object
+ * @param boolean $reset If true the cache will be cleared.
+ * @param String $dn The DN that has been authenticated with LDAP.
+ */
+function ldapauth_drupal_user_name( $name, $ldap, $dn, $reset=FALSE ) {
+  static $drupal_names = array();
+
+  if ( $reset ) {
+    $drupal_name = array();
+  }
+  if ( ! $name ) {  // Allow reset with no lookup.
+    return FALSE;
+  }
+
+  if ( ! isset($drupal_names[$name])) {
+    drupal_alter('ldap_drupal_user_name', $name, $ldap, $dn);
+    $drupal_names[$name] = $name;
+  }
+  return $drupal_names[$name];
+}
+/**
+ * Allows other modules (like ldapgroups) to deny an ldap user access to the
+ * server.
+ *
+ * @param LDAPInterface $ldap Fully initialized LDAP server interface object
+ * @param String $name The ldap user name (from login form)
+ * @param String $dn The DN for the authenticated user
+ * @param Object $account The local drupal account object or FALSE if none found.
+ * @return TRUE is user is to be denied access.
+ */
+function ldapauth_user_denied( $ldap, $name, $dn, $account ) {
+  $denied = FALSE;
+  drupal_alter('ldap_user_deny', $denied, $ldap, $name, $dn, $account );
+  return $denied;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.inc
index 3a2cbc6..731d5e4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapauth.admin.inc,v 1.6 2009/10/27 14:29:16 miglius Exp $
 
 /**
  * @file
@@ -24,6 +23,11 @@ function ldapauth_admin_settings() {
     LDAPAUTH_CONFLICT_LOG => t('Disallow login and log the conflict'),
     LDAPAUTH_CONFLICT_RESOLVE => t('Associate local account with the LDAP entry')
   );
+  $options_username_field = array(
+    LDAPAUTH_USERNAME_FIELD_NO => t('Do nothing'),
+    LDAPAUTH_USERNAME_FIELD_REMOVE => t('Remove username field from form'),
+    LDAPAUTH_USERNAME_FIELD_DISABLE => t('Disable username field on form'),
+  );
 
   $form['system-options'] = array(
     '#type' => 'fieldset',
@@ -35,7 +39,7 @@ function ldapauth_admin_settings() {
   $form['system-options']['ldapauth_login_process'] = array(
     '#type' => 'radios',
     '#title' => t('Choose authentication mode'),
-    '#description' => t('Pick the mode based on the types of user accounts and other configuration decisions. If <i>LDAP directory only</i> option is activated some UI modications will be applied.'),
+    '#description' => t('Pick the mode based on the types of user accounts and other configuration decisions. If <i>LDAP directory only</i> option is activated some UI modifications will be applied.'),
     '#default_value' => LDAPAUTH_LOGIN_PROCESS,
     '#options' => $options_login_process,
     '#required' => TRUE,
@@ -65,7 +69,13 @@ function ldapauth_admin_settings() {
     '#type' => 'checkbox',
     '#title' => t('Sync LDAP password with the Drupal password'),
     '#default_value' => LDAPAUTH_SYNC_PASSWORDS,
-    '#description' => t('If checked, then LDAP and Drupal passwords will be syncronized. This might be useful if some other modules need to authenticate against the user password hash stored in Drupal and works only in Mixed mode. It might introduce security issues in the Mixed mode since after deletion of the LDAP account user still be able to login to Drupal with his password. If unsure, leave this unchecked.'),
+    '#description' => t('If checked, then LDAP and Drupal passwords will be syncronized. This might be useful if some other modules need to authenticate against the user password hash stored in Drupal and works only in Mixed mode. It might introduce security issues in the Mixed mode since after the deletion of the LDAP account, the Drupal user will still exist and may be able to login to Drupal with his password if ldapauth is disabled. If unsure, leave this unchecked.'),
+  );
+  $form['security-options']['ldapauth_create_users'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Create new Drupal user if not present'),
+    '#default_value' => variable_get('ldapauth_create_users', TRUE),
+    '#description' => t('If checked, then LDAP will create a new Drupal user against the user information supplied by the user authenticated by LDAP. If not checked only the already available users will be authenticated.'),
   );
 
   $form['ldap-ui'] = array(
@@ -75,11 +85,19 @@ function ldapauth_admin_settings() {
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
   );
+  $form['ldap-ui']['ldapauth_alter_username_field'] = array(
+    '#type' => 'radios',
+    '#title' => t('Alter username field on user edit form'),
+    '#description' => t('Remove or disable username field from user edit form for LDAP authenticated users, even admin users.'),
+    '#default_value' => LDAPAUTH_ALTER_USERNAME_FIELD,
+    '#options' => $options_username_field,
+    '#required' => TRUE,
+  );
   $form['ldap-ui']['ldapauth_disable_pass_change'] = array(
     '#type' => 'checkbox',
     '#title' => t('Remove password change fields from user edit form'),
     '#default_value' => LDAPAUTH_DISABLE_PASS_CHANGE,
-    '#description' => t('<strong>NOTE:</strong> Request new password feature will be disabled for all users even for the user with uid 1.'),
+    '#description' => t('If left unchecked, ldap users will receive warning that they may not request new password here.  <strong>NOTE:</strong> Request new password feature will be disabled for all users even for the user with uid 1.'),
   );
   $options_email_field = array(
     LDAPAUTH_EMAIL_FIELD_NO => t('Do nothing'),
@@ -120,6 +138,8 @@ function ldapauth_admin_settings_submit($form, &$form_state) {
       variable_set('ldapauth_sync_passwords', $values['ldapauth_sync_passwords']);
       variable_set('ldapauth_disable_pass_change', $values['ldapauth_disable_pass_change']);
       variable_set('ldapauth_alter_email_field', $values['ldapauth_alter_email_field']);
+      variable_set('ldapauth_create_users', $values['ldapauth_create_users']);
+      variable_set('ldapauth_alter_username_field', $values['ldapauth_alter_username_field']);
 
       drupal_set_message(t('The configuration options have been saved.'));
       break;
@@ -130,7 +150,8 @@ function ldapauth_admin_settings_submit($form, &$form_state) {
       variable_del('ldapauth_sync_passwords');
       variable_del('ldapauth_disable_pass_change');
       variable_del('ldapauth_alter_email_field');
-
+      variable_del('ldapauth_create_users');
+      variable_del('ldapauth_alter_username_field');
       drupal_set_message(t('The configuration options have been reset to their default values.'));
       break;
   }
@@ -203,27 +224,36 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
   drupal_add_js(drupal_get_path('module', 'ldapauth') .'/ldapauth.admin.js');
 
   if ($op == "edit" && $sid) {
-    $edit = db_fetch_array(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $sid));
+    $edit = (array) ldapauth_server_load( $sid );
     $form['sid'] = array(
       '#type' => 'hidden',
       '#value' => $sid,
     );
+    $form['original_server'] = array(
+      '#type' => 'value',
+      '#value' => ldapauth_server_load( $sid ),
+    );
+    $name_classes = "ldapauth-name-update";
   }
   else {
     $edit = array(
       'name' => '',
+      'machine_name' => '',
       'server' => '',
       'port' => '389',
       'tls' => 0,
-      'encrypted' => 0,
+      'enc_type' => 0,
       'basedn' => '',
       'user_attr' => LDAPAUTH_DEFAULT_USER_ATTR,
       'mail_attr' => LDAPAUTH_DEFAULT_MAIL_ATTR,
+      'puid_attr' => '',
+      'binary_puid' => 0,
       'binddn' => '',
       'bindpw' => FALSE,
       'login_php' => '',
       'filter_php' => '',
     );
+    $name_classes = "ldapauth-name";
   }
 
   $form['server-settings'] = array(
@@ -240,14 +270,25 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
     '#size' => 50,
     '#maxlength' => 255,
     '#required' => TRUE,
+    '#attributes' => array('class' => $name_classes),
+  );
+  $form['server-settings']['machine_name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Machine-readable name'),
+    '#description' => t('Example: primary_domain_server') . '<br/>' . t('May only contain lowercase letters, numbers and underscores. <strong>Try to avoid conflicts with the names of existing Drupal projects.</strong>'),
+    '#required' => TRUE,
+    '#default_value' => $edit['machine_name'],
+    '#attributes' => array('class' => 'ldapauth-machine-name'),
+    '#element_validate' => array('ldapauth_admin_form_validate_field'),
   );
+
   $form['server-settings']['server'] = array(
     '#type' => 'textfield',
     '#title' => t('LDAP server'),
     '#default_value' => $edit['server'],
     '#size' => 50,
     '#maxlength' => 255,
-    '#description' => t('The domain name or IP address of your LDAP Server.'),
+    '#description' => t('The domain name or IP address of your LDAP Server. Prefix the hostname or IP address with ldaps:// if the LDAP server connection uses SSL.'),
     '#required' => TRUE,
   );
   $form['server-settings']['port'] = array(
@@ -256,7 +297,7 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
     '#default_value' => $edit['port'],
     '#size' => 5,
     '#maxlength' => 5,
-    '#description' => t('The TCP/IP port on the above server which accepts LDAP connections. Must be an integer.'),
+    '#description' => t('The TCP/IP port on the above server which accepts LDAP connections. Must be an integer. Standard ports are 389 and 636(SSL).'),
   );
   $form['server-settings']['tls'] = array(
     '#type' => 'checkbox',
@@ -264,11 +305,12 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
     '#default_value' => $edit['tls'],
     '#description' => t('Secure the connection between the Drupal and the LDAP servers using TLS.<br /><em>Note: To use START-TLS, you must set the LDAP Port to 389.</em>'),
   );
-  $form['server-settings']['encrypted'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Store passwords in encrypted form'),
-    '#default_value' => $edit['encrypted'],
-    '#description' => t('Secure the password in LDAP by storing it MD5 encrypted (use with care, as some LDAP directories may do this automatically, what would cause logins problems).'),
+  $form['server-settings']['enc_type'] = array(
+    '#type' => 'select',
+    '#options' => valid_enc_types(),
+    '#title' => t('LDAP password encryption type'),
+    '#default_value' => $edit['enc_type'],
+    '#description' => t('This lists which type of Standard LDAP encryption should be used. Use with care as some LDAP directories may do this automatically, what would cause login issues. If unsure, use cleartext.'),
   );
 
   $form['login-procedure'] = array(
@@ -301,13 +343,27 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
     '#maxlength' => 255,
     '#description' => t('The attribute that holds the users\' email address. (eg. <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">mail</em>).'),
   );
+  $form['login-procedure']['puid_attr'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Persistent and Unique User Id attribute'),
+    '#default_value' => $edit['puid_attr'],
+    '#size' => 30,
+    '#maxlength' => 255,
+    '#description' => t("In some LDAPs, a user's DN, CN, or mail may change when a user's name changes or for other reasons. In order to avoid creation of multiple accounts and definitively map ldap entries to Drupal users, you can enter an attribute that will be persistent and unique across LDAP changes, e.g. employeeNumber, entryUUID, objectGUID, and the like. If no such attribute exists, just leave blank."),
+  );
+  $form['login-procedure']['binary_puid'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('PUID is binary'),
+    '#default_value' => $edit['binary_puid'],
+    '#description' => t("Some attributes that can be used for PUIDs are binary and require special handing, e.g. objectGUID.  Check this if the puid attribute is binary."),
+  );
   $form['login-procedure']['login_php'] = array(
     '#type' => 'textarea',
     '#title' => t('PHP to transform login name'),
     '#default_value' => $edit['login_php'],
     '#cols' => 25,
     '#rows' => 5,
-    '#description' => t('Enter PHP to transform login name before it is sent to LDAP for authentication. Careful, bad PHP code here will break your site. If left empty, no name transformation will be done. Change following example code to enable transformation:<br /><code>return $name;</code>'),
+    '#description' => check_plain(t('Enter PHP to transform login name before it is sent to LDAP for authentication. Careful, bad PHP code here will break your site. If left empty, no name transformation will be done. Change following example code to enable transformation:<br /><code>return $name;</code>')),
   );
   $form['login-procedure']['filter_php'] = array(
     '#type' => 'textarea',
@@ -315,7 +371,7 @@ function ldapauth_admin_form(&$form_state, $op = NULL, $sid = NULL) {
     '#default_value' => $edit['filter_php'],
     '#cols' => 25,
     '#rows' => 5,
-    '#description' => t('Enter PHP to filter users which are allowed to login based on their LDAP data. Careful, bad PHP code here will break your site. If left empty, no filtering will be done. The code should return TRUE to allow authentication. Following example shows how to disallow users without their homeDirectory set:<br /><code>return isset($ldap[\'homeDirectory\']) && isset($ldap[\'homedirectory\'][0]);</code>'),
+    '#description' => check_plain(t('Enter PHP to filter users which are allowed to login based on their LDAP data. Careful, bad PHP code here will break your site. If left empty, no filtering will be done. The code should return TRUE to allow authentication. Following example shows how to disallow users without their homeDirectory set:<br /><code>return isset($ldap[\'homeDirectory\']) && isset($ldap[\'homedirectory\'][0]);</code>')),
   );
 
   $form['advanced'] = array(
@@ -377,6 +433,9 @@ function ldapauth_admin_form_validate($form, &$form_state) {
     if (db_fetch_object(db_query("SELECT name FROM {ldapauth} WHERE name = '%s'", $values['name']))) {
       form_set_error('name', t('An LDAP config with the  name %name already exists.', array('%name' => $values['name'])));
     }
+    if (db_fetch_object(db_query("SELECT machine_name FROM {ldapauth} WHERE machine_name = '%s'", $values['machine_name']))) {
+      form_set_error('name', t('An LDAP config with the machine name %name already exists.', array('%name' => $values['machine_name'])));
+    }
   }
   if (!is_numeric($values['port'])) {
     form_set_error('port', t('The TCP/IP port must be an integer.'));
@@ -391,24 +450,43 @@ function ldapauth_admin_form_submit($form, &$form_state) {
   $values = $form_state['values'];
   switch ($op) {
     case t('Save configuration'):
-      if (!isset($values['sid'])) {
-        db_query("INSERT INTO {ldapauth} (name, status, server, port, tls, encrypted, basedn, user_attr, mail_attr, binddn, bindpw, login_php, filter_php) VALUES ('%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $values['name'], 1, $values['server'], $values['port'], $values['tls'], $values['encrypted'], $values['basedn'], trim($values['user_attr']), trim($values['mail_attr']), $values['binddn'], $values['bindpw'], trim($values['login_php']), trim($values['filter_php']));
-        drupal_set_message(t('LDAP configuration %name has been added.', array('%name' => $values['name'])));
-        watchdog('ldapauth', 'LDAP configuration %name has been added.', array('%name' => $values['name']));
-      }
-      else {
-        if (isset($values['bindpw_clear'])) {
-          db_query("UPDATE {ldapauth} SET name = '%s', server = '%s', port = %d, tls = %d, encrypted = %d, basedn = '%s', user_attr = '%s', mail_attr = '%s', login_php = '%s', filter_php = '%s' WHERE sid = %d", $values['name'], $values['server'], $values['port'], $values['tls'], $values['encrypted'], $values['basedn'], trim($values['user_attr']), trim($values['mail_attr']), trim($values['login_php']), trim($values['filter_php']), $values['sid']);
-          if ($values['bindpw_clear']) {
-            db_query("UPDATE {ldapauth} SET bindpw = '' WHERE sid = %d", $values['sid']);
-          }
+      $server = array(
+        'name' => $values['name'],
+        'machine_name' => $values['machine_name'],
+        'status' => 1,
+        'server' => $values['server'],
+        'port' => $values['port'],
+        'tls' => $values['tls'],
+        'enc_type' => $values['enc_type'],
+        'basedn' => $values['basedn'],
+        'user_attr' => trim($values['user_attr']),
+        'mail_attr' => trim($values['mail_attr']),
+        'puid_attr' => trim($values['puid_attr']),
+        'binary_puid' => trim($values['binary_puid']),
+        'binddn' => $values['binddn'],
+        'bindpw' => $values['bindpw'],
+        'login_php' => trim($values['login_php']),
+        'filter_php' => trim($values['filter_php']),
+      );
+      if ( isset($values['sid'])) {
+        $old_server = $values['original_server'];
+        $server['sid'] = $values['sid'];
+
+        // If machine name has changed, update ldapauth_users values.
+        if ( $old_server->machine_name != $server['machine_name'] ) {
+          db_query("UPDATE {ldapauth_users SET machine_name='%s' WHERE sid = %d", $server['machine_name'], $server['sid']);
         }
-        else {
-          db_query("UPDATE {ldapauth} SET name = '%s', server = '%s', port = %d, tls = %d, encrypted = %d, basedn = '%s', user_attr = '%s', mail_attr = '%s', binddn = '%s', bindpw = '%s', login_php = '%s', filter_php = '%s' WHERE sid = %d", $values['name'], $values['server'], $values['port'], $values['tls'], $values['encrypted'], $values['basedn'], trim($values['user_attr']), trim($values['mail_attr']), $values['binddn'], $values['bindpw'], trim($values['login_php']), trim($values['filter_php']), $values['sid']);
+
+        // If puid attr has changed, clear out old values.
+        if ( $old_server->puid_attr != $server['puid_attr'] ) {
+          ldapauth_userinfo_delete_by_sid($server['sid']);
+          drupal_set_message(t("NOTICE: The PUID info for current users were cleared because PUID Attribute changed.  You can either let this information be rebuild as users log in or use ldapsync to rebuild."), 'warning');
         }
-        drupal_set_message(t('LDAP Configuration %name has been updated.', array('%name' => $values['name'])));
-        watchdog('ldapauth', 'LDAP Configuration %name has been updated.', array('%name' => $values['name']));
       }
+      if ( ! empty($values['bindpw_clear'])) {
+        $server['bindpw'] = '';
+      }
+      ldapauth_server_save($server, FALSE, TRUE);
 
       $form_state['redirect'] = 'admin/settings/ldap/ldapauth/list';
       break;
@@ -542,9 +620,7 @@ function ldapauth_admin_delete(&$form_state, $sid) {
 function ldapauth_admin_delete_submit($form, &$form_state) {
   $values = $form_state['values'];
   if ($values['confirm'] && $values['sid']) {
-    db_query("DELETE FROM {ldapauth} WHERE sid = %d", $values['sid']);
-    drupal_set_message(t('LDAP Configuration %name has been deleted.', array('%name' => $values['name'])));
-    watchdog('ldapauth', 'LDAP Configuration %name has been deleted.', array('%name' => $values['name']));
+    ldapauth_server_delete($values['sid']);
   }
   drupal_goto('admin/settings/ldap/ldapauth/list');
 }
@@ -560,6 +636,46 @@ function ldapauth_admin_menu_block_page() {
 }
 
 /**
+ * Returns an array of valid encryption types.
+ *
+ *  *Most of the code here is from phpLDAPadmin.
+ */
+function valid_enc_types() {
+
+  // Clear Text
+  $valid_types[0] = t('Clear');
+
+  // Crypt + Salted Crypt
+  $valid_types[2] = t('Crypt');
+  $valid_types[3] = t('Salted Crypt');
+
+  // Extended DES
+  if ( defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 1 )
+    $valid_types[4] = t('Extended DES');
+
+  // MD5Crypt
+  if ( defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 1 )
+    $valid_types[5] = t('MD5Crypt');
+
+  // Blowfish
+  if ( defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 1 )
+    $valid_types[6] = t('Blowfish');
+
+  // MD5
+  $valid_types[1] = t('MD5');
+
+  // SMD5 + SHA +  SSHA
+  if (function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) {
+    $valid_types[7] = t('Salted MD5');
+    $valid_types[8] = t('SHA');
+    $valid_types[9] = t('Salted SHA');
+  }
+
+  return $valid_types;
+}
+
+
+/**
  * Implements the AJAX server test.
  *
  * @param $sid
@@ -589,4 +705,144 @@ function _ldapauth_ajax_test($sid) {
   drupal_json($_ldapauth_ldap->connect($binddn, $bindpw) ? array('status' => 1, 'message' => t('Authentication with the LDAP server succeeded.')) : array('status' => 0, 'message' => t('Authentication with the LDAP server failed.')));
   exit;
 }
-
+/**
+ * Export server settings form.
+ *
+ * @param $sid
+ *   The server id.
+ */
+function ldapauth_admin_export_form($form_state, $sid) {
+  drupal_set_title(t('Export setting for server %description',
+    array('%description' => $sid->name)));
+
+  // Get export code with Ctools.
+  ctools_include('export');
+
+  $export = ctools_export_object('ldapauth', $sid);
+  //              $ldapserver->sid   =    ' 1  '    ;
+//  preg_replace('/\$ldapserver->sid\s*=\s*\'\d+\'\s*\;\s*\n/', '', $export);
+  $export = "<?php\n{$export}return serialize(\$ldapserver);\n?>";
+  $lines = substr_count($export, "\n");;
+
+  // Create the export code textarea.
+  $form = array(
+    'info' => array(
+      '#type' => 'markup',
+      '#value' => t('Copy the export text below and paste it into another ' .
+        'ldapauth site using the import server tab.'),
+    ),
+    'export' => array(
+      '#type' => 'textarea',
+      '#title' => t('Server settings'),
+      '#rows' => $lines,
+      '#default_value' => $export,
+    ),
+  );
+  return $form;
+}
+/**
+ * Import server settings form .
+ */
+function ldapauth_admin_import_form($form_state) {
+  $form = array(
+    'info' => array(
+      '#type' => 'markup',
+      '#value' => '<p>' .
+        t('Paste the text from the export a server option here ' .
+          'to create a <b>new</b> server with the same options. ') .
+        '</p><p>' .
+        t('Notes:') .
+        '<ul><li>' .
+        t('The imported server name can not duplicate any existing server name') .
+        '</li><li>' .
+        t('If the ldapdata or ldapgroups modules were enabled on ' .
+          'the source server, they will need to be enabled on this server.') .
+        '</li><li>' .
+        t('If this server config is replacing an existing server config, ' .
+          'there may be user data issues. Users may be marked with the old ' .
+          'database sid value rather than the imported value.') .
+        '</li></ul></p>'
+    ),
+    'import' => array(
+      '#type' => 'textarea',
+      '#rows' => 20,
+    ),
+    'submit' => array(
+      '#type' => 'submit',
+      '#value' => t('Import')
+    ),
+  );
+  return $form;
+}
+/**
+ * Validate a server settings import.
+ */
+function ldapauth_admin_import_form_validate($form, &$form_state) {
+  // Run the import code, which should return a serialized $preset object.
+  $ldapserver =  unserialize(drupal_eval($form_state['values']['import']));
+  if (empty($ldapserver) || !is_object($ldapserver) || empty($ldapserver->name)) {
+    form_set_error('import', t('The submitted preset code could not be interperated.'));
+  }
+  elseif ( isset($ldapserver->sid) ) {
+    form_set_error('import', t('Imported server can not have an sid field value,'));
+  }
+  elseif (ldapauth_server_load_by_name($ldapserver->name)) {
+    form_set_error('import', t('A server with the name, @server already exists.',
+      array('@server' => $ldapserver->name)));
+  }
+  elseif (ldapauth_server_load($ldapserver->machine_name)) {
+    form_set_error('import', t('A server with the machine name, @server already exists.',
+      array('@server' => $ldapserver->machine_name)));
+  }
+  else {
+    // Pass the parsed object on to the submit handler.
+    $form_state['values']['import_parsed'] = $ldapserver;
+  }
+}
+/**
+ * Submit handler to import server settings.
+ */
+function ldapauth_admin_import_form_submit($form, &$form_state) {
+  $server = (array) $form_state['values']['import_parsed'];
+  ldapauth_server_save($server);
+  $form_state['redirect'] = 'admin/settings/ldap/ldapauth';
+}
+/**
+ * Validation for machine name field.
+ */
+function ldapauth_admin_form_validate_field($element, &$form_state) {
+  switch ($element['#name']) {
+    case 'machine_name':
+      if (!preg_match('!^[a-z0-9_]+$!', $element['#value'])) {
+        form_error($element, t('The machine-readable name must contain only lowercase letters, numbers, and underscores.'));
+      }
+      // If user is filling out the feature name for the first time and uses
+      // the name of an existing module throw an error.
+      elseif (empty($element['#default_value']) && ldapauth_server_load($element['#value'])) {
+        form_error($element, t('A server with the machine_name, @name, already exists on your site. Please choose a different name.', array('@name' => $element['#value'])));
+      }
+      break;
+  }
+}
+/**
+ * Page callback function to convert a user from an LDAP authenticated user to
+ * a normal drupal user.
+ *
+ * @param unknown_type $account
+ */
+function ldapauth_user_to_local_user( $account ) {
+  if ( $account->ldap_authentified ) {
+    $data = array(
+      'ldap_dn' => NULL,
+      'ldap_config' => NULL,
+      'ldap_name' => NULL,
+      'ldap_authentified' => NULL,
+    );
+    $userinfo = ldapauth_userinfo_load_by_uid($account->uid);
+    ldapauth_userinfo_delete($userinfo);
+    db_query("DELETE FROM {authmap} WHERE uid = %d AND module = 'ldapauth'", $account->uid);
+    user_save($account, $data);
+    drupal_set_message(t('User, @name, converted from an LDAP authenticated user to a local Drupal user.', array('@name' => $account->name)));
+    }
+  drupal_goto( 'user/' . $account->uid );
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.js b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.js
index dcf122e..f73a829 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.admin.js
@@ -1,4 +1,3 @@
-// $Id: ldapauth.admin.js,v 1.1 2009/07/28 14:03:05 miglius Exp $
 
 /**
  * Behaviours are bound to the Drupal namespace.
@@ -18,5 +17,32 @@ Drupal.behaviors.ldapauth = function(context) {
       }, "json");
     return false;
   });
-}
+  // Server edit/create form machine_name JS
+  $('.ldapauth-name:not(.processed)').each(function() {
+    $('.ldapauth-name')
+      .addClass('processed')
+      .after(' <small class="ldapauth-machine-name-suffix"> </small>');
+    if ($('.ldapauth-machine-name').val() === $('.ldapauth-name').val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_') || $('.ldapauth-machine-name').val() === '') {
+      $('.ldapauth-machine-name').parents('.form-item').hide();
+      $('.ldapauth-name').bind('keyup change', function() {
+        var machine = $(this).val().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/_+/g, '_');
+        if (machine !== '_' && machine !== '') {
+          $('.ldapauth-machine-name').val(machine);
+          $('.ldapauth-machine-name-suffix').empty().append(' Machine name: ' + machine + ' [').append($('<a href="#">'+ Drupal.t('Edit') +'</a>').click(function() {
+            $('.ldapauth-machine-name').parents('.form-item').show();
+            $('.ldapauth-machine-name-suffix').hide();
+            $('.ldapauth-name').unbind('keyup');
+            return false;
+          })).append(']');
+        }
+        else {
+          $('.ldapauth-machine-name').val(machine);
+          $('.ldapauth-machine-name-suffix').text('');
+        }
+      });
+      $('.ldapauth-name').keyup();
+    }
+  });
+  
+};
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.api.php b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.api.php
new file mode 100644
index 0000000..7b113a9
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.api.php
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * @file
+ * LDAPAuth API function documentation
+ */
+
+/**
+ * hook_ldapauth_create
+ *
+ * Ldapauth will invoke this after a new Drupal user has been created from
+ * the LDAP data and saved.
+ *
+ * @param User $account The user object for the new user.
+ */
+function hook_ldapauth_create( $account ) {
+  // Some example code to create an e-mail if ldap didn't provide one
+  if ( $account->name == $account->mail ) {
+    user_save($account, array( 'mail' => $account->name . "@mydomain.com", ));
+  }
+}
+/**
+ * hook_default_ldap_servers
+ *
+ * Called by features revert and rebuild hooks
+ */
+function hook_default_ldap_servers() {
+
+}
+
+/**
+ * Perform alterations of ldap attributes before query is made.
+ *
+ * To avoid excessive attributes in an ldap query, modules should
+ * alter attributes needed based on $op parameter
+ *
+ * See ldapauth_attributes_needed() function.
+ *
+ * @param array $attributes
+ *   array of attributes to be returned from ldap queries
+ * @param enum $op
+ *   context query will be run in. Should be one of the LDAPATUH_SYNC_CONTEXT* constants.
+ * @param mixed $server
+ *   server id (sid) or server object.
+ *
+ */
+function hook_ldap_attributes_needed_alter(&$attributes, $op, $server) {
+  // Sample code to add homedirectory attribute to all standard calls..
+
+  $attributes[] = 'dn';  // DN is minimum attribute for all ops.
+
+  if ( $server ) {
+    $ldap_server = is_object( $server ) ? $server : ldapauth_server_loade($server);
+
+    switch ($op) {
+      case LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER:
+      case LDAPAUTH_SYNC_CONTEXT_INSERT_DRUPAL_USER:
+      case LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER:
+        $attributes[] = 'homedirectory';
+        break;
+    }
+  }
+}
+/**
+ * Called if PUID attribute is defined but a valid LDAP user does not have
+ * this attribute (or is empty).
+ *
+ * This is intended to allow modules to generate a PUID for new users if needed.
+ * Note that LDAPAuth will NOT write this to LDAP.  The implementor will need
+ * to do this.
+ *
+ * @param String $puid The PUID (empty or null)
+ * @param String $dn The user's dn
+ * @param Integer $sid The id of server the user was found on.
+ */
+function hook_ldap_user_puid_alter( &$puid, $name, $dn, $sid) {
+
+}
+/**
+ * Called after LDAP user has been authenticated but before the drupal
+ * user mapping/creation done.
+ *
+ * Allows modules to alter the drupal account name that maps to an ldap account.
+ * For example, adding a prefix or suffix based on server.
+ *
+ * @param String $name The name to alter
+ * @param LDAPInterface $ldap LDAP server interface object bound to server as ldap user.
+ * @param String $dn The DN for the authenticated user
+ */
+function hook_ldap_drupal_user_name_alter( &$name, $ldap, $dn ) {
+  // Some example code to add the server machine name to the drupal name
+  // E.g. LDAP user on server AD1 with sAMAccount=jsmith will map to drupal
+  // user AD1-jsmith.  While LDAP user on server OL1 with uid=jsmith will
+  // map to drupal user OL1-jsmith.
+  $server = ldapauth_server_load($ldap->getOption('sid'));
+  $name = $server->machine_name . "-" . $name;
+}
+/**
+ * Allow other modules (e.g. ldapgroups) to deny ldap user access to
+ * the server.
+ *
+ * Called after ldap user authenticated and mapped to Drupal account (if any)
+ * but before new account creation / existing account updates.
+ *
+ * @param boolean $denied If set to TRUE, the account will be denied.
+ *                        Implementors should not reset to FALSE.
+ * @param LDAPInterface $ldap LDAP server interface object bound to server as ldap user.
+ * @param String $name The ldap user name (from login form)
+ * @param String $dn The DN for the authenticated user
+ * @param Object $account The local drupal account object or FALSE if none found.
+ */
+function hook_ldap_user_deny_alter( &$denied, $ldap, $name, $dn, $account ) {
+  // Some example code to deny if homedirectory attribute not set
+  $ldap = ldapauth_user_lookup_by_dn($ldap, $dn, LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER);
+  if ( ! isset( $ldap['homedirectory'][0] )) { //Note attribute name must be lowercase
+    $denied = TRUE;
+  }
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.features.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.features.inc
new file mode 100644
index 0000000..3c749de
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.features.inc
@@ -0,0 +1,250 @@
+<?php
+/**
+ * @file
+ * Feature related functions.
+ */
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Code for feature component: ldap_servers
+/**
+ * Implementation of hook_features_export_options. [component_hook]
+ *
+ * This hook will alert features of which specific items of this component may
+ * be exported. Using ctools export info here.
+ *
+ * @return array
+ *   A keyed array of items, suitable for use with a FormAPI select or
+ *   checkboxes element.
+ */
+function ldap_servers_features_export_options() {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  $options = array();
+  $servers = ldapauth_server_load_all();
+  foreach ( $servers as $server ) {
+    $options[$server->machine_name] = $server->name;
+  }
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export [component hook]
+ *
+ * This defines the component dependencies and ldap server records to export.
+ *
+ * @param array $data
+ * @param array &$export
+ * @param string $module_name
+ * @return array
+ */
+function ldap_servers_features_export($data, &$export, $module_name = "") {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  $export['dependencies']['ldapauth'] = 'ldapauth';
+  $submodules = ldapauth_submodules('ldap_servers');
+  foreach ( $submodules as $submodule ) {
+    if ( module_exists($submodule ) ) {
+      $export['dependencies'][$submodule] = $submodule;
+    }
+  }
+  foreach ( $data as $component ) {
+    $export['features']['ldap_servers'][$component] = $component;
+  }
+  return array();
+}
+
+/**
+ * Implementation of hook_features_export_render. [component hook]
+ *
+ * Creates code to export ldapauth DB tabel server records.
+ *
+ * @param string $module_name
+ * @param array $data
+ * @param array $export
+ * @return array
+ */
+function ldap_servers_features_export_render($module, $data, $export) {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  $code = array();
+  $code[] = '  $servers = array();';
+  // If this is an override check, export all current servers
+  if ( is_null($export) ) {
+    $servers = ldapauth_server_load_all(TRUE);
+    foreach ($servers as $server) {
+      unset($server->sid);
+      $server = (array) $server;
+      ksort($server);  // Sort because updated tables don't match, new tables
+      $code[] = "  \$servers['{$server['machine_name']}'] = " . features_var_export($server, '  ') . ";";
+    }
+  }
+  else {
+    foreach ($data as $name) {
+      $server = ldapauth_server_load($name);
+      unset($server->sid);
+      $server = (array) $server;
+      ksort($server);
+      $code[] = "  \$servers['{$name}'] = " . features_var_export($server, '  ') . ";";
+    }
+  }
+  $code[] = '  return $servers;';
+  $code = implode("\n", $code);
+  return array('default_ldap_servers' => $code );
+}
+
+/**
+ * Implementation of hook_features_revert(). [component_hook]
+ *
+ * This is called when a feature is "reverted" via the UI.  It will
+ * delete all existing servers not defined by the feature, update
+ * existing servers to match the feature defaults, and add in
+ * any server defined in the feature that don't exist.
+ */
+function ldap_servers_features_revert($module) {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  $default_servers = module_invoke($module, 'default_ldap_servers');
+  $servers = ldapauth_server_load_all(TRUE);
+  $existing_servers = array();
+
+  // Update any existing servers in feature and delete those not in the feature.
+  foreach ( $servers as $server ) {
+    $machine_name = $server->machine_name;
+    $existing_servers[$machine_name] = $machine_name;
+    if ( isset($default_servers[$machine_name]) ) { // Update servers
+      $default_servers[$machine_name]['sid'] = $server->sid;
+      ldapauth_server_save($default_servers[$machine_name], TRUE);
+    }
+    else {  // Delete server
+      ldapauth_server_delete($server, TRUE);
+    }
+  }
+  // Add any servers in the feature that don't exist.
+  foreach ( $default_servers as $server ) {
+    if ( ! isset($existing_servers[$server['machine_name']]) ) { // Add in default server not in DB
+      unset($server['sid']);
+      ldapauth_server_save($server, TRUE);
+    }
+  }
+}
+
+/**
+ * Implementation of hook_features_rebuild(). [component_hook]
+ *
+ * This is called the first time a feature is installed.  It will
+ * add any non-existing servers to the site.
+ */
+function ldap_servers_features_rebuild($module) {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  $servers = module_invoke($module, 'default_ldap_servers');
+  foreach ($servers as $server) {
+    $existing_server = ldapauth_server_load($server['machine_name']);
+    if ( empty($existing_server) ) {
+      ldapauth_server_save($server);
+    }
+  }
+}
+//////////////////////////////////////////////////////////////////////////////
+// Code for feature component: ldap_settings
+/**
+ * Implementation of hook_features_export_options. [component_hook]
+ *
+ * @return array
+ *   A keyed array of items, suitable for use with a FormAPI select or
+ *   checkboxes element.
+ */
+function ldap_settings_features_export_options() {
+  $info = array(
+    'ldapauth_login_process' => t('Authentication') . ': ' . t('Authentication mode'),
+    'ldapauth_login_conflict' => t('Authentication') . ': ' . t('User conflict resolve process'),
+    'ldapauth_forget_passwords' => t('Authentication') . ': ' . t('Store user passwords'),
+    'ldapauth_sync_passwords' => t('Authentication') . ': ' . t('Sync passwords'),
+    'ldapauth_create_users' => t('Authentication') . ': ' . t('Create new users'),
+    'ldapauth_alter_username_field'  => t('Authentication') . ': ' . t('Alter user name field'),
+    'ldapauth_disable_pass_change' => t('Authentication') . ': ' . t('Remove password fields'),
+    'ldapauth_alter_email_field' => t('Authentication') . ': ' . t('Alter email field'),
+  );
+  ldapauth_submodules("ldap_settings", $info);
+  return $info;
+}
+
+/**
+ * Implementation of hook_features_export [component hook]
+ *
+ * @param array $data
+ *   this is the machine name for the component in question
+ * @param array &$export
+ *   array of all components to be exported
+ * @param string $module_name
+ *   The name of the feature module to be generated.
+ * @return array
+ *   The pipe array of further processors that should be called
+ */
+function ldap_settings_features_export($data, &$export, $module_name = "") {
+  $export['dependencies']['ldapauth'] = 'ldapauth';
+  $submodules = ldapauth_submodules('ldap_settings');
+  foreach ( $submodules as $submodule ) {
+    if ( module_exists($submodule ) ) {
+      $export['dependencies'][$submodule] = $submodule;
+    }
+  }
+  return variable_features_export($data, $export, $module_name);
+}
+
+/**
+ * Implementation of hook_features_export_render() [component_hook]
+ * These are not really called since StrongArm is handling this.
+ */
+function ldap_settings_features_export_render($module, $data) {
+  return variable_features_export_render($module, $data);
+}
+
+/**
+ * Implementation of hook_features_revert(). [component_hook]
+ * These are not really called since StrongArm is handling this.
+ */
+function ldap_settings_features_revert($module) {
+  variable_features_revert($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild(). [component_hook]
+ */
+function ldap_settings_features_rebuild($module) {
+  variable_features_rebuild($module);
+}
+
+/**
+ * Get ldap "submodules" info that effects the feature components.
+ *
+ * TODO: should use a hook(s) to get these rather than hardcoding them.
+ *
+ * @param String $component
+ * @param Array info
+ */
+function ldapauth_submodules( $component, &$info=NULL ) {
+  switch ($component) {
+    case 'ldap_servers':
+      if ( $info ) {
+        return; // Hmmm should not be here
+      }
+      return array( 'ldapdata', 'ldapgroups'); // sync has no server settings
+    case 'ldap_settings':
+      if ( $info ) {
+        if ( module_exists('ldapdata') ) {
+          $info['ldapdata_disable_picture_change'] = t('Data') . ': ' . t('Remove picture fields');
+          $info['ldapdata_sync'] = t('Data') . ': ' . t('Synchronize LDAP data with Drupal profiles');
+        }
+        if ( module_exists('ldapsync') ) {
+          $info['ldapsync_time_interval'] = t('Synchronization') . ': ' . t('Sync time interval');
+          $info['ldapsync_existing_only'] = t('Synchronization') . ': ' . t('Sync existing users only');
+          $info['ldapsync_login_conflict'] = t('Synchronization') . ': ' . t('User conflict resolution');
+          $info['ldapsync_missing_users_action'] = t('Synchronization') . ': ' . t('Missing users action');
+          $info['ldapsync_load_user_by'] = t('Synchronization') . ': ' . t('Existing users test');
+          $info['ldapsync_filter'] = t('Synchronization') . ': ' . t('LDAP Sync filter');
+          $info['ldapsync_filter_append_default'] = t('Synchronization') . ': ' . t('Append default filter');
+        }
+        return;
+      }
+      return array( 'ldapdata', 'ldapsync'); // groups has no global settings
+    default:
+      return;
+  }
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.info b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.info
index 2f47e48..9b31756 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.info
@@ -1,4 +1,3 @@
-; $Id: ldapauth.info,v 1.3 2009/02/19 16:56:16 miglius Exp $
 name = Authentication
 description = Implements LDAP authentication.
 package = LDAP integration
@@ -6,9 +5,12 @@ core = 6.x
 php = 5.0
 
 
-; Information added by drupal.org packaging script on 2009-10-27
-version = "6.x-1.0-beta2"
+
+
+
+; Information added by drupal.org packaging script on 2012-06-28
+version = "6.x-1.0-beta3"
 core = "6.x"
 project = "ldap_integration"
-datestamp = "1256654469"
+datestamp = "1340919401"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.install b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.install
index 32972f0..def75f2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapauth.install,v 1.20 2009/10/27 14:29:16 miglius Exp $
 
 /**
  * @file
@@ -14,6 +13,23 @@
  */
 function ldapauth_install() {
   drupal_install_schema('ldapauth');
+  drupal_install_schema('ldapauth_users');
+}
+
+function ldapauth_requirements($phase) {
+
+  $ldap_extension_loaded = extension_loaded('ldap');
+  $t = get_t();
+
+  $requirements = array(
+    'ldapauth' => array(
+      'title' => ($ldap_extension_loaded) ? $t('PHP LDAP extension enabled') : $t('PHP LDAP extension missing or not enabled'),
+      'severity' => ($ldap_extension_loaded) ? REQUIREMENT_OK : REQUIREMENT_ERROR,
+    )
+  );
+
+  return $requirements;
+
 }
 
 /**
@@ -21,6 +37,7 @@ function ldapauth_install() {
  */
 function ldapauth_uninstall() {
   // Remove tables.
+  drupal_uninstall_schema('ldapauth_users');
   drupal_uninstall_schema('ldapauth');
 
   // Remove variables
@@ -30,6 +47,8 @@ function ldapauth_uninstall() {
   variable_del('ldapauth_sync_passwords');
   variable_del('ldapauth_disable_pass_change');
   variable_del('ldapauth_alter_email_field');
+  variable_del('ldapauth_create_users');
+  variable_del('ldapauth_alter_username_field');
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -45,12 +64,18 @@ function ldapauth_schema() {
         'type' => 'serial',
         'size' => 'tiny',
         'not null' => TRUE,
+        'no export' => TRUE,  // Do not export db key
       ),
       'name' => array(
         'type' => 'varchar',
         'length' => 255,
         'not null' => TRUE,
       ),
+      'machine_name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+      ),
       'status' => array(
         'type' => 'int',
         'size' => 'tiny',
@@ -73,7 +98,7 @@ function ldapauth_schema() {
         'not null' => TRUE,
         'default' => 0,
       ),
-      'encrypted' => array(
+      'enc_type' => array(
         'type' => 'int',
         'size' => 'tiny',
         'not null' => TRUE,
@@ -90,6 +115,15 @@ function ldapauth_schema() {
         'type' => 'varchar',
         'length' => 255,
       ),
+      'puid_attr' => array(
+        'type' => 'varchar',
+        'length' => 255,
+      ),
+      'binary_puid' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => '0',
+      ),
       'binddn' => array(
         'type' => 'varchar',
         'length' => 255,
@@ -113,7 +147,79 @@ function ldapauth_schema() {
       ),
     ),
     'primary key' => array('sid'),
-    'unique keys' => array('name' => array('name')),
+    'unique keys' => array(
+      'name' => array('name'),
+      'machine_name' => array('machine_name'),
+    ),
+// CTools export definitions
+    'export' => array(
+      'key' => 'name',
+      'key name' => 'Server Name',
+      'primary key' => 'sid',
+      'identifier' => 'ldapserver', // Exports will be as $ldapserver
+      'default hook' => 'default_ldapauth_ldapserver',  // Function hook name.
+      'can disable' => FALSE,
+      'api' => array(
+        'owner' => 'ldapauth',
+        'api' => 'default_ldapauth_ldapservers',  // Base name for api include files.
+        'minimum_version' => 1,
+        'current_version' => 1,
+      ),
+    ),
+  );
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    $puid_unique_fields = array('puid');
+  }
+  else {
+    $puid_unique_fields = array(array('puid', 255)); // MySQL limit
+  }
+
+  $schema['ldapauth_users'] = array(
+    'description' => 'Stores information about ldap authenticated users.',
+    'fields' => array(
+      'luid' => array(
+        'description' => 'Primary key: ldapauth users id',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'uid' => array(
+        'description' => '{users}.uid',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'sid' => array(
+        'description' => '{ldapauth}.sid used for authentication',
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => TRUE,
+      ),
+      'machine_name' => array(
+        'description' => '{ldapauth}.machine_name for cross server id',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+      ),
+      'dn' => array(
+        'description' => 'LDAP dn user was authenticated with',
+        'type' => 'text',
+        'not null' => TRUE,
+      ),
+      'puid' => array(
+        'description' => 'Persistent and Unique User ID value for this user',
+        'type' => 'text', // Text because dn's can be long
+        'not null' => TRUE,
+      ),
+    ),
+    'primary key' => array('luid'),
+    'unique keys' => array(
+      'uid' => array('uid'),
+      'puid_uniq' => $puid_unique_fields,
+    ),
+    'indexes' => array(
+      'puid_idx' => array(array('puid', 255)),  // MySQL limit
+    ),
   );
   return $schema;
 }
@@ -141,15 +247,15 @@ function ldapauth_update_6000() {
 
 function ldapauth_update_6001() {
   $ret = array();
-  db_add_field($ret, 'ldapauth', 'login_php', array(
+  db_add_field($ret, 'ldapauth', 'login_php',  array(
     'type' => 'text',
     'not null' => FALSE,
   ));
-  db_add_field($ret, 'ldapauth', 'filter_php', array(
+  db_add_field($ret, 'ldapauth', 'filter_php',  array(
     'type' => 'text',
     'not null' => FALSE,
   ));
-  db_add_field($ret, 'ldapauth', 'weight', array(
+  db_add_field($ret, 'ldapauth', 'weight',  array(
     'type' => 'int',
     'not null' => TRUE,
     'default' => 0,
@@ -174,3 +280,127 @@ function ldapauth_update_6003() {
   return $ret;
 }
 
+function ldapauth_update_6004() {
+  $ret = array();
+  //db_query(" CHANGE COLUMN encrypted enc_type TINYINT NOT NULL DEFAULT 0");
+  db_change_field($ret, 'ldapauth', 'encrypted', 'enc_type',  array(
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => 0,
+  ));
+  return $ret;
+}
+// Add the machine_name field and create values for existing rows
+function ldapauth_update_6005() {
+  $ret = array();
+  db_add_field($ret, 'ldapauth', 'machine_name', array(
+    'type' => 'varchar',
+    'length' => 255,
+  ));
+  //Create machine names for existing servers!
+  $mnames = array();
+  $result = db_query('SELECT sid, name from {ldapauth}');
+  while ( $server = db_fetch_object($result)) {
+    $machine_name = drupal_strtolower($server->name);
+    $machine_name = preg_replace('/\s+/', '_', $machine_name);
+    $machine_name = preg_replace('/[^a-z0-9_]/', '', $machine_name);
+    if ( empty($machine_name) ) {
+      $machine_name = "server_" . $server->sid;
+    }
+    for ( $i = 1; isset($mname[$machine_name]); $i++ ) {  // Must be unique
+      $machine_name .= $i;
+    }
+    $mname[$machine_name] = $machine_name;
+    $ret[] = update_sql("UPDATE {ldapauth} SET machine_name = '{$machine_name}' WHERE sid = {$server->sid}");
+  }
+  // in not null after existing rows have a value.
+  db_change_field($ret, 'ldapauth', 'machine_name', 'machine_name', array(
+    'type' => 'varchar',
+    'length' => 255,
+    'not null' => TRUE,
+  ));
+  db_add_unique_key($ret, 'ldapauth', 'machine_name', array('machine_name'));
+
+  return $ret;
+}
+// Add the puid_attr field and create ldapauth_users table
+function ldapauth_update_6006() {
+  $ret = array();
+  if ( ! db_column_exists('ldapauth', 'puid_attr')) {
+    db_add_field($ret, 'ldapauth', 'puid_attr', array(
+      'type' => 'varchar',
+      'length' => 255,
+    ));
+  }
+  if ( ! db_column_exists('ldapauth', 'binary_puid')) {
+    db_add_field($ret, 'ldapauth', 'binary_puid', array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => '0',
+    ));
+  }
+
+  // Initial ldapauth_users definition
+  if (db_table_exists('ldapauth_users')) {  // Update being re-run.
+    return $ret;
+  }
+
+  if ($GLOBALS['db_type'] == 'pgsql') {
+    $puid_unique_fields = array('puid');
+  }
+  else {
+    $puid_unique_fields = array(array('puid', 255)); // MySQL limit
+  }
+
+  $table = array(
+    'description' => 'Stores information about ldap authenticated users.',
+    'fields' => array(
+      'luid' => array(
+        'description' => 'Primary key: ldapauth users id',
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'uid' => array(
+        'description' => '{users}.uid',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'sid' => array(
+        'description' => '{ldapauth}.sid used for authentication',
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => TRUE,
+      ),
+      'machine_name' => array(
+        'description' => '{ldapauth}.machine_name for cross server id',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+      ),
+      'dn' => array(
+        'description' => 'LDAP dn user was authenticated with',
+        'type' => 'text',
+        'not null' => TRUE,
+      ),
+      'puid' => array(
+        'description' => 'Persistent and Unique User ID value for this user',
+        'type' => 'text',
+        'not null' => TRUE,
+      ),
+    ),
+    'primary key' => array('luid'),
+    'unique keys' => array(
+      'uid' => array('uid'),
+      'puid_uniq' => $puid_unique_fields,
+    ),
+    'indexes' => array(
+      'puid_idx' => array(array('puid', 255)),  // MySQL limit
+    ),
+  );
+  db_create_table($ret, 'ldapauth_users', $table);
+  return $ret;
+}
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.module b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.module
index 0dcd4e2..dd5eb2e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.module
@@ -1,11 +1,11 @@
 <?php
-// $Id: ldapauth.module,v 1.46 2009/10/27 14:29:16 miglius Exp $
 
 /**
  * @file
  * ldapauth provides authentication against ldap server.
  */
 
+
 //////////////////////////////////////////////////////////////////////////////
 
 define('LDAPAUTH_AUTH_MIXED',           0);
@@ -17,15 +17,27 @@ define('LDAPAUTH_EMAIL_FIELD_REMOVE',   1);
 define('LDAPAUTH_EMAIL_FIELD_DISABLE',  2);
 define('LDAPAUTH_PROFILE',              'LDAP authentication');
 define('LDAPAUTH_PROFILE_WEIGHT',       4);
-
-define('LDAPAUTH_LOGIN_PROCESS',       variable_get('ldapauth_login_process', LDAPAUTH_AUTH_MIXED));
-define('LDAPAUTH_LOGIN_CONFLICT',      variable_get('ldapauth_login_conflict', LDAPAUTH_CONFLICT_LOG));
-define('LDAPAUTH_FORGET_PASSWORDS',    variable_get('ldapauth_forget_passwords', TRUE));
-define('LDAPAUTH_SYNC_PASSWORDS',      variable_get('ldapauth_sync_passwords', FALSE));
-define('LDAPAUTH_DISABLE_PASS_CHANGE', variable_get('ldapauth_disable_pass_change', FALSE));
-define('LDAPAUTH_ALTER_EMAIL_FIELD',   variable_get('ldapauth_alter_email_field', LDAPAUTH_EMAIL_FIELD_NO));
-define('LDAPAUTH_DEFAULT_USER_ATTR',   variable_get('ldapauth_default_user_attr', 'uid'));
-define('LDAPAUTH_DEFAULT_MAIL_ATTR',   variable_get('ldapauth_default_mail_attr', 'mail'));
+define('LDAPAUTH_USERNAME_FIELD_NO',       0);
+define('LDAPAUTH_USERNAME_FIELD_REMOVE',   1);
+define('LDAPAUTH_USERNAME_FIELD_DISABLE',  2);
+
+// hook_*_alter operations (a.la. ldap in Drupal 7)
+define('LDAPAUTH_SYNC_CONTEXT_INSERT_DRUPAL_USER', 1);
+define('LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER', 2);
+define('LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER', 3);
+define('LDAPAUTH_SYNC_CONTEXT_CRON', 4);
+define('LDAPAUTH_SYNC_CONTEXT_DELETE_DRUPAL_USER', 5);
+define('LDAPAUTH_SYNC_CONTEXT_DISABLE_DRUPAL_USER', 6);
+
+define('LDAPAUTH_LOGIN_PROCESS',        variable_get('ldapauth_login_process', LDAPAUTH_AUTH_MIXED));
+define('LDAPAUTH_LOGIN_CONFLICT',       variable_get('ldapauth_login_conflict', LDAPAUTH_CONFLICT_LOG));
+define('LDAPAUTH_FORGET_PASSWORDS',     variable_get('ldapauth_forget_passwords', TRUE));
+define('LDAPAUTH_SYNC_PASSWORDS',       variable_get('ldapauth_sync_passwords', FALSE));
+define('LDAPAUTH_DISABLE_PASS_CHANGE',  variable_get('ldapauth_disable_pass_change', FALSE));
+define('LDAPAUTH_ALTER_EMAIL_FIELD',    variable_get('ldapauth_alter_email_field', LDAPAUTH_EMAIL_FIELD_NO));
+define('LDAPAUTH_DEFAULT_USER_ATTR',    variable_get('ldapauth_default_user_attr', 'uid'));
+define('LDAPAUTH_DEFAULT_MAIL_ATTR',    variable_get('ldapauth_default_mail_attr', 'mail'));
+define('LDAPAUTH_ALTER_USERNAME_FIELD', variable_get('ldapauth_alter_username_field', LDAPAUTH_USERNAME_FIELD_NO));
 
 //////////////////////////////////////////////////////////////////////////////
 // Core API hooks
@@ -34,7 +46,8 @@ define('LDAPAUTH_DEFAULT_MAIL_ATTR',   variable_get('ldapauth_default_mail_attr'
  * Implements hook_init().
  */
 function ldapauth_init() {
-  require_once(drupal_get_path('module', 'ldapauth') .'/includes/LDAPInterface.inc');
+  module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
 }
 
 /**
@@ -51,7 +64,7 @@ function ldapauth_help($path, $arg) {
  * Implements hook_menu().
  */
 function ldapauth_menu() {
-  return array(
+  $items = array(
     'admin/settings/ldap' => array(
       'title' => 'LDAP',
       'description' => 'Configure LDAP integration settings.',
@@ -65,7 +78,7 @@ function ldapauth_menu() {
       'page callback' => 'drupal_get_form',
       'page arguments' => array('ldapauth_admin_settings'),
       'access arguments' => array('administer ldap modules'),
-     'file' => 'ldapauth.admin.inc',
+      'file' => 'ldapauth.admin.inc',
     ),
     'admin/settings/ldap/ldapauth/configure' => array(
       'title' => 'Settings',
@@ -129,7 +142,37 @@ function ldapauth_menu() {
       'type' => MENU_CALLBACK,
       'file' => 'ldapauth.admin.inc',
     ),
+    'admin/settings/ldap/ldapauth/user/%user/tolocal' => array(
+      'title' => 'Convert LDAP user to local user',
+      'page callback' => 'ldapauth_user_to_local_user',
+      'page arguments' => array(5),
+      'type' => MENU_CALLBACK,
+      'access arguments' => array('administer users'),
+      'file' => 'ldapauth.admin.inc',
+    ),
+
   );
+  // Need ctools to export or import
+  if ( module_exists("ctools") ) {
+    $items['admin/settings/ldap/ldapauth/export/%ldapauth_server'] = array(
+      'title' => 'Export Server Settings',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('ldapauth_admin_export_form', 5),
+      'type' => MENU_CALLBACK,
+      'access arguments' => array('administer ldap modules'),
+      'file' => 'ldapauth.admin.inc',
+    );
+    $items['admin/settings/ldap/ldapauth/import'] = array(
+      'title' => 'Import Server',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('ldapauth_admin_import_form'),
+      'type' => MENU_LOCAL_TASK,
+      'weight' => 3,
+      'access arguments' => array('administer ldap modules'),
+      'file' => 'ldapauth.admin.inc',
+    );
+  }
+  return $items;
 }
 
 /**
@@ -149,7 +192,12 @@ function ldapauth_theme() {
  */
 function ldapauth_user($op, &$edit, &$account, $category = NULL) {
   switch ($op) {
-    case 'update':
+    case 'validate':
+      if (isset($account->ldap_authentified) && LDAPAUTH_ALTER_EMAIL_FIELD == LDAPAUTH_EMAIL_FIELD_REMOVE || LDAPAUTH_ALTER_EMAIL_FIELD == LDAPAUTH_EMAIL_FIELD_DISABLE ) {
+        unset($edit['mail']);
+      }
+      break;
+    case 'update':  // Handle password mods after ldapdata does update in submit
       if ($category == 'account') {
 
         // If authentication is being done in "LDAP only" mode, passwords
@@ -158,23 +206,51 @@ function ldapauth_user($op, &$edit, &$account, $category = NULL) {
         if (isset($account->ldap_authentified) && (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_EXCLUSIVED || !LDAPAUTH_SYNC_PASSWORDS))
           $edit['pass'] = NULL;
       }
-
-      if (LDAPAUTH_ALTER_EMAIL_FIELD == LDAPAUTH_EMAIL_FIELD_REMOVE)
-        unset($edit['mail']);
       break;
     case 'view':
       if (user_access('administer users') && isset($account->ldap_authentified) && $account->ldap_dn) {
-        $row = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $account->ldap_config));
+        $server = ldapauth_server_load( $account->ldap_config );
         $account->content[t(LDAPAUTH_PROFILE)] = array(
-         '#type' => 'user_profile_category',
-         '#title' => t(LDAPAUTH_PROFILE),
-         '#attributes' => array('class' => 'ldapauth-entry'),
-         '#weight' => LDAPAUTH_PROFILE_WEIGHT,
-         'ldap_server' => array('#type' => 'user_profile_item', '#title' => t('LDAP server'), '#value' => l($row->name, 'admin/settings/ldap/ldapauth/edit/'. $row->sid), '#weight' => 0),
-         'ldap_dn' => array('#type' => 'user_profile_item', '#title' => t('LDAP dn'), '#value' => $account->ldap_dn, '#weight' => 1),
+          '#type' => 'user_profile_category',
+          '#title' => t(LDAPAUTH_PROFILE),
+          '#attributes' => array('class' => 'ldapauth-entry'),
+          '#weight' => LDAPAUTH_PROFILE_WEIGHT,
+          'ldap_to_local' => array(
+            '#type' => 'user_profile_item',
+            '#title' => t('Convert User'),
+            '#value' => l(t('Convert from LDAP user to local Drupal user'), 'admin/settings/ldap/ldapauth/user/' . $account->uid . '/tolocal'),
+            '#weight' => -1,
+          ),
+        'ldap_server' => array(
+            '#type' => 'user_profile_item',
+            '#title' => t('LDAP server'),
+            '#value' => l($server->name, 'admin/settings/ldap/ldapauth/edit/'. $server->sid),
+            '#weight' => 0,
+          ),
+          'ldap_dn' => array(
+            '#type' => 'user_profile_item',
+            '#title' => t('LDAP dn'),
+            '#value' => $account->ldap_dn,
+            '#weight' => 1,
+          ),
         );
+        if ( ! empty($server->puid_attr) ) {
+          $user_info = ldapauth_userinfo_load_by_uid($account->uid);
+          $puid = $user_info ? $user_info->puid : t("PUID MISSING!!!!");
+          $account->content[t(LDAPAUTH_PROFILE)]['ldap_puid'] = array(
+           '#type' => 'user_profile_item',
+           '#title' => t('LDAP PUID'),
+         '#value' => $puid,
+         '#weight' => 3,
+          );
+        }
       }
       break;
+    case 'delete':
+      $user_info = ldapauth_userinfo_load_by_uid($account->uid);
+      ldapauth_userinfo_delete($user_info);
+      db_query("DELETE FROM {authmap} WHERE uid = %d AND module = 'ldapauth'", $account->uid);
+      break;
   }
 }
 
@@ -205,14 +281,30 @@ function ldapauth_form_alter(&$form, $form_state, $form_id) {
 
   switch ($form_id) {
     case 'user_login_block':
-      if (LDAPAUTH_DISABLE_PASS_CHANGE)
+    case 'user_login':
+      if (LDAPAUTH_DISABLE_PASS_CHANGE && $user->uid != 1) {
         unset($form['links']);
+        $key = array_search('user_login_final_validate', $form['#validate']);
+        $form['#validate'][$key] = 'ldapauth_user_login_final_validate';
+      }
       break;
     case 'user_profile_form':
       $account = $form["_account"]["#value"];
       if ($user->uid != 1 && isset($account->ldap_authentified)) {
-        if (LDAPAUTH_DISABLE_PASS_CHANGE)
-        unset($form['account']['pass']);
+        switch (LDAPAUTH_ALTER_USERNAME_FIELD) {
+          case LDAPAUTH_USERNAME_FIELD_REMOVE :
+            $form['account']['name']['#type'] = 'hidden';
+            $form['account']['name']['#attributes']['READONLY'] = 'READONLY';
+            break;
+          case LDAPAUTH_USERNAME_FIELD_DISABLE :
+            $form['account']['name']['#attributes']['READONLY'] = 'READONLY';
+            $form['account']['name']['#description'] = t('NOTE: Can only be changed on the LDAP server.') . '<br/>' . $form['account']['name']['#description'];
+            break;
+        }
+
+        if (LDAPAUTH_DISABLE_PASS_CHANGE) {
+          unset($form['account']['pass']);
+        }
 
         switch (LDAPAUTH_ALTER_EMAIL_FIELD) {
           case LDAPAUTH_EMAIL_FIELD_REMOVE :
@@ -234,6 +326,33 @@ function ldapauth_form_alter(&$form, $form_state, $form_id) {
   }
 }
 
+function ldapauth_user_login_final_validate($form_id, &$form_states) {
+  global $user;
+  if (!$user->uid) {
+    form_set_error('name', t('Sorry, unrecognized username or password.'));
+    watchdog('user', 'Login attempt failed for %user.', array('%user' => $form_values['name']));
+  }
+}
+
+function ldapauth_form_user_pass_alter(&$form, &$form_state) {
+  $form['#validate'][] = 'ldapauth_user_pass';
+}
+
+function ldapauth_user_pass($form, &$form_state) {
+
+  if (isset($form_state['values']['account']) && !empty($form_state['values']['account'])) {
+    $account = $form_state['values']['account'];
+
+    if (isset($account->ldap_authentified)) {
+      form_set_error('name', t("This is an LDAP account, to change or retrieve the password, please, contact your LDAP administrator"));
+      unset($form_state['values']['account']);
+    }
+  }
+
+}
+
+
+
 /**
  * Implements hook_cron().
  */
@@ -256,7 +375,7 @@ function ldapauth_exit() {
 // Login process functions
 
 /**
- * Main user validation function.
+ * Main user validation function.  Replaces Drupal default login form validation.
  *
  * If successful, sets the global $user object.
  */
@@ -265,7 +384,7 @@ function ldapauth_login_authenticate_validate($form, &$form_state) {
 }
 
 /**
- * Main user authentication function.
+ * Main user authentication function.  Called by form validator.
  *
  * If successful, sets the global $user object.
  */
@@ -273,7 +392,7 @@ function ldapauth_authenticate($form_values = array()) {
   global $user, $_ldapauth_ldap;
 
   $name = $form_values['name'];
-  $pass = trim($form_values['pass']);
+  $pass = $form_values['pass'];
 
   // The user_login_name_validate() is not called if the user is being authenticated
   // from the httpauth or services modules, therefore call it here.
@@ -283,7 +402,7 @@ function ldapauth_authenticate($form_values = array()) {
   // (Design decision) uid=1 (admin user) must always authenticate to local database
   // this user is critical for all drupal admin and upgrade operations so it is best
   // left with drupal's native authentication.
-  $result = db_query("SELECT uid FROM {users} WHERE name = '%s' AND uid = '1'", $name);
+  $result = db_query("SELECT uid FROM {users} WHERE LOWER(name) = LOWER('%s') AND uid = '1'", $name);
   if ($account = db_fetch_object($result)) {
     user_authenticate($form_values);
     return;
@@ -291,7 +410,7 @@ function ldapauth_authenticate($form_values = array()) {
 
   if (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_MIXED) {
     // Authenticate local users first.
-    $result = db_query("SELECT name, data FROM {users} WHERE name='%s'", $name);
+    $result = db_query("SELECT name, data FROM {users} WHERE LOWER(name) = LOWER('%s')", $name);
     if ($row = db_fetch_array($result)) {
       $data = unserialize($row['data']);
       if (!isset($data['ldap_authentified']) || $data['ldap_authentified'] == 0) {
@@ -305,48 +424,61 @@ function ldapauth_authenticate($form_values = array()) {
     }
   }
 
-  $account = user_load(array('name' => $name, 'status' => 1));
-  if ($account && drupal_is_denied('mail', $account->mail)) {
-    form_set_error('name', t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $account->name)));
+  // Find and Authenticate LDAP user.
+  if (!($dn = _ldapauth_auth($name, $pass))) {
+    return;
+  }
+  // See if there is a matching Drupal user account
+  $error = '';
+  $account = ldapauth_drupal_user_lookup($_ldapauth_ldap, $name, $dn, $error );
+  if ( $account === NULL ) {
+    form_set_error("name", $error);
+    watchdog('ldapauth', $error, NULL, WATCHDOG_ERROR);
   }
 
-  // If there is any validations errors, we do not query LDAP.
-  if (form_get_errors())
+  // Allow other modules to determine if this ldap user can access server.
+  if ( ldapauth_user_denied( $_ldapauth_ldap, $name, $dn, $account ) ) {
     return;
+  }
+
+  // Have account: Do some default login checks
+  if ( $account !== FALSE ) {
+    if ( $account->status != 1 ) {  // User is blocked.
+      return;  // Returns default unknown id/password msg per core
+    }
+    if (drupal_is_denied('mail', $account->mail)) {
+      form_set_error('name', t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $account->name)));
+    }
+    if ( $account->uid == 1 ) {
+      return; // LDAP user matched superuser!! Shouldn't get here but just in case
+    }
+  }
 
-  // Authenticate LDAP user.
-  if (!($dn = _ldapauth_auth($name, $pass)))
+  // If there is any validations errors, we do not query LDAP.
+  if (form_get_errors())
     return;
 
+  // No matching Drupal user, try to create one for this LDAP account.
   if (!$account) {
-    // Register this new user.
-    if ($ldap_user = _ldapauth_user_lookup($name)) {
-      // If mail attribute is missing, set the name as mail.
-      $init = $mail = key_exists(($_ldapauth_ldap->getOption('mail_attr') ? $_ldapauth_ldap->getOption('mail_attr') : LDAPAUTH_DEFAULT_MAIL_ATTR), $ldap_user) ? $ldap_user[$_ldapauth_ldap->getOption('mail_attr')][0] : $name;
-
-      // Check if the e-mail is not denied.
-      if (drupal_is_denied('mail', $mail)) {
-        form_set_error('name', t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $name)));
-        return;
-      }
-
-      // Generate a random drupal password. LDAP password will be used anyways.
-      $pass_new = (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_EXCLUSIVED || !LDAPAUTH_SYNC_PASSWORDS) ? user_password(20) : $pass;
-
-      $userinfo = array('name' => $name, 'pass' => $pass_new, 'mail' => $mail, 'init' => $init, 'status' => 1, 'authname_ldapauth' => $name, 'ldap_authentified' => TRUE, 'ldap_dn' => $ldap_user['dn'], 'ldap_config' => $_ldapauth_ldap->getOption('sid'));
-      $user = user_save('', $userinfo);
-      watchdog('ldapauth', 'New external user %name created from the LDAP server %server.', array('%name' => $name, '%server' => $_ldapauth_ldap->getOption('name')), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
+    $error = '';
+    $account = ldapauth_drupal_user_create($_ldapauth_ldap, $name, $dn, $error);
+    if ( $account === FALSE ) {
+      form_set_error('name', $error);
+      return;
     }
+    $user = $account;
   }
+
+  // Login existing user.
   else {
-    // Login existing user.
     $data = array(
       'ldap_dn' => $dn,
       'ldap_config' => $_ldapauth_ldap->getOption('sid'),
+      'ldap_name' => $name,
     );
 
+    // LDAP and local user conflict.
     if (!isset($account->ldap_authentified)) {
-      // LDAP and local user conflict.
       if (LDAPAUTH_LOGIN_CONFLICT == LDAPAUTH_CONFLICT_LOG) {
         watchdog('ldapauth', 'LDAP user with DN %dn has a naming conflict with a local drupal user %name', array('%dn' => $dn, '%name' => $account->name), WATCHDOG_ERROR);
         drupal_set_message(t('Another user already exists in the system with the same login name. You should contact the system administrator in order to solve this conflict.'), 'error');
@@ -354,15 +486,29 @@ function ldapauth_authenticate($form_values = array()) {
       }
       else {
         $data['ldap_authentified'] = TRUE;
-        $data['authname_ldapauth'] = $name;
+        $drupal_name = ldapauth_drupal_user_name($name, $_ldapauth_ldap, $dn);
+        $data['authname_ldapauth'] = $drupal_name;
       }
     }
 
     // Successfull login.
     // Save the new login data.
-    if (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_MIXED && LDAPAUTH_SYNC_PASSWORDS)
+    if (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_MIXED && LDAPAUTH_SYNC_PASSWORDS) {
       $data['pass'] = $pass;
+    }
     $user = user_save($account, $data);
+
+    // Make sure the ldapauth_users info is current (User object may have been moved).
+    $user_info = ldapauth_userinfo_load_by_uid( $user->uid );
+    if ( empty($user_info) ) {   // Don't have entry, so make one.
+      $user_info = new stdClass();
+      $user_info->uid = $user->uid;
+    }
+    $user_info->sid = $user->ldap_config;
+    $user_info->machine_name = $_ldapauth_ldap->getOption('machine_name');
+    $user_info->dn = $dn;
+    $user_info->puid = $account->ldap_puid; // set in drupal_user_lookup
+    ldapauth_userinfo_save($user_info);
   }
 
   // Save user's authentication data to the session.
@@ -374,7 +520,9 @@ function ldapauth_authenticate($form_values = array()) {
 }
 
 /**
- * Authenticate the user against LDAP server.
+ * Authenticate the user against LDAP servers.
+ *
+ * Note: Related server information is passed via the global _ldapauth_ldap variable.
  *
  * @param $name
  *   A username.
@@ -384,7 +532,8 @@ function ldapauth_authenticate($form_values = array()) {
  * @return
  *  User's LDAP dn success, FALSE otherwise.
  */
-function _ldapauth_auth($name, $pass) {
+function _ldapauth_auth($name, $pass, $create_account = FALSE) {
+
   global $_ldapauth_ldap;
 
   // Don't allow empty passwords because they cause problems on some setups.
@@ -412,6 +561,16 @@ function _ldapauth_auth($name, $pass) {
     if (!$_ldapauth_ldap->connect($ldap['dn'], $pass))
       continue;
 
+    // Register this new user.  See http://drupal.org/node/553482 and http://drupal.org/node/551738
+    if ( $create_account ) {
+      $error = '';
+      $account = ldapauth_drupal_user_create($_ldapauth_ldap, $name, $ldap['dn'], $error);
+      if ( $account === FALSE ) {
+        drupal_set_message( check_plain($error), 'error');
+        return;
+      }
+    }
+
     return $ldap['dn'];
   }
   return FALSE;
@@ -420,6 +579,8 @@ function _ldapauth_auth($name, $pass) {
 /**
  * Queries LDAP server for the user.
  *
+ * Note: Assumes that global $_ldapauth_ldap variable has been initialized.
+ *
  * @param $name
  *   A login name.
  *
@@ -436,14 +597,19 @@ function _ldapauth_user_lookup($name) {
   $login_name = ($code = _ldapauth_ldap_info($_ldapauth_ldap->getOption('sid'), 'login_php')) ? eval($code) : $name;
 
   // If there is no bindn and bindpw - the connect will be an anonymous connect.
-  $_ldapauth_ldap->connect($_ldapauth_ldap->getOption('binddn'), $_ldapauth_ldap->getOption('bindpw'));
+  $success = $_ldapauth_ldap->connect($_ldapauth_ldap->getOption('binddn'), $_ldapauth_ldap->getOption('bindpw'));
+  if (!$success) {
+    watchdog('ldapauth', "Failed to connect to ldap in _ldapauth_user_lookup()", array(), WATCHDOG_ERROR);
+    return;
+  }
   foreach (explode("\r\n", $_ldapauth_ldap->getOption('basedn')) as $base_dn) {
     if (empty($base_dn))
       continue;
 
     $name_attr = $_ldapauth_ldap->getOption('user_attr') ? $_ldapauth_ldap->getOption('user_attr') : LDAPAUTH_DEFAULT_USER_ATTR;
     $filter = $name_attr .'='. $login_name;
-    $result = $_ldapauth_ldap->search($base_dn, $filter);
+    $attrs = ldapauth_attributes_needed(LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER, $_ldapauth_ldap->getOption('sid'));
+    $result = $_ldapauth_ldap->search( $base_dn, $filter, $attrs );
     if (!$result)
       continue;
 
@@ -497,35 +663,36 @@ function _ldapauth_init($sid) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE status = 1 AND sid = %d", $sid));
+  $server = ldapauth_server_load($sid);
 
-  if ($servers[$sid]) {
+  if ( ! empty($server) && $server->status == 1 ) {
     $_ldapauth_ldap = new LDAPInterface();
     $_ldapauth_ldap->setOption('sid', $sid);
-    $_ldapauth_ldap->setOption('name', $servers[$sid]->name);
-    $_ldapauth_ldap->setOption('server', $servers[$sid]->server);
-    $_ldapauth_ldap->setOption('port', $servers[$sid]->port);
-    $_ldapauth_ldap->setOption('tls', $servers[$sid]->tls);
-    $_ldapauth_ldap->setOption('encrypted', $servers[$sid]->encrypted);
-    $_ldapauth_ldap->setOption('basedn', $servers[$sid]->basedn);
-    $_ldapauth_ldap->setOption('user_attr', $servers[$sid]->user_attr);
-    $_ldapauth_ldap->setOption('mail_attr', $servers[$sid]->mail_attr);
-    $_ldapauth_ldap->setOption('binddn', $servers[$sid]->binddn);
-    $_ldapauth_ldap->setOption('bindpw', $servers[$sid]->bindpw);
+    $_ldapauth_ldap->setOption('name', $server->name);
+    $_ldapauth_ldap->setOption('machine_name', $server->machine_name);
+    $_ldapauth_ldap->setOption('server', $server->server);
+    $_ldapauth_ldap->setOption('port', $server->port);
+    $_ldapauth_ldap->setOption('tls', $server->tls);
+    $_ldapauth_ldap->setOption('enc_type', $server->enc_type);
+    $_ldapauth_ldap->setOption('basedn', $server->basedn);
+    $_ldapauth_ldap->setOption('user_attr', $server->user_attr);
+    $_ldapauth_ldap->setOption('mail_attr', $server->mail_attr);
+    $_ldapauth_ldap->setOption('puid_attr', $server->puid_attr);
+    $_ldapauth_ldap->setOption('binary_puid', $server->binary_puid);
+    $_ldapauth_ldap->setOption('binddn', $server->binddn);
+    $_ldapauth_ldap->setOption('bindpw', $server->bindpw);
     return $_ldapauth_ldap;
   }
   return FALSE;
 }
 
 /**
- * Retrieve the saved ldapgroups saved setting.
+ * Retrieve the saved ldapauth PhP code filters.
  *
  * @param $sid
  *   A server ID or user object.
  * @param $req
- *   An attribute name.
+ *   The filter code needed, e.g. login_php or filter_php.
  *
  * @return
  *   The attribute value.
@@ -534,15 +701,81 @@ function _ldapauth_ldap_info($sid, $req) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $sid));
+  $server = ldapauth_server_load($sid);
 
   switch ($req) {
     case 'login_php':
-      return $servers[$sid]->login_php;
+      return $server->login_php;
     case 'filter_php':
-      return $servers[$sid]->filter_php;
+      return $server->filter_php;
   }
 }
+//////////////////////////////////////////////////////////////////////////////
+// CTools/Features functions
 
+/**
+ * Implementation of hook_ctools_plugin_api().
+ *
+ * Tell CTools that we support the default_ldapauth_ldapservers API.
+ */
+function ldapauth_ctools_plugin_api($owner, $api) {
+  if ($owner == 'ldapauth' && $api == 'default_ldapauth_ldapservers') {
+    return array('version' => 1);
+  }
+}
+
+/**
+ * Implementation of hook_features_api().
+ *
+ * Defines the ldap_settings and ldap_servers feature components.
+ * Note:  This defines feature support for ldapauth, ldapdata, ldapgroups and
+ * ldapsync modules since they all build on ldapauth.
+ */
+function ldapauth_features_api() {
+  $info = array(
+    'ldap_servers' => array(
+      'name' => 'LDAP Integration',
+      'default_hook' => 'default_ldap_servers',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED_COMMON,
+      'feature_source' => TRUE,
+      'file' => drupal_get_path('module', 'ldapauth') .'/ldapauth.features.inc',
+    )
+  );
+  if ( module_exists('strongarm') ) {
+    $info['ldap_settings'] = array(
+      'name' => 'LDAP Integration',
+      'default_hook' => 'default_ldap_settings',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED_COMMON,
+      'feature_source' => TRUE,
+      'file' => drupal_get_path('module', 'ldapauth') .'/ldapauth.features.inc',
+    );
+  }
+  return $info;
+}
+/**
+ * Implements hook_ldap_attributes_needed_alter
+ *
+ * @param Array $attributes array of attributes to be returned from ldap queries
+ * @param String $op The operation being performed
+ * @param Mixed $server Server sid or server object
+ */
+function ldapauth_ldap_attributes_needed_alter( &$attributes, $op, $server = NULL) {
+
+  $attributes[] = 'dn';  // DN is minimum attribute for all ops.
+
+  if ( $server ) {
+    $ldap_server = is_object( $server ) ? $server : ldapauth_server_load($server);
+
+    switch ($op) {
+      case LDAPAUTH_SYNC_CONTEXT_INSERT_DRUPAL_USER:
+      case LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER:
+      case LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER:
+        $attributes[] = $ldap_server->user_attr;
+        $attributes[] = $ldap_server->mail_attr;
+        if ( ! empty( $ldap_server->puid_attr) ) {
+          $attributes[] = $ldap_server->puid_attr;
+        }
+        break;
+    }
+  }
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.theme.inc
index e6ddd91..2805501 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapauth.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapauth.theme.inc,v 1.2 2009/10/27 14:29:17 miglius Exp $
 
 /**
  * @file
@@ -18,7 +17,7 @@ function theme_ldapauth_admin_list($form) {
   $header = array(
     '',
     t('Server'),
-    array('data' => t('Operations'), 'colspan' => 3),
+    array('data' => t('Operations'), 'colspan' => 4),
     t('Weight'),
   );
 
@@ -30,6 +29,12 @@ function theme_ldapauth_admin_list($form) {
       $row[] = l(t('edit'), 'admin/settings/ldap/ldapauth/edit/'. $sid);
       $row[] = l($element['status']['#value'] ? t('de-activate') : t('activate'), 'admin/settings/ldap/ldapauth/'. ($element['status']['#value'] ? 'deactivate' : 'activate') .'/'. $sid);
       $row[] = l(t('delete'), 'admin/settings/ldap/ldapauth/delete/'. $sid);
+      if ( module_exists('ctools')) {
+        $row[] = l(t('export'), 'admin/settings/ldap/ldapauth/export/'. $sid);
+      }
+      else {
+        $row[] = ' ';
+      }
       $element['weight']['#attributes']['class'] = "server-weight";
       $row[] = drupal_render($element['weight']);
       $rows[] = array('data' => $row, 'class' => 'draggable'. ($element['status']['#value'] ? ' menu-enabled' : ' menu-disabled'));
@@ -46,4 +51,3 @@ function theme_ldapauth_admin_list($form) {
   $form['list']['table'] = array('#value' => theme('table', $header, $rows, array('id' => 'ldapauth-list-table')));
   return drupal_render($form);
 }
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.admin.inc
index 9125f01..df03862 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapdata.admin.inc,v 1.9 2009/07/28 14:03:05 miglius Exp $
 
 /**
  * @file
@@ -153,9 +152,11 @@ function ldapdata_admin_edit(&$form_state, $op, $sid) {
     );
     $profile_fields = _ldapdata_retrieve_profile_fields();
     $standard_fields = _ldapdata_retrieve_standard_user_fields();
+    $content_profile_fields = _ldapdata_retrieve_content_profile_fields();
     $drupal_fields = $profile_fields + $standard_fields;
     $form['mapping']['mapping_pre'] = array(
-      '#value' => t('<div class="form-item"><label>Specify mappings below if you selected the second or third option. </label><table><thead><tr><th> Drupal field</th><th>LDAP attribute</th></tr></thead><tbody>'),
+      '#value' => '<div class="form-item"><label>' . t('Specify mappings below if you selected the second or third option.')
+      . ' </label><table><thead><tr><th> ' . t('Drupal field') . '</th><th>' . t('LDAP attribute') . '</th></tr></thead><tbody>',
     );
     $ldap_drupal_reverse_mappings = _ldapdata_reverse_mappings($sid);
     foreach ($drupal_fields as $key => $field) {
@@ -169,6 +170,24 @@ function ldapdata_admin_edit(&$form_state, $op, $sid) {
         '#suffix' => '</td>',
       );
     }
+    // Content profile mapping
+    if ( $content_profile_fields ) {
+      $form['mapping']['mapping_cp'] = array(
+        '#value' => t('<div class="form-item"><label>Specify mappings below if you selected the second or third option. </label><table><thead><tr><th> Content Profile field</th><th>LDAP attribute</th></tr></thead><tbody>'),
+      );
+    }
+    foreach ($content_profile_fields as $key => $field) {
+      $field_tmp = "ldap_amap-". $key;
+      $_prefix = "<tr><td><label for=\"edit[$field_tmp]\">$field</label></td><td>";
+      $form['mapping'][$field_tmp] = array(
+        '#type' => 'textfield',
+        '#default_value' => isset($ldapdata_mappings[$field_tmp]) ? $ldapdata_mappings[$field_tmp] : NULL,
+        '#size' => '20',
+        '#prefix' => $_prefix,
+        '#suffix' => '</td>',
+      );
+    }
+
     $form['mapping']['mapping_post'] = array(
       '#value' => '</tbody></table></div>',
     );
@@ -418,4 +437,3 @@ function _ldapdata_ajax_test($sid) {
   drupal_json($_ldapdata_ldap->connect($binddn, $bindpw) ? array('status' => 1, 'message' => t('Authentication with the LDAP server succeeded.')) : array('status' => 0, 'message' => t('Authentication with the LDAP server failed.')));
   exit;
 }
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.info b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.info
index 7b0b146..1d7ccd1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.info
@@ -1,4 +1,3 @@
-; $Id: ldapdata.info,v 1.3 2009/02/19 16:56:16 miglius Exp $
 name = Data
 description = Implements LDAP data to Drupal profiles synchronization.
 package = LDAP integration
@@ -6,9 +5,9 @@ dependencies[] = ldapauth
 core = 6.x
 
 
-; Information added by drupal.org packaging script on 2009-10-27
-version = "6.x-1.0-beta2"
+; Information added by drupal.org packaging script on 2012-06-28
+version = "6.x-1.0-beta3"
 core = "6.x"
 project = "ldap_integration"
-datestamp = "1256654469"
+datestamp = "1340919401"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.install b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.install
index 2e23859..9bb78db 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapdata.install,v 1.9 2009/07/20 19:35:40 miglius Exp $
 
 /**
  * @file
@@ -65,6 +64,7 @@ function ldapdata_uninstall() {
 
   // Remove variables
   variable_del('ldapdata_sync');
+  variable_del('ldapauth_disable_picture_change');
 
   return $ret;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.module b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.module
index 7a716b9..c2d3df0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapdata.module,v 1.31 2009/10/27 14:29:17 miglius Exp $
 
 /**
  * @file
@@ -8,11 +7,13 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
+// LDAPDATA_SYNC: 0 = user login; 1 = Page load; 2 = Each user load.
 define('LDAPDATA_SYNC',            variable_get('ldapdata_sync', 2));
 define('LDAPDATA_PROFILE',        'LDAP attributes');
 define('LDAPDATA_PROFILE_WEIGHT', 5);
 define('LDAPDATA_USER_TAB',       'LDAP entry');
 define('LDAPDATA_USER_DATA',      'ldapdata_user_data');
+define('LDAPDATA_DISABLE_PICTURE_CHANGE', variable_get('ldapdata_disable_picture_change', FALSE));
 
 // Changed the values to be more unix-line. 6 = rw, 4 = ro, 2 = nothing.
 define('LDAPDATA_MAP_ATTRIBUTES',           6);
@@ -26,7 +27,8 @@ define('LDAPDATA_MAP_NOTHING',              2);
  * Implements hook_init()
  */
 function ldapdata_init() {
-  require_once(drupal_get_path('module', 'ldapdata') .'/includes/LDAPInterface.inc');
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
 }
 
 /**
@@ -89,6 +91,11 @@ function ldapdata_menu() {
  * Implements hook_user().
  */
 function ldapdata_user($op, &$edit, &$account, $category = NULL) {
+
+  // Only care about ldap authenticated users.
+  if (!isset($account->ldap_authentified))
+    return;
+
   switch ($op) {
     case 'categories':
       return _ldapdata_user_categories();
@@ -162,7 +169,7 @@ function _ldapdata_user_form(&$user, $category) {
     return;
   }
 
-  $entry = $_ldapdata_ldap->retrieveAttributes($user->ldap_dn);
+  $entry = ldapauth_user_lookup_by_dn( $_ldapdata_ldap, $user->ldap_dn, LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER );
 
   $form['ldap_attributes'] = array(
     '#title' => t(LDAPDATA_PROFILE),
@@ -184,16 +191,24 @@ function _ldapdata_user_form(&$user, $category) {
 
 /**
  * Implements hook_user() load operation.
+ *
+ * @param Object $account User being loaded
+ * @param boolean $sync If true, force the user to be synced.
+ * @param Array $newentry ldapsync generated users to update info from.
  */
-function _ldapdata_user_load(&$account, $sync = FALSE) {
+function _ldapdata_user_load(&$account, $sync = FALSE, $newentry = NULL) {
+
   global $user, $_ldapdata_ldap;
 
   // Setup the global $_ldapdata_ldap object.
+  // NOTE: Other functions assume this function will always initialize this
   if (!_ldapdata_init($account))
     return;
 
-  if (!$sync && (LDAPDATA_SYNC < 1 || LDAPDATA_SYNC < 2 && $user->uid != $account->uid))
+// sync not forced and sync on login set or sync on page load set and it's not the current user.
+  if (!$sync && (LDAPDATA_SYNC == 0 || LDAPDATA_SYNC == 1 && $user->uid != $account->uid)) {
     return;
+  }
 
   static $accounts_synced = array();
   if (isset($accounts_synced[$account->uid])) {
@@ -202,30 +217,82 @@ function _ldapdata_user_load(&$account, $sync = FALSE) {
 
   // See http://drupal.org/node/91786 about user_node().
   // User can be edited by the user or by other authorized users.
-  $authmap = user_get_authmaps($account->name);
-  if (!isset($authmap['ldapauth']) || (_ldapdata_ldap_info($account, 'mapping_type') == LDAPDATA_MAP_NOTHING)) {
+  if (!isset($account->ldap_dn) || (_ldapdata_ldap_info($account, 'mapping_type') == LDAPDATA_MAP_NOTHING)) {
     return;
   }
 
   $accounts_synced[$account->uid] = TRUE;
-  $bind_info = _ldapdata_edition($account);
-  if (!$_ldapdata_ldap->connect($bind_info['dn'], $bind_info['pass'])) {
-    watchdog('ldapdata', "User load: user %name's data could not be read in the LDAP directory", array('%name' => $account->name), WATCHDOG_WARNING);
-    return;
+  if (is_null($newentry)) {
+    $bind_info = _ldapdata_edition($account);
+    if (!$_ldapdata_ldap->connect($bind_info['dn'], $bind_info['pass'])) {
+      watchdog('ldapdata', "User load: user %name's data could not be read in the LDAP directory", array('%name' => $account->name), WATCHDOG_WARNING);
+      return;
+    }
+    $entry = ldapauth_user_lookup_by_dn( $_ldapdata_ldap, $account->ldap_dn, LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER );
+  }
+  else {
+
+    $i=0;
+    foreach ($newentry as $users => $info) {
+      if ($account->ldap_dn == $info['dn']) {
+        $entry = $info['attribs'];
+      }
+      $i++;
+    }
+
   }
 
-  if ($entry = $_ldapdata_ldap->retrieveAttributes($account->ldap_dn)) {
+  if (isset($entry)) {
+
     $ldap_drupal_reverse_mappings = _ldapdata_reverse_mappings($account->ldap_config);
 
     // Retrieve profile fields list.
+    $content_profile_fields = _ldapdata_retrieve_content_profile_fields();
     $profile_fields = _ldapdata_retrieve_profile_fields();
 
+    // Determine which profile fields are dates
+    if ( ! empty($profile_fields) ) {
+      $placeholders = implode(',', array_fill(0, count($profile_fields), "'%s'"));
+      $result = db_query("SELECT name, options from {profile_fields} WHERE name IN ($placeholders) AND type = 'date'", $profile_fields);
+      $date_fields = array();
+      while ($row = db_fetch_object($result)) {
+        array_push($date_fields, $row->name);
+      }
+    }
+
+    // If needed, get the content profile nodes
+    $content_profile_nodes = array();
+    if ( ! empty($content_profile_fields) ) {
+      $cp_types = content_profile_get_types('types');
+      foreach ($cp_types as $type_obj) {
+        $type = $type_obj->type;
+        $profile = content_profile_load($type, $account->uid, '', TRUE);
+        if (!$profile) {
+          $profile = new stdClass();
+          $profile->type = $type;
+          $profile->title = (isset($account->name) ? $account->name : '');
+          $profile->uid = $account->uid;
+          node_save($profile); // Create node to get CCK fields
+        }
+        $content_profile_nodes[] = $profile;
+      }
+    }
+    $updated_nodes = array();
+
     $drupal_fields = array();
     foreach (_ldapdata_reverse_mappings($account->ldap_config) as $drupal_field => $ldap_attr) {
       $value = isset($entry[strtolower($ldap_attr)]) ? $entry[strtolower($ldap_attr)][0] : '';
 
       // Is it a profile field?
-      if (is_numeric($drupal_field)) {
+      if (! empty($profile_fields) && is_numeric($drupal_field)) {
+        if (in_array($profile_fields[$drupal_field], $date_fields)) {
+          $value = serialize( array(
+            "month" => (int)substr($value, 4, 2),
+            "day" => (int)substr($value, 6, 2),
+            "year" => (int)substr($value, 0, 4)
+          ));
+        }
+
         if ($profile_field = isset($profile_fields[$drupal_field]) ? $profile_fields[$drupal_field] : NULL) {
           if ($row = db_fetch_array(db_query("SELECT value FROM {profile_values} WHERE fid = '%d' AND uid = '%d'", $drupal_field, $account->uid))) {
             if ($row['value'] != $value)
@@ -237,17 +304,136 @@ function _ldapdata_user_load(&$account, $sync = FALSE) {
           $account->$drupal_field = $value;
         }
       }
+      // Is it a content profile field?
+      // TODO: Handle multiple value fields
+      elseif ( isset($content_profile_fields[$drupal_field]) ) {
+        // Find a matching profile node.
+        foreach ($content_profile_nodes as $profile_key => $profile) {
+          $node_updated = FALSE;
+          if ( isset($profile->{$drupal_field}) ) {
+            // Determine what kind of field we are dealing with
+            $field_lookup = content_fields($drupal_field);
+            $field_type = $field_lookup['type'];
+            switch ($field_type) {
+              case 'email':
+                if ( $profile->{$drupal_field}[0]['email'] != $value ) {
+                  $profile->{$drupal_field}[0]['email'] = $value;
+                  $node_updated = TRUE;
+                }
+                break;
+              case 'content_taxonomy':
+              // Check to see if there are any terms that match
+                if ($term = taxonomy_get_term_by_name($value)) {
+                  // If so, check to make sure they match the vocabulary
+                  if ($term[0]->vid == $field_lookup['vid']) {
+                    if ( $profile->{$drupal_field}[0]['value'] != $term[0]->tid ) {
+                      $profile->{$drupal_field}[0]['value'] = $term[0]->tid;
+                      $node_updated = TRUE;
+                    }
+                  }
+                  else {
+                    $newtid = _ldapdata_add_taxonomy_term($value, $field_lookup['vid']);
+                    $profile->{$drupal_field}[0]['value'] = $newtid;
+                    $node_updated = TRUE;
+                  }
+                }
+                else {
+                  $newtid = _ldapdata_add_taxonomy_term($value, $field_lookup['vid']);
+                  $profile->{$drupal_field}[0]['value'] = $newtid;
+                  $node_updated = TRUE;
+                }
+                break;
+              default:
+                if ( $profile->{$drupal_field}[0]['value'] != $value ) {
+                  $profile->{$drupal_field}[0]['value'] = $value;
+                  $node_updated = TRUE;
+                }
+            }
+            // Only save node if something changed. Prevents node modified errors.
+            if ( $node_updated ) {
+              $updated_nodes[$profile_key] = $profile;
+            }
+          }
+        }
+      }
+
       // Then it might be a Drupal field.
-      else if (isset($account->$drupal_field) && !in_array($drupal_field, array('pass'))) {
+      elseif (isset($account->$drupal_field) && !in_array($drupal_field, array('pass'))) {
         $drupal_fields = array_merge($drupal_fields, array($drupal_field => $value));
       }
     }
-    if (!empty($drupal_fields))
+    if (!empty($drupal_fields)) {
+      if ( !empty($drupal_fields['picture']) ) {
+        $fname = file_directory_path() . "/" .
+          variable_get('user_picture_path', 'pictures') .
+          "/picture-" . $account->uid . ".jpg";
+        if ( ($fhandle = fopen($fname, 'w'))) {
+          fwrite($fhandle, $drupal_fields['picture']);
+          fclose($fhandle);
+          $drupal_fields['picture']= $fname;
+        }
+        else {
+          watchdog('ldapdata', "Could not open user picture file for writing.  File=%file!", array('%file' => $fname), WATCHDOG_WARNING);
+          unset($drupal_fields['picture']);
+        }
+      }
       $account = user_save($account, $drupal_fields);
+    }
+    if (!empty($updated_nodes)) {
+      foreach ( $updated_nodes as $profile ) {
+        // Flag this profile node as already synched.
+        $profile->ldap_synched = TRUE;
+        node_save($profile);
+        node_load($profile->nid, $profile->vid, TRUE); // Force cache refresh
+      }
+    }
   }
   $_ldapdata_ldap->disconnect();
 }
 
+ /**
+ * Retrieve content profile fields.
+ *
+ * @return
+ *   An array with a field_name key and descriptive value.
+ */
+function _ldapdata_retrieve_content_profile_fields() {
+  $fields = array();
+  if (module_exists('content_profile')) {
+    $cp_types = content_profile_get_types('types');
+    foreach ($cp_types as $type_obj) {
+      $type = $type_obj->type;
+      $all_fields = content_fields(NULL, $type);
+      if ($all_fields) {
+        foreach ($all_fields as $field_name => $field_attributes) {
+          // If it's not the type we are looking for, then skip the field.
+          if ($field_attributes['type_name'] != $type) {
+            continue;
+          }
+          $fields[$field_name] = "{$type}->{$field_name}";
+        }
+      }
+    }
+
+  }
+  return $fields;
+}
+
+/**
+ * Adds a new taxonomy term
+ */
+function _ldapdata_add_taxonomy_term($name, $vid, $description = '', $weight = 0) {
+  $form_values = array();
+  $form_values['name'] = $name;
+  $form_values['description'] = $description;
+  $form_values['vid'] = $vid;
+  $form_values['weight'] = $weight;
+  taxonomy_save_term($form_values);
+
+  return $form_values['tid'];
+}
+
+
 /**
  * Implements hook_user() login operation.
  */
@@ -265,12 +451,12 @@ function _ldapdata_user_login(&$user) {
 function _ldapdata_user_submit(&$edit, &$user, $category) {
   global $_ldapdata_ldap;
 
-  // Setup the global $_ldapdata_ldap object.
-  if (!_ldapdata_init($user))
+  // Only care about ldap authenticated users.
+  if (!isset($user->ldap_authentified))
     return;
 
-  $authmap = user_get_authmaps($user->name);
-  if (!isset($authmap['ldapauth']))
+  // Setup the global $_ldapdata_ldap object.
+  if (!_ldapdata_init($user))
     return;
 
   // Three cases here:
@@ -286,7 +472,7 @@ function _ldapdata_user_submit(&$edit, &$user, $category) {
     // Case 1:
     $writeout = array_merge($writeout, _ldapdata_user_update_ldap_attributes($edit, $user));
   }
-  else if ($category == 'account') {
+  elseif ($category == 'account') {
     // Cases 2 && 3:
     $writeout = array_merge($writeout, _ldapdata_user_update_drupal_account($edit, $user));
   }
@@ -312,12 +498,17 @@ function _ldapdata_user_submit(&$edit, &$user, $category) {
 function _ldapdata_user_view(&$user) {
   global $_ldapdata_ldap;
 
-  // Setup the global $_ldapdata_ldap object.
-  if (!_ldapdata_init($user))
+  // Only care about ldap authenticated users.
+  if (!isset($user->ldap_authentified))
+    return;
+
+  $ldapdata_attrs = _ldapdata_ldap_info($user, 'ldapdata_attrs');
+  if ( empty($ldapdata_attrs)) {  // No LDAP attributes defined, we're done.
     return;
+  }
 
-  $authmap = user_get_authmaps($user->name);
-  if (!isset($authmap['ldapauth']))
+  // Setup the global $_ldapdata_ldap object.
+  if (!_ldapdata_init($user))
     return;
 
   $bind_info = _ldapdata_edition($user);
@@ -326,11 +517,11 @@ function _ldapdata_user_view(&$user) {
     return;
   }
 
-  $entry = $_ldapdata_ldap->retrieveAttributes($user->ldap_dn);
+  $entry = ldapauth_user_lookup_by_dn( $_ldapdata_ldap, $user->ldap_dn, LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER );
   $allowed_attrs = _ldapdata_ldap_info($user, 'ldapdata_roattrs');
   $items = array();
   $i = 0;
-  foreach (_ldapdata_ldap_info($user, 'ldapdata_attrs') as $attr_name => $attr_info) {
+  foreach ($ldapdata_attrs as $attr_name => $attr_info) {
     if (in_array($attr_name, $allowed_attrs)) {
       $item = array(
         '#type' => 'user_profile_item',
@@ -401,8 +592,25 @@ function _ldapdata_user_update_drupal_account(&$edit, &$user) {
       if ($ldap_attr = isset($d2l_map[$key]) ? $d2l_map[$key] : NULL) {
         if ($key == 'pass') {
           if ($value) {
-            $pw = $_ldapdata_ldap->getOption('encrypted') ? '{md5}'. base64_encode(pack('H*', md5($value))) : $value;
-            $writeout[$ldap_attr] = $pw;
+            $writeout[$ldap_attr] = encode_password($value);
+          }
+        }
+        elseif ($key == 'mail') {
+          if (LDAPAUTH_ALTER_EMAIL_FIELD != LDAPAUTH_EMAIL_FIELD_REMOVE) {
+            $writeout[$ldap_attr] = $value;
+          }
+        }
+        elseif ($key == 'picture') {
+          if ($value) {
+            if (($fhandle = fopen($value, 'r'))) {
+              $writeout[$ldap_attr] = fread($fhandle, filesize($value));
+            }
+            else {
+              watchdog('ldapdata', "Could not open user picture file for reading.  File=%file", array('%file' => $value), WATCHDOG_WARNING);
+            }
+          }
+          else {
+            $writeout[$ldap_attr] = '';
           }
         }
         else {
@@ -433,11 +641,25 @@ function _ldapdata_user_update_profile(&$edit, &$user) {
 
   // Retrieve profile fields list.
   $profile_fields = _ldapdata_retrieve_profile_fields();
+  if ( empty($profile_fields) ) {
+    return array();
+  }
+  // Determine which profile fields are dates
+  $placeholders = implode(',', array_fill(0, count($profile_fields), "'%s'"));
+  $result = db_query("SELECT name, options from {profile_fields} WHERE name IN ($placeholders) AND type = 'date'", $profile_fields);
+  $date_fields = array();
+  while ($row = db_fetch_object($result)) {
+    array_push($date_fields, $row->name);
+  }
 
   // Compare against $edit list.
   $writeout = array();
   foreach ($profile_fields as $key => $field) {
-    if (isset($edit[$field]) && isset($ldap_drupal_reverse_mappings[$key])) {
+    if (isset($edit[$field]) && isset($ldap_drupal_reverse_mappings[$key]) && in_array($field, $date_fields)) {
+      // LDAP GeneralizedTime/Integer Format -> YYYYMMDD
+      $writeout[$ldap_drupal_reverse_mappings[$key]] = sprintf('%04d%02d%02d', $edit[$field]['year'], $edit[$field]['month'], $edit[$field]['day']);
+    }
+    elseif (isset($edit[$field]) && isset($ldap_drupal_reverse_mappings[$key])) {
       $writeout[$ldap_drupal_reverse_mappings[$key]] = $edit[$field];
     }
   }
@@ -460,11 +682,11 @@ function _ldapdata_attribute_form($value, $info) {
     case 'textfield':
       $form = array(
         '#type' => 'textfield',
-        '#title' => array_shift($info),
+        '#title' => check_plain(array_shift($info)),
         '#default_value' => $value,
         '#size' => array_shift($info),
         '#maxlength' => array_shift($info),
-        '#description' => array_shift($info),
+        '#description' => check_plain(array_shift($info)),
         '#attributes' => array_shift($info),
         '#required' => array_shift($info),
       );
@@ -472,11 +694,11 @@ function _ldapdata_attribute_form($value, $info) {
     case 'password':
       $form = array(
         '#type' => 'password',
-        '#title' => array_shift($info),
+        '#title' => check_plain(array_shift($info)),
         '#default_value' => $value,
         '#size' => array_shift($info),
         '#maxlength' => array_shift($info),
-        '#description' => array_shift($info),
+        '#description' => check_plain(array_shift($info)),
       );
       break;
   }
@@ -525,6 +747,9 @@ function _ldapdata_retrieve_standard_user_fields() {
     'pass' => 'pass',
     'signature' => 'signature',
   );
+  if ( variable_get('user_pictures', '0') ) {
+    $fields['picture'] =  'picture';
+  }
   return $fields;
 }
 
@@ -556,11 +781,11 @@ function _ldapdata_edition($sid) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  $row = db_fetch_object(db_query("SELECT ldapdata_binddn, ldapdata_bindpw FROM {ldapauth} WHERE sid = %d", $sid));
+  $server = ldapauth_server_load($sid);
 
   return array(
-    'dn' => $row->ldapdata_binddn ? $row->ldapdata_binddn : (isset($_SESSION['ldap_login']['dn']) ? $_SESSION['ldap_login']['dn'] : ''),
-    'pass' => $row->ldapdata_bindpw ? $row->ldapdata_bindpw : (isset($_SESSION['ldap_login']['pass']) ? $_SESSION['ldap_login']['pass'] : ''),
+    'dn' => $server->ldapdata_binddn ? $server->ldapdata_binddn : (isset($_SESSION['ldap_login']['dn']) ? $_SESSION['ldap_login']['dn'] : ''),
+    'pass' => $server->ldapdata_bindpw ? $server->ldapdata_bindpw : (isset($_SESSION['ldap_login']['pass']) ? $_SESSION['ldap_login']['pass'] : ''),
   );
 }
 
@@ -596,23 +821,30 @@ function _ldapdata_init($sid) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE status = 1 AND sid = %d", $sid));
+  // Other modules can invoke user load from hook_init() before ldapdata.
+  // so get include files if we need them.
+  if ( ! function_exists("ldapauth_server_load") ) {
+    module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+    module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
+  }
 
-  if ($servers[$sid]) {
-    // Other modules can invoke user load from hook_init() before ldapdata.
-    require_once(drupal_get_path('module', 'ldapdata') .'/includes/LDAPInterface.inc');
+  $server = ldapauth_server_load($sid);
+
+  if (! empty($server) ) {
 
     $_ldapdata_ldap = new LDAPInterface();
     $_ldapdata_ldap->setOption('sid', $sid);
-    $_ldapdata_ldap->setOption('name', $servers[$sid]->name);
-    $_ldapdata_ldap->setOption('server', $servers[$sid]->server);
-    $_ldapdata_ldap->setOption('port', $servers[$sid]->port);
-    $_ldapdata_ldap->setOption('tls', $servers[$sid]->tls);
-    $_ldapdata_ldap->setOption('encrypted', $servers[$sid]->encrypted);
-    $_ldapdata_ldap->setOption('basedn', $servers[$sid]->basedn);
-    $_ldapdata_ldap->setOption('user_attr', $servers[$sid]->user_attr);
+    $_ldapdata_ldap->setOption('name', $server->name);
+    $_ldapdata_ldap->setOption('machine_name', $server->machine_name);
+    $_ldapdata_ldap->setOption('server', $server->server);
+    $_ldapdata_ldap->setOption('port', $server->port);
+    $_ldapdata_ldap->setOption('tls', $server->tls);
+    $_ldapdata_ldap->setOption('enc_type', $server->enc_type);
+    $_ldapdata_ldap->setOption('basedn', $server->basedn);
+    $_ldapdata_ldap->setOption('user_attr', $server->user_attr);
+    $_ldapdata_ldap->setOption('mail_attr', $server->mail_attr);
+    $_ldapdata_ldap->setOption('puid_attr', $server->puid_attr);
+    $_ldapdata_ldap->setOption('binary_puid', $server->binary_puid);
     $_ldapdata_ldap->setOption('attr_filter', '_ldapdata_attribute_filter');
     return $_ldapdata_ldap;
   }
@@ -634,28 +866,335 @@ function _ldapdata_ldap_info($sid, $req) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $sid));
-
+  $server = ldapauth_server_load($sid);
   switch ($req) {
     case 'mapping_type':
-      $ldapdata_mappings = !empty($servers[$sid]->ldapdata_mappings) ? unserialize($servers[$sid]->ldapdata_mappings) : array();
+      $ldapdata_mappings = !empty($server->ldapdata_mappings) ? unserialize($server->ldapdata_mappings) : array();
       return isset($ldapdata_mappings['access']) ? $ldapdata_mappings['access'] : LDAPDATA_MAP_NOTHING;
     case 'ldapdata_mappings':
-      return !empty($servers[$sid]->ldapdata_mappings) ? unserialize($servers[$sid]->ldapdata_mappings) : array();
+      return !empty($server->ldapdata_mappings) ? unserialize($server->ldapdata_mappings) : array();
     case 'ldapdata_roattrs':
-      return !empty($servers[$sid]->ldapdata_roattrs) ? unserialize($servers[$sid]->ldapdata_roattrs) : array();
+      return !empty($server->ldapdata_roattrs) ? unserialize($server->ldapdata_roattrs) : array();
     case 'ldapdata_rwattrs':
-      return !empty($servers[$sid]->ldapdata_rwattrs) ? unserialize($servers[$sid]->ldapdata_rwattrs) : array();
+      return !empty($server->ldapdata_rwattrs) ? unserialize($server->ldapdata_rwattrs) : array();
     case 'ldapdata_binddn':
-      return $servers[$sid]->ldapdata_binddn;
+      return $server->ldapdata_binddn;
     case 'ldapdata_bindpw':
-      return $servers[$sid]->ldapdata_bindpw;
+      return $server->ldapdata_bindpw;
     case 'ldapdata_attrs':
-      return !empty($servers[$sid]->ldapdata_attrs) ? unserialize($servers[$sid]->ldapdata_attrs) : array();
+      return !empty($server->ldapdata_attrs) ? unserialize($server->ldapdata_attrs) : array();
     case 'ldapdata_filter_php':
-      return $servers[$sid]->ldapdata_filter_php;
+      return $server->ldapdata_filter_php;
+  }
+}
+
+/**
+ * Return a random salt of a given length for crypt-style passwords
+ *
+ *  *Most of the code here is from phpLDAPadmin.
+ *
+ */
+function random_salt( $length ) {
+  $possible = '0123456789'.
+              'abcdefghijklmnopqrstuvwxyz'.
+              'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
+              './';
+  $str = "";
+
+  mt_srand((double)microtime() * 1000000);
+  while ( strlen( $str ) < $length )
+    $str .= substr( $possible, ( rand() % strlen( $possible ) ), 1 );
+
+  return $str;
+}
+
+/**
+ * Return an encrypted password
+ *
+ *  *Most of the code here is from phpLDAPadmin.
+ *
+ */
+function encode_password($clearTxt) {
+  global $_ldapdata_ldap;
+
+  switch ($_ldapdata_ldap->getOption('enc_type')) {
+    case 1: // MD5
+      $cipherTxt = '{MD5}' . base64_encode( pack( 'H*' , md5( $clearTxt) ) );
+      break;
+
+    case 2: // Crypt
+      $cipherTxt = '{CRYPT}' . crypt($clearTxt, substr($clearTxt, 0, 2));
+      break;
+
+    case 3: // Salted Crypt
+      $cipherTxt = '{CRYPT}' . crypt($clearTxt, random_salt(2));
+      break;
+
+    case 4: // Extended DES
+      $cipherTxt = '{CRYPT}' . crypt( $clearTxt, '_' . random_salt(8) );
+      break;
+
+    case 5: // MD5Crypt
+      $cipherTxt = '{CRYPT}' . crypt( $clearTxt , '$1$' . random_salt(9) );
+      break;
+
+    case 6: // Blowfish
+      $cipherTxt = '{CRYPT}' . crypt( $clearTxt , '$2a$12$' . random_salt(13) );
+      break;
+
+    case 7: // Salted MD5
+      mt_srand( (double) microtime() * 1000000 );
+      $salt = mhash_keygen_s2k( MHASH_MD5, $clearTxt, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 );
+      $cipherTxt = "{SMD5}" . base64_encode( mhash( MHASH_MD5, $clearTxt . $salt ) . $salt );
+      break;
+
+    case 8: // SHA
+      if ( function_exists('sha1') ) {
+        $cipherTxt = '{SHA}' . base64_encode( pack( 'H*' , sha1( $clearTxt) ) );
+      }
+      elseif ( function_exists( 'mhash' ) ) {
+        $cipherTxt = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $clearTxt) );
+      }
+      break;
+
+    case 9: // Salted SHA
+      mt_srand( (double) microtime() * 1000000 );
+      $salt = mhash_keygen_s2k( MHASH_SHA1, $clearTxt, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 );
+      $cipherTxt = "{SSHA}" . base64_encode( mhash( MHASH_SHA1, $clearTxt . $salt ) . $salt );
+      break;
+
+    default: // Cleartext
+      $cipherTxt = $clearTxt;
+  }
+  return $cipherTxt;
+}
+/**
+ * Implementation of hook_form_alter().
+ *
+ * Note: Provides support for avatarcrop module (AC).  However, the AC module
+ * needs to have the drupal_goto call in the cropUserPic form replaces with
+ * a $form_state['redirect'] call and the uid added as a form value.
+ * Patch for AC will soon be created.
+ */
+function ldapdata_form_alter(&$form, $form_state, $form_id) {
+  switch ( $form_id ) {
+    case 'cropUserPic':
+      $form['#submit'][] = 'ldapdata_avatarcrop_submit';
+      break;
+// Add picture UI options
+    case 'ldapauth_admin_settings':
+      if ( variable_get('user_pictures', '0')) {
+        $form['ldap-ui']['ldapdata_disable_picture_change'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Remove picture upload and delete fields from user edit form'),
+          '#default_value' => LDAPDATA_DISABLE_PICTURE_CHANGE,
+          '#description' => t('If checked, LDAP users will not see these change user picture fields. Use this if ldapdata maps the user picture to an ldap attribute and the map type is "read only" since LDAP users will not be able to change pictures via Drupal.'),
+        );
+        $form['#submit'][] = 'ldapdata_ldapauth_admin_settings_submit';
+      }
+      break;
+    // Remove user picture fields if needed
+    case 'user_profile_form':
+      $account = $form["_account"]["#value"];
+      if ($user->uid != 1 && isset($account->ldap_authentified) && LDAPDATA_DISABLE_PICTURE_CHANGE && isset($form['picture'])) {
+        unset($form['picture']);
+      }
+      break;
+  }
+}
+/**
+ * Submit hook for the ldapauth settings form.
+ * Handles ui addition
+ */
+function ldapdata_ldapauth_admin_settings_submit($form, &$form_state) {
+  $op = $form_state['clicked_button']['#value'];
+  $values = $form_state['values'];
+  switch ($op) {
+    case t('Save configuration'):
+      variable_set('ldapdata_disable_picture_change', $values['ldapdata_disable_picture_change']);
+      break;
+    case t('Reset to defaults'):
+      variable_del('ldapdata_disable_picture_change');
+      break;
+  }
+}
+
+/**
+ * Handle updating ldap when avatarcrop updates picture.
+ *
+ * @param Array $form
+ * @param Array $form_state
+ */
+function ldapdata_avatarcrop_submit($form, &$form_state) {
+  $uid = $form_state['values']['change_pic_uid'];
+  $result = db_fetch_object(db_query("SELECT picture FROM {users} WHERE uid=%d", $uid));
+  if ( ! empty($result->picture)) {
+    $account = user_load($uid);
+    $update = array(
+      'picture' => $result->picture,
+    );
+    _ldapdata_user_submit($update, $account, 'account');
+  }
+}
+/**
+ * Implementation of hook_schema_alter().
+ *
+ * @param &$schema Nested array describing the schemas for all modules.
+ */
+function ldapdata_schema_alter($schema) {
+  $schema['ldapauth']['fields']['ldapdata_binddn'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+  );
+  $schema['ldapauth']['fields']['ldapdata_bindpw'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+  );
+  $schema['ldapauth']['fields']['ldapdata_rwattrs'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapdata_roattrs'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapdata_mappings'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapdata_attrs'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapdata_filter_php'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+}
+/**
+ * Implementation of hook_nodeapi().
+ *
+ * @param &$node The node the action is being performed on.
+ * @param $op What kind of action is being performed. Possible values: alter, delete, delete revision, insert, load, prepare, prepare translation, print, rss item, search result, presave, update, update index, validate, view
+ * @param $a3
+ * @param $a4
+ */
+function ldapdata_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+  switch ( $op ) {
+    case 'update':
+      ldapdata_node_update($node);
+      break;
+    default:
   }
 }
+/**
+ * Drupal 7 hook_node_update.  Handles the case of content profile updates
+ * being written back to ldap if needed.
+ *
+ * @param Object $node
+ */
+function ldapdata_node_update( $node ) {
+  global $_ldapdata_ldap;
+
+  // Is this being called after the normal sync rules have been applied?
+  if ( isset($node->ldap_synched) ) {
+    return;
+  }
+
+  if ( module_exists('content_profile') && is_content_profile($node->type)) {
 
+    $account = user_load($node->uid);
+
+    // Only care about ldap authenticated users.
+    if (!isset($account->ldap_authentified))
+      return;
+
+    // Setup the global $_ldapdata_ldap object.
+    if (!_ldapdata_init($account))
+      return;
+
+    $writeout = _ldapdata_user_update_content_profile($node, $account);
+    if ($writeout) {
+      $bind_info = _ldapdata_edition($account);
+      if (!$_ldapdata_ldap->connect($bind_info['dn'], $bind_info['pass'])) {
+        watchdog('ldapdata', "User update: user %name's data could not be updated in the LDAP directory", array('%name' => $account->name), WATCHDOG_NOTICE);
+        return;
+      }
+      if (!($_ldapdata_ldap->writeAttributes($account->ldap_dn, $writeout))) {
+        drupal_set_message(t('The data was not written to LDAP.'), 'error');
+      }
+    }
+    $_ldapdata_ldap->disconnect();
+    $node->ldap_synched = TRUE;  // Just in case update called twice in a page.
+  }
+}
+/**
+ * Find out which content profile attributes should be synced back to LDAP.
+ *
+ * @param $node
+ *   A content profile node being updated.
+ * @param $account
+ *   A user object.
+ *
+ * @return
+ *   An associated array of attributes to write to LDAP.
+ */
+function _ldapdata_user_update_content_profile(&$node, &$account) {
+  if (_ldapdata_ldap_info($account, 'mapping_type') != LDAPDATA_MAP_ATTRIBUTES)
+    return array();
+
+  $ldap_drupal_reverse_mappings = _ldapdata_reverse_mappings($account->ldap_config);
+
+  // Retrieve profile fields list.
+  $content_profile_fields = _ldapdata_retrieve_content_profile_fields();
+
+  // Compare against $edit list.
+  $writeout = array();
+  foreach ($content_profile_fields as $key => $field_name) {
+    $field = $node->$key;
+    if (isset($field) && isset($ldap_drupal_reverse_mappings[$key])) {
+
+      // Determine what kind of field we are dealing with
+      // TODO: Handle multiple value fields
+      $field_lookup = content_fields($key);
+      $field_type = $field_lookup['type'];
+      switch ($field_type) {
+        case 'email':
+          $writeout[$ldap_drupal_reverse_mappings[$key]] = $field[0]['email'];
+          break;
+        case 'content_taxonomy':
+          // Convert tid to term name since that is what the _load_user does
+          if ($term = taxonomy_get_term($field[0]['value'])) {
+            $writeout[$ldap_drupal_reverse_mappings[$key]] = $term;
+          }
+          break;
+        default:
+          $writeout[$ldap_drupal_reverse_mappings[$key]] = $field[0]['value'];
+      }
+    }
+  }
+  return $writeout;
+}
+/**
+ * Implements hook_ldap_attributes_needed_alter
+ *
+ * @param Array $attributes array of attributes to be returned from ldap queries
+ * @param String $op The operation being performed such as 'user_update', 'user_insert', ...
+ * @param Mixed $server Server sid or server object
+ */
+function ldapdata_ldap_attributes_needed_alter( &$attributes, $op, $server = NULL) {
+  if ( $server ) {
+    $sid = is_object( $server ) ? $server->sid : $server;
+    switch ($op) {
+      case LDAPAUTH_SYNC_CONTEXT_INSERT_DRUPAL_USER:
+      case LDAPAUTH_SYNC_CONTEXT_UPDATE_DRUPAL_USER:
+        $attributes[] = 'dn';
+        foreach (_ldapdata_ldap_info($sid, 'ldapdata_mappings') as $key => $value) {
+          if ( ! in_array($key, array('access', 'status'))) {
+            $attributes[] = $value;
+          }
+        }
+        break;
+    }
+  }
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.theme.inc
index 65bc69d..7077d1a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapdata.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapdata.theme.inc,v 1.3 2009/03/18 12:12:02 miglius Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.admin.inc
index 3f24d33..8443d19 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapgroups.admin.inc,v 1.11 2009/05/04 00:26:17 miglius Exp $
 
 /**
  * @file
@@ -85,39 +84,51 @@ function ldapgroups_admin_edit(&$form_state, $op, $sid) {
       '#value' => t('Configure LDAP groups to Drupal roles mapping settings for the %server.', array('%server' => $edit['name'])),
     );
 
-    $form['group_dn'] = array(
+    // How to find groups section
+    $form['group-definitions'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Group Definitions'),
+      '#description' => t('Define how group information is stored in your LDAP database by using one or more of the methods below.'),
+      '#collapsible' => TRUE,
+      '#collapsed' => FALSE,
+    );
+
+    $form['group-definitions']['group_dn'] = array(
       '#type' => 'fieldset',
       '#title' => t('Group by DN'),
+      '#description' => t('Use this method if your users\' DNs look like <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">cn=jdoe,<strong>ou=Group1</strong>,cn=example,cn=com</em> and <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">Group1</em> turns out to be the group you want.</p>'),
       '#collapsible' => TRUE,
       '#collapsed' => !$edit['ldapgroups_in_dn'],
     );
-    $form['group_dn']['ldapgroups_in_dn'] = array(
+    $form['group-definitions']['group_dn']['ldapgroups_in_dn'] = array(
       '#type' => 'checkbox',
       '#title' => t('Group is specified in user\'s DN'),
       '#default_value' => $edit['ldapgroups_in_dn'],
-      '#description' => '<p>Check this option if your users\' DNs look like <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">cn=jdoe,<strong>ou=Group1</strong>,cn=example,cn=com</em> and <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">Group1</em> turns out to be the group you want.</p>'
+      '#description' => t('Check to enable this method.'),
     );
-    $form['group_dn']['ldapgroups_dn_attribute'] = array(
+    $form['group-definitions']['group_dn']['ldapgroups_dn_attribute'] = array(
       '#type' => 'textfield',
       '#title' => t('Attribute of the DN which contains the group name'),
       '#default_value' => $edit['ldapgroups_dn_attribute'],
       '#size' => 50,
       '#maxlength' => 255,
-      '#description' => t('The name of the attribute which contains the group name. In the example above, it would be <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">ou</em>, as the DN contains the string <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">ou=Group1</em> and <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">Group1</em> happens to be the desired group name.'),
+      '#description' => t('The name of the attribute which contains the group name. In the example above, it would be <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">ou</em>, as the DN contains the string <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">ou=Group1</em> and <em style="font-style: normal; padding: 1px 3px; border: 1px solid #8888CC; background-color: #DDDDFF">Group1</em> happens to be the desired group name. Note:  If the attribute appears more than once in the DN, the user will be listed in multiple groups.'),
     );
 
-    $form['group_attr'] = array(
+    $form['group-definitions']['group_attr'] = array(
       '#type' => 'fieldset',
       '#title' => t('Group by attribute'),
+      '#description' => t('Use this method if your user\'s LDAP entries contain attributes that define their group membership, e.g. AD\'s memberof attribute.</p>'),
       '#collapsible' => TRUE,
       '#collapsed' => !$edit['ldapgroups_in_attr'],
     );
-    $form['group_attr']['ldapgroups_in_attr'] = array(
+    $form['group-definitions']['group_attr']['ldapgroups_in_attr'] = array(
       '#type' => 'checkbox',
       '#title' => t('Groups are specified by LDAP attributes'),
+      '#description' => t('Check to enable this method.'),
       '#default_value' => $edit['ldapgroups_in_attr'],
     );
-    $form['group_attr']['ldapgroups_attr'] = array(
+    $form['group-definitions']['group_attr']['ldapgroups_attr'] = array(
       '#type' => 'textarea',
       '#title' => t('Attribute names (one per line)'),
       '#default_value' => implode("\n", ($edit['ldapgroups_attr'] ? unserialize($edit['ldapgroups_attr']) : array())),
@@ -126,53 +137,94 @@ function ldapgroups_admin_edit(&$form_state, $op, $sid) {
       '#description' => t('If the groups are stored in the user entries, along with the rest of their data, then enter here a list of attributes which may contain them.'),
     );
 
-    $form['group_entry'] = array(
+    $form['group-definitions']['group_entry'] = array(
       '#type' => 'fieldset',
       '#title' => t('Group by entry'),
+      '#description' => t('Groups exist as LDAP entries with a multivalued attribute containing either the members\' DNs or username.  E.g. Standard LDAP group objects like groupOfNames that use the \'member\' multivalue attribute or posixGroup with memberUID.'),
       '#collapsible' => TRUE,
       '#collapsed' => !$edit['ldapgroups_as_entries'],
     );
-    $form['group_entry']['ldapgroups_as_entries'] = array(
+    $form['group-definitions']['group_entry']['ldapgroups_as_entries'] = array(
       '#type' => 'checkbox',
-      '#title' => t('Groups exist as LDAP entries where a multivalued attribute contains the members\' CNs'),
+      '#title' => t('Groups exist as LDAP entries with a multivalued membership attribute'),
+      '#description' => t('Check to enable this method.'),
       '#default_value' => $edit['ldapgroups_as_entries'],
     );
-    $form['group_entry']['ldapgroups_entries'] = array(
+    $form['group-definitions']['group_entry']['ldapgroups_entries'] = array(
       '#type' => 'textarea',
-      '#title' => t('LDAP DNs containing groups (one per line)'),
+      '#title' => t('Base LDAP DNs containing groups (one per line)'),
       '#default_value' => implode("\n", ($edit['ldapgroups_entries'] ? unserialize($edit['ldapgroups_entries']) : array())),
       '#cols' => 50,
       '#rows' => 6,
-      '#description' => t('Enter here a list of LDAP nodes from where groups should be searched for. The module will look them up recursively from the given nodes.'),
+      '#description' => t('Base DNs to search for group entries. The module will look under each of these for group entries.'),
     );
-    $form['group_entry']['ldapgroups_entries_attribute'] = array(
+    $form['group-definitions']['group_entry']['ldapgroups_entries_attribute'] = array(
       '#type' => 'textfield',
       '#title' => t('Attribute holding group members'),
       '#default_value' => $edit['ldapgroups_entries_attribute'],
       '#size' => 50,
       '#maxlength' => 255,
-      '#description' => t('Name of the multivalued attribute which holds the CNs of group members, for example: !attr', array('!attr' => theme('placeholder', LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE))),
+      '#description' => t('Name of the multivalued attribute which holds either the DNs or LDAP usernames of group members, for example: !attr', array('!attr' => theme('placeholder', LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE))),
     );
+
+    // Access rules section
     $form['groups_limit'] = array(
       '#type' => 'fieldset',
-      '#title' => t('LDAP group to Drupal role limits'),
+      '#title' => t('LDAP Groups Server Access Rules'),
       '#collapsible' => TRUE,
       '#collapsed' => !$edit['ldapgroups_groups'],
     );
+    $form['groups_limit']['info'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Server Access Rules Help'),
+      '#description' => t('<p>Rules can be define below that will limit who can access this server.  These rules can take two forms.</p>' .
+        '<p>First, it can just be a list of groups.  In this case, the user must be a member of at least one of these groups to be allowed access.</p>' .
+        '<p>The second form uses rules of the format: "action-type: group-name". Each rule group-name is compared to the user\'s groups.  If the user is a member of the rule\'s group, the action is applied.  The last matching rule determines the user\'s access rights.  Note that all rule sets start with access denied.</p>' .
+        '<p>The action types are:</p>' .
+        '<ul><li>ALLOW - Access granted if user is in the group and not denied by rule below it.</li>' .
+        '<li>ALLOW-X - If the user is in the group, access is granted and rule processing ends</li>' .
+        '<li>DENY - User is denied if they are in the group unless granted by a rule below this one.</li>' .
+        '<li>DENY-X - User denied if in group and no further rules are processed.</li></ul>' .
+        '<p>In addition, there are two "PSEUDO" groups that can be used in rules:</p>' .
+        '<ul><li>ALL - Matches all authenticated LDAP users</li>' .
+        '<li>EXISTING - Matches existing users who have been authenticated by LDAP in the past.</li></ul>' .
+        '<p>Here\'s an example ruleset to deny all Group1 users but allow existing users and (new) Group2 users to access the server.</p>' .
+        '<ul><li>DENY-X: cn=Group1,ou=Groups,dc=myorg</li>' .
+        '<li>ALLOW-X: EXISTING</li>' .
+        '<li>ALLOW: cn=Group2,ou=Groups,dc=myorg</li></ul>' .
+        '<p>Note that rule types and groups are case insensitive.  However, group names must have the same spacing as returned by the server to match.  E.g. if server return cn=X,ou=Groups... then a rule group name, cn=X, ou=Groups... will not match because of the space after the comma.</p>'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
     $form['groups_limit']['ldapgroups_groups'] = array(
       '#type' => 'textarea',
-      '#title' => t('LDAP groups which allow automatic account creation'),
+      '#title' => t('Group access rules'),
       '#default_value' => implode("\n", ($edit['ldapgroups_groups'] ? unserialize($edit['ldapgroups_groups']) : array())),
       '#cols' => 50,
       '#rows' => 5,
-      '#description' => t('Leave blank to automatically create accounts for all LDAP authenticated users. Otherwise, enter a one per line list of LDAP groups. If the user is not in any of those groups, the login will be denied.'),
+      '#description' => t('Leave blank to allow all LDAP authenticated users access. Otherwise, enter a one per line list of LDAP groups or access rules. If the user is not in any of those groups or the last matching rule denies access, the login will be denied.'),
     );
+
+    // Mappings section
     $form['group_filter'] = array(
       '#type' => 'fieldset',
       '#title' => t('LDAP group to Drupal role filtering'),
-      '#description' => t('The module automatically decides names for the Drupal roles based in the names of the LDAP groups. For example:<ul><li>LDAP group: Admins => Drupal role: Admins</li><li>LDAP group: ou=Underlings,dc=myorg,dc=mytld => Drupal role: Underlings.</li></ul>'),
+      '#description' => t('If there is nothing entered in this section, the module will automatically decide Drupal roles name.  These will be based on the names of the LDAP groups. For example:<ul><li>LDAP group: Admins => Drupal role: Admins</li><li>LDAP group: ou=Underlings,dc=myorg,dc=mytld => Drupal role: Underlings.</li></ul>'),
       '#collapsible' => TRUE,
-      '#collapsed' => !($edit['ldapgroups_mappings'] || $edit['ldapgroups_filter_php']),
+      '#collapsed' => !($edit['ldapgroups_mappings'] || $edit['ldapgroups_filter_php'] || $edit['ldapgroups_mappings_filter']),
+    );
+    $options_filter_mode = array(
+      LDAPGROUPS_ROLE_MODE_AUTO => t("Use automatic LDAP group name to Drupal role name mapping"),
+      LDAPGROUPS_ROLE_MODE_USE_MAP => t("Use LDAP group to Drupal role mapping defined below"),
+      LDAPGROUPS_ROLE_MODE_DISABLED => t("Do not user LDAP groups for Drupal roles (i.e. access restrictions only).")
+      );
+
+    $form['group_filter']['ldapgroups_mappings_filter'] = array(
+      '#type' => 'radios',
+      '#title' => t('Select how to map LDAP groups to Drupal roles'),
+      '#options' => $options_filter_mode,
+      '#default_value' => $edit['ldapgroups_mappings_filter'],
+//      '#description' => t('In automatic mode a Drupal role will be created for every group the user is associated with.')
     );
     $mappings = '';
     foreach (($edit['ldapgroups_mappings'] ? unserialize($edit['ldapgroups_mappings']) : array()) as $group => $role)
@@ -183,13 +235,7 @@ function ldapgroups_admin_edit(&$form_state, $op, $sid) {
       '#default_value' => $mappings,
       '#cols' => 50,
       '#rows' => 5,
-      '#description' => t('Enter a list of LDAP groups and their Drupal role mappings, one per line with a | delimiter. Should be in the form [ldap group]|[drupal role] such as:<br/>cn=ED IT NAG Staff,DC=ad,DC=uiuc,DC=edu|admin<br/>cn=Ed Webs UIUC Webmasters,DC=ad,DC=uiuc,DC=edu|committee member'),
-    );
-    $form['group_filter']['ldapgroups_mappings_filter'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Use LDAP group to Drupal roles filtering'),
-      '#default_value' => $edit['ldapgroups_mappings_filter'],
-      '#description' => t('If enabled, only above mapped groups will be mapped to Drupal roles. If not enabled, a Drupal role will be created for every group the user is associated with.')
+      '#description' => t('Enter a list of LDAP groups and their Drupal role mappings, one per line with a | delimiter. Should be in the form [ldap group]|[drupal role],[drupal role] such as:<br/>cn=ED IT NAG Staff,DC=ad,DC=uiuc,DC=edu|admin<br/>cn=Ed Webs UIUC Webmasters,DC=ad,DC=uiuc,DC=edu|author, reviewer'),
     );
     $form['group_filter']['ldapgroups_filter_php'] = array(
       '#type' => 'textarea',
@@ -258,7 +304,7 @@ function ldapgroups_admin_edit_validate($form, &$form_state) {
       if (!$ldapgroups_role_mappings)
         form_set_error('ldapgroups_mappings', t('Bad mapping syntax.'));
 
-      if ($values['ldapgroups_mappings_filter'] && !trim($values['ldapgroups_mappings']))
+      if ($values['ldapgroups_mappings_filter'] == LDAPGROUPS_ROLE_MODE_USE_MAP && !trim($values['ldapgroups_mappings']))
         form_set_error('ldapgroups_mappings', t('Mappings are missing.'));
 
       $form_state['ldapgroups_groups'] = array();
@@ -295,4 +341,260 @@ function ldapgroups_admin_edit_submit($form, &$form_state) {
       break;
   }
 }
+/**
+ * Test users against the current ldapgroups settings
+ *
+ * @param Array $form_state
+ */
+function ldapgroups_user_test(&$form_state) {
+
+  $servers = ldapauth_server_load_all();
+  $options_servers = array();
+  foreach ( $servers as $server ) {
+    $options_servers[$server->sid] = $server->name;
+  }
+
+  $form['user_selection'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User Selection'),
+    '#description' => t('This page will let you test the ldapgroups settings against different users.  This is useful to make sure they are setup correctly and to help debug settings (e.g. user group name does not match rule name).  Enter either an existing LDAP authenticated Drupal user name or a server / dn combination and press Test to see results'),
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE,
+  );
+  $form['user_selection']['test_user'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Drupal User name to test'),
+    '#size' => 50,
+    '#maxlength' => 255,
+    '#default_value' => $form_state['values']['test_user'],
+    '#description' => t('Enter an existing LDAP authenticated Drupal user to test group settings with.'),
+  );
+  $form['user_selection']['or'] = array(
+    '#value' => t('OR'),
+  );
+  $form['user_selection']['server'] = array(
+    '#type' => 'radios',
+    '#title' => t('Select a server'),
+    '#options' => $options_servers,
+    '#default_value' => $form_state['values']['server'],
+  );
+  $form['user_selection']['dn'] = array(
+    '#type' => 'textfield',
+    '#title' => t('LDAP DN to test'),
+    '#size' => 100,
+    '#maxlength' => 255,
+    '#description' => t('Enter an LDAP user\'s DN to test group settings with.'),
+    '#default_value' => $form_state['values']['dn'],
+  );
+  $form['user_selection']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Test'),
+  );
+
+  if ( isset($form_state['storage']['results'])) {
+    $form['results'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Test Results'),
+      '#description' => t('The following information was found for this user.'),
+      '#collapsible' => FALSE,
+      '#collapsed' => FALSE,
+    );
+    $form['results']['test_user_results'] = array(
+      '#title' => t('Test Results'),
+      '#value' => $form_state['storage']['results'],
+    );
+  }
+
+  return $form;
+}
+/**
+ * Validate the supplied test info.
+ *
+ * @param Array $form
+ * @param Array $form_state
+ */
+function ldapgroups_user_test_validate($form, &$form_state ) {
+
+  module_load_include('inc', 'ldapgroups', 'ldapgroups');
+
+  $values = $form_state['values'];
+
+  if ( $values['server'] && $values['dn'] && $values['test_user']) {
+    form_set_error('', t('Can not have all three fields filled.  Use only a Drupal name or LDAP server/dn pair.'));
+    return;
+  }
+
+  if ( $values['server'] && $values['dn'] ) {
+    if ( ! ldapgroups_is_configured( $values['server']) ) {
+      form_set_error('', t('Server, @server, has no LDAP group settings defined yet.', array("@server" => $values['server'])));
+    }
+    return;
+  }
+
+  $account = user_load(array('name' => $values['test_user']));
+  if ( ! $account ) {
+    form_set_error('test_user', t("Invalid user name") );
+    return;
+  }
+  if (  ! $account->ldap_authentified  || $account->ldap_authentified != 1 ) {
+    form_set_error('test_user', t("User was not an LDAP authenticated user."));
+    return;
+  }
+  if ( ! ldapgroups_is_configured( $account->ldap_config) ) {
+    form_set_error('', t('Server, @server, has no LDAP group settings defined yet.', array("@server" => $account->ldap_config)));
+    return;
+  }
+  $form_state['values']['account'] = $account;
+}
+/**
+ * Submit handler for testing user against the ldapgroups settings.
+ *
+ * @param Array $form
+ * @param Array $form_state
+ */
+function ldapgroups_user_test_submit($form, &$form_state ) {
+
+  if ( isset($form_state['values']['account']) ) {
+    $account = $form_state['values']['account'];
+    $dn = $account->ldap_dn;
+    $sid = $account->ldap_config;
+  }
+  else {
+    $account = NULL;
+    $dn = $form_state['values']['dn'];
+    $sid = $form_state['values']['server'];
+  }
+  $form_state['storage']['results'] = ldapgroups_user_test_output( $account, $sid, $dn );
+}
+/**
+ * Generate the test results for the user and ldap settings.
+ *
+ * @param Object $account
+ * @param int $sid
+ * @param String $dn
+ */
+function ldapgroups_user_test_output( $account, $sid, $dn ) {
+  global $_ldapgroups_ldap;
 
+  module_load_include('inc', 'ldapgroups', 'ldapgroups');
+
+  // Setup the global $_ldapgroups_ldap object.
+  if (!_ldapgroups_ldap_init($sid)) {
+    drupal_set_message(t('Could not initialize the LDAP connection object!'), 'error');
+    return FALSE;
+  }
+
+
+  // Use the lookup dn/password or announymous if not set.
+  // Note: This may fail if LDAP security limits access to needed info.
+  $bind_dn = $_ldapgroups_ldap->getOption('binddn');
+  $pass = $_ldapgroups_ldap->getOption('bindpw');
+  if (!$_ldapgroups_ldap->connect($bind_dn, $pass)) {
+    $bind_name = empty($bind_dn ) ? t("anonymous") : $bind_dn;
+    drupal_set_message(t('Could not bind to the LDAP server as @name!', array('@name' => $bind_name)), 'error');
+    return FALSE;
+  }
+
+  $ldap_info = ldapauth_user_lookup_by_dn($_ldapgroups_ldap, $dn, LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER);
+  if ( empty($ldap_info) ) {
+    drupal_set_message(t("Could not find specified DN"));
+    return FALSE;
+  }
+
+  $name_attr = $_ldapgroups_ldap->getOption('user_attr');
+  $ldap_name = isset($ldap_info[$name_attr][0]) ? $ldap_info[$name_attr][0] : $ldap_info[drupal_strtolower($name_attr)][0];
+  if ( ! $account ) {
+    $account = ldapauth_drupal_user_lookup($_ldapgroups_ldap, $ldap_name, $dn, $error );
+  }
+
+  $output = '<p>';
+  $output .= "<b>" . t('Drupal User Info') . "</b><br/>";
+  if ( $account ) {
+    $output .= t("Drupal user name") . ":  {$account->name}<br/>";
+    $output .= t("LDAP Authentified") . ": " . ( $account->ldap_authentified ? "Yes" : "No") . "<br/>";
+  }
+  else {
+    $output .= t("No matching Drupal User found.") . "<br/>";
+  }
+  $output .= "<br/><b>" . t("LDAP User Info") . "</b><br/>";
+  $output .= t("LDAP server") . ": {$_ldapgroups_ldap->getOption('name')}<br/>";
+  $output .= t("LDAP user name") . ": {$ldap_name}<br/>";
+  $output .= t("LDAP dn") . ": {$dn}<br/>";
+
+
+  // First, we figure out the appropriate groups.
+  $groups = ldapgroups_groups_load($_ldapgroups_ldap, $dn, $ldap_name );
+  $output .= "<br/><b>" . t("User's LDAP Groups") . "</b><br/>";
+
+  if ( $groups ) {
+    foreach ( $groups as $group ) {
+      $output .= "{$group}<br/>";
+    }
+  }
+  else {
+    if ( $groups === FALSE ) {
+      $output .= t("An error occured getting group information!") . "<br/>";
+    }
+    else {
+      $output .= t("No groups found") . "<br/>";
+    }
+  }
+
+  $output .= "<br/><b>" . t("Server Access") . "</b><br/>";
+  $groups_allowed = _ldapgroups_ldap_info($sid, 'ldapgroups_groups');
+  if ( empty($groups_allowed)  ) { // Nothing to do here.
+    $output .= t("No access rules defined.") . "<br/>";
+  }
+
+  $denied = FALSE;
+  ldapgroups_ldap_user_deny_alter( $denied, $_ldapgroups_ldap, $ldap_name, $dn, $account );
+  $access = ! $denied ? t("Allowed") : t("Denied");
+  $output .= t("Server access") . ": {$access}<br/>";
+
+  $output .= "<br/><b>" . t("User's Drupal Roles") . "</b><br/>";
+  $role_mapping = _ldapgroups_ldap_info($sid, 'ldapgroups_mappings_filter');
+  switch ( $role_mapping ) {
+    case LDAPGROUPS_ROLE_MODE_AUTO:
+      $role_mapping_mode = t("Automatic mode");
+      break;
+    case LDAPGROUPS_ROLE_MODE_USE_MAP:
+      $role_mapping_mode = t("Mapping defined in server settings");
+      break;
+    case LDAPGROUPS_ROLE_MODE_DISABLED:
+      $role_mapping_mode =  t("Role mapping disabled");
+      break;
+  }
+
+  $output .= t("Role Mapping Mode") . ": {$role_mapping_mode}<br/>";
+
+  // Is Role mapping disabled?
+  if ( $role_mapping != LDAPGROUPS_ROLE_MODE_DISABLED ) {
+
+    // Apply site-specific rules.
+    $filtered_groups = _ldapgroups_filter($sid, $groups);
+
+    // At this point, the roles are in the full DN format or role names.
+    $roles = array();
+    if (!empty($filtered_groups)) {
+      foreach ($filtered_groups as $group) {
+        $role = _ldapgroups_mapping($sid, $group);
+        $roles[] = $role;
+      }
+    }
+    $roles = array_unique($roles);
+
+    drupal_alter("ldap_user_roles", $roles, $account, $dn, $groups, $filtered_groups );
+
+    if ( ! empty($roles) ) {
+      foreach ( $roles as $role ) {
+        $output .= "{$role}<br/>";
+      }
+    }
+    else {
+      $output .= t("No roles found") . "<br/>";
+    }
+  }
+
+  $output .= "</p>";
+  return $output;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.api.php b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.api.php
new file mode 100644
index 0000000..ab7a3ca
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.api.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * LDAPGroups API function documentation
+ */
+
+/**
+ * Allows an LDAP user's set of ldap groups be altered or added to.
+ *
+ * This hook is called after the group detection methods defined in
+ * the admin UI have been processed but before any access rules or role
+ * mapping has been done..
+ *
+ * @param Array $groups An array whose values are the user's groupsr
+ * @param LDAPInterface $ldap LDAP server interface object bound to server as ldap user.
+ * @param String $dn The DN for the user being processed.
+ * @param String $name The user's LDAP user name.
+ */
+function hook_ldap_user_groups_alter( &$groups, $ldap, $dn, $name ) {
+  // Some example code to add a group that is the parent on the
+  // user's dn, e.g. cn=Bob Admin,ou=admins,ou=dept1,dc=myorg will have a
+  // group added like:  ou=admin,ou=dept1,dc=myorg.  This can then be used
+  // in access rules or role mapping.
+  $parts = explode(",", $dn, 2);
+  $groups[] = $parts[1];
+}
+/**
+ * Allows the roles an ldap user will be assigned to be altered.
+ *
+ * This hook is called after the mapping defined in the admin ui has been
+ * performed but before the user has been granted a role.
+ *
+ * @param Array $roles An array who's values are role names.
+ * @param Object $account The user object
+ * @param String $dn The user's ldap dn.
+ * @param Array $groups All of the user's ldap groups found
+ * @param Array $filtered_groups The user's groups after filtered by mapping rules.
+ */
+function hook_ldap_user_roles_alter(&$roles, $account, $dn, $groups, $filtered_groups ) {
+  // Some example code to add a role if the user is in two groups
+  if ( in_array("cn=Joplin Fans,ou=Groups,dc=myorg", $groups ) && in_array("cn=Morton Fans,ou=Groups,dc=myorg", $groups )) {
+    if ( ! in_array("Ragtime", $roles)) {
+      $roles[] = "Ragtime";
+    }
+  }
+}
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.inc
index 0af887b..d9ca929 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapgroups.inc,v 1.2 2009/08/25 13:53:20 miglius Exp $
 
 /**
  * @file
@@ -11,52 +10,56 @@
 
 /**
  * Implements hook_user() login operation.
+ *
+ * @param Object $account A user object verified to be ldap_authentified.
  */
 function ldapgroups_user_login(&$account) {
-  $authmap = user_get_authmaps($account->name);
-  if (!isset($authmap['ldapauth'])) {
-    // This user is not authenticated via lapauth.
+
+  // Don't do anything if disabled mode has been enabled.
+  if ( _ldapgroups_ldap_info($account, 'ldapgroups_mappings_filter') == LDAPGROUPS_ROLE_MODE_DISABLED ) {
     return;
   }
 
+  // Don't do anything until LDAP groups are configured in admin screens.
+  if (! ldapgroups_is_configured($account->ldap_config))
+    return;
+
   // Setup the global $_ldapgroups_ldap object.
   if (!_ldapgroups_ldap_init($account))
     return;
 
   // First, we figure out the appropriate groups.
   $groups = _ldapgroups_detect_groups($account);
-
-  // Apply groups restrictions.
-  if (count($groups_allow = _ldapgroups_ldap_info($account, 'ldapgroups_groups')) > 0 && count(array_intersect($groups, $groups_allow)) == 0) {
-    $account = user_load(0);
+  if ($groups === FALSE) {  // Hmm, could not contact LDAP so make no changes..
     return;
   }
 
-  // Then, we take every mapped role from the user, later below
+  // Then, we take every LDAP mapped role from the user, later below
   // we'll grant back those deserved.
   $account->ldap_drupal_roles = isset($account->ldap_drupal_roles) ? $account->ldap_drupal_roles : array();
   foreach ($account->ldap_drupal_roles as $role) {
     _ldapgroups_deny_role($account, $role);
   }
 
-  // Are there LDAP groups for the user?
-  if ($groups === FALSE)
-    return TRUE;
-
   // Next, we apply site-specific rules.
-  $groups = _ldapgroups_filter($account, $groups);
+  $filtered_groups = _ldapgroups_filter($account, $groups);
 
-  // At this point, the roles are in the full DN format.
+  // At this point, the roles are in the full DN format or role names.
   $roles = array();
-  if (!empty($groups)) {
-    $ldapgroups_mappings = _ldapgroups_ldap_info($account, 'ldapgroups_mappings');
-    foreach ($groups as $group) {
+  if (!empty($filtered_groups)) {
+    foreach ($filtered_groups as $group) {
       $role = _ldapgroups_mapping($account, $group);
-      _ldapgroups_create_role($role);
-      _ldapgroups_grant_role($account, $role);
       $roles[] = $role;
     }
   }
+  $roles = array_unique($roles);
+
+  drupal_alter("ldap_user_roles", $roles, $account, $dn, $groups, $filtered_groups );
+
+  foreach ($roles as $role ) {
+    _ldapgroups_create_role($role);
+    _ldapgroups_grant_role($account, $role);
+  }
 
   // Store roles in the user object so we know which ones
   // were granted here.
@@ -69,18 +72,17 @@ function ldapgroups_user_login(&$account) {
 /**
  * Detect user groups from the LDAP.
  *
- * @param $user
- *   A user object.
+ * @param $account
+ *   A user object that has already been checked if it is "ldap_authentified".
  *
- * @return
- *   An array of user groups.
+ * @return An array of user groups, an empty array if none found and
+ *         FALSE if none defined/could not search LDAP.
  */
-function _ldapgroups_detect_groups($user) {
+function _ldapgroups_detect_groups($account) {
   global $_ldapgroups_ldap;
 
-  // Nothing to do if the user is not LDAP authentified
-  // or there are no groups configured.
-  if (!(_ldapgroups_ldap_info($user, 'ldapgroups_in_dn') || _ldapgroups_ldap_info($user, 'ldapgroups_in_attr') || _ldapgroups_ldap_info($user, 'ldapgroups_as_entries')))
+  // Nothing to do if there are no groups configured.
+  if (! ldapgroups_is_configured($account->ldap_config))
     return FALSE;
 
   // First try to connect with the stored user's DN and password.
@@ -96,64 +98,102 @@ function _ldapgroups_detect_groups($user) {
     $dn = $row2->binddn;
     $pass = $row2->bindpw;
     if (!$_ldapgroups_ldap->connect($dn, $pass)) {
-      watchdog('ldapgroups', "User login: user %name data could not be read in the LDAP directory", array('%name' => $user->name), WATCHDOG_WARNING);
+      watchdog('ldapgroups', "User login: user %name data could not be read in the LDAP directory", array('%name' => $account->name), WATCHDOG_WARNING);
       return FALSE;
     }
   }
 
-  // Strategy 1: group extracted from user's DN.
-  $dn_groups = array();
-  if (_ldapgroups_ldap_info($user, 'ldapgroups_in_dn')) {
-    $pairs = explode(',', $user->ldap_dn);
-    foreach ($pairs as $p) {
-      $pair = explode('=', $p);
-      if (drupal_strtolower(trim($pair[0])) == drupal_strtolower(_ldapgroups_ldap_info($user, 'ldapgroups_dn_attribute')))
-        $dn_groups[] = trim($pair[1]);
-    }
-  }
+  $groups = ldapgroups_groups_load($_ldapgroups_ldap, $account->ldap_dn, $account->name );
 
-  // Strategy 2: groups in user attributes.
-  $attrib_groups = array();
-  if (_ldapgroups_ldap_info($user, 'ldapgroups_in_attr')) {
-    foreach (_ldapgroups_ldap_info($user, 'ldapgroups_attr') as $attribute)
-      $attrib_groups = array_merge($attrib_groups, $_ldapgroups_ldap->retrieveMultiAttribute($user->ldap_dn, $attribute));
+  $_ldapgroups_ldap->disconnect();
+  return $groups;
+}
+
+/**
+ * Create an array of LDAP groups related to a dn/user.
+ *
+ * @param LDAPInterface $ldap An initialized LDAP server interface object.
+ * @param String $name The ldap user name (from login form)
+ * @param String $dn The user's dn
+ *
+ * @return An array of user groups, an empty array if none found and
+ *         FALSE if none defined/could not search LDAP.
+ */
+function ldapgroups_groups_load( $ldap, $dn, $name, $reset=FALSE ) {
+  static $groups_cache = array();
+  if ( $reset ) {
+    $groups_cache = array();
+  }
+  if ( ! $ldap ) {  // allow cache clearing only calls.
+    return FALSE;
   }
 
-  // Strategy 3: groups as entries.
-  $entries_groups = array();
-  $ldapgroups_entries_attribute = _ldapgroups_ldap_info($user, 'ldapgroups_entries_attribute');
-  if (_ldapgroups_ldap_info($user, 'ldapgroups_as_entries')) {
-    foreach (_ldapgroups_ldap_info($user, 'ldapgroups_entries') as $branch) {
-      $entries = $_ldapgroups_ldap->search($branch, $ldapgroups_entries_attribute .'='. $user->ldap_dn, array($ldapgroups_entries_attribute));
-      if (empty($entries) || $entries['count'] == 0)
-        $entries = $_ldapgroups_ldap->search($branch, $ldapgroups_entries_attribute .'='. $user->name, array($ldapgroups_entries_attribute));
-      foreach ($entries as $entry) {
-        if (isset($entry['dn']))
-          $entries_groups[] = $entry['dn'];
+  if ( ! isset($groups_cache[$dn]) ) {
+    $sid = $ldap->getOption('sid');
+
+    // Nothing to do if there are no groups configured.
+    if (! ldapgroups_is_configured($sid))
+      return FALSE;
+
+    // Strategy 1: group extracted from user's DN.
+    $dn_groups = array();
+    if (_ldapgroups_ldap_info($sid, 'ldapgroups_in_dn')) {
+      $pairs = ldap_explode_dn($dn, 0);
+      foreach ($pairs as $p) {
+        $pair = explode('=', $p);
+        if (drupal_strtolower(trim($pair[0])) == drupal_strtolower(_ldapgroups_ldap_info($sid, 'ldapgroups_dn_attribute')))
+          $dn_groups[] = trim($pair[1]);
       }
     }
+
+    // Strategy 2: groups in user attributes.
+    $attrib_groups = array();
+    if (_ldapgroups_ldap_info($sid, 'ldapgroups_in_attr')) {
+      foreach (_ldapgroups_ldap_info($sid, 'ldapgroups_attr') as $attribute)
+        $attrib_groups = array_merge($attrib_groups, $ldap->retrieveMultiAttribute($dn, $attribute));
+    }
+
+    // Strategy 3: groups as entries.
+    $entries_groups = array();
+    $ldapgroups_entries_attribute = _ldapgroups_ldap_info($sid, 'ldapgroups_entries_attribute');
+    if (_ldapgroups_ldap_info($sid, 'ldapgroups_as_entries')) {
+      foreach (_ldapgroups_ldap_info($sid, 'ldapgroups_entries') as $branch) {
+        $entries = $ldap->search($branch, $ldapgroups_entries_attribute .'='. $dn, array($ldapgroups_entries_attribute));
+        if (empty($entries) || $entries['count'] == 0)
+          $entries = $ldap->search($branch, $ldapgroups_entries_attribute .'='. $name, array($ldapgroups_entries_attribute));
+        foreach ($entries as $entry) {
+          if (isset($entry['dn']))
+            $entries_groups[] = $entry['dn'];
+        }
+      }
+    }
+    $groups = array_unique(array_merge($dn_groups, $attrib_groups, $entries_groups));
+
+    // Allow other modules to modify user groups.
+    drupal_alter("ldap_user_groups", $groups, $ldap, $dn, $name );
+
+    $groups_cache[$dn] = $groups;
   }
 
-  $_ldapgroups_ldap->disconnect();
-  return array_unique(array_merge($dn_groups, $attrib_groups, $entries_groups));
+  return $groups_cache[$dn];
 }
 
 /**
  * Grant a user with a role.
  *
- * @param $user
+ * @param $account
  *   A user object.
  * @param $rolename
  *   A name of the role.
  *
  * @return
  */
-function _ldapgroups_grant_role($user, $rolename) {
-  $result = db_query("SELECT * FROM {role} WHERE name = '%s'", $rolename);
+function _ldapgroups_grant_role($account, $rolename) {
+  $result = db_query("SELECT * FROM {role} WHERE LOWER(name) = LOWER('%s')", $rolename);
   if ($row = db_fetch_object($result)) {
-    $result = db_query("SELECT * FROM {users_roles} WHERE uid = %d AND rid = %d", $user->uid, $row->rid);
+    $result = db_query("SELECT * FROM {users_roles} WHERE uid = %d AND rid = %d", $account->uid, $row->rid);
     if (!db_fetch_object($result)) {
-      db_query("INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)", $user->uid, $row->rid);
+      db_query("INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)", $account->uid, $row->rid);
     }
   }
 }
@@ -161,19 +201,19 @@ function _ldapgroups_grant_role($user, $rolename) {
 /**
  * Deny a user with a role.
  *
- * @param $user
+ * @param $account
  *   A user object.
  * @param $rolename
  *   A name of the role.
  *
  * @return
  */
-function _ldapgroups_deny_role($user, $rolename) {
-  $result = db_query("SELECT * FROM {role} WHERE name = '%s'", $rolename);
+function _ldapgroups_deny_role($account, $rolename) {
+  $result = db_query("SELECT * FROM {role} WHERE LOWER(name) = LOWER('%s')", $rolename);
   if ($row = db_fetch_object($result)) {
-    $result = db_query("SELECT * FROM {users_roles} WHERE uid = %d AND rid = %d", $user->uid, $row->rid);
+    $result = db_query("SELECT * FROM {users_roles} WHERE uid = %d AND rid = %d", $account->uid, $row->rid);
     if (db_fetch_object($result)) {
-      db_query("DELETE FROM {users_roles} WHERE uid = %d AND rid = %d", $user->uid, $row->rid);
+      db_query("DELETE FROM {users_roles} WHERE uid = %d AND rid = %d", $account->uid, $row->rid);
     }
   }
 }
@@ -187,13 +227,13 @@ function _ldapgroups_deny_role($user, $rolename) {
  * @return
  */
 function _ldapgroups_create_role($rolename) {
-  $result = db_query("SELECT * FROM {role} WHERE name = '%s'", $rolename);
+  $result = db_query("SELECT * FROM {role} WHERE LOWER(name) = LOWER('%s')", $rolename);
   if (!($row = db_fetch_object($result)))
     db_query("INSERT INTO {role} (name) VALUES ('%s')", $rolename);
 }
 
 /**
- * Filters groups only to a explicitely defined groups.
+ * Filters groups only to the groups defined in the role mapping.
  *
  * @param $groups
  *   An array of the LDAP groups.
@@ -202,39 +242,45 @@ function _ldapgroups_create_role($rolename) {
  *   An array of the filtered groups.
  */
 function _ldapgroups_filter($account, $groups) {
-  if (_ldapgroups_ldap_info($account, 'ldapgroups_mappings_filter') && count(_ldapgroups_ldap_info($account, 'ldapgroups_mappings') > 0)) {
+
+  // Filter by php code first
+  if ($code = _ldapgroups_ldap_info($account, 'ldapgroups_filter_php')) {
+    $groups = drupal_eval($code);
+  }
+
+  if (_ldapgroups_ldap_info($account, 'ldapgroups_mappings_filter') == LDAPGROUPS_ROLE_MODE_USE_MAP && count(_ldapgroups_ldap_info($account, 'ldapgroups_mappings') > 0)) {
     $groups_new = array();
     foreach ($groups as $group) {
       foreach (_ldapgroups_ldap_info($account, 'ldapgroups_mappings') as $group_approved => $role) {
-        if (strcasecmp($group_approved, $group) == 0)
-          $groups_new[] = $role;
+        if (strcasecmp($group_approved, $group) == 0) {
+          $roles = explode(',', $role);
+          foreach ( $roles as $r ) {
+            $groups_new[] = trim($r);
+          }
+        }
       }
     }
-    $groups = $groups_new;
+    $groups = array_unique($groups_new);
   }
-
-  if ($code = _ldapgroups_ldap_info($account, 'ldapgroups_filter_php'))
-    $groups = drupal_eval($code);
-
   return $groups;
 }
 
 /**
  * Maps LDAP group name to a Drupal role.
  *
- * @param $user
- *   A user object.
+ * @param $account
+ *   A user object or sid.
  * @param $group
  *   A LDAP group name.
  *
  * @return
  *   An Drupal role.
  */
-function _ldapgroups_mapping($user, $group) {
-  $ldapgroups_mappings = _ldapgroups_ldap_info($user, 'ldapgroups_mappings');
+function _ldapgroups_mapping($account, $group) {
+  $ldapgroups_mappings = _ldapgroups_ldap_info($account, 'ldapgroups_mappings');
   if (isset($ldapgroups_mappings[$group]))
     return $ldapgroups_mappings[$group];
-  else if (preg_match('/^[^=]+=([^,]+),.*$/', $group, $matches))
+  elseif (preg_match('/^[^=]+=([^,]+),.*$/', $group, $matches))
     return $matches[1];
   else
     return $group;
@@ -254,20 +300,21 @@ function _ldapgroups_ldap_init($sid) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE status = 1 AND sid = %d", $sid));
+  $server = ldapauth_server_load($sid);
 
-  if ($servers[$sid]) {
+  if (! empty($server) && $server->status == 1 ) {
     $_ldapgroups_ldap = new LDAPInterface();
     $_ldapgroups_ldap->setOption('sid', $sid);
-    $_ldapgroups_ldap->setOption('name', $servers[$sid]->name);
-    $_ldapgroups_ldap->setOption('server', $servers[$sid]->server);
-    $_ldapgroups_ldap->setOption('port', $servers[$sid]->port);
-    $_ldapgroups_ldap->setOption('tls', $servers[$sid]->tls);
-    $_ldapgroups_ldap->setOption('encrypted', $servers[$sid]->encrypted);
-    $_ldapgroups_ldap->setOption('basedn', $servers[$sid]->basedn);
-    $_ldapgroups_ldap->setOption('user_attr', $servers[$sid]->user_attr);
+    $_ldapgroups_ldap->setOption('name', $server->name);
+    $_ldapgroups_ldap->setOption('machine_name', $server->machine_name);
+    $_ldapgroups_ldap->setOption('server', $server->server);
+    $_ldapgroups_ldap->setOption('port', $server->port);
+    $_ldapgroups_ldap->setOption('tls', $server->tls);
+    $_ldapgroups_ldap->setOption('enc_type', $server->enc_type);
+    $_ldapgroups_ldap->setOption('basedn', $server->basedn);
+    $_ldapgroups_ldap->setOption('user_attr', $server->user_attr);
+    $_ldapgroups_ldap->setOption('binddn', $server->binddn);
+    $_ldapgroups_ldap->setOption('bindpw', $server->bindpw);
     return $_ldapgroups_ldap;
   }
 }
@@ -287,33 +334,81 @@ function _ldapgroups_ldap_info($sid, $req) {
   if (!($sid = is_object($sid) ? (isset($sid->ldap_config) ? $sid->ldap_config : NULL) : $sid))
     return;
 
-  static $servers = array();
-  if (!isset($servers[$sid]))
-    $servers[$sid] = db_fetch_object(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $sid));
+  $server = ldapauth_server_load($sid);
 
   switch ($req) {
     case 'ldapgroups_in_dn':
-      return $servers[$sid]->ldapgroups_in_dn;
+      return $server->ldapgroups_in_dn;
     case 'ldapgroups_dn_attribute':
-      return !empty($servers[$sid]->ldapgroups_dn_attribute) ? $servers[$sid]->ldapgroups_dn_attribute : LDAPGROUPS_DEFAULT_DN_ATTRIBUTE;
+      return !empty($server->ldapgroups_dn_attribute) ? $server->ldapgroups_dn_attribute : LDAPGROUPS_DEFAULT_DN_ATTRIBUTE;
     case 'ldapgroups_in_attr':
-      return $servers[$sid]->ldapgroups_in_attr;
+      return $server->ldapgroups_in_attr;
     case 'ldapgroups_attr':
-      return !empty($servers[$sid]->ldapgroups_attr) ? unserialize($servers[$sid]->ldapgroups_attr) : array();
+      return !empty($server->ldapgroups_attr) ? unserialize($server->ldapgroups_attr) : array();
     case 'ldapgroups_as_entries':
-      return $servers[$sid]->ldapgroups_as_entries;
+      return $server->ldapgroups_as_entries;
     case 'ldapgroups_entries':
-      return !empty($servers[$sid]->ldapgroups_entries) ? unserialize($servers[$sid]->ldapgroups_entries) : array();
+      return !empty($server->ldapgroups_entries) ? unserialize($server->ldapgroups_entries) : array();
     case 'ldapgroups_entries_attribute':
-      return !empty($servers[$sid]->ldapgroups_entries_attribute) ? $servers[$sid]->ldapgroups_entries_attribute : LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE;
+      return !empty($server->ldapgroups_entries_attribute) ? $server->ldapgroups_entries_attribute : LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE;
     case 'ldapgroups_mappings':
-      return !empty($servers[$sid]->ldapgroups_mappings) ? unserialize($servers[$sid]->ldapgroups_mappings) : array();
+      return !empty($server->ldapgroups_mappings) ? unserialize($server->ldapgroups_mappings) : array();
     case 'ldapgroups_mappings_filter':
-      return $servers[$sid]->ldapgroups_mappings_filter;
+      return $server->ldapgroups_mappings_filter;
     case 'ldapgroups_filter_php':
-      return $servers[$sid]->ldapgroups_filter_php;
+      return $server->ldapgroups_filter_php;
     case 'ldapgroups_groups':
-      return !empty($servers[$sid]->ldapgroups_groups) ? unserialize($servers[$sid]->ldapgroups_groups) : array();
+      return !empty($server->ldapgroups_groups) ? unserialize($server->ldapgroups_groups) : array();
   }
 }
+/**
+ * Retrieve the ldapgroups access rules for the specified server.
+ *
+ * @param int $sid The server id to get the access rules for.
+ * @return An array of access rules with each element an array of type and group
+ */
+function ldapgroups_access_rules( $sid, $reset=FALSE ) {
+  static $acl = array();
+  if ( $reset ) {
+    $acl = array();
+  }
+  if ( $sid === FALSE ) { // Allow resets without lookup.
+    return;
+  }
+  if ( ! isset($acl[$sid])) {
+    $config_info = _ldapgroups_ldap_info($sid, 'ldapgroups_groups');
+    if ( empty($config_info) ) {
+      $acl[$sid][] = array(LDAPGROUPS_RULE_TYPE_ALLOW, LDAPGROUPS_GROUP_ALL);
+    }
+    else {
+      // All rule sets start with deny all
+      $acl[$sid][] = array(LDAPGROUPS_RULE_TYPE_DENY, LDAPGROUPS_GROUP_ALL);
+      // Is just a list of groups?
+      if ( ! preg_match("/^(" . LDAPGROUPS_RULE_TYPE_ALLOW . ")|(" . LDAPGROUPS_RULE_TYPE_DENY . ")??[:]\s.*/i", $config_info[0] ) ) {
+        foreach ( $config_info as $group ) {
+          if ( ! empty ($group) ) {
+            $acl[$sid][] = array(LDAPGROUPS_RULE_TYPE_ALLOW, $group);
+          }
+        }
+      }
+      // A valid ruleset
+      else {
+        foreach ( $config_info as $rule ) {
+          if ( ! empty($rule) ) {
+            $parts = explode(":", $rule, 2);
+            $acl[$sid][] = array(drupal_strtoupper($parts[0]), trim($parts[1]));
+          }
+        }
+      }
+    }
+  }
+  return $acl[$sid];
+}
+function ldapgroups_is_configured( $sid ) {
+  static $configured = array();
 
+  if ( ! isset($configured[$sid]) ) {
+    $configured[$sid] = (_ldapgroups_ldap_info($sid, 'ldapgroups_in_dn') || _ldapgroups_ldap_info($sid, 'ldapgroups_in_attr') || _ldapgroups_ldap_info($sid, 'ldapgroups_as_entries'));
+  }
+  return $configured[$sid];
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.info b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.info
index a01cac5..84b0713 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.info
@@ -1,4 +1,3 @@
-; $Id: ldapgroups.info,v 1.4 2009/02/19 16:56:16 miglius Exp $
 name = Groups
 description = Implements LDAP groups to Drupal roles mapping.
 package = LDAP integration
@@ -6,9 +5,9 @@ dependencies[] = ldapauth
 core = 6.x
 
 
-; Information added by drupal.org packaging script on 2009-10-27
-version = "6.x-1.0-beta2"
+; Information added by drupal.org packaging script on 2012-06-28
+version = "6.x-1.0-beta3"
 core = "6.x"
 project = "ldap_integration"
-datestamp = "1256654469"
+datestamp = "1340919401"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.install b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.install
index 02df8b1..3ff7154 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapgroups.install,v 1.6 2009/07/04 21:54:28 miglius Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.module b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.module
index d97ed71..e72b844 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapgroups.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ldapgroups.module,v 1.40 2009/08/25 13:23:37 miglius Exp $
 
 /**
  * @file
@@ -9,7 +8,19 @@
 //////////////////////////////////////////////////////////////////////////////
 
 define('LDAPGROUPS_DEFAULT_DN_ATTRIBUTE',      'ou');
-define('LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE', 'memberUid');
+define('LDAPGROUPS_DEFAULT_ENTRIES_ATTRIBUTE', 'member');
+
+define('LDAPGROUPS_RULE_TYPE_ALLOW',   'ALLOW');
+define('LDAPGROUPS_RULE_TYPE_DENY',    'DENY');
+define('LDAPGROUPS_RULE_TYPE_ALLOW_X', 'ALLOW-X');
+define('LDAPGROUPS_RULE_TYPE_DENY_X',  'DENY-X');
+
+define('LDAPGROUPS_GROUP_ALL',      'ALL');
+define('LDAPGROUPS_GROUP_EXISTING', 'EXISTING');
+
+define('LDAPGROUPS_ROLE_MODE_DISABLED', 2 );
+define('LDAPGROUPS_ROLE_MODE_USE_MAP',  1 );
+define('LDAPGROUPS_ROLE_MODE_AUTO',     0 );
 
 //////////////////////////////////////////////////////////////////////////////
 // Core API hooks
@@ -27,6 +38,19 @@ function ldapgroups_menu() {
       'access arguments' => array('administer ldap modules'),
       'file' => 'ldapgroups.admin.inc',
     ),
+    'admin/settings/ldap/ldapgroups/configure' => array(
+      'title' => 'Settings',
+      'type' => MENU_DEFAULT_LOCAL_TASK,
+    ),
+    'admin/settings/ldap/ldapgroups/test' => array(
+      'title' => 'Test Group Settings',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('ldapgroups_user_test'),
+      'access arguments' => array('administer ldap modules'),
+      'file' => 'ldapgroups.admin.inc',
+      'type' => MENU_LOCAL_TASK,
+      'weight' => 1,
+    ),
     'admin/settings/ldap/ldapgroups/edit' => array(
       'title' => 'Groups',
       'page callback' => 'drupal_get_form',
@@ -51,12 +75,150 @@ function ldapgroups_menu() {
  * Implements hook_user().
  */
 function ldapgroups_user($op, &$edit, &$account, $category = NULL) {
+
+  // Only care about ldap authenticated users.
+  if (!isset($account->ldap_authentified))
+    return;
+
   switch ($op) {
     case 'login':
-      require_once(drupal_get_path('module', 'ldapgroups') .'/includes/LDAPInterface.inc');
-      require_once(drupal_get_path('module', 'ldapgroups') .'/ldapgroups.inc');
+      module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+      module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
+      module_load_include('inc', 'ldapgroups', 'ldapgroups');
       ldapgroups_user_login($account);
       break;
   }
 }
+/**
+ * Implementation of hook_schema_alter().
+ *
+ * @param &$schema Nested array describing the schemas for all modules.
+ */
+function ldapgroups_schema_alter($schema) {
+  $schema['ldapauth']['fields']['ldapgroups_in_dn'] = array(
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => '0',
+  );
+  $schema['ldapauth']['fields']['ldapgroups_dn_attribute'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+  );
+  $schema['ldapauth']['fields']['ldapgroups_attr'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+  );
+  $schema['ldapauth']['fields']['ldapgroups_in_attr'] = array(
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => '0',
+  );
+  $schema['ldapauth']['fields']['ldapgroups_as_entries'] = array(
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => '0',
+  );
+  $schema['ldapauth']['fields']['ldapgroups_entries'] = array(
+    'type' => 'text',
+  );
+  $schema['ldapauth']['fields']['ldapgroups_entries_attribute'] = array(
+    'type' => 'varchar',
+    'length' => 255,
+  );
+  $schema['ldapauth']['fields']['ldapgroups_mappings'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapgroups_mappings_filter'] = array(
+    'type' => 'int',
+    'size' => 'tiny',
+    'not null' => TRUE,
+    'default' => '0',
+  );
+  $schema['ldapauth']['fields']['ldapgroups_filter_php'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+  $schema['ldapauth']['fields']['ldapgroups_groups'] = array(
+    'type' => 'text',
+    'not null' => FALSE,
+  );
+}
+/**
+ * Implementation of hook_ldap_user_deny_alter.
+ *
+ * User denied if server access limited by group(s) and user is not in one.
+ */
+function ldapgroups_ldap_user_deny_alter( &$denied, $ldap, $name, $dn, $account ) {
+
+  module_load_include('inc', 'ldapgroups', 'ldapgroups');
+
+  $sid = $ldap->getOption('sid');
+
+  $groups_allowed = _ldapgroups_ldap_info($sid, 'ldapgroups_groups');
+  if ( ! ldapgroups_is_configured($sid) || empty($groups_allowed) ) {
+    return;  // Nothing to do here.
+  }
+
+  $user_groups = ldapgroups_groups_load($ldap, $dn, $name);
+  if ( $user_groups === FALSE ) { // Problem getting groups!
+    $denied = TRUE;
+    return;
+  }
+  $access_rules = ldapgroups_access_rules($ldap->getOption('sid'));
+
+  $allowed = FALSE;
+  foreach ( $access_rules as $rule ) {
+    $type = $rule[0];
+    $rule_group = drupal_strtoupper($rule[1]);
+
+    // See if the rule group matches the user.
+    $matched = FALSE;
+    switch ( $rule_group ) {
+      case LDAPGROUPS_GROUP_ALL:
+        $matched = TRUE;
+        break;
+      case LDAPGROUPS_GROUP_EXISTING:
+        if ( $account->ldap_authentified ) {
+          $matched = TRUE;
+        }
+        break;
+      default:
+        foreach ( $user_groups as $group ) {
+          if ( drupal_strtoupper($group) == $rule_group ) {
+            $matched = TRUE;
+            break;
+          }
+        }
+    }
+    // Rule matched, apply action.
+    if ( $matched ) {
 
+      // Handle the match results according to rule type.
+      switch ( $type ) {
+        case LDAPGROUPS_RULE_TYPE_ALLOW:
+          $allowed = TRUE;
+          break;
+        case LDAPGROUPS_RULE_TYPE_ALLOW_X:
+          return;  // Found Allowed exit rule - hook says do nothing
+        case LDAPGROUPS_RULE_TYPE_DENY:
+          $allowed = FALSE;
+          break;
+        case LDAPGROUPS_RULE_TYPE_DENY_X:
+          $denied = TRUE;  // Found DENIED exit rule, deny and exit.
+          return;
+          break;
+        default:
+          drupal_set_message(t("Invalid rule type, @type, found in ldapgroups access rules for server, @server!", array('@type' => $type, '@server' => $ldap->getOption('name'))));
+      }
+    }
+  }
+
+  if ( ! $allowed ) {
+    $denied = TRUE;
+  }
+
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.css b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.css
new file mode 100644
index 0000000..467e25e
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.css
@@ -0,0 +1,9 @@
+ form#dblog-filter-form div#edit-type-wrapper,
+table#admin-dblog th img
+{ display: none;}
+code.export-summary {font-weight: normal;}
+
+table#admin-dblog th a,
+table#admin-dblog th {text-decoration: none; color: #000000;}
+th code {}
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.info b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.info
new file mode 100644
index 0000000..3911c1b
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.info
@@ -0,0 +1,12 @@
+name = "LDAP Help"
+description = LDAP Integration Admin Help.
+package = LDAP integration
+core = 6.x
+dependencies[] = ldapauth
+
+; Information added by drupal.org packaging script on 2012-06-28
+version = "6.x-1.0-beta3"
+core = "6.x"
+project = "ldap_integration"
+datestamp = "1340919401"
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.module b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.module
new file mode 100644
index 0000000..6bd377d
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp.module
@@ -0,0 +1,364 @@
+<?php
+/**
+ * @file
+ * The ldaphelp module is a module to help admins debug ldap_integration modules.
+ *
+ */
+
+
+global $_ldaphelp_ldaps;
+
+$default_fields['server-settings']['port'] = 389;
+$default_fields['server-settings']['tls'] = 1;
+$default_fields['server-settings']['encrypted'] = 0;
+$default_fields['login-procedure']['user_attr'] = 'uid';
+$default_fields['login-procedure']['mail_attr'] = 'mail';
+
+// http://msdn.microsoft.com/en-us/library/aa705886(VS.85).aspx
+$_ldaphelp_ldaps['ad']['name'] = t('Active Directory LDAP');
+$_ldaphelp_ldaps['ad']['description'] = t('Microsoft Active Directory');
+$_ldaphelp_ldaps['ad']['fields'] = $default_fields;
+$_ldaphelp_ldaps['ad']['fields']['login-procedure']['user_attr'] = 'sAMAccountName';
+$_ldaphelp_ldaps['ad']['person_object_class'] = 'person';
+$_ldaphelp_ldaps['ad']['fingerprint_attribute'] = 'mS-DS-CreatorSID';
+
+// http://www.novell.com/documentation/edir873/index.html?page=/documentation/edir873/edir873/data/h0000007.html
+$_ldaphelp_ldaps['novell_edir']['name'] = t('Novell eDirectory');
+$_ldaphelp_ldaps['novell_edir']['description'] = t('Novell eDirectory LDAP');
+$_ldaphelp_ldaps['novell_edir']['fields'] = $default_fields;
+$_ldaphelp_ldaps['novell_edir']['person_object_class'] = 'person';
+
+$_ldaphelp_ldaps['openldap']['name'] = t('openLDAP');
+$_ldaphelp_ldaps['openldap']['description'] = t('openLDAP default configuration');
+$_ldaphelp_ldaps['openldap']['fields'] = $default_fields;
+$_ldaphelp_ldaps['openldap']['fields']['login-procedure']['user_attr'] = 'cn';
+$_ldaphelp_ldaps['openldap']['person_object_class'] = 'person';
+
+
+// http://images.apple.com/server/macosx/docs/Open_Directory_Admin_v10.5_3rd_Ed.pdf
+$_ldaphelp_ldaps['macosxldap']['name'] = t('Mac OS X Server LDAP');
+$_ldaphelp_ldaps['macosxldap']['description'] = t('A variation on OpenLDAP');
+$_ldaphelp_ldaps['macosxldap']['fields'] = $default_fields;
+$_ldaphelp_ldaps['macosxldap']['fields']['login-procedure']['user_attr'] = 'uid';
+$_ldaphelp_ldaps['macosxldap']['person_object_class'] = 'person';
+$_ldaphelp_ldaps['macosxldap']['fingerprint_attribute'] = 'apple-generateduid';
+
+/**
+ * Implementation of hook_init().
+ */
+function ldaphelp_init() {
+  module_load_include('inc', 'ldapauth', 'ldapauth.admin');
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
+  drupal_add_css(drupal_get_path('module', 'ldaphelp') .'/ldaphelp.css', 'module');
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function ldaphelp_menu() {
+  $items = array();
+  $items['admin/settings/ldap/help'] = array(
+    'title' => t('LDAP Help'),
+    'description' => t('Debugging and Configuration Help with LDAP'),
+    'page callback' => 'ldaphelp_main',
+    'access arguments' => array('administer ldap modules'),
+  );
+
+  $items['admin/settings/ldap/help/resources'] = array(
+    'title' => t('Resources'),
+    'description' => t('Some help resources for LDAP modules'),
+    'page callback' => 'ldaphelp_main',
+    'access arguments' => array('administer ldap modules'),
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 2,
+  );
+
+  $items['admin/settings/ldap/help/status'] = array(
+    'title' => t('Status'),
+    'description' => t('LDAP status page'),
+    'page callback' => 'ldaphelp_status',
+    'access arguments' => array('administer ldap modules'),
+    'file' => 'ldaphelp_status.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 4,
+  );
+
+  $items['admin/settings/ldap/help/watchdog'] = array(
+    'title' => t('Watchdog'),
+    'description' => t('LDAP watchdog logs'),
+    'page callback' => 'ldaphelp_watchdog',
+    'access arguments' => array('administer ldap modules'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 5,
+  );
+
+  $items['admin/settings/ldap/help/addcommon'] = array(
+    'title' => t('Common LDAPs'),
+    'description' => 'Add a new LDAP starting with common defaults such as Active Directory defaults.',
+    'page callback' => 'ldaphelp_addcommon',
+    'access arguments' => array('administer ldap modules'),
+    'type' => MENU_LOCAL_TASK,
+     'weight' => 7,
+  );
+
+  $items['admin/settings/ldap/help/wizard'] = array(
+    'title' => t('Wizard'),
+    'description' => t('A multi step form to help figure out LDAP server configuration.'),
+    'access arguments' => array('administer ldap modules'),
+    'file' => 'ldaphelp_wizard.inc',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 13,
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('ldaphelp_wizard_form'),
+  );
+
+
+  return $items;
+}
+
+
+function _ldaphelp_bind_test($ldapserver) {
+    global $_ldapauth_ldap;
+    $test = array();
+    $_ldapauth_ldap = new LDAPInterface();
+    foreach ($ldapserver as $key => $value) {
+      $_ldapauth_ldap->setOption($key, $value);
+    }
+
+    if ($_ldapauth_ldap->getOption('binddn') && $_ldapauth_ldap->getOption('bindpw')) {
+      $test['bind_result'] = $_ldapauth_ldap->connectAndBind($_ldapauth_ldap->getOption('binddn'), $_ldapauth_ldap->getOption('bindpw'));
+      $test['bind_type'] = "non-anon";
+
+    }
+    else {
+      $test['bind_result'] = $_ldapauth_ldap->connectAndBind();
+      $test['bind_type'] = "anon";
+    }
+
+    if ($test['bind_result']) {
+      $test['bind_result_text'] =  "Success";
+      $test['bind_success'] = TRUE;
+    }
+    else {
+      $test['bind_result_error'] = ldap_error($_ldapauth_ldap->connection);
+      $test['bind_result_errno'] = ldap_errno($_ldapauth_ldap->connection);
+      $test['bind_result_text'] =  "Fail";
+      $test['bind_success'] = FALSE;
+    }
+
+    return $test;
+
+}
+
+function ldaphelp_bind_trial_message($trial) {
+  $tls = ($trial['tls']) ? "1" : "0";
+  $text = "Failed to bind to server: ". $trial['server'] .", port=". $trial['port'] .", tls=$tls <br/>";
+  $text .= "error: ". $trial['results']['bind_result_error'];
+  return $text;
+}
+
+
+function ldaphelp_addcommon() {
+
+  if (!module_exists('ldapauth')) {
+    drupal_set_message('Links below will not work until ldapauth module is not enabled.', 'warning');
+  }
+  global $_ldaphelp_ldaps;
+  $content = '<h3>'. t('LDAP Integration Default LDAPs') .'</h3>';
+  $content .= '<p>'. t('These links simply start an Add LDAP Server form with some common defaults.') .'</p>';
+  $content .= '<ul>';
+
+  foreach ($_ldaphelp_ldaps as $ldap_type => $default_data) {
+    $content .= "<li>". l($default_data['name'] . t(' Common Settings: '), 'admin/settings/ldap/ldapauth/add/'. $ldap_type) ."<br/><code>";
+    $content .= ldaphelp_display_settings_short($_ldaphelp_ldaps[$ldap_type]['fields']);
+    $content .= "</code></li>";
+  }
+  $content .= "</ul>";
+  return $content;
+}
+
+
+function ldaphelp_form_ldapauth_admin_form_alter(&$form, $form_state) {
+
+  global $_ldaphelp_ldaps;
+
+  if (in_array(arg(4), array_keys($_ldaphelp_ldaps))) {
+    $ldap_type = arg(4);
+
+    foreach ($_ldaphelp_ldaps[$ldap_type]['fields'] as $fieldset => $pairs) {
+      foreach ($pairs as $fieldname => $value ) {
+        $form[$fieldset][$fieldname]['#default_value'] = $value;
+      }
+    }
+  }
+
+  // don't hide/collapse login fieldset if data in it.
+  if ($form['login-procedure']['basedn']['#default_value']  ||
+      $form['login-procedure']['user_attr']['#default_value']  ||
+      $form['login-procedure']['mail_attr']['#default_value'] ) {
+    $form['login-procedure']['#collapsed'] = FALSE;
+  }
+}
+
+
+function _ldaphelp_get_configuration($admin_settings = TRUE, $sids = NULL) {
+
+  if ($admin_settings) {
+    $form = ldapauth_admin_settings();
+    $data['admin_settings'] = _ldaphelp_get_form_values($form);
+  }
+
+  $data['ldaps'] = array();
+
+  if ( ! (is_array($sids) && count($sids) == 0)) {
+    if ($sids == NULL) {
+      $result = db_query("SELECT sid FROM {ldapauth} ORDER BY name");
+      while ($row = db_fetch_object($result)) {
+        $sids[] = $row->sid;
+      }
+    }
+    if (count($sids) > 0) {
+      foreach ($sids as $sid) {
+        $form = ldapauth_admin_form($form_state, 'edit', $sid);
+        $data['ldaps'][$sid] = _ldaphelp_get_form_values($form);
+        unset($data['ldaps'][$sid]['bindpw_clear']);
+      }
+    }
+  }
+  return $data;
+}
+
+function _ldaphelp_get_form_values(&$form) {
+  $values = array();
+  foreach ($form as $key => $item) {
+    if ($form[$key]['#type'] == 'fieldset') {
+      foreach ($form[$key] as $subskey => $subitem) {
+        if ( drupal_substr($subskey, 0, 1) != '#') {
+          $values[$subskey] = ($subitem['#value']) ? $subitem['#value'] : $subitem['#default_value'];
+        }
+      }
+    }
+    elseif (drupal_substr($key, 0, 1) != '#' && $key != 'submit' && $key != 'reset') {
+      $values[$key] = ($item['#value']) ? $item['#value'] : $item['#default_value'];
+    }
+  }
+  return $values;
+}
+
+function ldaphelp_display_settings_short($ldap) {
+  foreach ( $ldap as $fieldset => $pairs) {
+    foreach ($ldap[$fieldset] as $fieldname => $value ) {
+      $ret .= "$fieldname = $value; ";
+    }
+  }
+  return $ret;
+}
+
+function ldaphelp_arraytohtmllist($array) {
+  foreach ($array as $key => $value) {
+    $text .= "<li>$key: $value</li>\r\n";
+  }
+  return "<ul>$text</ul>";
+}
+
+function ldaphelp_arraytohtml($array) {
+  foreach ($array as $key => $value) {
+    $text .= "<br/>$key: $value";
+  }
+  return $text;
+}
+
+function ldaphelp_arraytotxt($array) {
+  foreach ($array as $key => $value) {
+    $text .= "$key: $value\r\n";
+  }
+  return $text;
+}
+
+function ldaphelp_get_export_comments($export_conf_data) {
+  if ($export_conf_data['admin_settings']) {
+    $text = "\r\nAdmin Settings: \r\n".  ldaphelp_arraytotxt($export_conf_data['admin_settings']);
+  }
+  foreach ($export_conf_data['ldaps'] as $sid => $ldap) {
+    $text .= "\r\n" . ldaphelp_arraytotxt($ldap);
+  }
+  return $text;
+}
+
+function ldaphelp_main() {
+
+  $text = '<h3>'. t('LDAP Help Module') .'</h3><p>'.
+  t('This module is meant to assist Drupal admins in configuring, debugging, sharing, and submitting
+  support and bug request related to LDAP integration modules.') .'<strong><em>'.
+  t(' LDAP Help Module should be disabled unless you are debugging or configuring ldap problems.') .'</em></strong>'.
+  t(' It adds no functionality to the LDAP modules.') .'</p>';
+
+  $path = drupal_get_path("module", "ldapauth");
+
+  $text .= <<<EOT
+
+  <h3>LDAP Integration Module Resources</h3>
+  <ul>
+  <li>The <a href="/$path/README.txt">readme file</a> covers basics of module.</li>
+  <li><a href="http://drupal.org/node/62217">LDAP Integration Contributed Module Documentation</a>
+  overviews ldapauth, ldapgroups, and ldapdata modules and their installation and configuration.
+  Sometimes out of date.  Be sure that documentation matches the version you are using.  This
+  is a great opportunity for new users to contribute to the module:  when  you first use the
+  documentation take notes on what needs to be clarified.
+  </li>
+  <li>Search <a href="http://drupal.org/project/issues/search/ldap_integration">issue que</a>  For best results,
+  select version and category before searching.</li>
+  <li><a href="http://drupal.org/project/issues/ldap_integration">View all issues</a></li>
+  </ul>
+
+   <h3>General Drupal Support Help</h3>
+
+  <ul>
+  <li><a href="http://drupal.org/node/314185">How to report a problem in Drupal</a></li>
+  <li><a href="http://drupal.org/node/19279">How to report bugs in Drupal</a></li>
+  <li><a href="http://drupal.org/Troubleshooting-FAQ">Drupal Troubleshooting FAQ</a></li>
+  </ul>
+
+  <h3>General LDAP Resources</h3>
+  <ul>
+  <li><a href="http://us.php.net/manual/en/book.ldap.php">PHP LDAP</a></li>
+  <li><a href="http://directory.apache.org/studio/">Apache Directory Studio</a> LDAP Browser and Directory Client.</li>
+  <li><a href="http://www.novell.com/documentation/edir873/index.html?page=/documentation/edir873/edir873/data/h0000007.html">Novell Edirectory</a></li>
+  <li><a href="http://images.apple.com/server/macosx/docs/Open_Directory_Admin_v10.5_3rd_Ed.pdf">Apple Open Directory</a></li>
+  <li><a href="http://msdn.microsoft.com/en-us/library/aa705886(VS.85).aspx">Microsoft Active Directory LDAP</a></li>
+  </ul>
+
+EOT;
+
+
+  return $text;
+}
+
+function ldaphelp_watchdog() {
+
+  /* watchdog table */
+  drupal_add_css(drupal_get_path('module', 'ldaphelp') .'/ldaphelp.css', 'module', 'all', FALSE);
+  $path =    drupal_get_path("module", "ldapauth");
+  $_content = "";
+  if (module_exists('dblog')) {
+    include_once(drupal_get_path('module', 'dblog') .'/dblog.admin.inc');
+
+    $_SESSION['dblog_overview_filter']['type'] = Array('ldapauth' => 'ldapauth');
+    if (! ($_SESSION['dblog_overview_filter'] || $_SESSION['dblog_overview_filter']['severity'])) {
+      $_SESSION['dblog_overview_filter']['severity'] = array();
+    }
+
+    $_content .= "<h3>". t('LDAP Watchdog Errors and Notifications') ."</h3>";
+    $_content .= dblog_overview();
+    $_content .= l('...more watchdog', 'admin/reports/dblog');
+  }
+  else {
+    $_content .= "<h3>". t('LDAP Help Watchdog Errors and Notifications') ."</h3>";
+    $_content .= 'This feature requires <code>Database logging</code> module to be turned on. ';
+    $_content .= l('Module enable page', 'admin/build/modules');
+  }
+
+
+  return $_content;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_status.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_status.inc
new file mode 100644
index 0000000..0fe1fca
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_status.inc
@@ -0,0 +1,373 @@
+<?php
+/**
+ * @file
+ * status file for ldaphelp module
+ *
+ */
+
+define('REQUIREMENT_INFO', -1);
+define('REQUIREMENT_OK', 0);
+define('REQUIREMENT_WARNING', 1);
+define('REQUIREMENT_ERROR', 2);
+
+
+function ldaphelp_status() {
+
+  drupal_add_css(drupal_get_path('module', 'system') .'/system.css', 'module', 'all', FALSE);
+  include_once(drupal_get_path('module', 'system') .'/system.admin.inc');
+
+  // server and LDAP Module Data
+  $heading = "Server and LDAP Module";
+  $key = 'server';
+
+  $phpinfo = ldaphelp_parsePHPModules();
+
+  $status = ldaphelp_get_server($phpinfo, $info);
+
+  $reporting_text .= _ldaphelp_parse_status_to_text($status, $heading);
+
+  $content .=  "<h3>$heading</h3>" . theme_status_report($status);
+
+  // overall ldapauth settings
+  $heading = "LDAP Authentication Settings";
+  $status = ldaphelp_get_ldapauth($info);
+  $content .= "<h3>$heading</h3>". theme_status_report($status);
+  $reportingtext .= _ldaphelp_parse_status_to_text($status, $heading);
+
+  $conf_data = _ldaphelp_get_configuration(TRUE, NULL);
+  $ldaps  = $conf_data['ldaps'];
+
+  foreach ($ldaps as $sid => $ldap) {
+    $heading =  $ldap['name'] .' LDAP (sid='. $ldap['sid'] .')';
+    $edit_ldap = l(t('[edit]'), "admin/settings/ldap/ldapauth/edit/". $sid );
+    $test_results = _ldaphelp_testldap($ldap, $sid);
+    $status = ldaphelp_get_ldap_server($info, $sid, $ldap, $test_results, $edit_ldap);
+    $content .= "<h3>$heading</h3>". theme_status_report($status);
+    $reportingtext .= _ldaphelp_parse_status_to_text($status, $heading, array($edit_ldap => ""));
+  }
+
+
+  $reportingtext .= "ADMIN SETTINGS". ldaphelp_arraytotxt($conf_data['admin_settings']);
+  foreach ($conf_data['ldaps'] as $sid => $ldap) {
+    $reportingtext .= "\r\nLDAP sid=$sid\r\n". ldaphelp_arraytotxt($conf_data['ldaps'][$sid]);
+  }
+  $content .= '<h3>Bug and Support Reporting Info</h3><p>
+  Cut and paste this into a text file and attach it to any bug or support requests.
+  <strong><em>Remove or replace any data you feel should not be made public before sharing this data.</em></strong></p>
+  <form><textarea cols="80" rows="20">'. $reportingtext .'</textarea></form>';
+
+  return $content;
+}
+function ldaphelp_get_server($phpinfo, &$info) {
+
+  $info['phpversion'] = phpversion();
+  $info['ldaploaded'] = extension_loaded('ldap');
+  $info['ldap'] = $phpinfo['ldap'];
+
+  $text = "";
+  foreach ($phpinfo['ldap'] as $key => $value) {
+    $text .= "<br/>$key: ". $value[0];
+  }
+  $info['ldap']['text'] = $text;
+
+  //$info['ldap']['text'] = ldaphelp_arraytohtml($phpinfo['ldap']);
+
+  $modules = module_rebuild_cache();
+  $ldapmodules = array('ldapauth', 'ldapgroups', 'ldapdata', 'ldaphelp');
+  foreach ( $ldapmodules as $ldapmodule) {
+    $data['status'] = $modules[$ldapmodule]->status;
+    $data['schema_version'] = $modules[$ldapmodule]->schema_version;
+    $data['version'] = $modules[$ldapmodule]->info['version'];
+    $data['text'] = "status: ". $data['status']
+      .", schema_version: " . $data['schema_version']
+      .", v: " . $data['version'];
+
+    $info[$ldapmodule] = $data;
+  }
+
+  // set status array to be converted into html table.
+  if ($phpinfo['Apache Environment']) {
+    $status[] = array(
+      'title' => 'Apache',
+      'value' => $phpinfo['Apache Environment']['SERVER_SOFTWARE']
+    );
+  }
+  elseif ($_SERVER["SERVER_SOFTWARE"]) {
+        $status[] = array(
+      'title' => 'SERVER_SOFTWARE',
+      'value' => $_SERVER["SERVER_SOFTWARE"]
+    );
+
+  }
+
+  $status[] = array(
+    'title' => 'PHP version',
+    'value' => phpversion()
+  );
+
+  if (! $info['ldaploaded']) {
+    $status[] = array( 'title' => 'PHP ldap extension not loaded',
+    'value' => l(t('PHP LDAP extension'), 'http://us2.php.net/ldap') . ' ' . t('must be loaded for LDAP Integration to work.
+    It comes compiled with most versions of PHP.')  ,
+    'severity' => REQUIREMENT_ERROR);
+  }
+  else {
+    $status[] = array( 'title' => 'PHP ldap extension data',
+    'value' => $info['ldap']['text']  ,
+    'severity' => 0);
+  }
+
+  $status[] = array('title' => 'Drupal', 'value' => VERSION , 'severity' => "0");
+
+  foreach ( $ldapmodules as $ldapmodule) {
+    $status[] =  array('title' => $ldapmodule, value => $info[$ldapmodule]['text'], 'severity' => "0");
+  }
+  return $status;
+}
+
+function ldaphelp_get_ldapauth(&$info) {
+  $info['ldapauth']['login_process_text'] = (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_EXCLUSIVED) ? "LDAP directory only" : "Mixed Mode";
+  $info['ldapauth']['login_process_text'] .= " (". LDAPAUTH_LOGIN_PROCESS .')';
+  $info['ldapauth']['login_conflict_text'] = (LDAPAUTH_LOGIN_CONFLICT == LDAPAUTH_CONFLICT_RESOLVE) ? "Associate local account with the ldap entry" : "Disallow login and log the conflict";
+  $info['ldapauth']['login_conflict_text'] .= "  (". LDAPAUTH_LOGIN_CONFLICT .')';
+
+  $status[] =  array(
+    'title' => 'Authentication mode',
+    value =>   $info['ldapauth']['login_process_text'] ,
+  'severity' => "0");
+
+  $status[] =  array(
+    'title' => 'Conflict Resolve Feature',
+    value =>   $info['ldapauth']['login_conflict_text'],
+  'severity' => "0");
+
+  $info['ldapauth']['ldapauth_disable_pass_change_text'] = (LDAPAUTH_FORGET_PASSWORDS == TRUE) ? "Do not " : "Do";
+  $info['ldapauth']['ldapauth_disable_pass_change_text'] .= 'store users\' passwords during sessions.';
+
+  $status[] =  array('title' => 'Security Options', value => $info['ldapauth']['ldapauth_disable_pass_change_text'], 'severity' => "0");
+
+  $info['ldapauth']['ldapauth_disable_pass_change_text'] = (LDAPAUTH_DISABLE_PASS_CHANGE == TRUE) ? "R" : "Do not R";
+  $info['ldapauth']['ldapauth_disable_pass_change_text'] .= 'emove password change fields from user edit form';
+
+  $info['ldapauth']['ldapauth_alter_email_field_text'] = 'ldapauth_alter_email_field: '. LDAPAUTH_ALTER_EMAIL_FIELD ;
+
+  $status[] =  array('title' => 'LDAP UI Options', value => $info['ldapauth']['ldapauth_disable_pass_change_text'] ."<br/>". $info['ldapauth']['ldapauth_alter_email_field_text'], 'severity' => "0");
+
+  return $status;
+}
+function ldaphelp_get_ldap_server(&$info, $sid, &$ldap, &$test, $edit_ldap) {
+
+  $description =  "server: ". $ldap['server'] .
+    "<br/>port: " . $ldap['port'] .
+    "<br/>tls: ". $ldap['tls'] .
+    "<br/>encrypted: ". $ldap['encrypted'];
+  $status[] = array( 'title' => 'Server Settings '. $edit_ldap, 'value' => $description , 'severity' => "0");
+
+  // login procedure
+  $description =  "user_attr:<code> ". $ldap['user_attr'] .
+    "</code><br/>mail_attr: <code>". $ldap['mail_attr'] ."</code>";
+  $status[] = array( 'title' => 'Login Procedure '. $edit_ldap, 'value' => $description , 'severity' => "0");
+
+  // advanced configuration
+  $description = "binddn: <code>". $ldap['binddn'] .
+    "</code><br/>bindpw: ". $ldap['bindpw'];
+  $status[] = array( 'title' => 'Advanced Configuration '. $edit_ldap, 'value' => $description , 'severity' => "0");
+
+
+  // bind test
+  $description =   "Bind Type: ". $test['bind_type'] .
+    "<br/>Bind Result?: ". $test['bind_result_text'];
+  if (! $test['bind_success']) {
+    $description .=  ldaphelp_arraytohtml(
+      array(
+      'LDAP Error' => $test['bind_result_error'],
+      'LDAP Error Number' => $test['bind_result_errno'],
+      ));
+  }
+  // 49: invalid credentials.
+  $severity = ($test['bind_success'] === TRUE) ? "0" : "2";
+  $status[] = array( 'title' => 'Bind Test to <code>'. $ldap['server'] ."</code>", 'value' => $description , 'severity' => $severity);
+
+
+  foreach ($test['basedns'] as  $basedn) {
+
+    if (isset($basedn['result']['count'])) {
+        $usersfound =  TRUE ;
+        $usersfoundtext = "Yes";
+        $severity = 0;
+    }
+    else {
+      $usersfound =  FALSE ;
+      $usersfoundtext = "No";
+      $validbasedn = $basedn['basedn'];
+      $severity = 2;
+
+      $result = ldaphelp_baddn($basedn['basedn'], 'Base DN') ;
+
+      if (!$result['boolean']) {
+        $error['mal_formed_dn'] = $result['text'];
+      }
+
+      $error['bind_success_search_failed'] = "<br/>Successfully bound to server <code>". $ldap['server'] ."</code>, but found" .
+      " no users in generic search (". $ldap['user_attr'] ."=*)  Suggestions: <ul>";
+
+      if ($basedn['result']['no_user_attr_success'] && ! $data['result']['with_user_attr_success']) {
+        $error['bind_success_search_failed'] .= "<li> User attribute name <code>" .  $ldap['user_attr'] .
+        " </code> may be wrong. Found LDAP entries with search filter <code>CN=*</code>, ".
+        " but not with search filter <code>". $ldap['user_attr'] ."=*</code>.  </li>";
+      }
+      elseif ($tests[$sid]['bind_type'] == 'non-anon') { // no results in either search and non anonymous search
+        // you are not allowed to perform an anonymous search of your ldap
+        // or you meant to perform a non-anonymouse search but left the password empty.
+        $error['bind_success_search_failed'] .= "<li>Anonymous searches of your LDAP or the Base DN <code>".  $basedn['basedn'] .
+        " </code> may not be allowed.  Perhaps you need to create or use a service account to query the ldap.</li>";
+      }
+      $error['bind_success_search_failed'] .= "<li>Perhaps Base DN is incorrect: <code>".  $basedn['basedn'] ."</code></li>";
+      $error['bind_success_search_failed'] .= "</ul>";
+
+    }
+
+  $header = 'Base DN:<br/><code>'. $basedn['basedn'] .'</code>';
+  $value =   "<br/>Found Users in search of base DN?: <strong>". $usersfoundtext ."</strong>".
+    $error['bind_success_search_failed']
+    . $error['mal_formed_dn'];
+  $status[] = array( 'title' =>  $header .' '. $edit_ldap, 'value' => $value , 'severity' => $severity);
+  }
+  return $status;
+
+}
+function _ldaphelp_parse_status_to_text($status, $heading, $replacements = array()) {
+
+  $var_del = "\r\n------------------------------------------------\r\n";
+  $section_del = "\r\n\r\n================================================\r\n";
+  $name_val_del = ":\r\n";
+  $lr = "\r\n";
+
+  $replacements = array_merge($replacements, array(
+  '<br/>' => $lr,
+  '<ul>' => $lr,
+  '</ul>' => $lr,
+  '<li>' => $lr,
+  '</li>' => "",
+  "<code>" => "",
+  "</code>" => "",
+  "<strong>" => "",
+  "</strong>" => ""
+  ));
+
+
+  $content = drupal_strtoupper($heading) . $lr  ;
+  foreach ($status as $item) {
+  //  $item['value'] = str_replace(array('<br/>','<ul>','</ul>','<li>','</li>',"<code>","</code>"),
+   // array("\r\n","\r\n","\r\n","\r\n","\r\n"),$item['value'] );
+    $item['value'] = str_replace(array_keys($replacements), array_values($replacements), $item['value'] );
+    $item['title'] = str_replace(array_keys($replacements), array_values($replacements), $item['title'] );
+    $content .=   $item['title'] . $name_val_del . $item['value'] . $var_del;
+  }
+  return $content;
+}
+
+function _ldaphelp_testldap($ldap, $sid) {
+  global $_ldapauth_ldap;
+
+ // foreach ($ldaps as $sid => $ldap) {
+    $test = array();
+    // Initialize LDAP.
+    _ldapauth_init($sid);
+
+    if ($_ldapauth_ldap->getOption('binddn') && $_ldapauth_ldap->getOption('bindpw')) {
+      $test['bind_result'] = $_ldapauth_ldap->connectAndBind($_ldapauth_ldap->getOption('binddn'), $_ldapauth_ldap->getOption('bindpw'));
+      $test['bind_type'] = "non-anon";
+
+    }
+    else {
+      $test['bind_result'] = $_ldapauth_ldap->connectAndBind();
+      $test['bind_type'] = "anon";
+    }
+
+    if ($test['bind_result']) {
+      $test['bind_result_text'] =  "Success";
+      $test['bind_success'] = TRUE;
+    }
+    else {
+      $test['bind_result_error'] = ldap_error($_ldapauth_ldap->connection);
+      $test['bind_result_errno'] = ldap_errno($_ldapauth_ldap->connection);
+      $test['bind_result_text'] =  "Fail";
+      $test['bind_success'] = FALSE;
+    }
+
+    foreach (explode("\r\n", $_ldapauth_ldap->getOption('basedn')) as $base_dn) {
+      $user_attr = $_ldapauth_ldap->getOption('user_attr') ? $_ldapauth_ldap->getOption('user_attr') : LDAPAUTH_DEFAULT_USER_ATTR;
+      $filter = "$user_attr=*";
+      $result = $_ldapauth_ldap->search($base_dn, $filter, array($user_attr), 0, 1, 1);
+      $basedn_data = array();
+      $basedn_data['result']['error'] = ldap_error($_ldapauth_ldap->connection);
+      $basedn_data['basedn'] = $base_dn;
+      $basedn_data['result']['count'] = $result['count'];
+      $basedn_data['result']['sample0'] = $result[0];
+      $basedn_data['result']['dnufn'] = ldap_dn2ufn($base_dn);
+
+      if (! $basedn_data['result']['count']) {
+          $basedn_data['result']['with_user_attr_success'] = FALSE;
+        // try searching for any object to see if user_attr is wrong
+          $filter = "CN=*";
+          $result = $_ldapauth_ldap->search($base_dn, $filter, array($user_attr), 0, 1, 1);
+          $basedn_data['result']['no_user_attr_success'] = ($result['count']) ? TRUE : FALSE;
+        // bad attribute name
+      }
+      else {
+        $basedn_data['result']['with_user_attr_success'] = TRUE;
+      }
+      $test['basedns'][] = $basedn_data;
+    }
+  return $test;
+}
+
+function ldaphelp_baddn($dn, $dn_name) {
+  $result = array();
+  $valid_attr_name = '[a-zA-Z\d\s]';
+  $valid_attr_values = '[a-zA-Z\d\s]';
+  $regex = '/^('. $valid_attr_name .'*\='. $valid_attr_values .'*[,]{1})*('. $valid_attr_name .'*\='. $valid_attr_values .'*){1}$/';
+  // $target = "CN=Schema A1, CN2 =Configuration,DC=ad,DC=uiuc,DC=edu";
+  // $target = "ou=education,dc=ad,dc=uiuc,dc=edu";
+  $match = (preg_match($regex, $dn)) ? TRUE : FALSE;
+  $result['boolean'] = $match;
+  if (!$match) {
+    $result['text'] = "Invalid format for:<br/> <code><strong>". htmlspecialchars($dn)
+    ."</strong><code><br/> One cause may be editing $dn_name with a wysiwyg editor which leaves html.";
+
+  }
+  return $result;
+}
+
+/** parse php modules from phpinfo */
+function ldaphelp_parsePHPModules() {
+  ob_start();
+  phpinfo();
+  $s = ob_get_contents();
+  ob_end_clean();
+
+  $s = strip_tags($s, '<h2><th><td>');
+  $s = preg_replace('/<th[^>]*>([^<]+)<\/th>/', "<info>\\1</info>", $s);
+  $s = preg_replace('/<td[^>]*>([^<]+)<\/td>/', "<info>\\1</info>", $s);
+  $vtmp = preg_split('/(<h2>[^<]+<\/h2>)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE);
+  $vmodules = array();
+  for ($i=1; $i<count($vtmp); $i++) {
+    if (preg_match('/<h2>([^<]+)<\/h2>/', $vtmp[$i], $vmat)) {
+      $vname = trim($vmat[1]);
+      $vtmp2 = explode("\n", $vtmp[$i+1]);
+      foreach ($vtmp2 AS $vone) {
+        $vpat = '<info>([^<]+)<\/info>';
+        $vpat3 = "/$vPat\s*$vpat\s*$vpat/";
+        $vpat2 = "/$vPat\s*$vpat/";
+        if (preg_match($vpat3, $vone, $vmat)) { // 3cols
+          $vmodules[$vname][trim($vmat[1])] = array(trim($vmat[2]), trim($vmat[3]));
+        }
+        elseif (preg_match($vpat2, $vone, $vmat)) { // 2cols
+          $vmodules[$vname][trim($vmat[1])] = trim($vmat[2]);
+        }
+      }
+    }
+  }
+  return $vmodules;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_wizard.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_wizard.inc
new file mode 100644
index 0000000..db86adb
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldaphelp/ldaphelp_wizard.inc
@@ -0,0 +1,368 @@
+<?php
+/**
+ * @file
+ * wizard file for ldaphelp module
+ *
+ */
+function ldaphelp_wizard_form(&$form_state = NULL) {
+
+
+  $inputs = array(
+    'server' => array( 'fieldset' => 'server-settings', 'step' => 1 , 'copy_input' => TRUE, 'default_value' => '' ),
+    'port' => array( 'fieldset' => 'server-settings', 'step' => 1 , 'copy_input' => TRUE , 'default_value' => ''),
+    'tls' => array( 'fieldset' => 'server-settings', 'step' => 1 , 'copy_input' => TRUE , 'default_value' => 0),
+
+    'basedn' => array( 'fieldset' => 'login-procedure', 'step' => 2, 'copy_input' => FALSE),
+    'user_attr' => array( 'fieldset' => 'login-procedure' , 'step' => 2, 'copy_input' => TRUE, 'default_value' => ""),
+    'mail_attr' => array( 'fieldset' => 'login-procedure' , 'step' => 2, 'copy_input' => TRUE, 'default_value' => ""),
+    'sample_user' => array( 'fieldset' => 'login-procedure' , 'step' => 2, 'copy_input' => FALSE, 'default_value' => ""),
+    'binddn' => array( 'fieldset' => 'advanced' , 'step' => 2 , 'copy_input' => TRUE  ),
+    'bindpw' => array( 'fieldset' => 'advanced' , 'step' => 2,  'copy_input' => TRUE, 'unstored' => TRUE),
+  );
+
+  if (! $form_state['storage']['step'] ) {
+    $form_state['storage']['step'] = 1;
+  }
+  elseif ($form_state['clicked_button']['#value'] && $form_state['clicked_button']['#value'] == $form_state['values']['submit_server_settings']) {
+    $form_state['storage']['step'] = 2;
+  }
+  $step = $form_state['storage']['step'];
+
+
+  switch ($step) {
+    case 1:
+
+    $instructions = t('<em>Note: This wizard does not populate the server configuration.  Its
+      just for testing the settings</em>. The goal of this form is to help configure an LDAP server for the LDAP auth module.
+    It will help test and/or determine some of the values needed on the ') .
+    l(t("Add Server form"), 'admin/settings/ldapauth/add/ad') . ' ' .
+    t('If you are unsure about your LDAP, a simple email to your LDAP administrator will save you some time
+    and frustration.')
+    .'<br/>'. t('Step 1 is to try to bind to the root of an LDAP server.');
+
+    $ldapauth_admin_form = ldapauth_admin_form($form_state, NULL, NULL);
+    $form['step'] = array('#type' => 'hidden', '#default_value' => $step);
+    $form['server-settings'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('1. Server settings'),
+      '#collapsible' => FALSE,
+      '#collapsed' => FALSE,
+      '#description' => $instructions,
+    );
+
+    foreach ($inputs as $fieldname => $conf) {
+      if ($conf['step'] == 1 && $conf['copy_input']) {
+      $form[$conf['fieldset']][$fieldname] = $ldapauth_admin_form[$conf['fieldset']][$fieldname];
+      }
+    };
+
+    if (! $form_state['clicked_button']['#post']) { // initial state, set defaults
+      foreach ($inputs as $fieldname => $conf) {
+        if ($conf['step'] == 1 && $conf['default_value']) {
+          $form[$conf['fieldset']][$fieldname]['#default_value'] = $conf['default_value'];
+        }
+      }
+    }
+    else { // post from same form, no longer use default values
+
+      $form_state['values']['tls'] = ($form_state['values']['tls']) ? 1 : 0;
+
+      foreach ($inputs as $fieldname => $conf) {
+        if ($conf['step'] == 1 && ( ! $conf['unstored']) ) {
+          $form_state['storage'][$fieldname] = $form_state['values'][$fieldname];
+          $form[$conf['fieldset']][$fieldname]['#default_value'] = $form_state['values'][$fieldname];
+        }
+      }
+
+      if (! form_get_errors()) {
+        $bind_form_values_success = ldaphelp_bindtrials($form_state['values']);  // try binding to ldap.
+      }
+    }
+
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Test'),
+    );
+    if ($bind_form_values_success) {
+      $form['submit_server_settings'] = array(
+        '#type' => 'submit',
+        '#value' => t('Next Step'),
+      );
+    }
+
+    break;
+
+    case 2:
+
+      $instructions = t('Step 2 is to test of assist in finding Base DNs, Username Attributes, and Email Attributes. Enter as much of the information
+      you know below.') ."<br/>".
+        "server: " . $form_state['storage']['server'] .", port: ". $form_state['storage']['port'] .", tls: ". $form_state['storage']['tls'];
+
+      $form['step'] = array('#type' => 'hidden', '#default_value' => $step);
+      $ldapauth_admin_form = ldapauth_admin_form($form_state, NULL, NULL);
+
+      $form['login-procedure'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('2. Login procedure'),
+        '#collapsible' => FALSE,
+        '#collapsed' => FALSE,
+        '#description' => $instructions,
+        );
+
+      $form['login-procedure']['basedn'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Single Base DN to test'),
+          '#description' => t('Enter one base DN.  For the final configuration,
+            you may search within several base DNs.  But you can only test one at a time here.'),
+          '#size' => 60,
+          '#maxlength' => 255,
+          '#required' => TRUE,
+        );
+
+      foreach ($inputs as $fieldname => $conf) {
+        if ($conf['step'] == 2 && $conf['copy_input']) {
+        $form[$conf['fieldset']][$fieldname] = $ldapauth_admin_form[$conf['fieldset']][$fieldname];
+        }
+      };
+
+      $form['login-procedure']['sample_user'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Sample username'),
+        '#description' => t('sample username for testing (e.g. jdoe)'),
+        '#size' => 20,
+        '#maxlength' => 255,
+        '#required' => TRUE,
+      );
+
+      $form['advanced'] = $ldapauth_admin_form['advanced'];
+      $form['advanced']['#collapsed'] = FALSE;
+      $form['advanced']['bindpw']['#type'] = 'textfield';
+
+      $form['submit'] = array(
+        '#type' => 'submit',
+        '#value' => t('Test'),
+      );
+
+
+      if ($form_state['clicked_button']['#value'] == 'Next Step') {  // coming from step 1, do nothing.  perhaps clear defaults
+
+        foreach ($inputs as $fieldname => $conf) {
+          if ($conf['step'] == 2 && isset($conf['default_value'])) {
+            $form[$conf['fieldset']][$fieldname]['#default_value'] = $conf['default_value'];
+          }
+        }
+        $form['login-procedure']['basedn']['#default_value'] = 'dc='. str_replace('.', ',dc=', $form_state['storage']['server']);
+      }
+      else {
+        // staying in step 2.  form is submitting to itself over and over.
+
+        $values = $form_state['values'];
+        foreach ($inputs as $fieldname => $conf) {
+          if ($conf['step'] == 2) {
+            if (! $conf['unstored']) {
+              $form_state['storage'][$fieldname] = $values[$fieldname];
+            }
+            $form[$conf['fieldset']][$fieldname]['#default_value'] = $form_state['values'][$fieldname];
+          }
+        }
+
+        if (form_get_errors()) {
+          break;
+        }
+        $ldapserver = array();
+        $mappings = array('server', 'port', 'tls', 'binddn', 'basedn', 'user_attr', 'mail_attr', 'bindpw');
+        foreach ($mappings as $key) {
+          if ($inputs[$key]['unstored']) {
+            $ldapserver[$key]  = $values[$key];
+          }
+          else {
+            $ldapserver[$key] = $form_state['storage'][$key];
+          }
+        }
+        global $_ldapauth_ldap;
+        $result = _ldaphelp_bind_test($ldapserver);
+
+        if ($result['bind_success'] != 1) {
+          drupal_set_message(t('Failed to bind to LDAP server'), 'error');
+          return $form;
+        }
+
+        $sample_user = $form_state['storage']['sample_user'];
+        $mail_attrs = array();
+        $user_attrs = array();
+        global $_ldaphelp_ldaps;
+        foreach ($_ldaphelp_ldaps as $ldapid => $ldaptype) {
+          $mail_attr = $ldaptype['fields']['login-procedure']['mail_attr'];
+          $user_attr = $ldaptype['fields']['login-procedure']['user_attr'];
+          if (! in_array($mail_attr, $mail_attrs)) {
+            $mail_attrs[] = $mail_attr;
+          }
+          if (! in_array($user_attr, $user_attrs)) {
+            $user_attrs[] = $user_attr;
+            $large_filter .= "(". $user_attr ."=". $sample_user .")";
+          }
+        }
+
+
+    // 1. do a search of the ldap (with or without credentials) and see if it works.
+
+        $user_attr = $form_state['storage']['user_attr'];
+
+        $filter = ($user_attr) ? "$user_attr=$sample_user" : "(|$large_filter)";
+
+        $result = $_ldapauth_ldap->search($ldapserver['basedn'], $filter);
+        $basedn_data = array();
+        $basedn_data['result']['error'] = ldap_error($_ldapauth_ldap->connection);
+        $basedn_data['result']['errno'] = ldap_errno($_ldapauth_ldap->connection);
+        $search_description = 'search where base dn = <code>'. $ldapserver['basedn'] .'</code> and filter =<code>'.  $filter ."</code>";
+
+        $basedn_data['result']['count'] = $result['count'];
+        $basedn_data['result']['sample0'] = $result[0];
+        $basedn_data['result']['dnufn'] = ldap_dn2ufn($base_dn);
+
+
+        $suggestions[0] = "... your sample username is wrong.";
+        if (! $form_state['storage']['binddn']) {
+          $suggestions[1] = "... you must bind non anonymously.";
+        }
+        $suggestions[2] = "... " . t("your base DN does not have accounts within it.");
+        $suggestions[4] = "... " . t("your base DN is incorrect.");
+        $suggestions[3] = "... " . t("you are using the wrong user attribute or haven't picked one. <br/>Maybe one of the following: <code>") . join(", ", $user_attrs) ."</code>";
+
+        if ($basedn_data['result']['errno'] != 0 ) {
+          drupal_set_message(t('Error encountered in') . ' ' . $search_description .".<br/>error name: ". $basedn_data['result']['error'] .', error number: '.
+          $basedn_data['result']['errno'] .".  Perhaps:". ldaphelp_suggest($suggestions, array(1, 4)), 'error');
+          break;
+        }
+
+        if (! $basedn_data['result']['count']) {
+          drupal_set_message(t('Could not find any results with') . ' ' . $search_description .".  Perhaps:". ldaphelp_suggest($suggestions, array(0, 1, 2, 3)), 'error');
+          break;
+        }
+
+        if (! $basedn_data['result']['count'] > 1) {
+          drupal_set_message(t('More than one result was found with') . ' ' . $search_description ."  Perhaps:". ldaphelp_suggest($suggestions, array(3)), 'error');
+          break;
+        }
+
+        $ldap_object = $basedn_data['result']['sample0'];
+        $message = t("Found 1 user object with") . " " . $search_description .".  Search should return exactly one object.";
+        $mail_attrs = ($form_state['storage']['mail_attr']) ? array($form_state['storage']['mail_attr']) : $mail_attrs;
+
+        foreach ($mail_attrs as $mail_attr) {
+          if ($ldap_object[$mail_attr] ) {
+            $message .= "<br/>" . t("Email Attribute of") ." <code>$mail_attr</code> ". t("is present with a value of") . ' ' . $ldap_object[$mail_attr][0] ;
+          }
+          elseif (! $form_state['storage']['mail_attr'] ) {
+            $message .= "<br/>" . t("Email Attribute of") ." <code>$mail_attr</code> ". t("<strong>not present</strong>.") ;
+          }
+        }
+        drupal_set_message($message);
+      }
+    break;
+  }  // end switch step 1 or 2
+  return $form;
+}
+
+function ldaphelp_suggest($all_suggestions, $suggestions) {
+  $ul = "<ul>\r\n";
+  foreach ($suggestions as $suggestion) {
+    if ($all_suggestions[$suggestion]) {
+      $ul .= "<li>". $all_suggestions[$suggestion] ."</li>";
+    }
+  }
+  $ul .= "</ul>\r\n";
+  return $ul;
+}
+
+function ldaphelp_bindtrials($values) {
+
+
+  // first try values in form if port is entered:
+  $bind_success = FALSE;
+  $bind_form_values_success = FALSE;
+
+  if ($values['port']) {
+    $trial = array( 'server' => $values['server'], 'port' => $values['port'], 'tls' => $values['tls']);
+    $trial['results']  = _ldaphelp_bind_test($trial);
+    if ($trial['results']['bind_success'] == 1) {
+      drupal_set_message(t("Successfully bound to port @port with tls=@tls on server @server", array('@port' => $values['port'], '@tls' => $values['tls'], '@server' => $values['server'])));
+      $bind_success = TRUE;
+      $bind_form_values_success = TRUE;
+    }
+    else {
+      drupal_set_message(check_plain(ldaphelp_bind_trial_message($trial)), 'error');
+    }
+    $trials['form_values'] = $trial;
+  }
+
+  if ( (! $values['port']) || $trials['form_values']['results']['bind_success'] != 1) {
+    $trials['tls'] = array('port' => 389, 'tls' => 1, 'server' => $values['server']);
+    $trials['encrypted'] = array('port' => 636, 'tls' => 0, 'server' => $values['server']);
+    $trials['odd'] = array('port' => 636, 'tls' => 1, 'server' => $values['server']);
+    foreach ($trials as $name => $trial) {
+      $trial['results'] = _ldaphelp_bind_test($trial);
+      if ($trial['results']['bind_success'] == 1) {
+        drupal_set_message(t("Successfully bound to port @port with tls=@tls on server @server", array('@port' => $trial['port'], '@tls' => $trial['tls'], '@server' => $trial['server'])));
+        $bind_success = TRUE;
+      }
+      else {
+        drupal_set_message(check_plain(ldaphelp_bind_trial_message($trial)), 'error');
+      }
+    }
+  }
+
+  if (! $bind_success ) {
+    drupal_set_message(t('Could not bind to ldap to server @server', array('@server' =>  $values['server'])) .
+      ' ' . t('Perhaps you have the wrong hostname, its on a nonstandard port, ' .
+        'or it doesn not allow anononymous binds.  Try pinging the server.'), 'error');
+  }
+
+  if ( $bind_success && ! $bind_form_values_success ) {
+    drupal_set_message(t('Was able to bind to server @server with some ' .
+      'configurations, but not the data you entered.  If one of the ' .
+      'successful attempts looks correct, enter it in the form to go to next step.',
+      array('@server' => $values['server'])), 'warn');
+  }
+  return $bind_form_values_success;
+}
+
+function ldaphelp_wizard_form_validate($form, &$form_state) {
+  $values = $form_state['values'];
+
+  switch ($form_state['storage']['step']) {
+
+    case 1:
+      if ($values['port'] && !is_numeric($values['port'])) {
+        form_set_error('port', t('The TCP/IP port must be an integer.'));
+      }
+
+    case 2:
+
+      return;
+      if (! trim($form_state['values']['import_data_serialized'])) {
+        $haserror = TRUE;
+      }
+      else {
+        $import_data = unserialize(trim($form_state['values']['import_data_serialized']));
+        if (! is_array($import_data)) {
+          $haserror = TRUE;
+          }
+        elseif ( ! ($import_data['ldaps'] ||  $import_data['admin_settings'])) {
+          $haserror = TRUE;
+        }
+      }
+
+      if ($haserror) {
+        drupal_set_message( t("Input not valid.  Input should be a ' .
+          'serialized array from the export function. It should look ' .
+          'something like: ") .'<code>a:1:{s:5:"ldaps";a:1:{i:1;a:1</code>...',
+          'error');
+        $form_state['storage']['step'] =  $form_state['storage']['step'] - 1;
+        return FALSE;
+      }
+      break;
+  }
+
+
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.admin.inc
new file mode 100644
index 0000000..2bd2d4f
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.admin.inc
@@ -0,0 +1,140 @@
+<?php
+
+/**
+ * @file
+ * Module admin page callbacks.
+ */
+
+//////////////////////////////////////////////////////////////////////////////
+// ldapsync settings
+
+/**
+ * Implements the settings page.
+ *
+ * @return
+ *   The form structure.
+ */
+function ldapsync_admin_settings() {
+
+  $form['options'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('LDAPsync settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $options_time_interval = array(
+    0 => t('As often as possible'),
+    1*3600 => t('1 hour'),
+    6*3600 => t('6 hours'),
+    12*3600 => t('12 hours'),
+    24*3600 => t('24 hours'),
+    24*7*3600 => t('1 week'),
+    -1 => t('never (only sync manually)')
+  );
+  $form['options']['ldapsync_time_interval'] = array(
+    '#type' => 'select',
+    '#title' => t('Sync time interval'),
+    '#description' => t('The number of hours between each sync. A larger setting reduces server load for large LDAP directories.<br />You must have enabled cron, and ldapsync will not run more often than cron.'),
+    '#default_value' => variable_get('ldapsync_time_interval', -1),
+    '#options' => $options_time_interval,
+  );
+  $form['options']['ldapsync_existing_only'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Sync existing users only.'),
+    '#default_value' => variable_get('ldapsync_existing_only', 0),
+    '#description' => t("If checked, only existing users will be synced with LDAP, no new users will be created.  Note, the ldapauth 'Create new Drupal user' option will also prevent new user create."),
+  );
+  $options_login_conflict = array(
+    LDAPSYNC_CONFLICT_FOLLOW_LDAPAUTH => t('Follow LDAP Authentication setting'),
+    LDAPAUTH_CONFLICT_LOG => t('Disallow login and log the conflict'),
+    LDAPAUTH_CONFLICT_RESOLVE => t('Associate local account with the LDAP entry'),
+  );
+
+  $form['options']['ldapsync_login_conflict'] = array(
+    '#type' => 'select',
+    '#title' => t('Choose user conflict resolve procedure'),
+    '#description' => t('Pick what should be done if the local Drupal account already exists with the same login name.'),
+    '#default_value' => variable_get('ldapsync_login_conflict', LDAPSYNC_CONFLICT_FOLLOW_LDAPAUTH),
+    '#options' => $options_login_conflict,
+    '#required' => TRUE,
+  );
+
+  $form['options']['ldapsync_missing_users_action'] = array(
+    '#type' => 'select',
+    '#title' => t('Missing users action'),
+    '#description' => t("What to do when LDAP-authentified Drupal users don't exist or are disabled in LDAP. Choose block to disable the user accounts in Drupal. Choose warn to only log a warning to the Drupal log."),
+    '#default_value' => variable_get('ldapsync_missing_users_action', 'warn'),
+    '#options' => array('warn' => t('warn'), 'block' => t('block')),
+  );
+  $form['options']['ldapsync_load_user_by'] = array(
+    '#type' => 'select',
+    '#title' => t('What to use for testing for existing users.'),
+    '#description' => t("If you want to check for users by email, change this."),
+    '#default_value' => variable_get('ldapsync_load_user_by', 'name'),
+    '#options' => array('name' => t('User name'), 'email ' => t('E-mail')),
+  );
+  $form['options']['ldapsync_filter'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Optional Search filters'),
+    '#default_value' => variable_get('ldapsync_filter', ''),
+    '#cols' => 50,
+    '#rows' => 6,
+    '#description' => t('The default filter looks for all entries that contain the user name attribute, e.g. (uid=*). This can return either unwanted or too many results. For instance, AD limits searchs to 1000 results. LDAP filters (Google "ldap search filter tutorial") can be entered on separate lines to refine/limit the users found.  Each server/basedn area will be searched for users using the filters defined below.<br/ >For example: (&(objectClass=person)(|(uid=*)(sAMAccountName=*)))'),
+    '#required' => FALSE,
+  );
+  $form['options']['ldapsync_filter_append_default'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Append default filter'),
+    '#default_value' => variable_get('ldapsync_filter_append_default', 0),
+    '#description' => t("If checked, the default filter will be 'and-ed' with the optional search filters above.  E.g. (&([optional filter]<u>(uid=*)</u>"),
+  );
+
+  $form['manual'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Manually sync users now'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $form['manual']['syncnow'] = array(
+    '#type'  => 'submit',
+    '#value' => t('Sync now'),
+    '#submit' => array('ldapsync_admin_settings_sync_now'),
+  );
+
+  $form['submit'] = array(
+    '#type'  => 'submit',
+    '#value' => t('Save settings'),
+  );
+
+  return $form;
+}
+
+/**
+ * Validate hook for the settings form.
+ */
+function ldapsync_admin_settings_validate($form, &$form_state) {
+}
+
+/**
+ * Submit hook for the settings form.
+ */
+function ldapsync_admin_settings_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  variable_set('ldapsync_time_interval', $values['ldapsync_time_interval']);
+  variable_set('ldapsync_filter', trim($values['ldapsync_filter']));
+  variable_set('ldapsync_missing_users_action', $values['ldapsync_missing_users_action']);
+  variable_set('ldapsync_load_user_by', $values['ldapsync_load_user_by']);
+  variable_set('ldapsync_filter_append_default', $values['ldapsync_filter_append_default']);
+  variable_set('ldapsync_existing_only', $values['ldapsync_existing_only']);
+  variable_set('ldapsync_login_conflict', $values['ldapsync_login_conflict']);
+
+  drupal_set_message(t('Settings saved'));
+}
+
+/**
+ * Syncs accounts.
+ */
+function ldapsync_admin_settings_sync_now() {
+  $message = _ldapsync_sync();
+  drupal_set_message(check_plain($message));
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.info b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.info
new file mode 100644
index 0000000..93b89b4
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.info
@@ -0,0 +1,14 @@
+; $Id$
+name = Synchronization
+description = Implements LDAP users sync with Drupal
+package = LDAP integration
+dependencies[] = ldapauth
+core = 6.x
+
+
+; Information added by drupal.org packaging script on 2012-06-28
+version = "6.x-1.0-beta3"
+core = "6.x"
+project = "ldap_integration"
+datestamp = "1340919401"
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.install b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.install
new file mode 100644
index 0000000..72719bd
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.install
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * @file
+ * ldapsync module installation and upgrade code.
+ */
+
+//////////////////////////////////////////////////////////////////////////////
+// Core API hooks
+
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function ldapsync_uninstall() {
+  $ret = array();
+
+  variable_del('ldapsync_time_interval');
+  variable_del('ldapsync_last_sync_time');
+  variable_del('ldapsync_existing_only');
+  variable_del('ldapsync_login_conflict');
+  variable_del('ldapsync_missing_users_action');
+  variable_del('ldapsync_load_user_by');
+  variable_del('ldapsync_filter');
+  variable_del('ldapsync_filter_append_default');
+
+  return $ret;
+}
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.module b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.module
new file mode 100644
index 0000000..99a0be2
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ldap_integration/ldapsync.module
@@ -0,0 +1,423 @@
+<?php
+
+/**
+ * @file
+ * ldapsync keeps LDAP and Drupal user lists synchronized.
+ */
+
+//////////////////////////////////////////////////////////////////////////////
+
+define('LDAPSYNC_CONFLICT_FOLLOW_LDAPAUTH', 3);
+
+define('LDAPSYNC_TIME_INTERVAL',  variable_get('ldapsync_time_interval', -1));
+define('LDAPSYNC_FILTER',         variable_get('ldapsync_filter', ''));
+define('LDAPSYNC_LOGIN_CONFLICT', variable_get('ldapsync_login_conflict', LDAPSYNC_CONFLICT_FOLLOW_LDAPAUTH));
+
+//////////////////////////////////////////////////////////////////////////////
+// Core API hooks
+
+/**
+ * Implements hook_init().
+ */
+function ldapsync_init() {
+  module_load_include('inc', 'ldapauth', 'includes/ldap.core');
+  module_load_include('inc', 'ldapauth', 'includes/LDAPInterface');
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function ldapsync_help($path, $arg) {
+  $output = '';
+  switch ($path) {
+    case "admin/help#ldapsync":
+      $output = '<p>'. t("Searches LDAP to update Drupal user membership and information.") .'</p>';
+      break;
+  }
+  return $output;
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function ldapsync_menu() {
+  return array(
+    'admin/settings/ldap/ldapsync' => array(
+      'title' => 'Synchronization',
+      'description' => 'Configure LDAP sync settings.',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('ldapsync_admin_settings'),
+      'access arguments' => array('administer ldap modules'),
+      'file' => 'ldapsync.admin.inc',
+    ),
+  );
+}
+
+/**
+ * Implements hook_cron().
+ *
+ * Checks ldapsync_time_interval and ldapsync_last_sync_time variables to determine whether to run ldapsync.
+ */
+function ldapsync_cron() {
+  $time_interval = variable_get('ldapsync_time_interval', -1); // -1 means "only sync manually"
+  $last_sync_time = variable_get('ldapsync_last_sync_time', 0);
+  if (((time() - $last_sync_time) > $time_interval) && ($time_interval != -1)) {
+    _ldapsync_sync();
+  }
+}
+
+/**
+ * Main routine.
+ */
+function _ldapsync_sync() {
+  global $_ldapsync_ldap;
+
+  // If ldapgroups is enabled, include it for groups-role sync.
+  if (module_exists('ldapgroups')) {
+    module_load_include('inc', 'ldapgroups', 'ldapgroups');
+  }
+
+  // Find all users in specified OU (using base DN and bind information from ldapauth).
+  // and take appropriate action on the Drupal side.
+  $ldap_users = _ldapsync_search();
+
+  $count_orphaned_users=0;
+
+  // Do we have any LDAP-authentified Drupal users who don't exist in LDAP?
+  if ($ldap_users) {
+    $result = db_query("SELECT uid, name, data FROM {users} WHERE status = %d", 1);
+    while ($row = db_fetch_array($result)) {
+      if ( ! isset($ldap_users[drupal_strtolower($row['name'])]) ) {
+        $data = unserialize($row['data']);
+        if ($data['ldap_authentified']) {
+          // Block user if appropriate module setting is set.
+          if (variable_get('ldapsync_missing_users_action', 'warn') == 'block') {
+            // Block user.
+            db_query("UPDATE {users} SET status=0 WHERE uid=%d", $row['uid']);
+            // Log out blocked user.
+            $account = user_load(array('uid' => $row['uid']));
+            $array = array();
+            user_module_invoke('logout', $array, $account);
+            // Log this.
+            watchdog('ldapsync', 'Disabled LDAP-authentified user %name because the corresponding LDAP account does not exist or is disabled.', array('%name' => $row['name']));
+          }
+          $count_orphaned_users++;
+        }
+      }
+    }
+  }
+  // Send watchdog message with process summary.
+  $params = array(
+    '@ldap_users' => ldapsync_stats('ldap_users'),
+    '@existing_users' => ldapsync_stats('existing_users'),
+    '@new_users' => ldapsync_stats('new_users'),
+    '@orphaned_users' => $count_orphaned_users,
+  );
+  $converted = ldapsync_stats('converted');
+  $ldap_disabled = ldapsync_stats('ldap_users_disabled');
+  $notices = ldapsync_stats('notices');
+  $denied_by_module = ldapsync_stats('denied_by_module');
+
+  $summary = t('Completed LDAP sync. LDAP users found: @ldap_users. Existing users updated: @existing_users. New users created: @new_users. LDAP-authentified users that do not have an enabled LDAP account: @orphaned_users.', $params);
+  if ( $converted ) {
+    $summary .= ' ' . t('Existing users converted to LDAP: @converted.', array('@converted' => $converted));
+  }
+  if ( $ldap_disabled ) {
+    $summary .= ' ' . t('Disabled LDAP users: @disabled.', array('@disabled' => $ldap_disabled));
+  }
+  if ( $notices ) {
+    $summary .= ' ' . t('Watchdog notices/warnings written: @notices.', array('@notices' => $notices));
+  }
+  if ( $denied_by_module ) {
+    $summary .= ' ' . t('Access denied by other modules: @denied.', array('@denied' => $denied_by_module));
+  }
+  watchdog('ldapsync', $summary);
+
+  // Update last sync time variable, so that we don't sync again until the specified time period passes again.
+  variable_set('ldapsync_last_sync_time', time());
+
+  // Useful if calling manually from settings page.
+  return $summary;
+}
+
+/**
+ * Find all LDAP users from servers and OUs specified in ldapauth settings and
+ * create or update existing users as needed.
+ *
+ * @return An array keyed by lower cased Drupal account name of all users found.
+ */
+function _ldapsync_search() {
+  global $_ldapsync_ldap;
+
+  $users=array();
+
+  // Cycle through LDAP configurations.
+  $result = db_query("SELECT sid FROM {ldapauth} WHERE status = %d ORDER BY sid", 1);
+  while ($row = db_fetch_object($result)) {
+    // Initialize LDAP.
+    if (!_ldapsync_init($row->sid)) {
+      watchdog('ldapsync', 'ldapsync init failed for ldap server %sid.', array('%sid' => $row->sid));
+      continue;
+    }
+
+    // Set up for LDAP search.
+    $name_attr = $_ldapsync_ldap->getOption('user_attr') ? $_ldapsync_ldap->getOption('user_attr') : LDAPAUTH_DEFAULT_USER_ATTR;
+    $user_attr = drupal_strtolower($name_attr); // used to find in results.
+    $filters = array();
+    if ( LDAPSYNC_FILTER ) {
+      $filters = explode("\r\n", LDAPSYNC_FILTER);
+    }
+    else {
+      $filters[] = "({$name_attr}=*)";
+    }
+    $attrs = ldapauth_attributes_needed(LDAPAUTH_SYNC_CONTEXT_AUTHENTICATE_DRUPAL_USER, $_ldapsync_ldap->getOption('sid'));
+
+    // If there is no bindn and bindpw - the connect will be an anonymous connect.
+    $_ldapsync_ldap->connect($_ldapsync_ldap->getOption('binddn'), $_ldapsync_ldap->getOption('bindpw'));
+
+    // Search each basedn defined for this server
+    foreach (explode("\r\n", $_ldapsync_ldap->getOption('basedn')) as $base_dn) {
+      if (empty($base_dn)) {
+        continue;
+      }
+
+      // Re-initialize database object each time.
+      $ldapresult = array();
+      $filter_found_users = array();
+
+      // Search this server and basedn using all defined filters.
+      foreach ( $filters as $filter ) {
+        $filter = trim($filter);
+        if (empty($filter)) {
+          continue;
+        }
+        if ( variable_get('ldapsync_filter_append_default', 0) ) {
+          $filter = "(&{$filter}({$name_attr}=*))";
+        }
+
+        if (!($ldapresult = $_ldapsync_ldap->search($base_dn, $filter, $attrs))) {
+          continue;
+        }
+
+        // Cycle through results to build array of user information.
+        foreach ($ldapresult as $entry) {
+          $name = $entry[$user_attr][0];
+
+          // Don't include if no name attribute.
+          if (empty($name)) {
+            continue;
+          }
+
+          // Don't process the same entry found by different filters twice.
+          $lcname = drupal_strtolower($name);
+          if ( isset($filter_found_users[$lcname])) {
+            continue;  // Already found
+          }
+          $filter_found_users[$lcname] = $name;
+
+          ldapsync_stats('ldap_users', 1);
+
+          // Don't include if LDAP account is disabled.
+          $status = $entry['useraccountcontrol'][0];
+          if (($status & 2) != 0) {  // This only works for Active Directory -- search includes disabled accounts in other directories.
+            ldapsync_stats('ldap_users_disabled', 1);
+            continue;
+          }
+
+          // Process this entry to create/update drupal user (if any).
+          $account = _ldapsync_process_entry($_ldapsync_ldap, $name, $entry);
+          if ( ! $account ) {
+            continue;
+          }
+
+          $users[drupal_strtolower($account->name)] = array(
+            'uid' => $account->uid,
+          );
+        }
+      }
+    }
+  }
+
+  return $users;
+}
+/**
+ * Take an ldap object entry and determine if there is an existing account or
+ * a new account needs to be created.
+ *
+ * @param LDAPInterface $ldap An initialized LDAP server interface object
+ * @param String $name The user name attribute value
+ * @param Array $ldap_entry LDAP attributes for user.
+ * @return The account object or FALSE if problem
+ */
+function _ldapsync_process_entry( $ldap, $name, $ldap_entry  ) {
+
+  // check whether user is in an OU mapped in module settings (need to create admin/settings/ldapsync page)
+  $dn = $ldap_entry['dn'];
+
+  if ( $ldap->getOption('puid_attr')) {
+    $puid = ldapauth_extract_puid($server, $name, $ldap_entry);
+  }
+
+  // See if there is a matching Drupal user account
+  $error = '';
+  $account = ldapauth_drupal_user_lookup($ldap, $name, $dn, $error, $puid );
+  if ( $account === NULL ) {
+    ldapsync_stats('notices', 1 );
+    watchdog('ldapsync', 'drupal_user_lookup() returned: ' . $error, NULL, WATCHDOG_ERROR);
+    return FALSE;
+  }
+
+  // Handle map by e-mail option (Issue #1209556)
+  // If no account or PUID not used and account found does not have matching e-mail
+  $user_test_method = variable_get('ldapsync_load_user_by', 'name');
+  if ( $user_test_method == 'email' && ( ! $account || (! $ldap->getOption('puid_attr') && drupal_strtolower($account->mail) != drupal_strtolower($ldap_entry['mail'])))) {
+    $account = user_load(array('mail' => $ldap_entry['mail']));
+  }
+
+  // Allow other modules to determine if this ldap user can access server.
+  if ( ldapauth_user_denied( $ldap, $name, $dn, $account ) ) {
+    ldapsync_stats('denied_by_module', 1);
+    return;
+  }
+
+  // No account found - try to create one
+  if ( ! $account ) {
+    if ( variable_get('ldapsync_existing_only', 0)) {
+      return FALSE;
+    }
+    $error = '';
+    $account = ldapauth_drupal_user_create($ldap, $name, $ldap_entry, $error);
+    if ( $account === FALSE ) {
+      ldapsync_stats('notices', 1 );
+      return FALSE;
+    }
+    ldapsync_stats('new_users', 1 );  // Increment counter
+  }
+
+  // User exists in Drupal -- check a few things
+  else {
+
+    // Check authentication method.
+    if (! $account->ldap_authentified ) {
+      $conflict_resolution = LDAPSYNC_LOGIN_CONFLICT;
+      if ( $conflict_resolution == LDAPSYNC_CONFLICT_FOLLOW_LDAPAUTH ) {
+        $conflict_resolution = LDAPAUTH_LOGIN_CONFLICT;
+      }
+      if ($conflict_resolution == LDAPAUTH_CONFLICT_LOG) {
+        ldapsync_stats('notices', 1 );
+        watchdog('ldapsync', 'Could not create ldap-authentified account for user %name because a local user by that %test_value already exists.', array('%name' => $name, '%test_value' => $user_test_method));
+        return FALSE;
+      }
+      else {
+        $converted = TRUE;
+        ldapsync_stats('converted', 1);
+      }
+    }
+
+    // Make sure all the information is up to date.
+    $drupal_name = ldapauth_drupal_user_name($name, $ldap, $dn);
+    $data = array(
+      'ldap_dn' => $dn,
+      'ldap_config' => $ldap->getOption('sid'),
+      'ldap_authentified' => TRUE,
+      'authname_ldapauth' => $drupal_name,
+      'ldap_name' => $name,
+    );
+    // Follow ldapauth password sync rules.
+    if (LDAPAUTH_LOGIN_PROCESS == LDAPAUTH_AUTH_MIXED && LDAPAUTH_SYNC_PASSWORDS) {
+      $data['pass'] = $pass;
+    }
+    $puid = $account->ldap_puid; // save setting from drupal_user_lookupsave.
+    $account = user_save($account, $data);
+
+    // Make sure the ldapauth_users info is current (User object may have been moved).
+    $user_info = ldapauth_userinfo_load_by_uid( $account->uid );
+    if ( empty($user_info) ) {   // Don't have entry, so make one.
+      $user_info = new stdClass();
+      $user_info->uid = $account->uid;
+    }
+    $user_info->sid = $account->ldap_config;
+    $user_info->machine_name = $ldap->getOption('machine_name');
+    $user_info->dn = $dn;
+    $user_info->puid = $puid ? $puid : $account->$name;
+    ldapauth_userinfo_save($user_info);
+
+    if ( ! $converted ) {
+      ldapsync_stats('existing_users', 1);
+    }
+  }
+
+  // Update user's groups if ldapgroups is enabled.
+  if ( module_exists('ldapgroups')) {
+    ldapgroups_user_login($account);
+  }
+  // Update user's data if ldapdata is enabled.
+  if ( module_exists('ldapdata') ) {
+    _ldapdata_user_load($account, TRUE, $ldap_users);
+  }
+
+  // Enable any blocked user who is enabled in LDAP.
+  if (!$account->status) {
+    ldapsync_stats('notices', 1 );
+    db_query("UPDATE {users} SET status = %d where uid = %d", 1, $account->uid);
+    watchdog('ldapsync', 'Enabled LDAP-authentified user %name because the corresponding LDAP account is enabled.', array('%name' => $name));
+  }
+
+  // Reset user specific caches to prevent memory problems
+  ldapauth_user_lookup_by_dn( NULL, NULL, NULL, TRUE);
+  ldapauth_drupal_user_name(NULL, NULL, NULL, TRUE);
+  if ( module_exists('ldapgroups')) {
+    ldapgroups_groups_load(NULL, NULL, NULL, TRUE);
+  }
+  return $account;
+}
+//////////////////////////////////////////////////////////////////////////////
+// Auxiliary functions
+
+/**
+ * Initiates the LDAPInterfase class.
+ *
+ * @param $sid
+ *   An ID of the LDAP server configuration.
+ *
+ * @return
+ */
+function _ldapsync_init($sid) {
+  global $_ldapsync_ldap;
+
+  $server = ldapauth_server_load($sid);
+
+  if (! empty($server) ) {
+    $_ldapsync_ldap = new LDAPInterface();
+    $_ldapsync_ldap->setOption('sid', $server->sid);
+    $_ldapsync_ldap->setOption('name', $server->name);
+    $_ldapsync_ldap->setOption('machine_name', $server->machine_name);
+    $_ldapsync_ldap->setOption('server', $server->server);
+    $_ldapsync_ldap->setOption('port', $server->port);
+    $_ldapsync_ldap->setOption('tls', $server->tls);
+    $_ldapsync_ldap->setOption('enc_type', $server->enc_type);
+    $_ldapsync_ldap->setOption('basedn', $server->basedn);
+    $_ldapsync_ldap->setOption('user_attr', $server->user_attr);
+    $_ldapsync_ldap->setOption('mail_attr', $server->mail_attr);
+    $_ldapsync_ldap->setOption('puid_attr', $server->puid_attr);
+    $_ldapsync_ldap->setOption('binary_puid', $server->binary_puid);
+    $_ldapsync_ldap->setOption('binddn', $server->binddn);
+    $_ldapsync_ldap->setOption('bindpw', $server->bindpw);
+    return $_ldapsync_ldap;
+  }
+}
+/**
+ * Statistics counter function to track summary info.
+ *
+ * @param string $type The statistics category, e.g. new_users, notices, etc.
+ * @param int $n number of users to add to category, defaults to 0.
+ * @return int current count of users in category;
+ */
+function ldapsync_stats( $type, $n=0 ) {
+  static $stats = array();
+  if ( ! isset($stats[$type] ) ) {
+    $stats[$type] = 0;
+  }
+  $stats[$type] += $n;
+  return $stats[$type];
+}


commit 68ac4b67dd155cec8c082ab1aa286f6bca84c015
Author: Torsten Grote <grote at kolabsys.com>
Date:   Mon Aug 13 13:31:08 2012 +0200

    applied security update for ctools module

diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/API.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/API.txt
index 080503e..d54c700 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/API.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/API.txt
@@ -1,6 +1,11 @@
-API.txt: $Id: API.txt,v 1.5.2.25 2010/08/30 22:07:52 merlinofchaos Exp $
+API.txt: $Id$
 
 This file contains a log of changes to the API.
+API version 1.9
+  Introduce 'object factory' to export schema, allowing modules to control
+    how the exportable objects are instantiated.
+  Introduce 'hook_ctools_math_expression_functions_alter'.
+
 API version 1.8
   Introduce 'get base contexts' callback to all tasks to facilitate
     Page Manager's site template extracting contexts from the environment.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/CHANGELOG.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/CHANGELOG.txt
index 14f383a..d8f0d11 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/CHANGELOG.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/CHANGELOG.txt
@@ -1,4 +1,11 @@
 Current API VERSION: 1.8. See API.txt for more information.
+ctools 6.x-dev
+==============
+#959206: If a context is not set when rendering content, attempt to guess the context (fixes Views panes where "From context" was added but pane was never edited.)
+#967590: HTTP Response is not part of panels, erroneously refers to being so.
+#911362 by alex_b: Facilitate plugin cache resets for tests.
+#998870 by Amitaibu: Fix notice when content has no icon by using function already designed for that.
+#1030068 by stella: Fix parsing of tokens with : in them.
 
 ctools 6.x-1.8 (2010-Oct-29)
 ==============
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/LICENSE.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/LICENSE.txt
index 2c095c8..d159169 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/LICENSE.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/LICENSE.txt
@@ -1,274 +1,339 @@
-GNU GENERAL PUBLIC LICENSE
-
-              Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
-verbatim copies of this license document, but changing it is not allowed.
-
-                  Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public License
-applies to most of the Free Software Foundation's software and to any other
-program whose authors commit to using it. (Some other Free Software
-Foundation software is covered by the GNU Library General Public License
-instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients
-to know that what they have is not the original, so that any problems
-introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-           GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-               MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter, translation
-is included without limitation in the term "modification".) Each licensee is
-addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made
-by running the Program). Whether that is true depends on what the Program
-does.
-
-1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
-a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
-
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
-
-c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this License.
-(Exception: if the Program itself is interactive but does not normally print such
-an announcement, your work based on the Program is not required to print
-an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you distribute
-them as separate works. But when you distribute the same sections as part
-of a whole which is a work based on the Program, the distribution of the
-whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to
-work written entirely by you; rather, the intent is to exercise the right to
-control the distribution of derivative or collective works based on the
-Program.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
 
 In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of a
-storage or distribution medium does not bring the other work under the scope
-of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
-a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above
-on a medium customarily used for software interchange; or,
-
-b) Accompany it with a written offer, valid for at least three years, to give
-any third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding
-source code, to be distributed under the terms of Sections 1 and 2 above on
-a medium customarily used for software interchange; or,
-
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object
-code or executable form with such an offer, in accord with Subsection b
-above.)
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
 
 The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
 refrain entirely from distribution of the Program.
 
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose
-that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address new
-problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If
-the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
-               NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
-ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
-OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
-IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.
-
-          END OF TERMS AND CONDITIONS
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.css
index a7df2cf..41b0592 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.css
@@ -1,4 +1,3 @@
-/* $Id: bulk_export.css,v 1.1 2009/07/12 11:32:30 sdboyer Exp $ */
 
 div.export-container {
   width: 48%;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.info
index 2e0402b..82c8683 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.info
@@ -1,12 +1,11 @@
-; $Id: bulk_export.info,v 1.2 2009/07/12 18:11:58 merlinofchaos Exp $
 name = Bulk Export
 description = Performs bulk exporting of data objects known about by Chaos tools.
 core = 6.x
 dependencies[] = ctools
 package = Chaos tool suite
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.module
index d2f7868..95412af 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/bulk_export.module
@@ -1,20 +1,18 @@
 <?php
-// $Id: bulk_export.module,v 1.3.2.2 2010/07/16 20:38:01 merlinofchaos Exp $
-
 /**
  * @file
  * Perform bulk exports.
  */
 
 /**
- * Implementation of hook_perm().
+ * Implements hook_perm().
  */
 function bulk_export_perm() {
   return array('use bulk exporter');
 }
 
 /**
- * Implementation of hook_theme().
+ * Implements hook_theme().
  */
 function bulk_export_theme() {
   return array('bulk_export_export_form' => array(
@@ -24,7 +22,7 @@ function bulk_export_theme() {
 }
 
 /**
- * Implementation of hook_menu().
+ * Implements hook_menu().
  */
 function bulk_export_menu() {
   $items['admin/build/bulkexport'] = array(
@@ -87,7 +85,6 @@ function bulk_export_export() {
 
             $file = $form_state['module'] . '.' . $api . '.inc';
             $code = "<?php\n";
-            $code .= "// \$Id" . ": $\n\n";
             $code .= "/**\n";
             $code .= " * @file\n";
             $code .= " * Bulk export of $api objects generated by Bulk export module.\n";
@@ -101,7 +98,7 @@ function bulk_export_export() {
       // Add hook_ctools_plugin_api at the top of the module code, if there is any.
       if ($api_code) {
         $api =  "/**\n";
-        $api .= " * Implementation of hook_ctools_plugin_api().\n";
+        $api .= " * Implements hook_ctools_plugin_api().\n";
         $api .= " */\n";
         $api .= "function $form_state[module]_ctools_plugin_api(\$module, \$api) {\n";
         $api .= $api_code;
@@ -111,7 +108,6 @@ function bulk_export_export() {
 
       if ($module_code) {
         $module =  "<?php\n";
-        $module .= "// \$Id" . ": $\n\n";
         $module .= "/**\n";
         $module .= " * @file\n";
         $module .= " * Bulk export of objects generated by Bulk export module.\n";
@@ -120,8 +116,7 @@ function bulk_export_export() {
         $output = drupal_get_form('ctools_export_form', $module, t('Place this in @file', array('@file' => $form_state['module'] . '.module'))) . $output;
       }
 
-      $info  = "; \$Id" . ": $\n"; // The break in the string prevents CVS from subbing the ID.
-      $info .= strtr("name = @module export module\n", array('@module' => $form_state['module']));
+      $info = strtr("name = @module export module\n", array('@module' => $form_state['module']));
       $info .= strtr("description = Export objects from CTools\n", array('@module' => $form_state['values']['name']));
       foreach ($dependencies as $module => $junk) {
         $info .= "dependencies[] = $module\n";
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.hu.po
deleted file mode 100644
index 02b0ae1..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.hu.po
+++ /dev/null
@@ -1,40 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 12:52+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Module name"
-msgstr "Modulnév"
-msgid "Enter the module name to export code to."
-msgstr "A modul nevének megadása amibe a kódot exportálni kell."
-msgid "Bulk export results"
-msgstr "Tömeges export eredményei"
-msgid "Place this in @file"
-msgstr "Elhelyézés ide: @file"
-msgid "There are no objects to be exported at this time."
-msgstr "Jelenleg nincsenek exportált objektumok."
-msgid "There are no objects in your system that may be exported at this time."
-msgstr ""
-"Jelenleg nincsenek olyan objektumok a rendszerben amiket exportálni "
-"lehetne."
-msgid "use bulk exporter"
-msgstr "tömeges exportáló használata"
-msgid "Bulk Exporter"
-msgstr "Tömeges exportáló"
-msgid "Bulk-export multiple CTools-handled data objects to code."
-msgstr "Több CTools által kezelt adatobjektum tömeges exportálása kódba."
-msgid "Bulk Export"
-msgstr "Bulk Export"
-msgid "Performs bulk exporting of data objects known about by Chaos tools."
-msgstr ""
-"A <em>Chaos tools</em> modul által ismert adatobjektumok tömeges "
-"exportálása."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.pot b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.pot
deleted file mode 100644
index ee251d1..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/bulk_export/translations/bulk_export.pot
+++ /dev/null
@@ -1,69 +0,0 @@
-# $Id: bulk_export.pot,v 1.1 2009/08/16 19:13:58 hass Exp $
-#
-# LANGUAGE translation of Drupal (bulk_export)
-# Copyright YEAR NAME <EMAIL at ADDRESS>
-# Generated from files:
-#  bulk_export.module,v 1.3 2009/07/22 21:12:07 merlinofchaos
-#  bulk_export.info,v 1.2 2009/07/12 18:11:58 merlinofchaos
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-08-16 20:47+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: bulk_export/bulk_export.module:68
-msgid "Bulk export results"
-msgstr ""
-
-#: bulk_export/bulk_export.module:92;116;127
-msgid "Place this in @file"
-msgstr ""
-
-#: bulk_export/bulk_export.module:133
-msgid "There are no objects to be exported at this time."
-msgstr ""
-
-#: bulk_export/bulk_export.module:159
-msgid "Module name"
-msgstr ""
-
-#: bulk_export/bulk_export.module:160
-msgid "Enter the module name to export code to."
-msgstr ""
-
-#: bulk_export/bulk_export.module:200
-msgid "There are no objects in your system that may be exported at this time."
-msgstr ""
-
-#: bulk_export/bulk_export.module:13
-msgid "use bulk exporter"
-msgstr ""
-
-#: bulk_export/bulk_export.module:31
-msgid "Bulk Exporter"
-msgstr ""
-
-#: bulk_export/bulk_export.module:32
-msgid "Bulk-export multiple CTools-handled data objects to code."
-msgstr ""
-
-#: bulk_export/bulk_export.module:0
-msgid "bulk_export"
-msgstr ""
-
-#: bulk_export/bulk_export.info:0
-msgid "Bulk Export"
-msgstr ""
-
-#: bulk_export/bulk_export.info:0
-msgid "Performs bulk exporting of data objects known about by Chaos tools."
-msgstr ""
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/collapsible-div.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/collapsible-div.css
index b1fc6e1..91e7876 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/collapsible-div.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/collapsible-div.css
@@ -1,4 +1,3 @@
-/* $Id: collapsible-div.css,v 1.2 2008/11/27 17:29:34 merlinofchaos Exp $ */
 
 .ctools-collapsible-container .ctools-toggle {
   float: left;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/context.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/context.css
index 8522156..5093104 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/context.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/context.css
@@ -1,4 +1,3 @@
-/* $Id: context.css,v 1.2 2008/12/05 00:15:36 merlinofchaos Exp $ */
 .ctools-context-holder .ctools-context-title {
   float: left;
   width: 49%;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/ctools.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/ctools.css
index 4a3a35c..7372988 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/ctools.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/ctools.css
@@ -1,4 +1,3 @@
-/* $Id: ctools.css,v 1.4.2.1 2010/09/01 22:12:31 merlinofchaos Exp $ */
 .ctools-locked {
   color: red;
   border: 1px solid red;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/dropdown.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/dropdown.css
index f1c1df2..9d94d07 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/dropdown.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/dropdown.css
@@ -1,4 +1,3 @@
-/* $Id: dropdown.css,v 1.5 2009/07/21 01:21:43 merlinofchaos Exp $ */
 html.js div.ctools-dropdown div.ctools-dropdown-container {
   z-index: 1001;
   display: none;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/export-ui-list.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/export-ui-list.css
index 6f4e901..a16b805 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/export-ui-list.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/export-ui-list.css
@@ -1,4 +1,3 @@
-/* $Id: export-ui-list.css,v 1.1.2.1 2010/06/10 20:46:25 merlinofchaos Exp $ */
 body form#ctools-export-ui-list-form {
   margin: 0 0 20px 0;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/modal.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/modal.css
index d19beaa..90389b9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/modal.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/modal.css
@@ -1,4 +1,3 @@
-/* $Id: modal.css,v 1.6.2.4 2010/08/21 00:28:39 merlinofchaos Exp $ */
 div.ctools-modal-content {
   background: #fff;
   color: #000;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/stylizer.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/stylizer.css
index 1b11c55..a16ec78 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/stylizer.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/stylizer.css
@@ -1,4 +1,3 @@
-/* $Id: stylizer.css,v 1.1.2.3 2010/07/22 22:35:42 merlinofchaos Exp $ */
 
 /* Farbtastic placement */
 .color-form {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/wizard.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/wizard.css
index ce305f8..d42a2db 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/wizard.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/css/wizard.css
@@ -1,4 +1,3 @@
-/* $Id: wizard.css,v 1.1 2008/12/06 02:13:48 merlinofchaos Exp $ */
 
 .wizard-trail {
   font-size: 120%;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.api.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.api.php
index 220ae33..fd2cd82 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.api.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.api.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools.api.php,v 1.1.2.1 2010/06/06 20:16:17 sdboyer Exp $
 
 /**
  * @file
@@ -83,5 +82,19 @@ function hook_ctools_plugin_directory($owner, $plugin_type) {
 }
 
 /**
+ * Alter the available functions to be used in ctools math expression api.
+ *
+ * One usecase would be to create your own function in your module and
+ * allow to use it in the math expression api.
+ *
+ * @param $functions
+ *    An array which has the functions as value.
+ */
+function hook_ctools_math_expression_functions_alter(&$functions) {
+  // Allow to convert from degrees to radiant.
+  $functions[] = 'deg2rad';
+}
+
+/**
  * @} End of "addtogroup hooks".
- */
\ No newline at end of file
+ */
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.info
index 3b0c9d7..328a58f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.info
@@ -1,11 +1,10 @@
-; $Id: ctools.info,v 1.3 2009/07/12 18:11:58 merlinofchaos Exp $
 name = Chaos tools
 description = A library of helpful tools by Merlin of Chaos.
 core = 6.x
 package = Chaos tool suite
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.install
index 098c576..178af49 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools.install,v 1.12.2.7 2010/07/14 01:57:42 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.module
index b3e6f8f..550f774 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools.module,v 1.27.2.50 2010/10/15 22:11:09 merlinofchaos Exp $
 
 /**
  * @file
@@ -10,7 +9,7 @@
  * must be implemented in the module file.
  */
 
-define('CTOOLS_API_VERSION', '1.8');
+define('CTOOLS_API_VERSION', '1.9');
 
 /**
  * Test the CTools API version.
@@ -330,6 +329,10 @@ function ctools_set_variable_token($token) {
  * $token = ctools_set_variable_token('id', 'mymodule_myfunction');
  */
 function ctools_set_callback_token($token, $callback) {
+  // If the callback uses arguments they are considered in the token.
+  if (is_array($callback)) {
+    $token .= '-' . md5(serialize($callback));
+  }
   $string = '<!-- ctools-page-' . $token . ' -->';
   ctools_set_page_token($string, 'callback', $callback);
   return $string;
@@ -391,7 +394,7 @@ function ctools_shutdown_handler() {
 function ctools_theme() {
   ctools_include('utility');
   $items = array();
-  _ctools_passthrough($items, 'theme');
+  ctools_passthrough('ctools', 'theme', $items);
   return $items;
 }
 
@@ -401,7 +404,7 @@ function ctools_theme() {
 function ctools_menu() {
   ctools_include('utility');
   $items = array();
-  _ctools_passthrough($items, 'menu');
+  ctools_passthrough('ctools', 'menu', $items);
   return $items;
 }
 
@@ -410,7 +413,8 @@ function ctools_menu() {
  */
 function ctools_cron() {
   ctools_include('utility');
-  _ctools_passthrough($items, 'cron');
+  $items = array();
+  ctools_passthrough('ctools', 'cron', $items);
 }
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info
index 49fc414..2282cb7 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info
@@ -1,13 +1,12 @@
-; $Id: ctools_access_ruleset.info,v 1.1.2.1 2010/07/14 01:33:03 merlinofchaos Exp $
 name = Custom rulesets
 description = Create custom, exportable, reusable access rulesets for applications like Panels.
 core = 6.x
 package = Chaos tool suite
 dependencies[] = ctools
 
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install
index 6f29b3b..f6adc58 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_access_ruleset.install,v 1.1.2.2 2010/07/14 01:57:42 merlinofchaos Exp $
 
 /**
  * Schema for customizable access rulesets.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module
index fb76f4b..936f671 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_access_ruleset.module,v 1.1.2.3 2010/07/26 22:09:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc
index 3bda507..fc8615e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ruleset.inc,v 1.1.2.1 2010/07/26 22:09:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc
index a9562a8..bd4b1ac 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_access_ruleset.inc,v 1.1.2.1 2010/07/14 01:33:03 merlinofchaos Exp $
 
 $plugin = array(
   'schema' => 'ctools_access_ruleset',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php
index 6d3aa7f..60e08b8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_access_ruleset_ui.class.php,v 1.1.2.2 2010/07/22 19:21:58 merlinofchaos Exp $
 
 class ctools_access_ruleset_ui extends ctools_export_ui {
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info
index 63ec3f6..50d0bca 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info
@@ -1,13 +1,12 @@
-; $Id: ctools_ajax_sample.info,v 1.1.2.1 2010/08/20 02:18:46 merlinofchaos Exp $ 
 name = Chaos Tools (CTools) AJAX Example
 description = Shows how to use the power of Chaos AJAX.
 package = Chaos tool suite
 dependencies[] = ctools
 version = "6.x-1.0"
 core = "6.x"
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install
index 31c6466..04325db 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_ajax_sample.install,v 1.1.2.1 2010/08/20 02:18:46 merlinofchaos Exp $ 
 
 /**
  * @file 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module
index 3834eb1..a04df9f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_ajax_sample.module,v 1.1.2.2 2010/10/15 21:32:07 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.info
index 3a1a8c0..51c692f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.info
@@ -1,13 +1,12 @@
-; $Id: ctools_custom_content.info,v 1.1.2.1 2010/07/14 01:57:42 merlinofchaos Exp $
 name = Custom content panes
 description = Create custom, exportable, reusable content panes for applications like Panels.
 core = 6.x
 package = Chaos tool suite
 dependencies[] = ctools
 
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.install
index 1d9024d..7388412 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_custom_content.install,v 1.1.2.1 2010/07/14 01:57:42 merlinofchaos Exp $
 
 /**
  * Schema for CTools custom content.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.module
index cdcd4f3..31b0bd2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/ctools_custom_content.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_custom_content.module,v 1.1.2.2 2010/07/23 21:47:20 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content.inc
index fa4ff39..7487ead 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_custom_content.inc,v 1.1.2.1 2010/07/14 01:57:42 merlinofchaos Exp $
 
 $plugin = array(
   'schema' => 'ctools_custom_content',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php
index ab8a6b4..221de05 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_custom_content/plugins/export_ui/ctools_custom_content_ui.class.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_custom_content_ui.class.php,v 1.1.2.1 2010/07/14 01:57:42 merlinofchaos Exp $
 
 class ctools_custom_content_ui extends ctools_export_ui {
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/README.txt b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/README.txt
index 1327f91..42edcdc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/README.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/README.txt
@@ -1,4 +1,3 @@
-// $Id: README.txt,v 1.1.2.1 2010/01/29 22:46:25 merlinofchaos Exp $
 
 The CTools Plugin Example is an example for developers of how to CTools
 access, argument, content type, context, and relationship plugins.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.info
index 026e6c1..2065302 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.info
@@ -7,9 +7,9 @@ dependencies[] = page_manager
 dependencies[] = advanced_help
 core = 6.x
 
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.module
index 0a0df44..060488d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_plugin_example.module,v 1.1 2009/08/17 22:07:14 merlinofchaos Exp $
 
 /*
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.pages_default.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.pages_default.inc
index efb9cdc..10a7619 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.pages_default.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/ctools_plugin_example.pages_default.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_plugin_example.pages_default.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/arg_length.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/arg_length.inc
index 30631d3..2a09eea 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/arg_length.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/arg_length.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: arg_length.inc,v 1.1.2.2 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/example_role.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/example_role.inc
index c1a807c..bbe364c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/example_role.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/example_role.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: example_role.inc,v 1.1.2.2 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/translations/ctools_plugin_example-plugins-access.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/translations/ctools_plugin_example-plugins-access.hu.po
deleted file mode 100644
index 7081846..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/access/translations/ctools_plugin_example-plugins-access.hu.po
+++ /dev/null
@@ -1,40 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:33+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Greater than"
-msgstr "Nagyobb jel"
-msgid "Less than or equal to"
-msgstr "Kevesebb mint, vagy egyenlő"
-msgid "Arg length"
-msgstr "Argumentum hossza"
-msgid "Control access by length of simplecontext argument."
-msgstr ""
-"Hozzáférés szabályozása a <em>simplecontext</em> argumentum "
-"hossza által."
-msgid "Grant access if simplecontext argument length is"
-msgstr "Hozzáférés biztosítása, ha a simplecontext argumentum hossza"
-msgid "Length of simplecontext argument"
-msgstr "A <em>simplecontext</em> argumentum hossza"
-msgid "Access/visibility will be granted based on arg length."
-msgstr ""
-"Hozzáférés/láthatóság biztosítva lesz az argumentum hossza "
-"alapján."
-msgid "Simpletext argument must be !comp @length characters"
-msgstr "Simpletext argumentumnak !comp @length karakternek kell lennie"
-msgid "CTools example: role"
-msgstr "A <em>CTools</em> példa: csoport"
-msgid "@identifier must have role \"@roles\""
-msgid_plural "@identifier can be one of \"@roles\""
-msgstr[0] "@identifier „@roles” csoport tagja kell legyen"
-msgstr[1] "@identifier „@roles” csoportok egyikének tagja kell legyen"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/simplecontext_arg.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/simplecontext_arg.inc
index 7ab0c05..51c7c60 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/simplecontext_arg.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/simplecontext_arg.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: simplecontext_arg.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/translations/ctools_plugin_example-plugins-arguments.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/translations/ctools_plugin_example-plugins-arguments.hu.po
deleted file mode 100644
index 84ceb8b..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/arguments/translations/ctools_plugin_example-plugins-arguments.hu.po
+++ /dev/null
@@ -1,20 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 08:07+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Simplecontext arg"
-msgstr "<em>Simplecontext</em> argumentum"
-msgid "Creates a \"simplecontext\" from the arg."
-msgstr "Egy <em>simplecontext</em> létrehozása az argumentumból."
-msgid "Enter the simplecontext arg"
-msgstr "Ssimplecontext argumentum megadása"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/no_context_content_type.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/no_context_content_type.inc
index 853b331..28d749b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/no_context_content_type.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/no_context_content_type.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: no_context_content_type.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/relcontext_content_type.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/relcontext_content_type.inc
index c9c0e5c..b0742e0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/relcontext_content_type.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/relcontext_content_type.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: relcontext_content_type.inc,v 1.1.2.2 2010/01/29 19:54:02 merlinofchaos Exp $
 
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/simplecontext_content_type.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/simplecontext_content_type.inc
index 16e5e31..82291d0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/simplecontext_content_type.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/simplecontext_content_type.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: simplecontext_content_type.inc,v 1.1.2.2 2010/01/29 19:54:02 merlinofchaos Exp $
 
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/translations/ctools_plugin_example-plugins-content_types.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/translations/ctools_plugin_example-plugins-content_types.hu.po
deleted file mode 100644
index fe04db5..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/content_types/translations/ctools_plugin_example-plugins-content_types.hu.po
+++ /dev/null
@@ -1,95 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:37+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Item1"
-msgstr "Elem1"
-msgid "The stuff for item 1."
-msgstr "Valami az elem 1-hez."
-msgid "Item2"
-msgstr "Elem2"
-msgid "CTools example no context content type"
-msgstr "CTools példa környezetnélküli tartalomtípusra"
-msgid "No context content type - requires and uses no context."
-msgstr ""
-"Környezetnélküli tartalomtípus - nem szükséges hozzá és nem "
-"használ környezetet."
-msgid "The setting for item 1."
-msgstr "Elem 1 beállításai"
-msgid "The setting for item 2"
-msgstr "Elem 2 beállításai"
-msgid "CTools example relcontext content type"
-msgstr "CTools példa relcontext tartalomtípusra"
-msgid "Relcontext content type - works with relcontext context."
-msgstr "Relcontext tartalomtípus - a relcontext környezettel működik."
-msgid "Config Item 1 (relcontext)"
-msgstr "Elem 1 beállítása (relcontext)"
-msgid "Setting for relcontext."
-msgstr "Relcontext beállítása"
-msgid "Simplecontext content type"
-msgstr "Simplecontext tartalomtípus"
-msgid "Simplecontext content type - works with a simplecontext context."
-msgstr "Simplecontext tartalomtípus - simplecontext környezetben működik."
-msgid "Config Item 1 for simplecontext content type"
-msgstr "Elem 1 beállítása a simplecontext tartalomtípushoz"
-msgid ""
-"\n"
-"    This is a block of data created by the Relcontent content type.\n"
-"    Data in the block may be assembled from static text (like this) or "
-"from the\n"
-"    content type settings form ($conf) for the content type, or from "
-"the context\n"
-"    that is passed in. <br />\n"
-"    In our case, the configuration form ($conf) has just one field, "
-"'config_item_1;\n"
-"    and it's configured with:\n"
-"    "
-msgstr ""
-"\n"
-"    Ez egy adatblokk, amit a  Relcontent tartalomtípus hozott "
-"létre.\r\n"
-"    A blokk adatainak összeállítása történhet statikus "
-"szövegekből (mint ez)\r\n"
-"    vagy a tartalomtípus beállításainak űrlapjából ($conf), "
-"esetleg a beállított\r\n"
-"    környezetből. <br />\r\n"
-"    Jelen esetben a beállítási űrlapon ($conf) csak egy mező van, "
-"'config_item_1;\r\n"
-"    ezzel lett beállítva:\n"
-"    "
-msgid ""
-"\n"
-"    This is a block of data created by the Simplecontext content "
-"type.\n"
-"    Data in the block may be assembled from static text (like this) or "
-"from the\n"
-"    content type settings form ($conf) for the content type, or from "
-"the context\n"
-"    that is passed in. <br />\n"
-"    In our case, the configuration form ($conf) has just one field, "
-"'config_item_1;\n"
-"    and it's configured with:\n"
-"    "
-msgstr ""
-"\n"
-"    Ez egy adatblokk, amit a  Simplecontext tartalomtípus hozott "
-"létre.\r\n"
-"    A blokk adatainak összeállítása történhet statikus "
-"szövegekből (mint ez)\r\n"
-"    vagy a tartalomtípus beállításainak űrlapjából ($conf), "
-"esetleg a beállított\r\n"
-"    környezetből. <br />\r\n"
-"    Jelen esetben a beállítási űrlapon ($conf) csak egy mező van, "
-"'config_item_1;\r\n"
-"    ezzel lett beállítva:\n"
-"    "
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/relcontext.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/relcontext.inc
index db5c144..0c7ef11 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/relcontext.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/relcontext.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: relcontext.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/simplecontext.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/simplecontext.inc
index 12ee17a..e19a842 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/simplecontext.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/simplecontext.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: simplecontext.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/translations/ctools_plugin_example-plugins-contexts.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/translations/ctools_plugin_example-plugins-contexts.hu.po
deleted file mode 100644
index f029f63..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/contexts/translations/ctools_plugin_example-plugins-contexts.hu.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:39+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "A relcontext object."
-msgstr "Egy relcontext objektum."
-msgid "Relcontext context from simplecontext"
-msgstr "Relcontext környezet simplecontextből"
-msgid "Relcontext setting"
-msgstr "Relcontext beállítás"
-msgid "Just an example setting."
-msgstr "Csak egy példa beállítás."
-msgid "A single \"simplecontext\" context, or data element."
-msgstr "Egy egyszerű „simplecontext” környezet vagy adatelem."
-msgid "Enter some data to represent this \"simplecontext\"."
-msgstr "Ezt a „simplecontext”-et képviselő néhány adat megadása."
-msgid "Simplecontext context from config"
-msgstr "Simplecontext környezet a beállításokból"
-msgid "Setting for simplecontext"
-msgstr "Simplecontext beállítása"
-msgid "An example setting that could be used to configure a context"
-msgstr ""
-"Egy példa beállítás, ami a környezet beállításához "
-"használható"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/panels.pages.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/panels.pages.inc
index 7df7133..ee61e0a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/panels.pages.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/panels.pages.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: panels.pages.inc,v 1.1.2.1 2009/10/13 20:55:29 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/relcontext_from_simplecontext.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/relcontext_from_simplecontext.inc
index 54230d6..6224621 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/relcontext_from_simplecontext.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/relcontext_from_simplecontext.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: relcontext_from_simplecontext.inc,v 1.1.2.1 2010/01/29 19:54:02 merlinofchaos Exp $
 
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/translations/ctools_plugin_example-plugins-relationships.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/translations/ctools_plugin_example-plugins-relationships.hu.po
deleted file mode 100644
index d520ab0..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/plugins/relationships/translations/ctools_plugin_example-plugins-relationships.hu.po
+++ /dev/null
@@ -1,18 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:39+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Adds a relcontext from existing simplecontext."
-msgstr "Hozzáad egy relcontextet egy létező simplecontextből."
-msgid "Relcontext from simplecontext"
-msgstr "Relcontext simplecontextből"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/translations/ctools_plugin_example.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/translations/ctools_plugin_example.hu.po
deleted file mode 100644
index c18ccb4..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/ctools_plugin_example/translations/ctools_plugin_example.hu.po
+++ /dev/null
@@ -1,56 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:37+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid ""
-"Demonstration code, advanced help, and a demo panel to show how to "
-"build ctools plugins."
-msgstr ""
-"Bemutató kód, haladó segítség és egy demó panel annak "
-"bemutatására, hogy miként lehet ctools beépülőket építeni."
-msgid ""
-"The CTools Plugin Example is simply a developer's demo of how to "
-"create plugins for CTools. It provides no useful functionality for an "
-"ordinary user."
-msgstr ""
-"A CTools Plugin Example egyszerűen egy fejlesztői bemutató arról, "
-"hogy miként lehet beépülőket létrehozni CTools-hoz. Hétköznapi "
-"felhasználónak nem nyújt semmilyen hasznos funkciót."
-msgid ""
-"There is a demo panel demonstrating much of the functionality provided "
-"at\n"
-"    <a href=\"@demo_url\">CTools demo panel</a>, and you can find "
-"documentation on the examples at\n"
-"    !ctools_plugin_example_help.\n"
-"    CTools itself provides documentation at !ctools_help. Mostly, "
-"though, the code itself is intended to be the teacher.\n"
-"    You can find it in %path."
-msgstr ""
-"Ez egy demó panel a <a href=\"@demo_url\">CTools bemutató panel</a> "
-"által biztosított funkciók többségének bemutatására,\r\n"
-"    dokumentáció a !ctools_plugin_example_help oldalon "
-"található.\r\n"
-"    Magának a CTools-nak a dokumentációja a !ctools_help oldalon "
-"található. Többnyire, mert inkább magának a kódnak a feladata, "
-"hogy magyarázó legyen.\r\n"
-"    Megtalálható itt: %path."
-msgid "CTools plugin example"
-msgstr "<em>CTools</em> beépülő példa"
-msgid "Chaos Tools (CTools) Plugin Example"
-msgstr "<em>Chaos Tools</em> (<em>CTools</em>) beépülő példa"
-msgid ""
-"Shows how an external module can provide ctools plugins (for Panels, "
-"etc.)."
-msgstr ""
-"Bemutatja, hogy egy külső modul miként biztosíthat <em>CTools</em> "
-"beépülőket (például a <em>Panels</em> modulhoz, stb...)."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/about.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/about.html
index c5b8ec0..39493ff 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/about.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/about.html
@@ -1,4 +1,3 @@
-<!-- $Id: about.html,v 1.1 2009/01/22 01:57:18 merlinofchaos Exp $ -->
 The Chaos Tool Suite is a series of tools for developers to make code that I've found to be very useful to Views and Panels more readily available. Certain methods of doing things, particularly with AJAX, exportable objects, and a plugin system are proving to be ideas that are useful outside of just Views and Panels. This module does not offer much directly ot the end user, but instead creates a library for other modules to use. If you are an end user and some module asked you to install the CTools suite, then this is far as you really need to go. If you're a developer and are interested in these tools, read on!
 
 <h3>Tools provided by CTools</h3>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ajax.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ajax.html
index 8745e39..e69de29 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ajax.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ajax.html
@@ -1 +0,0 @@
-<!-- $Id: ajax.html,v 1.1 2009/01/22 01:57:18 merlinofchaos Exp $ -->
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-access.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-access.html
index 24a182b..ef2ddbf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-access.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-access.html
@@ -1,4 +1,3 @@
-<!-- $Id: context-access.html,v 1.1 2008/12/17 08:29:20 merlinofchaos Exp $ -->
 
 access plugins allow context based access control to pages.    
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-arguments.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-arguments.html
index d9910bb..f19f597 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-arguments.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-arguments.html
@@ -1,4 +1,3 @@
-<!-- $Id: context-arguments.html,v 1.3 2008/12/19 17:35:57 merlinofchaos Exp $ -->
 
 Arguments create a context from external input, which is assumed to be a
 string as though it came from a URL element.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-content.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-content.html
index b3becf1..7c18d51 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-content.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-content.html
@@ -1,4 +1,3 @@
-<!-- $Id: context-content.html,v 1.3 2009/07/18 22:06:33 merlinofchaos Exp $ -->
 <p>The CTools pluggable content system provides various pieces of
 content as discrete bits of data that can be added to other
 applications, such as Panels or Dashboard via the UI. Whatever the
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-context.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-context.html
index 9d8c1d8..23a9631 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-context.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-context.html
@@ -1,4 +1,3 @@
-<!-- $Id: context-context.html,v 1.1 2008/12/04 22:22:40 merlinofchaos Exp $ -->
 
 Context plugin data:
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-relationships.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-relationships.html
index 9fc8a9b..547f891 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-relationships.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context-relationships.html
@@ -1,4 +1,3 @@
-<!-- $Id: context-relationships.html,v 1.1 2008/12/04 22:22:40 merlinofchaos Exp $ -->
 
     'title' => The title to display.
     'description' => Description to display.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context.html
index bf5ebee..e69de29 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/context.html
@@ -1 +0,0 @@
-<!-- $Id: context.html,v 1.1 2008/12/04 22:22:40 merlinofchaos Exp $ -->
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ctools.help.ini b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ctools.help.ini
index 85183dd..a3f2075 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ctools.help.ini
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/ctools.help.ini
@@ -1,4 +1,3 @@
-; $Id: ctools.help.ini,v 1.3.2.1 2010/06/10 20:46:25 merlinofchaos Exp $
 [advanced help settings]
 line break = TRUE
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export-ui.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export-ui.html
index aed11bd..f836a18 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export-ui.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export-ui.html
@@ -1,4 +1,3 @@
-<!-- $Id: export-ui.html,v 1.1.2.2 2010/07/08 22:56:53 merlinofchaos Exp $ -->
 Most user interfaces for exportables are very similar, so CTools includes a tool to provide the framework for the most common UI. This tool is a plugin of the 'export_ui' type. In order to create a UI for your exportable object with this tool, you first need to ensure that your module supports the plugin:
 
 <pre>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export.html
index 1a831fc..88fb9f2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/export.html
@@ -1,4 +1,3 @@
-<!-- $Id: export.html,v 1.1.2.7 2010/07/22 22:41:44 merlinofchaos Exp $ -->
 Exportable objects are objects that can live either in the database or in code, or in both. If they live in both, then the object in code is considered to be "overridden", meaning that the version in code is ignored in favor of the version in the database.
 
 The main benefit to this is that you can move objects that are intended to be structure or feature-related into code, thus removing them entirely from the database. This is a very important part of the deployment path, since in an ideal world, the database is primarily user generated content, whereas site structure and site features should be in code. However, many many features in Drupal rely on objects being in the database and provide UIs to create them.
@@ -106,7 +105,10 @@ function mymodule_schema() {
 <dd>Objects should contain a primary key which is a database identifier primarily used to determine if an object has been written or not. This is required for the default CRUD save callback to work.</dd>
 
 <dt>object</dt>
-<dd>The class the object should be created as. Defaults as stdClass.</dd>
+<dd>The class the object should be created as, if 'object factory' is not set. If this is not set either, defaults as stdClass.</dd>
+
+<dt>object factory</dt>
+<dd>Function used to create the object. The function receives the schema and the loaded data as a parameters: your_factory_function($schema, $data). If this is set,  'object' has no effect since you can use your function to create whatever class you wish.</dd>
 
 <dt>can disable</dt>
 <dd>Control whether or not the exportable objects can be disabled. All this does is cause the 'disabled' field on the object to always be set appropriately, and a variable is kept to record the state. Changes made to this state must be handled by the owner of the object. Defaults to TRUE.</dd>
@@ -123,6 +125,9 @@ function mymodule_schema() {
 <dt>bulk export</dt>
 <dd>Declares whether or not the exportable will be available for bulk exporting.</dd>
 
+<dt>export type string</dt>
+<dd>The export type string (Local, Overridden, Database) is normally stored as $item->type. Since type is a very common keyword, it's possible to specify what key to actually use. </dd>
+
 <dt>list callback</dt>
 <dd>Bulk export callback to provide a list of exportable objects to be chosen for bulk exporting. Defaults to $module . '_' . $table . '_list' if the function exists. If it is not, a default listing function will be provided that will make a best effort to list the titles. See ctools_export_default_list().</dd>
 
@@ -190,6 +195,7 @@ Exportable objects have several reserved keys that are used by the CTools export
 <li><em>Overridden</em> is an object that lives in the database and is overriding the exported configuration of a corresponding object in code.</li>
 <li><em>Default</em> is an object that lives only in code.</li>
 </ul>
+<i>Note: This key can be changed by setting 'export type string' to something else, to try and prevent "type" from conflicting.</i>
 </dd>
 </dl>
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/form.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/form.html
index fdb134f..8b3adef 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/form.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/form.html
@@ -1,4 +1,3 @@
-<!-- $Id: form.html,v 1.1 2009/01/22 01:57:18 merlinofchaos Exp $ -->
 CTools' form tool is a replacement for drupal_get_form() that includes some additional functionality:
 <ul>
 <li> It takes $form_state as an argument, which is accepted as a reference; meaning when the form is complete, you can examine the $form_state to see what the form did.</li>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/modal.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/modal.html
index 9820d65..08388a0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/modal.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/modal.html
@@ -1,4 +1,3 @@
-<!-- $Id: modal.html,v 1.1.2.1 2010/09/08 21:10:12 merlinofchaos Exp $ -->
 CTools provides a simple modal that can be used as a popup to place forms. It differs from the normal modal frameworks in that it does not do its work via an iframe. This is both an advantage and a disadvantage. The iframe simply renders normal pages in a sub-browser and they can do their thing. That makes it much easier to put arbitrary pages and forms in a modal. However, the iframe is not very good at actually communicating changes to the main page, so you cannot open the modal, have it do some work, and then modify the page. 
 
 <h3>Invoking the modal</h3>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/object-cache.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/object-cache.html
index e810b17..9648170 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/object-cache.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/object-cache.html
@@ -1,4 +1,3 @@
-<!-- $Id: object-cache.html,v 1.1 2009/01/23 23:14:04 merlinofchaos Exp $ -->
 The CTools Object Cache is a specialized cache for storing data that is non-volatile. This differs from the standard Drupal cache mechanism, which is volatile, meaning that the data can be cleared at any time and it is expected that any cached data can easily be reconstructed. In contrast, data stored in this cache is not expected to be reconstructable. It is primarily used for storing user input which is retrieved in stages, allowing for more complex user interface interactions.
 
 The object cache consists of 3 normal functions for cache maintenance, and 2 additional functions to facilitate locking.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-api.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-api.html
index 4392cb4..47e5d6b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-api.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-api.html
@@ -1,4 +1,3 @@
-<!-- $Id: plugins-api.html,v 1.3 2009/04/17 19:16:21 merlinofchaos Exp $ -->
 APIs are a form of plugins that are tightly associated with a module. Instead of a module providing any number of plugins, each module provides only one file for an API and this file can contain hooks that the module should invoke.
 
 Modules support this API by implementing hook_ctools_plugin_api($module, $api). If they support the API, they return a packet of data:
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-creating.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-creating.html
index abb43a2..77f0315 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-creating.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-creating.html
@@ -1,4 +1,3 @@
-<!-- $Id: plugins-creating.html,v 1.9.2.3 2010/07/26 22:10:52 merlinofchaos Exp $ -->
 There are two primary pieces to using plugins. The first is getting the data, and the second is using the data.
 
 <h3>Getting the data</h3>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-implementing.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-implementing.html
index 4634176..0ea1269 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-implementing.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins-implementing.html
@@ -1,4 +1,3 @@
-<!-- $Id: plugins-implementing.html,v 1.3.2.1 2009/11/13 00:44:16 merlinofchaos Exp $ -->
 To implement plugins, you need to implement a single hook in your module to tell the system where your plugins live, and then you need to implement one or more .inc files that contain the plugin data.
 
 <h3>Telling it where your plugins live</h3>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins.html
index f85538c..906813e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/plugins.html
@@ -1,4 +1,3 @@
-<!-- $Id: plugins.html,v 1.1.2.1 2010/06/06 19:57:46 sdboyer Exp $ -->
 The plugins tool allows a module to allow <b>other</b> modules (and themes!) to provide plugins which provide some kind of functionality or some kind of task. For example, in Panels there are several types of plugins: Content types (which are like blocks), layouts (which are page layouts) and styles (which can be used to style a panel). Each plugin is represented by a .inc file, and the functionality they offer can differ wildly.
 
 A module which uses plugins can implement a hook describing the plugin (which is not necessary, as defaults will be filled in) and then calls a ctools function which loads either all the known plugins (used for listing/choosing) or loads a specific plugin (used when its known which plugin is needed). From the perspective of the plugin system, a plugin is a packet of data, usually some printable info and a list of callbacks. It is up to the module implementing plugins to determine what that info means and what the callbacks do.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/wizard.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/wizard.html
index 41f56fa..5e4ebe8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/wizard.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/help/wizard.html
@@ -1,4 +1,3 @@
-<!-- $Id: wizard.html,v 1.5.2.2 2010/10/15 22:13:38 merlinofchaos Exp $ -->
 Form wizards, or multi-step forms, are a process by which the user goes through or can use an arbitrary number of different forms to create a single object or perform a single task. Traditionally the multi-step form is difficult in Drupal because there is no easy place to put data in between forms. No longer! The form wizard tool allows a single entry point to easily set up a wizard of multiple forms, provide callbacks  to handle data storage and updates between forms and when forms are completed. This tool pairs well with the <a href="&topic:ctools/object-cache&">object cache</a> tool for storage.
 
 <h3>The form info array</h3>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/ajax.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/ajax.inc
index 1c40797..05416af 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/ajax.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/ajax.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ajax.inc,v 1.14.2.14 2010/10/15 20:56:03 merlinofchaos Exp $
 
 // Set this so we can tell that the file has been included at some point.
 define('CTOOLS_AJAX_INCLUDED', 1);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/collapsible.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/collapsible.theme.inc
index a269653..7d6d6af 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/collapsible.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/collapsible.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: collapsible.theme.inc,v 1.5 2009/09/10 13:43:11 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.inc
index a89b9d8..4fc132a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: content.inc,v 1.12.2.13 2010/08/19 20:35:03 merlinofchaos Exp $
 
 /**
  * @file
@@ -60,6 +59,14 @@ function ctools_content_process(&$plugin, $info) {
     $plugin['add form'] = $function_base . 'edit_form';
   }
 
+  if (!isset($plugin['description'])) {
+    $plugin['description'] = '';
+  }
+
+  if (!isset($plugin['icon'])) {
+    $plugin['icon'] = ctools_content_admin_icon($plugin);
+  }
+
   // Another ease of use check:
   if (!isset($plugin['content types'])) {
     // If a subtype plugin exists, try to use it. Otherwise assume single.
@@ -70,7 +77,7 @@ function ctools_content_process(&$plugin, $info) {
       $type = array(
         'title' => $plugin['title'],
         'description' => $plugin['description'],
-        'icon' => $plugin['icon'],
+        'icon' => ctools_content_admin_icon($plugin),
         'category' => $plugin['category'],
       );
 
@@ -281,6 +288,9 @@ function ctools_content_render($type, $subtype, $conf, $keywords = array(), $arg
     }
 
     $content = $function($subtype, $conf, $args, $pane_context, $incoming_content);
+    if (empty($content)) {
+      return;
+    }
 
     // Set up some defaults and other massaging on the content before we hand
     // it back to the caller.
@@ -747,6 +757,35 @@ function ctools_content_select_context($plugin, $subtype, $conf, $contexts) {
     return;
   }
 
+  // Deal with dynamic required contexts not getting updated in the panes.
+  // For example, Views let you dynamically change context info. While
+  // we cannot be perfect, one thing we can do is if no context at all
+  // was asked for, and then was later added but none is selected, make
+  // a best guess as to what context should be used. THis is right more
+  // than it's wrong.
+  if (is_array($subtype_info['required context'])) {
+    if (empty($conf['context']) || count($subtype_info['required context']) != count($conf['context'])) {
+      foreach($subtype_info['required context'] as $index => $required) {
+        if (!isset($conf['context'][$index])) {
+          $filtered = ctools_context_filter($contexts, $required);
+          if ($filtered) {
+            $keys = array_keys($filtered);
+            $conf['context'][$index] = array_shift($keys);
+          }
+        }
+      }
+    }
+  }
+  else {
+    if (empty($conf['context'])) {
+      $filtered = ctools_context_filter($contexts, $subtype_info['required context']);
+      if ($filtered) {
+        $keys = array_keys($filtered);
+        $conf['context'] = array_shift($keys);
+      }
+    }
+  }
+
   if (empty($conf['context'])) {
     return;
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.menu.inc
index 333fae3..1c5d331 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: content.menu.inc,v 1.2.2.1 2010/05/20 01:43:03 sdboyer Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.theme.inc
index 74c846d..5ce1ea4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/content.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: content.theme.inc,v 1.3 2009/05/11 22:01:42 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-access-admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-access-admin.inc
index c779f5b..4e1baeb 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-access-admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-access-admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context-access-admin.inc,v 1.7.2.2 2010/07/14 23:32:08 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-admin.inc
index 9088a88..727a259 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context-admin.inc,v 1.9.2.3 2010/07/13 23:55:22 merlinofchaos Exp $
 
 /**
  * @file includes/common-context.inc
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-task-handler.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-task-handler.inc
index 759ed59..4fed9d0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-task-handler.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context-task-handler.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context-task-handler.inc,v 1.23.2.9 2010/09/10 18:25:13 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.inc
index 9c4a590..47735c4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context.inc,v 1.33.2.17 2010/09/10 17:07:52 merlinofchaos Exp $
 
 /**
  * @file
@@ -622,7 +621,7 @@ function ctools_context_keyword_substitute($string, $keywords, $contexts) {
 
       // Figure out our keyword and converter, if specified.
       if (strpos($keyword, ':')) {
-        list($context, $converter) = explode(':', $keyword);
+        list($context, $converter) = explode(':', $keyword, 2);
       }
       else {
         $context = $keyword;
@@ -1227,7 +1226,7 @@ function ctools_context_replace_placeholders($contexts, $arguments) {
       case 'context':
         if (!empty($arguments[$cid])) {
           $context_info = $context->placeholder['conf'];
-          $new_context = ctools_context_get_context_from_context($context_info, 'requiredcontext', $arguments[$cid]);
+          $new_context = ctools_context_get_context_from_context($context_info, 'context', $arguments[$cid]);
         }
         break;
     }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.menu.inc
index 39bcd9b..3cba932 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context.menu.inc,v 1.2 2008/12/30 18:21:34 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.theme.inc
index 078d0f6..f8f93bf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/context.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context.theme.inc,v 1.7.2.4 2010/09/10 18:25:13 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/css.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/css.inc
index e70e319..00d2acc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/css.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/css.inc
@@ -1,5 +1,4 @@
 <?php
-/* $Id: css.inc,v 1.10.2.7 2010/10/15 21:10:11 merlinofchaos Exp $ */
 
 /*
  * @file
@@ -310,7 +309,8 @@ function ctools_css_disassemble($css) {
   // Remove comments.
   $css = preg_replace("/\/\*(.*)?\*\//Usi", "", $css);
   // Split out each statement
-  $statements = explode("}", $css);
+  $statements = preg_split('/[;}]/', $css);
+
   // If we have any statements, parse them.
   if (!empty($statements)) {
     // Iterate through all of the statements.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dependent.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dependent.inc
index 8cd44e4..fc1696f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dependent.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dependent.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: dependent.inc,v 1.5.2.2 2010/01/29 19:44:39 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dropdown.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dropdown.theme.inc
index 84c643b..2a2819a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dropdown.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/dropdown.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: dropdown.theme.inc,v 1.5.2.1 2009/10/02 17:44:17 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.inc
index 1cf2339..c6a83de 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: export-ui.inc,v 1.1.2.9 2010/10/15 21:05:55 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.menu.inc
index 1d1723a..b9d2296 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export-ui.menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: export-ui.menu.inc,v 1.1.2.2 2010/07/21 23:04:59 merlinofchaos Exp $
 
 /**
  * Delegated implementation of hook_menu().
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export.inc
index e11cf09..28343e2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/export.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: export.inc,v 1.19.2.23 2010/08/12 20:48:31 merlinofchaos Exp $
 
 /**
  * @file
@@ -261,7 +260,7 @@ function ctools_export_crud_import($table, $code) {
     // Set these defaults just the same way that ctools_export_new_object sets
     // them.
     $item->export_type = NULL;
-    $item->type = t('Local');
+    $item->{$export['export type string']} = t('Local');
 
     return $item;
   }
@@ -381,9 +380,14 @@ function ctools_export_load_object($table, $type = 'all', $args = array()) {
   $status = variable_get($export['status'], array());
   // Unpack the results of the query onto objects and cache them.
   while ($data = db_fetch_object($result)) {
-    $object = _ctools_export_unpack_object($schema, $data, $export['object']);
+    if (isset($schema['export']['object factory']) && function_exists($schema['export']['object factory'])) {
+      $object = $schema['export']['object factory']($schema, $data);
+    }
+    else {
+      $object = _ctools_export_unpack_object($schema, $data, $export['object']);
+    }
     $object->table = $table;
-    $object->type = t('Normal');
+    $object->{$export['export type string']} = t('Normal');
     $object->export_type = EXPORT_IN_DATABASE;
     // Determine if default object is enabled or disabled.
     if (isset($status[$object->{$export['key']}])) {
@@ -396,7 +400,10 @@ function ctools_export_load_object($table, $type = 'all', $args = array()) {
     }
   }
 
-  // @todo Load subrecords.
+  // Load subrecords.
+  if (isset($export['subrecords callback']) && function_exists($export['subrecords callback'])) {
+    $export['subrecords callback']($cache[$table]);
+  }
 
   if ($defaults = _ctools_export_get_defaults($table, $export)) {
 
@@ -421,14 +428,14 @@ function ctools_export_load_object($table, $type = 'all', $args = array()) {
       }
 
       if (!empty($cache[$table][$object->{$export['key']}])) {
-        $cache[$table][$object->{$export['key']}]->type = t('Overridden');
+        $cache[$table][$object->{$export['key']}]->{$export['export type string']} = t('Overridden');
         $cache[$table][$object->{$export['key']}]->export_type |= EXPORT_IN_CODE;
         if ($type == 'conditions') {
           $return[$object->{$export['key']}] = $cache[$table][$object->{$export['key']}];
         }
       }
       else {
-        $object->type = t('Default');
+        $object->{$export['export type string']} = t('Default');
         $object->export_type = EXPORT_IN_CODE;
         $object->in_code_only = TRUE;
         $object->table = $table;
@@ -468,11 +475,13 @@ function ctools_export_load_object($table, $type = 'all', $args = array()) {
  *   ctools_export_load_object() will be reset.
  */
 function ctools_export_load_object_reset($table = NULL) {
+  // Reset plugin cache to make sure new include files are picked up.
+  ctools_include('plugins');
+  ctools_get_plugins_reset();
   if (empty($table)) {
     ctools_static_reset('ctools_export_load_object');
     ctools_static_reset('ctools_export_load_object_all');
     ctools_static_reset('_ctools_export_get_defaults');
-    ctools_static_reset('ctools_plugin_api_info');
   }
   else {
     $cache = &ctools_static('ctools_export_load_object');
@@ -481,7 +490,6 @@ function ctools_export_load_object_reset($table = NULL) {
     unset($cache[$table]);
     unset($cached_database[$table]);
     unset($cached_defaults[$table]);
-    ctools_static_reset('ctools_plugin_api_info');
   }
 }
 
@@ -517,7 +525,7 @@ function ctools_get_default_object($table, $name) {
     $object->disabled = $status[$object->{$export['key']}];
   }
 
-  $object->type = t('Default');
+  $object->{$export['export type string']} = t('Default');
   $object->export_type = EXPORT_IN_CODE;
   $object->in_code_only = TRUE;
 
@@ -598,7 +606,12 @@ function _ctools_export_unpack_object($schema, $data, $object = 'stdClass') {
 
   // Go through our schema and build correlations.
   foreach ($schema['fields'] as $field => $info) {
-    $object->$field = empty($info['serialize']) ? $data->$field : unserialize(db_decode_blob($data->$field));
+    if (isset($data->$field)) {
+      $object->$field = empty($info['serialize']) ? $data->$field : unserialize(db_decode_blob($data->$field));
+    }
+    else {
+      $data->$field = NULL;
+    }
   }
 
   if (isset($schema['join'])) {
@@ -655,7 +668,7 @@ function ctools_var_export($var, $prefix = '') {
     // magic method __set_state() leaving the export broken. This
     // workaround avoids this by casting the object as an array for
     // export and casting it back to an object when evaluated.
-    $output .= '(object) ' . ctools_var_export((array) $var);
+    $output = '(object) ' . ctools_var_export((array) $var, $prefix);
   }
   else if (is_bool($var)) {
     $output = $var ? 'TRUE' : 'FALSE';
@@ -717,7 +730,7 @@ function ctools_export_object($table, $object, $indent = '', $identifier = NULL,
 
     // Note: This is the *field* export callback, not the table one!
     if (!empty($info['export callback']) && function_exists($info['export callback'])) {
-      $output .= $indent . '$' . $identifier . '->' . $field . ' = ' . $info['export callback']($object, $field, $value, $indent) . ";\n";
+      $output .= $indent . '$' . $identifier . '->' . $field . ' = ' . $info['export callback']($object, $field, $object->$field, $indent) . ";\n";
     }
     else {
       $value = $object->$field;
@@ -769,6 +782,7 @@ function ctools_export_get_schema($table) {
       'bulk export' => TRUE,
       'list callback' => "$schema[module]_{$table}_list",
       'to hook code callback' => "$schema[module]_{$table}_to_hook_code",
+      'export type string' => 'type',
     );
 
     // If the export definition doesn't have the "primary key" then the CRUD
@@ -920,7 +934,7 @@ function ctools_export_new_object($table, $set_defaults = TRUE) {
     // We don't set the export_type property here, as this object is not saved
     // yet. We do give it NULL so we don't generate notices trying to read it.
     $object->export_type = NULL;
-    $object->type = t('Local');
+    $object->{$export['export type string']} = t('Local');
   }
   return $object;
 }
@@ -974,7 +988,7 @@ function ctools_export_default_to_hook_code($schema, $table, $names, $name) {
   $objects = ctools_export_load_object($table, 'names', $names);
   if ($objects) {
     $output = "/**\n";
-    $output .= " * Implementation of hook_{$export['default hook']}()\n";
+    $output .= " * Implements hook_{$export['default hook']}().\n";
     $output .= " */\n";
     $output .= "function " . $name . "_{$export['default hook']}() {\n";
     $output .= "  \${$export['identifier']}s = array();\n\n";
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/form.inc
index d057889..b90f129 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: form.inc,v 1.11.2.3 2010/08/20 22:16:57 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/jump-menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/jump-menu.inc
index df358e8..c5583cc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/jump-menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/jump-menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: jump-menu.inc,v 1.1.2.3 2009/10/28 02:05:59 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/math-expr.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/math-expr.inc
index 325d444..b4b7fb7 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/math-expr.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/math-expr.inc
@@ -95,12 +95,14 @@ class ctools_math_expr {
         'sin','sinh','arcsin','asin','arcsinh','asinh',
         'cos','cosh','arccos','acos','arccosh','acosh',
         'tan','tanh','arctan','atan','arctanh','atanh',
-        'sqrt','abs','ln','log');
+        'sqrt','abs','ln','log',
+        'time', 'ceil', 'floor', 'min', 'max', 'round');
 
     function ctools_math_expr() {
         // make the variables a little more accurate
         $this->v['pi'] = pi();
         $this->v['e'] = exp(1);
+        drupal_alter('ctools_math_expression_functions', $this->fb);
     }
 
     function e($expr) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/menu.inc
index 8b74903..fd68847 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: menu.inc,v 1.4.2.1 2010/07/16 00:40:13 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/modal.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/modal.inc
index 2d1d0b7..ec2f93c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/modal.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/modal.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: modal.inc,v 1.7.2.6 2010/09/08 21:10:12 merlinofchaos Exp $
 
 /**
  * @file
@@ -212,7 +211,7 @@ function ctools_modal_form_render($form_state, $output) {
 
   // If there are messages for the form, render them.
   if ($messages = theme('status_messages')) {
-    $output = '<div class="messages">' . $messages . '</div>' . $output;
+    $output = $messages . $output;
   }
 
   $commands = array();
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.cron.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.cron.inc
index 515d454..99f2276 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.cron.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.cron.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: object-cache.cron.inc,v 1.1.2.2 2010/08/27 23:47:17 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.inc
index 0e11107..53a49d0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/object-cache.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: object-cache.inc,v 1.8.2.3 2010/07/22 22:33:34 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.inc
index e048ba6..bbdfbd8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page-wizard.inc,v 1.1.2.2 2010/08/30 22:32:41 merlinofchaos Exp $
 
 /**
  * Fetch metadata on a specific page_wizard plugin.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.menu.inc
index 680fa38..94e6db6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/page-wizard.menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page-wizard.menu.inc,v 1.1.2.2 2010/08/30 22:32:41 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/plugins.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/plugins.inc
index 360677f..b57767e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/plugins.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/plugins.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: plugins.inc,v 1.18.2.30 2010/08/25 20:22:22 merlinofchaos Exp $
 
 /**
  * @file
@@ -276,6 +275,14 @@ function ctools_get_plugins($module, $type, $id = NULL) {
 }
 
 /**
+ * Reset all static caches that affect the result of ctools_get_plugins().
+ */
+function ctools_get_plugins_reset() {
+  ctools_static_reset('ctools_plugin_load_includes');
+  ctools_static_reset('ctools_plugin_api_info');
+}
+
+/**
  * Load plugins from a directory.
  *
  * @param $info
@@ -290,6 +297,9 @@ function ctools_plugin_load_includes($info, $filename = NULL) {
   // Keep a static array so we don't hit drupal_system_listing more than necessary.
   $all_files = &ctools_static(__FUNCTION__, array());
 
+  // store static of plugin arrays for reference because they can't be reincluded.
+  static $plugin_arrays = array();
+
   // If we're being asked for all plugins of a type, skip any caching
   // we may have done because this is an admin task and it's ok to
   // spend the extra time.
@@ -338,16 +348,29 @@ function ctools_plugin_load_includes($info, $filename = NULL) {
       else {
         // Parse a hook.
         $plugin = NULL; // ensure that we don't have something leftover from earlier.
-        include_once './' . $file->filename;
-        // .inc files have a special format for the hook identifier.
-        // For example, 'foo.inc' in the module 'mogul' using the plugin
-        // whose hook is named 'borg_type' should have a function named (deep breath)
-        // mogul_foo_borg_type()
-
-        // If, however, the .inc file set the quasi-global $plugin array, we
-        // can use that and not even call a function. Set the $identifier
-        // appropriately and ctools_plugin_process() will handle it.
-        $identifier = isset($plugin) ? $plugin : $module . '_' . $file->name;
+
+        if (isset($plugin_arrays[$file->filename])) {
+          $identifier = $plugin_arrays[$file->filename];
+        }
+        else {
+
+          require_once './' . $file->filename;
+          // .inc files have a special format for the hook identifier.
+          // For example, 'foo.inc' in the module 'mogul' using the plugin
+          // whose hook is named 'borg_type' should have a function named (deep breath)
+          // mogul_foo_borg_type()
+
+          // If, however, the .inc file set the quasi-global $plugin array, we
+          // can use that and not even call a function. Set the $identifier
+          // appropriately and ctools_plugin_process() will handle it.
+          if (isset($plugin)) {
+            $plugin_arrays[$file->filename] = $plugin;
+            $identifier = $plugin;
+          }
+          else {
+            $identifier = $module . '_' . $file->name;
+          }
+        }
         $result = ctools_plugin_process($info, $module, $identifier, dirname($file->filename), basename($file->filename), $file->name);
       }
       if (is_array($result)) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.inc
index 2fea45c..b5083fc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer.inc,v 1.1.2.12 2010/10/15 20:52:02 merlinofchaos Exp $
 /**
  * @file
  * Create customized CSS and images from palettes created by user input.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.theme.inc
index 6fe97d5..93b6275 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/stylizer.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer.theme.inc,v 1.1.2.3 2010/07/13 23:55:22 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/translations/includes.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/translations/includes.hu.po
deleted file mode 100644
index 051c4a3..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/translations/includes.hu.po
+++ /dev/null
@@ -1,185 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:37+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Home"
-msgstr "Címlap"
-msgid "context"
-msgstr "környezet"
-msgid "Description"
-msgstr "Leírás"
-msgid "Back"
-msgstr "Vissza"
-msgid "Add"
-msgstr "Hozzáadás"
-msgid "Continue"
-msgstr "Folytatás"
-msgid "Override title"
-msgstr "Cím felülírása"
-msgid "Add criteria"
-msgstr "Jellemző hozzáadása"
-msgid "Relationships"
-msgstr "Kapcsolatok"
-msgid "Contexts"
-msgstr "Környezetek"
-msgid "Loading"
-msgstr "Betöltés"
-msgid "by @user"
-msgstr "@user által"
-msgid "Context"
-msgstr "Környezet"
-msgid "argument"
-msgstr "argumentum"
-msgid "Add argument"
-msgstr "Argumentum hozzáadása"
-msgid "relationship"
-msgstr "kapcsolat"
-msgid "Add relationship"
-msgstr "Kapcsolat hozzáadása"
-msgid "Add context"
-msgstr "Környezet hozzáadása"
-msgid "Required contexts"
-msgstr "Szükséges környezetek"
-msgid "required context"
-msgstr "szükséges környezet"
-msgid "Add required context"
-msgstr "Szükséges környezet hozzáadása"
-msgid "Close Window"
-msgstr "Ablak bezárása"
-msgid "Close window"
-msgstr "Ablak bezárása"
-msgid "Add @type \"@context\""
-msgstr "@type „@context” hozzáadása"
-msgid "Edit @type \"@context\""
-msgstr "@type @context\" szerkesztése"
-msgid "Enter a name to identify this !type on administrative screens."
-msgstr ""
-"Név megadása, ami !type azonosítására szolgál az "
-"adminisztrációs oldalakon."
-msgid "Enter a keyword to use for substitution in titles."
-msgstr "Címekben helyettesítéshez használt kulcsszó megadása."
-msgid "Ignore it; content that requires this context will not be available."
-msgstr ""
-"Mellőzve; nem elérhető olyan tartalom, amelyhez ez a környezet "
-"szükséges."
-msgid ""
-"If the argument is missing or is not valid, select how this should "
-"behave."
-msgstr ""
-"Ki kell választani a működést, ha az argumentum hiányzik vagy nem "
-"érvényes."
-msgid "Argument @count"
-msgstr "Argumentum @count"
-msgid "Context @count"
-msgstr "Környezet @count"
-msgid "Configure !subtype_title"
-msgstr "!subtype_title beállítása"
-msgid "Unknown context"
-msgstr "Ismeretlen környezet"
-msgid ""
-"You may use %keywords from contexts, as well as %title to contain the "
-"original title."
-msgstr ""
-"%kulcsszavak használhatóak a környezetekből, továbbá %title "
-"tartalmazza az eredeti címet."
-msgid "Context %count"
-msgstr "Környezet %count"
-msgid "Finish"
-msgstr "Befejezés"
-msgid ""
-"Validation error, please try again. If this error persists, please "
-"contact the site administrator."
-msgstr ""
-"Helyesség ellenőrzési hiba. Kérjük próbálkozzon újra! "
-"Amennyiben a hiba továbbra is fennáll, javasolt felvenni a "
-"kapcsolatot a webhely gazdájával."
-msgid "Logged in user"
-msgstr "Bejelentkezett felhasználó"
-msgid "Server reports invalid input error."
-msgstr "A kiszolgáló érvénytelen bemenet hibát jelzett."
-msgid "@type:@subtype will not display due to missing context"
-msgstr "@type:@subtype nem fog megjelenni a hiányzó környezet miatt"
-msgid "No info"
-msgstr "Nincs információ"
-msgid "No info available."
-msgstr "Nincs elérhető információ."
-msgid "Configure new !subtype_title"
-msgstr "Új !subtype_title beállítása"
-msgid "All criteria must pass."
-msgstr "Minden feltételnek meg kell felelni."
-msgid "Only one criteria must pass."
-msgstr "Csak egy feltételnek kell megfelelni."
-msgid "Broken/missing access plugin %plugin"
-msgstr "Hibás/hiányzó %plugin hozzáférési beépülő"
-msgid "No criteria selected, this test will pass."
-msgstr "Nincs kiválasztott feltétel, a teszt sikeres."
-msgid "Missing callback hooks."
-msgstr "Hiányzó callback hookok."
-msgid "Edit criteria"
-msgstr "Feltétel szerkesztése"
-msgid "Invalid context type"
-msgstr "Érvénytelen környezettípus"
-msgid "Display page not found or display nothing at all."
-msgstr "Az oldal nem található vagy üres oldal megjelenítése."
-msgid ""
-"Enter a title to use when this argument is present. You may use "
-"%KEYWORD substitution, where the keyword is specified below."
-msgstr ""
-"Az argumentum jelenlétekor használt cím megadása. Lehet %KULCSSZO "
-"helyettesítést használni, az elérhető kulcsszavak lentebb "
-"találhatóak."
-msgid "Unable to delete missing item!"
-msgstr "Hiányzó elemet nem lehet törölni!"
-msgid "Edit @type"
-msgstr "@type szerkesztése"
-msgid "Summary of contexts"
-msgstr "Környezetek összefoglalója"
-msgid "Please choose which context and how you would like it converted."
-msgstr ""
-"Ki kell választani a környezetet és, hogy miként kell azt "
-"konvertálni."
-msgid "@identifier (@keyword)"
-msgstr "@identifier (@keyword)"
-msgid ", and "
-msgstr ", és "
-msgid ", or "
-msgstr ", vagy "
-msgid "Built in context"
-msgstr "Beépített környezet"
-msgid "Keyword: %@keyword"
-msgstr "Kulcsszó: %@keyword"
-msgid "@keyword --> @title"
-msgstr "@keyword --> @title"
-msgid "From \"@title\""
-msgstr "Ebből: „@title”"
-msgid ""
-"Unable to create CTools CSS cache directory. Check the permissions on "
-"your files directory."
-msgstr ""
-"Nem lehet létrehozni a CTools CSS gyorsítár könyvtárat. "
-"Ellenőrizni kell a files könyvtár jogosultságait."
-msgid "Update and return"
-msgstr "Frissítés és viszatérés"
-msgid ""
-"If there is more than one variant on a page, when the page is visited "
-"each variant is given an opportunity to be displayed. Starting from "
-"the first variant and working to the last, each one tests to see if "
-"its selection rules will pass. The first variant that its criteria (as "
-"specified below) will be used."
-msgstr ""
-"Ha egynél több változat van az oldalon, az oldal meglátogatásakor "
-"minden változatnak lehetősége van megjelenni. Az első "
-"változattól kezdve egészen az utolsóig mindegyik ellenőrizve "
-"lesz, hogy megfelel-e a kiválasztási szabályoknak. Az első "
-"változat ami megfelel a feltételnek (ahogy az fentebb meg lett "
-"határozva) lesz használva."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/utility.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/utility.inc
index 1360f16..ef707a0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/utility.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/utility.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: utility.inc,v 1.1.2.2 2010/08/27 23:47:17 merlinofchaos Exp $
 
 /**
  * @file
@@ -18,13 +17,13 @@
  * To save time we pass the $items array in so we don't need to do array
  * addition. It modifies the array by reference and doesn't need to return it.
  */
-function _ctools_passthrough(&$items, $type = 'theme') {
-  $files = drupal_system_listing('.' . $type . '.inc$', drupal_get_path('module', 'ctools') . '/includes', 'name', 0);
+function ctools_passthrough($module, $type, &$items) {
+  $files = drupal_system_listing('.' . $type . '.inc$', drupal_get_path('module', $module) . '/includes', 'name', 0);
   foreach ($files as $file) {
     require_once './' . $file->filename;
     list($tool) = explode('.', $file->name, 2);
 
-    $function = 'ctools_' . str_replace ('-', '_', $tool) . '_' . $type;
+    $function = $module . '_' . str_replace ('-', '_', $tool) . '_' . $type;
     if (function_exists($function)) {
       $function($items);
     }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.inc
index a8ce9df..7a5795d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: wizard.inc,v 1.12.2.9 2010/09/10 18:25:13 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.theme.inc
index 92d6c81..acbccdf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/includes/wizard.theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: wizard.theme.inc,v 1.2 2009/01/29 22:12:05 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/ajax-responder.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/ajax-responder.js
index eb9b780..60ee17a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/ajax-responder.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/ajax-responder.js
@@ -1,4 +1,3 @@
-// $Id: ajax-responder.js,v 1.18.2.24 2010/08/27 22:09:48 merlinofchaos Exp $
 /**
  * @file
  *
@@ -46,10 +45,10 @@
     // Grab all the links that match this url and add the fetching class.
     // This allows the caching system to grab each url once and only once
     // instead of grabbing the url once per <a>.
-    var $objects = $('a[href=' + old_url + ']')
+    var $objects = $('a[href="' + old_url + '"]')
     $objects.addClass('ctools-fetching');
     try {
-      url = old_url.replace(/\/nojs(\/|$)/g, '/ajax$1');
+      url = Drupal.CTools.AJAX.urlReplaceNojs(url);
       $.ajax({
         type: "POST",
         url: url,
@@ -108,7 +107,7 @@
     var object = $(this);
     $(this).addClass('ctools-ajaxing');
     try {
-      url = url.replace(/\/nojs(\/|$)/g, '/ajax$1');
+      url = Drupal.CTools.AJAX.urlReplaceNojs(url);
       $.ajax({
         type: "POST",
         url: url,
@@ -150,7 +149,7 @@
     var object = $(this);
     try {
       if (url) {
-        url = url.replace(/\/nojs(\/|$)/g, '/ajax$1');
+        url = Drupal.CTools.AJAX.urlReplaceNojs(url);;
         $.ajax({
           type: "POST",
           url: url,
@@ -196,7 +195,7 @@
     $form.addClass('ctools-ajaxing');
 
     try {
-      url = url.replace(/\/nojs(\/|$)/g, '/ajax$1');
+      url = Drupal.CTools.AJAX.urlReplaceNojs(url);
 
       var ajaxOptions = {
         type: 'POST',
@@ -287,7 +286,7 @@
     var form_id = $(object).parents('form').get(0).id;
     try {
       if (url) {
-        url = url.replace(/\/nojs(\/|$)/g, '/ajax$1');
+        url = Drupal.CTools.AJAX.urlReplaceNojs(url);
         $.ajax({
           type: "POST",
           url: url,
@@ -429,7 +428,7 @@
     });
 
     var html = '';
-    for (i in data.argument) {
+    for (var i = 0; i < data.argument.length; i++) {
       var link = Drupal.CTools.AJAX.getPath(data.argument[i].file);
       if (!Drupal.CTools.AJAX.css[link]) {
         html += '<link class="ctools-temporary-css" type="text/css" rel="stylesheet" media="' + data.argument[i].media +
@@ -459,7 +458,7 @@
 
     var html = '';
     var head = document.getElementsByTagName('head')[0];
-    for (i in data.argument) {
+    for (var i = 0; i < data.argument.length; i++) {
       var link = Drupal.CTools.AJAX.getPath(data.argument[i]);
       if (!Drupal.CTools.AJAX.scripts[link]) {
         Drupal.CTools.AJAX.scripts[link] = link;
@@ -518,6 +517,22 @@
     $(data.selector).submit();
   }
 
+  /**
+   * Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let
+   * the server detect when it needs to degrade gracefully. 
+   * There are five scenarios to check for:
+   * 1. /nojs/
+   * 2. /nojs$ - The end of a URL string.
+   * 3. /nojs? - Followed by a query (with clean URLs enabled).
+   *      E.g.: path/nojs?destination=foobar
+   * 4. /nojs& - Followed by a query (without clean URLs enabled).
+   *      E.g.: ?q=path/nojs&destination=foobar
+   * 5. /nojs# - Followed by a fragment.
+   *      E.g.: path/nojs#myfragment
+   */
+  Drupal.CTools.AJAX.urlReplaceNojs = function(url) {
+    return url.replace(/\/nojs(\/|$|\?|&|#)/g, '/ajax$1');
+  }
 
   /**
    * Bind links that will open modals to the appropriate function.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/auto-submit.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/auto-submit.js
index 032b31a..4065339 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/auto-submit.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/auto-submit.js
@@ -1,4 +1,3 @@
-// $Id: auto-submit.js,v 1.1.2.2 2010/06/16 16:15:00 merlinofchaos Exp $
 
 /**
  * To make a form auto submit, all you have to do is 3 things:
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/collapsible-div.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/collapsible-div.js
index fd1781e..4205978 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/collapsible-div.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/collapsible-div.js
@@ -1,4 +1,3 @@
-// $Id: collapsible-div.js,v 1.6.2.2 2009/10/09 17:10:00 merlinofchaos Exp $
 /**
  * @file
  * Javascript required for a simple collapsible div.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dependent.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dependent.js
index 17a4b0a..10add7a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dependent.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dependent.js
@@ -1,4 +1,3 @@
-// $Id: dependent.js,v 1.4.2.2 2009/10/05 23:38:33 merlinofchaos Exp $
 /**
  * @file
  *
@@ -31,12 +30,10 @@
 
   Drupal.CTools.dependent.inArray = function(array, search_term) {
     var i = array.length;
-    if (i > 0) {
-     do {
+    while (i--) {
       if (array[i] == search_term) {
          return true;
       }
-     } while (i--);
     }
     return false;
   }
@@ -156,6 +153,7 @@
                 if (Drupal.settings.CTools.dependent[id].num <= len) {
                   // Show if the element if criteria is matched
                   object.show(0);
+                  object.addClass('dependent-options');
                 }
                 else {
                   // Otherwise hide. Use css rather than hide() because hide()
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dropdown.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dropdown.js
index 0e224d6..ddf83f7 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dropdown.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/dropdown.js
@@ -1,4 +1,3 @@
-// $Id: dropdown.js,v 1.3.2.1 2009/10/05 23:38:33 merlinofchaos Exp $
 /**
  * @file
  * Implement a simple, clickable dropdown menu.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/jump-menu.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/jump-menu.js
index 85aba3e..ad8d30c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/jump-menu.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/jump-menu.js
@@ -1,4 +1,3 @@
-// $Id: jump-menu.js,v 1.1.2.2 2009/10/28 01:53:15 merlinofchaos Exp $
 
 (function($) {
   Drupal.behaviors.CToolsJumpMenu = function(context) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/modal.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/modal.js
index 94f4dc6..b35c067 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/modal.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/modal.js
@@ -1,4 +1,3 @@
-// $Id: modal.js,v 1.17.2.20 2010/10/20 19:22:08 merlinofchaos Exp $
 /**
  * @file
  *
@@ -253,6 +252,14 @@
         }
       });
 
+    // Bind a click handler to allow elements with the 'ctools-close-modal'
+    // class to close the modal.
+    $('.ctools-close-modal:not(.ctools-close-modal-processed)', context)
+      .addClass('ctools-close-modal-processed')
+      .click(function() {
+        Drupal.CTools.Modal.dismiss();
+        return false;
+      });
   };
 
   // The following are implementations of AJAX responder commands.
@@ -354,6 +361,14 @@
         event = window.event;
         target = event.srcElement;
       }
+
+      var parents = $(target).parents().get();
+      for (var i in $(target).parents().get()) {
+        var position = $(parents[i]).css('position');
+        if (position == 'absolute' || position == 'fixed') {
+          return true;
+        }
+      }
       if( $(target).filter('*:visible').parents('#modalContent').size()) {
         // allow the event only if target is a visible child node of #modalContent
         return true;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/stylizer.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/stylizer.js
index b793f1b..19c0112 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/stylizer.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/js/stylizer.js
@@ -1,4 +1,3 @@
-// $Id: stylizer.js,v 1.1.2.1 2010/02/17 01:04:50 merlinofchaos Exp $
 
 (function ($) {
   Drupal.CTools = Drupal.CTools || {};
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/css/page-manager.css b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/css/page-manager.css
index 352162a..4498578 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/css/page-manager.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/css/page-manager.css
@@ -1,4 +1,3 @@
-/* $Id: page-manager.css,v 1.10.2.2 2009/10/15 20:15:20 merlinofchaos Exp $ */
 body form#page-manager-list-pages-form {
   margin: 0 0 20px 0;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/about.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/about.html
index 5e6729c..fa58aca 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/about.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/about.html
@@ -1,4 +1,3 @@
-<!-- $Id: about.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 The Page Manager module creates and manages pages in your Drupal site. Pages are defined as items that have a path and provide output to the user. It is a complete round trip from getting user input to providing user output.
 
 There are two types of pages that the Page Manager currently supports:
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-handler.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-handler.html
index 64f5945..4544a2a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-handler.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-handler.html
@@ -1,4 +1,3 @@
-<!-- $Id: api-task-handler.html,v 1.1 2009/07/09 00:07:04 merlinofchaos Exp $ -->
 task handler definition:
   title -- visible title of the task handler.
   description -- description of the task handler.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-type.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-type.html
index f39ac11..eb87265 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-type.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task-type.html
@@ -1,3 +1,2 @@
-<!-- $Id: api-task-type.html,v 1.1 2009/07/09 00:07:04 merlinofchaos Exp $ -->
 
 defines a task type, grouping tasks together and providing a common UI for them.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task.html
index 4eced0e..cd6e3d0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/api-task.html
@@ -1,4 +1,3 @@
-<!-- $Id: api-task.html,v 1.1 2009/07/09 00:07:04 merlinofchaos Exp $ -->
 task definition:
   title -- visible title of the task.
   description -- description of the task.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-access.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-access.html
index 25ba63a..a2643c2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-access.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-access.html
@@ -1,3 +1,2 @@
-<!-- $Id: custom-pages-access.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528072">http://drupal.org/node/528072</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-arguments.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-arguments.html
index b0bdff5..516a429 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-arguments.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-arguments.html
@@ -1,3 +1,2 @@
-<!-- $Id: custom-pages-arguments.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528058">http://drupal.org/node/528058</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-menu.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-menu.html
index d3388bc..48cf9c3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-menu.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages-menu.html
@@ -1,3 +1,2 @@
-<!-- $Id: custom-pages-menu.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528078">http://drupal.org/node/528078</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages.html
index 22ea381..18e66d4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/custom-pages.html
@@ -1,3 +1,2 @@
-<!-- $Id: custom-pages.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528050">http://drupal.org/node/528050</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-create.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-create.html
index 3ba5ebc..a3d295e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-create.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-create.html
@@ -1,3 +1,2 @@
-<!-- $Id: getting-started-create.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528038">http://drupal.org/node/528038</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-nodes.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-nodes.html
index a5d403b..d62eb0f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-nodes.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-nodes.html
@@ -1,3 +1,2 @@
-<!-- $Id: getting-started-custom-nodes.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528044">http://drupal.org/node/528044</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-vocabulary.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-vocabulary.html
index a14c0ea..7148cd9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-vocabulary.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-custom-vocabulary.html
@@ -1,3 +1,2 @@
-<!-- $Id: getting-started-custom-vocabulary.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528046">http://drupal.org/node/528046</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-members.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-members.html
index 73a4405..87b2122 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-members.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-members.html
@@ -1,3 +1,2 @@
-<!-- $Id: getting-started-members.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528040">http://drupal.org/node/528040</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-page-list.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-page-list.html
index ad330a7..d60bea4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-page-list.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started-page-list.html
@@ -1,3 +1,2 @@
-<!-- $Id: getting-started-page-list.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528036">http://drupal.org/node/528036</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started.html
index d342751..4e4f24a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/getting-started.html
@@ -1,4 +1,3 @@
-<!-- $Id: getting-started.html,v 1.2 2009/08/19 22:24:07 merlinofchaos Exp $ -->
 
 Note: this page is currently very preliminary. Please visit <a href="http://drupal.org/node/528034">http://drupal.org/node/528034</a> to help provide this documentation page!
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/page_manager.help.ini b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/page_manager.help.ini
index cd94653..05cadb4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/page_manager.help.ini
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/page_manager.help.ini
@@ -1,4 +1,3 @@
-; $Id: page_manager.help.ini,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $
 [advanced help settings]
 line break = TRUE
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/variants.html b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/variants.html
index 389af33..48cf9c3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/variants.html
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/help/variants.html
@@ -1,3 +1,2 @@
-<!-- $Id: variants.html,v 1.1 2009/07/22 23:42:47 merlinofchaos Exp $ -->
 
 Please visit <a href="http://drupal.org/node/528078">http://drupal.org/node/528078</a> to help provide this documentation page.
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/js/page-list.js b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/js/page-list.js
index 7968625..16b5291 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/js/page-list.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/js/page-list.js
@@ -1,4 +1,3 @@
-// $Id: page-list.js,v 1.3 2009/07/12 18:32:04 merlinofchaos Exp $
 
 /**
  * Provide some extra responses for the page list so we can have automatic
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.admin.inc
index 01f07d2..ecd2531 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_manager.admin.inc,v 1.27.2.18 2010/10/29 22:40:52 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.info
index f576aa2..0cace9c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.info
@@ -1,13 +1,12 @@
-; $Id: page_manager.info,v 1.2 2009/07/12 18:11:58 merlinofchaos Exp $
 name = Page manager
 description = Provides a UI and API to manage pages within the site.
 core = 6.x
 dependencies[] = ctools
 package = Chaos tool suite
 
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.install
index b0d52c8..4c0291c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_manager.install,v 1.7.2.1 2010/06/16 15:42:28 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.module
index ecd0e9f..4ad57ef 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/page_manager.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_manager.module,v 1.17.2.8 2010/07/23 21:47:20 merlinofchaos Exp $
 
 /**
  * @file
@@ -1053,7 +1052,15 @@ function page_manager_page_manager_handlers_list() {
   $handlers = ctools_export_load_object('page_manager_handlers');
   foreach ($handlers as $handler) {
     if (in_array($handler->task, $types)) {
-      $list[$handler->name] = check_plain("$handler->task: " . $handler->conf['title'] . " ($handler->name)");
+      $plugin = page_manager_get_task_handler($handler->handler);
+      $title = page_manager_get_handler_title($plugin, $handler, $tasks[$handler->task], $handler->subtask);
+
+      if ($title) {
+        $list[$handler->name] = check_plain("$handler->task: $title ($handler->name)");
+      }
+      else {
+        $list[$handler->name] = check_plain("$handler->task: ($handler->name)");
+      }
     }
   }
   return $list;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/task_handlers/http_response.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/task_handlers/http_response.inc
index e04ab8d..3a40b17 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/task_handlers/http_response.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/task_handlers/http_response.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: http_response.inc,v 1.1.2.1 2010/08/06 18:23:11 merlinofchaos Exp $
 
 /**
  * @file
@@ -69,7 +68,7 @@ $plugin = array(
   'add finish' => 'settings',
 
   'required forms' => array(
-    'settings' => t('Panel settings'),
+    'settings' => t('HTTP Response settings'),
   ),
 
   'edit forms' => array(
@@ -116,9 +115,6 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
   $task_name = page_manager_make_task_name($task['name'], $subtask['name']);
   $output = '';
 
-  $display = panels_panel_context_get_display($handler);
-
-  ctools_include('plugins', 'panels');
   ctools_include('context');
   ctools_include('context-task-handler');
 
@@ -130,19 +126,17 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
   $args = array('handlers', $handler->name, 'actions');
   $rendered_operations = page_manager_render_operations($page, $operations, array(), array('class' => 'actions'), 'actions', $args);
 
-  $layout = panels_get_layout($display->layout);
-
   $plugin = page_manager_get_task_handler($handler->handler);
 
   $object = ctools_context_handler_get_task_object($task, $subtask, $handler);
-  $display->context = ctools_context_load_contexts($object, TRUE);
+  $context = ctools_context_load_contexts($object, TRUE);
 
-  $access = ctools_access_group_summary(!empty($handler->conf['access']) ? $handler->conf['access'] : array(), $display->context);
+  $access = ctools_access_group_summary(!empty($handler->conf['access']) ? $handler->conf['access'] : array(), $context);
   if ($access) {
-    $access = t('This panel will be selected if @conditions.', array('@conditions' => $access));
+    $access = t('This task will be selected if @conditions.', array('@conditions' => $access));
   }
   else {
-    $access = t('This panel will always be selected.');
+    $access = t('This task will always be selected.');
   }
 
   $rows = array();
@@ -187,13 +181,13 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
   $info = theme('table', array(), $rows, array('class' => 'page-manager-handler-summary'));
 
   $title = $handler->conf['title'];
-  if ($title != t('Panel')) {
-    $title = t('Panel: @title', array('@title' => $title));
+  if ($title != t('HTTP Response')) {
+    $title = t('HTTP Response: @title', array('@title' => $title));
   }
 
   $output .= '<div class="clear-block">';
   if ($show_title) {
-  $output .= '<div class="handler-title clear-block">';
+    $output .= '<div class="handler-title clear-block">';
     $output .= '<div class="actions handler-actions">' . $rendered_operations['actions'] . '</div>';
     $output .= '<span class="title-label">' . $title . '</span>';
   }
@@ -206,7 +200,7 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
 }
 
 /**
- * Set up a title for the panel based upon the selection rules.
+ * Set up a title for the handler based upon the selection rules.
  */
 function page_manager_http_response_title($handler, $task, $subtask) {
   if (isset($handler->conf['title'])) {
@@ -218,7 +212,7 @@ function page_manager_http_response_title($handler, $task, $subtask) {
 }
 
 /**
- * General settings for the panel
+ * General settings for the handler
  */
 function page_manager_http_response_edit_settings(&$form, &$form_state) {
   $conf = $form_state['handler']->conf;
@@ -257,7 +251,6 @@ function page_manager_http_response_render($handler, $base_contexts, $args, $tes
   // Go through arguments and see if they match.
   ctools_include('context');
   ctools_include('context-task-handler');
-  ctools_include('plugins', 'panels');
 
   // Add my contexts
   $contexts = ctools_context_handler_get_handler_contexts($base_contexts, $handler);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog.inc
index e783e97..8d62e98 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: blog.inc,v 1.1.2.2 2010/01/29 21:21:31 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog_user.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog_user.inc
index 54ba949..8ad43d0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog_user.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/blog_user.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: blog_user.inc,v 1.1.2.2 2009/10/13 18:12:20 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_site.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_site.inc
index f7e6dec..d55f4c4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_site.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_site.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: contact_site.inc,v 1.1.2.2 2010/01/29 21:21:31 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_user.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_user.inc
index 78a9d20..e376a26 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_user.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/contact_user.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: contact_user.inc,v 1.1.2.3 2009/12/18 02:34:54 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_edit.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_edit.inc
index f15bd42..251a18d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_edit.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_edit.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_edit.inc,v 1.3 2009/08/04 21:43:06 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_view.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_view.inc
index 6ec2731..b8fc3d7 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_view.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/node_view.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_view.inc,v 1.4 2009/08/04 21:43:06 merlinofchaos Exp $
 
 /**
  * @file
@@ -84,6 +83,9 @@ function page_manager_node_view($node) {
   // Load the node into a context.
   ctools_include('context');
   ctools_include('context-task-handler');
+
+  // We need to mimic Drupal's behavior of setting the node title here.
+  drupal_set_title($node->title);
   $contexts = ctools_context_handler_get_task_contexts($task, '', array($node));
 
   $output = ctools_context_handler_render($task, '', $contexts, array($node->nid));
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.admin.inc
index c856265..9d292f0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.admin.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page.admin.inc,v 1.18.2.13 2010/08/30 22:07:52 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.inc
index 58dcc6b..b60e275 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/page.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page.inc,v 1.17.2.4 2010/08/30 22:07:52 merlinofchaos Exp $
 
 /**
  * @file
@@ -291,7 +290,6 @@ function page_manager_page_execute($subtask_id) {
         $argument['keyword'] = $name;
         if (isset($args[$count])) {
           // Hack: use a special argument config variable to learn if we need
-          $plugin = ctools_get_argument($argument['name']);
           // to use menu_tail style behavior:
           if (empty($argument['settings']['use_tail'])) {
             $value = $args[$count];
@@ -316,7 +314,7 @@ function page_manager_page_execute($subtask_id) {
   }
 
   // Add a fake tab for 'View' so that edit tabs can be added.
-  if (user_access('administer page manager') && (!isset($page->menu['type']) || !in_array($page->menu['type'], array('tab', 'default tab')))) {
+  if (user_access('administer page manager') && (!isset($page->menu['type']) || in_array($page->menu['type'], array('tab', 'default tab')))) {
     ctools_include('menu');
     ctools_menu_add_tab(array(
       'title' => t('View'),
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/poll.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/poll.inc
index a14584a..1dcb419 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/poll.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/poll.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: poll.inc,v 1.1.2.3 2010/01/29 21:21:31 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/search.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/search.inc
index f9a6f84..d68993b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/search.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/search.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: search.inc,v 1.1.2.3 2010/07/16 00:40:13 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc
index 29da66c..33863b4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_view.inc,v 1.5.2.1 2010/06/22 14:48:38 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/translations/page_manager-plugins-tasks.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/translations/page_manager-plugins-tasks.hu.po
deleted file mode 100644
index 8dfb4fc..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/translations/page_manager-plugins-tasks.hu.po
+++ /dev/null
@@ -1,651 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:40+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Status"
-msgstr "Állapot"
-msgid "Access control"
-msgstr "Hozzáférés szabályozás"
-msgid "Depth"
-msgstr "Mélység"
-msgid "Import"
-msgstr "Import"
-msgid "Argument"
-msgstr "Argumentum"
-msgid "Normal menu item"
-msgstr "Normál menüelem"
-msgid "Basic settings"
-msgstr "Alapbeállítások"
-msgid "Node template"
-msgstr "Tartalomsablon"
-msgid "Change"
-msgstr "Változtat"
-msgid "All blogs"
-msgstr "Minden blog"
-msgid "Menu settings"
-msgstr "Menübeállítások"
-msgid "Parent menu item"
-msgstr "Szülő menüpont"
-msgid "Page name"
-msgstr "Oldal neve"
-msgid "Path is required."
-msgstr "Az elérési út megadása szükséges."
-msgid "Machine name"
-msgstr "Programok által olvasható név"
-msgid "Create @name"
-msgstr "@name beküldése"
-msgid "Custom pages"
-msgstr "Egyéni oldalak"
-msgid "Tab weight"
-msgstr "Fül súlya"
-msgid "The page has been deleted."
-msgstr "Az oldal törölve lett."
-msgid "Normal menu entry"
-msgstr "Normál menübejegyzés"
-msgid "Menu tab"
-msgstr "Menü fül"
-msgid "Default menu tab"
-msgstr "Alapértelmezett menü fül"
-msgid "If set to normal or tab, enter the text to use for the menu item."
-msgstr ""
-"Ha  a beállítás normál vagy fül, meg kell adni a menüelemhez "
-"használt szöveget."
-msgid ""
-"Warning: Changing this item's menu will not work reliably in Drupal "
-"6.4 or earlier. Please upgrade your copy of Drupal at !url."
-msgstr ""
-"Figyelmeztetés: Az ehhez az elemhez tartozó menü módosítása nem "
-"működik megbízhatóan a Drupal 6.4 vagy korábbi változatokban. "
-"Frissíteni kell a Drupalt erről a helyről: !url."
-msgid "Insert item into an available menu."
-msgstr "Elem beillesztése egy rendelkezésre álló menübe."
-msgid "Menu selection requires the activation of menu module."
-msgstr "A menü kiválasztásához szükséges a menu modul engedélyezése."
-msgid "The lower the weight the higher/further left it will appear."
-msgstr "Minél kisebb a súly, annál magasabban/balrább fog megjelenni."
-msgid "Already exists"
-msgstr "Már létezik"
-msgid "If creating a parent menu item, enter the title of the item."
-msgstr "Szülő menüpont létrehozásakor meg kell adni a menüpont címét."
-msgid ""
-"If the parent menu item is a tab, enter the weight of the tab. The "
-"lower the number, the more to the left it will be."
-msgstr ""
-"Ha a szülő menüpont egy fül, meg kell adni a fül súlyát. Minél "
-"kisebb, annál balrább fog megjelenni."
-msgid "Node add/edit form"
-msgstr "Tartalom hozzáadása/szerkesztése űrlap"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for adding or "
-"edit nodes at <em>node/%node/edit</em> and "
-"<em>node/add/%node_type</em>. If you add variants, you may use "
-"selection criteria such as node type or language or user access to "
-"provide different edit forms for nodes. If no variant is selected, the "
-"default Drupal node edit will be used."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a tartalmak <em>node/%node/edit</em> és "
-"<em>node/add/%node_type</em> oldalakon történő hozzáadásakor vagy "
-"szerkesztésekor. Ha lett változat hozzáadva, a tartalom típusa, "
-"nyelve vagy a felhasználói hozzáférés kiválasztási feltételek "
-"használhatóak arra, hogy eltérő szerkesztési űrlapok legyenek "
-"biztosítva a tartalmakhoz. Ha nincs kiválasztott változat, az "
-"alapértelmezett Drupal tartalomszerkesztés lesz használva."
-msgid "Node being edited"
-msgstr "Szerkesztett tartalom"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for "
-"displaying nodes at <em>node/%node</em>. If you add variants, you may "
-"use selection criteria such as node type or language or user access to "
-"provide different views of nodes. If no variant is selected, the "
-"default Drupal node view will be used. This page only affects nodes "
-"viewed as pages, it will not affect nodes viewed in lists or at other "
-"locations. Also please note that if you are using pathauto, aliases "
-"may make a node to be somewhere else, but as far as Drupal is "
-"concerned, they are still at node/%node."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a tartalmak <em>node/%node</em> oldalon történő "
-"megjelenítésekor. Ha lett változat hozzáadva, a tartalom típusa, "
-"nyelve vagy a felhasználói hozzáférés kiválasztási feltételek "
-"használhatóak arra, hogy eltérő megjelenítések legyenek "
-"biztosítva a tartalmakhoz. Ha nincs kiválasztott változat, az "
-"alapértelmezett Drupal tartalommegjelenítés lesz használva. Ennek "
-"az oldalnak csak az oldalként megtekintett tartalmakra van hatása, "
-"nincs hatása a listákban vagy más helyeken megtekintett oldalakra. "
-"Továbbá meg kell jegyezni, hogy a pathauto használatakor, az "
-"álnevek valahova máshova helyezhetik a tartalmat, de amennyire a "
-"Drupal érintett, megtalálhatóak a node/%node oldalakon."
-msgid "Node being viewed"
-msgstr "Megtekintett tartalom"
-msgid "Argument settings"
-msgstr "Argumentum beállítások"
-msgid "A meaningless second page"
-msgstr "Egy lényegtelen második oldal"
-msgid ""
-"The name of this page. This will appear in the administrative "
-"interface to easily identify it."
-msgstr ""
-"Az oldal neve. Az adminisztratív felületen fog megjelenni a "
-"könnyebb azonosíthatóság miatt."
-msgid ""
-"The machine readable name of this page. It must be unique, and it must "
-"contain only alphanumeric characters and underscores. Once created, "
-"you will not be able to change this value!"
-msgstr ""
-"Az oldal egyedi, programok által olvasható neve.  Csak betűket, "
-"számokat és aláhúzást tartalmazhat. Ha egyszer létre lett hozva, "
-"többé már nem lehet módosítani ezt az értéket!"
-msgid ""
-"A description of what this page is, does or is for, for administrative "
-"use."
-msgstr "Az oldal lehetőségeinek leírása adminisztratív használatra."
-msgid ""
-"The URL path to get to this page. You may create named placeholders "
-"for variable parts of the path by using %name for required elements "
-"and !name for optional elements. For example: \"node/%node/foo\", "
-"\"forum/%forum\" or \"dashboard/!input\". These named placeholders can "
-"be turned into contexts on the arguments form."
-msgstr ""
-"Az URL elérési út amin az oldal elérhető. Lehetőség van "
-"nevesített helykitöltők használatára az elérési utak "
-"változóihoz, a %név a szükséges elemekhez, a !név a nem "
-"kötelező elemekhez használható. Például „node/%node/foo”, "
-"„forum/%forum” vagy „dashboard/!input”. A nevesített "
-"helykitöltők környezetekké válhatnak az argumentumok űrlapon."
-msgid "Make this your site home page."
-msgstr "Beállítás a webhely kezdőlapjaként."
-msgid "This page is currently set to be your site home page."
-msgstr "Ez az oldal jelenleg a webhely kezdőlapjaként van beállítva."
-msgid "Visible menu item"
-msgstr "Látható menüelem"
-msgid "Name is required."
-msgstr "A név megadása szükséges."
-msgid "That name is used by another page: @page"
-msgstr "Ezt a nevet egy másik oldal használja: @page"
-msgid "Page name must be alphanumeric or underscores only."
-msgstr ""
-"Az oldal neve csak betűkből, számokból és aláhúzásból "
-"állhat."
-msgid "That path is used by another page: @page"
-msgstr "Ezt az elérési utat egy másik oldal használja: @page"
-msgid "You cannot have a dynamic path element after an optional path element."
-msgstr ""
-"Nem lehet egy dinamikus elérési út elem egy nem kötelező "
-"elérési út elem után."
-msgid "You cannot have a static path element after an optional path element."
-msgstr ""
-"Nem lehet egy statikus elérési út elem egy nem kötelező elérési "
-"út elem után."
-msgid ""
-"That path is already in used. This system cannot override existing "
-"paths."
-msgstr ""
-"Az elérési út már használatban van. Ez a rendszer nem tudja "
-"felülírni a létező elérési utakat."
-msgid ""
-"That path is currently assigned to be an alias for @alias. This system "
-"cannot override existing aliases."
-msgstr ""
-"Ez az elérési út jelenleg álnévként van rendelve ehhez: @alias. "
-"Ez a rendszer nem tudja felülírni a létező álneveket."
-msgid ""
-"You cannot make this page your site home page if it uses % "
-"placeholders."
-msgstr ""
-"Ez az oldal nem lehet a webhely kezdőlapja, ha % helykitöltőket "
-"használ."
-msgid "Duplicated argument %arg"
-msgstr "%arg argumentum duplikálva van"
-msgid "Invalid arg <em>%</em>. All arguments must be named with keywords."
-msgstr ""
-"Érvénytelen <em>%</em> argumentum. Minden argumentumot nevesíteni "
-"kell kulcsszóval."
-msgid ""
-"When providing a menu item as a default tab, Drupal needs to know what "
-"the parent menu item of that tab will be. Sometimes the parent will "
-"already exist, but other times you will need to have one created. The "
-"path of a parent item will always be the same path with the last part "
-"left off. i.e, if the path to this view is <em>foo/bar/baz</em>, the "
-"parent path would be <em>foo/bar</em>."
-msgstr ""
-"Ha egy menüpont alpértelmezett fülként jelenik meg, a Drupalnak "
-"tudnia kell, hogy mi lesz a fül szülő menüpontja. Néha a szülő "
-"már létezik, de máskor létre kell hozni egyet. Egy szülőpont "
-"elérési útja mindig ugyanaz az elérési út lesz, az utolsó rész "
-"lehagyásával. Pl. ha ennek a nézetnek az elérési útja "
-"<em>foo/bar/baz</em>, a szülő elérési út <em>foo/bar</em> lesz."
-msgid "Parent item title"
-msgstr "Szűlő menüpont címe"
-msgid "Parent item menu"
-msgstr "Szűlő menüpont menü"
-msgid ""
-"Access rules are used to test if the page is accessible and any menu "
-"items associated with it are visible."
-msgstr ""
-"A hozzáférési szabályok alkalmazhatóak annak ellenőrzésére, "
-"hogy az oldal hozzáférhető-e és a hozzá kapcsolódó menüpontok "
-"láthatóak-e."
-msgid "No context assigned"
-msgstr "Nincs kijelölt környezet"
-msgid "Position in path"
-msgstr "Helyzet az elérési útban"
-msgid "Context assigned"
-msgstr "Hozzárendelt környezet"
-msgid "The path %path has no arguments to configure."
-msgstr "%path elérési útnak nincsenek beállítható argumentumai."
-msgid "Invalid keyword."
-msgstr "Érvénytelen kulcsszó."
-msgid "Change context type"
-msgstr "Környezettípus módosítása"
-msgid "Change argument"
-msgstr "Argumentum módosítása"
-msgid "No context selected"
-msgstr "Nincs kiválasztott környezet"
-msgid "Error: missing argument."
-msgstr "Hiba: hiányzó argumentum."
-msgid "Context identifier"
-msgstr "Környezet azonosítója"
-msgid ""
-"This is the title of the context used to identify it later in the "
-"administrative process. This will never be shown to a user."
-msgstr ""
-"Ez a környezet neve, ami azonosításra szolgál a késöbbi "
-"adminisztratív folyamatokban. Sosem fog megjelenni a "
-"felhasználónak."
-msgid "Error: missing or invalid argument plugin %argument."
-msgstr "Hiba: hiányzó vagy érvénytelen %argument argumentum beépülő."
-msgid "Import page"
-msgstr "Import oldal"
-msgid ""
-"Enter the name to use for this page if it is different from the source "
-"page. Leave blank to use the original name of the page."
-msgstr ""
-"Az oldalhoz használt név megadása, ha az eltér a "
-"forrásoldalétól. Üresen hagyva az oldal eredeti neve lesz "
-"használva."
-msgid ""
-"Enter the path to use for this page if it is different from the source "
-"page. Leave blank to use the original path of the page."
-msgstr ""
-"Az oldalhoz használt elérési út megadása, ha az eltér a "
-"forrásoldalétól. Üresen hagyva az oldal eredeti elérési útja "
-"lesz használva."
-msgid "Allow overwrite of an existing page"
-msgstr "Engedélyezi egy létező oldal felülírását"
-msgid ""
-"If the name you selected already exists in the database, this page "
-"will be allowed to overwrite the existing page."
-msgstr ""
-"Ha a választott név már szerepel az adatbázisban, ez az oldal "
-"felülírhatja a létező oldalt."
-msgid "Paste page code here"
-msgstr "Oldal kódjának beillesztése"
-msgid "No handler found."
-msgstr "Nincs kezelő."
-msgid "Unable to get a page from the import. Errors reported: @errors"
-msgstr "Az importból nem lehet oldalt létrehozni. Jelentett hibák: @errors"
-msgid ""
-"That page name is in use and locked by another user. You must <a "
-"href=\"!break\">break the lock</a> on that page before proceeding, or "
-"choose a different name."
-msgstr ""
-"Ez az oldalnév használatban van és egy másik felhasználó "
-"zárolta. Az oldalon fel kell <a href=\"!break\">oldani a "
-"zárolást</a> a végrehajtás előtt, vagy egy eltérő nevet kell "
-"választani."
-msgid ""
-"Enter the name to the new page It must be unique and contain only "
-"alphanumeric characters and underscores."
-msgstr ""
-"Az új oldal neve. Egyedinek kell lennie és csak betűket, számokat "
-"és aláhúzást tartalmazhat."
-msgid ""
-"The URL path to get to this page. You may create named placeholders "
-"for variable parts of the path by using %name for required elements "
-"and !name for optional elements. For example: \"node/%node/foo\", "
-"\"forum/%forum\" or \"dashboard/!input\". These named placeholders can "
-"be turned into contexts on the arguments form. You cannot use the same "
-"path as the original page."
-msgstr ""
-"Az URL elérési út, amin az oldal elérhető. Lehetőség van "
-"nevesített helykitöltők létrehozására az elérési utak "
-"változóihoz, a szükséges elemekhez %név és a a nem kötelező "
-"elemekhez !név használatával. Például: „node/%node/foo”, "
-"„forum/%forum” vagy „dashboard/!input”. A nevesített "
-"helykitöltők környezetekké válhatnak az argumentumok űrlapon. Az "
-"elérési út nem egyezhet meg az eredeti oldal elérési útjával."
-msgid "Clone variants"
-msgstr "Változatok klónozása"
-msgid ""
-"If checked all variants associated with the page will be cloned as "
-"well. If not checked the page will be cloned without variants."
-msgstr ""
-"Ha be van jelöle, az oldalhoz kapcsolt összes változat is másolva "
-"lesz. Ha nincs bejelölve, az oldal változatok nélkül lesz "
-"másolva."
-msgid ""
-"Reverting the page will delete the page that is in the database, "
-"reverting it to the original default page. Any changes you have made "
-"will be lost and cannot be recovered."
-msgstr ""
-"Az oldal visszaállítása törli az oldalt az adatbázisból és "
-"visszaállítja az eredeti alapértelmezett oldalt. Minden "
-"változtatás el fog veszni és nem lesz visszaállítható."
-msgid ""
-"Are you sure you want to delete this page? Deleting a page cannot be "
-"undone."
-msgstr ""
-"Biztosan törölhető az oldal? Az oldal törlése nem vonható "
-"vissza."
-msgid "The page has been reverted."
-msgstr "Az oldal visszaállítása megtörtént."
-msgid ""
-"Administrator created pages that have a URL path, access control and "
-"entries in the Drupal menu system."
-msgstr ""
-"Adminisztrátor által létrehozott oldalak, amikhez tartozhat "
-"elérési út, hozzáférés szabályozás és bejegyzések a Drupal "
-"menürendszerben."
-msgid "Create a new page"
-msgstr "Új oldal létrhozása"
-msgid "Set up contexts for the arguments on this page."
-msgstr "Környezetek beállítása az oldalon található argumentumokhoz."
-msgid "Control what users can access this page."
-msgstr ""
-"Annak szabályozása, hogy mely felhasználók férhetnek hozzá ehhez "
-"az oldalhoz."
-msgid "Provide this page a visible menu or a menu tab."
-msgstr "Egy látható menüt vagy menüfület biztosít az oldalhoz."
-msgid "Make a copy of this page"
-msgstr "Másolat készítése az oldalról"
-msgid ""
-"Export this page as code that can be imported or embedded into a "
-"module."
-msgstr ""
-"Az oldal exportálása kódba, amit egy modulba lehet importálni vagy "
-"ágyazni."
-msgid "Remove all changes to this page and revert to the version in code."
-msgstr ""
-"Az oldal minden módosításának eltávolítása és "
-"visszaállítása a kódban található verzióra."
-msgid "Remove this page from your system completely."
-msgstr "Az oldal teljes eltávolítása a rendszerből."
-msgid "This is your site home page."
-msgstr "Ez a webhely kezdőlapja."
-msgid "This page is set to become your site home page."
-msgstr "Az oldal a webhely kezdőlapjának lett beállítva."
-msgid "Accessible only if @conditions."
-msgstr "Hozzáférés csak ha @conditions."
-msgid "No menu entry."
-msgstr "Nincs menü bejegyzés."
-msgid "Normal menu entry."
-msgstr "Normál menü bejegyzés."
-msgid "Menu tab."
-msgstr "Menü fül."
-msgid "Default menu tab."
-msgstr "Alapértelmezett menü fül."
-msgid "Title: %title."
-msgstr "Cím: %title."
-msgid "Parent title: %title."
-msgstr "Szülő címe: %title."
-msgid "Menu block: %title."
-msgstr "Menüblokk: %title."
-msgid "Taxonomy term template"
-msgstr "Taxonómia kifejezés sablon"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for "
-"displaying taxonomy terms at <em>taxonomy/term/%term</em>. If you add "
-"variants, you may use selection criteria such as vocabulary or user "
-"access to provide different displays of the taxonomy term and "
-"associated nodes. If no variant is selected, the default Drupal "
-"taxonomy term display will be used. This page only affects items "
-"actually displayed ad taxonomy/term/%term. Some taxonomy terms, such "
-"as forums, have their displays moved elsewhere. Also please note that "
-"if you are using pathauto, aliases may make a taxonomy terms appear "
-"somewhere else, but as far as Drupal is concerned, they are still at "
-"taxonomy/term/%term."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a taxonómia kifejezések <em>taxonomy/term/%term</em> "
-"oldalon történő megjelenítésekor. Ha lett változat hozzáadva, a "
-"szótár vagy a felhasználói hozzáférés kiválasztási "
-"feltételek használhatóak arra, hogy eltérő megjelenítések "
-"legyenek biztosítva a taxonómia kifejezéshez és a kapcsolódó "
-"tartalmakhoz. Ha nincs kiválasztott változat, az alapértelmezett "
-"Drupal taxonómia kifejezés képernyő lesz használva. Ennek az "
-"oldalnak csak a taxonomy/term/%term oldalon ténylegesen "
-"megjelenített elemekre van hatása. Néhány taxonómia "
-"kifejezésnek, mint amilyen a Fórumok, saját, máshol található "
-"képernyőjük van. Továbbá meg kell jegyezni, hogy a pathauto "
-"használatakor, az álnevek valahova máshova helyezhetik a taxonómia "
-"kifejezéseket, de amennyire a Drupal érintett, megtalálhatóak a "
-"taxonomy/term/%term oldalakon."
-msgid "Update settings specific to the taxonomy term view."
-msgstr ""
-"Taxonómia kifejezés megtekintésére jellemző beállítások "
-"frissítése."
-msgid "Term(s) being viewed"
-msgstr "Megtekintett kifejezések"
-msgid "Term being viewed"
-msgstr "Megtekintett kifejezés"
-msgid "Allow multiple terms on taxonomy/term/%term"
-msgstr "Több kifejezés engedélyezése itt: taxonomy/term/%term"
-msgid "Single term"
-msgstr "Egy kifejezés"
-msgid "Multiple terms"
-msgstr "Több kifejezés"
-msgid ""
-"By default, Drupal allows multiple terms as an argument by separating "
-"them with commas or plus signs. If you set this to single, that "
-"feature will be disabled."
-msgstr ""
-"Alapértelmezés szerint a Drupal engedélyezi több kifejezés "
-"argumentumként való használatát, vesszővel vagy összeadás "
-"jellel elválasztva azokat. Ha ez egy kifejezésre van állítva, "
-"akkor ez a lehetőség le lesz tiltva."
-msgid "Multiple terms may be used, separated by , or +."
-msgstr "Több kifejezés is használható , vagy + jellel elválasztva."
-msgid "Only a single term may be used."
-msgstr "Csak egy kifejezést lehet használni."
-msgid "%term"
-msgstr "%term"
-msgid "Breadcrumb trail will contain taxonomy term hierarchy"
-msgstr "A morzsasáv taxonómia kifejezés hierarchiát fog tartalmazni."
-msgid "Breadcrumb trail will not contain taxonomy term hiearchy."
-msgstr "A morzsasáv taxonómia kifejezés hierarchiát nem fog tartalmazni."
-msgid "User profile template"
-msgstr "Felhasználói profil sablon"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for "
-"displaying user profiles at <em>user/%user</em>. If you add variants, "
-"you may use selection criteria such as roles or user access to provide "
-"different views of user profiles. If no variant is selected, the "
-"default Drupal user view will be used. Please note that if you are "
-"using pathauto, aliases may make a node to be somewhere else, but as "
-"far as Drupal is concerned, they are still at user/%user."
-msgstr ""
-"Ha ez engedélyezett, akkor felülírja a Drupal alapértelmezett "
-"viselkedését a felhasználói profilok megjelenítésekor a "
-"<em>user/%user</em> oldalakon. Ha lett változat hozzáadva, akkor a "
-"csoportok, vagy a felhasználói hozzáférés kiválasztási "
-"feltételek használhatóak arra, hogy eltérő megjelenítések "
-"legyenek biztosítva a felhasználói profilokhoz. Ha nincs "
-"kiválasztott változat, akkor az alapértelmezés szerinti Drupal "
-"felhasználó megtekintés lesz felhasználva. Továbbá meg kell "
-"jegyezni, hogy a <em>Pathauto</em> használatakor, az álnevek "
-"valahova máshova is helyezhetik a tartalmat, de ami a Drupalt illeti, "
-"megtalálhatóak maradnak a user/%user oldalakon."
-msgid ""
-"Page manager module is unable to enable node/%node/edit because some "
-"other module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a "
-"node/%node/edit elérési utat, mert néhány másik modul már "
-"felülírta %callback segítségével."
-msgid ""
-"Page manager module is unable to override @path because some other "
-"module already has overridden with %callback. Node edit will be "
-"enabled but that edit path will not be overridden."
-msgstr ""
-"A Page manager modul nem tudja felülírni a %path elérési utat, "
-"mert néhány másik modul már felülírta %callback-el. A tartalom "
-"szerkesztés engedélyezve lesz, de a szerkesztés elérési útja nem "
-"lesz felülírva."
-msgid ""
-"Page manager module is unable to enable node/%node because some other "
-"module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a node/%node "
-"elérési utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid ""
-"To set this panel as your home page you must create a unique path name "
-"with no % placeholders in the path. The current site home page is set "
-"to %homepage."
-msgstr ""
-"Annak beállításához, hogy ez a panel legyen a kezdőlap, egy "
-"egyedi elérési utat kell létrehozni és ebben nem szabad % "
-"helykitöltőket használni. A webhely jelenlegi kezdőlapjának "
-"beállítása %homepage."
-msgid ""
-"Paths with non optional placeholders cannot be used as normal menu "
-"items unless the selected argument handler provides a default argument "
-"to use for the menu item."
-msgstr ""
-"A nem kötelező helykitöltőkkel rendelkező elérési utak nem "
-"használhatóak normál menüpontkét, kivéve ha a kiválasztott "
-"argumentumkezelő biztosít egy menüelemként használható "
-"alapértelmezett argumentumot."
-msgid ""
-"Page manager module is unable to enable taxonomy/term/%term because "
-"some other module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a "
-"taxonomy/term/%term elérési utat, mert néhány másik modul már "
-"felülírta %callback segítségével."
-msgid ""
-"Page manager module is unable to enable user/%user because some other "
-"module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a user/%user "
-"elérési utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid ""
-"When enabled, this overrides the default Drupal behavior for the all "
-"blogs at <em>/blog</em>. If no variant is selected, the default Drupal "
-"most recent blog posts will be shown."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a blogok <em>/blog</em> oldalon történő "
-"megjelenítésekor. Ha nincs kiválasztott változat, az "
-"alapértelmezett Drupal legfrissebb blogbejegyzések oldal fog "
-"megjelenni."
-msgid ""
-"Page manager module is unable to enable blog because some other module "
-"already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a blog elérési "
-"utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid "User blog"
-msgstr "Felhasználói blog"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for "
-"displaying user blogs at <em>blog/%user</em>. If no variant is "
-"selected, the default Drupal user blog will be used."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a felhasználói blogok <em>/blog/%user</em> oldalon "
-"történő megjelenítésekor. Ha nincs kiválasztott változat, az "
-"alapértelmezett Drupal felhasználói blog oldal lesz használva."
-msgid ""
-"Page manager module is unable to enable blog/%user because some other "
-"module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a blog/%user "
-"elérési utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid "Site contact page"
-msgstr "Webhely kapcsolat oldal"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for the site "
-"contact page at <em>/contact</em>. If no variant is selected, the "
-"default Drupal contact form will be used."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a kapcsolatfelvételi oldal <em>/contact</em> oldalon "
-"történő megjelenítésekor. Ha nincs kiválasztott változat, az "
-"alapértelmezett Drupal kapcsolatfelvételi űrlap lesz használva."
-msgid ""
-"Page manager module is unable to enable contact because some other "
-"module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a contact "
-"elérési utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid "User contact"
-msgstr "Felhasználói kapcsolat"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for "
-"displaying the user contact form at <em>user/%user/contact</em>. If no "
-"variant is selected, the default Drupal user contact form will be "
-"used."
-msgstr ""
-"Ha engedélyezett, akkor felülírja a Drupal alapértelmezett "
-"viselkedését a felhasználói kapcsolatfelvételi űrlap "
-"<em>user/%user/contact</em> oldalon történő megjelenítésekor. Ha "
-"nincs kiválasztott változat, akkor az alapértelmezés szerinti "
-"Drupal felhasználói kapcsolatfelvételi űrlap lesz használva."
-msgid ""
-"Page manager module is unable to enable user/%user/contact because "
-"some other module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a /%user/contact "
-"elérési utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid ""
-"You cannot have an unnamed placeholder (% or ! by itself). Please name "
-"your placeholder by adding a short piece of descriptive text to the % "
-"or !, such as %user or %node."
-msgstr ""
-"Nem lehetnek nem nevesített helykitöltők (% vagy ! magában). El "
-"kell nevezni a helykitöltőt a % vagy a ! után álló rövid leíró "
-"szöveggel, például %user vagy %node."
-msgid "All polls"
-msgstr "Minden szavazás"
-msgid ""
-"When enabled, this overrides the default Drupal behavior for the polls "
-"at <em>/poll</em>. If no variant is selected, the default Drupal most "
-"recent polls will be shown."
-msgstr ""
-"Ha engedélyezett, felülírja a Drupal alapértelmezett "
-"viselkedését a szavazások <em>/poll</em> oldalon történő "
-"megjelenítésekor. Ha nincs kiválasztott változat, akkor a "
-"legutóbbi szavazások lesznek megjelenítve."
-msgid ""
-"Page manager module is unable to enable poll because some other module "
-"already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a poll elérési "
-"utat, mert néhány másik modul már felülírta %callback "
-"segítségével."
-msgid ""
-"Page manager module is unable to enable search/@name/%menu_tail "
-"because some other module already has overridden with %callback."
-msgstr ""
-"A <em>Page manager</em> modul nem tudja engedélyezni a "
-"search/@name/%menu_tail elérési utat, mert néhány másik modul "
-"már felülírta %callback segítségével."
-msgid "Search @type"
-msgstr "@type keresése"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/user_view.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/user_view.inc
index 34c93a5..8959252 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/user_view.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/plugins/tasks/user_view.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_view.inc,v 1.3.2.3 2010/07/05 20:20:50 merlinofchaos Exp $
 
 /**
  * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
@@ -82,7 +81,8 @@ function page_manager_user_view($account) {
   }
   else {
     //fire off "view" op so that triggers still work
-    user_module_invoke('view', $array = array(), $account);
+    $array = array();
+    user_module_invoke('view', $array, $account);
   }
   return $output;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/page-manager-edit-page.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/page-manager-edit-page.tpl.php
index b900467..316e6b8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/page-manager-edit-page.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/page-manager-edit-page.tpl.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: page-manager-edit-page.tpl.php,v 1.3 2009/08/19 01:12:24 merlinofchaos Exp $
 /**
  * @file
  * Template for the page manager page editor.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/translations/page_manager-theme.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/translations/page_manager-theme.hu.po
deleted file mode 100644
index fa95721..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/theme/translations/page_manager-theme.hu.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:23+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Changed"
-msgstr "Módosított"
-msgid "New"
-msgstr "Új"
-msgid "Locked"
-msgstr "Zárolt"
-msgid ""
-"This page is being edited by another user and you cannot make changes "
-"to it."
-msgstr ""
-"Az oldalt egy másik felhasználó szerkeszti, ezért nem lehet "
-"módosítani."
-msgid ""
-"This page is newly created and has not yet been saved to the database. "
-"It will not be available until you save it."
-msgstr ""
-"Ez az oldal újonnan lett létrehozva, ezért még nincs elmentve az "
-"adatbázisba. Amíg ez meg nem történik, addig nem lesz elérhető."
-msgid ""
-"This page has been modified, but these modifications are not yet live. "
-"While modifying this page, it is locked from modification by other "
-"users."
-msgstr ""
-"Az oldal módosítva lett, de a módosítások még nem élnek. A "
-"módosítás idejére ez az oldal zárolva lett más felhasználók "
-"módosításai elől."
-msgid "No task handlers are defined for this task."
-msgstr "Ehhez a feladathoz nincsenek feladatkezelők meghatározva."
-msgid "Variant"
-msgstr "Változat"
-msgid ""
-"This page is being edited by user !user, and is therefore locked from "
-"editing by others. This lock is !age old. Click here to <a "
-"href=\"!break\">break this lock</a>."
-msgstr ""
-"Ezt az oldalt !user felhasználó szerkeszti, ezért zárolva van "
-"mások szerkesztése elől. A zárolás !age régi. Ide kattintva <a "
-"href=\"!break\">feloldható a zárolás</a>."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.de.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.de.po
deleted file mode 100644
index c7570f1..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.de.po
+++ /dev/null
@@ -1,947 +0,0 @@
-# $Id: page_manager.de.po,v 1.3 2009/08/29 12:13:40 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL at ADDRESS>
-# Generated from files:
-#  panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
-#  fourcol_25_25_25_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  threecol_33_33_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_25_75.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_33_66.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_38_62.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_50_50.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_62_38.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_66_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_75_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
-#  twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: panels 5.x\n"
-"POT-Creation-Date: 2009-08-16 20:47+0200\n"
-"PO-Revision-Date: 2009-08-29 14:13+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: Alexander Hass\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-Language: German\n"
-"X-Poedit-Country: GERMANY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: page_manager/plugins/tasks/node_edit.inc:13;14
-#, fuzzy
-msgid "Node add/edit form"
-msgstr "Beitragsbearbeitungsformular"
-
-#: page_manager/plugins/tasks/node_edit.inc:15
-msgid "When enabled, this overrides the default Drupal behavior for adding or edit nodes at <em>node/%node/edit</em> and <em>node/add/%node_type</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different edit forms for nodes. If no variant is selected, the default Drupal node edit will be used."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:55
-msgid "Page manager module is unable to enable node/%node/edit because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:65
-msgid "Page manager module is unable to override @path because some other module already has overridden with %callback. Node edit will be enabled but that edit path will not be overridden."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:129
-msgid "Create @name"
-msgstr "@name erstellen"
-
-#: page_manager/plugins/tasks/node_edit.inc:143
-msgid "Node being edited"
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:22;24
-msgid "Node template"
-msgstr "Beitragsvorlage"
-
-#: page_manager/plugins/tasks/node_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying nodes at <em>node/%node</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different views of nodes. If no variant is selected, the default Drupal node view will be used. This page only affects nodes viewed as pages, it will not affect nodes viewed in lists or at other locations. Also please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at node/%node."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:66
-msgid "Page manager module is unable to enable node/%node because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:118
-msgid "Node being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:196;274
-msgid "Basic settings"
-msgstr "Basiseinstellungen"
-
-#: page_manager/plugins/tasks/page.admin.inc:197;970;978
-msgid "Argument settings"
-msgstr "Argumenteinstellungen"
-
-#: page_manager/plugins/tasks/page.admin.inc:198;434
-msgid "Access control"
-msgstr "Zugriffskontrolle"
-
-#: page_manager/plugins/tasks/page.admin.inc:199
-msgid "Menu settings"
-msgstr "Menüeinstellungen"
-
-#: page_manager/plugins/tasks/page.admin.inc:275
-msgid "A meaningless second page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:368;1359
-msgid "The name of this page. This will appear in the administrative interface to easily identify it."
-msgstr "Der Titel von dieser Seite. Dieser wird zur leichteren Identifizierung in der Verwaltungsoberfläche angezeigt."
-
-#: page_manager/plugins/tasks/page.admin.inc:374
-#, fuzzy
-msgid "Machine name"
-msgstr "Maschinenlesbarer Name"
-
-#: page_manager/plugins/tasks/page.admin.inc:375
-msgid "The machine readable name of this page. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:387
-msgid "A description of what this page is, does or is for, for administrative use."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:395
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:417
-msgid "Make this your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:418
-msgid "If this box is checked this page will become the site home page. Only paths that have no placeholders can be used as the site home page. The current site home page is set to %homepage."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:423
-msgid "This page is currently set to be your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:435
-msgid "Visible menu item"
-msgstr "Sichtbarer Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:456
-msgid "Name is required."
-msgstr "Der Name ist erforderlich."
-
-#: page_manager/plugins/tasks/page.admin.inc:463
-msgid "That name is used by another page: @page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:468
-msgid "Page name must be alphanumeric or underscores only."
-msgstr "Der Seitenname darf nur alphanumerische Zeichen oder Unterstriche enthalten."
-
-#: page_manager/plugins/tasks/page.admin.inc:475
-msgid "That path is used by another page: @page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:483
-msgid "Path is required."
-msgstr "Der Pfad ist erforderlich."
-
-#: page_manager/plugins/tasks/page.admin.inc:497
-msgid "You cannot have a dynamic path element after an optional path element."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:506
-msgid "You cannot have a static path element after an optional path element."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:517
-msgid "That path is already in used. This system cannot override existing paths."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:525
-msgid "That path is currently assigned to be an alias for @alias. This system cannot override existing aliases."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:530
-msgid "You cannot make this page your site home page if it uses % placeholders."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:538
-msgid "Duplicated argument %arg"
-msgstr "Doppeltes Argument %arg"
-
-#: page_manager/plugins/tasks/page.admin.inc:543
-msgid "Invalid arg <em>%</em>. All arguments must be named with keywords."
-msgstr "Ungültiges Argument <em>%</em>. Alle Argumente müssen mit Schlüsselwörtern benannt sein."
-
-#: page_manager/plugins/tasks/page.admin.inc:636
-#: page_manager/plugins/tasks/page.inc:680
-#: page_manager/plugins/tasks/term_view.inc:269
-msgid "No menu entry"
-msgstr "Kein Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:637
-msgid "Normal menu entry"
-msgstr "Normaler Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:638;700
-msgid "Menu tab"
-msgstr "Menü-Reiter"
-
-#: page_manager/plugins/tasks/page.admin.inc:639
-msgid "Default menu tab"
-msgstr "Standardmäßiger Reiter im Menü"
-
-#: page_manager/plugins/tasks/page.admin.inc:648
-msgid "If set to normal or tab, enter the text to use for the menu item."
-msgstr "Den zu verwendenden Text für den Menüpunkt eingeben, wenn dieser auf Normal oder Reiter eingestellt wird."
-
-#: page_manager/plugins/tasks/page.admin.inc:658
-msgid "Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:668
-#: page_manager/plugins/tasks/page.inc:171;685
-#: page_manager/plugins/tasks/term_view.inc:272
-msgid "Menu"
-msgstr "Menü"
-
-#: page_manager/plugins/tasks/page.admin.inc:672;722
-msgid "Insert item into an available menu."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:683
-msgid "Menu selection requires the activation of menu module."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:690
-msgid "The lower the weight the higher/further left it will appear."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:698
-msgid "Parent menu item"
-msgstr "Übergeordneter Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:700
-msgid "Already exists"
-msgstr "Schon vorhanden"
-
-#: page_manager/plugins/tasks/page.admin.inc:700
-msgid "Normal menu item"
-msgstr "Normaler Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:702
-msgid "When providing a menu item as a default tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is <em>foo/bar/baz</em>, the parent path would be <em>foo/bar</em>."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:707
-msgid "Parent item title"
-msgstr "Titel des übergeordneten Menüpunktes"
-
-#: page_manager/plugins/tasks/page.admin.inc:710
-msgid "If creating a parent menu item, enter the title of the item."
-msgstr "Einen Titel für den Menüpunkt eingeben, wenn ein übergeordneter Menüpunkt erstellt wird."
-
-#: page_manager/plugins/tasks/page.admin.inc:718
-msgid "Parent item menu"
-msgstr "Übergeordneter Menüpunkt"
-
-#: page_manager/plugins/tasks/page.admin.inc:735
-msgid "Tab weight"
-msgstr "Reiterreihenfolge"
-
-#: page_manager/plugins/tasks/page.admin.inc:739
-msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
-msgstr "Die Reihenfolge des Reiters eingeben, wenn der übergeordnete Menüpunkt ein Reiter ist. Umso niedriger die Zahl ist, desto weiter links wird er angezeigt."
-
-#: page_manager/plugins/tasks/page.admin.inc:774
-msgid "Paths with non optional placeholders cannot be used as normal menu items unless the selected argument handler provides a default argument to use for the menu item."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:807
-msgid "Access rules are used to test if the page is accessible and any menu items associated with it are visible."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:848
-msgid "No context assigned"
-msgstr "Kein Kontext zugewiesen"
-
-#: page_manager/plugins/tasks/page.admin.inc:872
-msgid "Change"
-msgstr "Ändern"
-
-#: page_manager/plugins/tasks/page.admin.inc:889
-#: page_manager/plugins/tasks/page.inc:143
-#: page_manager/plugins/tasks/term_view.inc:50;65
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: page_manager/plugins/tasks/page.admin.inc:902
-msgid "Argument"
-msgstr "Argument"
-
-#: page_manager/plugins/tasks/page.admin.inc:903
-msgid "Position in path"
-msgstr "Position im Pfad"
-
-#: page_manager/plugins/tasks/page.admin.inc:904
-msgid "Context assigned"
-msgstr "Kontext wurde zugewiesen"
-
-#: page_manager/plugins/tasks/page.admin.inc:923
-msgid "The path %path has no arguments to configure."
-msgstr "Der Pfad %path enthält keine konfigurierbaren Argumente."
-
-#: page_manager/plugins/tasks/page.admin.inc:957
-msgid "Invalid keyword."
-msgstr "Ungültiges Schlüsselwort."
-
-#: page_manager/plugins/tasks/page.admin.inc:969
-msgid "Change context type"
-msgstr "Kontexttyp ändern."
-
-#: page_manager/plugins/tasks/page.admin.inc:974
-msgid "Change argument"
-msgstr "Argument ändern"
-
-#: page_manager/plugins/tasks/page.admin.inc:1080
-msgid "No context selected"
-msgstr "Kein Kontext ausgewählt"
-
-#: page_manager/plugins/tasks/page.admin.inc:1163
-msgid "Error: missing argument."
-msgstr "Fehler: Fehlendes Argument"
-
-#: page_manager/plugins/tasks/page.admin.inc:1176
-msgid "Context identifier"
-msgstr "Kontext Bezeichner"
-
-#: page_manager/plugins/tasks/page.admin.inc:1177
-msgid "This is the title of the context used to identify it later in the administrative process. This will never be shown to a user."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1183
-msgid "Error: missing or invalid argument plugin %argument."
-msgstr "Fehler: Fehlendes oder ungültiges Argument-Plugin %argument."
-
-#: page_manager/plugins/tasks/page.admin.inc:1231
-msgid "Import page"
-msgstr "Import-Seite"
-
-#: page_manager/plugins/tasks/page.admin.inc:1234;1352
-msgid "Page name"
-msgstr "Seiten-Name"
-
-#: page_manager/plugins/tasks/page.admin.inc:1235
-msgid "Enter the name to use for this page if it is different from the source page. Leave blank to use the original name of the page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1241
-msgid "Enter the path to use for this page if it is different from the source page. Leave blank to use the original path of the page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1246
-msgid "Allow overwrite of an existing page"
-msgstr "Ãœberschreiben einer vorhanden Seite zulassen"
-
-#: page_manager/plugins/tasks/page.admin.inc:1247
-msgid "If the name you selected already exists in the database, this page will be allowed to overwrite the existing page."
-msgstr "Sollte der ausgewähle Namen in der Datenbank schon vorhanden sein, kann die vorhandene Seite überschrieben werden."
-
-#: page_manager/plugins/tasks/page.admin.inc:1252
-msgid "Paste page code here"
-msgstr "Seiten-Code hier einfügen"
-
-#: page_manager/plugins/tasks/page.admin.inc:1258
-msgid "Import"
-msgstr "Importieren"
-
-#: page_manager/plugins/tasks/page.admin.inc:1274
-msgid "No handler found."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1276
-msgid "Unable to get a page from the import. Errors reported: @errors"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1287
-msgid "That page name is in use and locked by another user. You must <a href=\"!break\">break the lock</a> on that page before proceeding, or choose a different name."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1353
-#, fuzzy
-msgid "Enter the name to the new page It must be unique and contain only alphanumeric characters and underscores."
-msgstr "Einen einzigartigen Namen für diese Panel-Ansicht eingeben. Dieser darf nur Buchstaben und Zahlen enthalten."
-
-#: page_manager/plugins/tasks/page.admin.inc:1367
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form. You cannot use the same path as the original page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1373
-msgid "Clone variants"
-msgstr "Varianten duplizieren"
-
-#: page_manager/plugins/tasks/page.admin.inc:1374
-msgid "If checked all variants associated with the page will be cloned as well. If not checked the page will be cloned without variants."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1482
-msgid "Reverting the page will delete the page that is in the database, reverting it to the original default page. Any changes you have made will be lost and cannot be recovered."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1485
-msgid "Are you sure you want to delete this page? Deleting a page cannot be undone."
-msgstr "Soll diese Seite wirklich gelöscht werden? Das Löschen einer Seite kann nicht rückgängig gemacht werden."
-
-#: page_manager/plugins/tasks/page.admin.inc:1508
-msgid "The page has been deleted."
-msgstr "Die Seite wurde gelöscht."
-
-#: page_manager/plugins/tasks/page.admin.inc:1512
-msgid "The page has been reverted."
-msgstr "Die Seite wurde zurückgesetzt."
-
-#: page_manager/plugins/tasks/page.inc:22
-msgid "Custom pages"
-msgstr "Benutzerdefinierte Seiten"
-
-#: page_manager/plugins/tasks/page.inc:23
-msgid "Administrator created pages that have a URL path, access control and entries in the Drupal menu system."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:39
-msgid "Create a new page"
-msgstr "Neue Seite erstellen"
-
-#: page_manager/plugins/tasks/page.inc:150
-#: page_manager/plugins/tasks/term_view.inc:68
-msgid "Basic"
-msgstr "Basis"
-
-#: page_manager/plugins/tasks/page.inc:151
-#: page_manager/plugins/tasks/term_view.inc:69
-msgid "Edit name, path and other basic settings for the page."
-msgstr "Den Namen, Pfad und andere Basiseinstellungen für die Seite bearbeiten."
-
-#: page_manager/plugins/tasks/page.inc:159
-msgid "Set up contexts for the arguments on this page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:165;650
-#: page_manager/plugins/tasks/term_view.inc:264
-msgid "Access"
-msgstr "Zugriff"
-
-#: page_manager/plugins/tasks/page.inc:166
-msgid "Control what users can access this page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:172
-msgid "Provide this page a visible menu or a menu tab."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:178
-msgid "Make a copy of this page"
-msgstr "Eine Kopie dieser Seite erstellen"
-
-#: page_manager/plugins/tasks/page.inc:183
-msgid "Export this page as code that can be imported or embedded into a module."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:189
-msgid "Remove all changes to this page and revert to the version in code."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:196
-msgid "Remove this page from your system completely."
-msgstr ""
-
-# Better do not translate CSS class names
-#: page_manager/plugins/tasks/page.inc:574;589;629;650;685
-#: page_manager/plugins/tasks/term_view.inc:258;264;272;285;298
-#, fuzzy
-msgid "page-summary-label"
-msgstr "page-summary-label"
-
-# Better do not translate CSS class names
-#: page_manager/plugins/tasks/page.inc:575;590;616;630;651;686
-#: page_manager/plugins/tasks/term_view.inc:259;265;273;286;299
-#, fuzzy
-msgid "page-summary-data"
-msgstr "page-summary-data"
-
-# Better do not translate CSS class names
-#: page_manager/plugins/tasks/page.inc:576;591;617;631;652;687
-#: page_manager/plugins/tasks/term_view.inc:260;266;274;287;300
-#, fuzzy
-msgid "page-summary-operation"
-msgstr "page-summary-operation"
-
-#: page_manager/plugins/tasks/page.inc:589
-msgid "Status"
-msgstr "Status"
-
-#: page_manager/plugins/tasks/page.inc:608
-msgid "This is your site home page."
-msgstr "Dies ist die Startseite der Website."
-
-#: page_manager/plugins/tasks/page.inc:611
-msgid "This page is set to become your site home page."
-msgstr "Diese Seite ist als Startseite der Website eingestellt."
-
-#: page_manager/plugins/tasks/page.inc:641
-msgid "Accessible only if @conditions."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:644
-#: page_manager/plugins/tasks/term_view.inc:265
-msgid "This page is publicly accessible."
-msgstr "Die Seite ist öffentlich erreichbar."
-
-#: page_manager/plugins/tasks/page.inc:656
-msgid "No menu entry."
-msgstr "Kein Menüpunkt."
-
-#: page_manager/plugins/tasks/page.inc:657
-msgid "Normal menu entry."
-msgstr "Normaler Menüpunkt."
-
-#: page_manager/plugins/tasks/page.inc:658
-msgid "Menu tab."
-msgstr "Menü-Reiter."
-
-#: page_manager/plugins/tasks/page.inc:659
-msgid "Default menu tab."
-msgstr "Standardmäßiger Reiter im Menü."
-
-#: page_manager/plugins/tasks/page.inc:665
-msgid "Title: %title."
-msgstr "Titel: %title."
-
-#: page_manager/plugins/tasks/page.inc:668
-msgid "Parent title: %title."
-msgstr "Ãœbergeordneter Titel: %title."
-
-#: page_manager/plugins/tasks/page.inc:673
-msgid "Menu block: %title."
-msgstr "Menüblock: %title."
-
-#: page_manager/plugins/tasks/term_view.inc:23;24
-#, fuzzy
-msgid "Taxonomy term template"
-msgstr "Taxonomie-Begriff-Vorlage"
-
-#: page_manager/plugins/tasks/term_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying taxonomy terms at <em>taxonomy/term/%term</em>. If you add variants, you may use selection criteria such as vocabulary or user access to provide different displays of the taxonomy term and associated nodes. If no variant is selected, the default Drupal taxonomy term display will be used. This page only affects items actually displayed ad taxonomy/term/%term. Some taxonomy terms, such as forums, have their displays moved elsewhere. Also please note that if you are using pathauto, aliases may make a taxonomy terms appear somewhere else, but as far as Drupal is concerned, they are still at taxonomy/term/%term."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:51
-msgid "Update settings specific to the taxonomy term view."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:101
-msgid "Page manager module is unable to enable taxonomy/term/%term because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:161
-msgid "Term(s) being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:161
-msgid "Term being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:169
-msgid "Depth"
-msgstr "Tiefe"
-
-#: page_manager/plugins/tasks/term_view.inc:224
-msgid "Allow multiple terms on taxonomy/term/%term"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:225
-msgid "Single term"
-msgstr "Einzellner Begriff"
-
-#: page_manager/plugins/tasks/term_view.inc:225
-msgid "Multiple terms"
-msgstr "Mehrere Begriffe"
-
-#: page_manager/plugins/tasks/term_view.inc:226
-msgid "By default, Drupal allows multiple terms as an argument by separating them with commas or plus signs. If you set this to single, that feature will be disabled."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:278
-msgid "Multiple terms may be used, separated by , or +."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:281
-msgid "Only a single term may be used."
-msgstr "Nur ein einzelner Begriff kann verwendet werden."
-
-#: page_manager/plugins/tasks/term_view.inc:285
-msgid "%term"
-msgstr "%term"
-
-#: page_manager/plugins/tasks/term_view.inc:291
-msgid "Breadcrumb trail will contain taxonomy term hierarchy"
-msgstr "Die Pfadnavigation wird die Taxonomie-Begriffs-Hierarchie enthalten"
-
-#: page_manager/plugins/tasks/term_view.inc:294
-msgid "Breadcrumb trail will not contain taxonomy term hiearchy."
-msgstr "Die Pfadnavigation wird die Taxonomie-Begriffs-Hierarchie nicht enthalten."
-
-#: page_manager/plugins/tasks/term_view.inc:298
-msgid "Breadcrumb"
-msgstr "Pfadnavigation"
-
-#: page_manager/plugins/tasks/user_view.inc:12;13
-#, fuzzy
-msgid "User profile template"
-msgstr "Benutzer-Profil-Vorlage"
-
-#: page_manager/plugins/tasks/user_view.inc:14
-msgid "When enabled, this overrides the default Drupal behavior for displaying user profiles at <em>user/%user</em>. If you add variants, you may use selection criteria such as roles or user access to provide different views of user profiles. If no variant is selected, the default Drupal user view will be used. Please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at user/%user."
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:56
-msgid "Page manager module is unable to enable user/%user because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:97
-msgid "User being viewed"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:42
-msgid "Locked"
-msgstr "Gesperrt"
-
-#: page_manager/theme/page_manager.theme.inc:42
-msgid "This page is being edited by another user and you cannot make changes to it."
-msgstr "An dieser Seite können derzeit keine Änderungen vorgenommen werden, da diese Seite von einem anderen Benutzer bearbeitet wird."
-
-#: page_manager/theme/page_manager.theme.inc:45
-msgid "New"
-msgstr "Neu"
-
-# Rewrite second sentence
-#: page_manager/theme/page_manager.theme.inc:45
-#, fuzzy
-msgid "This page is newly created and has not yet been saved to the database. It will not be available until you save it."
-msgstr "Diese Seite wurde neu erstellt und noch nicht in der Datenbank gespeichert. Sie ist nicht verfügbar, solange sie nicht gespeichert wurde."
-
-#: page_manager/theme/page_manager.theme.inc:48
-msgid "Changed"
-msgstr "Geändert"
-
-#: page_manager/theme/page_manager.theme.inc:48
-msgid "This page has been modified, but these modifications are not yet live. While modifying this page, it is locked from modification by other users."
-msgstr "Diese Seite wurde geändert, aber die Änderungen sind noch nicht Live. Während der Änderung dieser Seite, wird diese für die Änderung durch andere Benutzer gesperrt."
-
-#: page_manager/theme/page_manager.theme.inc:98
-msgid "No task handlers are defined for this task."
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:102
-msgid "Variant"
-msgstr "Variante"
-
-#: page_manager/theme/page_manager.theme.inc:124
-msgid "This page is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href=\"!break\">break this lock</a>."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:34;278
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: page_manager/page_manager.admin.inc:71;249
-msgid "Name"
-msgstr "Name"
-
-#: page_manager/page_manager.admin.inc:145
-msgid "System"
-msgstr "System"
-
-#: page_manager/page_manager.admin.inc:215
-msgid "<All>"
-msgstr "<Alle>"
-
-#: page_manager/page_manager.admin.inc:240
-msgid "Search"
-msgstr "Suchen"
-
-#: page_manager/page_manager.admin.inc:245
-msgid "Sort by"
-msgstr "Sortieren nach"
-
-#: page_manager/page_manager.admin.inc:247
-msgid "Enabled, title"
-msgstr "Aktiviert, Titel"
-
-#: page_manager/page_manager.admin.inc:259
-msgid "Order"
-msgstr "Reihenfolge"
-
-#: page_manager/page_manager.admin.inc:261
-msgid "Up"
-msgstr "Nach oben"
-
-#: page_manager/page_manager.admin.inc:262
-msgid "Down"
-msgstr "Nach unten"
-
-#: page_manager/page_manager.admin.inc:271
-msgid "Apply"
-msgstr "Anwenden"
-
-#: page_manager/page_manager.admin.inc:451;643
-msgid "Summary"
-msgstr "Zusammenfassung"
-
-#: page_manager/page_manager.admin.inc:452
-msgid "Get a summary of the information about this page."
-msgstr "Eine Zusammenfassung der Information über diese Seite anzeigen."
-
-#: page_manager/page_manager.admin.inc:505
-msgid "Activate this page so that it will be in use in your system."
-msgstr "Diese Seite aktivieren, damit diese im System verwendet wird."
-
-#: page_manager/page_manager.admin.inc:518
-msgid "De-activate this page. The data will remain but the page will not be in use on your system."
-msgstr "Diese Seite deaktivieren. Die Daten werden behalten, aber die Seite wird auf dem System nicht mehr verwendet."
-
-#: page_manager/page_manager.admin.inc:529
-msgid "Add variant"
-msgstr "Variante hinzufügen"
-
-#: page_manager/page_manager.admin.inc:530
-msgid "Add a new variant to this page."
-msgstr "Eine neue Variante zu dieser Seite hinzufügen."
-
-#: page_manager/page_manager.admin.inc:535;568
-msgid "Create variant"
-msgstr "Variante erstellen"
-
-#: page_manager/page_manager.admin.inc:540
-msgid "Import variant"
-msgstr "Variante importieren"
-
-#: page_manager/page_manager.admin.inc:541
-msgid "Add a new variant to this page from code exported from another page."
-msgstr "Aus exportiertem Code einer anderen Seite, eine neue Variante zu dieser Seite hinzufügen."
-
-#: page_manager/page_manager.admin.inc:547
-msgid "Reorder variants"
-msgstr "Varianten neu sortieren"
-
-#: page_manager/page_manager.admin.inc:549
-msgid "Change the priority of the variants to ensure that the right one gets selected."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:560
-msgid "Configure a newly created variant prior to actually adding it to the page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:587;592
-msgid "Break lock"
-msgstr "Sperre aufheben"
-
-#: page_manager/page_manager.admin.inc:588
-msgid "Break the lock on this page so that you can edit it."
-msgstr "Die Sperre auf diese Seite aufheben, damit diese bearbeitet werden kann."
-
-#: page_manager/page_manager.admin.inc:611
-msgid "Variants"
-msgstr "Varianten"
-
-#: page_manager/page_manager.admin.inc:636
-msgid "Variant operations"
-msgstr "Varianten-Operationen"
-
-#: page_manager/page_manager.admin.inc:644
-msgid "Get a summary of the information about this variant."
-msgstr "Eine Zusammenfassung der Information über diese Variante anzeigen."
-
-#: page_manager/page_manager.admin.inc:659
-msgid "Make an exact copy of this variant."
-msgstr "Eine genaue Kopie dieser Variante erstellen."
-
-#: page_manager/page_manager.admin.inc:664
-msgid "Export this variant into code to import into another page."
-msgstr "Diese Variante in Code exportieren, damit diese in eine andere Seite importiert werden kann."
-
-#: page_manager/page_manager.admin.inc:670
-msgid "Remove all changes to this variant and revert to the version in code."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:680
-msgid "Remove this variant from the page completely."
-msgstr "Diese Variante vollständig aus der Seite entfernen."
-
-#: page_manager/page_manager.admin.inc:690
-msgid "Activate this variant so that it will be in use in your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:701
-msgid "De-activate this variant. The data will remain but the variant will not be in use on your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:713
-msgid "No variants"
-msgstr "Keine Varianten"
-
-#: page_manager/page_manager.admin.inc:907
-msgid "This operation trail does not exist."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:924
-msgid "The page has been updated. Changes will not be permanent until you save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:941
-#, fuzzy
-msgid "Unable to update changes due to lock."
-msgstr "Die Änderungen konnten aufgrund einer Sperre nicht aktualisiert werden."
-
-#: page_manager/page_manager.admin.inc:1091
-msgid "This setting contains unsaved changes."
-msgstr "Diese Einstellung enthält nicht gespeicherte Änderungen."
-
-#: page_manager/page_manager.admin.inc:1149
-msgid "You have unsaved changes to this page. You must select Save to write them to the database, or Cancel to discard these changes. Please note that if you have changed any form, you must submit that form before saving."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1180
-msgid "All pending changes have been discarded, and the page is now unlocked."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1231
-msgid "Before this variant can be added, it must be configured. When you are finished, click \"Create variant\" at the end of this wizard to add this to your page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1296
-msgid "Administrative title of this variant. If you leave blank it will be automatically assigned."
-msgstr "Administrativer Titel dieser Variante. Solllte dieser leer gelassen werden, wird er automatisch zugewiesen."
-
-#: page_manager/page_manager.admin.inc:1301
-msgid "Variant type"
-msgstr "Variantentyp"
-
-#: page_manager/page_manager.admin.inc:1310
-msgid "Optional features"
-msgstr "Optionale Funktionen"
-
-#: page_manager/page_manager.admin.inc:1312
-msgid "Check any optional features you need to be presented with forms for configuring them. If you do not check them here you will still be able to utilize these features once the new page is created. If you are not sure, leave these unchecked."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1340;1496
-msgid "Variant name"
-msgstr "Varianten-Name"
-
-#: page_manager/page_manager.admin.inc:1341;1497
-msgid "Enter the name of the new variant."
-msgstr "Den Namen einer neuen Variante eingeben."
-
-#: page_manager/page_manager.admin.inc:1346
-msgid "Paste variant code here"
-msgstr "Varianten-Code hier einfügen"
-
-#: page_manager/page_manager.admin.inc:1363
-msgid "No variant found."
-msgstr "Keine Variante gefunden"
-
-#: page_manager/page_manager.admin.inc:1366
-msgid "Unable to get a variant from the import. Errors reported: @errors"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1454
-msgid "Reverting the variant will delete the variant that is in the database, reverting it to the original default variant. This deletion will not be made permanent until you click Save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1457
-msgid "Are you sure you want to delete this variant? This deletion will not be made permanent until you click Save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1523
-msgid "This variant is currently disabled. Enabling it will make it available in your system. This will not take effect until you save this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1542
-msgid "This variant is currently enabled. Disabling it will make it unavailable in your system, and it will not be used. This will not take effect until you save this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1574
-msgid "Breaking the lock on this page will <strong>discard</strong> any pending changes made by the locking user. Are you REALLY sure you want to do this?"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1586
-msgid "The lock has been cleared and all changes discarded. You may now make changes to this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1594
-msgid "Enabling this page will immediately make it available in your system (there is no need to wait for a save.)"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1621
-msgid "Disabling this page will immediately make it unavailable in your system (there is no need to wait for a save.)"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1677
-msgid "This page has no variants and thus no output of its own."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1682
-msgid "Add a new variant"
-msgstr "Neue Variante hinzufügen"
-
-#: page_manager/page_manager.admin.inc:1700
-msgid "Unable to disable due to lock."
-msgstr "Konnte wegen Sperre nicht deaktiviert werden."
-
-#: page_manager/page_manager.admin.inc:1703
-msgid "Unable to enable due to lock."
-msgstr "Konnte wegen Sperre nicht aktiviert werden."
-
-#: page_manager/page_manager.module:42
-msgid "use page manager"
-msgstr "Seiten-Manager verwenden"
-
-#: page_manager/page_manager.module:42
-msgid "administer page manager"
-msgstr "Seiten-Manager verwalten"
-
-#: page_manager/page_manager.module:66
-msgid "Pages"
-msgstr "Seiten"
-
-#: page_manager/page_manager.module:67
-msgid "Add, edit and remove overridden system pages and user defined pages from the system."
-msgstr ""
-
-#: page_manager/page_manager.module:72
-msgid "List"
-msgstr "Alle anzeigen"
-
-#: page_manager/page_manager.module:0
-msgid "page_manager"
-msgstr "page_manager"
-
-#: page_manager/page_manager.install:222
-msgid "Panel"
-msgstr "Panel"
-
-#: page_manager/page_manager.info:0
-msgid "Page manager"
-msgstr "Seiten-Manager"
-
-#: page_manager/page_manager.info:0
-msgid "Provides a UI and API to manage pages within the site."
-msgstr ""
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.fr.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.fr.po
deleted file mode 100644
index dbe58aa..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.fr.po
+++ /dev/null
@@ -1,1091 +0,0 @@
-# $Id: page_manager.fr.po,v 1.1 2009/08/16 20:10:09 hass Exp $
-#
-# French translation of Drupal (general)
-# Copyright 2009 Jérémy Chatard <jchatard at breek.fr>
-# Generated from files:
-#  page_manager.admin.inc,v 1.25 2009/08/13 22:24:02 merlinofchaos
-#  page.admin.inc,v 1.16 2009/08/07 23:40:39 merlinofchaos
-#  page.inc,v 1.16 2009/08/13 23:35:26 merlinofchaos
-#  term_view.inc,v 1.5 2009/08/04 21:43:06 merlinofchaos
-#  page_manager.module,v 1.15 2009/08/09 16:25:02 merlinofchaos
-#  page_manager.install,v 1.7 2009/07/12 11:32:30 sdboyer
-#  page_manager.info,v 1.2 2009/07/12 18:11:58 merlinofchaos
-#  node_edit.inc,v 1.3 2009/08/04 21:43:06 merlinofchaos
-#  node_view.inc,v 1.4 2009/08/04 21:43:06 merlinofchaos
-#  theme/page_manager.theme.inc: n/a
-#  user_view.inc,v 1.3 2009/08/04 21:43:06 merlinofchaos
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-08-15 10:56+0200\n"
-"PO-Revision-Date: 2009-08-16 10:38+0100\n"
-"Last-Translator: Jérémy Chatard <jchatard at breek.fr>\n"
-"Language-Team: French <EMAIL at ADDRESS>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n>1);\n"
-
-#: page_manager.admin.inc:34;278
-msgid "Reset"
-msgstr "Réinitialiser"
-
-#: page_manager.admin.inc:70;219;251
-#: plugins/tasks/page.admin.inc:633
-msgid "Type"
-msgstr "Type"
-
-#: page_manager.admin.inc:71;249
-msgid "Name"
-msgstr "Nom"
-
-#: page_manager.admin.inc:72;248;1295
-#: plugins/tasks/page.admin.inc:645
-msgid "Title"
-msgstr "Titre"
-
-#: page_manager.admin.inc:73;250
-#: plugins/tasks/page.admin.inc:394;1240;1366
-#: plugins/tasks/page.inc:629
-#: plugins/tasks/term_view.inc:258
-msgid "Path"
-msgstr "Chemin"
-
-#: page_manager.admin.inc:74;226;252
-#: plugins/tasks/page.inc:46;574
-msgid "Storage"
-msgstr "Stockage"
-
-#: page_manager.admin.inc:77
-#: plugins/tasks/page.admin.inc:905
-msgid "Operations"
-msgstr "Opérations"
-
-#: page_manager.admin.inc:145
-msgid "System"
-msgstr "Système"
-
-#: page_manager.admin.inc:153
-#: plugins/tasks/page.inc:216
-msgid "In code"
-msgstr "Dans le code"
-
-#: page_manager.admin.inc:171
-#: page_manager.module:79
-#: plugins/tasks/page.inc:605;647;683
-msgid "Edit"
-msgstr "Modifier"
-
-#: page_manager.admin.inc:179;504;510;689;694
-#: plugins/tasks/page.inc:580
-msgid "Enable"
-msgstr "Activer"
-
-#: page_manager.admin.inc:185;517;523;700;705
-#: plugins/tasks/page.inc:584
-msgid "Disable"
-msgstr "Désactiver"
-
-#: page_manager.admin.inc:215
-msgid "<All>"
-msgstr "<Tout>"
-
-#: page_manager.admin.inc:233;234
-#: plugins/tasks/page.inc:585
-msgid "Enabled"
-msgstr "Activé"
-
-#: page_manager.admin.inc:234
-#: plugins/tasks/page.inc:581
-msgid "Disabled"
-msgstr "Désactivé"
-
-#: page_manager.admin.inc:240
-msgid "Search"
-msgstr "Recherche"
-
-#: page_manager.admin.inc:245
-msgid "Sort by"
-msgstr "Trier par"
-
-#: page_manager.admin.inc:247
-msgid "Enabled, title"
-msgstr "Activées, titre"
-
-#: page_manager.admin.inc:259
-msgid "Order"
-msgstr "Ordre"
-
-#: page_manager.admin.inc:261
-msgid "Up"
-msgstr "Haut"
-
-#: page_manager.admin.inc:262
-msgid "Down"
-msgstr "Bas"
-
-#: page_manager.admin.inc:271
-msgid "Apply"
-msgstr "Appliquer"
-
-#: page_manager.admin.inc:451;643
-msgid "Summary"
-msgstr "Résumé"
-
-#: page_manager.admin.inc:452
-msgid "Get a summary of the information about this page."
-msgstr "Obtenir un résumé des informations sur cette page."
-
-#: page_manager.admin.inc:505
-msgid "Activate this page so that it will be in use in your system."
-msgstr "Activez cette page afin qu'elle soit utilisée dans votre système."
-
-#: page_manager.admin.inc:518
-msgid "De-activate this page. The data will remain but the page will not be in use on your system."
-msgstr "Désactiver cette page. Les données seront conservées mais la page ne sera plus utilisée par votre système."
-
-#: page_manager.admin.inc:529
-msgid "Add variant"
-msgstr "Ajouter une variante"
-
-#: page_manager.admin.inc:530
-msgid "Add a new variant to this page."
-msgstr "Ajouter une nouvelle variante de cette page."
-
-#: page_manager.admin.inc:535;568
-msgid "Create variant"
-msgstr "Créer la variante"
-
-#: page_manager.admin.inc:540
-msgid "Import variant"
-msgstr "Importer une variante"
-
-#: page_manager.admin.inc:541
-msgid "Add a new variant to this page from code exported from another page."
-msgstr "Ajouter une variante de cette page à partir de code exporté d'une autre page."
-
-#: page_manager.admin.inc:547
-msgid "Reorder variants"
-msgstr "Ré-ordonner les variantes"
-
-#: page_manager.admin.inc:549
-msgid "Change the priority of the variants to ensure that the right one gets selected."
-msgstr "Changer la priorité des variantes pour s'assurer que la sélection s'opère de façon correcte."
-
-#: page_manager.admin.inc:559
-msgid "Configure"
-msgstr "Configurer"
-
-#: page_manager.admin.inc:560
-msgid "Configure a newly created variant prior to actually adding it to the page."
-msgstr "Configurer une nouvelle variante avant de l'ajouter réellement à la page."
-
-#: page_manager.admin.inc:587;592
-msgid "Break lock"
-msgstr "Faire sauter le verrou"
-
-#: page_manager.admin.inc:588
-msgid "Break the lock on this page so that you can edit it."
-msgstr "Casser le verrou de cette page afin de pouvoir l'éditer."
-
-#: page_manager.admin.inc:611
-msgid "Variants"
-msgstr "Variantes"
-
-#: page_manager.admin.inc:636
-msgid "Variant operations"
-msgstr "Opérations sur les variantes"
-
-#: page_manager.admin.inc:644
-msgid "Get a summary of the information about this variant."
-msgstr "Obtenir un résumé des informations de cette variante."
-
-#: page_manager.admin.inc:658
-#: plugins/tasks/page.admin.inc:1380
-#: plugins/tasks/page.inc:177
-msgid "Clone"
-msgstr "Cloner"
-
-#: page_manager.admin.inc:659
-msgid "Make an exact copy of this variant."
-msgstr "Faire une copie exacte de cette variante."
-
-#: page_manager.admin.inc:663
-#: plugins/tasks/page.inc:182
-msgid "Export"
-msgstr "Exporter"
-
-#: page_manager.admin.inc:664
-msgid "Export this variant into code to import into another page."
-msgstr "Exporter cette variante sous forme de code pour l'importer dans une autre page."
-
-#: page_manager.admin.inc:669;673
-#: plugins/tasks/page.admin.inc:1495
-#: plugins/tasks/page.inc:188
-msgid "Revert"
-msgstr "Revenir"
-
-#: page_manager.admin.inc:670
-msgid "Remove all changes to this variant and revert to the version in code."
-msgstr "Supprimer tous les changements apportés à cette variante et revenir à la version fournie par le code source."
-
-#: page_manager.admin.inc:679;683
-#: plugins/tasks/page.admin.inc:1495
-#: plugins/tasks/page.inc:195
-msgid "Delete"
-msgstr "Supprimer"
-
-#: page_manager.admin.inc:680
-msgid "Remove this variant from the page completely."
-msgstr "Supprimer cette variante de la page."
-
-#: page_manager.admin.inc:690
-msgid "Activate this variant so that it will be in use in your system."
-msgstr "Activer cette variante afin qu'elle soit utilisée par votre système."
-
-#: page_manager.admin.inc:701
-msgid "De-activate this variant. The data will remain but the variant will not be in use on your system."
-msgstr "Désactiver cette variante. Les données seront conservées mais la variante ne sera plus utilisée par votre système."
-
-#: page_manager.admin.inc:713
-msgid "No variants"
-msgstr "Aucune variante"
-
-#: page_manager.admin.inc:795
-msgid "Update"
-msgstr "Mise à jour"
-
-#: page_manager.admin.inc:906
-msgid "Error"
-msgstr "Erreur"
-
-#: page_manager.admin.inc:907
-#, fuzzy
-msgid "This operation trail does not exist."
-msgstr "Cette opération n'existe pas."
-
-#: page_manager.admin.inc:924
-msgid "The page has been updated. Changes will not be permanent until you save."
-msgstr "Cette page a été mise à jour. Les changements ne seront pas sauvegardés tant que vous n'aurez enregistré."
-
-#: page_manager.admin.inc:941
-msgid "Unable to update changes due to lock."
-msgstr "Impossible d'appliquer les changements, un verrou est présent."
-
-#: page_manager.admin.inc:1091
-msgid "This setting contains unsaved changes."
-msgstr "Ces paramètres contiennent des changements non sauvegardés."
-
-#: page_manager.admin.inc:1149
-msgid "You have unsaved changes to this page. You must select Save to write them to the database, or Cancel to discard these changes. Please note that if you have changed any form, you must submit that form before saving."
-msgstr "Vous avez effectué des changements sur cette page qui ne sont pas sauvegardés. Vous devez cliquer sur Enregistrer pour sauvegarder les changements dans la base de données, ou sur Annuler pour ne pas prendre en compte ces changements. Veuillez notez que si vous avez changé les valeurs d'un formulaire, vous devez cliquer sur le bouton Mise à jour avant d'enregistrer votre page."
-
-#: page_manager.admin.inc:1156
-msgid "Save"
-msgstr "Enregistrer"
-
-#: page_manager.admin.inc:1162
-msgid "Cancel"
-msgstr "Annuler"
-
-#: page_manager.admin.inc:1180
-msgid "All pending changes have been discarded, and the page is now unlocked."
-msgstr "Tous les changements ont été annulés, la page est maintenant déverrouillée."
-
-#: page_manager.admin.inc:1231
-msgid "Before this variant can be added, it must be configured. When you are finished, click \"Create variant\" at the end of this wizard to add this to your page."
-msgstr "Avant que cette variante ne puisse être ajoutée, elle doit être configurée. Lorsque vous avez terminé, cliquez sur \"Créer la variante\" à la fin de l'assistant pour l'ajouter à votre page."
-
-#: page_manager.admin.inc:1296
-msgid "Administrative title of this variant. If you leave blank it will be automatically assigned."
-msgstr "Le titre administratif de cette variante. Si vous laissez ce champ vide il sera automatiquement renseigné."
-
-#: page_manager.admin.inc:1301
-msgid "Variant type"
-msgstr "Type de variante"
-
-#: page_manager.admin.inc:1310
-msgid "Optional features"
-msgstr "Fonctionnalités optionnelles"
-
-#: page_manager.admin.inc:1312
-msgid "Check any optional features you need to be presented with forms for configuring them. If you do not check them here you will still be able to utilize these features once the new page is created. If you are not sure, leave these unchecked."
-msgstr "Sélectionnez les fonctionnalités facultatives dont vous avez besoin pour quelles soient présentes dans les formulaires de configuration. Si vous ne sélectionnez pas ces options ici vous pourrez toujours les activer une fois que votre page sera créée. Si vous n'êtes pas sûr, laissez ces options décochées."
-
-#: page_manager.admin.inc:1340;1496
-msgid "Variant name"
-msgstr "Nom de la variante"
-
-#: page_manager.admin.inc:1341;1497
-msgid "Enter the name of the new variant."
-msgstr "Saisissez le nom de la nouvelle variante."
-
-#: page_manager.admin.inc:1346
-msgid "Paste variant code here"
-msgstr "Collez le code de la variante ici"
-
-#: page_manager.admin.inc:1363
-msgid "No variant found."
-msgstr "Aucune variante trouvée."
-
-#: page_manager.admin.inc:1366
-msgid "Unable to get a variant from the import. Errors reported: @errors"
-msgstr "Impossible d'importer une variante. Rapport d'erreurs : @errors"
-
-#: page_manager.admin.inc:1453
-#: page_manager.module:508
-#: plugins/tasks/page.admin.inc:1481;1495;1506
-msgid "Overridden"
-msgstr "Supplantée"
-
-#: page_manager.admin.inc:1454
-msgid "Reverting the variant will delete the variant that is in the database, reverting it to the original default variant. This deletion will not be made permanent until you click Save."
-msgstr "Ré-initialiser la variante va la supprimer de la base de données, la ramenant à sa variante d'origine, celle par défaut. Cette suppression ne sera effective que lorsque vous aurez cliqué sur le bouton Enregistrer."
-
-#: page_manager.admin.inc:1457
-msgid "Are you sure you want to delete this variant? This deletion will not be made permanent until you click Save."
-msgstr "Êtes-vous sûr(e) de vouloir supprimer cette variante ? Cette suppression ne sera effective que lorsque vous aurez cliqué sur Enregistrer."
-
-#: page_manager.admin.inc:1523
-msgid "This variant is currently disabled. Enabling it will make it available in your system. This will not take effect until you save this page."
-msgstr "Cette variante est désactivée. L'activer la rendra disponible dans votre système. Cela ne prendra effet que lorsque vous aurez enregistré cette page."
-
-#: page_manager.admin.inc:1542
-msgid "This variant is currently enabled. Disabling it will make it unavailable in your system, and it will not be used. This will not take effect until you save this page."
-msgstr "Cette variante est activée. La désactiver la rendra indisponible pour le système, et elle ne sera pas utilisée. Cela ne prendra effet que lorsque vous aurez enregistré cette page."
-
-#: page_manager.admin.inc:1574
-msgid "Breaking the lock on this page will <strong>discard</strong> any pending changes made by the locking user. Are you REALLY sure you want to do this?"
-msgstr "Faire sauter le verrou de cet page va <strong>annuler</strong> tout changement réalisé par l'utilisateur qui a verrouillé cette page. Êtes-vous SÛR de vouloir le faire ?"
-
-#: page_manager.admin.inc:1586
-msgid "The lock has been cleared and all changes discarded. You may now make changes to this page."
-msgstr "Le verrou a été effacé ainsi que tous les changements. Vous pouvez maintenant faire des changements sur cette page."
-
-#: page_manager.admin.inc:1594
-msgid "Enabling this page will immediately make it available in your system (there is no need to wait for a save.)"
-msgstr "Activer cette page la rendra disponible immédiatement dans votre système (il n'y a pas besoin d'attendre pour une sauvegarde)."
-
-#: page_manager.admin.inc:1621
-msgid "Disabling this page will immediately make it unavailable in your system (there is no need to wait for a save.)"
-msgstr "Désactiver cette page la rendra indisponible immédiatement dans votre système (il n'y a pas besoin d'attendre pour une sauvegarde)."
-
-#: page_manager.admin.inc:1677
-msgid "This page has no variants and thus no output of its own."
-msgstr "Cette page n'a pas de variante et donc aucun sortie à générer."
-
-#: page_manager.admin.inc:1682
-msgid "Add a new variant"
-msgstr "Ajouter une nouvelle variante"
-
-#: page_manager.admin.inc:1700
-msgid "Unable to disable due to lock."
-msgstr "Impossible de désactiver, un verrou est présent."
-
-#: page_manager.admin.inc:1703
-msgid "Unable to enable due to lock."
-msgstr "Impossible d'activer, un verrou est présent."
-
-#: page_manager.module:365
-#: plugins/tasks/page.admin.inc:1452
-msgid "Normal"
-msgstr "Normal"
-
-#: page_manager.module:499;514
-#: plugins/tasks/page.inc:216
-msgid "Default"
-msgstr "Par défaut"
-
-#: page_manager.module:635
-msgid "Local"
-msgstr "Locale"
-
-#: page_manager.module:42
-msgid "use page manager"
-msgstr "utiliser le gestionnaire de pages"
-
-#: page_manager.module:42
-msgid "administer page manager"
-msgstr "administrer le gestionnaire de pages"
-
-#: page_manager.module:66
-msgid "Pages"
-msgstr "Pages"
-
-#: page_manager.module:67
-msgid "Add, edit and remove overridden system pages and user defined pages from the system."
-msgstr "Ajouter, modifier et supprimer des pages de surchargement et des pages définies par l'utilisateur."
-
-#: page_manager.module:72
-msgid "List"
-msgstr "Liste"
-
-#: page_manager.install:222
-msgid "Panel"
-msgstr "Panel"
-
-#: page_manager.info:0
-msgid "Page manager"
-msgstr "Page manager"
-
-#: page_manager.info:0
-msgid "Provides a UI and API to manage pages within the site."
-msgstr "Fournit une interface utilisateur et une API pour gérer les pages dans le site."
-
-#: page_manager.info:0
-msgid "Chaos tool suite"
-msgstr "Chaos tool suite"
-
-#: plugins/tasks/node_edit.inc:13;14
-msgid "Node add/edit form"
-msgstr "Formulaire de création/édition d'un noeud"
-
-#: plugins/tasks/node_edit.inc:15
-msgid "When enabled, this overrides the default Drupal behavior for adding or edit nodes at <em>node/%node/edit</em> and <em>node/add/%node_type</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different edit forms for nodes. If no variant is selected, the default Drupal node edit will be used."
-msgstr "Lorsque activé, ceci surcharge le comportement par défaut de Drupal pour créer ou modifier des noeuds sur les chemins <em>node/%node/edit</em> et <em>node/add/%node_type</em>. Si vous ajouté des variantes, vous pouvez utiliser les critères de sélection tel que le type de noeud ou la langue ou les permissions pour fournir des formulaires différents pour les noeuds. Si aucune variante n'est sélectionnée, le formulaire d'édition de noeud standard de Drupal sera utilisé."
-
-#: plugins/tasks/node_edit.inc:55
-msgid "Page manager module is unable to enable node/%node/edit because some other module already has overridden with %callback."
-msgstr "Le module Page manager est incapable d'activer node/%node/edit parce que d'autres modules l'on déjà surchargé avec %callback."
-
-#: plugins/tasks/node_edit.inc:65
-msgid "Page manager module is unable to override @path because some other module already has overridden with %callback. Node edit will be enabled but that edit path will not be overridden."
-msgstr "Le module Page manager est incapable de surcharger le chemin @path parce que d'autres modules l'on déjà surchargé avec %callback. L'édition de noeud sera activé mais le chemin d'édition ne sera pas surchargé."
-
-#: plugins/tasks/node_edit.inc:129
-msgid "Create @name"
-msgstr "Créer '@name'"
-
-#: plugins/tasks/node_edit.inc:143
-msgid "Node being edited"
-msgstr "Noeud en cours d'édition"
-
-#: plugins/tasks/node_view.inc:22;24
-msgid "Node template"
-msgstr "Template du noeud"
-
-#: plugins/tasks/node_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying nodes at <em>node/%node</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different views of nodes. If no variant is selected, the default Drupal node view will be used. This page only affects nodes viewed as pages, it will not affect nodes viewed in lists or at other locations. Also please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at node/%node."
-msgstr "Lorsque activé, ceci surcharge le comportement par défaut de Drupal pour afficher les noeuds sur le chemin <em>node/%node</em>. Si vous ajoutez des variantes, vous pourrez utiliser des critères de sélection tel que le type de noeud, la langue ou les permissions pour fournir différents types d'affichage à ces noeuds. Si vous ne sélectionnez pas de variante, l'affichage par défaut de Drupal sera utilisé pour les noeuds. Cette page affecte seulement les noeuds affichés en tant que page, elle n'affectera pas les listes de noeuds ou les noeuds affichés dans d'autres endroits. Veuillez également noter que si vous utilisez Pathauto, les alias d'URLs peuvent laisser paraître qu'un noeud est affiché ailleurs, mais pour Drupal ils sont toujours sur un chemin du type node/%node."
-
-#: plugins/tasks/node_view.inc:66
-msgid "Page manager module is unable to enable node/%node because some other module already has overridden with %callback."
-msgstr "Le module Page manager est incapable d'activer node/%node car d'autres modules l'ont déjà surchargé avec %callback."
-
-#: plugins/tasks/node_view.inc:118
-msgid "Node being viewed"
-msgstr "Noeud en cours d'affichage"
-
-#: plugins/tasks/page.admin.inc:196;274
-msgid "Basic settings"
-msgstr "Paramètres de base"
-
-#: plugins/tasks/page.admin.inc:197;970;978
-msgid "Argument settings"
-msgstr "Paramètres des arguments"
-
-#: plugins/tasks/page.admin.inc:198;434
-msgid "Access control"
-msgstr "Droits d'accès"
-
-#: plugins/tasks/page.admin.inc:199
-msgid "Menu settings"
-msgstr "Paramètres du menu"
-
-#: plugins/tasks/page.admin.inc:275
-msgid "A meaningless second page"
-msgstr ""
-
-#: plugins/tasks/page.admin.inc:367;1358
-msgid "Administrative title"
-msgstr "Titre pour l'administration"
-
-#: plugins/tasks/page.admin.inc:368;1359
-msgid "The name of this page. This will appear in the administrative interface to easily identify it."
-msgstr "Le nom de cette page. Il apparaîtra dans l'interface d'administration afin de l'identifier facilement."
-
-#: plugins/tasks/page.admin.inc:374
-msgid "Machine name"
-msgstr "Nom machine"
-
-#: plugins/tasks/page.admin.inc:375
-msgid "The machine readable name of this page. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!"
-msgstr "Le nom machine de cette page. Il doit être unique et ne doit contenir que des caractères alphanumériques et des caractères de soulignement (_). Une fois créée, vous ne pourrez pas changer cette valeur !"
-
-#: plugins/tasks/page.admin.inc:386
-msgid "Administrative description"
-msgstr "Description pour l'administration"
-
-#: plugins/tasks/page.admin.inc:387
-msgid "A description of what this page is, does or is for, for administrative use."
-msgstr "Une description de ce qu'est cette page, ce qu'elle fait ou est faîte pour, pour l'administration."
-
-#: plugins/tasks/page.admin.inc:395
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form."
-msgstr "Le chemin d'URL pour accéder à cette page. Vous pouvez créer des jetons nommés pour les parties variables du chemin en utilisant la syntaxe %name pour les parties obligatoires et !name pour les parties optionnelles. Par exemple : \"node/%node/foo\", \"forum/%forum\" ou \"dashboard/!input\". Ces jetons nommés peuvent être transformés en contextes sur le formulaire d'arguments."
-
-#: plugins/tasks/page.admin.inc:417
-msgid "Make this your site home page."
-msgstr "Définir comme page d'accueil du site."
-
-#: plugins/tasks/page.admin.inc:418
-msgid "If this box is checked this page will become the site home page. Only paths that have no placeholders can be used as the site home page. The current site home page is set to %homepage."
-msgstr "Si vous cochez cette option, cette page deviendra la page d'accueil du site. Seuls les alias qui ne contiennent pas de caractères de remplecement peuvent être utilisés pour la page d'accueil. La page d'accueil acutelle du site est %homepage."
-
-#: plugins/tasks/page.admin.inc:423
-msgid "This page is currently set to be your site home page."
-msgstr "Cette page est actuellement votre page d'accueil."
-
-#: plugins/tasks/page.admin.inc:435
-msgid "Visible menu item"
-msgstr "Elément de menu visible"
-
-#: plugins/tasks/page.admin.inc:456
-msgid "Name is required."
-msgstr "Le nom est obligatoire."
-
-#: plugins/tasks/page.admin.inc:463
-msgid "That name is used by another page: @page"
-msgstr "Ce nom est déjà utilisé par une autre page : @page"
-
-#: plugins/tasks/page.admin.inc:468
-msgid "Page name must be alphanumeric or underscores only."
-msgstr "Le nom d'une page ne peut contenir que des caractères alphanumériques et des caractères de soulignements (_)."
-
-#: plugins/tasks/page.admin.inc:475
-msgid "That path is used by another page: @page"
-msgstr "Ce chemin est déjà utilisé par une autre page : @page"
-
-#: plugins/tasks/page.admin.inc:483
-msgid "Path is required."
-msgstr "Le chemin est obligatoire"
-
-#: plugins/tasks/page.admin.inc:497
-msgid "You cannot have a dynamic path element after an optional path element."
-msgstr "Vous ne pouvez pas utiliser de partie de chemin dynamique après une partie de chemin optionnelle."
-
-#: plugins/tasks/page.admin.inc:506
-msgid "You cannot have a static path element after an optional path element."
-msgstr "Vous ne pouvez pas utiliser de partie de chemin statique après une partie de chemin optionnelle."
-
-#: plugins/tasks/page.admin.inc:517
-msgid "That path is already in used. This system cannot override existing paths."
-msgstr "Ce chemin est déjà utilisé. Ce système ne peut surcharger des chemins existants."
-
-#: plugins/tasks/page.admin.inc:525
-msgid "That path is currently assigned to be an alias for @alias. This system cannot override existing aliases."
-msgstr "Ce chemin est actuellement assigné à l'alias @alias. Ce système ne peut pas surcharger les alias existants."
-
-#: plugins/tasks/page.admin.inc:530
-msgid "You cannot make this page your site home page if it uses % placeholders."
-msgstr "Vous ne pouvez pas faire de cette page votre page d'accueil du site si elle utilise des jetons % ."
-
-#: plugins/tasks/page.admin.inc:538
-msgid "Duplicated argument %arg"
-msgstr "Argument dupliqué %arg"
-
-#: plugins/tasks/page.admin.inc:543
-msgid "Invalid arg <em>%</em>. All arguments must be named with keywords."
-msgstr "Argument non valide <em>%</em>. Tous les arguments doivent être nommé avec des mots clés."
-
-#: plugins/tasks/page.admin.inc:636
-#: plugins/tasks/page.inc:680
-#: plugins/tasks/term_view.inc:269
-msgid "No menu entry"
-msgstr "Aucune entrée de menu"
-
-#: plugins/tasks/page.admin.inc:637
-msgid "Normal menu entry"
-msgstr "Entrée de menu normale"
-
-#: plugins/tasks/page.admin.inc:638;700
-msgid "Menu tab"
-msgstr "Onglet de menu"
-
-#: plugins/tasks/page.admin.inc:639
-msgid "Default menu tab"
-msgstr "Onglet de menu par défaut"
-
-#: plugins/tasks/page.admin.inc:648
-msgid "If set to normal or tab, enter the text to use for the menu item."
-msgstr "Si positionné à normal ou onglet, saisissez le texte à utiliser pour l'élément de menu."
-
-#: plugins/tasks/page.admin.inc:658
-msgid "Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url."
-msgstr "Attention : changer le menu de cet élément ne fonctionnera pas correctement avec Drupal 6.4 ou inférieur. Veuillez mettre à jour votre installation de Drupal ici !url."
-
-#: plugins/tasks/page.admin.inc:668
-#: plugins/tasks/page.inc:171;685
-#: plugins/tasks/term_view.inc:272
-msgid "Menu"
-msgstr "Menu"
-
-#: plugins/tasks/page.admin.inc:672;722
-msgid "Insert item into an available menu."
-msgstr "Insérer l'élément dans un menu disponible."
-
-#: plugins/tasks/page.admin.inc:683
-msgid "Menu selection requires the activation of menu module."
-msgstr "La sélection du menu requiert l'activation du module menu."
-
-#: plugins/tasks/page.admin.inc:687
-#: theme/page_manager.theme.inc:103
-msgid "Weight"
-msgstr "Poids"
-
-#: plugins/tasks/page.admin.inc:690
-msgid "The lower the weight the higher/further left it will appear."
-msgstr ""
-
-#: plugins/tasks/page.admin.inc:698
-msgid "Parent menu item"
-msgstr "Élément de menu parent"
-
-#: plugins/tasks/page.admin.inc:700
-msgid "Already exists"
-msgstr "Existe déjà"
-
-#: plugins/tasks/page.admin.inc:700
-msgid "Normal menu item"
-msgstr "Élément de menu normal"
-
-#: plugins/tasks/page.admin.inc:702
-msgid "When providing a menu item as a default tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is <em>foo/bar/baz</em>, the parent path would be <em>foo/bar</em>."
-msgstr "Lorsque vous définissez un élément de menu comme un onglet par défaut, Drupal a besoin de savoir quel sera son élément parent. Des fois le parent existera déjà, mais dans certains cas vous devez le créer. Le chemin d'un élément parent doit toujours être le même chemin avec la dernière partie supprimée, càd si le chemin de cette vue est <em>foo/bar/baz</em>, le chemin du parent doit être <em>foo/bar</em>."
-
-#: plugins/tasks/page.admin.inc:707
-msgid "Parent item title"
-msgstr "Titre de l'élément parent"
-
-#: plugins/tasks/page.admin.inc:710
-msgid "If creating a parent menu item, enter the title of the item."
-msgstr "Si vous créez un élément de menu parent, saisissez le titre de l'élément."
-
-#: plugins/tasks/page.admin.inc:718
-#, fuzzy
-msgid "Parent item menu"
-msgstr "Menu parent de l'élément"
-
-#: plugins/tasks/page.admin.inc:735
-msgid "Tab weight"
-msgstr "Poids de l'onglet"
-
-#: plugins/tasks/page.admin.inc:739
-msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
-msgstr "Si l'élément de menu parent est un onglet, saisissez le poids de l'onglet. Plus le nombre est faible, plus l'élément apparaîtra à gauche."
-
-#: plugins/tasks/page.admin.inc:774
-msgid "Paths with non optional placeholders cannot be used as normal menu items unless the selected argument handler provides a default argument to use for the menu item."
-msgstr "Les chemins avec des jetons obligatoires ne peuvent pas être des éléments de menu normaux à moins que le gestionnaire d'argument fournisse une valeur par défaut pour utiliser cet élément de menu."
-
-#: plugins/tasks/page.admin.inc:807
-msgid "Access rules are used to test if the page is accessible and any menu items associated with it are visible."
-msgstr "Les règles d'accès sont utilisées pour tester si la page est accessible et rendre ou non visible les éléments de menu correspondants."
-
-#: plugins/tasks/page.admin.inc:848
-msgid "No context assigned"
-msgstr "Aucun contexte assigné"
-
-#: plugins/tasks/page.admin.inc:872
-msgid "Change"
-msgstr "Changer"
-
-#: plugins/tasks/page.admin.inc:889
-#: plugins/tasks/page.inc:143
-#: plugins/tasks/term_view.inc:50;65
-msgid "Settings"
-msgstr "Paramètres"
-
-#: plugins/tasks/page.admin.inc:902
-msgid "Argument"
-msgstr "Argument"
-
-#: plugins/tasks/page.admin.inc:903
-msgid "Position in path"
-msgstr "Position dans le chemin"
-
-#: plugins/tasks/page.admin.inc:904
-msgid "Context assigned"
-msgstr "Context assigné"
-
-#: plugins/tasks/page.admin.inc:923
-msgid "The path %path has no arguments to configure."
-msgstr "Le chemin %path n'a pas d'argument à configurer"
-
-#: plugins/tasks/page.admin.inc:948
-msgid "Invalid object name."
-msgstr "Nom d'objet non valide."
-
-#: plugins/tasks/page.admin.inc:957
-msgid "Invalid keyword."
-msgstr "Mot clé non valide."
-
-#: plugins/tasks/page.admin.inc:969
-msgid "Change context type"
-msgstr "Changer le type de contexte"
-
-#: plugins/tasks/page.admin.inc:974
-msgid "Change argument"
-msgstr "Changer l'argument"
-
-#: plugins/tasks/page.admin.inc:1080
-msgid "No context selected"
-msgstr "Pas de contexte sélectionné"
-
-#: plugins/tasks/page.admin.inc:1116;1136
-msgid "No context"
-msgstr "Pas de contexte"
-
-#: plugins/tasks/page.admin.inc:1163
-msgid "Error: missing argument."
-msgstr "Erreur : argument manquant."
-
-#: plugins/tasks/page.admin.inc:1176
-msgid "Context identifier"
-msgstr "Identifiant du context"
-
-#: plugins/tasks/page.admin.inc:1177
-msgid "This is the title of the context used to identify it later in the administrative process. This will never be shown to a user."
-msgstr "Ceci est le titre du contexte utilisé pour l'identifier plus tard dans la partie administration. Il ne sera jamais affiché à l'utilisateur."
-
-#: plugins/tasks/page.admin.inc:1183
-msgid "Error: missing or invalid argument plugin %argument."
-msgstr "Erreur : plugin d'argument %argument manquant ou non valide."
-
-#: plugins/tasks/page.admin.inc:1231
-msgid "Import page"
-msgstr "Importer une page"
-
-#: plugins/tasks/page.admin.inc:1234;1352
-msgid "Page name"
-msgstr "Nom de la page"
-
-#: plugins/tasks/page.admin.inc:1235
-msgid "Enter the name to use for this page if it is different from the source page. Leave blank to use the original name of the page."
-msgstr "Saisissez le nom à utiliser pour cette page si il est différent de la page source. Laissez le champ vide pour utiliser le nom original de la page."
-
-#: plugins/tasks/page.admin.inc:1241
-msgid "Enter the path to use for this page if it is different from the source page. Leave blank to use the original path of the page."
-msgstr "Saisissez le chemin à utiliser pour cette page si il est différent de la page source. Laissez le champ vide pour utiliser le chemin original de la page."
-
-#: plugins/tasks/page.admin.inc:1246
-msgid "Allow overwrite of an existing page"
-msgstr "Permettre l'écrasement d'une page existante"
-
-#: plugins/tasks/page.admin.inc:1247
-msgid "If the name you selected already exists in the database, this page will be allowed to overwrite the existing page."
-msgstr "Si le nom que vous sélectionnez existe déjà dans la base de données, cette page pourra écraser celle déjà existante."
-
-#: plugins/tasks/page.admin.inc:1252
-msgid "Paste page code here"
-msgstr "Coller le code de la page ici"
-
-#: plugins/tasks/page.admin.inc:1258
-msgid "Import"
-msgstr "Importer"
-
-#: plugins/tasks/page.admin.inc:1274
-msgid "No handler found."
-msgstr "Pas de gestionnaire trouvé."
-
-#: plugins/tasks/page.admin.inc:1276
-msgid "Unable to get a page from the import. Errors reported: @errors"
-msgstr "Impossible de récupérer une page à partir de l'import. Erreurs rapportées : @erros"
-
-#: plugins/tasks/page.admin.inc:1287
-msgid "That page name is in use and locked by another user. You must <a href=\"!break\">break the lock</a> on that page before proceeding, or choose a different name."
-msgstr "Ce nom de page est actuellement utilisé et verrouillé par un autre utilisateur. Vous devez <a href=\"!break\">casser le verrou</a> de cette page avant de pouvoir continuer, ou choisir un nom différent."
-
-#: plugins/tasks/page.admin.inc:1353
-msgid "Enter the name to the new page It must be unique and contain only alphanumeric characters and underscores."
-msgstr "Entrez le nom de la nouvelle page. Il doit être unique et ne contenir que des caractères alphanumériques et des caractères de soulignements (_)."
-
-#: plugins/tasks/page.admin.inc:1367
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form. You cannot use the same path as the original page."
-msgstr "Le chemin d'URL pour accéder à cette page. Vous pouvez créer des jetons nommés pour les parties variables du chemin en utilisant la syntaxe %name pour les parties obligatoires et !name pour les parties optionnelles. Par exemple : \"node/%node/foo\", \"forum/%forum\" ou \"dashboard/!input\". Ces jetons nommés peuvent être transformés en contextes sur le formulaire d'arguments. Vous ne pouvez pas utiliser le même chemin que l'original."
-
-#: plugins/tasks/page.admin.inc:1373
-msgid "Clone variants"
-msgstr "Cloner les variantes"
-
-#: plugins/tasks/page.admin.inc:1374
-msgid "If checked all variants associated with the page will be cloned as well. If not checked the page will be cloned without variants."
-msgstr "Si sélectionné toutes les variantes associées à cette page seront également clonées. Si non sélectionné la page sera clonée sans ses variantes."
-
-#: plugins/tasks/page.admin.inc:1482
-msgid "Reverting the page will delete the page that is in the database, reverting it to the original default page. Any changes you have made will be lost and cannot be recovered."
-msgstr "Ré-initialiser la page va la supprimer de la base de données, la ramenant à sa version d'origine, celle par défaut. Tout changement effectué sera perdu et ne pourra être récupéré."
-
-#: plugins/tasks/page.admin.inc:1485
-msgid "Are you sure you want to delete this page? Deleting a page cannot be undone."
-msgstr "Êtes-vous sûr de vouloir supprimer cette page ? Supprimer une page est irréversible."
-
-#: plugins/tasks/page.admin.inc:1508
-msgid "The page has been deleted."
-msgstr "La page a été supprimée."
-
-#: plugins/tasks/page.admin.inc:1512
-msgid "The page has been reverted."
-msgstr "La page a été réinitialisée."
-
-#: plugins/tasks/page.inc:22
-msgid "Custom pages"
-msgstr "Pages personnalisées"
-
-#: plugins/tasks/page.inc:23
-msgid "Administrator created pages that have a URL path, access control and entries in the Drupal menu system."
-msgstr "Des pages créées par l'administrateur qui ont une chemin (URL), un contrôle d'accès et des entrées dans le système de menu de Drupal."
-
-#: plugins/tasks/page.inc:39
-msgid "Create a new page"
-msgstr "Créer une nouvelle page"
-
-#: plugins/tasks/page.inc:150
-#: plugins/tasks/term_view.inc:68
-msgid "Basic"
-msgstr "Basique"
-
-#: plugins/tasks/page.inc:151
-#: plugins/tasks/term_view.inc:69
-msgid "Edit name, path and other basic settings for the page."
-msgstr "Modifier le nom, le chemin et les paramètres de base de cette page."
-
-#: plugins/tasks/page.inc:158
-msgid "Arguments"
-msgstr "Arguments"
-
-#: plugins/tasks/page.inc:159
-msgid "Set up contexts for the arguments on this page."
-msgstr "Définir les contextes pour les arguments de cette page."
-
-#: plugins/tasks/page.inc:165;650
-#: plugins/tasks/term_view.inc:264
-msgid "Access"
-msgstr "Accès"
-
-#: plugins/tasks/page.inc:166
-msgid "Control what users can access this page."
-msgstr "Contrôler quels utilisateurs peuvent accéder à cette page."
-
-#: plugins/tasks/page.inc:172
-msgid "Provide this page a visible menu or a menu tab."
-msgstr "Fournir à cette page un menu visible ou un onglet."
-
-#: plugins/tasks/page.inc:178
-msgid "Make a copy of this page"
-msgstr "Créer une copie de cette page"
-
-#: plugins/tasks/page.inc:183
-msgid "Export this page as code that can be imported or embedded into a module."
-msgstr "Exporter cette page sous forme de code qu'il sera possible d'importer ou d'encapsuler dans un module."
-
-#: plugins/tasks/page.inc:189
-msgid "Remove all changes to this page and revert to the version in code."
-msgstr "Supprimer tous les changements de cette page et revenir à la version fournie par son code source."
-
-#: plugins/tasks/page.inc:196
-msgid "Remove this page from your system completely."
-msgstr "Supprimer entièrement cette page du système."
-
-#: plugins/tasks/page.inc:207
-msgid "Custom"
-msgstr "Personnalisé"
-
-#: plugins/tasks/page.inc:304
-#: plugins/tasks/term_view.inc:133
-msgid "View"
-msgstr "Voir"
-
-#: plugins/tasks/page.inc:574;589;629;650;685
-#: plugins/tasks/term_view.inc:258;264;272;285;298
-msgid "page-summary-label"
-msgstr "page-summary-label"
-
-#: plugins/tasks/page.inc:575;590;616;630;651;686
-#: plugins/tasks/term_view.inc:259;265;273;286;299
-msgid "page-summary-data"
-msgstr "page-summary-data"
-
-#: plugins/tasks/page.inc:576;591;617;631;652;687
-#: plugins/tasks/term_view.inc:260;266;274;287;300
-msgid "page-summary-operation"
-msgstr "page-summary-operation"
-
-#: plugins/tasks/page.inc:589
-msgid "Status"
-msgstr "Statut"
-
-#: plugins/tasks/page.inc:608
-msgid "This is your site home page."
-msgstr "C'est la page d'accueil de votre site."
-
-#: plugins/tasks/page.inc:611
-msgid "This page is set to become your site home page."
-msgstr "Cette page est définie pour devenir votre page d'accueil."
-
-#: plugins/tasks/page.inc:641
-msgid "Accessible only if @conditions."
-msgstr "Accessible seulement si @conditions."
-
-#: plugins/tasks/page.inc:644
-#: plugins/tasks/term_view.inc:265
-msgid "This page is publicly accessible."
-msgstr "Cette page est accessible publiquement."
-
-#: plugins/tasks/page.inc:656
-msgid "No menu entry."
-msgstr "Pas d'entrée dans le menu."
-
-#: plugins/tasks/page.inc:657
-msgid "Normal menu entry."
-msgstr "Entrée de menu normale."
-
-#: plugins/tasks/page.inc:658
-msgid "Menu tab."
-msgstr "Onglet."
-
-#: plugins/tasks/page.inc:659
-msgid "Default menu tab."
-msgstr "Onglet par défaut."
-
-#: plugins/tasks/page.inc:665
-msgid "Title: %title."
-msgstr "Titre : %title."
-
-#: plugins/tasks/page.inc:668
-msgid "Parent title: %title."
-msgstr "Titre du parent : %title"
-
-#: plugins/tasks/page.inc:673
-msgid "Menu block: %title."
-msgstr "Bloc de menu : %title"
-
-#: plugins/tasks/term_view.inc:23;24
-msgid "Taxonomy term template"
-msgstr "Template des termes de taxinomie"
-
-#: plugins/tasks/term_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying taxonomy terms at <em>taxonomy/term/%term</em>. If you add variants, you may use selection criteria such as vocabulary or user access to provide different displays of the taxonomy term and associated nodes. If no variant is selected, the default Drupal taxonomy term display will be used. This page only affects items actually displayed ad taxonomy/term/%term. Some taxonomy terms, such as forums, have their displays moved elsewhere. Also please note that if you are using pathauto, aliases may make a taxonomy terms appear somewhere else, but as far as Drupal is concerned, they are still at taxonomy/term/%term."
-msgstr "Si activé, ceci surcharge le comportement par défaut de Drupal de l'affichage des pages de termes de taxinomie <em>taxonomy/term/%term</em>. Si vous aviez des variantes, vous pourriez utiliser des critères de sélection tel que le vocabulaire ou les permissions pour afficher différentes vues de la page des termes de taxinomies et des noeuds affichés. Si aucune variante n'est sélectionnée, l'affichage par défaut des pages de termes de taxinomie sera utilisée. Cette page affecte uniquement les éléments affichés au chemin taxonomy/term/%term. Certains termes, tel que les forums, ont leur affichage gérer ailleurs. Veuillez également noter que si vous utilisez Pathauto, les alias peuvent donner le sentiment qu'un terme de taxinomie est affiché ailleurs, mais pour Drupal ceci sont toujours au chemin taxonomy/term/%term."
-
-#: plugins/tasks/term_view.inc:51
-msgid "Update settings specific to the taxonomy term view."
-msgstr "Mettre à jour les paramètres spécifiques de la vue des termes de taxinomie."
-
-#: plugins/tasks/term_view.inc:101
-msgid "Page manager module is unable to enable taxonomy/term/%term because some other module already has overridden with %callback."
-msgstr "Le module Page manager est incapable d'activer la page taxonomy/term/%term parce que d'autres modules l'ont déjà surchargé avec %callback."
-
-#: plugins/tasks/term_view.inc:161
-msgid "Term(s) being viewed"
-msgstr "Les termes en cours d'affichage"
-
-#: plugins/tasks/term_view.inc:161
-msgid "Term being viewed"
-msgstr "Le terme en cours d'affichage"
-
-#: plugins/tasks/term_view.inc:169
-msgid "Depth"
-msgstr "Profondeur"
-
-#: plugins/tasks/term_view.inc:224
-msgid "Allow multiple terms on taxonomy/term/%term"
-msgstr "Permettre plusieurs termes sur taxonomy/term/%term"
-
-#: plugins/tasks/term_view.inc:225
-msgid "Single term"
-msgstr "Un seul term"
-
-#: plugins/tasks/term_view.inc:225
-msgid "Multiple terms"
-msgstr "Plusieurs termes"
-
-#: plugins/tasks/term_view.inc:226
-msgid "By default, Drupal allows multiple terms as an argument by separating them with commas or plus signs. If you set this to single, that feature will be disabled."
-msgstr "Par défaut Drupal permet d'avoir plusieurs termes en argument en les séparant par des virgules ou des plus (+). Si vous sélectionnez un seul, cette fonctionnalité sera désactivée."
-
-#: plugins/tasks/term_view.inc:230
-msgid "Inject hierarchy of first term into breadcrumb trail"
-msgstr "Injecte la hiérarchie du premier terme dans le fil d'Arianne"
-
-#: plugins/tasks/term_view.inc:233
-msgid "If checked, taxonomy term parents will appear in the breadcrumb trail."
-msgstr "Si sélectionné, les parents du terme de taxinomie apparaîtra dans le fil d'Arianne."
-
-#: plugins/tasks/term_view.inc:278
-msgid "Multiple terms may be used, separated by , or +."
-msgstr "Plusieurs termes peuvent être utilisés, séparés par des virgules (,) ou des plus (+)."
-
-#: plugins/tasks/term_view.inc:281
-msgid "Only a single term may be used."
-msgstr "Seul un terme peut être utilisé"
-
-#: plugins/tasks/term_view.inc:285
-msgid "%term"
-msgstr ""
-
-#: plugins/tasks/term_view.inc:291
-msgid "Breadcrumb trail will contain taxonomy term hierarchy"
-msgstr "Le fil d'Arianne va contenir la hiérarchie des termes de la taxinomie"
-
-#: plugins/tasks/term_view.inc:294
-msgid "Breadcrumb trail will not contain taxonomy term hiearchy."
-msgstr "Le fil d'Arianne ne va pas contenir la hiérarchie des termes de la taxinomie"
-
-#: plugins/tasks/term_view.inc:298
-msgid "Breadcrumb"
-msgstr "Fil d'Arianne"
-
-#: plugins/tasks/user_view.inc:12;13
-msgid "User profile template"
-msgstr "Template profile utilisateur"
-
-#: plugins/tasks/user_view.inc:14
-msgid "When enabled, this overrides the default Drupal behavior for displaying user profiles at <em>user/%user</em>. If you add variants, you may use selection criteria such as roles or user access to provide different views of user profiles. If no variant is selected, the default Drupal user view will be used. Please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at user/%user."
-msgstr "Si activé, ceci surcharge l'affichage par défaut de Drupal pour afficher le profile des utilisateurs <em>user/%user</em>. Si vous ajoutez des variantes, vous pourrez sélectionner des critères de sélection tel que les rôles ou les permissions pour fournir des affichages différents des profiles utilisateurs. Si aucune variante n'est sélectionnée, l'affichage par défaut de Drupal sera utilisé. Notez que si vous utilisez Pathauto, les alias peuvent donner l'impression que les profiles utilisateurs sont affichés ailleurs, mais pour Drupal ils sont toujours affiché au chemin user/%user."
-
-#: plugins/tasks/user_view.inc:56
-msgid "Page manager module is unable to enable user/%user because some other module already has overridden with %callback."
-msgstr "Le module Page manager est incapable d'activer la page user/%user car d'autres modules l'ont déjà surchargé avec %callback."
-
-#: plugins/tasks/user_view.inc:97
-msgid "User being viewed"
-msgstr "L'utilisateur en cours d'affichage"
-
-#: theme/page_manager.theme.inc:42
-msgid "Locked"
-msgstr "Vérouillé"
-
-#: theme/page_manager.theme.inc:42
-msgid "This page is being edited by another user and you cannot make changes to it."
-msgstr "Cette page est en cours d'édition par un autre utilisateur, vous ne pouvez donc pas la modifier."
-
-#: theme/page_manager.theme.inc:45
-msgid "New"
-msgstr "Nouveau"
-
-#: theme/page_manager.theme.inc:45
-msgid "This page is newly created and has not yet been saved to the database. It will not be available until you save it."
-msgstr "Cette page vient d'être créée et n'a pas été enregistrée dans la base de données. Elle ne sera pas disponible tant que vous ne l'aurez pas sauvegardée."
-
-#: theme/page_manager.theme.inc:48
-msgid "Changed"
-msgstr "Modifiée"
-
-#: theme/page_manager.theme.inc:48
-msgid "This page has been modified, but these modifications are not yet live. While modifying this page, it is locked from modification by other users."
-msgstr "Cette page a été modifiée, mais ces changements ne sont pas encore actifs. Lors de la modification de cette page, celle-ci est verrouillée et ne peut pas être modifiée par les autres utilisateurs."
-
-#: theme/page_manager.theme.inc:98
-msgid "No task handlers are defined for this task."
-msgstr "Aucun gestionnaire de tâche n'est définie pour cette tâche."
-
-#: theme/page_manager.theme.inc:102
-msgid "Variant"
-msgstr "Variante"
-
-#: theme/page_manager.theme.inc:124
-msgid "This page is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href=\"!break\">break this lock</a>."
-msgstr "Cette page est en cours d'édition par l'utilisateur !user, et est donc verrouillée. Ce verrou est actif depuis !age. Cliquez ici pour <a href=\"!break\">cassé ce verrou</a>."
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.hu.po
deleted file mode 100644
index 1a0f4a9..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.hu.po
+++ /dev/null
@@ -1,268 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:40+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Pages"
-msgstr "Oldalak"
-msgid "List"
-msgstr "Lista"
-msgid "Reset"
-msgstr "Alaphelyzet"
-msgid "Name"
-msgstr "Név"
-msgid "Summary"
-msgstr "Összegzés"
-msgid "Up"
-msgstr "Fel"
-msgid "<All>"
-msgstr "< Mind >"
-msgid "Down"
-msgstr "Le"
-msgid "Order"
-msgstr "Sorrend"
-msgid "Sort by"
-msgstr "Rendezés"
-msgid "Apply"
-msgstr "Alkalmaz"
-msgid "Panel"
-msgstr "Panel"
-msgid "Variants"
-msgstr "Változatok"
-msgid "Break lock"
-msgstr "Zárolás feloldása"
-msgid "Enabled, title"
-msgstr "Engedélyezett, cím"
-msgid "Get a summary of the information about this page."
-msgstr "Az oldalinformációk összefoglalója."
-msgid "Activate this page so that it will be in use in your system."
-msgstr "Az oldalt aktiválni kell, hogy a rendszerben használni lehessen."
-msgid ""
-"De-activate this page. The data will remain but the page will not be "
-"in use on your system."
-msgstr ""
-"Oldal deaktiválása. Az adat megmarad, de az oldal nem lesz "
-"használva a rendszerben."
-msgid "Add variant"
-msgstr "Változat hozzáadása"
-msgid "Add a new variant to this page."
-msgstr "Új változat hozzáadása az oldalhoz."
-msgid "Create variant"
-msgstr "Változat létrehozása"
-msgid "Import variant"
-msgstr "Változat importálása"
-msgid "Add a new variant to this page from code exported from another page."
-msgstr ""
-"Új változat hozzáadása az oldalhoz egy másik oldalból exportált "
-"kódból."
-msgid "Reorder variants"
-msgstr "Változatok újrarendezése"
-msgid ""
-"Change the priority of the variants to ensure that the right one gets "
-"selected."
-msgstr ""
-"A változatok fontosságának módosítása, hogy biztosan a "
-"megfelelő legyen kiválasztva."
-msgid ""
-"Configure a newly created variant prior to actually adding it to the "
-"page."
-msgstr ""
-"Egy újonnan létrehozott változat hozzáadása azelőtt, hogy az "
-"ténylegesen hozzá lenne adva az oldalhoz."
-msgid "Break the lock on this page so that you can edit it."
-msgstr "Az oldal zárolása meg lett szüntetve, így az már szerkeszthető."
-msgid "Variant operations"
-msgstr "Változatok műveletei"
-msgid "Get a summary of the information about this variant."
-msgstr "Változatinformációk összefoglalója."
-msgid "Make an exact copy of this variant."
-msgstr "A változat egy pontos másolatának létrehozása."
-msgid "Export this variant into code to import into another page."
-msgstr ""
-"A változat kódjának egy másik oldalba importálható "
-"exportálása."
-msgid "Remove all changes to this variant and revert to the version in code."
-msgstr ""
-"A változat összes módosításának eltávolítása és "
-"visszaállítása a kódban lévő változatra."
-msgid "Remove this variant from the page completely."
-msgstr "A változat teljes eltávolítása az oldalról."
-msgid "Activate this variant so that it will be in use in your system."
-msgstr "A változatot aktiválni kell, hogy a rendszerben használni lehessen."
-msgid ""
-"De-activate this variant. The data will remain but the variant will "
-"not be in use on your system."
-msgstr ""
-"Változat deaktiválása. Az adat megmarad, de a változat nem lesz "
-"használva a rendszerben."
-msgid "No variants"
-msgstr "Nincsenek változatok"
-msgid "This operation trail does not exist."
-msgstr "Ez a műveleti nyomvonal nem létezik."
-msgid ""
-"The page has been updated. Changes will not be permanent until you "
-"save."
-msgstr ""
-"Az oldal frissítve lett. A változások nem véglegesek, amíg nincs "
-"elmentve."
-msgid "Unable to update changes due to lock."
-msgstr "Zárolás miatt nem lehett frissíteni a módosításokat."
-msgid "This setting contains unsaved changes."
-msgstr "Ez a beállítás el nem mentett módosításokat tartalmaz."
-msgid ""
-"You have unsaved changes to this page. You must select Save to write "
-"them to the database, or Cancel to discard these changes. Please note "
-"that if you have changed any form, you must submit that form before "
-"saving."
-msgstr ""
-"Nem mentett módosítások vannak az oldalon. A „Mentés”-t kell "
-"választani az adatbázisba íráshoz vagy a „Mégsem”-et a "
-"módosítások eldobásához. Meg kell jegyezni, hogy az űrlapokat "
-"módosítás után be kell küldeni a mentés előtt."
-msgid "All pending changes have been discarded, and the page is now unlocked."
-msgstr ""
-"Minden függőben lévő módosítás el lett dobva és az oldal "
-"zárolása fel lett oldva."
-msgid ""
-"Administrative title of this variant. If you leave blank it will be "
-"automatically assigned."
-msgstr ""
-"A változat adminisztratív címe. Üresen hagyva automatikusan lesz "
-"meghatározva."
-msgid "Variant type"
-msgstr "Változat típusa"
-msgid "Optional features"
-msgstr "Választható lehetőségek"
-msgid ""
-"Check any optional features you need to be presented with forms for "
-"configuring them. If you do not check them here you will still be able "
-"to utilize these features once the new page is created. If you are not "
-"sure, leave these unchecked."
-msgstr ""
-"További választható lehetőségek beállítása, amik űrlapokkal "
-"jelennek meg a beállításhoz. Ha itt nincsenek bejelölve, akkor is "
-"lehet használni ezeket a lehetőségeket amint az új oldal "
-"létrejött. Kétség esetén bejelöletlenül kell hagyni ezeket."
-msgid "Variant name"
-msgstr "Változat neve"
-msgid "Enter the name of the new variant."
-msgstr "Az új változat nevének megadása."
-msgid "Paste variant code here"
-msgstr "Változat kódjának beillesztése"
-msgid "No variant found."
-msgstr "Nincs változat."
-msgid "Unable to get a variant from the import. Errors reported: @errors"
-msgstr ""
-"Nem lehet változatot létrehozni az importból. A jelentett hibák: "
-"@errors"
-msgid ""
-"Reverting the variant will delete the variant that is in the database, "
-"reverting it to the original default variant. This deletion will not "
-"be made permanent until you click Save."
-msgstr ""
-"A változat visszaállítása törli a változatot az adatbázisból, "
-"visszaállítva az eredeti alapértelmezett változatot. A mentésre "
-"kattintásig ez a törlés nem lesz végleges."
-msgid ""
-"Are you sure you want to delete this variant? This deletion will not "
-"be made permanent until you click Save."
-msgstr ""
-"Biztosan törölhető ez a változat? A törlés a mentésre "
-"kattintásig nem lesz véglegesítve."
-msgid ""
-"This variant is currently disabled. Enabling it will make it available "
-"in your system. This will not take effect until you save this page."
-msgstr ""
-"Ez a változat jelenleg le van tiltva. Engedélyezése elérhetővé "
-"teszi a rendszerben. Az oldal elmentése előtt nem lép érvénybe."
-msgid ""
-"This variant is currently enabled. Disabling it will make it "
-"unavailable in your system, and it will not be used. This will not "
-"take effect until you save this page."
-msgstr ""
-"Ez a változat jelenleg engedélyezve van. A letiltása "
-"elérhetetlenné teszi a rendszerben és nem lesz használva. Addig "
-"nem lép érvénybe, amíg nincs az oldal elmentve."
-msgid ""
-"Breaking the lock on this page will <strong>discard</strong> any "
-"pending changes made by the locking user. Are you REALLY sure you want "
-"to do this?"
-msgstr ""
-"Az oldal zárolásának feloldása <strong>el fog dobni</strong> "
-"minden, a zároló felhasználó által végrehajtott, függőben "
-"lévő változást. VALÓBAN végrehajtható a feloldás?"
-msgid ""
-"The lock has been cleared and all changes discarded. You may now make "
-"changes to this page."
-msgstr ""
-"A zárolás törölve lett és minden módosítás el lett dobva. Most "
-"már lehet módosítani az oldalt."
-msgid ""
-"Enabling this page will immediately make it available in your system "
-"(there is no need to wait for a save.)"
-msgstr ""
-"Az oldal engedélyezése azonnal elérhetővé teszi azt a rendszerben "
-"(nincs szükség mentésre)."
-msgid ""
-"Disabling this page will immediately make it unavailable in your "
-"system (there is no need to wait for a save.)"
-msgstr ""
-"Az oldal tiltása azonnal elérhetetlenné teszi azt a rendszerben "
-"(nincs szükség mentésre)."
-msgid "This page has no variants and thus no output of its own."
-msgstr "Ennek az oldalnak nincsenek változatai, ezért nincs saját kimenete."
-msgid "Add a new variant"
-msgstr "Új változat hozzáadása"
-msgid "Unable to disable due to lock."
-msgstr "Zárolás miatt nem tiltható le."
-msgid "Unable to enable due to lock."
-msgstr "Zárolás miatt nem engedélyezhető."
-msgid "use page manager"
-msgstr "oldalkezelő használata"
-msgid "administer page manager"
-msgstr "oldalkezelő adminisztrációja"
-msgid ""
-"Add, edit and remove overridden system pages and user defined pages "
-"from the system."
-msgstr ""
-"A rendszer felülírt rendszeroldalainak és a felhasználók által "
-"meghatározott oldalaknak a hozzáadása, szerkesztése és "
-"eltávolítása."
-msgid "Page manager"
-msgstr "Oldalkezelő"
-msgid "Provides a UI and API to manage pages within the site."
-msgstr ""
-"Egy felhasználói-, és egy API felületet biztosít a webhelyen "
-"belüli oldalak kezeléséshez."
-msgid "See the getting started guide for more information."
-msgstr "A Kezdeti segítség útmutató megtekintése a részletekért."
-msgid ""
-"Before this variant can be added, it must be configured. When you are "
-"finished, click \"Create variant\" at the end of this wizard to add "
-"this to your page."
-msgstr ""
-"A változat hozzáadása előtt ezt be kell állítani. A  "
-"befejezésekor a „Változat létrehozása” gombra kattintás "
-"befejezi a varázslót és hozzáadja a változatot az oldalhoz."
-msgid ""
-"This page is currently locked for editing by you. Nobody else may edit "
-"this page until these changes are saved or canceled."
-msgstr ""
-"Ez az oldal jelenleg zárolva van mert ön szerkeszti. Senki más nem "
-"szerkesztheti ezt az oldalt, a módosítások mentése vagy "
-"visszavonása előtt."
-msgid ""
-"This page is currently locked for editing by another user. You may not "
-"edit this page without breaking the lock."
-msgstr ""
-"Ez az oldal jelenleg zárolva van, mert egy másik felhasználó "
-"szerkeszti. A zárolás feloldása előtt nem szerkeszthető az oldal."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.pot b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.pot
deleted file mode 100644
index 427228b..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/page_manager/translations/page_manager.pot
+++ /dev/null
@@ -1,921 +0,0 @@
-# $Id: page_manager.pot,v 1.1 2009/08/16 19:13:58 hass Exp $
-#
-# LANGUAGE translation of Drupal (page_manager-plugins-tasks)
-# Copyright YEAR NAME <EMAIL at ADDRESS>
-# Generated from files:
-#  node_edit.inc,v 1.3 2009/08/04 21:43:06 merlinofchaos
-#  node_view.inc,v 1.4 2009/08/04 21:43:06 merlinofchaos
-#  page.admin.inc,v 1.16 2009/08/07 23:40:39 merlinofchaos
-#  page.inc,v 1.16 2009/08/13 23:35:26 merlinofchaos
-#  term_view.inc,v 1.5 2009/08/04 21:43:06 merlinofchaos
-#  user_view.inc,v 1.3 2009/08/04 21:43:06 merlinofchaos
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-08-16 20:47+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL at ADDRESS>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: page_manager/plugins/tasks/node_edit.inc:13;14
-msgid "Node add/edit form"
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:15
-msgid "When enabled, this overrides the default Drupal behavior for adding or edit nodes at <em>node/%node/edit</em> and <em>node/add/%node_type</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different edit forms for nodes. If no variant is selected, the default Drupal node edit will be used."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:55
-msgid "Page manager module is unable to enable node/%node/edit because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:65
-msgid "Page manager module is unable to override @path because some other module already has overridden with %callback. Node edit will be enabled but that edit path will not be overridden."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:129
-msgid "Create @name"
-msgstr ""
-
-#: page_manager/plugins/tasks/node_edit.inc:143
-msgid "Node being edited"
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:22;24
-msgid "Node template"
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying nodes at <em>node/%node</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different views of nodes. If no variant is selected, the default Drupal node view will be used. This page only affects nodes viewed as pages, it will not affect nodes viewed in lists or at other locations. Also please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at node/%node."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:66
-msgid "Page manager module is unable to enable node/%node because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/node_view.inc:118
-msgid "Node being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:196;274
-msgid "Basic settings"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:197;970;978
-msgid "Argument settings"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:198;434
-msgid "Access control"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:199
-msgid "Menu settings"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:275
-msgid "A meaningless second page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:368;1359
-msgid "The name of this page. This will appear in the administrative interface to easily identify it."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:374
-msgid "Machine name"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:375
-msgid "The machine readable name of this page. It must be unique, and it must contain only alphanumeric characters and underscores. Once created, you will not be able to change this value!"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:387
-msgid "A description of what this page is, does or is for, for administrative use."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:395
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:417
-msgid "Make this your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:418
-msgid "If this box is checked this page will become the site home page. Only paths that have no placeholders can be used as the site home page. The current site home page is set to %homepage."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:423
-msgid "This page is currently set to be your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:435
-msgid "Visible menu item"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:456
-msgid "Name is required."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:463
-msgid "That name is used by another page: @page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:468
-msgid "Page name must be alphanumeric or underscores only."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:475
-msgid "That path is used by another page: @page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:483
-msgid "Path is required."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:497
-msgid "You cannot have a dynamic path element after an optional path element."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:506
-msgid "You cannot have a static path element after an optional path element."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:517
-msgid "That path is already in used. This system cannot override existing paths."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:525
-msgid "That path is currently assigned to be an alias for @alias. This system cannot override existing aliases."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:530
-msgid "You cannot make this page your site home page if it uses % placeholders."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:538
-msgid "Duplicated argument %arg"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:543
-msgid "Invalid arg <em>%</em>. All arguments must be named with keywords."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:636
-#: page_manager/plugins/tasks/page.inc:680
-#: page_manager/plugins/tasks/term_view.inc:269
-msgid "No menu entry"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:637
-msgid "Normal menu entry"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:638;700
-msgid "Menu tab"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:639
-msgid "Default menu tab"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:648
-msgid "If set to normal or tab, enter the text to use for the menu item."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:658
-msgid "Warning: Changing this item's menu will not work reliably in Drupal 6.4 or earlier. Please upgrade your copy of Drupal at !url."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:668
-#: page_manager/plugins/tasks/page.inc:171;685
-#: page_manager/plugins/tasks/term_view.inc:272
-msgid "Menu"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:672;722
-msgid "Insert item into an available menu."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:683
-msgid "Menu selection requires the activation of menu module."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:690
-msgid "The lower the weight the higher/further left it will appear."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:698
-msgid "Parent menu item"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:700
-msgid "Already exists"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:700
-msgid "Normal menu item"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:702
-msgid "When providing a menu item as a default tab, Drupal needs to know what the parent menu item of that tab will be. Sometimes the parent will already exist, but other times you will need to have one created. The path of a parent item will always be the same path with the last part left off. i.e, if the path to this view is <em>foo/bar/baz</em>, the parent path would be <em>foo/bar</em>."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:707
-msgid "Parent item title"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:710
-msgid "If creating a parent menu item, enter the title of the item."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:718
-msgid "Parent item menu"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:735
-msgid "Tab weight"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:739
-msgid "If the parent menu item is a tab, enter the weight of the tab. The lower the number, the more to the left it will be."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:774
-msgid "Paths with non optional placeholders cannot be used as normal menu items unless the selected argument handler provides a default argument to use for the menu item."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:807
-msgid "Access rules are used to test if the page is accessible and any menu items associated with it are visible."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:848
-msgid "No context assigned"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:872
-msgid "Change"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:889
-#: page_manager/plugins/tasks/page.inc:143
-#: page_manager/plugins/tasks/term_view.inc:50;65
-msgid "Settings"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:902
-msgid "Argument"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:903
-msgid "Position in path"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:904
-msgid "Context assigned"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:923
-msgid "The path %path has no arguments to configure."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:957
-msgid "Invalid keyword."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:969
-msgid "Change context type"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:974
-msgid "Change argument"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1080
-msgid "No context selected"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1163
-msgid "Error: missing argument."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1176
-msgid "Context identifier"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1177
-msgid "This is the title of the context used to identify it later in the administrative process. This will never be shown to a user."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1183
-msgid "Error: missing or invalid argument plugin %argument."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1231
-msgid "Import page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1234;1352
-msgid "Page name"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1235
-msgid "Enter the name to use for this page if it is different from the source page. Leave blank to use the original name of the page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1241
-msgid "Enter the path to use for this page if it is different from the source page. Leave blank to use the original path of the page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1246
-msgid "Allow overwrite of an existing page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1247
-msgid "If the name you selected already exists in the database, this page will be allowed to overwrite the existing page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1252
-msgid "Paste page code here"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1258
-msgid "Import"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1274
-msgid "No handler found."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1276
-msgid "Unable to get a page from the import. Errors reported: @errors"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1287
-msgid "That page name is in use and locked by another user. You must <a href=\"!break\">break the lock</a> on that page before proceeding, or choose a different name."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1353
-msgid "Enter the name to the new page It must be unique and contain only alphanumeric characters and underscores."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1367
-msgid "The URL path to get to this page. You may create named placeholders for variable parts of the path by using %name for required elements and !name for optional elements. For example: \"node/%node/foo\", \"forum/%forum\" or \"dashboard/!input\". These named placeholders can be turned into contexts on the arguments form. You cannot use the same path as the original page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1373
-msgid "Clone variants"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1374
-msgid "If checked all variants associated with the page will be cloned as well. If not checked the page will be cloned without variants."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1482
-msgid "Reverting the page will delete the page that is in the database, reverting it to the original default page. Any changes you have made will be lost and cannot be recovered."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1485
-msgid "Are you sure you want to delete this page? Deleting a page cannot be undone."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1508
-msgid "The page has been deleted."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.admin.inc:1512
-msgid "The page has been reverted."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:22
-msgid "Custom pages"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:23
-msgid "Administrator created pages that have a URL path, access control and entries in the Drupal menu system."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:39
-msgid "Create a new page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:150
-#: page_manager/plugins/tasks/term_view.inc:68
-msgid "Basic"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:151
-#: page_manager/plugins/tasks/term_view.inc:69
-msgid "Edit name, path and other basic settings for the page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:159
-msgid "Set up contexts for the arguments on this page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:165;650
-#: page_manager/plugins/tasks/term_view.inc:264
-msgid "Access"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:166
-msgid "Control what users can access this page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:172
-msgid "Provide this page a visible menu or a menu tab."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:178
-msgid "Make a copy of this page"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:183
-msgid "Export this page as code that can be imported or embedded into a module."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:189
-msgid "Remove all changes to this page and revert to the version in code."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:196
-msgid "Remove this page from your system completely."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:574;589;629;650;685
-#: page_manager/plugins/tasks/term_view.inc:258;264;272;285;298
-msgid "page-summary-label"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:575;590;616;630;651;686
-#: page_manager/plugins/tasks/term_view.inc:259;265;273;286;299
-msgid "page-summary-data"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:576;591;617;631;652;687
-#: page_manager/plugins/tasks/term_view.inc:260;266;274;287;300
-msgid "page-summary-operation"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:589
-msgid "Status"
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:608
-msgid "This is your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:611
-msgid "This page is set to become your site home page."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:641
-msgid "Accessible only if @conditions."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:644
-#: page_manager/plugins/tasks/term_view.inc:265
-msgid "This page is publicly accessible."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:656
-msgid "No menu entry."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:657
-msgid "Normal menu entry."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:658
-msgid "Menu tab."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:659
-msgid "Default menu tab."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:665
-msgid "Title: %title."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:668
-msgid "Parent title: %title."
-msgstr ""
-
-#: page_manager/plugins/tasks/page.inc:673
-msgid "Menu block: %title."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:23;24
-msgid "Taxonomy term template"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:25
-msgid "When enabled, this overrides the default Drupal behavior for displaying taxonomy terms at <em>taxonomy/term/%term</em>. If you add variants, you may use selection criteria such as vocabulary or user access to provide different displays of the taxonomy term and associated nodes. If no variant is selected, the default Drupal taxonomy term display will be used. This page only affects items actually displayed ad taxonomy/term/%term. Some taxonomy terms, such as forums, have their displays moved elsewhere. Also please note that if you are using pathauto, aliases may make a taxonomy terms appear somewhere else, but as far as Drupal is concerned, they are still at taxonomy/term/%term."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:51
-msgid "Update settings specific to the taxonomy term view."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:101
-msgid "Page manager module is unable to enable taxonomy/term/%term because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:161
-msgid "Term(s) being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:161
-msgid "Term being viewed"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:169
-msgid "Depth"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:224
-msgid "Allow multiple terms on taxonomy/term/%term"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:225
-msgid "Single term"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:225
-msgid "Multiple terms"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:226
-msgid "By default, Drupal allows multiple terms as an argument by separating them with commas or plus signs. If you set this to single, that feature will be disabled."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:278
-msgid "Multiple terms may be used, separated by , or +."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:281
-msgid "Only a single term may be used."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:285
-msgid "%term"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:291
-msgid "Breadcrumb trail will contain taxonomy term hierarchy"
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:294
-msgid "Breadcrumb trail will not contain taxonomy term hiearchy."
-msgstr ""
-
-#: page_manager/plugins/tasks/term_view.inc:298
-msgid "Breadcrumb"
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:12;13
-msgid "User profile template"
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:14
-msgid "When enabled, this overrides the default Drupal behavior for displaying user profiles at <em>user/%user</em>. If you add variants, you may use selection criteria such as roles or user access to provide different views of user profiles. If no variant is selected, the default Drupal user view will be used. Please note that if you are using pathauto, aliases may make a node to be somewhere else, but as far as Drupal is concerned, they are still at user/%user."
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:56
-msgid "Page manager module is unable to enable user/%user because some other module already has overridden with %callback."
-msgstr ""
-
-#: page_manager/plugins/tasks/user_view.inc:97
-msgid "User being viewed"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:42
-msgid "Locked"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:42
-msgid "This page is being edited by another user and you cannot make changes to it."
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:45
-msgid "New"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:45
-msgid "This page is newly created and has not yet been saved to the database. It will not be available until you save it."
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:48
-msgid "Changed"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:48
-msgid "This page has been modified, but these modifications are not yet live. While modifying this page, it is locked from modification by other users."
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:98
-msgid "No task handlers are defined for this task."
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:102
-msgid "Variant"
-msgstr ""
-
-#: page_manager/theme/page_manager.theme.inc:124
-msgid "This page is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href=\"!break\">break this lock</a>."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:34;278
-msgid "Reset"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:71;249
-msgid "Name"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:145
-msgid "System"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:215
-msgid "<All>"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:240
-msgid "Search"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:245
-msgid "Sort by"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:247
-msgid "Enabled, title"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:259
-msgid "Order"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:261
-msgid "Up"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:262
-msgid "Down"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:271
-msgid "Apply"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:451;643
-msgid "Summary"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:452
-msgid "Get a summary of the information about this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:505
-msgid "Activate this page so that it will be in use in your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:518
-msgid "De-activate this page. The data will remain but the page will not be in use on your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:529
-msgid "Add variant"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:530
-msgid "Add a new variant to this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:535;568
-msgid "Create variant"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:540
-msgid "Import variant"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:541
-msgid "Add a new variant to this page from code exported from another page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:547
-msgid "Reorder variants"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:549
-msgid "Change the priority of the variants to ensure that the right one gets selected."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:560
-msgid "Configure a newly created variant prior to actually adding it to the page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:587;592
-msgid "Break lock"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:588
-msgid "Break the lock on this page so that you can edit it."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:611
-msgid "Variants"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:636
-msgid "Variant operations"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:644
-msgid "Get a summary of the information about this variant."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:659
-msgid "Make an exact copy of this variant."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:664
-msgid "Export this variant into code to import into another page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:670
-msgid "Remove all changes to this variant and revert to the version in code."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:680
-msgid "Remove this variant from the page completely."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:690
-msgid "Activate this variant so that it will be in use in your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:701
-msgid "De-activate this variant. The data will remain but the variant will not be in use on your system."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:713
-msgid "No variants"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:907
-msgid "This operation trail does not exist."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:924
-msgid "The page has been updated. Changes will not be permanent until you save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:941
-msgid "Unable to update changes due to lock."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1091
-msgid "This setting contains unsaved changes."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1149
-msgid "You have unsaved changes to this page. You must select Save to write them to the database, or Cancel to discard these changes. Please note that if you have changed any form, you must submit that form before saving."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1180
-msgid "All pending changes have been discarded, and the page is now unlocked."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1231
-msgid "Before this variant can be added, it must be configured. When you are finished, click \"Create variant\" at the end of this wizard to add this to your page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1296
-msgid "Administrative title of this variant. If you leave blank it will be automatically assigned."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1301
-msgid "Variant type"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1310
-msgid "Optional features"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1312
-msgid "Check any optional features you need to be presented with forms for configuring them. If you do not check them here you will still be able to utilize these features once the new page is created. If you are not sure, leave these unchecked."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1340;1496
-msgid "Variant name"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1341;1497
-msgid "Enter the name of the new variant."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1346
-msgid "Paste variant code here"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1363
-msgid "No variant found."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1366
-msgid "Unable to get a variant from the import. Errors reported: @errors"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1454
-msgid "Reverting the variant will delete the variant that is in the database, reverting it to the original default variant. This deletion will not be made permanent until you click Save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1457
-msgid "Are you sure you want to delete this variant? This deletion will not be made permanent until you click Save."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1523
-msgid "This variant is currently disabled. Enabling it will make it available in your system. This will not take effect until you save this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1542
-msgid "This variant is currently enabled. Disabling it will make it unavailable in your system, and it will not be used. This will not take effect until you save this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1574
-msgid "Breaking the lock on this page will <strong>discard</strong> any pending changes made by the locking user. Are you REALLY sure you want to do this?"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1586
-msgid "The lock has been cleared and all changes discarded. You may now make changes to this page."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1594
-msgid "Enabling this page will immediately make it available in your system (there is no need to wait for a save.)"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1621
-msgid "Disabling this page will immediately make it unavailable in your system (there is no need to wait for a save.)"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1677
-msgid "This page has no variants and thus no output of its own."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1682
-msgid "Add a new variant"
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1700
-msgid "Unable to disable due to lock."
-msgstr ""
-
-#: page_manager/page_manager.admin.inc:1703
-msgid "Unable to enable due to lock."
-msgstr ""
-
-#: page_manager/page_manager.module:42
-msgid "use page manager"
-msgstr ""
-
-#: page_manager/page_manager.module:42
-msgid "administer page manager"
-msgstr ""
-
-#: page_manager/page_manager.module:66
-msgid "Pages"
-msgstr ""
-
-#: page_manager/page_manager.module:67
-msgid "Add, edit and remove overridden system pages and user defined pages from the system."
-msgstr ""
-
-#: page_manager/page_manager.module:72
-msgid "List"
-msgstr ""
-
-#: page_manager/page_manager.module:0
-msgid "page_manager"
-msgstr ""
-
-#: page_manager/page_manager.install:222
-msgid "Panel"
-msgstr ""
-
-#: page_manager/page_manager.info:0
-msgid "Page manager"
-msgstr ""
-
-#: page_manager/page_manager.info:0
-msgid "Provides a UI and API to manage pages within the site."
-msgstr ""
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/compare_users.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/compare_users.inc
index 9e2e057..a3a192d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/compare_users.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/compare_users.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: compare_users.inc,v 1.3.2.2 2009/11/13 00:44:16 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/context_exists.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/context_exists.inc
index 64fdebb..094a109 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/context_exists.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/context_exists.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: context_exists.inc,v 1.1.2.3 2010/02/23 21:09:32 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/front.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/front.inc
new file mode 100644
index 0000000..ae3fdb3
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/front.inc
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Plugin to provide access control based on drupal_is_front_page.
+ */
+
+/**
+ * Plugins are described by creating a $plugin array which will be used
+ * by the system that includes this file.
+ */
+$plugin = array(
+  'title' => t('Front page'),
+  'description' => t('Is this the front page.'),
+  'callback' => 'ctools_front_ctools_access_check',
+  'default' => array('negate' => 0),
+  'settings form' => 'ctools_front_ctools_access_settings',
+  'summary' => 'ctools_front_ctools_access_summary',
+);
+
+/**
+ * Settings form for the 'by parent term' access plugin
+ */
+function ctools_front_ctools_access_settings(&$form, &$form_state, $conf) {
+  // No additional configuration necessary.
+}
+
+/**
+ * Check for access.
+ */
+function ctools_front_ctools_access_check($conf, $context) {
+  if (drupal_is_front_page()) {
+    return TRUE;
+  }
+  else {
+    return FALSE;
+  }
+}
+
+/**
+ * Provide a summary description based upon the checked terms.
+ */
+function ctools_front_ctools_access_summary($conf, $context) {
+  return t('The front page');
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_access.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_access.inc
index 59c641a..bdd023c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_access.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_access.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_access.inc,v 1.7.2.2 2009/11/13 00:44:16 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_language.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_language.inc
index 61972dd..73737e2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_language.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_language.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_language.inc,v 1.7.2.3 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_type.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_type.inc
index 2991307..de0d786 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_type.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/node_type.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_type.inc,v 1.7.2.2 2009/11/13 00:44:16 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/path_visibility.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/path_visibility.inc
index c887cc9..ea652c8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/path_visibility.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/path_visibility.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: path_visibility.inc,v 1.1.2.1 2010/02/23 20:58:38 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/perm.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/perm.inc
index e337807..d2023f3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/perm.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/perm.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: perm.inc,v 1.6.2.3 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/php.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/php.inc
index 0aa0ec5..80e7dd9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/php.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/php.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: php.inc,v 1.1.2.4 2010/07/15 20:41:17 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/role.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/role.inc
index d0fab03..fc61dc8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/role.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/role.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: role.inc,v 1.7.2.3 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/site_language.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/site_language.inc
index 04148ff..20ac959 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/site_language.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/site_language.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: site_language.inc,v 1.6.2.3 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_equal.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_equal.inc
index bfe7c22..a90c7c9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_equal.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_equal.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: string_equal.inc,v 1.1.2.3 2009/12/29 05:44:04 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_length.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_length.inc
index ec670e2..bca93f0 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_length.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/string_length.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: string_length.inc,v 1.1.2.2 2009/12/18 02:28:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term.inc
index 7f3aef8..ee3b410 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term.inc,v 1.1.2.6 2010/10/15 22:44:31 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_parent.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_parent.inc
index 61352d7..8587695 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_parent.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_parent.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_parent.inc,v 1.1.2.3 2010/08/20 21:05:17 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_vocabulary.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_vocabulary.inc
index 8fb79ff..bcf0908 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_vocabulary.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/term_vocabulary.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_vocabulary.inc,v 1.4.2.4 2010/07/14 01:30:19 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/theme.inc
index 36e186d..d83824e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/theme.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: theme.inc,v 1.1.2.4 2010/07/22 22:38:11 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/translations/plugins-access.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/translations/plugins-access.hu.po
deleted file mode 100644
index 2cfb5fa..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/access/translations/plugins-access.hu.po
+++ /dev/null
@@ -1,184 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:23+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Vocabularies"
-msgstr "Szótárak"
-msgid "Terms"
-msgstr "Kifejezések"
-msgid "PHP Code"
-msgstr "PHP kód"
-msgid "Permission"
-msgstr "Jogosultság"
-msgid "No language"
-msgstr "Nincs nyelv"
-msgid "Equal"
-msgstr "Egyenlő"
-msgid "User: compare"
-msgstr "Felhasználó: összehasonlítás"
-msgid "Compare two users (logged-in user and user being viewed, for example)"
-msgstr ""
-"Két felhasználó összehasonlítása (például: bejelentkezett "
-"felhasználó és megtekintett felhasználó)"
-msgid "First User"
-msgstr "Első felhasználó"
-msgid "Second User"
-msgstr "Második felhasználó"
-msgid ""
-"Grant access based on comparison of the two user contexts. For "
-"example, to grant access to a user to view their own profile, choose "
-"\"logged in user\" and \"user being viewed\" and say \"grant access if "
-"equal\". When they're the same, access will be granted."
-msgstr ""
-"Hozzáférés biztosítása két felhasználó környezeteinek "
-"összehasonlítása alapján. Például, ahhoz, hogy egy felhasználó "
-"hozzáférhessen a saját profiljához, a „bejelentkezett "
-"felhasználó”-t és a „megtekintett felhasználó”-t kell "
-"választani valamint a hozzáférés biztosítását „egyenlő”-re "
-"kell állítani."
-msgid "Grant access if user contexts are"
-msgstr "Hozzáférés biztosítása, ha a felhasználó környezetei"
-msgid "Not equal"
-msgstr "Nem egyenlő"
-msgid "@id1 @comp @id2"
-msgstr "@id1 @comp @id2"
-msgid "Node: accessible"
-msgstr "Tartalom: elérhető"
-msgid "Control access with built in Drupal node access test."
-msgstr ""
-"Hozzáférés szabályozása a Drupal beépített "
-"tartalomhozzáférés ellenőrzésével."
-msgid "Create nodes of the same type"
-msgstr "Tartalmak létrehozása ugyanabból a típusból"
-msgid ""
-"Using built in Drupal node access rules, determine if the user can "
-"perform the selected operation on the node."
-msgstr ""
-"A Drupal beépített tartalom-hozzáférési szabályainak használata "
-"annak meghatározására, hogy a felhasználó végrehajthatja-e a "
-"kiválasztott műveletet a tartalmon."
-msgid "@user can view @node."
-msgstr "@user megtekintheti ezt: @node."
-msgid "@user can edit @node."
-msgstr "@user szerkesztheti ezt: @node."
-msgid "@user can delete @node."
-msgstr "@user törölheti ezt: @node."
-msgid "@user can create nodes of the same type as @node."
-msgstr "@user létrehozhat @node típusával megegyező típusú tartalmakat."
-msgid "Node: language"
-msgstr "Tartalom: nyelv"
-msgid "Control access by node language."
-msgstr "Hozzáférés szabályozása a tartalom nyelve alapján."
-msgid "Current site language"
-msgstr "A webhely jelenlegi nyelve"
-msgid "Pass only if the node is in one of the selected languages."
-msgstr ""
-"Csak akkor sikeres, ha a tartalom az egyik kiválasztott nyelvet "
-"használja."
-msgid "@identifier is in any language"
-msgstr "@identifier bármelyik nyelven lehet"
-msgid "@identifier language is \"@languages\""
-msgid_plural "@identifier language is one of \"@languages\""
-msgstr[0] "@identifier nyelve „@languages”"
-msgstr[1] "@identifier nyelve „@languages” egyike"
-msgid "Node: type"
-msgstr "Tartalom: típus"
-msgid "Control access by node_type."
-msgstr "Hozzáférés szabályozása tartalomtípus alapján."
-msgid "Only the checked node types will be valid."
-msgstr "Csak a bejelölt tartalomtípusok lesznek érvényesek."
-msgid "@identifier is any node type"
-msgstr "@identifier bármilyen tartalomtípus lehet"
-msgid "@identifier is type \"@types\""
-msgid_plural "@identifier type is one of \"@types\""
-msgstr[0] "@identifie típusa „@types”"
-msgstr[1] "@identifier típusa „@types” egyike"
-msgid "User: permission"
-msgstr "Felhasználó: jogosultságok"
-msgid "Control access by permission string."
-msgstr "Hozzáférés szabályozása jogosultsági kifejezés alapján."
-msgid ""
-"Only users with the selected permission flag will be able to access "
-"this."
-msgstr ""
-"Csak a kiválasztott jogosultsági jelzővel rendelkező "
-"felhasználók fogják tudni elérni."
-msgid "Error, unset permission"
-msgstr "Hiba, nem beállított jogosultság"
-msgid "@identifier has \"@perm\""
-msgstr "@identifier jogosultságai: „@perm”"
-msgid "Control access through arbitrary PHP code."
-msgstr "Hozzáférés szabályozása tetszés szerinti PHP kód alapján."
-msgid "Administrative desc"
-msgstr "Adminisztratív leírás"
-msgid "A description for this test for administrative purposes."
-msgstr "Az ellenőrzés adminisztratív célú leírása."
-msgid ""
-"Access will be granted if the following PHP code returns "
-"<code>TRUE</code>. Do not include <?php ?>. Note that executing "
-"incorrect PHP-code can break your Drupal site. All contexts will be "
-"available in the <em>$contexts</em> variable."
-msgstr ""
-"A hozzáférés meg lesz adva, ha a következő PHP kód "
-"<code>IGAZ</code> értékkel tér vissza. Nem szabad használni a "
-"<?php ?>-t. Meg kell említeni, hogy a hibás PHP kód az "
-"tönkreteheti a Drupal webhelyet. Minden környezet elérhető a "
-"<em>$contexts</em> változóban."
-msgid "You do not have sufficient permissions to edit PHP code."
-msgstr "Nincs elegendő jog a PHP kód szerkesztéséhez."
-msgid "User: role"
-msgstr "Felhasználó: csoport"
-msgid "@identifier has role \"@roles\""
-msgid_plural "@identifier has one of \"@roles\""
-msgstr[0] "@identifier „@roles” csoport tagja"
-msgstr[1] "@identifier „@roles” csoportok egyikének a tagja"
-msgid "User: language"
-msgstr "Felhasználó: nyelv"
-msgid "Control access by the language the user or site currently uses."
-msgstr ""
-"A hozzáférés szabályozása a felhasználó vagy a webhely által "
-"jelenleg használt nyelv alapján."
-msgid ""
-"Pass only if the current site language is one of the selected "
-"languages."
-msgstr ""
-"Csak akkor sikeres, ha a webhely jelenlegi nyelve egyike a "
-"kiválasztott nyelveknek."
-msgid "Site language is any language"
-msgstr "Az oldal nyelve bármelyik nyelv."
-msgid "Site language is \"@languages\""
-msgid_plural "Site language is one of \"@languages\""
-msgstr[0] "A webhely nyelve „@languages”"
-msgstr[1] "A webhely nyelve „@languages” nyelvek egyike"
-msgid "Taxonomy: vocabulary"
-msgstr "Taxonómia: szótár"
-msgid "Control access by term vocabulary."
-msgstr "Hozzáférés szabályozása szótár kifejezés által."
-msgid "Only terms in the checked vocabularies will be valid."
-msgstr "Csak a kijelölt szótárak kifejezései lesznek érvényesek."
-msgid "@identifier is any vocabulary"
-msgstr "@identifier bármelyik szótár"
-msgid "@identifier vocabulary is \"@vids\""
-msgid_plural "@identifier vocabulary is one of \"@vids\""
-msgstr[0] "@identifier szótára „@vids”"
-msgstr[1] "@identifier szótára „@vids” egyike"
-msgid "Taxonomy: term"
-msgstr "Taxonómia: kifejezés"
-msgid "Control access by a specific term."
-msgstr "Hozzáférés szabályozása meghatározott kifejezés alapján."
-msgid "Select a term or terms from @vocabulary."
-msgstr "Egy vagy több kifejezés kiválasztása @vocabulary szótárból."
-msgid "@term can be the term \"@terms\""
-msgid_plural "@term can be one of these terms: @terms"
-msgstr[0] "@term lehet „@terms”"
-msgstr[1] "@term ezen kifejezések egyike lehet: @terms"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/nid.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/nid.inc
index 47ec93f..9834260 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/nid.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/nid.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: nid.inc,v 1.8.2.3 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_add.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_add.inc
index 4a40581..c811311 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_add.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_add.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_add.inc,v 1.3.2.4 2010/10/15 22:56:47 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_edit.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_edit.inc
index db34693..c7cdf29 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_edit.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/node_edit.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_edit.inc,v 1.5.2.3 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/rid.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/rid.inc
index a5314e7..00e34d4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/rid.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/rid.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: rid.inc,v 1.1.2.1 2010/10/15 21:12:58 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/string.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/string.inc
index 0acad64..73e9eda 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/string.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/string.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: string.inc,v 1.3.2.3 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/term.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/term.inc
index eead2c9..feb3984 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/term.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/term.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term.inc,v 1.6.2.4 2010/07/05 19:22:35 merlinofchaos Exp $
 
 /**
  * @file
@@ -131,7 +130,7 @@ function ctools_term_ctools_argument_placeholder($conf) {
  * Inject the breadcrumb trail if necessary.
  */
 function ctools_term_breadcrumb($conf, $context) {
-  if (empty($conf['breadcrumb'])) {
+  if (empty($conf['breadcrumb']) || empty($context->data) || empty($context->data->tid)) {
     return;
   }
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/terms.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/terms.inc
index 529a5b2..05d75f4 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/terms.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/terms.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: terms.inc,v 1.3.2.3 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/translations/plugins-arguments.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/translations/plugins-arguments.hu.po
deleted file mode 100644
index 14e79ab..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/translations/plugins-arguments.hu.po
+++ /dev/null
@@ -1,108 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 13:23+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Node: ID"
-msgstr "Tartalom: azonosító"
-msgid "Argument type"
-msgstr "Argumentumtípus"
-msgid "User: ID"
-msgstr "Felhasználó: azonosító"
-msgid "Creates a node context from a node ID argument."
-msgstr ""
-"Tartalomkörnyezet létrehozása egy tartalomazonosító "
-"argumentumból."
-msgid "Creates a node add form context from a node type argument."
-msgstr ""
-"Tartalom hozzáadása űrlap létrehozása egy tartalomtípus "
-"argumentumból."
-msgid "Creates a node edit form context from a node ID argument."
-msgstr ""
-"Tartalom szerkesztése űrlap létrehozása egy node ID "
-"argumentumból."
-msgid ""
-"A string is a minimal context that simply holds a string that can be "
-"used for some other purpose."
-msgstr ""
-"A kifejezés egy egyszerű környezet ami más célokra használható "
-"kifejezést tartalmaz."
-msgid "Enter a value for this argument"
-msgstr "Argumentum értékének megadása"
-msgid ""
-"Creates a single taxonomy term from a taxonomy ID or taxonomy term "
-"name."
-msgstr ""
-"Egy egyszerű taxonómia kifejezés létrehozása egy "
-"kifejezésazonosítóból  vagy egy kifejezés nevéből."
-msgid "Inject hierarchy into breadcrumb trail"
-msgstr "Hierarchia beillesztése a morzsasávba."
-msgid "Enter a taxonomy term ID."
-msgstr "Kifejezés azonosítójának megadása."
-msgid "Enter a taxonomy term name."
-msgstr "Kifejezés nevének megadása."
-msgid ""
-"Creates a group of taxonomy terms from a list of tids separated by a "
-"comma or a plus sign. In general the first term of the list will be "
-"used for panes."
-msgstr ""
-"Taxonómia kifejezések csopotjának létrehozása egy "
-"kifejezésazonosító listából, vesszővel vagy összeadás jellel "
-"elválasztva. Általában a lista első kifejezése lesz használva a "
-"táblában."
-msgid "Enter a term ID or a list of term IDs separated by a + or a ,"
-msgstr ""
-"Egy vagy több kifejezésazonosító listájának megadása, „+” "
-"vagy „,” jellel elválasztva."
-msgid "Creates a user context from a user ID argument."
-msgstr ""
-"Felhasználói környezet hoz létre egy felhasználói azonosító "
-"argumentumból."
-msgid "Enter the user ID of a user for this argument"
-msgstr "A felhasználó azonosítójának megadása ehhez az argumentumhoz."
-msgid "Creates a vocabulary context from a vocabulary ID argument."
-msgstr ""
-"Egy szótár környezet hoz létre egy szótárazonosíŧó "
-"argumentumból."
-msgid "Enter the vocabulary ID for this argument"
-msgstr "Szótárazonosító megadása ehhez az argumentumhoz."
-msgid "Node add form: node type"
-msgstr "Tartalom hozzáadása űrlap: tartalomtípus"
-msgid "Node edit form: node ID"
-msgstr "Tartalom szerkesztése űrlap: tartalomazonosító"
-msgid "Get all arguments after this one"
-msgstr "Összes argumentum elhelyezése ez után"
-msgid ""
-"If checked, this string will include all arguments. For example, if "
-"the path is \"path/%\" and the user visits \"path/foo/bar\", if this "
-"is not checked the string will be \"foo\". If it is checked the string "
-"will be \"foo/bar\"."
-msgstr ""
-"Ha be van jelölve, ez a karaktersorozat minden argumentumot "
-"tartalmazni fog. Például ha az elérési út „path/%” és a "
-"felhasználó meglátogatja a „path/foo/bar”  oldalt, akkor ha "
-"nincs bejelölve, a karaktersorozat „foo” lesz. Ha be van jelölve "
-"a karaktersorozat „foo/bar” lesz."
-msgid "Taxonomy term: ID"
-msgstr "Taxonómia kifejezés: ID"
-msgid "Taxonomy term (multiple): ID"
-msgstr "Taxonómia kifejezés (több): azonosító"
-msgid "User: name"
-msgstr "Felhasználó: név"
-msgid "Creates a user context from a user name."
-msgstr "Felhasználói környezet létrehozása egy felhasználói névből."
-msgid "Enter the username of a user for this argument"
-msgstr ""
-"Egy felhasználó felhasználónevének megadása ehhez az "
-"argumentumhoz."
-msgid "Vocabulary: ID"
-msgstr "Szótár: azonosító"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/uid.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/uid.inc
index 68c6a05..0064ff3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/uid.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/uid.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: uid.inc,v 1.9.2.2 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/user_name.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/user_name.inc
index 78c457b..58c7f9c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/user_name.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/user_name.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_name.inc,v 1.1.2.2 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/vid.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/vid.inc
index 8813038..1b81347 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/vid.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/arguments/vid.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: vid.inc,v 1.4.2.3 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/block.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/block.inc
index 442a4ed..30caaf9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/block.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/block.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: block.inc,v 1.9.2.7 2010/05/18 17:44:17 sdboyer Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/translations/plugins-content_types-block.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/translations/plugins-content_types-block.hu.po
deleted file mode 100644
index c375de6..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/block/translations/plugins-content_types-block.hu.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:48+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Block"
-msgstr "Blokk"
-msgid "Feeds"
-msgstr "Hírcsatornák"
-msgid "Activity"
-msgstr "Tevékenység"
-msgid "Configure block"
-msgstr "Blokk beállítása"
-msgid "Menus"
-msgstr "Menük"
-msgid "Miscellaneous"
-msgstr "Egyéb"
-msgid "Deleted/missing block @module- at delta"
-msgstr "Törölt/hiányzó @module- at delta blokk"
-msgid ""
-"Configure this block's 'block settings' in administer >> site building "
-">> blocks"
-msgstr ""
-"Ennek a blokknak a beállításait az Adminisztráció\r\n"
-" >> Webhelyépítés >> Blokkok oldalon lehet módosítani"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/contact.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/contact.inc
index 7603763..8603814 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/contact.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/contact.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: contact.inc,v 1.1.2.2 2010/01/29 20:18:25 merlinofchaos Exp $
 
 if (module_exists('contact')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/translations/plugins-content_types-contact.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/translations/plugins-content_types-contact.hu.po
deleted file mode 100644
index 4cd35aa..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/translations/plugins-content_types-contact.hu.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 07:50+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "User contact form"
-msgstr "Felhasználói kapcsolatfelvételi űrlap"
-msgid "Contact"
-msgstr "Kapcsolat"
-msgid "Contact form"
-msgstr "Kapcsolatfelvételi űrlap"
-msgid ""
-"The site contact form that allows users to send a message to site "
-"administrators."
-msgstr ""
-"A webhely kapcsolatfelvételi űrlapja, amely lehetővé teszi, hogy a "
-"felhasználók üzenetet küldjenek a webhely adminisztrátorainak."
-msgid "The site contact form that allows users to contact other users."
-msgstr ""
-"A webhely kapcsolatfelvételi űrlapja, amely lehetővé teszi, hogy a "
-"felhasználók felvegyék a kapcsolatot más felhasználókkal."
-msgid "Contact @name"
-msgstr "Kapcsolatfelvétel @name felhasználóval"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/user_contact.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/user_contact.inc
index f31de33..7f006f5 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/user_contact.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/contact/user_contact.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_contact.inc,v 1.1.2.2 2010/01/29 20:18:25 merlinofchaos Exp $
 
 if (module_exists('contact')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/custom.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/custom.inc
index 366721b..c4a45be 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/custom.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/custom.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: custom.inc,v 1.9.2.15 2010/10/19 21:27:41 merlinofchaos Exp $
 
 /**
  * @file
@@ -174,6 +173,17 @@ function ctools_custom_content_type_render($subtype, $conf, $args, $contexts) {
     $content = ctools_context_keyword_substitute($content, array(), $contexts);
   }
 
+  if ($settings['custom_type'] == 'fixed' && user_access('administer custom content')) {
+    $block->admin_links = array(
+      array(
+        'title' => t('Configure content pane'),
+        'alt' => t("Configure this pane in administer >> site building >> custom content panes"),
+        'href' => 'admin/build/ctools-content/list/' . $settings['content']->name . '/edit',
+        'query' => drupal_get_destination(),
+      ),
+    );
+  }
+
   $block->content = check_markup($content, $settings['format'], FALSE);
   return $block;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/translations/plugins-content_types-custom.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/translations/plugins-content_types-custom.hu.po
deleted file mode 100644
index 8e21689..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/custom/translations/plugins-content_types-custom.hu.po
+++ /dev/null
@@ -1,40 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 10:48+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Body"
-msgstr "Törzs"
-msgid "Value"
-msgstr "Érték"
-msgid "New custom content"
-msgstr "Új egyedi tartalom"
-msgid "Create a completely custom piece of HTML content."
-msgstr "Egy teljesen egyedi HTML tartalom létrehozása."
-msgid "Use context keywords"
-msgstr "Környezetkulcsszavak használata"
-msgid "If checked, context keywords will be substituted in this content."
-msgstr ""
-"Ha be van jelölve, a környezetkulcsszavak behelyettesíthetőek "
-"lesznek ebbe a tartalomba."
-msgid "Substitutions"
-msgstr "Helyettesítések"
-msgid "@identifier: @title"
-msgstr "@identifier: @title"
-msgid "Custom: @title"
-msgstr "Egyedi: @title"
-msgid ""
-"This title will be used administratively to identify this pane. If "
-"blank, the regular title will be used."
-msgstr ""
-"A cím adminisztratív célból lesz használva a tábla "
-"azonosításához. Ha üres, akkor a rendes cím lesz használva."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/form.inc
index 6be03f5..15bb909 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: form.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/translations/plugins-content_types-form.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/translations/plugins-content_types-form.hu.po
deleted file mode 100644
index 0f3425b..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/form/translations/plugins-content_types-form.hu.po
+++ /dev/null
@@ -1,22 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-12 20:02+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "General form"
-msgstr "Általános űrlap"
-msgid "Form goes here."
-msgstr "Ide jön az űrlap."
-msgid "\"@s\" base form"
-msgstr "„@s” alap űrlap"
-msgid "Everything in the form that is not displayed by other content."
-msgstr "Minden az űrlapon, amit más környezetek nem jelenítenek meg."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/node.inc
index 77e7adc..a1507a5 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node.inc,v 1.6.2.6 2010/07/26 17:34:20 merlinofchaos Exp $
 
 /**
  * @file
@@ -78,11 +77,11 @@ function ctools_node_content_type_render($subtype, $conf, $panel_args) {
   $block->module = 'node';
   $block->delta = $node->nid;
 
+  // Set block->title to the plain node title, then additionally set block->title_link to
+  // the node url if required. The actual link is rendered in ctools_content_render().
+  $block->title = check_plain($node->title);
   if (!empty($conf['link_node_title'])) {
-    $block->title = l($node->title, 'node/' . $node->nid);
-  }
-  else {
-    $block->title = check_plain($node->title);
+    $block->title_link = 'node/' . $node->nid;
   }
 
   if (empty($conf['leave_node_title'])) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/translations/plugins-content_types-node.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/translations/plugins-content_types-node.hu.po
deleted file mode 100644
index d13fd24..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node/translations/plugins-content_types-node.hu.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-10 10:17+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Add a node from your site as content."
-msgstr "A webhely egy tarlamának hozzáadása tartalomként."
-msgid ""
-"To use a NID from the URL, you may use %0, %1, ..., %N to get URL "
-"arguments. Or use @0, @1, @2, ..., @N to use arguments passed into the "
-"panel."
-msgstr ""
-"A webcímben található tartalomazonosító kinyeréséhez a %0, %1, "
-"..., %N hasznáható, illetve @0, @1, @2, ..., @N a panelnak átadott "
-"argumentumok használatához."
-msgid "Invalid node"
-msgstr "Érvénytelen tartalom"
-msgid "Node loaded from @var"
-msgstr "A tartalom betöltve innen: @var"
-msgid "Deleted/missing node @nid"
-msgstr "Törölt/hiányzó tartalom @nid"
-msgid "Existing node"
-msgstr "Létező tartalom"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_attachments.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_attachments.inc
index 1ff6a3b..85db862 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_attachments.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_attachments.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_attachments.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_author.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_author.inc
index 743ed47..80aeec9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_author.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_author.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_author.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_body.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_body.inc
index 29f1f38..1ca3205 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_body.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_body.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_body.inc,v 1.2.2.2 2010/07/24 18:01:11 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_book_nav.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_book_nav.inc
index e498ac0..b489af5 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_book_nav.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_book_nav.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_book_nav.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 if (module_exists('book')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comment_form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comment_form.inc
index 8e3ebab..5ed6514 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comment_form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comment_form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_comment_form.inc,v 1.1.2.3 2010/07/23 22:56:22 merlinofchaos Exp $
 
 if (module_exists('comment')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comments.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comments.inc
index 3cbdf3a..8b1c13e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comments.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_comments.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_comments.inc,v 1.2.2.7 2010/10/29 20:13:15 merlinofchaos Exp $
 
 if (module_exists('comment')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_content.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_content.inc
index c5afa6c..4a5b003 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_content.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_content.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_content.inc,v 1.4.2.3 2010/07/26 17:34:20 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_created.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_created.inc
index 5dedfdc..b4beb2b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_created.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_created.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_created.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_links.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_links.inc
index 8fc0420..5fe81c3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_links.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_links.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_links.inc,v 1.2.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_terms.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_terms.inc
index c6ef726..8fb5939 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_terms.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_terms.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_terms.inc,v 1.1.2.1 2010/05/19 18:12:33 sdboyer Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_title.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_title.inc
index a87202a..e6a0197 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_title.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_title.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_title.inc,v 1.2.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_type_desc.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_type_desc.inc
index 2ae6622..83e757f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_type_desc.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_type_desc.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_type_desc.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_updated.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_updated.inc
index b9a6811..5c77d6a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_updated.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/node_updated.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_updated.inc,v 1.1.2.2 2010/05/28 00:38:52 sdboyer Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/translations/plugins-content_types-node_context.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/translations/plugins-content_types-node_context.hu.po
deleted file mode 100644
index 0f00670..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_context/translations/plugins-content_types-node_context.hu.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-13 12:50+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Author"
-msgstr "Szerző"
-msgid "Comments"
-msgstr "Hozzászólások"
-msgid "Comment form"
-msgstr "Hozzászólás űrlap"
-msgid "Node links"
-msgstr "Tartalom hivatkozások"
-msgid "Mode"
-msgstr "Mód"
-msgid "Created date"
-msgstr "Létrehozás dátuma"
-msgid "Link to node"
-msgstr "Hivatkozás tartalomra"
-msgid "Node body"
-msgstr "Tartalom törzse"
-msgid "Node type description"
-msgstr "Tartalom típusának leírása"
-msgid "Attached files"
-msgstr "Csatolt fájlok"
-msgid "Attached files go here."
-msgstr "Ide jönnek a csatolt fájlok."
-msgid "A list of files attached to the node."
-msgstr "Egy lista a tartalomhoz csatolt fájlokról."
-msgid "\"@s\" attachments"
-msgstr "„@s” csatolmány"
-msgid "Book navigation"
-msgstr "Könyv navigáció"
-msgid "Book navigation goes here."
-msgstr "Ide jön a könyv navigációja."
-msgid "\"@s\" book navigation"
-msgstr "„@s” könyv navigáció"
-msgid "Add comment"
-msgstr "Új hozzászólás"
-msgid "Comment form here."
-msgstr "Ide jön a hozzászólás űrlapja."
-msgid "A form to add a new comment."
-msgstr "Egy űrlap új hozzászólás hozzáadásához."
-msgid "\"@s\" comment form"
-msgstr "„@s” hozzászólás űrlap"
-msgid "Node comments"
-msgstr "Tartalom hozzászólásai"
-msgid "Node comments go here."
-msgstr "Ide jönnek a tartalom hozzászólásai."
-msgid "The comments of the referenced node."
-msgstr "A hivatkozott tartalom hozzászólásai."
-msgid "Sort"
-msgstr "Sorbarendezés"
-msgid "!a comments per page"
-msgstr "!a hozzászólás egy oldalon"
-msgid "Pager"
-msgstr "Lapozó"
-msgid "\"@s\" comments"
-msgstr "„@s” hozzászólásai"
-msgid "Node content"
-msgstr "Tartalom"
-msgid "The content of the referenced node."
-msgstr "A hivatkozott tartalom tartalma."
-msgid "Node content goes here."
-msgstr "Ide jön a tartalom."
-msgid "No extras"
-msgstr "Nincsenek extrák"
-msgid ""
-"Check here to disable additions that modules might make to the node, "
-"such as file attachments and CCK fields; this should just display the "
-"basic teaser or body."
-msgstr ""
-"Bejelölve letiltja a modulok által a tartalomhoz biztosított olyan "
-"kiegészítéseket, mint a csatolt fájlok és a CCK mezők; ez csak "
-"az alap bevezetőt és törzset jeleníti meg."
-msgid "\"@s\" content"
-msgstr "„@s” tartalom"
-msgid "Node type description goes here."
-msgstr "Ide jön a tartalom típusának leírása."
-msgid "Node type description."
-msgstr "Tartalom típusának leírása."
-msgid "\"@s\" type description"
-msgstr "„@s” típusleírás"
-msgid "The author of the referenced node."
-msgstr "A hivatkozott tartalom szerzője."
-msgid "Link to author profile"
-msgstr "Hivatkozás a szerző profiljára"
-msgid "Check here to link to the node author profile."
-msgstr ""
-"Be kell jelölni a tartalom szerzőjének profiljára történő "
-"hivatkozáshoz."
-msgid "\"@s\" author"
-msgstr "„@s”  szerző"
-msgid "The body of the referenced node."
-msgstr "A hivatkozott tartalom törzse."
-msgid "\"@s\" body"
-msgstr "„@s” törzs"
-msgid "The navigation menu the book the node belongs to."
-msgstr "A tartalomhoz tartozó könyv navigációs menü."
-msgid "Node created date"
-msgstr "Tartalom létrehozásának dátuma"
-msgid "The date the referenced node was created."
-msgstr "Az a dátum amikor a hivatkozott tartalom létrejött."
-msgid "\"@s\" created date"
-msgstr "„@s” létrehozás dátuma"
-msgid "Node links of the referenced node."
-msgstr "A hivatkozott tartalom tartalomhivatkozásai."
-msgid "Node links go here."
-msgstr "Ide jönnek a tartalom hivatkozások."
-msgid "Teaser mode"
-msgstr "Bevezető mód"
-msgid "Check here to show links in teaser mode."
-msgstr ""
-"Be kell jelölni, hogy a hivatkozások megjelenjenek előnézeti "
-"módban."
-msgid ""
-"Whatever is placed here will appear in $node->panel_identifier to help "
-"theme node links displayed on the panel"
-msgstr ""
-"Bármi kerül ide, meg fog jelenni a $node->panel_identifier "
-"változóban, hogy segítse a smink tartalomhivatkozásainak "
-"megjelenítését a panelen."
-msgid "\"@s\" links"
-msgstr "„@s” hivatkozás"
-msgid "The title of the referenced node."
-msgstr "A hivatkozott tartalom címe."
-msgid "\"@s\" title"
-msgstr "„@s” cím"
-msgid "Node last updated date"
-msgstr "Tartalom utolsó frissítésének dátuma"
-msgid "The date the referenced node was last updated."
-msgstr "Az a dátum amikor a hivatkozott tartalom utoljára frissítve lett."
-msgid "Last updated date"
-msgstr "Utolsó frissítés dátuma"
-msgid "\"@s\" last updated date"
-msgstr "„@s” utolsó módosításának dátuma"
-msgid "Treat this as the primary node page"
-msgstr "Elsődleges tartalomoldalként kezelés"
-msgid "This can affect title rendering and breadcrumbs from some node types."
-msgstr ""
-"Befolyásolhatja néhány tartalomtípusnál a cím létrehozását "
-"és a morzsát."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_attachments.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_attachments.inc
index 58645da..c6e7d29 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_attachments.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_attachments.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_attachments.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('upload')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_author.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_author.inc
index fa57850..7efc53c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_author.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_author.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_author.inc,v 1.1.2.3 2010/07/05 19:36:17 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_book.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_book.inc
index 42655b4..b3c0b5d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_book.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_book.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_book.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('book')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_buttons.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_buttons.inc
index 7cc6b04..c980f34 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_buttons.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_buttons.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_buttons.inc,v 1.1.2.2 2010/07/05 19:34:34 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_comment.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_comment.inc
index 2369a5c..c182b07 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_comment.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_comment.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_comment.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('comment')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_input_format.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_input_format.inc
index 59a2ac9..9b23b4e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_input_format.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_input_format.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_input_format.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_log.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_log.inc
index 61222be..c7f5f5b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_log.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_log.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_log.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_menu.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_menu.inc
index c27e33a..57ff373 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_menu.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_menu.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_menu.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('menu')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_path.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_path.inc
index 365a3c0..f245698 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_path.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_path.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_path.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('path')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_publishing.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_publishing.inc
index 43ae009..4ce6833 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_publishing.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_publishing.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_publishing.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_taxonomy.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_taxonomy.inc
index 482c45e..5b3b8bc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_taxonomy.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/node_form_taxonomy.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_form_taxonomy.inc,v 1.1.2.2 2010/04/14 21:02:12 merlinofchaos Exp $
 
 if (module_exists('taxonomy')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/translations/plugins-content_types-node_form.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/translations/plugins-content_types-node_form.hu.po
deleted file mode 100644
index 5412401..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/node_form/translations/plugins-content_types-node_form.hu.po
+++ /dev/null
@@ -1,112 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 11:01+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Categories"
-msgstr "Kategóriák"
-msgid "Authoring information"
-msgstr "Szerzői információk"
-msgid "Publishing options"
-msgstr "Közzétételi beállítások"
-msgid "Attach files"
-msgstr "Fájlok csatolása"
-msgid "Node form publishing options"
-msgstr "Tartalom űrlap közzétételi beállítások"
-msgid "Node form author information"
-msgstr "Tartalom űrlap szerzői információ"
-msgid "Author information on the Node form."
-msgstr "Szerzői információ a tartalom űrlapon."
-msgid "Node form input format"
-msgstr "Tartalom űrlap beviteli forma"
-msgid "Input format for the body field on a node."
-msgstr "A törzs mező beviteli formája egy tartalomban."
-msgid "Node form comment settings"
-msgstr "Tartalom űrlap hozzászólás beállítások"
-msgid "Comment settings on the Node form."
-msgstr "Hozzászólás beállítások a tartalom űrlapon."
-msgid "Node form menu settings"
-msgstr "Tartalom űrlap menü beállítások"
-msgid "Node form file attachments"
-msgstr "Tartalom űrlap csatolmányok"
-msgid "File attachments on the Node form."
-msgstr "Csatolmányok a tartalom űrlapon."
-msgid "Node form categories"
-msgstr "Tartalom űrlap kategóriák"
-msgid "Taxonomy categories for the node."
-msgstr "Taxonómia kategóriák a tartalomhoz."
-msgid "Node form book options"
-msgstr "Tartalom űrlap könyvvázlat beállítások"
-msgid "Book options for the node."
-msgstr "Könyvvázlat beállítások a tartalomhoz."
-msgid "Publishing options."
-msgstr "Közzétételi beállítások."
-msgid "Comment options"
-msgstr "Hozzászólás beállítások"
-msgid "Comment options."
-msgstr "Hozzászólás beállítások."
-msgid "Authoring information."
-msgstr "Szerzői információk."
-msgid "Menu options"
-msgstr "Menü beállítások"
-msgid "Menu options."
-msgstr "Menü beállítások."
-msgid "URL path options"
-msgstr "Webcímútvonal beállítások"
-msgid "URL Path options."
-msgstr "Webcímútvonal beállítások."
-msgid "Attach files."
-msgstr "Fájlok csatolása."
-msgid "Categories."
-msgstr "Kategóriák."
-msgid "Book options"
-msgstr "Könyvvázlat beállítások"
-msgid "Book options."
-msgstr "Könyvvázlat beállítások."
-msgid "Input format."
-msgstr "Beviteli forma."
-msgid "\"@s\" node form attach files"
-msgstr "„@s” tartalom űrlap csatolmányai"
-msgid "\"@s\" node form publishing options"
-msgstr "„@s” tartalom űrlap közzétételi beállítások"
-msgid "\"@s\" node form book options"
-msgstr "„@s” tartalom űrlap könyvvázlat beállítások"
-msgid "Node form submit buttons"
-msgstr "Tartalom űrlap beküldési nyomógombok"
-msgid "Submit buttons for the node form."
-msgstr "Beküldési nyomógombok a tartalom űrlaphoz."
-msgid "Node form buttons."
-msgstr "Tartalom űrlap nyomógombok."
-msgid "\"@s\" node form submit buttons"
-msgstr "„@s” tartalom űrlap beküldési nyomógombok"
-msgid "\"@s\" node form comment settings"
-msgstr "„@s” tartalom űrlap hozzászólás beállítások"
-msgid "\"@s\" node form input format"
-msgstr "„@s” tartalom űrlap beviteli forma"
-msgid "Node form revision log message"
-msgstr "Tartalom űrlap változatinformáció üzenet"
-msgid "Revision log message for the node."
-msgstr "Változatinformáció üzenet a tartalomhoz."
-msgid "\"@s\" node form revision log"
-msgstr "„@s” tartalom űrlap változatinformáció"
-msgid "Menu settings on the Node form."
-msgstr "Menü beállítások a tartalom űrlapon."
-msgid "\"@s\" node form menu settings"
-msgstr "„@s” tartalom űrlap menü beállítások"
-msgid "Node form url path settings"
-msgstr "Tartalom űrlap webcímútvonal beállítások"
-msgid "\"@s\" node form path options"
-msgstr "„@s” tartalom űrlap útvonal beállítások"
-msgid "\"@s\" node form author information"
-msgstr "„@s” tartalom űrlap szerzői információk"
-msgid "\"@s\" node form select taxonomy"
-msgstr "„@s” tartalom űrlap taxonómia kiválasztása"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_breadcrumb.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_breadcrumb.inc
index 36dbbc8..ebec681 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_breadcrumb.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_breadcrumb.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_breadcrumb.inc,v 1.1.2.3 2010/02/03 01:18:58 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_feed_icons.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_feed_icons.inc
index 62c24e4..0dba317 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_feed_icons.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_feed_icons.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_feed_icons.inc,v 1.1.2.1 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_footer_message.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_footer_message.inc
index c7e70df..369e744 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_footer_message.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_footer_message.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_footer_message.inc,v 1.1.2.2 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_help.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_help.inc
index 3f864af..da1abe6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_help.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_help.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_help.inc,v 1.1.2.2 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_logo.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_logo.inc
index de80493..c00ca5e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_logo.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_logo.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_logo.inc,v 1.1.2.1 2010/02/08 20:37:11 merlinofchaos Exp $
 
 /**
  * @file
@@ -27,8 +26,9 @@ $plugin = array(
  */
 function ctools_page_logo_content_type_render($subtype, $conf, $panel_args) {
   $logo = theme_get_setting('logo');
+  $block = new stdClass();
+
   if (!empty($logo)) {
-    $block = new stdClass();
     $image = '<img src="' . $logo . '" alt="' . t('Home') . '" />';
     $block->content = l($image, '', array('html' => TRUE, 'attributes' => array('rel' => 'home', 'id' => 'logo', 'title' => t('Home'))));
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_messages.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_messages.inc
index 2a995fc..e2fe37b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_messages.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_messages.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_messages.inc,v 1.1.2.2 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_mission.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_mission.inc
index c719b6f..5fb5002 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_mission.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_mission.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_mission.inc,v 1.1.2.2 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_primary_links.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_primary_links.inc
index ae34301..1754f34 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_primary_links.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_primary_links.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_primary_links.inc,v 1.1.2.1 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_secondary_links.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_secondary_links.inc
index ac15ce8..c0dd638 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_secondary_links.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_secondary_links.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_secondary_links.inc,v 1.1.2.1 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_site_name.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_site_name.inc
index 68334f3..99501f2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_site_name.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_site_name.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_site_name.inc,v 1.1.2.1 2010/02/08 20:37:11 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_slogan.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_slogan.inc
index c2b298f..58f913f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_slogan.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_slogan.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_slogan.inc,v 1.1.2.2 2010/02/02 21:49:21 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_tabs.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_tabs.inc
index 663d21e..eed9663 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_tabs.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_tabs.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_tabs.inc,v 1.1.2.3 2010/02/03 01:18:58 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_title.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_title.inc
index c804261..bba6209 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_title.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/page_title.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: page_title.inc,v 1.1.2.4 2010/07/05 21:14:07 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/translations/plugins-content_types-page.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/translations/plugins-content_types-page.hu.po
deleted file mode 100644
index 207e9ce..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/page/translations/plugins-content_types-page.hu.po
+++ /dev/null
@@ -1,44 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 08:03+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Help"
-msgstr "Súgó"
-msgid "Page title"
-msgstr "Oldal címe"
-msgid "Mission"
-msgstr "Küldetés"
-msgid "Tabs"
-msgstr "Fülek"
-msgid "Site Slogan"
-msgstr "Jelmondat"
-msgid "Add the breadcrumb trail as content."
-msgstr "A morzsasáv hozzáadása tartalomként."
-msgid "Add the help text of the current page as content."
-msgstr "Az aktuális oldal súgószövegének hozzáadása tartalomként."
-msgid "Status messages"
-msgstr "Állapotüzenetek"
-msgid "Add the status messages of the current page as content."
-msgstr "Az aktuális oldal állapotüzeneteinek hozzáadása tartalomként."
-msgid "Add the site mission statement as content."
-msgstr "A webhely céljainak hozzáadása tartalomként."
-msgid "Add the slogan trail as content."
-msgstr "A jelmondat sáv hozzáadása tartalomként."
-msgid "Add the tabs (local tasks) as content."
-msgstr "A fülek (helyi feladatok) hozzáadása tartalomként."
-msgid "Add the page title as content."
-msgstr "Az oldal címének hozzáadása tartalomként."
-msgid "Page footer message"
-msgstr "Oldal lábléc üzenete"
-msgid "Add the page footer message as content."
-msgstr "Az oldal láblécüzenetének hozzáadása tartalomként."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_form.inc
index 7b00a1a..a142256 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: search_form.inc,v 1.1.2.2 2010/01/29 20:18:25 merlinofchaos Exp $
 
 if (module_exists('search')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_result.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_result.inc
index f259e47..c96dff9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_result.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/search_result.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: search_result.inc,v 1.1.2.4 2010/07/22 22:26:04 merlinofchaos Exp $
 
 if (module_exists('search')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/translations/plugins-content_types-search.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/translations/plugins-content_types-search.hu.po
deleted file mode 100644
index 10c1a56..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/search/translations/plugins-content_types-search.hu.po
+++ /dev/null
@@ -1,63 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-12 15:24+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "results"
-msgstr "találatok"
-msgid "search"
-msgstr "keresés"
-msgid "Advanced"
-msgstr "Haladó"
-msgid "Search results"
-msgstr "Találatok"
-msgid "Your search yielded no results"
-msgstr "Nincs találat."
-msgid "Simple"
-msgstr "Egyszerű"
-msgid "%keys (@type)."
-msgstr "%keys (@type)."
-msgid "Search form"
-msgstr "Keresés űrlap"
-msgid "Advanced search form"
-msgstr "Haladó keresés űrlap"
-msgid "A search form with advanced options."
-msgstr "Egy keresés űrlap haladó beállításokkal."
-msgid ""
-"The advanced form may have additional options based upon the search "
-"type. For example the advanced content (node) search form will allow "
-"searching by node type and taxonomy term."
-msgstr ""
-"A haladó űrlap további beállításokat biztosíthat a keresés "
-"típusa alapján. Például a haladó tartalom(node) keresés űrlap "
-"engedélyezi a tartalomtípus és a taxonómia kifejezés szerinti "
-"keresést."
-msgid "Same page"
-msgstr "Ugyanolyan oldal"
-msgid "Override default prompt"
-msgstr "Alapértelmezett készenléti jel felülírása"
-msgid "@type search form"
-msgstr "@type keresési űrlap"
-msgid "The results of a search using keywords."
-msgstr "A kucsszavakat használó keresés eredményei."
-msgid "Record a watchdog log entry when searches are made"
-msgstr "Keresés feljegyzése az eseménynaplóba"
-msgid "Override \"no result\" text"
-msgstr "„Nincs eredmény” szöveg felülbírálata"
-msgid "No result text"
-msgstr "Nincs eredmény szövege"
-msgid "Display text if no search keywords were submitted"
-msgstr "A megjelenített szöveg, ha nem lett keresési kulcsszó megadva"
-msgid "No keywords text"
-msgstr "Nincs kulcsszó szöveg"
-msgid "@type search result"
-msgstr "@type keresési eredmény"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_description.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_description.inc
index f1748ca..91f8804 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_description.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_description.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_description.inc,v 1.1.2.1 2010/01/29 20:18:25 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_list.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_list.inc
index 8c45fa2..901644c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_list.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/term_list.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_list.inc,v 1.3.2.3 2010/07/15 20:47:14 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/translations/plugins-content_types-term_context.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/translations/plugins-content_types-term_context.hu.po
deleted file mode 100644
index 799bbd6..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/term_context/translations/plugins-content_types-term_context.hu.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 11:02+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Related terms"
-msgstr "Kapcsolódó kifejezések"
-msgid "List type"
-msgstr "Lista típusa"
-msgid "Term description"
-msgstr "A kifejezés leírása"
-msgid "Child terms"
-msgstr "Gyerek kifejezések"
-msgid "Edit term"
-msgstr "Kifejezés szerkesztése"
-msgid "Edit this term"
-msgstr "Kifejezés szerkesztése"
-msgid "\"@s\" @type"
-msgstr "„@s” @type"
-msgid "Term description."
-msgstr "Kifejezés leírása."
-msgid "\"@s\" term description"
-msgstr "„@s” kifejezés leírása"
-msgid "List of related terms"
-msgstr "Kapcsolódó kifejezések listája"
-msgid ""
-"Terms related to an existing term; may be child, siblings or top "
-"level."
-msgstr ""
-"Egy létező kifejezéshez kapcsolódó kifejezések. Lehet gyermek, "
-"testvér vagy legfelső szintű."
-msgid "Sibling terms"
-msgstr "Testvér kifejezések"
-msgid "Top level terms"
-msgstr "Legfelső szintű kifejezés"
-msgid "Term synonyms"
-msgstr "Szinonimák"
-msgid "Which terms"
-msgstr "Mely kifejezések"
-msgid "Unordered"
-msgstr "Rendezetlen"
-msgid "Ordered"
-msgstr "Rendezett"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields.inc
index ba684f0..459ee70 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: profile_fields.inc,v 1.4.2.1 2010/01/29 20:18:26 merlinofchaos Exp $
 
 if (module_exists('profile') && !is_null(profile_categories())) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields_pane.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields_pane.tpl.php
index 375fbe0..3736812 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields_pane.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/profile_fields_pane.tpl.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: profile_fields_pane.tpl.php,v 1.1 2009/04/18 02:00:35 merlinofchaos Exp $
 /**
  * @file
  * Display profile fields.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/translations/plugins-content_types-user_context.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/translations/plugins-content_types-user_context.hu.po
deleted file mode 100644
index 9a917bb..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/translations/plugins-content_types-user_context.hu.po
+++ /dev/null
@@ -1,42 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-12-09 14:11+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "User picture"
-msgstr "Felhasználó képe"
-msgid "Profile content goes here."
-msgstr "Ide jön a profil tartalma."
-msgid "Which category"
-msgstr "Melyik kategória"
-msgid ""
-"Text to display if category has no data. Note that title will not "
-"display unless overridden."
-msgstr ""
-"A megjelenített szöveg, ha a kategória nem rendelkezik adattal. Meg "
-"kell jegyezni, hogy a cím nem fog megjelenni felülírás nélkül."
-msgid "\"@s\" profile fields"
-msgstr "„@s” profilmezők"
-msgid "The picture of a user."
-msgstr "Egy kép a felhasználóról."
-msgid "\"@s\" user picture"
-msgstr "„@s” felhasználó képe"
-msgid "User profile"
-msgstr "Felhasználói profil"
-msgid "The profile of a user."
-msgstr "Egy felhasználó profilja."
-msgid "\"@s\" user profile"
-msgstr "„@s” felhasználói profil"
-msgid "Profile category"
-msgstr "Profil kategóriája"
-msgid "Contents of a single profile category."
-msgstr "Egy egyszerű profilkategória tartalmai."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_picture.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_picture.inc
index c051ab5..978f3b5 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_picture.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_picture.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_picture.inc,v 1.3.2.1 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
@@ -16,13 +15,21 @@ $plugin = array(
 
 function ctools_user_picture_content_type_render($subtype, $conf, $panel_args, $context) {
   $account = isset($context->data) ? drupal_clone($context->data) : NULL;
-  $block = new stdClass();
-  $block->module = 'term-list';
+  global $user;
 
-  if ($account === FALSE || ($account->access == 0 && !user_access('administer users'))) {
-    return drupal_not_found();
+  if (empty($context->data)) {
+    return;
   }
 
+  $account = drupal_clone($context->data);
+
+  // Check if user has permissions to access the user
+  if ($user->uid != $account->uid && (!user_access('access user profiles') && !user_access('administer users'))) {
+    return;
+  }
+
+  $block = new stdClass();
+  $block->module = 'user-profile';
   $block->title = check_plain($account->name);
   $block->content = theme('user_picture', $account);
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_profile.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_profile.inc
index 4856fd6..7c14d42 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_profile.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_profile.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_profile.inc,v 1.7.2.1 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_signature.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_signature.inc
index c4997b6..68d5b99 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_signature.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/user_context/user_signature.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_signature.inc,v 1.1.2.1 2010/08/05 22:39:41 merlinofchaos Exp $
 
 /**
  * Plugins are described by creating a $plugin array which will be used
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/translations/plugins-content_types-vocabulary_context.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/translations/plugins-content_types-vocabulary_context.hu.po
deleted file mode 100644
index f325f6b..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/translations/plugins-content_types-vocabulary_context.hu.po
+++ /dev/null
@@ -1,36 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 11:03+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "unlimited"
-msgstr "korlátlan"
-msgid "Vocabulary terms"
-msgstr "Szótárkifejezések"
-msgid "All the terms in a vocabulary."
-msgstr "Az összes kifejezés egy szótárban."
-msgid "\"@s\" terms"
-msgstr "„@s” kifejezés"
-msgid "Maximum depth"
-msgstr "Maximális mélység"
-msgid "Define the maximum depth of terms being displayed."
-msgstr ""
-"A megjelenített kifejezések maximális mélységének "
-"meghatározása."
-msgid "Display as tree"
-msgstr "Megjelenítés fa nézetben"
-msgid ""
-"If checked, the terms are displayed in a tree, otherwise in a flat "
-"list."
-msgstr ""
-"Ha ez be van kapcsolva, akkor a kifejezések egy fában jelennek meg, "
-"különben egy egyszerű listában."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/vocabulary_terms.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/vocabulary_terms.inc
index 6bda320..0fc366b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/vocabulary_terms.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/content_types/vocabulary_context/vocabulary_terms.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: vocabulary_terms.inc,v 1.3.2.1 2010/01/29 20:18:26 merlinofchaos Exp $
 
 if (module_exists('taxonomy')) {
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node.inc
index 8ff039b..bba8311 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node.inc,v 1.11.2.5 2010/05/20 01:43:03 sdboyer Exp $
 
 /**
  * @file
@@ -28,6 +27,7 @@ $plugin = array(
     '#type' => 'textfield',
     '#description' => t('Enter the node ID of a node for this context.'),
   ),
+  'placeholder name' => 'nid',
 );
 
 /**
@@ -170,8 +170,15 @@ function ctools_context_node_convert_list() {
     'type' => t('Node type'),
   );
 
+  // Include tokens provided by token.module.
   if (module_exists('token')) {
-    $list += reset(token_get_list(array('node')));
+    foreach (token_get_list(array('node')) as $tokens) {
+      $readabletokens = array();
+    	foreach($tokens as $fieldname => $desc) {
+      	$readabletokens[$fieldname] = $fieldname . ': ' . $desc;
+      }
+      $list += $readabletokens;
+    }
   }
 
   return $list;
@@ -193,9 +200,12 @@ function ctools_context_node_convert($context, $type) {
     case 'type':
       return $context->data->type;
   }
+
+  // Check if token.module can provide the replacement.
   if (module_exists('token')) {
     $values = token_get_values('node', $context->data);
-    if ($key = array_search($type, $values->tokens)) {
+    $key = array_search($type, $values->tokens);
+    if ($key !== FALSE) {
       return $values->values[$key];
     }
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_add_form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_add_form.inc
index addaecb..c2eb3ef 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_add_form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_add_form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_add_form.inc,v 1.9.2.3 2010/07/20 20:49:21 merlinofchaos Exp $
 
 /**
  * @file
@@ -31,14 +30,14 @@ $plugin = array(
  * are not always created from the UI.
  */
 function ctools_context_create_node_add_form($empty, $data = NULL, $conf = FALSE) {
-  static $created;
+  static $creating = FALSE;
   $context = new ctools_context(array('form', 'node_add', 'node_form'));
   $context->plugin = 'node_add_form';
 
-  if ($empty || (isset($created) && $created)) {
+  if ($empty || $creating) {
     return $context;
   }
-  $created = TRUE;
+  $creating = TRUE;
 
   if ($conf && (isset($data['types']) || isset($data['type']))) {
     // Holdover from typo'd config.
@@ -79,9 +78,11 @@ function ctools_context_create_node_add_form($empty, $data = NULL, $conf = FALSE
       $context->form_title = t('Submit @name', array('@name' => $types[$type]->name));
       $context->node_type  = $type;
       $context->restrictions['type'] = array($type);
+      $creating = FALSE;
       return $context;
     }
   }
+  $creating = FALSE;
 }
 
 function ctools_context_node_add_form_settings_form($conf) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_edit_form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_edit_form.inc
index 1f9a1c3..540244e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_edit_form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/node_edit_form.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_edit_form.inc,v 1.10.2.7 2010/07/20 20:49:21 merlinofchaos Exp $
 
 /**
  * @file
@@ -35,14 +34,14 @@ $plugin = array(
  * are not always created from the UI.
  */
 function ctools_context_create_node_edit_form($empty, $node = NULL, $conf = FALSE) {
-  static $created;
+  static $creating = FALSE;
   $context = new ctools_context(array('form', 'node_edit', 'node_form', 'node', 'node_edit_form'));
   $context->plugin = 'node_edit_form';
 
-  if ($empty || (isset($created) && $created)) {
+  if ($empty || $creating) {
     return $context;
   }
-  $created = TRUE;
+  $creating = TRUE;
 
   if ($conf) {
     // In this case, $node is actually our $conf array.
@@ -85,8 +84,12 @@ function ctools_context_create_node_edit_form($empty, $node = NULL, $conf = FALS
     $context->form_title = $node->title;
     $context->node_type  = $node->type;
     $context->restrictions['type'] = array($node->type);
+    $context->restrictions['form'] = array('form');
+
+    $creating = FALSE;
     return $context;
   }
+  $creating = FALSE;
 }
 
 function ctools_context_node_edit_form_settings_form($conf) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/string.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/string.inc
index 3ba2811..c53acae 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/string.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/string.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: string.inc,v 1.5.2.3 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/term.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/term.inc
index 462ee51..1271441 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/term.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/term.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term.inc,v 1.5.2.4 2010/10/15 21:06:51 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/terms.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/terms.inc
index a9299c5..a07a6c1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/terms.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/terms.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: terms.inc,v 1.4.2.4 2010/10/15 21:06:51 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/token.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/token.inc
index ebb3334..e75916d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/token.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/token.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: token.inc,v 1.1.2.2 2010/02/23 21:00:59 merlinofchaos Exp $
 
 /**
  * @file
@@ -32,16 +31,19 @@ function ctools_context_create_token($empty, $data = NULL, $conf = FALSE) {
  * Implementation of hook_ctools_context_convert_list().
  */
 function ctools_context_token_convert_list() {
-  // Pass everything through to token_get_list().
-  return reset(token_get_list(array('global')));
+  $list = array();
+  foreach (token_get_list(array('global')) as $tokens) {
+    $list += $tokens;
+  }
+  return $list;
 }
 
 /**
  * Implementation of hook_ctools_context_converter_alter().
  */
-function ctools_context_token_convert($context, $token) {
-  $values = token_get_values();
-  $key = array_search($token, $values->tokens);
+function ctools_context_token_convert($context, $type) {
+  $values = token_get_values('global');
+  $key = array_search($type, $values->tokens);
   if ($key !== FALSE) {
     return $values->values[$key];
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/translations/plugins-contexts.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/translations/plugins-contexts.hu.po
deleted file mode 100644
index c45bfbd..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/translations/plugins-contexts.hu.po
+++ /dev/null
@@ -1,100 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 10:27+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Node ID"
-msgstr "Tartalom azonosítója"
-msgid "User ID"
-msgstr "Felhasználó ID"
-msgid "Node edit form"
-msgstr "Tartalom szerkesztése űrlap"
-msgid "Node add form"
-msgstr "Tartalom hozzádása űrlap"
-msgid "Submit @name"
-msgstr "@name beküldése"
-msgid "Taxonomy terms"
-msgstr "Taxonómia kifejezések"
-msgid "Node revision ID"
-msgstr "A tartalom változatának azonosítója"
-msgid "Vocabulary ID"
-msgstr "Szótárazonosító"
-msgid "User name"
-msgstr "Felhasználónév"
-msgid "A node object."
-msgstr "Egy tartalom objektum."
-msgid "A node add form."
-msgstr "Tartalom hozzádása űrlap"
-msgid "Select the node type for this form."
-msgstr "Tartalomtípus kiválasztása ehhez az űrlaphoz."
-msgid "A node edit form."
-msgstr "Egy tartalom szerkesztése űrlap"
-msgid "A single taxonomy term object."
-msgstr "Egy egyszerű taxonómia kifejezésobjektum."
-msgid "A single user object."
-msgstr "Egy egyszerű felhasználó objektum."
-msgid "Taxonomy vocabulary"
-msgstr "Taxonómiaszótár"
-msgid "A single taxonomy vocabulary object."
-msgstr "Egy egyszerű taxonómia szótár objektum."
-msgid "Author UID"
-msgstr "Szerző felhasználói azonosítója"
-msgid "Enter the node ID of a node for this context."
-msgstr "Egy tartalom azonosítójának megadása ehhez a környezethez."
-msgid "Enter the node type this context."
-msgstr "Tartalomtípus megadása ehhez a környezethez."
-msgid "Enter the node ID of a node for this argument:"
-msgstr "Egy tartalom azonosítójának megadása ehhez az argumentumhoz:"
-msgid "A context that is just a string."
-msgstr "A környezet azaz csak egy kifejezés."
-msgid "Raw string"
-msgstr "Nyers karaktersorozat"
-msgid "Enter the string for this context."
-msgstr "Kifejezés megadása ehhez a környezethez."
-msgid ""
-"Currently set to @term. Enter another term if you wish to change the "
-"term."
-msgstr ""
-"Currently set to @term. Enter another term if you wish to change the "
-"term."
-msgid "Select a term from @vocabulary."
-msgstr "Kifejezés kiválasztása @vocabulary szótárból."
-msgid "Reset identifier to term title"
-msgstr "Azonosító visszaállítása a kifejezés címére."
-msgid ""
-"If checked, the identifier will be reset to the term name of the "
-"selected term."
-msgstr ""
-"Ha be van jelölve, Az azonosító vissza lesz állítva a "
-"kiválasztott kifejezés kifejezés nevére."
-msgid "You must select a term."
-msgstr "Ki kell választani egy kifejezést."
-msgid "Invalid term selected."
-msgstr "Érvénytelen a kiválasztott kifejezés."
-msgid "Multiple taxonomy terms, as a group."
-msgstr "Több taxonómia kifejezés, csoportként."
-msgid "Term ID of first term"
-msgstr "Az első kifejezés azonosítója"
-msgid "Term ID of all term, separated by + or ,"
-msgstr ""
-"Az összes kifejezés azonosítója „+” vagy „,” jellel "
-"elválasztva"
-msgid "Term name of first term"
-msgstr "Az első kifejezés kifejezésneve"
-msgid "Term name of all terms, separated by + or ,"
-msgstr ""
-"Kifejezésnév minden kifejezéshez, „+” vagy „,” jellel "
-"elválasztva."
-msgid "Vocabulary ID of first term"
-msgstr "Az első kifejezés szótárazonosítója"
-msgid "HTML-safe string"
-msgstr "HTML-biztos karaktersorozat"
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/user.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/user.inc
index 79c4e66..15eb1c5 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/user.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/user.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user.inc,v 1.4.2.6 2010/08/03 18:45:21 merlinofchaos Exp $
 
 /**
  * @file
@@ -149,9 +148,14 @@ function ctools_context_user_convert_list() {
     'uid' => t('User ID'),
     'name' => t('User name'),
   );
+
+  // Include tokens provided by token.module.
   if (module_exists('token')) {
-    $list += reset(token_get_list(array('user')));
+    foreach (token_get_list(array('user')) as $tokens) {
+      $list += $tokens;
+    }
   }
+
   return $list;
 }
 
@@ -165,9 +169,12 @@ function ctools_context_user_convert($context, $type) {
     case 'name':
       return $context->data->name;
   }
+
+  // Check if token.module can provide the replacement.
   if (module_exists('token')) {
     $values = token_get_values('user', $context->data);
-    if ($key = array_search($type, $values->tokens)) {
+    $key = array_search($type, $values->tokens);
+    if ($key !== FALSE) {
       return $values->values[$key];
     }
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/vocabulary.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/vocabulary.inc
index ff2c655..1d285d8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/vocabulary.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/contexts/vocabulary.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: vocabulary.inc,v 1.3.2.3 2010/07/05 22:48:34 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.class.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.class.php
index ccd83de..f51273a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.class.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.class.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_export_ui.class.php,v 1.1.2.20 2010/10/15 21:05:55 merlinofchaos Exp $
 
 /**
  * Base class for export UI.
@@ -185,6 +184,13 @@ class ctools_export_ui {
       unset($_SESSION['ctools_export_ui'][$this->plugin['name']]['q']);
     }
 
+    // We rely on list_form_submit() to build the table rows. Clean out any
+    // AJAX markers that would prevent list_form() from automatically
+    // submitting the form.
+    if ($js) {
+      unset($input['js'], $input['ctools_ajax']);
+    }
+
     // This is where the form will put the output.
     $this->rows = array();
     $this->sorts = array();
@@ -342,6 +348,7 @@ class ctools_export_ui {
   function list_form_submit(&$form, &$form_state) {
     // Filter and re-sort the pages.
     $plugin = $this->plugin;
+    $schema = ctools_export_get_schema($this->plugin['schema']);
 
     $prefix = ctools_export_ui_plugin_base_path($plugin);
 
@@ -357,10 +364,10 @@ class ctools_export_ui {
       $allowed_operations = drupal_map_assoc(array_keys($plugin['allowed operations']));
       $not_allowed_operations = array('import');
 
-      if ($item->type == t('Normal')) {
+      if ($item->{$schema['export']['export type string']} == t('Normal')) {
         $not_allowed_operations[] = 'revert';
       }
-      elseif ($item->type == t('Overridden')) {
+      elseif ($item->{$schema['export']['export type string']} == t('Overridden')) {
         $not_allowed_operations[] = 'delete';
       }
       else {
@@ -422,7 +429,8 @@ class ctools_export_ui {
    *   TRUE if the item should be excluded.
    */
   function list_filter($form_state, $item) {
-    if ($form_state['values']['storage'] != 'all' && $form_state['values']['storage'] != $item->type) {
+    $schema = ctools_export_get_schema($this->plugin['schema']);
+    if ($form_state['values']['storage'] != 'all' && $form_state['values']['storage'] != $item->{$schema['export']['export type string']}) {
       return TRUE;
     }
 
@@ -511,8 +519,9 @@ class ctools_export_ui {
   function list_build_row($item, &$form_state, $operations) {
     // Set up sorting
     $name = $item->{$this->plugin['export']['key']};
+    $schema = ctools_export_get_schema($this->plugin['schema']);
 
-    // Note: $item->type should have already been set up by export.inc so
+    // Note: $item->{$schema['export']['export type string']} should have already been set up by export.inc so
     // we can use it safely.
     switch ($form_state['values']['order']) {
       case 'disabled':
@@ -525,7 +534,7 @@ class ctools_export_ui {
         $this->sorts[$name] = $name;
         break;
       case 'storage':
-        $this->sorts[$name] = $item->type . $name;
+        $this->sorts[$name] = $item->{$schema['export']['export type string']} . $name;
         break;
     }
 
@@ -537,7 +546,7 @@ class ctools_export_ui {
       $this->rows[$name]['data'][] = array('data' => check_plain($item->{$this->plugin['export']['admin_title']}), 'class' => 'ctools-export-ui-title');
     }
     $this->rows[$name]['data'][] = array('data' => check_plain($name), 'class' => 'ctools-export-ui-name');
-    $this->rows[$name]['data'][] = array('data' => check_plain($item->type), 'class' => 'ctools-export-ui-storage');
+    $this->rows[$name]['data'][] = array('data' => check_plain($item->{$schema['export']['export type string']}), 'class' => 'ctools-export-ui-storage');
     $this->rows[$name]['data'][] = array('data' => theme('links', $operations), 'class' => 'ctools-export-ui-operations');
 
     // Add an automatic mouseover of the description if one exists.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.inc
index c9c404c..4e0a849 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/export_ui/ctools_export_ui.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: ctools_export_ui.inc,v 1.1.2.1 2010/06/10 20:46:25 merlinofchaos Exp $
 
 /**
  * The default plugin exists only to provide the base class. Other plugins
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/book_parent.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/book_parent.inc
index 7d80969..9317048 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/book_parent.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/book_parent.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: book_parent.inc,v 1.2.2.3 2010/07/20 21:57:27 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/node_edit_form_from_node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/node_edit_form_from_node.inc
index 82d60b9..8aaaeaf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/node_edit_form_from_node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/node_edit_form_from_node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: node_edit_form_from_node.inc,v 1.1.2.1 2010/07/05 19:32:04 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_from_node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_from_node.inc
index 545e964..9bb8f2c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_from_node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_from_node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_from_node.inc,v 1.2.2.3 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_parent.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_parent.inc
index 75e4154..3ecd796 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_parent.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/term_parent.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: term_parent.inc,v 1.2.2.2 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * @file relationships/term_parent.inc
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/terms_from_node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/terms_from_node.inc
index a4ff71b..23062a1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/terms_from_node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/terms_from_node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: terms_from_node.inc,v 1.1.2.1 2010/02/23 22:09:47 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/translations/plugins-relationships.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/translations/plugins-relationships.hu.po
deleted file mode 100644
index 7ca8226..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/translations/plugins-relationships.hu.po
+++ /dev/null
@@ -1,41 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-13 13:41+0000\n"
-"PO-Revision-Date: 2009-11-30 10:28+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Book parent"
-msgstr "Szülő könyv"
-msgid "Adds a book parent from a node context."
-msgstr "Egy könyv szülőjének hozzáadása egy tartalomkörnyezetből."
-msgid "Top level book"
-msgstr "Legfelső szintű könyv"
-msgid "Term from node"
-msgstr "Kifejezés tartalomból"
-msgid ""
-"Adds a taxonomy term from a node context; if multiple terms are "
-"selected, this will get the \"first\" term only."
-msgstr ""
-"Taxónomia kifejezés hozzáadása egy tartalomkörnyezetből. Ha "
-"több kifejezés van kiválasztva, akkor csak az „elsőt” fogja "
-"megjeleníteni."
-msgid "Term parent"
-msgstr "Kifejezés szülője"
-msgid "Adds a taxonomy term parent from a term context."
-msgstr ""
-"Egy taxonómia kifejezés szülőjének hozzáadása egy "
-"kifejezéskörnyezetből."
-msgid "Top level term"
-msgstr "Legfelső szintű kifejezés"
-msgid "Creates the author of a node as a user context."
-msgstr ""
-"Egy tartalom szerzőjének létrehozása felhasználói "
-"környezetként."
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/user_from_node.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/user_from_node.inc
index c6da84c..c22df75 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/user_from_node.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/plugins/relationships/user_from_node.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: user_from_node.inc,v 1.3.2.2 2010/01/29 20:18:26 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer.inc b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer.inc
index 8b32f16..a5826b8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer.inc
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer.inc,v 1.1.2.2 2010/07/14 23:10:16 merlinofchaos Exp $
 
 $plugin = array(
   'schema' => 'stylizer',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer_ui.class.php b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer_ui.class.php
index 2e05d65..2abf697 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer_ui.class.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/plugins/export_ui/stylizer_ui.class.php
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer_ui.class.php,v 1.1.2.3 2010/08/20 22:11:40 merlinofchaos Exp $
 
 /**
  * UI class for Stylizer.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.info b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.info
index f9fa998..dd8d430 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.info
@@ -1,13 +1,12 @@
-; $Id: stylizer.info,v 1.1.2.2 2010/10/15 20:52:02 merlinofchaos Exp $
 name = Stylizer
 description = Create custom styles for applications such as Panels.
 core = 6.x
 package = Chaos tool suite
 dependencies[] = ctools
 
-; Information added by drupal.org packaging script on 2010-10-29
-version = "6.x-1.8"
+; Information added by drupal.org packaging script on 2012-08-08
+version = "6.x-1.9"
 core = "6.x"
 project = "ctools"
-datestamp = "1288393844"
+datestamp = "1344463009"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.install b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.install
index f38d99d..a91c4ea 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.install
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer.install,v 1.1.2.2 2010/07/14 01:57:42 merlinofchaos Exp $
 
 /**
  * Schema for stylizer.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.module b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.module
index c9dbc9c..fa0b406 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/stylizer/stylizer.module
@@ -1,5 +1,4 @@
 <?php
-// $Id: stylizer.module,v 1.1.2.3 2010/07/23 22:11:53 merlinofchaos Exp $
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.de.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.de.po
deleted file mode 100644
index fe97b74..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.de.po
+++ /dev/null
@@ -1,1691 +0,0 @@
-# $Id: ctools.de.po,v 1.1 2009/08/16 21:28:46 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL at ADDRESS>
-# Generated from files:
-#  panels.module,v 1.10.2.9 2007/03/15 23:13:41 merlinofchaos
-#  fourcol_25_25_25_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  threecol_33_33_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_25_75.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_33_66.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_38_62.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_50_50.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_62_38.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_66_33.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  twocol_75_25.inc,v 1.0 2006/09/02 11:47:00 alexander.hass
-#  threecol_25_50_25_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  threecol_33_34_33.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  threecol_33_34_33_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#  twocol.inc,v 1.6 2006/08/22 23:54:20 merlinofchaos
-#  twocol_stacked.inc,v 1.5 2006/08/22 23:54:20 merlinofchaos
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: panels 5.x\n"
-"POT-Creation-Date: 2009-08-16 20:47+0200\n"
-"PO-Revision-Date: 2009-08-16 23:09+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: Alexander Hass\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-Language: German\n"
-"X-Poedit-Country: GERMANY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: ctools.module:0
-msgid "ctools"
-msgstr "ctools"
-
-#: ctools.install:25
-msgid "CTools CSS Cache"
-msgstr "CTools-CSS-Cache"
-
-#: ctools.install:27
-msgid "Exists"
-msgstr "Vorhanden"
-
-#: ctools.install:31
-msgid "The CTools CSS cache directory, %path could not be created due to a misconfigured files directory. Please ensure that the files directory is correctly configured and that the webserver has permission to create directories."
-msgstr ""
-
-#: ctools.install:33
-msgid "Unable to create"
-msgstr "Konnte nicht erstellt werden"
-
-#: ctools.install:75
-msgid "A special cache used to store CSS that must be non-volatile."
-msgstr ""
-
-#: ctools.install:80
-msgid "The CSS ID this cache object belongs to."
-msgstr ""
-
-#: ctools.install:86
-msgid "The filename this CSS is stored in."
-msgstr "Der Dateiname in dem dieses CSS gespeichert wird."
-
-#: ctools.install:91
-msgid "CSS being stored."
-msgstr ""
-
-#: ctools.install:97
-msgid "Whether or not this CSS needs to be filtered."
-msgstr ""
-
-#: ctools.install:113
-msgid "A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment."
-msgstr ""
-
-#: ctools.install:119
-#, fuzzy
-msgid "The session ID this cache object belongs to."
-msgstr "Die Session-ID zu der dieses Cacheobjekt gehört."
-
-#: ctools.install:125
-#, fuzzy
-msgid "The name of the object this cache is attached to."
-msgstr "Der Name der Funktion, welche die Darstellung der Seite aufbaut."
-
-#: ctools.install:131
-msgid "The type of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache."
-msgstr ""
-
-#: ctools.install:138
-#, fuzzy
-msgid "The time this cache was created or updated."
-msgstr "Der Zeitpunkt zu dem der Cache erstellt oder aktualisiert wurde."
-
-#: ctools.install:143
-#, fuzzy
-msgid "Serialized data being stored."
-msgstr "Die gespeicherten serialisierten Daten."
-
-#: ctools.info:0
-msgid "Chaos tools"
-msgstr "Chaos-Tools"
-
-#: ctools.info:0
-msgid "A library of helpful tools by Merlin of Chaos."
-msgstr ""
-
-#: ctools.info:0
-#: bulk_export/bulk_export.info:0
-#: page_manager/page_manager.info:0
-#: views_content/views_content.info:0
-msgid "Chaos tool suite"
-msgstr "Chaos Tool Suite"
-
-#: includes/ajax.inc:124
-msgid "Server reports invalid input error."
-msgstr "Der Server hat eine ungültige Eingabe festgestellt."
-
-#: includes/content.inc:336
-msgid "@type:@subtype will not display due to missing context"
-msgstr "@type:@subtype wird wegen fehlendem Kontext nicht angezeigt"
-
-#: includes/content.inc:421
-msgid "No info"
-msgstr "Keine Infos"
-
-#: includes/content.inc:422
-msgid "No info available."
-msgstr "Keine Information verfügbar."
-
-#: includes/content.inc:451
-msgid "Override title"
-msgstr "Titel überschreiben"
-
-#: includes/content.inc:469
-msgid "You may use %keywords from contexts, as well as %title to contain the original title."
-msgstr "%keywords von Kontexten sowie der originale Titel %title können verwendet werden."
-
-#: includes/content.inc:542
-msgid "Configure new !subtype_title"
-msgstr "Neuen !subtype_title konfigurieren"
-
-#: includes/content.inc:545
-msgid "Configure !subtype_title"
-msgstr "!subtype_title konfigurieren"
-
-#: includes/content.menu.inc:46
-msgid "by @user"
-msgstr "von @user"
-
-#: includes/context-access-admin.inc:159
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: includes/context-access-admin.inc:165
-msgid "All criteria must pass."
-msgstr "Alle Kriterien müssen richtig sein."
-
-#: includes/context-access-admin.inc:166
-msgid "Only one criteria must pass."
-msgstr "Ein Kriterium muss richtig sein."
-
-#: includes/context-access-admin.inc:198
-msgid "Broken/missing access plugin %plugin"
-msgstr ""
-
-#: includes/context-access-admin.inc:205
-#: includes/context-admin.inc:289
-msgid "Configure settings for this item."
-msgstr "Einstellungen für diesen Eintrag konfigurieren."
-
-#: includes/context-access-admin.inc:206
-#: includes/context-admin.inc:285
-msgid "Remove this item."
-msgstr "Dieses Element entfernen"
-
-#: includes/context-access-admin.inc:215
-msgid "Description"
-msgstr "Beschreibung"
-
-#: includes/context-access-admin.inc:220
-msgid "No criteria selected, this test will pass."
-msgstr ""
-
-#: includes/context-access-admin.inc:278;346;457
-msgid "Missing callback hooks."
-msgstr ""
-
-#: includes/context-access-admin.inc:303
-msgid "Add criteria"
-msgstr "Kriterium hinzufügen"
-
-#: includes/context-access-admin.inc:367
-msgid "Edit criteria"
-msgstr "Kriterium bearbeiten"
-
-#: includes/context-admin.inc:27;801
-msgid "argument"
-msgstr "Argument"
-
-#: includes/context-admin.inc:29
-msgid "Add argument"
-msgstr "Argument hinzufügen"
-
-#: includes/context-admin.inc:36
-msgid "Relationships"
-msgstr "Beziehungen"
-
-#: includes/context-admin.inc:37;691
-msgid "relationship"
-msgstr "Beziehung"
-
-#: includes/context-admin.inc:39
-msgid "Add relationship"
-msgstr "Beziehung hinzufügen"
-
-#: includes/context-admin.inc:46
-msgid "Contexts"
-msgstr "Kontexte"
-
-#: includes/context-admin.inc:47;541
-msgid "context"
-msgstr "Kontext"
-
-#: includes/context-admin.inc:49
-msgid "Add context"
-msgstr "Kontext hinzufügen"
-
-#: includes/context-admin.inc:56
-msgid "Required contexts"
-msgstr "Erforderliche Kontexte"
-
-# English: uppercase first
-#: includes/context-admin.inc:57;629
-msgid "required context"
-msgstr "Erforderlicher Kontext"
-
-#: includes/context-admin.inc:59
-msgid "Add required context"
-msgstr "Erforderlichen Kontext hinzufügen"
-
-#: includes/context-admin.inc:355
-msgid "Add @type \"@context\""
-msgstr "@type „@context“ hinzufügen"
-
-#: includes/context-admin.inc:454
-msgid "Invalid context type"
-msgstr "Ungültiger Kontexttyp."
-
-#: includes/context-admin.inc:473
-msgid "Edit @type \"@context\""
-msgstr "@type „@context“ bearbeiten"
-
-#: includes/context-admin.inc:541;629;691;801
-msgid "Enter a name to identify this !type on administrative screens."
-msgstr "Einen Namen eingeben, um diese(s) !type auf administrativen Seiten zu identifizieren."
-
-#: includes/context-admin.inc:548;636;698;808
-msgid "Enter a keyword to use for substitution in titles."
-msgstr "Platzhalter zur Ersetzung in Titeln eingeben."
-
-#: includes/context-admin.inc:784
-msgid "Ignore it; content that requires this context will not be available."
-msgstr "Ignorieren; Inhalt, der diesen Kontext erfordert, ist nicht verfügbar."
-
-#: includes/context-admin.inc:785
-msgid "Display page not found or display nothing at all."
-msgstr ""
-
-#: includes/context-admin.inc:788
-msgid "If the argument is missing or is not valid, select how this should behave."
-msgstr "Bestimmt das Verhalten, falls das Argument fehlt oder nicht gültig ist."
-
-#: includes/context-admin.inc:795
-#, fuzzy
-msgid "Enter a title to use when this argument is present. You may use %KEYWORD substitution, where the keyword is specified below."
-msgstr "Titel der verwendet wird, wenn das Argument vorhanden ist. %KEYWORD Ersetzung kann verwendet werden, sofern ein Platzhalter durch den Administrator definiert wurde."
-
-#: includes/context-admin.inc:885
-msgid "Unable to delete missing item!"
-msgstr ""
-
-#: includes/context-task-handler.inc:102
-msgid "Edit @type"
-msgstr "@type bearbeiten"
-
-#: includes/context-task-handler.inc:292
-msgid "If there is more than one variant on a page, when the page is visited each variant is given an opportunity to be displayed. Starting from the first variant and working to the last, each one tests to see if its selection rules will pass. The first variant that its criteria (as specified below) will be used."
-msgstr ""
-
-#: includes/context-task-handler.inc:338
-msgid "Summary of contexts"
-msgstr "Zusammenfassung von Kontexten"
-
-#: includes/context.inc:49
-msgid "Unknown context"
-msgstr "Unbekannter Kontext"
-
-#: includes/context.inc:311;418
-msgid "Context %count"
-msgstr "Kontext %count"
-
-#: includes/context.inc:311;418
-msgid "Context"
-msgstr "Kontext"
-
-#: includes/context.inc:425
-msgid "Please choose which context and how you would like it converted."
-msgstr ""
-
-#: includes/context.inc:1225
-msgid "@identifier (@keyword)"
-msgstr "@identifier (@keyword)"
-
-#: includes/context.inc:1289
-msgid "Logged in user"
-msgstr "Angemeldeter Benutzer"
-
-# context sensitive string
-#: includes/context.inc:1327
-#, fuzzy
-msgid ", and "
-msgstr ", und"
-
-# context sensitive
-#: includes/context.inc:1327
-#, fuzzy
-msgid ", or "
-msgstr ", oder"
-
-#: includes/context.theme.inc:131;237
-msgid "Built in context"
-msgstr ""
-
-#: includes/context.theme.inc:134;158;181;201;240;259;275;290
-msgid "Keyword: %@keyword"
-msgstr "Schlüsselwort: %@keyword"
-
-#: includes/context.theme.inc:136;161;183;203
-msgid "@keyword --> @title"
-msgstr "@keyword --> @title"
-
-#: includes/context.theme.inc:155;256
-msgid "Argument @count"
-msgstr "Argument @count"
-
-#: includes/context.theme.inc:178;272
-msgid "Context @count"
-msgstr "Kontext @count"
-
-#: includes/context.theme.inc:198;287
-msgid "From \"@title\""
-msgstr "Von „@title“"
-
-#: includes/css.inc:159
-msgid "Unable to create CTools CSS cache directory. Check the permissions on your files directory."
-msgstr ""
-
-#: includes/form.inc:303
-msgid "Validation error, please try again. If this error persists, please contact the site administrator."
-msgstr "Bei der Gültigkeitsüberprüfung ist ein Fehler aufgetreten, bitte erneut versuchen. Falls der Fehler fortbesteht, wenden Sie sich bitte an den Administrator der Website."
-
-#: includes/menu.inc:58
-msgid "Home"
-msgstr "Startseite"
-
-#: includes/modal.inc:52
-msgid "Close Window"
-msgstr "Fenster schließen"
-
-#: includes/modal.inc:53;53
-msgid "Close window"
-msgstr "Fenster schließen"
-
-#: includes/modal.inc:54
-msgid "Loading"
-msgstr "Laden"
-
-#: includes/wizard.inc:218
-msgid "Back"
-msgstr "Zurück"
-
-#: includes/wizard.inc:236
-msgid "Continue"
-msgstr "Fortfahren"
-
-#: includes/wizard.inc:255
-msgid "Update and return"
-msgstr "Aktualisieren und Zurück"
-
-#: includes/wizard.inc:263
-msgid "Finish"
-msgstr "Abschließen"
-
-#: plugins/access/compare_users.inc:14
-msgid "User: compare"
-msgstr "Benutzer: Vergleich"
-
-#: plugins/access/compare_users.inc:15
-msgid "Compare two users (logged-in user and user being viewed, for example)"
-msgstr ""
-
-#: plugins/access/compare_users.inc:23
-msgid "First User"
-msgstr "Erster Benutzer"
-
-#: plugins/access/compare_users.inc:24
-msgid "Second User"
-msgstr "Zweiter Benutzer"
-
-#: plugins/access/compare_users.inc:38
-msgid "Grant access based on comparison of the two user contexts. For example, to grant access to a user to view their own profile, choose \"logged in user\" and \"user being viewed\" and say \"grant access if equal\". When they're the same, access will be granted."
-msgstr ""
-
-#: plugins/access/compare_users.inc:43
-msgid "Grant access if user contexts are"
-msgstr ""
-
-#: plugins/access/compare_users.inc:44
-msgid "Equal"
-msgstr "Gleich"
-
-#: plugins/access/compare_users.inc:44
-msgid "Not equal"
-msgstr "Nicht gleich"
-
-#: plugins/access/compare_users.inc:72
-msgid "@id1 @comp @id2"
-msgstr "@id1 @comp @id2"
-
-#: plugins/access/node_access.inc:14
-msgid "Node: accessible"
-msgstr "Beitrag: Erreichbar"
-
-#: plugins/access/node_access.inc:15
-msgid "Control access with built in Drupal node access test."
-msgstr ""
-
-#: plugins/access/node_access.inc:41
-msgid "Create nodes of the same type"
-msgstr ""
-
-#: plugins/access/node_access.inc:43
-msgid "Using built in Drupal node access rules, determine if the user can perform the selected operation on the node."
-msgstr ""
-
-#: plugins/access/node_access.inc:80
-msgid "@user can view @node."
-msgstr "@user kann @node sehen."
-
-#: plugins/access/node_access.inc:83
-msgid "@user can edit @node."
-msgstr "@user kann @node bearbeiten."
-
-#: plugins/access/node_access.inc:86
-msgid "@user can delete @node."
-msgstr "@user kann @node löschen."
-
-#: plugins/access/node_access.inc:89
-msgid "@user can create nodes of the same type as @node."
-msgstr "@user kann Beiträge von dem gleichen Typ wie @node erstellen."
-
-#: plugins/access/node_language.inc:15
-msgid "Node: language"
-msgstr "Beitrag: Sprache"
-
-#: plugins/access/node_language.inc:16
-msgid "Control access by node language."
-msgstr "Zugriff mit Beitragssprache kontrollieren."
-
-#: plugins/access/node_language.inc:33;95
-msgid "Current site language"
-msgstr "Aktuelle Website-Sprache"
-
-#: plugins/access/node_language.inc:34;96
-#: plugins/access/site_language.inc:32;70
-msgid "Default site language"
-msgstr "Standardmäßige Website-Sprache"
-
-#: plugins/access/node_language.inc:35;97
-msgid "No language"
-msgstr "Keine Sprache"
-
-#: plugins/access/node_language.inc:39
-#: plugins/access/site_language.inc:36
-msgid "Language"
-msgstr "Sprache"
-
-#: plugins/access/node_language.inc:42
-msgid "Pass only if the node is in one of the selected languages."
-msgstr ""
-
-#: plugins/access/node_language.inc:111
-msgid "@identifier is in any language"
-msgstr ""
-
-#: plugins/access/node_language.inc:114
-msgid "@identifier language is \"@languages\""
-msgid_plural "@identifier language is one of \"@languages\""
-msgstr[0] ""
-msgstr[1] ""
-
-#: plugins/access/node_type.inc:14
-msgid "Node: type"
-msgstr "Beitrag: Typ"
-
-# English: node_type bug
-#: plugins/access/node_type.inc:15
-msgid "Control access by node_type."
-msgstr "Zugriff mit Beitragstyp kontrollieren"
-
-#: plugins/access/node_type.inc:41
-msgid "Only the checked node types will be valid."
-msgstr "Nur die aktivierten Beitragstypen sind gültig."
-
-#: plugins/access/node_type.inc:98
-msgid "@identifier is any node type"
-msgstr "@identifier ist ein beliebiger Beitragstyp"
-
-#: plugins/access/node_type.inc:101
-msgid "@identifier is type \"@types\""
-msgid_plural "@identifier type is one of \"@types\""
-msgstr[0] ""
-msgstr[1] ""
-
-#: plugins/access/perm.inc:14
-msgid "User: permission"
-msgstr "Benutzer: Berechtigung"
-
-#: plugins/access/perm.inc:15
-msgid "Control access by permission string."
-msgstr "Zugriff mit Zugriffsberechtigung kontrollieren"
-
-#: plugins/access/perm.inc:43
-msgid "Permission"
-msgstr "Berechtigung"
-
-#: plugins/access/perm.inc:45
-msgid "Only users with the selected permission flag will be able to access this."
-msgstr ""
-
-#: plugins/access/perm.inc:67
-msgid "Error, unset permission"
-msgstr ""
-
-#: plugins/access/perm.inc:70
-msgid "@identifier has \"@perm\""
-msgstr "@identifier enthält „@perm“"
-
-#: plugins/access/php.inc:14;43
-msgid "PHP Code"
-msgstr "PHP-Code"
-
-#: plugins/access/php.inc:15
-msgid "Control access through arbitrary PHP code."
-msgstr ""
-
-#: plugins/access/php.inc:37
-msgid "Administrative desc"
-msgstr "Administrative-Beschreibung"
-
-#: plugins/access/php.inc:39
-#, fuzzy
-msgid "A description for this test for administrative purposes."
-msgstr "Einen Namen eingeben, um diese(s) !type auf administrativen Seiten zu identifizieren."
-
-#: plugins/access/php.inc:45
-msgid "Access will be granted if the following PHP code returns <code>TRUE</code>. Do not include <?php ?>. Note that executing incorrect PHP-code can break your Drupal site. All contexts will be available in the <em>$contexts</em> variable."
-msgstr ""
-
-#: plugins/access/php.inc:50
-msgid "You do not have sufficient permissions to edit PHP code."
-msgstr ""
-
-#: plugins/access/role.inc:14
-msgid "User: role"
-msgstr "Benutzer: Rolle"
-
-#: plugins/access/role.inc:15
-msgid "Control access by role."
-msgstr "Zugriff mit Rolle kontrollieren"
-
-#: plugins/access/role.inc:33
-msgid "Role"
-msgstr "Rolle"
-
-#: plugins/access/role.inc:36
-msgid "Only the checked roles will be granted access."
-msgstr ""
-
-#: plugins/access/role.inc:77
-msgid "@identifier can have any role"
-msgstr "@identifier kann jede Rolle enthalten"
-
-#: plugins/access/role.inc:80
-msgid "@identifier has role \"@roles\""
-msgid_plural "@identifier has one of \"@roles\""
-msgstr[0] ""
-msgstr[1] ""
-
-#: plugins/access/site_language.inc:15
-msgid "User: language"
-msgstr "Benutzer: Sprache"
-
-#: plugins/access/site_language.inc:16
-msgid "Control access by the language the user or site currently uses."
-msgstr ""
-
-#: plugins/access/site_language.inc:39
-msgid "Pass only if the current site language is one of the selected languages."
-msgstr ""
-
-#: plugins/access/site_language.inc:84
-#, fuzzy
-msgid "Site language is any language"
-msgstr "Website-Sprache ist jede Sprache"
-
-#: plugins/access/site_language.inc:87
-msgid "Site language is \"@languages\""
-msgid_plural "Site language is one of \"@languages\""
-msgstr[0] ""
-msgstr[1] ""
-
-#: plugins/access/term_vocabulary.inc:14
-msgid "Taxonomy: vocabulary"
-msgstr "Taxonomie: Vokabular"
-
-#: plugins/access/term_vocabulary.inc:15
-msgid "Control access by term vocabulary."
-msgstr "Zugriff mit Begriffsvokabular kontrollieren"
-
-#: plugins/access/term_vocabulary.inc:39
-msgid "Vocabularies"
-msgstr "Vokabulare"
-
-#: plugins/access/term_vocabulary.inc:41
-msgid "Only terms in the checked vocabularies will be valid."
-msgstr ""
-
-#: plugins/access/term_vocabulary.inc:85
-msgid "@identifier is any vocabulary"
-msgstr "@identifier ist ein beliebiges Vokabular."
-
-#: plugins/access/term_vocabulary.inc:88
-msgid "@identifier vocabulary is \"@vids\""
-msgid_plural "@identifier vocabulary is one of \"@vids\""
-msgstr[0] ""
-msgstr[1] ""
-
-#: plugins/arguments/nid.inc:17
-#, fuzzy
-msgid "Creates a node context from a node ID argument."
-msgstr "Erstellt ein Benutzer-Objekt durch ein Argument."
-
-#: plugins/arguments/nid.inc:21
-#: plugins/arguments/node_edit.inc:22
-#, fuzzy
-msgid "Enter the node ID of a node for this argument"
-msgstr "Bestimmt den Inhaltstyp für dieses Formular."
-
-#: plugins/arguments/node_add.inc:18
-#, fuzzy
-msgid "Creates a node add form context from a node type argument."
-msgstr "Erstellt ein Benutzer-Objekt durch ein Argument."
-
-#: plugins/arguments/node_edit.inc:18
-#, fuzzy
-msgid "Creates a node edit form context from a node ID argument."
-msgstr "Erstellt ein Benutzer-Objekt durch ein Argument."
-
-#: plugins/arguments/string.inc:18
-msgid "A string is a minimal context that simply holds a string that can be used for some other purpose."
-msgstr ""
-
-#: plugins/arguments/string.inc:22
-msgid "Enter a value for this argument"
-msgstr "Einen Wert für dieses Argument eingeben"
-
-#: plugins/arguments/term.inc:18
-msgid "Creates a single taxonomy term from a taxonomy ID or taxonomy term name."
-msgstr ""
-
-#: plugins/arguments/term.inc:82
-msgid "Argument type"
-msgstr "Argumenttyp"
-
-#: plugins/arguments/term.inc:91
-msgid "Inject hierarchy into breadcrumb trail"
-msgstr ""
-
-#: plugins/arguments/term.inc:107
-msgid "Enter a taxonomy term ID."
-msgstr "Eine Taxonomie-Begriffs-ID eingeben."
-
-#: plugins/arguments/term.inc:112
-msgid "Enter a taxonomy term name."
-msgstr "Einen Taxonomie-Begriff eingeben."
-
-#: plugins/arguments/terms.inc:15
-msgid "Taxonomy term (multiple)"
-msgstr "Taxonomie-Begriff (mehrere)"
-
-#: plugins/arguments/terms.inc:18
-msgid "Creates a group of taxonomy terms from a list of tids separated by a comma or a plus sign. In general the first term of the list will be used for panes."
-msgstr ""
-
-#: plugins/arguments/terms.inc:24
-msgid "Enter a term ID or a list of term IDs separated by a + or a ,"
-msgstr ""
-
-#: plugins/arguments/uid.inc:18
-#, fuzzy
-msgid "Creates a user context from a user ID argument."
-msgstr "Erstellt ein Benutzer-Objekt durch ein Argument."
-
-#: plugins/arguments/uid.inc:22
-#, fuzzy
-msgid "Enter the user ID of a user for this argument"
-msgstr "Den Titel oder die Beitrag-ID eines Beitrages eingeben"
-
-#: plugins/arguments/vid.inc:18
-#, fuzzy
-msgid "Creates a vocabulary context from a vocabulary ID argument."
-msgstr "Lädt ein Vokabular-Objekt durch ein Argument."
-
-#: plugins/arguments/vid.inc:22
-#, fuzzy
-msgid "Enter the vocabulary ID for this argument"
-msgstr "Das Vokabular für dieses Formular auswählen."
-
-#: plugins/content_types/block/block.inc:21
-msgid "Block"
-msgstr "Block"
-
-#: plugins/content_types/block/block.inc:91
-msgid "Configure block"
-msgstr "Block konfigurieren"
-
-#: plugins/content_types/block/block.inc:92
-msgid "Configure this block's 'block settings' in administer >> site building >> blocks"
-msgstr "Die Einstellungen dieses Blocks unter Verwalten >> Strukturierung >> Blöcke konfigurieren"
-
-#: plugins/content_types/block/block.inc:229
-msgid "Deleted/missing block @module- at delta"
-msgstr "Entfernter/fehlender Block @module- at delta"
-
-#: plugins/content_types/block/block.inc:267;271;346
-msgid "Miscellaneous"
-msgstr "Diverses"
-
-#: plugins/content_types/block/block.inc:279;359
-msgid "Menus"
-msgstr "Menüs"
-
-#: plugins/content_types/block/block.inc:286;316;321;326;350;383
-msgid "Activity"
-msgstr "Aktivität"
-
-#: plugins/content_types/block/block.inc:341
-msgid "Feeds"
-msgstr "Newsfeeds"
-
-#: plugins/content_types/custom/custom.inc:20
-msgid "New custom content"
-msgstr "Neuer benutzerdefinierter Inhalt"
-
-#: plugins/content_types/custom/custom.inc:22
-msgid "Create a completely custom piece of HTML content."
-msgstr "Vollständig individuellen HTML-Inhalt erstellen."
-
-#: plugins/content_types/custom/custom.inc:108
-msgid "Body"
-msgstr "Textkörper"
-
-#: plugins/content_types/custom/custom.inc:118
-msgid "Use context keywords"
-msgstr "Kontextschlüsselwörter verwenden"
-
-#: plugins/content_types/custom/custom.inc:119
-msgid "If checked, context keywords will be substituted in this content."
-msgstr ""
-
-#: plugins/content_types/custom/custom.inc:123
-msgid "Substitutions"
-msgstr "Ersetzungen"
-
-#: plugins/content_types/custom/custom.inc:134
-msgid "@identifier: @title"
-msgstr "@identifier: @title"
-
-#: plugins/content_types/custom/custom.inc:138
-msgid "Value"
-msgstr "Wert"
-
-#: plugins/content_types/form/form.inc:13
-msgid "General form"
-msgstr "Allgemeines Formular"
-
-#: plugins/content_types/form/form.inc:15
-msgid "Everything in the form that is not displayed by other content."
-msgstr ""
-
-#: plugins/content_types/form/form.inc:44
-msgid "Form goes here."
-msgstr "Formular wird hier angezeigt."
-
-#: plugins/content_types/form/form.inc:52
-msgid "\"@s\" base form"
-msgstr "„@s“ Basisformular"
-
-#: plugins/content_types/node/node.inc:24
-msgid "Add a node"
-msgstr "Beitrag hinzufügen"
-
-#: plugins/content_types/node/node.inc:26
-msgid "Add a node from your site as content."
-msgstr "Beitrag von dieser Webseite als Inhalt hinzufügen."
-
-#: plugins/content_types/node/node.inc:107
-msgid "To use a NID from the URL, you may use %0, %1, ..., %N to get URL arguments. Or use @0, @1, @2, ..., @N to use arguments passed into the panel."
-msgstr "Um eine NID aus der URL zu verwenden, %0, %1, ..., %N für die URL-Argumente verwenden. Oder @0, @1, @2, ..., @N für die Panel-Argumente verwenden."
-
-#: plugins/content_types/node/node.inc:126
-msgid "Check here to show only the node teaser"
-msgstr "Aktivieren, um nur den Anrisstext des Beitrages anzuzeigen."
-
-#: plugins/content_types/node/node.inc:181
-msgid "Invalid node"
-msgstr "Ungültiger Beitrag"
-
-#: plugins/content_types/node/node.inc:199
-msgid "Node loaded from @var"
-msgstr "Beitrag wurde von @var geladen"
-
-#: plugins/content_types/node/node.inc:207
-msgid "Deleted/missing node @nid"
-msgstr "Entfernter/fehlender Beitrag @nid"
-
-#: plugins/content_types/node_context/node_attachments.inc:10;23
-msgid "Attached files"
-msgstr "Angehängte Dateien"
-
-#: plugins/content_types/node_context/node_attachments.inc:12
-msgid "A list of files attached to the node."
-msgstr "Eine Liste der an einem Beitrag angehängten Dateien."
-
-#: plugins/content_types/node_context/node_attachments.inc:31
-msgid "Attached files go here."
-msgstr "Angehängte Dateien erscheinen hier."
-
-#: plugins/content_types/node_context/node_attachments.inc:39
-msgid "\"@s\" attachments"
-msgstr "„@s“ Dateianhänge"
-
-#: plugins/content_types/node_context/node_author.inc:12
-msgid "The author of the referenced node."
-msgstr "Der Autor des referenzierten Beitrages."
-
-#: plugins/content_types/node_context/node_author.inc:35
-msgid "Author"
-msgstr "Autor"
-
-#: plugins/content_types/node_context/node_author.inc:49
-msgid "Link to author profile"
-msgstr "Mit dem Profil des Autors verlinken"
-
-#: plugins/content_types/node_context/node_author.inc:52
-msgid "Check here to link to the node author profile."
-msgstr "Aktivieren, um zum Autor des Beitrages zu verlinken."
-
-#: plugins/content_types/node_context/node_author.inc:70
-msgid "\"@s\" author"
-msgstr "„@s“ Autor"
-
-#: plugins/content_types/node_context/node_body.inc:10
-msgid "Node body"
-msgstr "Beitragstext"
-
-#: plugins/content_types/node_context/node_body.inc:12
-msgid "The body of the referenced node."
-msgstr "Der Textkörper des referenzierten Beitrages."
-
-#: plugins/content_types/node_context/node_body.inc:58
-msgid "\"@s\" body"
-msgstr "„@s“ Textkörper"
-
-#: plugins/content_types/node_context/node_book_nav.inc:11;25
-msgid "Book navigation"
-msgstr "Buch-Navigation"
-
-#: plugins/content_types/node_context/node_book_nav.inc:13
-msgid "The navigation menu the book the node belongs to."
-msgstr ""
-
-#: plugins/content_types/node_context/node_book_nav.inc:31
-msgid "Book navigation goes here."
-msgstr "Buch-Navigation wird hier angezeigt."
-
-#: plugins/content_types/node_context/node_book_nav.inc:39
-msgid "\"@s\" book navigation"
-msgstr "„@s“ Buch-Navigation"
-
-#: plugins/content_types/node_context/node_comment_form.inc:11
-msgid "Comment form"
-msgstr "Kommentarformular"
-
-#: plugins/content_types/node_context/node_comment_form.inc:13
-msgid "A form to add a new comment."
-msgstr "Ein Formular zum Hinzufügen eines neuen Kommentars."
-
-#: plugins/content_types/node_context/node_comment_form.inc:26
-msgid "Add comment"
-msgstr "Kommentar hinzufügen"
-
-#: plugins/content_types/node_context/node_comment_form.inc:29
-msgid "Comment form here."
-msgstr "Kommentarformular erscheint hier."
-
-#: plugins/content_types/node_context/node_comment_form.inc:47
-msgid "\"@s\" comment form"
-msgstr "„@s“ Kommentarformular"
-
-#: plugins/content_types/node_context/node_comments.inc:12
-msgid "Node comments"
-msgstr "Beitragskommentare"
-
-#: plugins/content_types/node_context/node_comments.inc:14
-msgid "The comments of the referenced node."
-msgstr "Kommentare des referenzierten Beitrages."
-
-#: plugins/content_types/node_context/node_comments.inc:32
-msgid "Comments"
-msgstr "Kommentare"
-
-#: plugins/content_types/node_context/node_comments.inc:34
-msgid "Node comments go here."
-msgstr "Beitragskommentare erscheinen hier."
-
-#: plugins/content_types/node_context/node_comments.inc:49
-msgid "Mode"
-msgstr "Modus"
-
-#: plugins/content_types/node_context/node_comments.inc:56
-msgid "Sort"
-msgstr "Reihenfolge"
-
-#: plugins/content_types/node_context/node_comments.inc:62
-msgid "!a comments per page"
-msgstr "!a Kommentare pro Seite"
-
-#: plugins/content_types/node_context/node_comments.inc:65
-msgid "Pager"
-msgstr "Seitennavigation"
-
-#: plugins/content_types/node_context/node_comments.inc:80
-msgid "\"@s\" comments"
-msgstr "„@s“ Kommentare"
-
-#: plugins/content_types/node_context/node_content.inc:10
-msgid "Node content"
-msgstr "Beitragsinhalt"
-
-#: plugins/content_types/node_context/node_content.inc:12
-msgid "The content of the referenced node."
-msgstr "Der Inhalt des referenzierten Beitrages."
-
-#: plugins/content_types/node_context/node_content.inc:44
-#: plugins/content_types/node_context/node_links.inc:41
-msgid "Node title."
-msgstr "Titel des Beitrages."
-
-#: plugins/content_types/node_context/node_content.inc:45
-msgid "Node content goes here."
-msgstr "Beitragsinhalt wird hier angezeigt."
-
-#: plugins/content_types/node_context/node_content.inc:128
-#: plugins/content_types/node_context/node_links.inc:78
-msgid "Link title to node"
-msgstr "Den Titel mit dem Beitrag verlinken"
-
-#: plugins/content_types/node_context/node_content.inc:131
-#: plugins/content_types/node_context/node_links.inc:81
-#: plugins/content_types/node_context/node_title.inc:55
-msgid "Check here to make the title link to the node."
-msgstr "Aktivieren, um den Titel mit dem Beitrag zu verlinken."
-
-#: plugins/content_types/node_context/node_content.inc:137
-msgid "Check here to show only the node teaser."
-msgstr "Aktivieren, um nur den Anrisstext des Beitrages anzuzeigen."
-
-#: plugins/content_types/node_context/node_content.inc:142
-msgid "Node page"
-msgstr "Beitragseite"
-
-#: plugins/content_types/node_context/node_content.inc:143
-msgid "Check here if the node is being displayed on a page by itself."
-msgstr "Aktivieren, falls der Beitrag auf einer eigenen Seite erscheint."
-
-#: plugins/content_types/node_context/node_content.inc:155
-msgid "No extras"
-msgstr "Keine Zusätze"
-
-#: plugins/content_types/node_context/node_content.inc:156
-msgid "Check here to disable additions that modules might make to the node, such as file attachments and CCK fields; this should just display the basic teaser or body."
-msgstr "Aktivieren, um Zusätze von anderen Modulen zu deaktivieren, wie z.B. Dateianhänge und CCK-Felder; dies sollte nur den Anrisstext oder vollen Inhaltstext darstellen."
-
-#: plugins/content_types/node_context/node_content.inc:184
-msgid "\"@s\" content"
-msgstr "„@s“ Inhalt"
-
-#: plugins/content_types/node_context/node_created.inc:10
-msgid "Node created date"
-msgstr "Beitragserstellungsdatum"
-
-#: plugins/content_types/node_context/node_created.inc:12
-msgid "The date the referenced node was created."
-msgstr "Der Zeitpunkt zu dem der referenzierte Beitrag erstellt wurde."
-
-#: plugins/content_types/node_context/node_created.inc:35
-msgid "Created date"
-msgstr "Erstellungsdatum"
-
-#: plugins/content_types/node_context/node_created.inc:50
-#: plugins/content_types/node_context/node_updated.inc:50
-msgid "Date format"
-msgstr "Datumsformat"
-
-#: plugins/content_types/node_context/node_created.inc:75
-msgid "\"@s\" created date"
-msgstr "„@s“ erstellt"
-
-#: plugins/content_types/node_context/node_links.inc:11
-msgid "Node links"
-msgstr "Beitraglinks"
-
-#: plugins/content_types/node_context/node_links.inc:13
-msgid "Node links of the referenced node."
-msgstr "Beitrag verlinkt zum referenzierten Beitrag."
-
-#: plugins/content_types/node_context/node_links.inc:42
-msgid "Node links go here."
-msgstr "Beitraglinks erscheinen hier."
-
-#: plugins/content_types/node_context/node_links.inc:84
-msgid "Teaser mode"
-msgstr "Anrisstext-Modus"
-
-#: plugins/content_types/node_context/node_links.inc:87
-msgid "Check here to show links in teaser mode."
-msgstr "Aktivieren, um Links im Anrisstext anzuzeigen."
-
-#: plugins/content_types/node_context/node_links.inc:94
-msgid "Whatever is placed here will appear in $node->panel_identifier to help theme node links displayed on the panel"
-msgstr ""
-
-#: plugins/content_types/node_context/node_links.inc:108
-msgid "\"@s\" links"
-msgstr "„@s“ Links"
-
-#: plugins/content_types/node_context/node_title.inc:12
-msgid "The title of the referenced node."
-msgstr "Der Titel des referenzierten Beitrages."
-
-#: plugins/content_types/node_context/node_title.inc:52
-msgid "Link to node"
-msgstr "Mit dem Beitrag verlinken"
-
-#: plugins/content_types/node_context/node_title.inc:73
-msgid "\"@s\" title"
-msgstr "„@s“ Titel"
-
-#: plugins/content_types/node_context/node_type_desc.inc:10;34
-msgid "Node type description"
-msgstr "Beitragstyp-Beschreibung"
-
-#: plugins/content_types/node_context/node_type_desc.inc:12
-msgid "Node type description."
-msgstr "Beschreibung des Inhaltstyps."
-
-#: plugins/content_types/node_context/node_type_desc.inc:35
-msgid "Node type description goes here."
-msgstr "Inhaltstyp-Beschreibung wird hier angezeigt."
-
-#: plugins/content_types/node_context/node_type_desc.inc:43
-msgid "\"@s\" type description"
-msgstr "„@s“ Typ-Beschreibung"
-
-#: plugins/content_types/node_context/node_updated.inc:10
-msgid "Node last updated date"
-msgstr "Letzter Aktualisierungszeitpunkt des Beitrages"
-
-#: plugins/content_types/node_context/node_updated.inc:12
-msgid "The date the referenced node was last updated."
-msgstr "Der Zeitpunkt zu dem der referenzierte Beitrag zuletzt aktualisiert wurde."
-
-#: plugins/content_types/node_context/node_updated.inc:35
-msgid "Last updated date"
-msgstr "Letzter Aktualisierungszeitpunkt"
-
-#: plugins/content_types/node_context/node_updated.inc:75
-msgid "\"@s\" last updated date"
-msgstr ""
-
-#: plugins/content_types/node_form/node_form_attachments.inc:12
-msgid "Node form file attachments"
-msgstr "Beitragsformular-Dateianhänge"
-
-#: plugins/content_types/node_form/node_form_attachments.inc:13
-msgid "File attachments on the Node form."
-msgstr "Dateianhänge im Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_attachments.inc:22
-#: plugins/content_types/node_form/node_form_author.inc:20
-#: plugins/content_types/node_form/node_form_book.inc:22
-#: plugins/content_types/node_form/node_form_buttons.inc:20
-#: plugins/content_types/node_form/node_form_comment.inc:22
-#: plugins/content_types/node_form/node_form_input_format.inc:20
-#: plugins/content_types/node_form/node_form_log.inc:20
-#: plugins/content_types/node_form/node_form_menu.inc:22
-#: plugins/content_types/node_form/node_form_path.inc:22
-#: plugins/content_types/node_form/node_form_publishing.inc:28
-#: plugins/content_types/node_form/node_form_taxonomy.inc:22
-msgid "node_form"
-msgstr "node_form"
-
-#: plugins/content_types/node_form/node_form_attachments.inc:24
-msgid "Attach files"
-msgstr "Dateien anhängen"
-
-#: plugins/content_types/node_form/node_form_attachments.inc:35
-msgid "Attach files."
-msgstr "Dateien anhängen."
-
-#: plugins/content_types/node_form/node_form_attachments.inc:41
-msgid "\"@s\" node form attach files"
-msgstr "„@s“ Beitragsformular-Dateianhänge"
-
-#: plugins/content_types/node_form/node_form_author.inc:11
-msgid "Node form author information"
-msgstr "Beitragsautor-Formular"
-
-#: plugins/content_types/node_form/node_form_author.inc:12
-msgid "Author information on the Node form."
-msgstr "Autor-Informationen im Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_author.inc:22
-msgid "Authoring information"
-msgstr "Informationen zum Autor"
-
-#: plugins/content_types/node_form/node_form_author.inc:35
-msgid "Authoring information."
-msgstr "Informationen zum Autor."
-
-#: plugins/content_types/node_form/node_form_author.inc:41
-msgid "\"@s\" node form publishing options"
-msgstr "„@s“ Beitragsformular-Veröffentlichungsoptionen"
-
-#: plugins/content_types/node_form/node_form_book.inc:12
-msgid "Node form book options"
-msgstr "Beitragsformular-Buchoptionen"
-
-#: plugins/content_types/node_form/node_form_book.inc:13
-msgid "Book options for the node."
-msgstr "Buchoptionen für den Beitrag."
-
-#: plugins/content_types/node_form/node_form_book.inc:24
-msgid "Book options"
-msgstr "Buchoptionen"
-
-#: plugins/content_types/node_form/node_form_book.inc:39
-msgid "Book options."
-msgstr "Buchoptionen."
-
-#: plugins/content_types/node_form/node_form_book.inc:45
-msgid "\"@s\" node form book options"
-msgstr "„@s“ Beitragsformular-Buchoptionen"
-
-#: plugins/content_types/node_form/node_form_buttons.inc:11
-msgid "Node form submit buttons"
-msgstr "Beitragsformular Speichern-Schaltknöpfe"
-
-#: plugins/content_types/node_form/node_form_buttons.inc:12
-msgid "Submit buttons for the node form."
-msgstr "Speichern-Schaltknöpfe für das Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_buttons.inc:29
-msgid "Node form buttons."
-msgstr "Beitragsformular-Schaltknöpfe"
-
-#: plugins/content_types/node_form/node_form_buttons.inc:35
-msgid "\"@s\" node form submit buttons"
-msgstr ""
-
-#: plugins/content_types/node_form/node_form_comment.inc:12
-msgid "Node form comment settings"
-msgstr "Beitragsformular-Kommentareinstellungen"
-
-#: plugins/content_types/node_form/node_form_comment.inc:13
-msgid "Comment settings on the Node form."
-msgstr "Kommentareinstellungen im Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_comment.inc:24
-msgid "Comment options"
-msgstr "Kommentareinstellungen"
-
-#: plugins/content_types/node_form/node_form_comment.inc:35
-msgid "Comment options."
-msgstr "Kommentareinstellungen."
-
-#: plugins/content_types/node_form/node_form_comment.inc:41
-msgid "\"@s\" node form comment settings"
-msgstr "„@s“ Beitragsformular-Kommentareinstellungen"
-
-#: plugins/content_types/node_form/node_form_input_format.inc:11
-msgid "Node form input format"
-msgstr "Beitrag-Eingabeformat-Formular"
-
-#: plugins/content_types/node_form/node_form_input_format.inc:12
-msgid "Input format for the body field on a node."
-msgstr "Eingabeformat für den Textkörper eines Beitrages."
-
-#: plugins/content_types/node_form/node_form_input_format.inc:22
-msgid "Input format"
-msgstr "Eingabeformat"
-
-#: plugins/content_types/node_form/node_form_input_format.inc:33
-msgid "Input format."
-msgstr "Eingabeformat."
-
-#: plugins/content_types/node_form/node_form_input_format.inc:39
-msgid "\"@s\" node form input format"
-msgstr "„@s“ Beitragsformular-Eingabeformat"
-
-#: plugins/content_types/node_form/node_form_log.inc:11
-msgid "Node form revision log message"
-msgstr "Protokollnachricht im Beitragsformular"
-
-#: plugins/content_types/node_form/node_form_log.inc:12
-msgid "Revision log message for the node."
-msgstr "Protokollnachricht für den Beitrag."
-
-#: plugins/content_types/node_form/node_form_log.inc:28
-msgid "\"@s\" node form revision log"
-msgstr ""
-
-#: plugins/content_types/node_form/node_form_menu.inc:12
-msgid "Node form menu settings"
-msgstr "Beitragsformular-Menüeinstellungen"
-
-#: plugins/content_types/node_form/node_form_menu.inc:13
-msgid "Menu settings on the Node form."
-msgstr "Menüeinstellungen im Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_menu.inc:24
-msgid "Menu options"
-msgstr "Menüeinstellungen"
-
-#: plugins/content_types/node_form/node_form_menu.inc:36
-msgid "Menu options."
-msgstr "Menüeinstellungen."
-
-#: plugins/content_types/node_form/node_form_menu.inc:42
-msgid "\"@s\" node form menu settings"
-msgstr "„@s“ Beitragsformular-Menüeinstellungen"
-
-#: plugins/content_types/node_form/node_form_path.inc:12
-msgid "Node form url path settings"
-msgstr "Beitragsformular-URL-Pfad-Einstellungen"
-
-#: plugins/content_types/node_form/node_form_path.inc:13
-#: plugins/content_types/node_form/node_form_publishing.inc:18
-msgid "Publishing options on the Node form."
-msgstr "Veröffentlichungsoptionen im Beitragsformular."
-
-#: plugins/content_types/node_form/node_form_path.inc:24
-msgid "URL path options"
-msgstr "URL-Alias-Einstellungen"
-
-#: plugins/content_types/node_form/node_form_path.inc:36
-msgid "URL Path options."
-msgstr "URL-Alias-Einstellungen."
-
-#: plugins/content_types/node_form/node_form_path.inc:42
-msgid "\"@s\" node form path options"
-msgstr "„@s“ Beitragsformular-Pfadoptionen"
-
-#: plugins/content_types/node_form/node_form_publishing.inc:16
-msgid "Node form publishing options"
-msgstr "Beitragsformular-Veröffentlichungsoptionen"
-
-#: plugins/content_types/node_form/node_form_publishing.inc:27
-msgid "Publishing options"
-msgstr "Veröffentlichungseinstellungen"
-
-#: plugins/content_types/node_form/node_form_publishing.inc:39
-msgid "Publishing options."
-msgstr "Veröffentlichungseinstellungen."
-
-#: plugins/content_types/node_form/node_form_publishing.inc:45
-msgid "\"@s\" node form author information"
-msgstr "„@s“ Beitragsformular-Autoreninformation"
-
-#: plugins/content_types/node_form/node_form_taxonomy.inc:12
-msgid "Node form categories"
-msgstr "Beitragsformular-Kategorien"
-
-#: plugins/content_types/node_form/node_form_taxonomy.inc:13
-msgid "Taxonomy categories for the node."
-msgstr "Taxonomie-Kategorien für den Beitrag."
-
-#: plugins/content_types/node_form/node_form_taxonomy.inc:24
-msgid "Categories"
-msgstr "Kategorien"
-
-#: plugins/content_types/node_form/node_form_taxonomy.inc:35
-msgid "Categories."
-msgstr "Kategorien."
-
-#: plugins/content_types/node_form/node_form_taxonomy.inc:41
-msgid "\"@s\" node form select taxonomy"
-msgstr ""
-
-#: plugins/content_types/term_context/term_description.inc:10
-msgid "Term description"
-msgstr "Begriffsbeschreibung"
-
-#: plugins/content_types/term_context/term_description.inc:12
-msgid "Term description."
-msgstr "Beschreibung des Begriffs."
-
-#: plugins/content_types/term_context/term_description.inc:30
-msgid "Edit term"
-msgstr "Begriff bearbeiten"
-
-#: plugins/content_types/term_context/term_description.inc:31
-msgid "Edit this term"
-msgstr "Diesen Begriff bearbeiten"
-
-#: plugins/content_types/term_context/term_description.inc:38
-#: plugins/content_types/term_context/term_list.inc:62
-msgid "Term description goes here."
-msgstr "Begriffsbeschreibung wird hier angezeigt."
-
-#: plugins/content_types/term_context/term_description.inc:46
-msgid "\"@s\" term description"
-msgstr "„@s“ Begriffsbeschreibung"
-
-#: plugins/content_types/term_context/term_list.inc:10
-msgid "List of related terms"
-msgstr "Liste relevanter Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:12
-msgid "Terms related to an existing term; may be child, siblings or top level."
-msgstr "Verwandte Begriffe für einen existierenden Begriff; Kinder, Nachbarn oder übergeordnete Begriffe."
-
-#: plugins/content_types/term_context/term_list.inc:71
-msgid "Child terms"
-msgstr "Untergeordnete Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:72
-msgid "Related terms"
-msgstr "Verwandte Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:73
-msgid "Sibling terms"
-msgstr "Benachbarte Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:74
-msgid "Top level terms"
-msgstr "Ãœbergeordnete Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:75
-msgid "Term synonyms"
-msgstr "Begriffssynonyme"
-
-# Kontext sensitive
-#: plugins/content_types/term_context/term_list.inc:87
-msgid "Which terms"
-msgstr "Welche Begriffe"
-
-#: plugins/content_types/term_context/term_list.inc:96
-msgid "List type"
-msgstr "Listentyp"
-
-#: plugins/content_types/term_context/term_list.inc:97
-msgid "Unordered"
-msgstr "Ungeordnet"
-
-#: plugins/content_types/term_context/term_list.inc:97
-msgid "Ordered"
-msgstr "Geordnet"
-
-#: plugins/content_types/term_context/term_list.inc:104
-msgid "\"@s\" @type"
-msgstr "„@s“ @type"
-
-#: plugins/content_types/user_context/profile_fields.inc:12
-msgid "Profile category"
-msgstr "Profilkategorie"
-
-#: plugins/content_types/user_context/profile_fields.inc:14
-msgid "Contents of a single profile category."
-msgstr ""
-
-#: plugins/content_types/user_context/profile_fields.inc:64
-msgid "Profile content goes here."
-msgstr "Profilinhalt wird hier angezeigt."
-
-# Kontext sensitive
-#: plugins/content_types/user_context/profile_fields.inc:91
-msgid "Which category"
-msgstr "Welche Kategorie"
-
-#: plugins/content_types/user_context/profile_fields.inc:101
-msgid "Text to display if category has no data. Note that title will not display unless overridden."
-msgstr "Angezeigter Text, wenn die Kategorie keine Daten enthält. Der Titel wird nicht dargestellt, sofern er nicht übersteuert wurde."
-
-#: plugins/content_types/user_context/profile_fields.inc:122
-msgid "\"@s\" profile fields"
-msgstr "„@s“ Profilfelder"
-
-#: plugins/content_types/user_context/user_picture.inc:10
-msgid "User picture"
-msgstr "Benutzerbild"
-
-#: plugins/content_types/user_context/user_picture.inc:12
-msgid "The picture of a user."
-msgstr "Das Bild von einem Benutzer."
-
-#: plugins/content_types/user_context/user_picture.inc:37
-msgid "\"@s\" user picture"
-msgstr "„@s“ Benutzerbild"
-
-#: plugins/content_types/user_context/user_profile.inc:10
-msgid "User profile"
-msgstr "Benutzerprofil"
-
-#: plugins/content_types/user_context/user_profile.inc:12
-msgid "The profile of a user."
-msgstr "Das Profil eines Benutzers."
-
-#: plugins/content_types/user_context/user_profile.inc:54
-msgid "\"@s\" user profile"
-msgstr "„@s“ Benutzerprofil"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:11
-msgid "Vocabulary terms"
-msgstr "Vokabularbegriffe"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:13
-msgid "All the terms in a vocabulary."
-msgstr "Alle Begriffe in einem Vokabular."
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:66
-msgid "\"@s\" terms"
-msgstr "„@s“ Begriffe"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:73
-msgid "Maximum depth"
-msgstr "Maximale Tiefe"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:74
-msgid "unlimited"
-msgstr "Unbegrenzt"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:76
-msgid "Define the maximum depth of terms being displayed."
-msgstr "Maximale Tiefe der dargestellten Begriffe."
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:81
-msgid "Display as tree"
-msgstr "Als Baum anzeigen"
-
-#: plugins/content_types/vocabulary_context/vocabulary_terms.inc:83
-msgid "If checked, the terms are displayed in a tree, otherwise in a flat list."
-msgstr "Falls aktiviert, werden Begriffe in einem Baum dargestellt, ansonsten als einfache Liste."
-
-#: plugins/contexts/node.inc:17
-msgid "A node object."
-msgstr "Ein Beitragsobjekt."
-
-#: plugins/contexts/node.inc:28
-msgid "Enter the node ID of a node for this context."
-msgstr ""
-
-#: plugins/contexts/node.inc:91
-#: plugins/contexts/node_edit_form.inc:90
-msgid "'%title' [node id %nid]"
-msgstr "‚%title‘ [Beitrag-ID %nid]"
-
-#: plugins/contexts/node.inc:91
-#: plugins/contexts/node_edit_form.inc:90
-msgid "Open in new window"
-msgstr "In neuem Fenster öffnen"
-
-#: plugins/contexts/node.inc:92
-#: plugins/contexts/node_edit_form.inc:91
-msgid "Currently set to !link"
-msgstr "Derzeit auf !link gesetzt"
-
-#: plugins/contexts/node.inc:104
-msgid "Reset identifier to node title"
-msgstr ""
-
-#: plugins/contexts/node.inc:105
-msgid "If checked, the identifier will be reset to the node title of the selected node."
-msgstr "Sobald aktiviert, wird der Identifikator auf den Beitragstitel des ausgewählten Beitrages zurückgesetzt."
-
-#: plugins/contexts/node.inc:117
-#: plugins/contexts/node_edit_form.inc:108
-msgid "You must select a node."
-msgstr "Ein Beitrag muss ausgewählt werden."
-
-#: plugins/contexts/node.inc:143
-#: plugins/contexts/node_edit_form.inc:128
-msgid "Invalid node selected."
-msgstr "Ein ungültiger Beitrag wurde ausgewählt."
-
-#: plugins/contexts/node.inc:167
-msgid "Node revision ID"
-msgstr "Die Versions-ID der Beitragsversion."
-
-#: plugins/contexts/node.inc:169
-msgid "Author UID"
-msgstr "Autor-UID"
-
-#: plugins/contexts/node_add_form.inc:16
-msgid "A node add form."
-msgstr "Ein Formular zum Erstellen eines Beitrages."
-
-# English is missing "for this context"
-#: plugins/contexts/node_add_form.inc:25
-msgid "Enter the node type this context."
-msgstr "Die Beitragstyp für diesen Kontext eingeben."
-
-#: plugins/contexts/node_add_form.inc:79
-msgid "Submit @name"
-msgstr "@name speichern"
-
-#: plugins/contexts/node_add_form.inc:105
-msgid "Select the node type for this form."
-msgstr "Bestimmt den Inhaltstyp für dieses Formular."
-
-#: plugins/contexts/node_edit_form.inc:16
-msgid "A node edit form."
-msgstr "Ein Formular zum Bearbeiten eines Beitrages."
-
-#: plugins/contexts/node_edit_form.inc:24
-msgid "Enter the node ID of a node for this argument:"
-msgstr ""
-
-#: plugins/contexts/string.inc:16
-msgid "A context that is just a string."
-msgstr ""
-
-#: plugins/contexts/string.inc:21
-msgid "Raw string"
-msgstr ""
-
-#: plugins/contexts/string.inc:25
-msgid "Enter the string for this context."
-msgstr "Die Zeichenkette für diesen Kontext eingeben."
-
-#: plugins/contexts/term.inc:16
-msgid "A single taxonomy term object."
-msgstr "Ein einzelnes Taxonomie-Begriff-Objekt."
-
-#: plugins/contexts/term.inc:71
-#: plugins/contexts/vocabulary.inc:64
-msgid "Select the vocabulary for this form."
-msgstr "Das Vokabular für dieses Formular auswählen."
-
-#: plugins/contexts/term.inc:80
-msgid "Currently set to @term. Enter another term if you wish to change the term."
-msgstr ""
-
-#: plugins/contexts/term.inc:97
-msgid "Select a term from @vocabulary."
-msgstr "Einen Begriff von @vocabulary auswählen."
-
-#: plugins/contexts/term.inc:115
-msgid "Reset identifier to term title"
-msgstr ""
-
-#: plugins/contexts/term.inc:116
-msgid "If checked, the identifier will be reset to the term name of the selected term."
-msgstr "Sobald aktiviert, wird der Identifikator auf den Begriffsnamen des ausgewählten Begriffes zurückgesetzt."
-
-#: plugins/contexts/term.inc:129
-msgid "You must select a term."
-msgstr "Ein Beitrag muss ausgewählt werden."
-
-#: plugins/contexts/term.inc:140
-msgid "Invalid term selected."
-msgstr "Ein ungültiger Begriff wurde ausgewählt."
-
-#: plugins/contexts/terms.inc:16
-msgid "Taxonomy terms"
-msgstr "Taxonomie Begriffe"
-
-#: plugins/contexts/terms.inc:17
-msgid "Multiple taxonomy terms, as a group."
-msgstr "Mehrere Taxonomie-Begriffe, als Gruppe."
-
-#: plugins/contexts/terms.inc:25
-msgid "Term ID of first term"
-msgstr ""
-
-#: plugins/contexts/terms.inc:26
-msgid "Term ID of all term, separated by + or ,"
-msgstr ""
-
-#: plugins/contexts/terms.inc:27
-msgid "Term name of first term"
-msgstr ""
-
-#: plugins/contexts/terms.inc:28
-msgid "Term name of all terms, separated by + or ,"
-msgstr ""
-
-#: plugins/contexts/terms.inc:29
-msgid "Vocabulary ID of first term"
-msgstr "Vokabular-ID des ersten Begriffs"
-
-#: plugins/contexts/user.inc:16
-msgid "A single user object."
-msgstr "Ein einzelnes Benutzerobjekt."
-
-#: plugins/contexts/user.inc:25
-msgid "User name"
-msgstr "Benutzername"
-
-#: plugins/contexts/vocabulary.inc:15
-msgid "Taxonomy vocabulary"
-msgstr "Taxonomie-Vokabular"
-
-#: plugins/contexts/vocabulary.inc:16
-msgid "A single taxonomy vocabulary object."
-msgstr "Ein einzelnes Taxonomie-Vokabular-Objekt."
-
-#: plugins/relationships/book_parent.inc:14
-msgid "Book parent"
-msgstr "Ãœbergeordnetes Buch"
-
-#: plugins/relationships/book_parent.inc:16
-msgid "Adds a book parent from a node context."
-msgstr "Fügt ein übergeordnetes Buch aus einem Beitragskontext hinzu."
-
-#: plugins/relationships/book_parent.inc:63
-#: plugins/relationships/term_parent.inc:63
-msgid "Relationship type"
-msgstr "Beziehungstyp"
-
-#: plugins/relationships/book_parent.inc:64
-#: plugins/relationships/term_parent.inc:64
-msgid "Immediate parent"
-msgstr "Direktes, übergeordnetes Element"
-
-#: plugins/relationships/book_parent.inc:64
-msgid "Top level book"
-msgstr "Buch auf oberster Ebene"
-
-#: plugins/relationships/term_from_node.inc:14
-msgid "Term from node"
-msgstr "Begriff des Beitrages"
-
-#: plugins/relationships/term_from_node.inc:16
-msgid "Adds a taxonomy term from a node context; if multiple terms are selected, this will get the \"first\" term only."
-msgstr "Fügt einen Taxonomie-Begriff aus einem Beitragskontext hinzu. Sollten mehrere Begriffe ausgewählt werden, wird nur der „erste“ Begriff verwendet."
-
-#: plugins/relationships/term_parent.inc:14
-msgid "Term parent"
-msgstr "Ãœbergeordneter Begriff"
-
-#: plugins/relationships/term_parent.inc:16
-msgid "Adds a taxonomy term parent from a term context."
-msgstr "Fügt einen übergeordneten Taxonomie-Begriff aus einem Begriffskontext hinzu."
-
-#: plugins/relationships/term_parent.inc:64
-msgid "Top level term"
-msgstr "Begriff auf oberster Ebene"
-
-#: plugins/relationships/user_from_node.inc:16
-msgid "Creates the author of a node as a user context."
-msgstr ""
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.fr.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.fr.po
deleted file mode 100644
index 73bddc1..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.fr.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# $Id: ctools.fr.po,v 1.1 2009/08/16 20:10:09 hass Exp $
-#
-# French translation of Drupal (general)
-# Copyright 2009 Jérémy Chatard <jchatard at breek.fr>
-# Generated from files:
-#  ctools.install,v 1.11 2009/08/09 19:33:12 merlinofchaos
-#  ctools.info,v 1.3 2009/07/12 18:11:58 merlinofchaos
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-08-15 10:42+0200\n"
-"PO-Revision-Date: 2009-08-15 10:55+0100\n"
-"Last-Translator: NAME <EMAIL at ADDRESS>\n"
-"Language-Team: French <EMAIL at ADDRESS>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n>1);\n"
-
-#: ctools.install:25
-msgid "CTools CSS Cache"
-msgstr "Cache CSS de CTools"
-
-#: ctools.install:27
-msgid "Exists"
-msgstr "Présent"
-
-#: ctools.install:31
-msgid "The CTools CSS cache directory, %path could not be created due to a misconfigured files directory. Please ensure that the files directory is correctly configured and that the webserver has permission to create directories."
-msgstr "Le répertoire de cache CSS de CTools, %path n'a pas pu être créé car il y a un problème de configuration sur le répertoire files. Veuillez vous assurez que le répertoire files est correctement configuré et que le serveur web dispose des permissions suffisantes pour créer des répertoires."
-
-#: ctools.install:33
-msgid "Unable to create"
-msgstr "Création impossible"
-
-#: ctools.install:75
-msgid "A special cache used to store CSS that must be non-volatile."
-msgstr "Un cache spécial utilisé pour stocker le code CSS qui ne doit pas être géré de façon volatile."
-
-#: ctools.install:80
-msgid "The CSS ID this cache object belongs to."
-msgstr "L'ID CSS auquel cet objet mis en cache appartient."
-
-#: ctools.install:86
-msgid "The filename this CSS is stored in."
-msgstr "Le nom du fichier dans lequel ce CSS est stocké."
-
-#: ctools.install:91
-msgid "CSS being stored."
-msgstr "Règles CSS qui sont stockées."
-
-#: ctools.install:97
-msgid "Whether or not this CSS needs to be filtered."
-msgstr "Ce CSS doit-il ou non être filtré."
-
-#: ctools.install:113
-msgid "A special cache used to store objects that are being edited; it serves to save state in an ordinarily stateless environment."
-msgstr "Cache spécial utilisé pour enregistrer les objets en cours d'édition ; il sert à enregistrer l'état dans un environnement normalement sans état."
-
-#: ctools.install:119
-msgid "The session ID this cache object belongs to."
-msgstr "L'identifiant de session auquel cet objet de cache appartient."
-
-#: ctools.install:125
-msgid "The name of the object this cache is attached to."
-msgstr "Le nom de l'objet auquel ce cache est attaché."
-
-#: ctools.install:131
-msgid "The type of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache."
-msgstr "Le type d'objet auquel ce cache est rattaché ; cela représente essentiellement le propriétaire afin que d'autres sous-systèmes puissent utiliser ce cache."
-
-#: ctools.install:138
-msgid "The time this cache was created or updated."
-msgstr "Date de création ou de mise à jour de ce cache."
-
-#: ctools.install:143
-msgid "Serialized data being stored."
-msgstr "Données sérialisées en cours d'enregistrement."
-
-#: ctools.info:0
-msgid "Chaos tools"
-msgstr "Chaos tools"
-
-#: ctools.info:0
-msgid "A library of helpful tools by Merlin of Chaos."
-msgstr "Une librairie d'outils par Merlin of Cahos"
-
-#: ctools.info:0
-msgid "Chaos tool suite"
-msgstr "Chaos tool suite"
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.hu.po b/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.hu.po
deleted file mode 100644
index 4a92c0b..0000000
--- a/kolab.org/www/drupal-6.26/sites/all/modules/ctools/translations/ctools.hu.po
+++ /dev/null
@@ -1,2794 +0,0 @@
-# Hungarian translation of Chaos tool suite (6.x-1.2)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Chaos tool suite (6.x-1.2)\n"
-"POT-Creation-Date: 2009-12-17 17:26+0000\n"
-"PO-Revision-Date: 2009-12-14 17:28+0000\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-msgid "Home"
-msgstr "Címlap"
-msgid "Title"
-msgstr "Cím"
-msgid "Body"
-msgstr "Törzs"
-msgid "Pages"
-msgstr "Oldalak"
-msgid "context"
-msgstr "környezet"
-msgid "Status"
-msgstr "Állapot"
-msgid "Delete"
-msgstr "Törlés"
-msgid "Operations"
-msgstr "Műveletek"
-msgid "Value"
-msgstr "Érték"
-msgid "Type"
-msgstr "Típus"
-msgid "Author"
-msgstr "Szerző"
-msgid "List"
-msgstr "Lista"
-msgid "Cancel"
-msgstr "Mégsem"
-msgid "Description"
-msgstr "Leírás"
-msgid "Language"
-msgstr "Nyelv"
-msgid "Enable"
-msgstr "Engedélyezés"
-msgid "Disable"
-msgstr "Letilt"
-msgid "Access control"
-msgstr "Hozzáférés szabályozás"
-msgid "Disabled"
-msgstr "Tiltott"
-msgid "Enabled"
-msgstr "Engedélyezett"
-msgid "Comments"
-msgstr "Hozzászólások"
-msgid "Yes"
-msgstr "Igen"
-msgid "No"
-msgstr "Nem"
-msgid "Categories"
-msgstr "Kategóriák"
-msgid "Edit"
-msgstr "Szerkesztés"
-msgid "Search"
-msgstr "Keresés"
-msgid "Reset"
-msgstr "Alaphelyzet"
-msgid "None"
-msgstr "Nincs"
-msgid "Comment form"
-msgstr "Hozzászólás űrlap"
-msgid "User contact form"
-msgstr "Felhasználói kapcsolatfelvételi űrlap"
-msgid "Weight"
-msgstr "Súly"
-msgid "Admin title"
-msgstr "Adminisztratív cím"
-msgid "Related terms"
-msgstr "Kapcsolódó kifejezések"
-msgid "Depth"
-msgstr "Mélység"
-msgid "Category"
-msgstr "Kategória"
-msgid "Settings"
-msgstr "Beállítások"
-msgid "Name"
-msgstr "Név"
-msgid "Import"
-msgstr "Import"
-msgid "Export"
-msgstr "Export"
-msgid "Taxonomy term"
-msgstr "Taxonómia kifejezés"
-msgid "Back"
-msgstr "Vissza"
-msgid "Node ID"
-msgstr "Tartalom azonosítója"
-msgid "Label"
-msgstr "Címke"
-msgid "Save"
-msgstr "Mentés"
-msgid "Help"
-msgstr "Súgó"
-msgid "Default"
-msgstr "Alapértelmezés"
-msgid "Summary"
-msgstr "Összegzés"
-msgid "Update"
-msgstr "Frissítés"
-msgid "Views"
-msgstr "Nézetek"
-msgid "Access"
-msgstr "Hozzáférés"
-msgid "Add"
-msgstr "Hozzáadás"
-msgid "View"
-msgstr "Megtekintés"
-msgid "Path"
-msgstr "Útvonal"
-msgid "Vocabularies"
-msgstr "Szótárak"
-msgid "Display"
-msgstr "Megjelenítés"
-msgid "Node type"
-msgstr "Tartalomtípus"
-msgid "Menu"
-msgstr "Menü"
-msgid "results"
-msgstr "találatok"
-msgid "search"
-msgstr "keresés"
-msgid "Keywords"
-msgstr "Kulcsszavak"
-msgid "User"
-msgstr "Felhasználó"
-msgid "Continue"
-msgstr "Folytatás"
-msgid "Configure"
-msgstr "Beállítás"
-msgid "User ID"
-msgstr "Felhasználó ID"
-msgid "Error"
-msgstr "Hiba"
-msgid "Contact"
-msgstr "Kapcsolat"
-msgid "Node"
-msgstr "Tartalom"
-msgid "Node edit form"
-msgstr "Tartalom szerkesztése űrlap"
-msgid "Node add form"
-msgstr "Tartalom hozzádása űrlap"
-msgid "All"
-msgstr "Minden"
-msgid "Submit @name"
-msgstr "@name beküldése"
-msgid "Date format"
-msgstr "Dátumformátum"
-msgid "Page title"
-msgstr "Oldal címe"
-msgid "Block"
-msgstr "Blokk"
-msgid "Override title"
-msgstr "Cím felülírása"
-msgid "Pager ID"
-msgstr "Lapozó azonosító"
-msgid "Override URL"
-msgstr "URL felülbírálása"
-msgid ""
-"If this is set, override the View URL; this can sometimes be useful to "
-"set to the panel URL"
-msgstr ""
-"Ha ez be van kapocsolva, akkor felülírja a nézet webcímét. Néha "
-"hasznos lehet a panel webcímére állítani."
-msgid "Node links"
-msgstr "Tartalom hivatkozások"
-msgid "Taxonomy terms"
-msgstr "Taxonómia kifejezések"
-msgid "User picture"
-msgstr "Felhasználó képe"
-msgid "Breadcrumb"
-msgstr "Menümorzsa"
-msgid "Mission"
-msgstr "Küldetés"
-msgid "Custom"
-msgstr "Egyedi"
-msgid "Input format"
-msgstr "Beviteli forma"
-msgid "Node revision ID"
-msgstr "A tartalom változatának azonosítója"
-msgid "Vocabulary"
-msgstr "Szótár"
-msgid "Vocabulary ID"
-msgstr "Szótárazonosító"
-msgid "Term"
-msgstr "Kifejezés"
-msgid "Term ID"
-msgstr "Kifejezés azonosító"
-msgid "Term name"
-msgstr "Kifejezés neve"
-msgid "Overridden"
-msgstr "Felülírva"
-msgid "Mode"
-msgstr "Mód"
-msgid "Normal"
-msgstr "Normál"
-msgid "Advanced"
-msgstr "Haladó"
-msgid "Up"
-msgstr "Fel"
-msgid "System"
-msgstr "Rendszer"
-msgid "Terms"
-msgstr "Kifejezések"
-msgid "All views"
-msgstr "Összes nézet"
-msgid "Basic"
-msgstr "Alap"
-msgid "List type"
-msgstr "Lista típusa"
-msgid "Role"
-msgstr "Csoport"
-msgid "String"
-msgstr "Karaktersorozat"
-msgid "Exists"
-msgstr "Létezik"
-msgid "Argument"
-msgstr "Argumentum"
-msgid "Anonymous"
-msgstr "Anonymous"
-msgid "<All>"
-msgstr "< Mind >"
-msgid "Clone"
-msgstr "Klónozás"
-msgid "Normal menu item"
-msgstr "Normál menüelem"
-msgid "Down"
-msgstr "Le"
-msgid "Arguments"
-msgstr "Argumentumok"
-msgid "Order"
-msgstr "Sorrend"
-msgid "Add criteria"
-msgstr "Jellemző hozzáadása"
-msgid "Node: ID"
-msgstr "Tartalom: azonosító"
-msgid "Basic settings"
-msgstr "Alapbeállítások"
-msgid "Node template"
-msgstr "Tartalomsablon"
-msgid "Term description"
-msgstr "A kifejezés leírása"
-msgid "Child terms"
-msgstr "Gyerek kifejezések"
-msgid "Operation"
-msgstr "Művelet"
-msgid "Sort by"
-msgstr "Rendezés"
-msgid "Created date"
-msgstr "Létrehozás dátuma"
-msgid "Authoring information"
-msgstr "Szerzői információk"
-msgid "Some"
-msgstr "Néhány"
-msgid "Link to node"
-msgstr "Hivatkozás tartalomra"
-msgid "Change"
-msgstr "Változtat"
-msgid "Edit term"
-msgstr "Kifejezés szerkesztése"
-msgid "Feeds"
-msgstr "Hírcsatornák"
-msgid "Node title"
-msgstr "Tartalom címe"
-msgid "Node body"
-msgstr "Tartalom törzse"
-msgid "Search results"
-msgstr "Találatok"
-msgid "Your search yielded no results"
-msgstr "Nincs találat."
-msgid "unlimited"
-msgstr "korlátlan"
-msgid "Activity"
-msgstr "Tevékenység"
-msgid "Publishing options"
-msgstr "Közzétételi beállítások"
-msgid "First"
-msgstr "Első"
-msgid "Configure block"
-msgstr "Blokk beállítása"
-msgid "Second"
-msgstr "Másodperc"
-msgid "Fixed"
-msgstr "Rögzített"
-msgid "Revert"
-msgstr "Visszaállítás"
-msgid "Greater than"
-msgstr "Nagyobb jel"
-msgid "Open in new window"
-msgstr "Megnyitás új ablakban"
-msgid "All blogs"
-msgstr "Minden blog"
-msgid "Changed"
-msgstr "Módosított"
-msgid "User name"
-msgstr "Felhasználónév"
-msgid "Menu settings"
-msgstr "Menübeállítások"
-msgid "New"
-msgstr "Új"
-msgid "Relationships"
-msgstr "Kapcsolatok"
-msgid "Parent menu item"
-msgstr "Szülő menüpont"
-msgid "Loading..."
-msgstr "Betöltés..."
-msgid "Tabs"
-msgstr "Fülek"
-msgid "Storage"
-msgstr "Tárolás"
-msgid "Page name"
-msgstr "Oldal neve"
-msgid "Apply"
-msgstr "Alkalmaz"
-msgid "You must select a node."
-msgstr "Ki kell választani egy tartalmat."
-msgid "PHP Code"
-msgstr "PHP kód"
-msgid "Simple"
-msgstr "Egyszerű"
-msgid "Relationship type"
-msgstr "Kapcsolattípus"
-msgid "Menus"
-msgstr "Menük"
-msgid "Third"
-msgstr "Harmadik"
-msgid "Fourth"
-msgstr "Negyedik"
-msgid "Fifth"
-msgstr "Ötödik"
-msgid "Form"
-msgstr "Å°rlap"
-msgid "Override path"
-msgstr "Elérési út felülbírálása"
-msgid "Permission"
-msgstr "Jogosultság"
-msgid "Edit this term"
-msgstr "Kifejezés szerkesztése"
-msgid "Contexts"
-msgstr "Környezetek"
-msgid "Loading"
-msgstr "Betöltés"
-msgid "Node author"
-msgstr "Tartalom szerzője"
-msgid "Miscellaneous"
-msgstr "Egyéb"
-msgid "Attach files"
-msgstr "Fájlok csatolása"
-msgid "Views panes"
-msgstr "Views táblák"
-msgid "by @user"
-msgstr "@user által"
-msgid "Argument type"
-msgstr "Argumentumtípus"
-msgid "Deleted/missing block @module- at delta"
-msgstr "Törölt/hiányzó @module- at delta blokk"
-msgid "New custom content"
-msgstr "Új egyedi tartalom"
-msgid "Create a completely custom piece of HTML content."
-msgstr "Egy teljesen egyedi HTML tartalom létrehozása."
-msgid "Context"
-msgstr "Környezet"
-msgid "General form"
-msgstr "Általános űrlap"
-msgid "Form goes here."
-msgstr "Ide jön az űrlap."
-msgid "\"@s\" base form"
-msgstr "„@s” alap űrlap"
-msgid "Node type description"
-msgstr "Tartalom típusának leírása"
-msgid "Attached files"
-msgstr "Csatolt fájlok"
-msgid "Attached files go here."
-msgstr "Ide jönnek a csatolt fájlok."
-msgid "A list of files attached to the node."
-msgstr "Egy lista a tartalomhoz csatolt fájlokról."
-msgid "\"@s\" attachments"
-msgstr "„@s” csatolmány"
-msgid "Book navigation"
-msgstr "Könyv navigáció"
-msgid "Book navigation goes here."
-msgstr "Ide jön a könyv navigációja."
-msgid "\"@s\" book navigation"
-msgstr "„@s” könyv navigáció"
-msgid "Add comment"
-msgstr "Új hozzászólás"
-msgid "Comment form here."
-msgstr "Ide jön a hozzászólás űrlapja."
-msgid "A form to add a new comment."
-msgstr "Egy űrlap új hozzászólás hozzáadásához."
-msgid "\"@s\" comment form"
-msgstr "„@s” hozzászólás űrlap"
-msgid "Node comments"
-msgstr "Tartalom hozzászólásai"
-msgid "Node comments go here."
-msgstr "Ide jönnek a tartalom hozzászólásai."
-msgid "The comments of the referenced node."
-msgstr "A hivatkozott tartalom hozzászólásai."
-msgid "Sort"
-msgstr "Sorbarendezés"
-msgid "!a comments per page"
-msgstr "!a hozzászólás egy oldalon"
-msgid "Pager"
-msgstr "Lapozó"
-msgid "\"@s\" comments"
-msgstr "„@s” hozzászólásai"
-msgid "Node content"
-msgstr "Tartalom"
-msgid "The content of the referenced node."
-msgstr "A hivatkozott tartalom tartalma."
-msgid "Node title."
-msgstr "Tartalom címe."
-msgid "Node content goes here."
-msgstr "Ide jön a tartalom."
-msgid "Edit node"
-msgstr "Tartalom szerkesztése"
-msgid "Edit this node"
-msgstr "Ennek a tartalomnak a szerkesztése"
-msgid "Link title to node"
-msgstr "A cím hivatkozzon a tartalomra"
-msgid "Check here to make the title link to the node."
-msgstr "Bejelölve a cím a tartalomra fog hivatkozni."
-msgid "No extras"
-msgstr "Nincsenek extrák"
-msgid ""
-"Check here to disable additions that modules might make to the node, "
-"such as file attachments and CCK fields; this should just display the "
-"basic teaser or body."
-msgstr ""
-"Bejelölve letiltja a modulok által a tartalomhoz biztosított olyan "
-"kiegészítéseket, mint a csatolt fájlok és a CCK mezők; ez csak "
-"az alap bevezetőt és törzset jeleníti meg."
-msgid "Identifier"
-msgstr "Azonosító"
-msgid "\"@s\" content"
-msgstr "„@s” tartalom"
-msgid "Node form publishing options"
-msgstr "Tartalom űrlap közzétételi beállítások"
-msgid "Publishing options on the Node form."
-msgstr "Közzétételi beállítások a tartalom űrlapon."
-msgid "Node form author information"
-msgstr "Tartalom űrlap szerzői információ"
-msgid "Author information on the Node form."
-msgstr "Szerzői információ a tartalom űrlapon."
-msgid "Node form input format"
-msgstr "Tartalom űrlap beviteli forma"
-msgid "Input format for the body field on a node."
-msgstr "A törzs mező beviteli formája egy tartalomban."
-msgid "Node form comment settings"
-msgstr "Tartalom űrlap hozzászólás beállítások"
-msgid "Comment settings on the Node form."
-msgstr "Hozzászólás beállítások a tartalom űrlapon."
-msgid "Node form menu settings"
-msgstr "Tartalom űrlap menü beállítások"
-msgid "Node form file attachments"
-msgstr "Tartalom űrlap csatolmányok"
-msgid "File attachments on the Node form."
-msgstr "Csatolmányok a tartalom űrlapon."
-msgid "Node form categories"
-msgstr "Tartalom űrlap kategóriák"
-msgid "Taxonomy categories for the node."
-msgstr "Taxonómia kategóriák a tartalomhoz."
-msgid "Node form book options"
-msgstr "Tartalom űrlap könyvvázlat beállítások"
-msgid "Book options for the node."
-msgstr "Könyvvázlat beállítások a tartalomhoz."
-msgid "Publishing options."
-msgstr "Közzétételi beállítások."
-msgid "Comment options"
-msgstr "Hozzászólás beállítások"
-msgid "Comment options."
-msgstr "Hozzászólás beállítások."
-msgid "Authoring information."
-msgstr "Szerzői információk."
-msgid "Menu options"
-msgstr "Menü beállítások"
-msgid "Menu options."
-msgstr "Menü beállítások."
-msgid "URL path options"
-msgstr "Webcímútvonal beállítások"
-msgid "URL Path options."
-msgstr "Webcímútvonal beállítások."
-msgid "Attach files."
-msgstr "Fájlok csatolása."
-msgid "Categories."
-msgstr "Kategóriák."
-msgid "Book options"
-msgstr "Könyvvázlat beállítások"
-msgid "Book options."
-msgstr "Könyvvázlat beállítások."
-msgid "Input format."
-msgstr "Beviteli forma."
-msgid "\"@s\" @type"
-msgstr "„@s” @type"
-msgid "Node type description goes here."
-msgstr "Ide jön a tartalom típusának leírása."
-msgid "Node type description."
-msgstr "Tartalom típusának leírása."
-msgid "\"@s\" type description"
-msgstr "„@s” típusleírás"
-msgid "Profile content goes here."
-msgstr "Ide jön a profil tartalma."
-msgid "Which category"
-msgstr "Melyik kategória"
-msgid ""
-"Text to display if category has no data. Note that title will not "
-"display unless overridden."
-msgstr ""
-"A megjelenített szöveg, ha a kategória nem rendelkezik adattal. Meg "
-"kell jegyezni, hogy a cím nem fog megjelenni felülírás nélkül."
-msgid "\"@s\" profile fields"
-msgstr "„@s” profilmezők"
-msgid "Term description goes here."
-msgstr "Ide jön a kifejezés leírása."
-msgid "Term description."
-msgstr "Kifejezés leírása."
-msgid "\"@s\" term description"
-msgstr "„@s” kifejezés leírása"
-msgid "List of related terms"
-msgstr "Kapcsolódó kifejezések listája"
-msgid ""
-"Terms related to an existing term; may be child, siblings or top "
-"level."
-msgstr ""
-"Egy létező kifejezéshez kapcsolódó kifejezések. Lehet gyermek, "
-"testvér vagy legfelső szintű."
-msgid "Sibling terms"
-msgstr "Testvér kifejezések"
-msgid "Top level terms"
-msgstr "Legfelső szintű kifejezés"
-msgid "Term synonyms"
-msgstr "Szinonimák"
-msgid "Which terms"
-msgstr "Mely kifejezések"
-msgid "Unordered"
-msgstr "Rendezetlen"
-msgid "Ordered"
-msgstr "Rendezett"
-msgid "The picture of a user."
-msgstr "Egy kép a felhasználóról."
-msgid "\"@s\" user picture"
-msgstr "„@s” felhasználó képe"
-msgid "User profile"
-msgstr "Felhasználói profil"
-msgid "The profile of a user."
-msgstr "Egy felhasználó profilja."
-msgid "\"@s\" user profile"
-msgstr "„@s” felhasználói profil"
-msgid "Vocabulary terms"
-msgstr "Szótárkifejezések"
-msgid "All the terms in a vocabulary."
-msgstr "Az összes kifejezés egy szótárban."
-msgid "\"@s\" terms"
-msgstr "„@s” kifejezés"
-msgid "Maximum depth"
-msgstr "Maximális mélység"
-msgid "Define the maximum depth of terms being displayed."
-msgstr ""
-"A megjelenített kifejezések maximális mélységének "
-"meghatározása."
-msgid "Display as tree"
-msgstr "Megjelenítés fa nézetben"
-msgid ""
-"If checked, the terms are displayed in a tree, otherwise in a flat "
-"list."
-msgstr ""
-"Ha ez be van kapcsolva, akkor a kifejezések egy fában jelennek meg, "
-"különben egy egyszerű listában."
-msgid "A node object."
-msgstr "Egy tartalom objektum."
-msgid "Currently set to !link"
-msgstr "Jelenlegi beállítás: !link"
-msgid "Invalid node selected."
-msgstr "Érvénytelen tartalom lett kiválasztva."
-msgid "A node add form."
-msgstr "Tartalom hozzádása űrlap"
-msgid "Select the node type for this form."
-msgstr "Tartalomtípus kiválasztása ehhez az űrlaphoz."
-msgid "A node edit form."
-msgstr "Egy tartalom szerkesztése űrlap"
-msgid "A single taxonomy term object."
-msgstr "Egy egyszerű taxonómia kifejezésobjektum."
-msgid "A single user object."
-msgstr "Egy egyszerű felhasználó objektum."
-msgid "Taxonomy vocabulary"
-msgstr "Taxonómiaszótár"
-msgid "A single taxonomy vocabulary object."
-msgstr "Egy egyszerű taxonómia szótár objektum."
-msgid "Select the vocabulary for this form."
-msgstr "Szótár kiválasztása ehhez az űrlaphoz."
-msgid "argument"
-msgstr "argumentum"
-msgid "Add argument"
-msgstr "Argumentum hozzáadása"
-msgid "relationship"
-msgstr "kapcsolat"
-msgid "Add relationship"
-msgstr "Kapcsolat hozzáadása"
-msgid "Add context"
-msgstr "Környezet hozzáadása"
-msgid "Required contexts"
-msgstr "Szükséges környezetek"
-msgid "required context"
-msgstr "szükséges környezet"
-msgid "Add required context"
-msgstr "Szükséges környezet hozzáadása"
-msgid "Close Window"
-msgstr "Ablak bezárása"
-msgid "Close window"
-msgstr "Ablak bezárása"
-msgid "Add @type \"@context\""
-msgstr "@type „@context” hozzáadása"
-msgid "Edit @type \"@context\""
-msgstr "@type @context\" szerkesztése"
-msgid "Enter a name to identify this !type on administrative screens."
-msgstr ""
-"Név megadása, ami !type azonosítására szolgál az "
-"adminisztrációs oldalakon."
-msgid "Keyword"
-msgstr "Kulcsszó"
-msgid "Enter a keyword to use for substitution in titles."
-msgstr "Címekben helyettesítéshez használt kulcsszó megadása."
-msgid "Ignore it; content that requires this context will not be available."
-msgstr ""
-"Mellőzve; nem elérhető olyan tartalom, amelyhez ez a környezet "
-"szükséges."
-msgid ""
-"If the argument is missing or is not valid, select how this should "
-"behave."
-msgstr ""
-"Ki kell választani a működést, ha az argumentum hiányzik vagy nem "
-"érvényes."
-msgid "Argument @count"
-msgstr "Argumentum @count"
-msgid "Context @count"
-msgstr "Környezet @count"
-msgid "Configure !subtype_title"
-msgstr "!subtype_title beállítása"
-msgid "Unknown context"
-msgstr "Ismeretlen környezet"
-msgid "No context"
-msgstr "Nincs környezet."
-msgid ""
-"You may use %keywords from contexts, as well as %title to contain the "
-"original title."
-msgstr ""
-"%kulcsszavak használhatóak a környezetekből, továbbá %title "
-"tartalmazza az eredeti címet."
-msgid "Context %count"
-msgstr "Környezet %count"
-msgid "Module name"
-msgstr "Modulnév"
-msgid "Enter the module name to export code to."
-msgstr "A modul nevének megadása amibe a kódot exportálni kell."
-msgid "Local"
-msgstr "Helyi"
-msgid "Panel"
-msgstr "Panel"
-msgid "Add a node from your site as content."
-msgstr "A webhely egy tarlamának hozzáadása tartalomként."
-msgid ""
-"To use a NID from the URL, you may use %0, %1, ..., %N to get URL "
-"arguments. Or use @0, @1, @2, ..., @N to use arguments passed into the "
-"panel."
-msgstr ""
-"A webcímben található tartalomazonosító kinyeréséhez a %0, %1, "
-"..., %N hasznáható, illetve @0, @1, @2, ..., @N a panelnak átadott "
-"argumentumok használatához."
-msgid "Leave node title"
-msgstr "Tartalom címének meghagyása"
-msgid ""
-"Advanced: if checked, do not touch the node title; this can cause the "
-"node title to appear twice unless your theme is aware of this."
-msgstr ""
-"Haladó: ha be van jelölve, nem nyúl a tartalom címéhez; a cím "
-"kétszer jelenhet meg, kivéve ha a smink gondoskodik erről."
-msgid "Invalid node"
-msgstr "Érvénytelen tartalom"
-msgid "Node loaded from @var"
-msgstr "A tartalom betöltve innen: @var"
-msgid "Deleted/missing node @nid"
-msgstr "Törölt/hiányzó tartalom @nid"
-msgid "Path is required."
-msgstr "Az elérési út megadása szükséges."
-msgid "Argument wildcard"
-msgstr "Argumentumot helyettesítő karakter"
-msgid "No argument"
-msgstr "Nincs argumentum"
-msgid "From context"
-msgstr "Környezetből"
-msgid "From panel argument"
-msgstr "Panel argumentumból"
-msgid "Input on pane config"
-msgstr "Bemenet a táblabeállításon"
-msgid "Required context"
-msgstr "Szükséges környezet"
-msgid &q