Skip to content

Instantly share code, notes, and snippets.

@christianchristensen
Created October 2, 2011 15:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save christianchristensen/1257554 to your computer and use it in GitHub Desktop.
Save christianchristensen/1257554 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
diff --git a/789946_cck_views_handler.patch b/789946_cck_views_handler.patch
deleted file mode 100644
index cccb784..0000000
--- a/789946_cck_views_handler.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: includes/views/handlers/content_plugin_style_php_array_ac.inc
-===================================================================
-RCS file: /cvs/drupal-contrib/contributions/modules/cck/includes/views/handlers/Attic/content_plugin_style_php_array_ac.inc,v
-retrieving revision 1.1.2.3
-diff -u -p -r1.1.2.3 content_plugin_style_php_array_ac.inc
---- includes/views/handlers/content_plugin_style_php_array_ac.inc 4 Nov 2009 15:31:28 -0000 1.1.2.3
-+++ includes/views/handlers/content_plugin_style_php_array_ac.inc 17 Jun 2010 18:42:47 -0000
-@@ -13,6 +13,11 @@ class content_plugin_style_php_array_ac
- $sets = $this->render_grouping($this->view->result, $this->options['grouping']);
-
- $base_field = $this->view->base_field;
-+ $base_field_alias = $this->view->field[$base_field]->field_alias;
-+ if( isset($base_field_alias) ){
-+ $base_field = $base_field_alias;
-+ }
-+
- $title_field = $this->display->display_options['content_title_field'];
- $title_field_alias = $this->view->field[$title_field]->field_alias;
-
-@@ -21,14 +26,16 @@ class content_plugin_style_php_array_ac
- $this->view->row_index = 0;
- foreach ($sets as $title => $records) {
- foreach ($records as $label => $row) {
-- $results[$row->{$base_field}] = array(
-- 'title' => $row->{$title_field_alias},
-- 'rendered' => $this->row_plugin->render($row),
-- );
-- $this->view->row_index++;
-+ if( !is_null($row->{$base_field}) ) {
-+ $results[$row->{$base_field}] = array(
-+ 'title' => $row->{$title_field_alias},
-+ 'rendered' => $this->row_plugin->render($row),
-+ );
-+ $this->view->row_index++;
-+ }
- }
-- }
-- unset($this->view->row_index);
-- return $results;
- }
-+ unset($this->view->row_index);
-+ return $results;
-+}
- }
diff --git a/998494-21-Advanced-View-num-items.patch b/998494-21-Advanced-View-num-items.patch
deleted file mode 100644
index 147f737..0000000
--- a/998494-21-Advanced-View-num-items.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/modules/nodereference/nodereference.module b/modules/nodereference/nodereference.module
-index 5f49e79..7ff87b4 100644
---- a/modules/nodereference/nodereference.module
-+++ b/modules/nodereference/nodereference.module
-@@ -861,7 +861,12 @@ function _nodereference_potential_references_views($field, $string = '', $match
-
- // Limit result set size.
- $limit = isset($limit) ? $limit : 0;
-- $view->display_handler->set_option('items_per_page', $limit);
-+ if (method_exists($view, 'set_items_per_page')) {
-+ $view->set_items_per_page($limit);
-+ }
-+ else {
-+ $view->display_handler->set_option('items_per_page', $limit);
-+ }
-
- // Get arguments for the view.
- if (!empty($field['advanced_view_args'])) {
-diff --git a/modules/userreference/userreference.module b/modules/userreference/userreference.module
-index 2132aaf..ebbbe15 100644
---- a/modules/userreference/userreference.module
-+++ b/modules/userreference/userreference.module
-@@ -726,7 +726,12 @@ function _userreference_potential_references_views($field, $string = '', $match
-
- // Limit result set size.
- $limit = isset($limit) ? $limit : 0;
-- $view->display_handler->set_option('items_per_page', $limit);
-+ if (method_exists($view, 'set_items_per_page')) {
-+ $view->set_items_per_page($limit);
-+ }
-+ else {
-+ $view->display_handler->set_option('items_per_page', $limit);
-+ }
-
- // Get arguments for the view.
- if (!empty($field['advanced_view_args'])) {
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 47c08a1..6a96dd1 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,66 +1,49 @@
-//$Id: CHANGELOG.txt,v 1.1.6.397 2010/06/09 13:22:28 karens Exp $
-CCK 6.x-2.x
+CCK 6.x-3.x
===========
-Features:
-- #692822 by Dave Reid, add authoring info and publishing options to CCK extra fields.
-- #670344 by dagmar: Make CCK compatible with both, views 2 and views 3.
+CCK 6.x-3.0-alpha3
+==================
-Bugfixes:
-- #470470 by neilnz, use iLIKE for postgres selects.
-- #769592 by vkareh, add default values to nodeapi.
-- #714762 by Robbert, make diff module integration PHP5 compliant.
-- Add db_rewrite_sql() check to nodereference formatters.
-- #625768 CCK 6.x-2.6, got fatal error on update.php while running userreference_update_6002().
-- #649106 by thekevinday: Fix content_copy_form_alter(), where $form_state argument is not passed by reference.
+- #1081072 Imagefield validation does not use error_element, needs a tweak so that the empty required field gets highlighted correctly.
+- #1081072 Imagefield validation requires that we alter the field_info values or it will still require an image in an empty group.
+- Fix miscellaneous undefined index errors.
+- #1081072 Tweak fix for required fields inside non-required group so not all fields are highlighted.
+- #1093928 Required option lists do not have an empty option available. Add one to avoid 'An illegal choice has been detected' errors for empty groups.
+- #1081072 Fix Cannot use a scalar value as an array problem when using optionwidgets.
-CCK 6.x-2.6
-===========
-
-Please visit update.php apply pending updates after uploading the new files.
-
-This release:
-- The main reason to pack this release is to keep CCK in sync with recent changes in Views 2.7 that broke the advanced views feature in Node reference fields.
+CCK 6.x-3.0-alpha2
+==================
Features:
-- #244896 by stella, canaryMason - Add incremental classes for multiple value fields in views.
-- #227129 by igor.ro - Expose "delta" column in multiple value fields to Views.
-- #531662 by neochief - i18n support. Allow external modules to translate field labels, descriptions and allowed values list as typed in the field settings form.
-- #531662 i18n support for fieldgroups.
-- #558420 Accept trimmed titles in nodereference autocomplete validation to prevent title mismatch errors when title ends with space.
-- #596428 by NancyDru - Allow external modules alter the content type list.
+- #536260 by Agileware: Make "Add more values" button text themeable.
Bugfixes:
-- #416134 Userreference, impossible to filter allowed values by blocked users. Requires update.php.
-- #545942 warning: array_filter() [function.array-filter]: The first argument should be an array in userreference_update_6002().
-- #521002 Fix validation errors when using optgroups in allowed values for select elements.
-- #550252 by GuyPaddock - content_db_index_exists produces SQL errors when creating node reference fields for MySQL 4 (related to #231453).
-- #551280 by xurizaemon - Typo fix for "this field cannot hold more that 3 values" error message.
-- #558744 by chellomere - Fix one of the swedish translation strings to be correct, and much clearer.
-- #562260 by przadka - content_db_index_exists() has wrong syntax for PostgreSQL.
-- #567168 by jcmarco - Checkbox required not defined for on/off widgets.
-- #568430 by Jody Lynn - Bad @see in content-field.tpl.php.
-- #572672 by Jan van Diepen - Remove redundant (and bad) inclusion of node/content_types.inc in content_copy_import_form_submit().
-- #585048 Setting "All users" in "User status that can be referenced" option reverts to "Blocked users".
-- #589306 warning: Invalid argument supplied for foreach() in includes/panels/content_types/content_field.inc on line 166.
-- #605152 by pokurek - Missing number formatter fr_2.
-- #604830 by mattyoung - 32 characters limit on field and group identifiers in "Manage fields" screen.
-- #464030 by eojthebrave - Typo in content_copy.module help.
-- #614292 by DeFr - Fix CCK Reference fields based on views broken by recent change in views_plugin_style Views 2.7 (#502348).
-
-CCK 6.x-2.5
-===========
-
-A few files have been added and/or removed in this package. It is recommended to replace the whole CCK directory with the new one.
-Please visit update.php apply pending updates after installing the new files.
-It also worths to mention that Panels 3 integration has been reviewed and enhanced with display options for fiels and field groups.
-IMPORTANT: All sites using Diff module with CCK for Drupal 6 are strongly encouraged to upgrade to CCK 2.5 (see #538872 below).
+- Fix Use of undefined constant _add_new_group.
+- Fix undefined index '#depth'.
+- Fix warning: Creating default object from empty value in template_preprocess_content_display_overview_form() (line 134 of ..theme.inc).
+- #1063338 by DeFr: Fix undefined indexes for FIELD_NAME_rendered and others.
+- Fix undefined group name index in fieldgroup_nodeapi.
+- #1053566 by DamienMcKenna: Fix undefined index errors in _fieldgroup_get_tree().
+- #1081072 Must be able to save empty, non-required, multigroup, even if it contains required fields.
+- #522564 Remove empty groups even if not marked 'remove'.
+- Multigroup validation was defaulting to 'required' when created, should default to 'not required'.
+- #1092044 Make sure all multigroup formats are preserved, even if not visible on the current tab.
+
+CCK 6.x-3.0-alpha1
+==================
Features:
+- #1049790 Add tests for fieldgroup.
+- #849420 by Roberto Gerola, rconstantine, thekevinday, ericduran, KarenS Add ability to nest fieldgroups within other fieldgroups.
+- #1008184 by merlinofchaos, bojanz, dereine, yched: Adapt to Views 3 "semantic views" feature (backwards compatible with Views 2)
+- #932680 by Dave Reid: Token integration : allow using of Token API's new $options
+- #863226 by KarenS, make sure we have a function that will return inactive instances when other instances of the same field are still active.
+- #692822 by Dave Reid, add authoring info and publishing options to CCK extra fields.
- #428650 Conditional cache/menu rebuild for content CRUD methods.
- #334945 Save default values when field is hidden because of access permissions.
-- #503258 by eaton: allow 'extra fields' to provide 'configure' and 'remove' links.
+- #196421 Deleting unwanted multiple values / multiple values delta issues.
+- #119102 Combo field - group different fields into one.
- #505278 Panels 3 and multiple node type fields.
- #495582 Reviewed Panels 3 integration (prep work for combo / multigroups).
Implementation of fieldgroup_view_group() that can be used to render field groups.
@@ -69,9 +52,39 @@ Features:
- #523072 by merlinofchaos - Have nodereference relationships limit CCK field availability as well.
- #519870 by joachim - Add a note to say offset starts from 0 in grouping options for views handler for multiple values fields.
- #231453 Allow fields index their columns. Implemented for reference value column in node and user reference fields. Needs update.php.
+- #536730 Enhance cells in multiple column tables with CSS classes related to the fields they contain.
- #521002 by mh86 - Support for optgroups in allowed values for select elements.
+- Render field descriptions as cell titles when multigroup edit mode is configured with multiple column option.
+- #244896 by stella, canaryMason - Add incremental classes for multiple value fields in views.
+- #416154 Preparation for Content Multigroup integration with Views.
+- #416154 by coltrane, skybow - Synchronized deltas Views integration: Filter on equal deltas in multigroups.
+- #227129 by igor.ro - Expose "delta" column in multiple value fields to Views.
+- #531662 by neochief - i18n support. Allow external modules to translate field labels, descriptions and allowed values list as typed in the field settings form.
+- #531662 i18n support for fieldgroups.
+- #558420 Accept trimmed titles in nodereference autocomplete validation to prevent title mismatch errors when title ends with space.
+- #580156 Wrap multigroups with unique CSS classes in node view.
+- #544542 Allow subgroup fieldsets in a multigroup to be collapsible.
+- #596428 by NancyDru - Allow external modules alter the content type list.
+- #670344 by dagmar: Make CCK compatible with both, views 2 and views 3.
Bugfixes:
+- Multigroups were defaulting to 'required' when created, should default to 'not required'.
+- #766734 Restructure multigroup field layout to be consistent with other fieldgroups, and use
+ content_get_nested_elements() to grab the right values no matter how the fields are structured.
+- #739490 by foripepe: Token integration - fix notices during token generation
+- #986612 by Dave Reid: Token integration - fix variable name clash (harmless in normal cases)
+- #435520 by yched, sun: Fix text fields rendered as 'n/a' in some cases
+- #728472 by Darren Oh : Ensure the module's preprocess functions run first
+- #894880 by yched: fix notices in check_plain() when rendering empty 'plain text' values
+- #705512 by cha0s, roderick: 'add more' button - fix PHP5.3 compatibility
+- #736440 by yched, dhthwy: fix memory leaks on long running migration scripts (e.g. migrate.module)
+- #887742 by yched: fix notices in _content_get_formatter() in some Views
+- #470470 by neilnz, use iLIKE for postgres selects.
+- #769592 by vkareh, add default values to nodeapi.
+- #714762 by Robbert, make diff module integration PHP5 compliant.
+- Add sanitization to nodereference formatters.
+- #482774 Update breaks when CCK is disabled.
+- #479994 by quicksketch: fix "add more' button with devel.module's query logging (multigroup).
- #499696 by DeFr - Noderefernce / Userreference: fix Views mode when the view has exposed filters.
- #498924 #multiple FAPI attribute is used for a radios and checkboxes in content export forms.
- #409144 Review extra elements for node edit form provided by core modules.
@@ -81,514 +94,43 @@ Bugfixes:
- #522112 by hefox, prevent malformed condition for vid IN () in views handler for multiple values fields.
- #505278 by Michelle, merlinofchaos - Provide backward compatibility with previous method to build Panels 3 subtype names for fields.
- #523864 Minor coding style issues in Panels 3 relationships implementations.
+- #83787 Fix PHP warning: array_merge(): Argument #1 is not an array in content_multigroup.node_form.inc on line 432.
- #481568 by merlinofchaos - Empty property error when attempting to save a user reference in Panels.
- #510396 by yched - Use field/type definition to render fields in views.
+- #526500 Fix maximum number of deltas in multigroups with explicit number of repeats defined.
- #393020 by auth - Fieldgroup data is lost when importing to module provided content type with group info for existing fields.
- #538872 Diff does not respect field permissions.
+- #522558 Date field jumps delta when date field is emptied or fieldset is deleted.
+- #416134 Userreference, impossible to filter allowed values by blocked users. Requires update.php.
+- Minor fix in multigroup. Remove the check for module_exists('fieldgroup'), which is something implicit.
+- Minor fix in multigroup. Remove unused argument $form_id from invocation to worker functions in hook_form_alter().
+- #545942 warning: array_filter() [function.array-filter]: The first argument should be an array in userreference_update_6002().
+- #521002 Fix validation errors when using optgroups in allowed values for select elements.
+- #550252 by GuyPaddock - content_db_index_exists produces SQL errors when creating node reference fields for MySQL 4 (related to #231453).
+- #551280 by xurizaemon - Typo fix for "this field cannot hold more that 3 values" error message.
+- #558744 by chellomere - Fix one of the swedish translation strings to be correct, and much clearer.
+- #562260 by przadka - content_db_index_exists() has wrong syntax for PostgreSQL.
+- #567168 by jcmarco - Checkbox required not defined for on/off widgets.
+- #568430 by Jody Lynn - Bad @see in content-field.tpl.php.
+- #572672 by Jan van Diepen - Remove redundant (and bad) inclusion of node/content_types.inc in content_copy_import_form_submit().
+- #585048 Setting "All users" in "User status that can be referenced" option reverts to "Blocked users".
+- #589306 warning: Invalid argument supplied for foreach() in includes/panels/content_types/content_field.inc on line 166.
+- #551188 "Add another item" for FileField widgets causes Invalid argument supplied for foreach() in content.node_form.inc on line 456.
+- #605152 by pokurek - Missing number formatter fr_2.
+- #618910 Multigroup filter fails when using relationship.
+- #538458 Do not allow to change the widget type for fields in multigroups when the change is not compatible.
+- #604830 by mattyoung - 32 characters limit on field and group identifiers in "Manage fields" screen.
+- #464030 by eojthebrave - Typo in content_copy.module help.
+- #577590 Add a visual indication to the fieldgroup title if the multigroup is required.
+- #577590 Prevent validation errors when multigroup is not required and no subgroup of fields if filled in.
+- #577580 Multigroup fields with empty values loose their ordering when saved via node_save.
+- #614292 by DeFr - Fix CCK Reference fields based on views broken by recent change in views_plugin_style Views 2.7 (#502348).
+- #625768 CCK 6.x-2.6, got fatal error on update.php while running userreference_update_6002().
+- #640488 warning: max() [function.max]: Array must contain at least one element in content.module on line 1044.
+- #649106 by thekevinday: Fix content_copy_form_alter(), where $form_state argument is not passed by reference.
+- #669800 Do not enforce required attribute for multiple value fields the current user is not allowed to edit.
+- Fix validation of required fields and multigroups.
+- SA-CONTRIB-2010-088 follow up fix for nodereference_autocomplete_access() and content_access().
-CCK 6.x-2.4
-===========
-
-Hotfix release for 2.3:
-- #482774 Update breaks when CCK is disabled.
-
-CCK 6.x-2.3
-===========
-
-Please visit update.php apply pending updates after uploading the new files.
-
-This release:
-- fixes a few bugs,
-- adss initial Panels 3 support (Panels 2 not supported),
-- removes the unfinished Multigroup feature (work on this will continue in an experimental branch)
-
-Features:
-- #414298 by Michelle, merlinofchaos - Add Panels 3 integration for fields and fieldgroups.
-- #419678 Views integration: expose CCK fields to 'Node revision' Views.
-- #399778 by Benjamin Melençon - Nodereference / Userreference: Add 'size' setting to autocomplete widgets.
-- #479044 by merlinofchaos - Add Panels 3 relatioships for nodereference and userreference fields.
-
-Bugfixes:
-- #407446 by quicksketch: prevent double serialization during per-field to per-type migration.
- Followup: update function to fix potentially existing corrupted data.
-- #407344 fix html appearing in selects in Views filters.
-- #409320 by bengtan: Nodereference / Userreference - fix 'this post cannot be referenced' for views-defined referenceable nodes/users, when the view definition has a 'limit'.
-- #409398 by markus_petrux - fix handling of fieldgroup_types() (prep work for combo / multigroups)
-- #356908 Number : Correclty filter 'prefix' and 'suffix' properties.
-- #412058 by fago - Rules integration: Fixed condition 'field has value' when operating on viewed nodes.
-- #413792 Views integration: fix fields using 'multiple formatters' and not 'group multiple fields'. Thanks Crell and quicksketch for the detective work.
-- #421126 Views integration: Use value aliases in argument title replacements for text / number fields.
-- #397358 by Darren Oh, yched, markus_petrux - Views integration: Use node title / user name in argument title replacements for nodereference and userreference argument fields.
-- #428400 Views integration: Fix fatal error with Views 2.4 (views_handler_filter_float has moved). Preserved compatibility with Views 2.3.
-- #447562 by markus_petrux: fix non-XHTML markup on 'Manage fields' screen.
-- #369364 Views integration: fix non-XHTML markup when displaying fields with the 'group multiple values' option.
-- #441412 by jcnventura - Add 'Print' display context on 'Display fields' pages when book.module is enabled.
-- #458952 Let different modules defined the same build_mode information.
-- #383038 by markDrupal - Userreference: fix broken 'reverse links' with fields in per-type table.
-- #479074 by rickward: prevent minor XSS vulnerability when displaying user-submitted 'Body field' labels.
-- #479994 by quicksketch: fix "add more' button with devel.module's query logging.
-
-CCK 6.x-2.2
-===========
-
-IMPORTANT:
-This release fixes a security issue (XSS vulnerability) in nodereference and userreference modules.
-All sites are using CCK for Drupal 6 are strongly encouraged to upgrade to CCK 2.2.
-Note that the Drupal 5 versions are not affected.
-See the Security Annoucement on http://drupal.org/node/406520 for more informations.
-
-
-Features:
-- #361311 Add poll settings forms to Manage fields screen.
-- Add book form to Manage fields screen.
-- #131953 by markus_petrux - Views integration: expose additional db columns.
-- #349987 by Michelle - Panels integration for fieldgroups.
-- #362216 by markus_petrux - sort the admin/content/types/fields overview by field name.
-- #242583 by jmiccolis - Number: Push maximum 'scale' setting up to 10 for decimal fields.
-- Correct RTL display.
-- #405452 - Views integration: Update to Views 2.3 API ('link to node'), with 2.2 compatibility preserved.
-
-Bugfixes:
-- #392476 Make sure CCK textarea fields in a View don't have a span wrapped around a block-level element.
-- Fix devel_generate for decimal and float values.
-- #358700 Can't use array_slice() on assoc array in PHP4.
-- #196421 Prefixed tables weren't getting queried correctly.
-- Don't assume display_settings[$context] always exists, newly enabled modules may add new contexts that weren't there when the field was last edited.
-- #339537 by markus_petrux: fix orphan fields in {content_group_fields} table when fields are removed.
-- Views integration: use shorter titles in Views admin summaries (see http://drupal.org/node/326034).
-- #334290 by drewish - Userreference: user names not displayed in Views summaries.
-- #343138 by duellj - Fix tokens for empty noderef / userref fields.
-- #343306 Validate text 'max length' to be a positive integer
-- #344004 by markus_petrux - Diff integration : fix error on non-'core CCK' field types.
-- Diff integration: limit the number of additional queries for noderef/userref.
-- Diff integration: refactored around a new hook_content_diff_values() to save contrib field modules the
-burden of implementing hook_diff. For most field types, the default content_field_content_diff_values()
-should be enough, though.
-- #344216 by dbabbage: Fix incorrect url to Schema module in tests descriptions.
-- #336174 Move actual field access check in content.module, with content_permission.module providing one permission-based implementation.
-- #336174 (followup) Make sure content_view_field() and content_format() both respect field access rules.
-- #351929 by lyricnz - Views integration: make sure formatters get a pseudo-node with enough info.
-- #355712 by fractile81 - Fieldgroup: fix extraneous cache clears.
-- #356666 by flobruit - fix 'exclude' display setting wrongly set across shared instances of a field.
-- Fix 'undefined variable' notice when submitting field settings form with 'php code for default value.
-- #353012 User reference - fix duplicate 'reverse links' on user profile pages when the same user is referenced by several userref fields in a node. Also improves performance.
-- #342427 Views integration - fix summaries for nodereference and userreference fields.
-- #363456 by dww - Fix some cases of bogus d-n-d reordering of 'pseudo-fields'.
-- #366935 by drewish - Make the 'Views mode' feature in noderef / ueserref visible even if no usable View exists yet.
-- #371306 fix duplicate HTML when using the JS-'add more' button.
-- #370004 by dopry - Fix JS-'add more' button breaking fielfield's AHAH upload.
-- #374213 by rpanna - Fieldgroup: All field instances removed their groups when one instance is deleted from a content type.
-- #356158 by markus_petrux - Fix more (hopefully all ?) cases of bogus d-n-d reordering of 'pseudo-fields'.
-- #381876 by DamienMcKenna - Content Copy: Fix formatting glitch in exported type definitions.
-- #346202 Fieldgroup: let the 'simple' template be overridable (thks fiskit) + allow template variants.
-- #382004 by elcuco - Field name and group name fields should stay LTR for RTL languages.
-- #360712 by tombigel - CSS tweaks for RTL languages.
-- #375316 Nodereference/Userreference: Ensure allowed values always return at least an empty array.
-- #368155 Nodereference/Userreference: Fix performance issue on large sites when validating empty noderef/userref fields.
-- #319778 Optionwidgets: Fix double encoding issues for &, >, <,... chars in select lists.
-
-CCK 6.x-2.1
-===========
-
-This release fixes two critical issues:
-- #331293 by Timo.Kissing - Content copy: no fields proposed for export (#320632 followup).
-- #331033 Views integration: Fix fatal error in content_handler_field.inc in some circumstances.
-
-Other fixes:
-- #331179 Userreference: 'reverse link' checkbox stayed unchecked.
-- Uninstall forgot to remove some variables.
-- #331794 Fix false positives for "The default value is invalid" error message.
-- #331995 Fix 'invalid argument for foreach' warning on nodes with inexistent type.
-- Views integration: make sure our own render_link doesn't output empty links (see #332679).
-
-CCK 6.x-2.0
-===========
-
-IMPORTANT : this release fixes (minor) cross-site scripting (XSS) vulnerabilities
-in nodereference.module, userreference.module, content_copy.module, and CCK's Views integration
-See the Security Annoucement on http://drupal.org/node/330546 for more information.
-
-Note: Filters available for CCK fields in Views have changed slightly since the RC releases.
-If upgrading from a RC release, you might need to check your views, and if needed.
-This only applies to filters defined on Text or Number fields that specify a list of 'Allowed values'.
-Filters on other CCK fields are not affected.
-
-Main new features since RC10:
-- #300368 Add option on Display fields screen to omit fields or groups from the $content value passed to the node template.
-- #298651 by smk-ka, yched - Nodereference/Userreference: Enhance performance on large sites.
- This also adds 'autocomplete mode' widget settings (full string / beginning of string).
-- #329447 add content_view_field() API function to display a single field, fully themed with label and multiple values, to be used by 3rd party code.
-
-Other changes:
-- Content_generate should be passing field info and updating $items.
-- Fix bug in content_generate that was adding fully formatted textarea values to textfield fields.
-- #329037 Fix small bug in content_generate function method of calling fields that handle their own multiple values.
-- #324826 Change Advanced help path and topic to use & prefix per latest change in Advanced help.
-- #324610 Add Advanced help files for basic fields and hooks so they'll show up in the CCK advanced help documentation. Intended to be used as examples by other field modules for a way to add more field documentation.
-- #321024 Add content_associate_fields() to the content_check_update() function because it can get skipped when updates are aborted or the content module is not yet updated.
-- Fix bad logic in testing content version variable to prevent warning messages before content module is updated.
-- Get rid of t() around Views field label since Views already has it marked as a translatable option.
-- #285470 by jhuckabee, store field label in the view in all cases, previously only custom labels were stored.
-- #266309 by abbasmousavi, change silent fix to error message for invalid input into number fields.
-- #318224 by brmassa, error in Content Copy handling of fieldgroups.
-- #198508 Add messages to Manage fields screen about inactive fields.
-- #320743 Revert group names uniqueness rules as per D5 behavior (group names unique only inside content types).
-- #310219 followup : numeric (core) rendering modes were not preserved in some cases.
-- Fix 'unknown index' warnings on fieldgroups settings pages.
-- #320139 by Moonshine - Noderef / Userref: Fix single-quotes encoding in 'Views' mode with option widgets.
-- #318143 by Douggreen - Panels integration: make widget label translatable.
-- #321147 Views integration: float/decimal filters round values to integers.
-- #321702 Views integration: fix rendering of multiple-values formatters.
-- #322917 Upgrade path: Missing information text on update 6000 when content.module not enabled.
-- Replaced theming instructions in theme/README.txt with advanced_help pages.
-- #323436 by hass: fix a few strings + translation bugs.
-- #323745 by robertgarrigos: Fix performance issue when submitting 'display fields' form.
-- #316292 by fractile81: Turn potentially time-consuming updates into multi-pass updates.
-- Remove unwanted 'N/A' option on noderef/userref fields using checkboxes.
-- #319131 by Moonshine - Add 'title-raw' token for noderef fields.
-- #324300 Views integration: fix sorting for multiple fields by allowing the sort to act on one specific delta.
- Also disable tablesorting for multiple fields with 'group multiple values' option.
-- Views integration: fix broken query for fields retrieved through relationships when relation is empty.
-- #325262 Fix flawed logic in filtering out empty values.
-- #297322 Views integration: display node title / user name for argument summaries with noderef / userref fields.
-- #324301 Optionwidgets: check for maximum number of values.
-- #320632 Content Copy: Make fields/groups checked for export by default + display the list in an overview table.
-- Content Copy: Import / export weights of dnd-enabled non-CCK fields.
-- #327715 Babysit 'invalid foreach' warnings caused by invalid incoming $node objects.
-- #328763 Adjust weight of non-cck fields even if there are no CCK fields for the content type.
-- Views integration: fixed a few non-relationship safe areas.
-- Views integration: fix 'link this field to its node'+'group multiple'+relationships.
-- #323681 Panels integration: make 'field as pane' work again.
-- #311912 Views integration: The many_to_one filters for fields with 'allowed values' gain should not replace the regular 'starts with'/'greater than' filters.
-
-CCK 6.x-2.0-rc10
-================
-
-- Get rid of helper function content_is_updated(), we can do it better using the content version variable.
-- #318224 by brmassa, fix several errors in Content Copy.
-- #318387 Make sure old fieldgroup updates don't run if tables were never created.
-- #318227 Clean up update abort logic to more clearly explain what still needs to be done, add a helper function to prevent dangerous database operations until database is updated.
-- #317232 Change css file name from content.css to content-module.css to avoid namespace collisions.
-- #316656 Default weight must be zero, not NULL, or form ordering will be incorrect.
-- #107407 by dopry, optimization patch, do nothing in hook_form_alter() and hook_nodeapi() if there are no fields.
-- #317932 Fix userreference documentation typo.
-
-CCK 6.x-2.0-rc9
-===============
-
-- Change update instructions to recommend leaving CCK modules out of the modules folder until they're enabled.
-- #317036 by hass, context-sensitive translation fixes.
-- #316354 by fago, hass, fix translation issues in rules.inc files.
-- #312546 by stella, code cleanup.
-- #311146 by Brian294, dheffron, yched, and others, fix critical javascript problem in new Manage fields UI screen in some themes.
-- #317032 by hass, code cleanup.
-
-CCK 6.x-2.0-rc8
-===============
-
-Be sure to visit update.php after uploading this release.
-
-- #314986 by moshe weitzman, remove hook_devel_caches(), deprecated in favor of content_flush_caches().
-- Clean up inconsistencies in unsetting _error_element, sometimes not unsetting it, sometimes not testing before unsetting it causing undefined index errors.
-- Add more documentation of how nested nodereference and userreference items work.
-- #119102 Combo field prep, Use === in userreference and nodereference validation to be sure we get right results if parent is a zero (delta) value instead of a string name.
-- #119102, #314843 Make sure module process code doesn't override #element_validate set by other modules.
-- #119102 Combo field prep, rework fieldgroup name validation into API to be used by other modules.
-- #312546 by stella - Change some links to make translation easier.
-- Added the #delta value to the wrong place in the element, it was inaccessible to the formatter theme.
-- #119102 Combo field prep, rework the field overview form so it can hanle other kinds of groups.
-- #119102 Combo field prep, add hooks to the fieldgroup module so other modules can alter group info.
-- #119102 Combo field prep, add group_type information to the Manage fields screen.
-- #119102 Combo field prep, add group_type column to content_group table.
-- #310420 Make sure fields created by disabled modules get marked inactive in the database.
-- #119102 Combo field prep, allow way to override multiple values settings for optionwidgets.
-- #119102 Combo field prep, add prev_parent and group info to display fields overview.
-- #119102 Combo field prep, add a helper function that can determine if a field is in use and the max delta value in use.
-- #309667 Add Panels integration in. This is still experimental since Panels for D6 is still experimental.
-- #307909 Don't create Views tables for fields that don't create db columns.
-- Make incompatibility with older Views releases stand out more.
-- Fix errors when rendering fieldgroups in 'advanced' contexts (RSS, search...).
-- Do not insert field and group labels in search index.
-- Fix drag-n-drop order lost when node form is redisplayed after node preview or failed validation.
-- Fix drag-n-drop order not accounted for in node previews.
-- #306572 Number: Incorrect validation of allowed values for Float and Decimal fields.
-- #306963 by p.brouwers - Number : fix missing formatter for '9.999,99' (be_2).
-- Views integration : Add default label for userref and noderef relationships.
-- #234774 Nifty new UI to add fields and groups (requires a cache clear) + initial integration with advanced_help module.
-- #281749 by asimmonds: fix '0' not parsed as an alias for allowed values.
-- #309365 Views integration: Consider relationships when force-adding the 'Node: Type' field - thks jhuckabee.
-- #308215 by Reg - Nodereference: Do not filter on empty string when querying for referenceable nodes.
-- #308778 Fix $item['view'] element missing for tokens and contemplate.
-- #310414 Fix broken redirects when adding fields to content types with an underscore in their machine names.
-- #310484 by merlinofchaos - Views integration: Allow relationships to work nicely with multiple values.
-- Views integration: reorder elements in the field's settings to ba a little more logical.
-- #306604 Views integration: fix relationships with 'group multiple values' option. Thx merlinofchaos for the help.
-- Add a message on the 'Manage fields' screen about the benefits of advanced_help module.
-- #311883 by hass : Fix a string to give translators better context.
-- #310873 Upgrade path : abort updates if content.module and/or field modules are disabled, and fix existing sites possibly affected.
-- #310219 Let modules expose additional display modes iunder the 'Display fields' tab : hook_content_build_modes().
-
-CCK 6.x-2.0-rc7
-===============
-
-Note:
-- There has been a few files moved around since RC6, so be sure to *delete* the previous contents
-of your cck/ folder before uploading the new files, in order to avoid duplicates.
-- The admin forms (field creation, field edition...) have been renamed to comply with usual form
-naming conventions. Modules and custom code that rely on those form ids through hook_form_alter() or
-drupal_execute() will need to be updated.
-- The final 6.x-2.0 release is currently targetted for the second half of September.
-
-Main bugs fixed since RC6:
-- Content Copy: Fix multiple bugs when importing/exporting content types :
-exporting field definition can alter the actual field's settings
-'this post cannot be referenced' error when exporting nodereference fields
-no export of default values
-- #198502 D5 upgrade path: Prevent field module upgrades from running before content.module upgrades.
-- #293698 Views integration: make 'show n values starting from m' actually work.
-- #292872 Data loss issue: fields and field data deleted for content types defined by disabled modules.
-IMPORTANT: Since disabling all contrib modules is a recommended step prior to upgrading a D5 site to D6,
-it is highly advised that D5 sites using CCK are updated to CCK 5.x-1.8 (which contains the same fix)
-before starting the D6 upgrade process.
-
-Main new features since RC6:
-- Updated to latest Views 2 API. Views integration requires Views 6.x-2.x-dev newer than Sep 3, 2008.
-- #295556 by CPyle - Userreference: let referenceable users be defined by a View.
-- Userreference: Add 'Radios / checkboxes' widget.
-- #294797 New $FIELD_NAME_rendered and $GROUP_NAME_rendered variables for node.tpl.php.
-- Nodereference: Allow specific node templates for nodes displayed as values of a noderef field.
-- #301736 by nedjo - Nodereference: Multilingual support; if available, propose translations of referenced nodes when creating a new translation.
-- #196468 by Nedjo - Content copy: Provide a link to automatically import a file into Content Copy.
-
-Other changes:
-- Avoid undefined index error in Content Copy when fieldgroup is enabled but there are no groups.
-- #296077 Add delta to formatter information.
-- #128038 Alter _content_admin_form() to provide the raw widget default values as well as the default value widget so programmed forms will have those values available. You can't tell when you construct the form if it's a programmed form or not, so we will always have to create the default value widget, but we don't always have to use it. This will also get the default values into the Content Copy export in a way that Content Copy import can pick them up, and alter validation to unset the default value widget and skip the default value widget processing if it's a programmed form. Since we are now provided the actual default value (not just the default value widget) in the export, we can safely pick it up in the import.
-- #128038 Use content_field_instance_collapse() to send form values in the Content Copy export to be sure we get the original field values for checkboxes instead of the true/false values we will get otherwise.
-- #300108 Add group value back to field settings form so it will appear in the Content Copy export.
-- #283985 Force Content Copy export to use current field values to avoid storing mangled data back to field.
-- #298440 by Moonshine and KarenS: move form permission checking to content_field_form() and don't call hook_widget for users w/out permission.
-- #294726 by profix898 and yched: _content_type_info() does not reset on content type changes.
-- #293273 Nodereference: update 'referenceable types' when type name changes.
-- #295914 Fix additional problems when installing CCK in install profiles.
-- #295664 Views integration: let summaries display 'allowed values' aliases if any.
-- Views integration: prevent empty links for the 'no value' items in summaries.
-- #296748 Text: Fix PHP warning when $node->build_mode not set.
-- #297915 Fix content_copy.
-- #298674 Content copy doesn't import all type properties.
-- #293471 Remove fieldgroup selection on field settings form.
-- Userref / Noderef : Add a 'none' choice for non-required, single fields with 'Radios / checkboxes' widget.
-- #298823 Views integration: do not step into views_* namespace.
-- #299698 Userreference: autocompletion query when typed string is '0'.
-- #300236 Fix inconsistent schema for 'locked' column between install and updates.
-- Do not display 'label' settings on 'advanced' subtab of 'Display fields'.
-- #266205 by sun: add zebra classes for field items.
-- #299870 Incorrect handling of custom weight for 'Language' node form element.
-- Fieldgroups: display options were not supported for 'advanced' contexts (RSS, search index...).
-- Fieldgroups: do not display group label when building the search index.
-- Fieldgroups: Remove tinyint (127) limitation on group weights.
-- #301984 by joetsuihk - Views Integration: do not display empty divs on empty fields.
-- Views integration : prevent possible 'invalid argument for foreach' warnings with 'group multiple values'.
-- Fix tests to work with simpletest 2.x.
-- #296301 by Moonshine - Fieldgroups: fix call_user_func_array() error on add / configure / remove pages.
-- #118364 Number (decimal): fix unneeded information message when using comma as a separator ("150,00 was changed to 150.00").
-- Fieldgroup: New groups are not styled on node view until 'display fields' form is submitted.
-- #303664 Views integration: update to new Views API for handler / plugins.
-- #303475 by wrunt - Optionwidgets : unchecked 'single on/off checkbox' stores 0/'0' instead of the 'off' value.
-- #304450 Userreference - fix broken autocomplete for 'simple' mode / fix broken 'advanced - views' mode after Views API changes.
-- Fix PHP warnings on node display for hidden fields inside fieldgroups.
-- #305048 by asimmonds: fix incorrect link on 'start update' page when updates were aborted.
-- Content copy: Fix broken group export as a result of #296301.
-- #304828 Clean up function names in content.admin.inc.
-- #285557 Added 'img' to the list of allowed tags in fields descriptions.
-- Content copy: wrong page title after export code has been generated.
-- Fieldgroup: fix broken node preview.
-
-CCK 6.x-2.0-rc6
-===============
-
-Hotfix release for:
-- #295537 fix warnings in update 6004 when site has no actual cck fields.
-Those errors were harmless, no need to worry or run update.php again if you had them.
-
-Minor fix:
-- #265795 by smk-ka: formatter labels go through t() twice in Views exposed data.
-
-CCK 6.x-2.0-rc5
-===============
-
-Main bugs fixed :
-- #281388 Optionwidgets: Unselect values doesn't take.
-- #286457 Fix menu not being always rebuilt when needed.
-- #285138 by quicksketch and yched: Allow CCK to be installed in install profiles.
-
-Main new features :
-- #282183 by chx: Nodereference - 'Checkboxes/radios' widget.
-- #289138 by dopry: Add support for 'locked' fields (for module-defined fields).
-
-Other changes :
-- #273502 Add descriptions to the non-CCK form elements on the Manage fields screen.
-- Fix PHP warnings when field display is set to 'hidden' and field is in a fieldgroup.
-- Re-introduce '<none>' choice for multiselect widgets (optionwidgets, noderef/userref select).
-- #281449 Text: maxlength on textfield widget is 128 even when the field has no maximum length.
-- Add tests for optionwidgets.
-- #282175: Don't mention 'add more' button when the widget opts out of it.
-- Optionwidgets: use '- None -' for 'no selection' option (like core's taxonomy.module).
-- #286637 by poiu: clearer example for default value with php-code.
-- #93436 Add $form parameter to content_validate.
-- #277310 by fractile81: update node object by reference in content_load().
-- #285771 Views integration: use the new 'float' filter handler where applicable.
-- Fix PHP warnings when renaming a content type.
-- #280410 Number: Fix prefix / suffix displayed when field is empty.
-- #282937 Fix warnings on uninstall.
-- #287540 Add index on nid in data tables, to optimize node deletion (requires update.php)
-- #288578 Text: Fix max length to use utf8 length.
-- #222214 by aaron, deviantintegral : support tokens for nodererf / userref paths aliases.
-- #211306 by asimmonds: Fix error in D5 update with SQL strict mode.
-- #292338 by mh89: Set fieldgroup.module's weight to 9 (missing for new D6 installs).
-- #292463 Fieldgroup: missing update for fieldgroup table names (didn't actually break anything).
-- #292855 by Tgr - Fieldgroup: missing } in query on field instance deletion.
-- #292925 by greggles - Text: Fix PHP notice under some circumstances with textarea widget.
-- #292675 Support d-n-d reordering of non-cck "fields" for types that have no cck fields.
-- #289888 Nodereference: Fix 'full node' and 'teaser' formatters.
-- Display field type human names instead of machine names on 'Manage Fields' and 'Fields' overview pages.
-- #292884 Better help text for field template suggestions.
-- #293163 Use FAPI validation instead of field|widget_settings($op 'validate').
- (the 'validate' op is still supported, though)
-- #75423 by mh89 - Text: 'size' setting for textfield widget.
-
-
-CCK 6.x-2.0-rc4
-===============
-
-This RC Mainly fixes a critical bug :
-http://www.drupal.org/node/277968 - Saving 'Display Fields' wipes widget settings.
-
-- #278325 Nodereference/Userreference - autocomplete widget does not check nodes/users are 'referenceable'.
-- #278325 followup: Unify the mechanism used to assign hook_field('validate') errors to form elements across fields and widgets.
-- Userreference - Turn the 'Reverse link' radios into a checkbox in the field settings.
-- Nodereference - Only list 'node' Views in the 'advanced mode', and differenciate default views as in D5.
-- Optionwidgets - fix PHP warning when creating a new 'on/off checkbox' and no allowed values could be set yet.
-- Optionwidgets - fix PHP warning on 'on/off checkbox' only one 'allowed value'.
-- Optionwidgets - add a 'warning' message to remind the admins they need to set allowed values.
-- #278676 by hass: fix untranslated field and widget type names.
-- Do not validate the fields settings form when the 'change label / widget' submits the form.
-- #273502 Let the 'menu settings' node-form fieldset on node forms be repositioned.
-- #273502 followup: add a description for non-CCK 'fields' on 'Manage fields' tab.
-- #278793 by hass: fix untranslated PHP code example.
-- Nodereference/Userreference - There were two 'no selection' choices on 'select list' widget for non-required fields.
-- #277486 Nodereference/Userreference - no selection with 'select list' widget stores 0 instead of NULL.
-- #278789 better wording for the 'PHP default value invalid' error message.
-- #267771 orignal patch by quicksketch: Richer label settings for views fields.
-- #279204 by eMPee584: fix edit paths inconsistency.
-- #276990 Nodereference - error message when no valid node with that title (autocomplete widget).
-- Widget (FAPI-)validation messages do not display the field 'label' when the error is on a nth value (n > 1).
-- Unify field validation error messages.
-- #269319 Reintroduce field template variants; add theme instructions text file.
-- #179419 by smk-ka: Content Copy - Import fails when language not English.
-- #278899 Nodereference - Refactor 'advanced (Views-defined referenceable nodes)' to use views rendering.
-- #279190 content_crud_instance_update wiped existing widget settings in some cases.
- Also added a tests for a few basic properties of the CRUD API.
-
-CCK 6.x-2.0-rc3
-===============
-
-- #278116 by Damien Tournoud: Make some strings easier to translate in views intergration forms.
-- #278135 fix some translation quirks + fix french typography for ':' :-)
-- Nodereference: 'Title mismatch. Please check your selection' error should break validation (+ fix typo).
-- #277968 by jpetso: Fix fatal error when cck folder lives in the main /modules folder.
-
-CCK 6.x-2.0-rc2
-===============
-
-- #276994 Follow up, remove conditional loading for content.views.inc, Views handles it.
-
-CCK 6.x-2.0-rc1
-===============
-
-- #276994 Remove views_include_handlers() from content.views.inc, no longer needed.
-- Change 'allow_empty' to 'allow empty' so that Views filters work correctly.
-- #272871 Pass #node to formatters to be consistent with the values that were available in the D5 version.
-- #271294 Add TODO to get rid of content_write_record() once drupal_write_record() is patched.
-- #271294 Add documentation for the reason for having a custom version of drupal_write_record.
-- Avoid E_All error when prefixes and suffixes are not defined in number module.
-- Avoid E_All error, don't try to return $item[0] if there are no items.
-- #266590 Make sure a view is valid before trying to use it in the nodereference module to fix upgrade errors when the view has not been updated to Views 2.
-- #258127 Get rid of content_menu_needs_rebuild() in remaining places and only rebuild the menu when absolutely needed.
-- Alter content_types_install() to make sure it picks up all the regular field and widget values out of the database. Some of the field values were missing, which caused some of the other values to get set incorrectly during updates and when modules are enabled.
-- #235063 Fix jumbled multiple values when hitting the 'add-more' button with more than 10 values.
- Keep 'add more' button text consistent.
-- #270014 by yang_yi_cn: form for multiple values didn't call the right hook_widget
-- fix 'Undefined index: #access' notice when content_permissions.module is disabled
-- #270315 Mention dependency on schema.module in the desciptions of the CRUD tests.
-- #227951 by pwolanin: Add a permission for PHP 'default values' and 'allowed values'
-- #271682 by pwolanin: Make simpletests easier by not duplicating field name in same form.
-- #270315 by pwolanin: Update simpletest to use DrupalWebTestCase.
-- #227951 by pwolanin: Add permission for ability to use php code for default values and allowed values.
-- #270827 by pwolanin: Validity checks for the AHAH-'add more' request.
-- #271087 Properly handle values '0' for text and number fields.
-- #258407 Fix field template name to allow for easy overridability.
-- #274038 by jpetso: Fix non-JS mode for 'add more' button.
-- #275192 by jpetso: Attach AHAH behaviors to newly inserted widgets on JS 'add more'.
-- #271710 by pwolanin: tests for UI field CRUD, and node form generation.
-- #266696 by pwolanin: Unable to change the label or widget type for a field.
-- #201329 by pwolanin and yched: Fix content_field_instance_delete() not cleaning tables.
-- #271577 by pwolanin: Fix unsanitized text (optionwidgets, number, text, field labels, field descriptions)
-- #273539 by jpetso: Fix JS-'add more' for complex widgets (e.g. filefield)
-- #227435 by pwolanin: Usability - Put fields links on content type overview page
-- #277101: Hide fieldset-based fieldgroups when all fields empty
-- #198508: Prevent data loss for disabled fields.
-
-CCK 6.2.beta
-============
-
-Content Generate (new feature)
-- #257874 and #187599 provide a way to auto-generate field content for the devel module.
-- #261633 E_All fix for content_generate.
-
-Usability
-- #227439, #227437, #227945 Rework field and widget type handling to simplify the intial screen when choosing a field and widget type by making it a two-step process where you see only the widgets that apply to the field. Move the setting of the field label to the same place where you set the field name. Change the field edit screen to keep it from showing all the different widgets again and instead just display the current widget. Then add a button to change the widget which will take you to another screen to make the change since the rest of the page will need to change when the widget changes. Keep the changes to the widget label in that separate process, too, since that affects the menu tabs that need to be changed before redirecting back to the main page.
-
-Update processing
-- #256141 Add old updates back to fieldgroup.install for situations where the module was briefly enabled and then disabled and never used so the update process doesn't throw an error for the missing updates.
-- Fix potential E_All error in userreference after update.
-- Fix E_All error that can come up after update if text module is using format column.
-- Change the check in _content_type_info to be sure the new 'active' column exists before trying to query the table during installation and updates. Also fix E_All notice for non-existant db_columns during install and update.
-- #237585 Try to avoid foreach errors on missing content type information by creating empty arrays in content_info.
-
-Optionwidgets
-- #224391 Get default values working again for optionwidgets.
-- #251157 Make sure optionwidgets selections are not lost when previewing node.
-- #253038 Make sure empty optionwidget values are always arrays.
-
-Nodereference
-- #264345 Create a nodereference wrapper for setting and rendering a view and store the rendered view in a static variable to ensure the same view is not rendered over and over in the same session.
-- #263936 Make sure nodereference select views do not try to use paging and do not limit the items per page.
-- Clean up autocomplete handling that uses Views as a selector.
-- #262112 Add missing hook_theme definition for the plain formatter.
-- #256440 Nodereference was passing wrong object to Views for the Views node selection option. Also need to limit available views to those that have fields defined so we can add the title to the view and so there is something meaningful to display in the select list.
-
-Views Integration
-- #264479 Make sure we don't try to init() a view for fields that don't have one selected.
-- #263936 Set arguments in execute_display. Also make sure to pass $string and $exact_string to the view.
-- #257566 Move all content fields into a single group in the Views UI.
-- #242856 Make sure the node.nid is aliased when creating our grouped fields query so the parent node isn't confused with nodereference's nid column.
-- #261528 Add in missing code to create the link to the node if that option is requested.
-
-Content Copy
-- #225664 Make sure groups get imported as well as fields.
-
-Formatters
-- #264768 Make sure handling for all possible states of #single is properly set up.
-- #260253 $node->type isn't always set, and if missing the formatters that use $fields($field_name, $type_name) to retrieve the field array end up with an empty value. Add the node type to all content fields views so we can be sure it's available and alter the content_format logic to look for the node type both at $node->type and at $node->node_type, where Views will put it, to properly set the content type.
-
-General
-- #256116 Add a TODO to reconsider handling of CCK data when a content type is deleted.
-- Small fix to content_generate to get auto-generation of number values working.
-- #265334 Avoid format error messages in the unusual case where you have created CCK content and then delete the content type without deleting the node, since core does not delete the nodes in that case.
-- #227256 Add an additional check when creating a new field that the length is no more than 32 characters.
-- #260253 When content_type is set but empty, nothing is returned from content_fields(). Fix that by checking for empty() instead of isset(). This is a more general problem that should be fixed in content_fields().
-- #258127 Eliminate need to defer the rebuild of the menu, also adding TODO to see if content_menu_needs_rebuild() can be eliminated.
-- #257304 Make sure the widget description is never NULL to avoid problems when a NULL value gets wrapped with t().
-- #259704 Make sure help text always appears.
-- #255113 Make sure empty filtered text fields don't pick up unintended values from check_plain().
+Changes:
+- #421116 Move content.js to js/content.admin.js for consistency with location of new js files.
diff --git a/DEVELOPER.txt b/DEVELOPER.txt
index 1b1d244..42fa089 100644
--- a/DEVELOPER.txt
+++ b/DEVELOPER.txt
@@ -1,4 +1,3 @@
-// $Id: DEVELOPER.txt,v 1.5.2.3 2008/10/28 01:42:48 yched Exp $
DEVELOPER DOCUMENTATION
UPDATING FROM 5.x TO 6.x
diff --git a/PATCHES.txt b/PATCHES.txt
new file mode 100644
index 0000000..738cf77
--- /dev/null
+++ b/PATCHES.txt
@@ -0,0 +1,6 @@
+The following patches have been applied to this project:
+- http://drupal.org/files/issues/789946_cck_views_handler.patch
+- http://drupal.org/files/998494-28-Advanced-View-num-items.patch
+- http://drupal.org/files/issues/cck-views-field_multiple-empty-1040206-1.patch
+
+This file was automatically generated by Drush Make (http://drupal.org/project/drush_make).
\ No newline at end of file
diff --git a/README.txt b/README.txt
index 24eac09..17e1c28 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,3 @@
-// $Id: README.txt,v 1.12.2.4 2008/10/28 01:42:48 yched Exp $
Content Construction Kit
------------------------
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 60adb32..76ee4bd 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -1,4 +1,3 @@
-// $Id: UPGRADE.txt,v 1.10.2.3 2008/10/06 20:03:12 karens Exp $
================================================================
UPDATING FROM VERSION 4.7 to 6.x
diff --git a/cck-119102-511.patch b/cck-119102-511.patch
deleted file mode 100644
index 643e826..0000000
--- a/cck-119102-511.patch
+++ /dev/null
@@ -1,3 +0,0 @@
-http://drupal.org/node/119102?page=1#comment-1422558
-
-Note: this patch is applied as a module upload.
diff --git a/cck-196421-190.patch b/cck-196421-190.patch
deleted file mode 100644
index ccf2f0f..0000000
--- a/cck-196421-190.patch
+++ /dev/null
@@ -1,674 +0,0 @@
-diff -rupN content.module content.module
---- content.module 2009-03-18 20:20:52.000000000 +0100
-+++ content.module 2009-04-18 11:54:15.000000000 +0200
-@@ -260,8 +260,8 @@ function content_load(&$node) {
- *
- */
- function content_validate(&$node, $form = NULL) {
-- _content_field_invoke('validate', $node, $form);
- _content_field_invoke_default('validate', $node, $form);
-+ _content_field_invoke('validate', $node, $form);
- }
-
- /**
-@@ -490,8 +490,11 @@ function theme_content_multiple_values($
- 'data' => t('!title: !required', array('!title' => $element['#title'], '!required' => $required)),
- 'colspan' => 2
- ),
-- t('Order'),
-+ array('data' => t('Order'), 'class' => 'content-multiple-weight-header'),
- );
-+ if ($field['multiple'] == 1) {
-+ $header[] = array('data' => '<span>'. t('Remove') .'</span>', 'class' => 'content-multiple-remove-header');
-+ }
- $rows = array();
-
- // Sort items according to '_weight' (needed when the form comes back after
-@@ -499,24 +502,31 @@ function theme_content_multiple_values($
- $items = array();
- foreach (element_children($element) as $key) {
- if ($key !== $element['#field_name'] .'_add_more') {
-- $items[] = &$element[$key];
-+ $items[$element[$key]['#delta']] = &$element[$key];
- }
- }
-- usort($items, '_content_sort_items_value_helper');
-+ uasort($items, '_content_sort_items_value_helper');
-
- // Add the items as table rows.
-- foreach ($items as $key => $item) {
-+ foreach ($items as $delta => $item) {
- $item['_weight']['#attributes']['class'] = $order_class;
- $delta_element = drupal_render($item['_weight']);
-+ if ($field['multiple'] == 1) {
-+ $remove_element = drupal_render($item['_remove']);
-+ }
- $cells = array(
- array('data' => '', 'class' => 'content-multiple-drag'),
- drupal_render($item),
- array('data' => $delta_element, 'class' => 'delta-order'),
- );
-- $rows[] = array(
-- 'data' => $cells,
-- 'class' => 'draggable',
-- );
-+ $row_class = 'draggable';
-+ if ($field['multiple'] == 1) {
-+ if (!empty($item['_remove']['#default_value'])) {
-+ $row_class .= ' content-multiple-removed-row';
-+ }
-+ $cells[] = array('data' => $remove_element, 'class' => 'content-multiple-remove-cell');
-+ }
-+ $rows[] = array('data' => $cells, 'class' => $row_class);
- }
-
- $output .= theme('table', $header, $rows, array('id' => $table_id, 'class' => 'content-multiple-table'));
-@@ -524,6 +534,7 @@ function theme_content_multiple_values($
- $output .= drupal_render($element[$element['#field_name'] .'_add_more']);
-
- drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
-+ drupal_add_js(drupal_get_path('module', 'content') .'/theme/content-edit.js');
- }
- else {
- foreach (element_children($element) as $key) {
-@@ -680,12 +691,8 @@ function content_associate_fields($modul
- function content_field($op, &$node, $field, &$items, $teaser, $page) {
- switch ($op) {
- case 'validate':
-- // TODO: here we could validate that the number of multiple data is correct ?
-- // We're controlling the number of fields to fill out and saving empty
-- // ones if a specified number is requested, so no reason to do any validation
-- // here right now, but if later create a method to indicate whether
-- // 'required' means all values must be filled out, we can come back
-- // here and check that they're not empty.
-+ // Filter out empty values and items flagged for removal.
-+ $items = content_set_empty($field, $items);
- break;
-
- case 'presave':
-@@ -716,7 +723,7 @@ function content_field($op, &$node, $fie
- $items = _content_sort_items($field, $items);
- }
-
-- // Filter out empty values.
-+ // Filter out empty values and items flagged for removal.
- $items = content_set_empty($field, $items);
-
- break;
-@@ -724,14 +731,14 @@ function content_field($op, &$node, $fie
- case 'view':
- $addition = array();
-
-- // Previewed nodes bypass the 'presave' op, so we need to some massaging.
-- if ($node->build_mode == NODE_BUILD_PREVIEW && content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
-+ // Previewed nodes bypass the 'presave' op, so we need to do some massaging.
-+ if ($node->build_mode == NODE_BUILD_PREVIEW) {
- if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
- // Reorder items to account for drag-n-drop reordering.
- $items = _content_sort_items($field, $items);
- }
-
-- // Filter out empty values.
-+ // Filter out empty values and items flagged for removal.
- $items = content_set_empty($field, $items);
- }
-
-@@ -770,10 +777,10 @@ function content_field($op, &$node, $fie
- );
-
- // Fill-in items.
-- foreach ($items as $delta => $item) {
-+ foreach (array_keys($items) as $weight => $delta) {
- $element['items'][$delta] = array(
-- '#item' => $item,
-- '#weight' => $delta,
-+ '#item' => $items[$delta],
-+ '#weight' => $weight,
- );
- }
-
-@@ -882,7 +889,7 @@ function content_field($op, &$node, $fie
- }
-
- /**
-- * Helper function to filter out empty values.
-+ * Helper function to filter out empty values and items flagged for removal.
- *
- * On order to keep marker rows in the database, the function ensures
- * that the right number of 'all columns NULL' values is kept.
-@@ -893,20 +900,22 @@ function content_field($op, &$node, $fie
- * returns filtered and adjusted item array
- */
- function content_set_empty($field, $items) {
-- // Filter out empty values.
-+ // Prepare an empty item.
-+ $empty = array();
-+ foreach (array_keys($field['columns']) as $column) {
-+ $empty[$column] = NULL;
-+ }
-+
-+ // Filter out items flagged for removal.
- $filtered = array();
- $function = $field['module'] .'_content_is_empty';
- foreach ((array) $items as $delta => $item) {
-- if (!$function($item, $field)) {
-- $filtered[] = $item;
-+ if (empty($item['_remove'])) {
-+ $filtered[] = ($function($item, $field) ? $empty : $item);
- }
- }
-
- // Make sure we store the right number of 'empty' values.
-- $empty = array();
-- foreach (array_keys($field['columns']) as $column) {
-- $empty[$column] = NULL;
-- }
- $pad = $field['multiple'] > 1 ? $field['multiple'] : 1;
- $filtered = array_pad($filtered, $pad, $empty);
-
-@@ -921,7 +930,7 @@ function _content_sort_items($field, $it
- if ($field['multiple'] >= 1 && isset($items[0]['_weight'])) {
- usort($items, '_content_sort_items_helper');
- foreach ($items as $delta => $item) {
-- if (is_array($items[$delta])) {
-+ if (is_array($item) && isset($item['_weight'])) {
- unset($items[$delta]['_weight']);
- }
- }
-@@ -1002,7 +1011,14 @@ function content_storage($op, $node) {
- if (!isset($additions[$field_name])) {
- $additions[$field_name] = array();
- }
-- $additions[$field_name][] = $item;
-+
-+ // Preserve deltas when loading items from database.
-+ if (isset($row['delta'])) {
-+ $additions[$field_name][$row['delta']] = $item;
-+ }
-+ else {
-+ $additions[$field_name][] = $item;
-+ }
- }
- }
- }
-Binary files images/remove.png and images/remove.png differ
-diff -rupN includes/content.node_form.inc includes/content.node_form.inc
---- includes/content.node_form.inc 2009-02-10 23:53:04.000000000 +0100
-+++ includes/content.node_form.inc 2009-04-18 10:05:41.000000000 +0200
-@@ -151,21 +151,23 @@ function content_multiple_value_form(&$f
-
- switch ($field['multiple']) {
- case 0:
-+ $deltas = array(0);
- $max = 0;
- break;
-- case 1:
-- $filled_items = content_set_empty($field, $items);
-- $current_item_count = isset($form_state['item_count'][$field_name])
-- ? $form_state['item_count'][$field_name]
-- : count($items);
-- // We always want at least one empty icon for the user to fill in.
-- $max = ($current_item_count > count($filled_items))
-- ? $current_item_count - 1
-- : $current_item_count;
-
-+ case 1:
-+ $deltas = array_keys($items);
-+ $current_item_count = isset($form_state['item_count'][$field_name]) ? $form_state['item_count'][$field_name] : max(1, count($deltas));
-+ $max = (!empty($deltas) ? max($deltas) : -1);
-+ while (count($deltas) < $current_item_count) {
-+ $max++;
-+ $deltas[] = $max;
-+ }
- break;
-+
- default:
- $max = $field['multiple'] - 1;
-+ $deltas = range(0, $max);
- break;
- }
-
-@@ -180,7 +182,7 @@ function content_multiple_value_form(&$f
- );
- $function = $field['widget']['module'] .'_widget';
-
-- for ($delta = 0; $delta <= $max; $delta++) {
-+ foreach ($deltas as $delta) {
- if ($element = $function($form, $form_state, $field, $items, $delta)) {
- $defaults = array(
- '#title' => ($field['multiple'] >= 1) ? '' : $title,
-@@ -206,6 +208,18 @@ function content_multiple_value_form(&$f
- );
- }
-
-+ // Add a checkbox to allow users remove a single delta item.
-+ // See content_set_empty() and theme_content_multiple_values().
-+ if ($field['multiple'] == 1) {
-+ // We name the element '_remove' to avoid clashing with column names
-+ // defined by field modules.
-+ $element['_remove'] = array(
-+ '#type' => 'checkbox',
-+ '#attributes' => array('class' => 'content-multiple-remove-checkbox'),
-+ '#default_value' => isset($items[$delta]['_remove']) ? $items[$delta]['_remove'] : 0,
-+ );
-+ }
-+
- $form_element[$delta] = array_merge($element, $defaults);
- }
- }
-@@ -242,7 +256,7 @@ function content_multiple_value_form(&$f
- $form_element['#prefix'] = '<div id="'. $field_name_css .'-items">';
- $form_element['#suffix'] = '</div>';
- $form_element[$field_name .'_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
-- $form_element[$field_name .'_add_more']['#suffix'] = '</div>';
-+ $form_element[$field_name .'_add_more']['#suffix'] = '</div>';
- }
- return $form_element;
- }
-@@ -264,7 +278,6 @@ function content_add_more_submit($form,
- }
- }
-
--
- /**
- * Menu callback for AHAH addition of new empty widgets.
- */
-@@ -313,11 +326,13 @@ function content_add_more_js($type_name_
- unset($form_state['values'][$field_name][$field['field_name'] .'_add_more']);
- foreach ($_POST[$field_name] as $delta => $item) {
- $form_state['values'][$field_name][$delta]['_weight'] = $item['_weight'];
-+ $form_state['values'][$field_name][$delta]['_remove'] = isset($item['_remove']) ? $item['_remove'] : 0;
- }
- $form_state['values'][$field_name] = _content_sort_items($field, $form_state['values'][$field_name]);
- $_POST[$field_name] = _content_sort_items($field, $_POST[$field_name]);
-
- // Build our new form element for the whole field, asking for one more element.
-+ $delta = max(array_keys($_POST[$field_name])) + 1;
- $form_state['item_count'] = array($field_name => count($_POST[$field_name]) + 1);
- $form_element = content_field_form($form, $form_state, $field);
- // Let other modules alter it.
-@@ -337,7 +352,6 @@ function content_add_more_js($type_name_
-
- // Build the new form against the incoming $_POST values so that we can
- // render the new element.
-- $delta = max(array_keys($_POST[$field_name])) + 1;
- $_POST[$field_name][$delta]['_weight'] = $delta;
- $form_state = array('submitted' => FALSE);
- $form += array(
-diff -rupN tests/content.crud.test tests/content.crud.test
---- tests/content.crud.test 2008-12-08 13:41:08.000000000 +0100
-+++ tests/content.crud.test 2009-04-01 16:27:24.000000000 +0200
-@@ -1234,3 +1234,70 @@ class ContentOptionWidgetTest extends Co
-
- }
-
-+class ContentEmptyDeltaTest extends ContentCrudTestCase {
-+ function getInfo() {
-+ return array(
-+ 'name' => t('Empty deltas'),
-+ 'description' => t('Test leaving empty values on a multivalue field and then removing them.'),
-+ 'group' => t('CCK'),
-+ );
-+ }
-+
-+ function setUp() {
-+ parent::setUp();
-+ $this->loginWithPermissions();
-+ $this->acquireContentTypes(1);
-+ }
-+
-+ function testEmptyTextField() {
-+ // Create a content type with a multivalue text field.
-+ $type = $this->content_types[0];
-+ $type_url = str_replace('_', '-', $type->type);
-+ $value1 = $this->randomName(5);
-+ $value2 = $this->randomName(5);
-+ $value3 = $this->randomName(5);
-+ $field = $this->createFieldText(array('text_processing' => 0, 'multiple' => 1));
-+ $field_name = $field['field_name'];
-+
-+ // Create a node with three values set.
-+ $edit = array(
-+ 'title' => $this->randomName(20),
-+ 'body' => $this->randomName(20),
-+ 'type' => $type->name,
-+ );
-+ $edit[$field_name][0]['value'] = $value1;
-+ $edit[$field_name][1]['value'] = $value2;
-+ $edit[$field_name][2]['value'] = $value3;
-+ $node = $this->drupalCreateNode($edit);
-+ $max_delta = max(array_keys($node->{$field_name}));
-+ $this->assertEqual($max_delta, 2, 'Three values saved, highest delta is 2');
-+ $this->drupalGet('node/'. $node->nid);
-+ $this->assertText($value1, 'First value displayed');
-+ $this->assertText($value2, 'Second value displayed');
-+ $this->assertText($value3, 'Third value displayed');
-+
-+ // Set second value to an empty string.
-+ $node->{$field_name}[1]['value'] = '';
-+ node_save($node);
-+ $node = node_load($node->nid, NULL, TRUE);
-+ $this->assertIdentical($node->{$field_name}[1]['value'], NULL, 'Second value is empty');
-+ $max_delta = max(array_keys($node->{$field_name}));
-+ $this->assertEqual($max_delta, 2, 'Three values saved, highest delta is 2');
-+ $this->drupalGet('node/'. $node->nid);
-+ $this->assertText($value1, 'First value displayed');
-+ $this->assertNoText($value2, 'Second value not displayed');
-+ $this->assertText($value3, 'Third value displayed');
-+
-+ // Remove the second value.
-+ $node->{$field_name}[1]['_remove'] = 1;
-+ node_save($node);
-+ $node = node_load($node->nid, NULL, TRUE);
-+ $this->assertEqual($node->{$field_name}[1]['value'], $value3, 'Third value has moved to delta 1');
-+ $max_delta = max(array_keys($node->{$field_name}));
-+ $this->assertEqual($max_delta, 1, 'Two values saved, highest delta is 1');
-+ $this->drupalGet('node/'. $node->nid);
-+ $this->assertText($value1, 'First value displayed');
-+ $this->assertNoText($value2, 'Second value not displayed');
-+ $this->assertText($value3, 'Third value displayed');
-+ }
-+}
-diff -rupN theme/content-edit.js theme/content-edit.js
---- theme/content-edit.js 1970-01-01 01:00:00.000000000 +0100
-+++ theme/content-edit.js 2009-04-18 11:16:25.000000000 +0200
-@@ -0,0 +1,253 @@
-+// $Id$
-+
-+/**
-+ * Manipulation of content remove buttons.
-+ *
-+ * TableDrag objects for multiple value fields (and multigroups) are scanned
-+ * to find 'remove' checkboxes. These checkboxes are hidden when javascript is
-+ * enabled (using the Global CSS Killswitch, html.js, defined in drupal.js).
-+ * A new 'remove' button is created here in place of these checkboxes aimed to
-+ * provide a more user-friendly method to remove items.
-+ */
-+Drupal.behaviors.contentRemoveButtons = function(context) {
-+ var self = Drupal.contentRemoveButtons;
-+
-+ $('table.content-multiple-table', context).not('.content-multiple-remove-buttons-processed').addClass('content-multiple-remove-buttons-processed').each(function() {
-+ var table = this, tableDrag = Drupal.tableDrag[$(table).attr('id')];
-+
-+ // Replace remove checkboxes with buttons.
-+ $('input.content-multiple-remove-checkbox', table).each(function() {
-+ var $checkbox = $(this), $row = $checkbox.parents('tr:first');
-+ var isRemoved = $checkbox.attr('checked');
-+ var $button = $(Drupal.theme('contentRemoveButton', tableDrag.getRemoveButtonTitle(isRemoved)));
-+
-+ // Bind the onClick event to the remove button.
-+ $button.bind('click', function(event) {
-+ if (!self._isBusy) {
-+ self.onClick($button, $checkbox, $row, tableDrag);
-+ }
-+ return false;
-+ });
-+
-+ // Attach the new button to the DOM tree.
-+ $checkbox.parent().append($button);
-+
-+ // If the row is removed, then hide the contents of the cells and show
-+ // the removed warning on the cell next to the drag'n'drop cell.
-+ if (isRemoved) {
-+ self.getCellWrappers($row).hide();
-+ self.showRemovedWarning($row, tableDrag);
-+
-+ // FAPI not rendering the form on errors - case #1:
-+ // If the form has been submitted and any error was found, FAPI will
-+ // send back the same exact form that was submitted to show the error
-+ // messages, but it will not invoke the rendering engine which is where
-+ // we actually assign the removed class to the row, so we need to check
-+ // this situation here and add the class if it is not present.
-+ if (!$row.hasClass('content-multiple-removed-row')) {
-+ $row.addClass('content-multiple-removed-row');
-+ }
-+ }
-+ else {
-+ // FAPI not rendering the form on errors - case #2:
-+ // Similar issue than #1, but this time caused when user removes an
-+ // item, previews, FAPI renders the new form with the removed class,
-+ // then user changes anything in the form that causes an error, and
-+ // also restores the previously removed item. This time, FAPI will
-+ // send the form validation error with the item not flagged for removal
-+ // but having the removed class that was present when the form was
-+ // rendered in the previous step. So we need to remove this class here,
-+ // if present, since the item is not really flagged for removal.
-+ if ($row.hasClass('content-multiple-removed-row')) {
-+ $row.removeClass('content-multiple-removed-row');
-+ }
-+ }
-+ });
-+ });
-+};
-+
-+/**
-+ * Private namespace for local methods.
-+ */
-+Drupal.contentRemoveButtons = Drupal.contentRemoveButtons || { _isBusy: false };
-+
-+/**
-+ * onClick handler for remove buttons.
-+ *
-+ * @param $button
-+ * The jQuery object of the remove button.
-+ * @param $checkbox
-+ * The jQuery object of the remove checkbox.
-+ * @param $row
-+ * The jQuery object of the table row.
-+ * @param tableDrag
-+ * The tableDrag object where the row is.
-+ */
-+Drupal.contentRemoveButtons.onClick = function($button, $checkbox, $row, tableDrag) {
-+ var self = Drupal.contentRemoveButtons;
-+
-+ // Prevent the user from firing this event while another one is still being
-+ // processed. This flag is (should be) restored at end of animations.
-+ // Note that this technique is required because the browser may experience
-+ // delays while performing the animation, for whatever reason, and if this
-+ // process it fired more than once at the same time for the same row, then
-+ // it may cause unexpected behavior because the state of the elements being
-+ // manipulated would be unknown.
-+ self._isBusy = true;
-+
-+ // Toggle the state of the checkbox.
-+ var isRemoved = !$checkbox.attr('checked');
-+ $checkbox.attr('checked', isRemoved);
-+
-+ // Toggle the row class.
-+ if (isRemoved) {
-+ $row.addClass('content-multiple-removed-row');
-+ }
-+ else {
-+ $row.removeClass('content-multiple-removed-row');
-+ }
-+
-+ // Toggle the button title.
-+ $button.attr('title', tableDrag.getRemoveButtonTitle(isRemoved));
-+
-+ // Get the list of cell wrappers in this row.
-+ var $cellWrappers = self.getCellWrappers($row);
-+
-+ // If for whatever reason this row doesn't have cells with elements,
-+ // then we are done, but we still need to reset the global busy flag
-+ // and display the tableDrag changed warning.
-+ if (!$cellWrappers.size()) {
-+ tableDrag.displayChangedWarning();
-+ self._isBusy = false;
-+ return;
-+ }
-+
-+ // Toggle the visible state of the row cells.
-+ $cellWrappers.each(function() {
-+ var $cellWrapper = $(this);
-+
-+ // Drop the removed warning during restore operation.
-+ if (!isRemoved) {
-+ self.hideRemovedWarning($row);
-+ }
-+
-+ // Toggle the visibility state of the contents of cells.
-+ $cellWrapper.animate({opacity: (isRemoved ? 'hide' : 'show')}, 'fast', function() {
-+ var $cell = $cellWrapper.parent();
-+
-+ // Show the removed warning during remove operation.
-+ if (isRemoved && $cell.prev(':first').hasClass('content-multiple-drag')) {
-+ self.showRemovedWarning($row, tableDrag);
-+ }
-+
-+ // Disable the busy flag when animation of last cell has finished.
-+ if ($cell.next(':first').hasClass('delta-order')) {
-+ tableDrag.displayChangedWarning();
-+ self._isBusy = false;
-+ }
-+ });
-+ });
-+};
-+
-+/**
-+ * Show the removed warning on the given row.
-+ *
-+ * @param $row
-+ * The jQuery object of the table row.
-+ * @param tableDrag
-+ * The tableDrag object where the row is.
-+ */
-+Drupal.contentRemoveButtons.showRemovedWarning = function($row, tableDrag) {
-+ $('.content-multiple-drag', $row).next(':first').append(Drupal.theme('contentRemovedWarning', tableDrag.getRemovedWarning()));
-+};
-+
-+/**
-+ * Hide the removed warning from the given row.
-+ *
-+ * @param $row
-+ * The jQuery object of the table row.
-+ */
-+Drupal.contentRemoveButtons.hideRemovedWarning = function($row) {
-+ if ($('.content-multiple-removed-warning', $row).size()) {
-+ $('.content-multiple-removed-warning', $row).remove();
-+ }
-+};
-+
-+/**
-+ * Get cell wrappers for the given row.
-+ *
-+ * @param $row
-+ * The jQuery object of the table row.
-+ */
-+Drupal.contentRemoveButtons.getCellWrappers = function($row) {
-+ // Create cell wrappers if this row has not already been processed.
-+ if (!$('.content-multiple-cell-content-wrapper', $row).size()) {
-+ // Wrap the contents of all cells (except the drag'n'drop, weight and
-+ // remove button cells) with a dummy block element. This operation makes
-+ // animations faster because we just need to show/hide a single element
-+ // per cell, and it also prevents from creating more than one warning
-+ // element per row.
-+ $row.children('td:not(.content-multiple-drag):not(.delta-order):not(.content-multiple-remove-cell)').each(function() {
-+ var $cell = $(this);
-+ $cell.wrapInner('<div class="content-multiple-cell-content-wrapper"/>');
-+ });
-+ }
-+ return $('.content-multiple-cell-content-wrapper', $row);
-+};
-+
-+/**
-+ * Display table change warning when appropriate.
-+ */
-+Drupal.tableDrag.prototype.displayChangedWarning = function() {
-+ if (this.changed == false) {
-+ $(Drupal.theme('tableDragChangedWarning')).insertAfter(this.table).hide().fadeIn('slow');
-+ this.changed = true;
-+ }
-+};
-+
-+/**
-+ * Get the title of the remove button.
-+ *
-+ * This method is an extension of the tableDrag object. This means a separate
-+ * module can override this method for a particular tableDrag object. For example,
-+ * the multigroup module can change the text to read 'Remove this group of items',
-+ * another module could change it to 'Remove this image', and so on...
-+ * To override this function:
-+ *
-+ * @code
-+ * var tableId = $(table).attr('id');
-+ * Drupal.tableDrag[tableId].getRemoveButtonTitle = function(isRemoved) {
-+ * return (isRemoved ? Drupal.t('Restore this foo') : Drupal.t('Remove this foo'));
-+ * };
-+ * @endcode
-+ *
-+ * @param isRemoved
-+ * A flag that indicates the state of the button.
-+ */
-+Drupal.tableDrag.prototype.getRemoveButtonTitle = function(isRemoved) {
-+ return (isRemoved ? Drupal.t('Restore this item') : Drupal.t('Remove this item'));
-+};
-+
-+/**
-+ * Get the item removed warning.
-+ *
-+ * This method is an extension of the tableDrag object. It can be overridden by
-+ * a separate module. See getRemoveButtonTitle() for further information.
-+ */
-+Drupal.tableDrag.prototype.getRemovedWarning = function() {
-+ return Drupal.t('Removed');
-+};
-+
-+/**
-+ * Theme the remove button.
-+ */
-+Drupal.theme.prototype.contentRemoveButton = function(title) {
-+ return '<a href="javascript:void(0)" class="content-multiple-remove-button" title="'+ title +'"></a>';
-+};
-+
-+/**
-+ * Theme the item removed warning.
-+ */
-+Drupal.theme.prototype.contentRemovedWarning = function(warning) {
-+ return '<div class="content-multiple-removed-warning">'+ warning +'</div>';
-+};
-diff -rupN theme/content-module.css theme/content-module.css
---- theme/content-module.css 2009-03-14 19:45:38.000000000 +0100
-+++ theme/content-module.css 2009-04-18 10:48:57.000000000 +0200
-@@ -27,6 +27,42 @@
- margin:0;
- }
-
-+.content-multiple-remove-button {
-+ display: block;
-+ float: right;
-+ height: 14px;
-+ width: 16px;
-+ margin: 2px 0 1px 0;
-+ padding: 0;
-+ background:transparent url(../images/remove.png) no-repeat 0 0;
-+ border-bottom: #C2C9CE 1px solid;
-+ border-right: #C2C9CE 1px solid;
-+}
-+.content-multiple-remove-button:hover {
-+ background-position: 0 -14px;
-+}
-+.content-multiple-removed-row .content-multiple-remove-button {
-+ background-position: 0 -28px;
-+}
-+.content-multiple-removed-row .content-multiple-remove-button:hover {
-+ background-position: 0 -42px;
-+}
-+html.js .content-multiple-removed-row {
-+ background-color: #ffffcc;
-+}
-+.content-multiple-weight-header,
-+.content-multiple-remove-header,
-+.content-multiple-remove-cell,
-+.content-multiple-table td.delta-order {
-+ text-align: center;
-+}
-+html.js .content-multiple-weight-header,
-+html.js .content-multiple-remove-header span,
-+html.js .content-multiple-table td.delta-order,
-+html.js .content-multiple-remove-checkbox {
-+ display: none;
-+}
-+
- .node-form .number {
- display:inline;
- width:auto;
diff --git a/cck-views-field_multiple-empty-1040206-1.patch b/cck-views-field_multiple-empty-1040206-1.patch
deleted file mode 100644
index 534d961..0000000
--- a/cck-views-field_multiple-empty-1040206-1.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git includes/views/handlers/content_handler_field_multiple.inc includes/views/handlers/content_handler_field_multiple.inc
-index 896a85d..9ea21f9 100644
---- includes/views/handlers/content_handler_field_multiple.inc
-+++ includes/views/handlers/content_handler_field_multiple.inc
-@@ -252,7 +252,7 @@ class content_handler_field_multiple extends content_handler_field {
- // Single-value formatter.
- foreach ($items as $item) {
- $output = content_format($field, $item, $formatter_name, $node);
-- if (!empty($output)) {
-+ if (isset($output)) {
- $rendered[] = $this->render_link($output, (object) array('nid' => $nid));
- }
- }
diff --git a/content.info b/content.info
index 183db6b..7848005 100644
--- a/content.info
+++ b/content.info
@@ -1,4 +1,3 @@
-; $Id: content.info,v 1.6 2007/07/04 23:46:29 yched Exp $
name = Content
description = Allows administrators to define new content types.
package = CCK
diff --git a/content.install b/content.install
index 9c3ddce..86d1d2a 100644
--- a/content.install
+++ b/content.install
@@ -1,5 +1,4 @@
<?php
-// $Id: content.install,v 1.85.2.33 2009/07/14 22:17:05 yched Exp $
function content_requirements($phase) {
$requirements = array();
diff --git a/content.js b/content.js
deleted file mode 100644
index cb6fca7..0000000
--- a/content.js
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id: content.js,v 1.1.2.3 2008/10/06 14:30:01 karens Exp $
-
-Drupal.behaviors.cckManageFields = function(context) {
- attachUpdateSelects(context);
-};
-
-function attachUpdateSelects(context) {
- var widgetTypes = Drupal.settings.contentWidgetTypes;
- var fields = Drupal.settings.contentFields;
-
- // Store the default text of widget selects.
- $('#content-field-overview .content-widget-type-select', context).each(function() {
- this.initialValue = this.options[0].text;
- });
-
- // 'Field type' select updates its 'Widget' select.
- $('#content-field-overview .content-field-type-select', context).each(function() {
- this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
-
- $(this).change(function() {
- var selectedFieldType = this.options[this.selectedIndex].value;
- var options = (selectedFieldType in widgetTypes) ? widgetTypes[selectedFieldType] : [ ];
- this.targetSelect.contentPopulateOptions(options);
- });
-
- // Trigger change on initial pageload to get the right widget options
- // when field type comes pre-selected (on failed validation).
- $(this).trigger('change');
- });
-
- // 'Existing field' select updates its 'Widget' select and 'Label' textfield.
- $('#content-field-overview .content-field-select', context).each(function() {
- this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
- this.targetTextfield = $('.content-label-textfield', $(this).parents('tr').eq(0));
-
- $(this).change(function(e, updateText) {
- var updateText = (typeof(updateText) == 'undefined') ? true : updateText;
- var selectedField = this.options[this.selectedIndex].value;
- var selectedFieldType = (selectedField in fields) ? fields[selectedField].type : null;
- var selectedFieldWidget = (selectedField in fields) ? fields[selectedField].widget : null
- var options = (selectedFieldType && (selectedFieldType in widgetTypes)) ? widgetTypes[selectedFieldType] : [ ];
- this.targetSelect.contentPopulateOptions(options, selectedFieldWidget);
-
- if (updateText) {
- $(this.targetTextfield).attr('value', (selectedField in fields) ? fields[selectedField].label : '');
- }
- });
-
- // Trigger change on initial pageload to get the right widget options
- // and label when field type comes pre-selected (on failed validation).
- $(this).trigger('change', false);
- });
-}
-
-jQuery.fn.contentPopulateOptions = function(options, selected) {
- return this.each(function() {
- var disabled = false;
- if (options.length == 0) {
- options = [this.initialValue];
- disabled = true;
- }
-
- // If possible, keep the same widget selected when changing field type.
- // This is based on textual value, since the internal value might be
- // different (optionwidgets_buttons vs. nodereference_buttons).
- var previousSelectedText = this.options[this.selectedIndex].text;
-
- var html = '';
- jQuery.each(options, function(value, text) {
- // Figure out which value should be selected. The 'selected' param
- // takes precedence.
- var is_selected = ((typeof(selected) !== 'undefined' && value == selected) || (typeof(selected) == 'undefined' && text == previousSelectedText));
- html += '<option value="' + value + '"' + (is_selected ? ' selected="selected"' : '') +'>' + text + '</option>';
- });
-
- $(this)
- .html(html)
- .attr('disabled', disabled ? 'disabled' : '');
- });
-}
\ No newline at end of file
diff --git a/content.module b/content.module
index b3188e8..ea510c9 100644
--- a/content.module
+++ b/content.module
@@ -1,5 +1,4 @@
<?php
-// $Id: content.module,v 1.301.2.120 2010/08/11 23:27:10 pwolanin Exp $
/**
* @file
* Allows administrators to associate custom fields to content types.
@@ -333,7 +332,8 @@ function content_view(&$node, $teaser = FALSE, $page = FALSE) {
// Merge fields.
$additions = _content_field_invoke_default('view', $node, $teaser, $page);
- $node->content = array_merge((array) $node->content, $additions);
+ $old = isset($node->content) ? (array) $node->content : array();
+ $node->content = array_merge($old, $additions);
}
/**
@@ -477,6 +477,15 @@ function content_add_more_submit_proxy($form, &$form_state) {
}
/**
+ * Proxy function to call content_multiple_value_after_build(), because it might
+ * not be included yet when the form is processed and invokes the callback.
+ */
+function content_multiple_value_after_build_proxy($elements, &$form_state) {
+ module_load_include('inc', 'content', 'includes/content.node_form');
+ return content_multiple_value_after_build($elements, $form_state);
+}
+
+/**
* Theme an individual form element.
*
* Combine multiple values into a table with drag-n-drop reordering.
@@ -540,7 +549,7 @@ function theme_content_multiple_values($element) {
$output .= drupal_render($element[$element['#field_name'] .'_add_more']);
drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
- drupal_add_js(drupal_get_path('module', 'content') .'/theme/content-edit.js');
+ drupal_add_js(drupal_get_path('module', 'content') .'/js/content.node_form.js');
}
else {
foreach (element_children($element) as $key) {
@@ -697,8 +706,14 @@ function content_associate_fields($module) {
function content_field($op, &$node, $field, &$items, $teaser, $page) {
switch ($op) {
case 'validate':
- // Filter out empty values and items flagged for removal.
- $items = content_set_empty($field, $items);
+ // If the field is configured for multiple values and these are handled
+ // by content module, we need to filter out items flagged for removal and
+ // count non-empty items to enforce field requirement settings.
+ if ($field['multiple'] >= 1 && content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+ module_load_include('inc', 'content', 'includes/content.node_form');
+ // Note that the $teaser argument for nodeapi('validate') is the $form.
+ content_multiple_value_nodeapi_validate($node, $field, $items, $teaser);
+ }
break;
case 'presave':
@@ -729,7 +744,7 @@ function content_field($op, &$node, $field, &$items, $teaser, $page) {
$items = _content_sort_items($field, $items);
}
- // Filter out empty values and items flagged for removal.
+ // Filter out items flagged for removal.
$items = content_set_empty($field, $items);
break;
@@ -737,15 +752,14 @@ function content_field($op, &$node, $field, &$items, $teaser, $page) {
case 'view':
$addition = array();
- // Previewed nodes bypass the 'presave' op, so we need to some massaging.
- //if ($node->build_mode == NODE_BUILD_PREVIEW && content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+ // Previewed nodes bypass the 'presave' op, so we need to do some massaging.
if ($node->build_mode == NODE_BUILD_PREVIEW) {
if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
// Reorder items to account for drag-n-drop reordering.
$items = _content_sort_items($field, $items);
}
- // Filter out empty values.
+ // Filter out items flagged for removal.
$items = content_set_empty($field, $items);
}
@@ -834,22 +848,15 @@ function content_field($op, &$node, $field, &$items, $teaser, $page) {
// The location of the field's rendered output depends on whether the
// field is in a fieldgroup or not.
- $wrapper = NULL;
- if (isset($node->content[$field['field_name']])) {
- $wrapper = $node->content[$field['field_name']];
- }
- elseif (module_exists('fieldgroup') && ($group_name = fieldgroup_get_group($node->type, $field['field_name'])) && isset($node->content[$group_name]['group'][$field['field_name']])) {
- $wrapper = $node->content[$group_name]['group'][$field['field_name']];
- }
-
- if ($wrapper) {
+ $wrappers = content_get_nested_elements($node->content, $field['field_name']);
+ foreach ($wrappers as $wrapper) {
$element = $wrapper['field'];
// '#single' is not set if the field is hidden or inaccessible.
if (isset($element['#single'])) {
if (!empty($element['#single'])) {
// Single value formatter.
foreach (element_children($element['items']) as $delta) {
- // '#chilren' is not set if the field is empty.
+ // '#children' is not set if the field is empty.
$items[$delta]['view'] = isset($element['items'][$delta]['#children']) ? $element['items'][$delta]['#children'] : '';
}
}
@@ -867,23 +874,15 @@ function content_field($op, &$node, $field, &$items, $teaser, $page) {
case 'preprocess_node':
// Add $FIELD_NAME_rendered variables.
- $addition = array();
+ $addition = array($field['field_name'] .'_rendered' => '');
// The location of the field's rendered output depends on whether the
// field is in a fieldgroup or not.
- $wrapper = NULL;
- if (isset($node->content[$field['field_name']])) {
- $wrapper = $node->content[$field['field_name']];
- }
- elseif (module_exists('fieldgroup') && ($group_name = fieldgroup_get_group($node->type, $field['field_name'])) && isset($node->content[$group_name]['group'][$field['field_name']])) {
- $wrapper = $node->content[$group_name]['group'][$field['field_name']];
- }
-
- if ($wrapper) {
- // '#chilren' is not set if the field is empty.
- $addition[$field['field_name'] .'_rendered'] = isset($wrapper['#children']) ? $wrapper['#children'] : '';
+ $wrappers = content_get_nested_elements($node->content, $field['field_name']);
+ foreach ($wrappers as $wrapper) {
+ // '#children' is not set if the field is empty.
+ $addition[$field['field_name'] .'_rendered'] .= isset($wrapper['#children']) ? $wrapper['#children'] : '';
}
-
return $addition;
case 'prepare translation':
@@ -896,7 +895,7 @@ function content_field($op, &$node, $field, &$items, $teaser, $page) {
}
/**
- * Helper function to filter out empty values and items flagged for removal.
+ * Helper function to filter out items flagged for removal.
*
* On order to keep marker rows in the database, the function ensures
* that the right number of 'all columns NULL' values is kept.
@@ -1021,6 +1020,19 @@ function content_storage($op, $node) {
// Preserve deltas when loading items from database.
if (isset($row['delta'])) {
+ // Make sure multiple value fields have consecutive deltas.
+ if ($row['delta'] > 0 && !isset($additions[$field_name][$row['delta']-1])) {
+ $empty = array();
+ foreach (array_keys($db_info['columns']) as $column) {
+ $empty[$column] = NULL;
+ }
+ $next_delta = !empty($additions[$field_name]) ? (max(array_keys($additions[$field_name])) + 1) : 0;
+ for ($delta = $next_delta; $delta < $row['delta']; $delta++) {
+ if (!isset($additions[$field_name][$delta])) {
+ $additions[$field_name][$delta] = $empty;
+ }
+ }
+ }
$additions[$field_name][$row['delta']] = $item;
}
else {
@@ -1082,14 +1094,34 @@ function content_storage($op, $node) {
if ($op == 'update') {
db_query('DELETE FROM {'. $db_info['table'] .'} WHERE vid = %d', $node->vid);
}
+ // Collect records for non-empty items.
+ $function = $field['module'] .'_content_is_empty';
+ $records = array();
foreach ($node->$field['field_name'] as $delta => $item) {
+ if (!$function($item, $field)) {
+ $record = array();
+ foreach ($db_info['columns'] as $column => $attributes) {
+ $record[$attributes['column']] = $item[$column];
+ }
+ $record['nid'] = $node->nid;
+ $record['vid'] = $node->vid;
+ $record['delta'] = $delta;
+ $records[] = $record;
+ }
+ }
+ // If there was no non-empty item, insert delta 0 with NULL values.
+ if (empty($records)) {
$record = array();
foreach ($db_info['columns'] as $column => $attributes) {
- $record[$attributes['column']] = $item[$column];
+ $record[$attributes['column']] = NULL;
}
$record['nid'] = $node->nid;
$record['vid'] = $node->vid;
- $record['delta'] = $delta;
+ $record['delta'] = 0;
+ $records[] = $record;
+ }
+ // Insert the collected records for this field into database.
+ foreach ($records as $record) {
content_write_record($db_info['table'], $record);
}
}
@@ -2374,7 +2406,7 @@ function theme_content_exclude($content, $object, $context) {
* TODO : this should live in theme/theme.inc, but then the preprocessor
* doesn't get called when the theme overrides the template. Bug in theme layer ?
*/
-function content_preprocess_content_field(&$variables) {
+function template_preprocess_content_field(&$variables) {
$element = $variables['element'];
$field = content_fields($element['#field_name'], $element['#node']->type);
@@ -2506,7 +2538,7 @@ function content_content_extra_fields($type_name) {
'description' => t('Comment module form.'),
'weight' => 30
);
- }
+ }
if (module_exists('locale') && variable_get("language_content_type_$type_name", 0)) {
$extra['language'] = array(
'label' => t('Language'),
@@ -2697,3 +2729,113 @@ function content_inactive_fields($type_name = NULL) {
}
return $inactive;
}
+
+/**
+ * Helper function to identify inactive instances.
+ * This will be the same results as content_inactive_fields(),
+ * EXCEPT that his function will return inactive instances even
+ * if the fields have other (shared) instances that are still active.
+ */
+function content_inactive_instances($type_name = NULL) {
+ module_load_include('inc', 'content', 'includes/content.crud');
+ if (!empty($type_name)) {
+ $param = array('type_name' => $type_name);
+ $inactive = array($type_name => array());
+ }
+ else {
+ $param = array();
+ $inactive = array();
+ }
+ $all = content_field_instance_read($param, TRUE);
+ foreach ($all as $field) {
+ $inactive[$field['type_name']][$field['field_name']] = content_field_instance_expand($field);
+ }
+ if (!empty($type_name)) {
+ return $inactive[$type_name];
+ }
+ return $inactive;
+}
+
+/**
+ * Return the nested form elements for a field by name.
+ * This can be used either to retrieve the entire sub-element
+ * for a field by name, no matter how deeply nested it is within
+ * fieldgroups or multigroups, or to find the multiple value
+ * sub-elements within a field element by name (i.e. 'value' or
+ * 'nid'). You can also use this function to see if an item exists
+ * in a form (the return will be an empty array if it does not exist).
+ *
+ * A field/group will generally only exist once in a form but the
+ * function can also be used to locate all the 'value' elements
+ * within a multiple value field if you pass the multiple value field
+ * as the $form argument;
+ *
+ * For example, for a field named field_custom, the following will
+ * pluck out the form element for this field from the node form,
+ * no matter how deeply it is nested within fieldgroups or fieldsets:
+ *
+ * $element = array_shift(content_get_nested_elements($node_form, 'field_custom'));
+ *
+ * You can prefix the function with '&' to retrieve the element by
+ * reference to alter it directly:
+ *
+ * $elements = &content_get_nested_elements($form, 'field_custom');
+ * foreach ($elements as $element) {
+ * $element['#after_build'][] = 'my_field_afterbuild';
+ * }
+ *
+ * During the #after_build you could then do something like the
+ * following to alter each individual part of a multiple value field:
+ *
+ * $sub_elements = &content_get_nested_elements($element, 'value', 'all');
+ * foreach ($sub_elements as $sub_element) {
+ * $sub_element['#element_validate'][] = 'custom_validation';
+ * }
+ *
+ * @param $form
+ * The form array to search.
+ * @param $field_name
+ * The name or key of the form elements to return. Can be a field name, a group name, or a sub-field.
+ * @return
+ * An array of all matching form elements, returned by reference.
+ */
+function &content_get_nested_elements(&$form, $field_name) {
+ $elements = array();
+ foreach (element_children($form) as $key) {
+ if ($key === $field_name) {
+ $elements[] = &$form[$key];
+ }
+ else if (is_array($form[$key])) {
+ $nested_form = &$form[$key];
+ if ($sub_elements = &content_get_nested_elements($nested_form, $field_name)) {
+ $elements = array_merge($elements, $sub_elements);
+ }
+ }
+ }
+ return $elements;
+}
+
+/**
+ * Helper function to set a value in a form element,
+ * no matter how deeply nested it is in the form.
+ *
+ * @param $form
+ * The form array to search.
+ * @param $field_name
+ * The name or key of the form elements to return. Can be a field name, a group name, or a sub-field.
+ * @param $value
+ * The value to set the element to. Should be an array that matches the part of the form that is being altered.
+ * @return
+ * TRUE or FALSE, depending on whether the element was discovered and set.
+ */
+function content_set_nested_elements(&$form, $field_name, $value) {
+ $success = FALSE;
+ $elements = &content_get_nested_elements($form, $field_name);
+ if (!empty($elements)) {
+ foreach ($elements as &$element) {
+ $element = $value;
+ $success = TRUE;
+ }
+ }
+ return $success;
+}
\ No newline at end of file
diff --git a/content.node_form.320313.patch b/content.node_form.320313.patch
deleted file mode 100644
index 1c2bbfa..0000000
--- a/content.node_form.320313.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: content.node_form.inc
-===================================================================
-RCS file: /cvs/drupal-contrib/contributions/modules/cck/includes/Attic/content.node_form.inc,v
-retrieving revision 1.7.2.19
-diff -u -r1.7.2.19 content.node_form.inc
---- content.node_form.inc 2 Jun 2009 20:18:27 -0000 1.7.2.19
-+++ content.node_form.inc 12 Jun 2009 21:14:32 -0000
-@@ -155,9 +155,17 @@
- break;
- case 1:
- $filled_items = content_set_empty($field, $items);
-+ // make the count different for no item (filled with an empty item by content_set_empty) and 1 item with data
-+ $hook_is_empty = $field['module'] .'_content_is_empty';
-+ if (count($items) == 1 && $hook_is_empty($items[0], $field)) {
-+ $minimum_item_count = 0;
-+ }
-+ else {
-+ $minimum_item_count = count($items);
-+ }
- $current_item_count = isset($form_state['item_count'][$field_name])
- ? $form_state['item_count'][$field_name]
-- : count($items);
-+ : $minimum_item_count;
- // We always want at least one empty icon for the user to fill in.
- $max = ($current_item_count > count($filled_items))
- ? $current_item_count - 1
-
diff --git a/content_multigroup/README.txt b/content_multigroup/README.txt
deleted file mode 100644
index 5cc3ef8..0000000
--- a/content_multigroup/README.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-; $Id: README.txt,v 1.1.2.2 2008/10/14 15:28:14 karens Exp $
-
-USING MULTIGROUPS
-
-The Multigroup group treats all included fields like a single field,
-keeping the related delta values of all included fields synchronized.
-
-To use a Multigroup, create a new group, make it the 'Multigroup' type,
-set the number of multiple values for all the fields in the Multigroup,
-and drag into it the fields that should be included.
-
-All fields in the Multigroup will automatically get the group
-setting for multiple values. On the node form, the group is rearranged
-to keep the delta values for each field in a single drag 'n drop group,
-by transposing the normal array(field_name => delta => value) into
-array(delta => field_name => value).
-
-During validation and submission, the field values are restored to
-their normal positions.
-
-FIELDS AND WIDGETS THAT WORK IN MULTIGROUPS
-
-All fields that allow the Content module to handle their multiple
-values should work here. Fields that handle their own multiple values
-will not be allowed into Multigroups unless they implement
-hook_multigroup_allowed_widgets() to add their widgets to the allowed
-widget list.
-
-All fields that allow the Content module to handle their multiple
-values should work correctly when a Multigroup is changed back to
-a normal group. Fields that handle their own multiple values
-which may store different results in Multigroup and standard groups should
-implement hook_multigroup_no_remove_widgets() to add their widgets
-to the list of widgets that cannot be removed from Multigroups.
-
-If a simple array of widgets is not sufficient to test whether this
-action will work, modules can implement hook_multigroup_allowed_in()
-and hook_multigroup_allowed_out() to intervene.
-
-Custom code and modules that add fields to groups outside of the UI
-should use multigroup_allowed_in() and multigroup_allowed_out()
-to test whether fields are allowed in or out of a Multigroup.
-
-
-TROUBLESHOOTING
-
-The most likely cause of problems with field modules not working in
-multigroup is if they wipe out #element_validate with their own
-validation functions, or they hard-code assumptions into submit or
-validation processes that the form is structured in the usual
-field => delta => value order instead of allowing for the possibility
-of a different structure. See Nodereference for an example of a field
-that handles validation without making assumptions about the form
-structure.
diff --git a/content_multigroup/content_multigroup.admin.inc b/content_multigroup/content_multigroup.admin.inc
deleted file mode 100644
index f5b0971..0000000
--- a/content_multigroup/content_multigroup.admin.inc
+++ /dev/null
@@ -1,446 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Implementation of node type administration functions for content multigroup.
- */
-
-/**
- * Helper function to build the multiple values options for multigroups.
- */
-function content_multigroup_multiple_values() {
- return array(
- //'' => t('N/A'),
- 1 => t('Unlimited'),
- 0 => 1) + drupal_map_assoc(range(2, 10));
-}
-
-/**
- * Validation for creating/moving fields and groups on the
- * Manage Fields screen.
- */
-function content_multigroup_field_overview_form_validate($form, &$form_state) {
- $form_values = $form_state['values'];
-
- $type_name = $form['#type_name'];
- $fields = array();
- $groups = array();
-
- $group = $form_values['_add_new_group'];
- if (array_filter(array($group['label'], $group['group_name']))) {
- $group['settings'] = field_group_default_settings($group['group_type']);
- $validation = fieldgroup_validate_name($group, $form['#type_name']);
-
- // If there's something wrong with the new group,
- // don't bother doing any more validation, further
- // processing will be stopped by the fieldgroup module.
- if (!empty($validation['errors'])) {
- return;
- }
- $group['group_name'] = $validation['group_name'];
- $new_group_name = $group['group_name'];
- $groups['_add_new_group'] = $group;
- }
-
- // See if we have fields moving into or out of a Multigroup.
- // Set any fields to use the new name here so they will get processed
- // correctly by the fieldgroup module when saved.
- foreach ($form_values as $key => $values) {
- if ($values['parent'] == '_add_new_group') {
- $values['parent'] = $new_group_name;
- $form_values[$key] = $values;
- }
-
- if (!empty($form[$key]['#row_type']) && $form[$key]['#row_type'] == 'group') {
- // Gather up info about all groups.
- $group_name = $form_values[$key]['group']['group_name'];
- $groups[$group_name] = $form_values[$key]['group'];
- }
- if (!empty($form[$key]['#row_type']) && $form[$key]['#row_type'] == 'field') {
- if ($values['prev_parent'] != $values['parent']) {
- // Gather up fields that have moved in or out of a group.
- $fields[$key] = $form_values[$key]['field'];
- }
- }
- }
-
- foreach ($fields as $field_name => $field) {
- $new_group = $form_values[$field_name]['parent'];
- $old_group = $form_values[$field_name]['prev_parent'];
- if (!empty($new_group) && isset($groups[$new_group]) && $groups[$new_group]['group_type'] == 'multigroup') {
- $allowed_in = content_multigroup_allowed_in($field, $groups[$new_group]);
- if (!$allowed_in['allowed']) {
- form_set_error($field_name, $allowed_in['message']);
- }
- else {
- if (!empty($allowed_in['message'])) {
- drupal_set_message($allowed_in['message']);
- }
- module_load_include('inc', 'content', 'includes/content.crud');
- $content_type = content_types($type_name);
- $group_multiple = $groups[$new_group]['settings']['multigroup']['multiple'];
- $multiple_values = content_multigroup_multiple_values();
- $field = $content_type['fields'][$field_name];
- $field['multiple'] = $group_multiple;
- $field = content_field_instance_collapse($field);
- content_field_instance_update($field);
- drupal_set_message(t('The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group.', array(
- '%field' => $field['label'], '%multiple' => $multiple_values[$group_multiple], '%group' => $groups[$new_group]['label'])));
- }
- }
- elseif (!empty($old_group) && isset($groups[$old_group]) && $groups[$old_group]['group_type'] == 'multigroup') {
- $allowed_out = content_multigroup_allowed_out($field, $groups[$old_group]);
- if (!$allowed_out['allowed']) {
- form_set_error($field_name, $allowed_out['message']);
- }
- elseif (!empty($allowed_out['message'])) {
- drupal_set_message($allowed_out['message']);
- }
- }
- }
-}
-
-/**
- * Helper function for deciding if a field is
- * allowed into a Multigroup.
- */
-function content_multigroup_allowed_in($field, $group) {
- if ($group['group_type'] != 'multigroup') {
- return array('allowed' => TRUE, 'message' => '');
- }
-
- // We can't allow fields with more multiple values than the group has
- // to be moved into it.
- $max_existing = content_max_delta($field['field_name']);
- $group_multiple = $group['settings']['multigroup']['multiple'];
- $multiple_values = content_multigroup_multiple_values();
- if ($group_multiple != 1 && $max_existing > $group_multiple) {
- return array(
- 'allowed' => FALSE,
- 'message' => t('This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data.', array('%field' => $field['widget']['label'], '%multiple' => $max_existing, '%group' => $group['label'], '%group_max' => $multiple_values[$group_multiple]))
- );
- }
-
- // Fields that handle their own multiple values may not have the same values
- // in Multigroup fields and normal fields. We don't know if they will work or not.
-
- // Adding a hook here where widgets that handle their own multiple values
- // that will work correctly in Multigroups can allow their fields in.
-
- if (content_handle('widget', 'multiple values', $field) != CONTENT_HANDLE_CORE) {
- $allowed_widgets = array(
- 'optionwidgets_select',
- 'optionwidgets_buttons',
- 'optionwidgets_onoff',
- 'nodereference_buttons',
- 'nodereference_select',
- 'userreference_buttons',
- 'userreference_select',
- );
- $allowed_widgets = array_merge($allowed_widgets, module_invoke_all('content_multigroup_allowed_widgets'));
- if (!in_array($field['widget']['type'], $allowed_widgets)) {
- return array(
- 'allowed' => FALSE,
- 'message' => t('This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data.', array('%field' => $field['widget']['label']))
- );
- }
- }
-
- // Allow other modules to intervene.
- // Any failure will prevent this action.
- foreach (module_implements('content_multigroup_allowed_in') as $module) {
- $function = $module .'_content_multigroup_allowed_in';
- $result = $function($field, $group);
- if ($result['allowed'] === FALSE) {
- return array('allowed' => FALSE, 'message' => $result['message']);
- }
- }
-
- $message = t('You are moving the field %field into a Multigroup.', array('%field' => $field['widget']['label']));
- return array('allowed' => TRUE, 'message' => $message);
-}
-
-/**
- * Helper function for deciding if a field is
- * allowed out of a Multigroup.
- */
-function content_multigroup_allowed_out($field, $group) {
- if ($group['group_type'] != 'multigroup') {
- return array('allowed' => TRUE, 'message' => '');
- }
- // Optionwidgets do not behave the same in a Multigroup field as out of it.
- // In a Multigroup the same option can be selected multiple times,
- // but that is not possible in a normal group.
-
- // Adding a hook here where widgets that handle their own multiple values
- // can indicate their fields should not be removed from Multigroups.
-
- $max_existing = content_max_delta($field['field_name']);
- $no_remove_widgets = array(
- 'optionwidgets_select',
- 'optionwidgets_buttons',
- 'optionwidgets_onoff',
- 'nodereference_buttons',
- 'nodereference_select',
- 'userreference_buttons',
- 'userreference_select',
- );
- $no_remove_widgets = array_merge($no_remove_widgets, module_invoke_all('content_multigroup_no_remove_widgets'));
- if (in_array($field['widget']['type'], $no_remove_widgets) && $max_existing > 0) {
- return array(
- 'allowed' => FALSE,
- 'message' => t('This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data.', array('%field' => $field['widget']['label']))
- );
- }
-
- // Allow other modules to intervene.
- // Any failure will prevent this action.
- foreach (module_implements('content_multigroup_allowed_out') as $module) {
- $function = $module .'_content_multigroup_allowed_out';
- $result = $function($field, $group);
- if ($result['allowed'] === FALSE) {
- return array('allowed' => FALSE, 'message' => $result['message']);
- }
- }
-
- $message = t('You are moving the field %field out of a Multigroup.', array('%field' => $field['widget']['label']));
- return array('allowed' => TRUE, 'message' => $message);
-}
-
-/**
- * Menu callback; presents a listing of fields display settings for a content type.
- *
- * Add an additional selector for setting multigroup field display format.
- */
-function content_multigroup_display_overview_form(&$form, &$form_state) {
-
- $type_name = $form['#type_name'];
- $contexts_selector = $form['#contexts'];
-
- // Gather type information.
- $content_type = content_types($type_name);
-
- // The content module stops building the form if the type has no fields.
- if (empty($content_type['fields'])) {
- return;
- }
-
- $groups = array();
- if (module_exists('fieldgroup')) {
- $groups = fieldgroup_groups($type_name);
- }
- $contexts = content_build_modes($contexts_selector);
-
- // Multigroups, extra values.
- $label_options = array(
- 'above' => t('Above'),
- 'hidden' => t('<Hidden>'),
- );
- $options = array(
- 'simple' => t('Simple'),
- 'fieldset' => t('Fieldset'),
- 'hr' => t('Horizontal line'),
- 'table-single' => t('Table - Single column'),
- 'table-multiple' => t('Table - Multiple columns'),
- );
- foreach ($groups as $group_name => $group) {
- if ($group['group_type'] != 'multigroup') {
- continue;
- }
- $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
-
- $subgroup_name = $group_name .'_subgroup';
- $form['#fields'] = array_merge(array($subgroup_name), $form['#fields']);
- $form[$subgroup_name] = array(
- 'human_name' => array('#value' => t('[Subgroup format]')),
- 'weight' => array('#type' => 'value', '#value' => -20),
- 'parent' => array('#type' => 'value', '#value' => $group_name),
- 'subgroup' => array('#type' => 'value', '#value' => 1),
- );
- if ($contexts_selector == 'basic') {
- $form[$subgroup_name]['label'] = array(
- '#type' => 'select',
- '#options' => $label_options,
- '#default_value' => isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above',
- );
- }
- foreach ($contexts as $key => $title) {
- $form[$subgroup_name][$key]['format'] = array(
- '#type' => 'select',
- '#options' => $options,
- '#default_value' => isset($subgroup_settings[$key]['format']) ? $subgroup_settings[$key]['format'] : 'fieldset',
- );
- $form[$subgroup_name][$key]['exclude'] = array('#type' => 'value', '#value' => 0);
- }
- }
-
- $form['#submit'] = array_merge(array('content_multigroup_display_overview_form_submit'), $form['#submit']);
-}
-
-/**
- * Submit handler for the display overview form.
- *
- * Do this in pre_save so we catch it before the content module
- * tries to use our 'field'.
- */
-function content_multigroup_display_overview_form_submit($form, &$form_state) {
- $groups = fieldgroup_groups($form['#type_name']);
- $reset_cache = FALSE;
-
- // Find any subgroups we inserted into the display fields form,
- // save our settings, and remove them from $form_state.
- foreach ($form_state['values'] as $key => $values) {
- if (in_array($key, $form['#fields']) && !empty($values['parent']) && !empty($values['subgroup'])) {
- $group_name = $values['parent'];
- $group = $groups[$group_name];
- unset($values['subgroup'], $values['parent']);
-
- // We have some numeric keys here, so we can't use array_merge.
- foreach ($values as $k => $v) {
- $group['settings']['multigroup']['subgroup'][$k] = $v;
- }
-
- // Update the group information in the database. Note that
- // 'fieldgroup_data' in cache tables are also cleared here,
- // but we need to reset static caches of fieldgroup_groups().
- fieldgroup_save_group($form['#type_name'], $group);
- $reset_cache = TRUE;
-
- // Remove the subgroup from $form_state.
- unset($form_state['values'][$key]);
- }
- }
- if ($reset_cache) {
- fieldgroup_groups('', FALSE, TRUE);
- }
-}
-
-/**
- * Alter the Fieldgroup edit form to add Multigroup settings.
- */
-function content_multigroup_group_edit_form(&$form, &$form_state) {
- $type_name = $form['#content_type']['type'];
- $group_name = $form['group_name']['#default_value'];
-
- $content_type = content_types($type_name);
- $groups = fieldgroup_groups($type_name);
- $group = $groups[$group_name];
-
- if ($group['group_type'] != 'multigroup') {
- return;
- }
-
- module_load_include('inc', 'content', 'includes/content.admin');
- module_load_include('inc', 'content', 'includes/content.crud');
- $form['group_type'] = array(
- '#type' => 'hidden',
- '#value' => $group['group_type'],
- );
- $form['settings']['multigroup'] = array(
- '#type' => 'fieldset',
- '#title' => t('Multigroup settings'),
- '#collapsed' => FALSE,
- '#collapsible' => TRUE,
- );
-
- if (isset($group['settings']['multigroup']['subgroup'])) {
- // Preserve subgroup display settings.
- $form['settings']['multigroup']['subgroup'] = array(
- '#type' => 'value',
- '#value' => $group['settings']['multigroup']['subgroup'],
- );
- }
-
- $form['settings']['multigroup']['multiple-columns'] = array(
- '#type' => 'checkbox',
- '#title' => t('Multiple columns'),
- '#default_value' => isset($group['settings']['multigroup']['multiple-columns']) ? $group['settings']['multigroup']['multiple-columns'] : 0,
- '#description' => t('Enable this option to render each field on a separate column on the node edit form.'),
- );
-
- $form['settings']['multigroup']['required'] = array(
- '#type' => 'checkbox',
- '#title' => t('Required'),
- '#default_value' => isset($group['settings']['multigroup']['required']) ? $group['settings']['multigroup']['required'] : 1,
- '#description' => t('Enable this option to require a minimum of one collection of fields in this Multigroup.'),
- );
-
- $description = t('Number of times to repeat the collection of Multigroup fields.') .' ';
- $description .= t("'Unlimited' will provide an 'Add more' button so the users can add items as many times as they like.") .' ';
- $description .= t('All fields in this group will automatically be set to allow this number of values.');
-
- $group_multiple = isset($group['settings']['multigroup']['multiple']) ? $group['settings']['multigroup']['multiple'] : 1;
- $form['settings']['multigroup']['multiple'] = array(
- '#type' => 'select',
- '#title' => t('Number of repeats'),
- '#options' => content_multigroup_multiple_values(),
- '#default_value' => $group_multiple,
- '#description' => $description,
- );
-
- $form['settings']['multigroup']['labels'] = array(
- '#type' => 'fieldset',
- '#title' => t('Labels'),
- '#description' => t("Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."),
- );
- if ($group_multiple < 2) {
- $group_multiple = 0;
- }
- for ($i = 0; $i < 10; $i++) {
- $form['settings']['multigroup']['labels'][$i] = array(
- '#type' => 'textfield',
- '#title' => t('Subgroup %number label', array('%number' => $i + 1)),
- '#default_value' => isset($group['settings']['multigroup']['labels'][$i]) ? $group['settings']['multigroup']['labels'][$i] : '',
- );
- }
-
- $form['#validate'][] = 'content_multigroup_group_edit_form_validate';
- $form['#submit'][] = 'content_multigroup_group_edit_form_submit';
-}
-
-/**
- * Validate the Fieldgroup edit form.
- */
-function content_multigroup_group_edit_form_validate($form, &$form_state) {
- $form_values = $form_state['values'];
- $group_type = $form_values['group_type'];
- if ($group_type != 'multigroup') {
- return;
- }
- $content_type = $form['#content_type'];
- $groups = fieldgroup_groups($content_type['type']);
- $group = $groups[$form_values['group_name']];
- foreach ($group['fields'] as $field_name => $data) {
- // Make sure we don't set the multiple values to a number that
- // would result in lost data.
- $max_existing = content_max_delta($field_name);
- if ($form_values['settings']['multigroup']['multiple'] != 1
- && $max_existing > $form_values['settings']['multigroup']['multiple']) {
- form_set_error('settings][multigroup][multiple', t('The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this.', array('%field' => $data['label'], '%multiple' => $max_existing)));
- }
- }
-}
-
-/**
- * Submit the Fieldgroup edit form.
- *
- * Update multiple values of fields contained in Multigroups.
- */
-function content_multigroup_group_edit_form_submit($form, &$form_state) {
- $form_values = $form_state['values'];
- $group_type = $form_values['group_type'];
- if ($group_type != 'multigroup') {
- return;
- }
- module_load_include('inc', 'content', 'includes/content.crud');
- $content_type = $form['#content_type'];
- $groups = fieldgroup_groups($content_type['type']);
- $group = $groups[$form_values['group_name']];
- $group_fields = array_intersect_key($content_type['fields'], $group['fields']);
- foreach ($group_fields as $field_name => $field) {
- $field['multiple'] = $form_values['settings']['multigroup']['multiple'];
- $field = content_field_instance_collapse($field);
- content_field_instance_update($field);
- }
-}
diff --git a/content_multigroup/content_multigroup.css b/content_multigroup/content_multigroup.css
deleted file mode 100644
index d6b4d44..0000000
--- a/content_multigroup/content_multigroup.css
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id: content_multigroup.css,v 1.1.2.1 2008/10/14 15:16:50 karens Exp $ */
-
-label.content-multigroup {
- font-weight: bold;
-}
-
-/* Not styled by default, but available to style. */
-hr.content-multigroup {
-}
-
-/* Inline field labels visible within the context of multigroups. */
-.content-multigroup-wrapper .field .field-label-inline {
- visibility: visible;
-}
-
-/**
- * Hide field labels and description on the node edit form when the multiple
- * columns option is enabled.
- */
-.content-multigroup-edit-table-multiple-columns label,
-.content-multigroup-edit-table-multiple-columns .description {
- display: none;
-}
-
-/* Hide field labels when using 'table-multiple' display mode. */
-.content-multigroup-display-table-multiple-columns .field .field-label,
-.content-multigroup-display-table-multiple-columns .field .field-label-inline,
-.content-multigroup-display-table-multiple-columns .field .field-label-inline-first {
- display: none;
-}
-
-/* Display table with a row for each subgroup and all fields in a single column. */
-.content-multigroup-display-table-single-column .content-multigroup-wrapper {
- clear: both;
-}
-.content-multigroup-display-table-single-column .content-multigroup-wrapper label.content-multigroup {
- display: block;
-}
-.content-multigroup-display-table-single-column .content-multigroup-wrapper .field {
- float: left;
- margin-right: 1em;
-}
diff --git a/content_multigroup/content_multigroup.info b/content_multigroup/content_multigroup.info
deleted file mode 100644
index f902d26..0000000
--- a/content_multigroup/content_multigroup.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Content Multigroup
-description = Combine multiple CCK fields into repeating field collections that work in unison.
-dependencies[] = content
-dependencies[] = fieldgroup
-package = CCK
-core = 6.x
diff --git a/content_multigroup/content_multigroup.install b/content_multigroup/content_multigroup.install
deleted file mode 100644
index cda5d63..0000000
--- a/content_multigroup/content_multigroup.install
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Module installation/uninstallation hooks.
- */
-
-/**
- * Implementation of hook_install().
- *
- * Notify content module when this module is installed.
- */
-function content_multigroup_install() {
- drupal_load('module', 'content');
- content_notify('install', 'content_multigroup');
-}
-
-/**
- * Implementation of hook_uninstall().
- *
- * Notify content module when this module is uninstalled.
- */
-function content_multigroup_uninstall() {
- drupal_load('module', 'content');
- content_notify('uninstall', 'content_multigroup');
-}
-
-/**
- * Implementation of hook_enable().
- *
- * Notify content module when this module is enabled.
- */
-function content_multigroup_enable() {
- drupal_load('module', 'content');
- content_notify('enable', 'content_multigroup');
-}
-
-/**
- * Implementation of hook_disable().
- *
- * Notify content module when this module is disabled.
- */
-function content_multigroup_disable() {
- drupal_load('module', 'content');
- content_notify('disable', 'content_multigroup');
-}
diff --git a/content_multigroup/content_multigroup.module b/content_multigroup/content_multigroup.module
deleted file mode 100644
index e6dde28..0000000
--- a/content_multigroup/content_multigroup.module
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-// $Id: content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched Exp $
-
-/**
- * @file
- * Create complex, repeating groups of CCK fields that work in unison.
- */
-
-function content_multigroup_help($path, $arg) {
- switch ($path) {
- case 'admin/help#content_multigroup':
- return t('The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields.');
- }
-}
-
-/**
- * Implementation of hook_menu().
- */
-function content_multigroup_menu() {
- $items = array();
- // Callback for AHAH add more buttons.
- $items['content_multigroup/js_add_more'] = array(
- 'page callback' => 'content_multigroup_add_more_js',
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK,
- 'file' => 'content_multigroup.node_form.inc',
- );
- return $items;
-}
-
-/**
- * Implementation of hook_theme().
- */
-function content_multigroup_theme() {
- return array(
- 'content_multigroup_node_form' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_form.inc',
- ),
- 'content_multigroup_node_label' => array(
- 'arguments' => array('text' => NULL),
- 'file' => 'content_multigroup.node_form.inc',
- ),
- 'content_multigroup_display_simple' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_view.inc',
- ),
- 'content_multigroup_display_fieldset' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_view.inc',
- ),
- 'content_multigroup_display_hr' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_view.inc',
- ),
- 'content_multigroup_display_table_single' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_view.inc',
- ),
- 'content_multigroup_display_table_multiple' => array(
- 'arguments' => array('element' => NULL),
- 'file' => 'content_multigroup.node_view.inc',
- ),
- );
-}
-
-/**
- * Implementation of hook_elements().
- */
-function content_multigroup_elements() {
- return array(
- 'content_multigroup_display_fieldset' => array('#value' => NULL),
- );
-}
-
-/**
- * Implementation of hook_fieldgroup_types().
- */
-function content_multigroup_fieldgroup_types() {
- return array('multigroup' => t('Multigroup'));
-}
-
-/**
- * Implementation of hook_fieldgroup_default_settings().
- */
-function content_multigroup_fieldgroup_default_settings($group_type) {
- if ($group_type == 'multigroup') {
- module_load_include('inc', 'content', 'includes/content.admin');
- $settings = array('multigroup' => array('multiple' => 1));
- foreach (array_keys(content_build_modes()) as $key) {
- $settings['display'][$key]['format'] = 'fieldset';
- }
- return $settings;
- }
-}
-
-/**
- * Implementation of hook_form_alter().
- */
-function content_multigroup_form_alter(&$form, $form_state, $form_id) {
- if ($form_id == 'content_field_edit_form' && isset($form['widget'])) {
- // If this is a field edit form and the field is in a Multigroup,
- // override the multiple value settings.
- $content_type = content_types($form['type_name']['#value']);
- $groups = fieldgroup_groups($content_type['type']);
- $group_name = _fieldgroup_field_get_group($content_type['type'], $form['field_name']['#value']);
- $group = isset($groups[$group_name]) ? $groups[$group_name] : array();
- if (!empty($group) && $group['group_type'] == 'multigroup') {
- $form['field']['multiple']['#value'] = $group['settings']['multigroup']['multiple'];
- $form['field']['multiple']['#access'] = FALSE;
- }
- }
- elseif ($form_id == 'content_field_overview_form') {
- // Validation for creating/moving fields and groups on the
- // Manage Fields screen.
- module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
- $form['#validate'][] = 'content_multigroup_field_overview_form_validate';
- }
- elseif ($form_id == 'content_display_overview_form' && !empty($form['#groups'])) {
- // Add an additional selector for setting multigroup field display
- // format to the Display Fields screen.
- module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
- content_multigroup_display_overview_form($form, $form_state, $form_id);
- }
- elseif ($form_id == 'fieldgroup_group_edit_form') {
- // Alter the Fieldgroup edit form to add Multigroup settings.
- module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
- content_multigroup_group_edit_form($form, $form_state, $form_id);
- }
-}
-
-/**
- * After build callback for multigroups in node form.
- *
- * This proxy function is necessary to prevent from breaking AHAH handlers.
- */
-function content_multigroup_node_form_after_build($form, &$form_state) {
- module_load_include('inc', 'content_multigroup', 'content_multigroup.node_form');
- return _content_multigroup_node_form_after_build($form, $form_state);
-}
-
-/**
- * Implementation of hook_fieldgroup_form().
- */
-function content_multigroup_fieldgroup_form(&$form, &$form_state, $form_id, $group) {
- $group_name = $group['group_name'];
- if ($group['group_type'] == 'multigroup' && !empty($form[$group_name])) {
- if (!isset($form[$group_name]['#access']) || $form[$group_name]['#access']) {
- module_load_include('inc', 'content_multigroup', 'content_multigroup.node_form');
- _content_multigroup_fieldgroup_form($form, $form_state, $form_id, $group);
- }
- }
-}
-
-/**
- * Implementation of hook_fieldgroup_view().
- */
-function content_multigroup_fieldgroup_view(&$node, &$element, $group, $context) {
- if ($group['group_type'] == 'multigroup') {
- module_load_include('inc', 'content_multigroup', 'content_multigroup.node_view');
- _content_multigroup_fieldgroup_view($node, $element, $group, $context);
- }
-}
diff --git a/content_multigroup/content_multigroup.node_form.inc b/content_multigroup/content_multigroup.node_form.inc
deleted file mode 100644
index 63781ae..0000000
--- a/content_multigroup/content_multigroup.node_form.inc
+++ /dev/null
@@ -1,850 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Implementation of node edit functions for content multigroup.
- */
-
-/**
- * Implementation of hook_fieldgroup_form().
- *
- * Align the delta values of each field in the Multigroup.
- *
- * Swap the field name and delta for each Multigroup so we can
- * d-n-d each collection of fields as a single delta item.
- */
-function _content_multigroup_fieldgroup_form(&$form, &$form_state, $form_id, $group) {
- $node = $form['#node'];
- $group_name = $group['group_name'];
- $group_multiple = (int)$group['settings']['multigroup']['multiple'];
- $content_type = content_types($group['type_name']);
-
- // Build list of accessible fields in this group.
- $group_fields = array();
- foreach ($content_type['fields'] as $field_name => $field) {
- if (isset($group['fields'][$field_name]) && isset($form[$group_name][$field_name])) {
- if (!isset($form[$group_name][$field_name]['#access']) || $form[$group_name][$field_name]['#access']) {
- $group_fields[$field_name] = $field;
- }
- }
- }
-
- // Quit if there are no field in the form for this group.
- if (empty($group_fields)) {
- return;
- }
-
- switch ($group_multiple) {
- case 0:
- $group_deltas = array(0);
- $max_delta = 0;
- break;
-
- case 1:
- // Compute deltas based on the field with the highest number of items.
- $group_deltas = array();
- $max_delta = -1;
- foreach ($group_fields as $field_name => $field) {
- $field_items = isset($node->$field_name) ? $node->$field_name : array();
- if (!empty($field_items)) {
- $field = $group_fields[$field_name];
- $field_deltas = array_keys($field_items);
- $field_max = (!empty($field_deltas) ? max($field_deltas) : 0);
- if ($field_max > $max_delta || empty($group_deltas)) {
- $max_delta = $field_max;
- $group_deltas = $field_deltas;
- }
- }
- }
- $current_item_count = isset($form_state['item_count'][$group_name]) ? $form_state['item_count'][$group_name] : max(1, count($group_deltas));
- while (count($group_deltas) < $current_item_count) {
- $max_delta++;
- $group_deltas[] = $max_delta;
- }
- break;
-
- default:
- $group_deltas = range(0, $group_multiple);
- $max_delta = $group_multiple - 1;
- break;
- }
-
- $form[$group_name]['#theme'] = 'content_multigroup_node_form';
- $form[$group_name]['#item_count'] = count($group_deltas);
- $form[$group_name]['#type_name'] = $group['type_name'];
- $form[$group_name]['#group_name'] = $group_name;
- $form[$group_name]['#group_label'] = $group['label'];
- $form[$group_name]['#group_fields'] = $group_fields;
- $form[$group_name]['#tree'] = TRUE;
- if (!isset($form['#multigroups'])) {
- $form['#multigroups'] = array();
- }
- $form['#multigroups'][$group_name] = $group_fields;
-
- // Attach our own after build handler to the form, used to fix posting data
- // and the form structure, moving fields back to their original positions.
- // That is, move them from group->delta->field back to field->delta.
- if (!isset($form['#after_build'])) {
- $form['#after_build'] = array();
- }
- if (!in_array('content_multigroup_node_form_after_build', $form['#after_build'])) {
- array_unshift($form['#after_build'], 'content_multigroup_node_form_after_build');
- }
-
- // Attach our own validation handler to the form, used to check for empty fields.
- if (!isset($form['#validate'])) {
- $form['#validate'] = array();
- }
- if (!in_array('content_multigroup_node_form_validate', $form['#validate'])) {
- array_unshift($form['#validate'], 'content_multigroup_node_form_validate');
- }
-
- // Attach our own pre_render handler to the form, used to fix the required
- // attribute of all fields in multigroups.
- if (!isset($form['#pre_render'])) {
- $form['#pre_render'] = array();
- }
- if (!in_array('content_multigroup_node_form_pre_render', $form['#pre_render'])) {
- array_unshift($form['#pre_render'], 'content_multigroup_node_form_pre_render');
- }
-
- foreach ($group_deltas as $delta) {
- content_multigroup_group_form($form, $form_state, $group, $delta);
- }
-
- // Unset the original group field values now that we've moved them.
- foreach (array_keys($group_fields) as $field_name) {
- unset($form[$group_name][$field_name]);
- }
-
- if (($add_more = content_multigroup_add_more($form, $form_state, $group)) !== FALSE) {
- $form[$group_name] += $add_more;
- }
-}
-
-/**
- * Create a new delta value for the group.
- *
- * Called in form_alter and by AHAH add more.
- */
-function content_multigroup_group_form(&$form, &$form_state, $group, $delta) {
- $group_name = $group['group_name'];
- if ($group['group_type'] != 'multigroup' || empty($form[$group_name]) || empty($form['#multigroups']) || empty($form['#multigroups'][$group_name])) {
- return;
- }
- module_load_include('inc', 'content', 'includes/content.node_form');
-
- $node = $form['#node'];
- $group_fields = $form['#multigroups'][$group_name];
- $group_multiple = $group['settings']['multigroup']['multiple'];
-
- foreach ($group_fields as $field_name => $field) {
- if (empty($form[$group_name][$delta])) {
- $form[$group_name] += array($delta => array($field_name => array()));
- }
- else {
- $form[$group_name][$delta][$field_name] = array();
- }
-
- $item_count = (isset($form_state['item_count'][$group_name]) ? $form_state['item_count'][$group_name] : $form[$group_name]['#item_count']);
- $form[$group_name][$delta]['_weight'] = array(
- '#type' => 'weight',
- '#delta' => $item_count, // this 'delta' is the 'weight' element's property
- '#default_value' => $delta,
- '#weight' => 100,
- );
-
- // Add a checkbox to allow users remove a single delta subgroup.
- // See content_set_empty() and theme_content_multigroup_node_form().
- if ($group_multiple == 1) {
- $form[$group_name][$delta]['_remove'] = array(
- '#type' => 'checkbox',
- '#attributes' => array('class' => 'content-multiple-remove-checkbox'),
- '#default_value' => isset($form_state['multigroup_removed'][$group_name][$delta]) ? $form_state['multigroup_removed'][$group_name][$delta] : 0,
- );
- }
-
- // Make each field into a pseudo single value field
- // with the right delta value.
- $field['multiple'] = 0;
-
- $form['#field_info'][$field_name] = $field;
- $node_copy = drupal_clone($node);
-
- // Set the form '#node' to the delta value we want so the Content
- // module will feed the right $items to the field module in
- // content_field_form().
-
- // There may be missing delta values for fields that were
- // never created, so check first.
- if (!empty($node->$field_name) && count($node->$field_name) >= $delta + 1) {
- $node_copy->$field_name = array($delta => $node->{$field_name}[$delta]);
- }
- else {
- $value = NULL;
- if (content_callback('widget', 'default value', $field) != CONTENT_CALLBACK_NONE) {
- // If a module wants to insert custom default values here,
- // it should provide a hook_default_value() function to call,
- // otherwise the content module's content_default_value() function
- // will be used.
- $callback = content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_CUSTOM ? $field['widget']['module'] .'_default_value' : 'content_default_value';
- if (function_exists($callback)) {
- $items = $callback($form, $form_state, $field, 0);
- $value = $items[0];
- }
- }
- $node_copy->$field_name = array($delta => $value);
- }
- $form['#node'] = $node_copy;
-
- // Place the new element into the $delta position in the group form.
- if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
- $field_form = content_field_form($form, $form_state, $field, $delta);
- $value = array_key_exists($delta, $field_form[$field_name]) ? $delta : 0;
- $form[$group_name][$delta][$field_name] = $field_form[$field_name][$value];
- }
- else {
- // When the form is submitted, get the element data from the form values.
- if (isset($form_state['values'][$field_name])) {
- $form_state_copy = $form_state;
- if (isset($form_state_copy['values'][$field_name][$delta])) {
- $form_state_copy['values'][$field_name] = array($delta => $form_state_copy['values'][$field_name][$delta]);
- }
- else {
- $form_state_copy['values'][$field_name] = array($delta => NULL);
- }
- $field_form = content_field_form($form, $form_state_copy, $field, $delta);
- }
- else {
- $field_form = content_field_form($form, $form_state, $field, $delta);
- }
-
- // Multiple value fields have an additional level in the array form that
- // needs to get fixed in $form_state['values'].
- if (!isset($field_form[$field_name]['#element_validate'])) {
- $field_form[$field_name]['#element_validate'] = array();
- }
- $field_form[$field_name]['#element_validate'][] = 'content_multigroup_fix_multivalue_fields';
-
- $form[$group_name][$delta][$field_name] = $field_form[$field_name];
- }
- $form[$group_name][$delta][$field_name]['#weight'] = $field['widget']['weight'];
- }
-
- // Reset the form '#node' back to its original value.
- $form['#node'] = $node;
-}
-
-/**
- * Fix required flag during form rendering stage.
- *
- * Required fields should display the required star in the rendered form.
- */
-function content_multigroup_node_form_pre_render(&$form) {
- foreach ($form['#multigroups'] as $group_name => $group_fields) {
- $required_fields = array();
- foreach ($group_fields as $field_name => $field) {
- if ($field['required']) {
- $required_fields[] = $field_name;
- }
- }
- if (!empty($required_fields)) {
- content_multigroup_node_form_fix_required($form[$group_name], $required_fields, TRUE);
- }
- }
- return $form;
-}
-
-/**
- * Fix form and posting data when the form is submitted.
- *
- * FormAPI uses form_builder() during form processing to map incoming $_POST
- * data to the proper elements in the form. It builds the '#parents' array,
- * copies the $_POST array to the '#post' member of all form elements, and it
- * also builds the $form_state['values'] array. Then the '#after_build' hook is
- * invoked to allow custom processing of the form structure, and that happens
- * just before validation and submit handlers are executed.
- *
- * During hook_form_alter(), the multigroup module altered the form structure
- * moving elements from field->delta to multigroup->delta->field position,
- * which is what has been processed by FormAPI to build the form structures,
- * but field validation (and submit) handlers expect their data to be located
- * in their original positions.
- *
- * We now need to move the fields back to their original positions in the form,
- * and we need to do so without altering the form rendering process, which is
- * now reflecting the structure the multigroup is interested in. We just need
- * to fix the parts of the form that affect validation and submit processing.
- */
-function _content_multigroup_node_form_after_build($form, &$form_state) {
- // Disable required flag during FormAPI validation, except when building the
- // form for an 'Add more values' request.
- $required = !empty($form_state['multigroup_add_more']);
- foreach ($form['#multigroups'] as $group_name => $group_fields) {
- $required_fields = array();
- foreach ($group_fields as $field_name => $field) {
- if ($field['required']) {
- $required_fields[] = $field_name;
- }
- }
- if (!empty($required_fields)) {
- content_multigroup_node_form_fix_required($form[$group_name], $required_fields, $required);
- }
- }
-
- if ($form_state['submitted']) {
- // Fix value positions in $form_state for the fields in multigroups.
- foreach (array_keys($form['#multigroups']) as $group_name) {
- content_multigroup_node_form_fix_values($form, $form_state, $form['#node']->type, $group_name);
- }
-
- // Fix form element parents for all fields in multigroups.
- content_multigroup_node_form_fix_parents($form, $form['#multigroups']);
-
- // Update posting data to reflect delta changes in the form structure.
- if (!empty($_POST)) {
- content_multigroup_node_form_fix_post($form);
- }
- }
-
- return $form;
-}
-
-/**
- * Fix required flag for required fields.
- *
- * We need to let the user enter an empty set of fields for a delta subgroup,
- * even if it contains required fields, which is equivalent to say a subgroup
- * should be ignored, not to be stored into the database.
- * So, we need to check for required fields, but only for non-empty subgroups.
- *
- * When the form is processed for rendering, the required flag is enabled for
- * all required fields, so the user can see what's required and what's not.
- *
- * When the form is processed for validation, the required flag is disabled,
- * so that FormAPI does not report errors for empty fields.
- *
- * @see content_multigroup_node_form_validate().
- */
-function content_multigroup_node_form_fix_required(&$elements, $required_fields, $required) {
- foreach (element_children($elements) as $key) {
- if (isset($elements[$key]) && $elements[$key]) {
-
- if (count($elements[$key]['#array_parents']) >= 3 && in_array($elements[$key]['#array_parents'][2], $required_fields) && isset($elements[$key]['#required'])) {
- $elements[$key]['#required'] = $required;
- }
-
- // Recurse through all children elements.
- content_multigroup_node_form_fix_required($elements[$key], $required_fields, $required);
- }
- }
-}
-
-/**
- * Node form validation handler.
- *
- * Perform validation for empty fields ignoring subgroups flagged for removal.
- * Note that FormAPI validation for required fields is disabled because we need
- * to accept empty fields that are flagged for removal.
- */
-function content_multigroup_node_form_validate($form, &$form_state) {
- $type_name = $form['#node']->type;
- $groups = fieldgroup_groups($type_name);
-
- foreach ($form['#multigroups'] as $group_name => $group_fields) {
- $group = $groups[$group_name];
- $group_required = isset($group['settings']['multigroup']['required']) ? $group['settings']['multigroup']['required'] : 1;
-
- $non_empty_subgroups = array();
- foreach ($group_fields as $field_name => $field) {
- foreach ($form_state['values'][$field_name] as $delta => $item) {
- // Ignore subgroups flagged for removal.
- if (!$form_state['multigroup_removed'][$group_name][$delta]) {
- $is_empty_function = $field['module'] .'_content_is_empty';
- if ($is_empty_function($form_state['values'][$field_name][$delta], $field)) {
- if ($field['required']) {
- if (!empty($item['_error_element'])) {
- // Here we don't know the number of elements and subelements a
- // widget could have been added to the form, so we need to extract
- // components from the top, where we have group/delta/field, and
- // then push back field/delta on top of the list.
- $error_element = explode('][', $item['_error_element']);
- array_shift($error_element);
- array_shift($error_element);
- array_shift($error_element);
- array_unshift($error_element, $field_name, $delta);
- $error_element = implode('][', $error_element);
- }
- else {
- $error_element = '';
- }
- form_set_error($error_element, t('!name field is required in group @group.', array(
- '!name' => $form[$group_name][$delta][$field_name]['#title'],
- '@group' => t($group['label']),
- )));
- }
- }
- else {
- $non_empty_subgroups[$delta] = TRUE;
- }
- }
- }
- }
-
- if ($group_required && count($non_empty_subgroups) == 0) {
- form_set_error('', t('Group @name requires one collection of fields minimum.', array('@name' => t($group['label']))));
- }
- }
-}
-
-/**
- * Fix value positions in $form_state for the fields in a multigroup.
- */
-function content_multigroup_node_form_fix_values(&$form, &$form_state, $type_name, $group_name) {
- $groups = fieldgroup_groups($type_name);
- $group = $groups[$group_name];
- $group_fields = $form['#multigroups'][$group_name];
-
- // Save the remove state of multigroup items in the $form_state array.
- if (!isset($form_state['multigroup_removed'])) {
- $form_state['multigroup_removed'] = array();
- }
- if (!isset($form_state['multigroup_removed'][$group_name])) {
- $form_state['multigroup_removed'][$group_name] = array();
- }
-
- // Move group data from group->delta->field to field->delta.
- $group_data = array();
- foreach ($form_state['values'][$group_name] as $delta => $items) {
- // Skip 'add more' button.
- if (!is_array($items) || !isset($items['_weight'])) {
- continue;
- }
- foreach ($group_fields as $field_name => $field) {
- if (!isset($group_data[$field_name])) {
- $group_data[$field_name] = array();
- }
- // Get field weight and remove state from the group and keep track of the
- // current delta for each field item.
- $group_data[$field_name][$delta] = array_merge($items[$field_name], array(
- '_weight' => $items['_weight'],
- '_remove' => $items['_remove'],
- '_old_delta' => $delta,
- ));
- // Store the remove state in the form element as well, so we can restore
- // it during content_multigroup_fix_multivalue_fields().
- $form[$group_name][$delta][$field_name]['#removed'] = $items['_remove'];
- }
- $form_state['multigroup_removed'][$group_name][$delta] = $items['_remove'];
- }
-
- $form_group_sorted = FALSE;
- foreach ($group_data as $field_name => $items) {
-
- // Sort field items according to drag-n-drop reordering. Deltas are also
- // rebuilt to start counting from 0 to n. Note that since all fields in the
- // group share the same weight, their deltas remain in sync.
- usort($items, '_content_sort_items_helper');
-
- // Now we need to apply the same ordering to the form elements. Also,
- // note that deltas have changed during the sort operation, so we need
- // to reflect this delta conversion in the form.
- if (!$form_group_sorted) {
- $form_group_items = array();
- $form_deltas = array();
- foreach ($items as $new_delta => $item) {
- $form_deltas[$item['_old_delta']] = $new_delta;
- $form_group_items[$new_delta] = $form[$group_name][$item['_old_delta']];
- unset($form[$group_name][$item['_old_delta']]);
- }
- foreach ($form_group_items as $new_delta => $form_group_item) {
- $form[$group_name][$new_delta] = $form_group_item;
- }
- content_multigroup_node_form_fix_deltas($form[$group_name], $form_deltas);
- $form_group_sorted = TRUE;
- }
-
- // Get rid of the old delta value.
- foreach (array_keys($items) as $delta) {
- unset($items[$delta]['_old_delta']);
- }
-
- // Fix field and delta positions in the $_POST array.
- if (!empty($_POST)) {
- $_POST[$field_name] = array();
- foreach ($items as $new_delta => $item) {
- $_POST[$field_name][$new_delta] = $item;
- }
- if (isset($_POST[$group_name])) {
- unset($_POST[$group_name]);
- }
- }
-
- // Move field items back to their original positions.
- $form_state['values'][$field_name] = $items;
- }
-
- // Finally, get rid of the group data in form values.
- unset($form_state['values'][$group_name]);
-}
-
-/**
- * Fix deltas for all affected form elements.
- */
-function content_multigroup_node_form_fix_deltas(&$elements, $form_deltas) {
- foreach (element_children($elements) as $key) {
- if (isset($elements[$key]) && $elements[$key]) {
-
- // Fix the second item, the delta value, of the element's '#parents' array.
- $elements[$key]['#parents'][1] = $form_deltas[$elements[$key]['#parents'][1]];
-
- // If present, fix delta value in '#delta' attribute of the element.
- if (isset($elements[$key]['#delta']) && isset($form_deltas[$elements[$key]['#delta']])) {
- $elements[$key]['#delta'] = $form_deltas[$elements[$key]['#delta']];
- }
-
- // Recurse through all children elements.
- content_multigroup_node_form_fix_deltas($elements[$key], $form_deltas);
- }
- }
-}
-
-/**
- * Fix form element parents for all fields in multigroups.
- *
- * The $element['#parents'] array needs to reflect the position of the fields
- * in the $form_state['values'] array so that form_set_value() can be safely
- * used by field validation handlers.
- */
-function content_multigroup_node_form_fix_parents(&$elements, $multigroups) {
- foreach (element_children($elements) as $key) {
- if (isset($elements[$key]) && $elements[$key]) {
-
- // Check if the current element is child of a multigroup. The #parents
- // array for field values has, at least, 3 parent elements, being the
- // first one the name of a multigroup.
- if (count($elements[$key]['#parents']) >= 3 && isset($multigroups[$elements[$key]['#parents'][0]])) {
-
- // Extract group name, delta and field name from the #parents array.
- array_shift($elements[$key]['#parents']);
- $delta = array_shift($elements[$key]['#parents']);
- $field_name = array_shift($elements[$key]['#parents']);
-
- // Now, insert field name and delta to the #parents array.
- array_unshift($elements[$key]['#parents'], $field_name, $delta);
- }
-
- // Recurse through all children elements.
- content_multigroup_node_form_fix_parents($elements[$key], $multigroups);
- }
- }
-}
-
-/**
- * Update posting data to reflect delta changes in the form structure.
- *
- * The $_POST array is fixed in content_multigroup_node_form_fix_values().
- */
-function content_multigroup_node_form_fix_post(&$elements) {
- foreach (element_children($elements) as $key) {
- if (isset($elements[$key]) && $elements[$key]) {
-
- // Update the element copy of the $_POST array.
- $elements[$key]['#post'] = $_POST;
-
- // Recurse through all children elements.
- content_multigroup_node_form_fix_post($elements[$key]);
- }
- }
-
- // Update the form copy of the $_POST array.
- $elements['#post'] = $_POST;
-}
-
-/**
- * Fix the value for fields that deal with multiple values themselves.
- */
-function content_multigroup_fix_multivalue_fields($element, &$form_state) {
- $field_name = $element['#field_name'];
- $delta = $element['#delta'];
- $value = array_merge($form_state['values'][$field_name][$delta][0], array('_remove' => $element['#removed']));
- form_set_value($element, $value, $form_state);
-}
-
-/**
- * Add AHAH add more button, if not working with a programmed form.
- */
-function content_multigroup_add_more(&$form, &$form_state, $group) {
- $group_multiple = $group['settings']['multigroup']['multiple'];
- if ($group_multiple != 1 || !empty($form['#programmed'])) {
- return FALSE;
- }
-
- // Make sure the form is cached so ahah can work.
- $form['#cache'] = TRUE;
- $content_type = content_types($group['type_name']);
- $group_name = $group['group_name'];
- $group_name_css = str_replace('_', '-', $group_name);
-
- $form_element = array();
- $form_element[$group_name .'_add_more'] = array(
- '#type' => 'submit',
- '#name' => $group_name .'_add_more',
- '#value' => t('Add more values'),
- '#weight' => $group_multiple + 1,
- '#submit' => array('content_multigroup_add_more_submit'),
- '#ahah' => array(
- 'path' => 'content_multigroup/js_add_more/'. $content_type['url_str'] .'/'. $group_name,
- 'wrapper' => $group_name_css .'-items',
- 'method' => 'replace',
- 'effect' => 'fade',
- ),
- // When JS is disabled, the content_multigroup_add_more_submit handler will
- // find the relevant group information using these entries.
- '#group_name' => $group_name,
- '#type_name' => $group['type_name'],
- '#item_count' => $form[$group_name]['#item_count'],
- );
-
- // Add wrappers for the group and 'more' button.
- $form_element['#prefix'] = '<div id="'. $group_name_css .'-items">';
- $form_element['#suffix'] = '</div>';
- $form_element[$group_name .'_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
- $form_element[$group_name .'_add_more']['#suffix'] = '</div>';
-
- return $form_element;
-}
-
-/**
- * Submit handler to add more choices to a content form. This handler is used when
- * JavaScript is not available. It makes changes to the form state and the
- * entire form is rebuilt during the page reload.
- */
-function content_multigroup_add_more_submit($form, &$form_state) {
- // Set the form to rebuild and run submit handlers.
- node_form_submit_build_node($form, $form_state);
- $group_name = $form_state['clicked_button']['#group_name'];
- $type_name = $form_state['clicked_button']['#type_name'];
-
- // Make the changes we want to the form state.
- if (isset($form_state['clicked_button']['#item_count'])) {
- $form_state['item_count'][$group_name] = $form_state['clicked_button']['#item_count'] + 1;
- }
-}
-
-/**
- * Menu callback for AHAH addition of new empty widgets.
- *
- * Adapted from content_add_more_js to work with groups instead of fields.
- */
-function content_multigroup_add_more_js($type_name_url, $group_name) {
- $content_type = content_types($type_name_url);
- $groups = fieldgroup_groups($content_type['type']);
- $group = $groups[$group_name];
-
- if (($group['settings']['multigroup']['multiple'] != 1) || empty($_POST['form_build_id'])) {
- // Invalid request.
- drupal_json(array('data' => ''));
- exit;
- }
-
- // Retrieve the cached form.
- $form_state = array('submitted' => FALSE);
- $form_build_id = $_POST['form_build_id'];
- $form = form_get_cache($form_build_id, $form_state);
- if (!$form) {
- // Invalid form_build_id.
- drupal_json(array('data' => ''));
- exit;
- }
-
- // We don't simply return a new empty widget to append to existing ones, because
- // - ahah.js won't simply let us add a new row to a table
- // - attaching the 'draggable' behavior won't be easy
- // So we resort to rebuilding the whole table of widgets including the existing ones,
- // which makes us jump through a few hoops.
-
- // The form that we get from the cache is unbuilt. We need to build it so that
- // _value callbacks can be executed and $form_state['values'] populated.
- // We only want to affect $form_state['values'], not the $form itself
- // (built forms aren't supposed to enter the cache) nor the rest of $form_data,
- // so we use copies of $form and $form_data.
- $form_copy = $form;
- $form_state_copy = $form_state;
- $form_copy['#post'] = array();
- form_builder($_POST['form_id'], $form_copy, $form_state_copy);
- // Just grab the data we need.
- $form_state['values'] = $form_state_copy['values'];
- // Reset cached ids, so that they don't affect the actual form we output.
- form_clean_id(NULL, TRUE);
-
- // Sort the $form_state['values'] we just built *and* the incoming $_POST data
- // according to d-n-d reordering.
- unset($form_state['values'][$group_name][$group['group_name'] .'_add_more']);
- foreach ($_POST[$group_name] as $delta => $item) {
- $form_state['values'][$group_name][$delta]['_weight'] = $item['_weight'];
- $form_state['values'][$group_name][$delta]['_remove'] = isset($item['_remove']) ? $item['_remove'] : 0;
- }
- $group['multiple'] = $group['settings']['multigroup']['multiple'];
- $form_state['values'][$group_name] = _content_sort_items($group, $form_state['values'][$group_name]);
- $_POST[$group_name] = _content_sort_items($group, $_POST[$group_name]);
-
- // Build our new form element for the whole group, asking for one more element.
- $delta = max(array_keys($_POST[$group_name])) + 1;
- $form_state['item_count'] = array($group_name => count($_POST[$group_name]) + 1);
- content_multigroup_group_form($form, $form_state, $group, $delta);
-
- // Rebuild weight deltas to make sure they all are equally dimensioned.
- foreach ($form[$group_name] as $key => $item) {
- if (is_numeric($key) && isset($item['_weight']) && is_array($item['_weight'])) {
- $form[$group_name][$key]['_weight']['#delta'] = $delta;
- }
- }
-
- // Save the new definition of the form.
- $form_state['values'] = array();
- form_set_cache($form_build_id, $form, $form_state);
-
- // Build the new form against the incoming $_POST values so that we can
- // render the new element.
- $_POST[$group_name][$delta]['_weight'] = $delta;
- $form_state = array('submitted' => FALSE, 'multigroup_add_more' => TRUE);
- $form += array(
- '#post' => $_POST,
- '#programmed' => FALSE,
- );
- $form = form_builder($_POST['form_id'], $form, $form_state);
-
- // Render the new output.
- $group_form = $form[$group_name];
- // We add a div around the new content to receive the ahah effect.
- $group_form[$delta]['#prefix'] = '<div class="ahah-new-content">'. (isset($group_form[$delta]['#prefix']) ? $group_form[$delta]['#prefix'] : '');
- $group_form[$delta]['#suffix'] = (isset($group_form[$delta]['#suffix']) ? $group_form[$delta]['#suffix'] : '') .'</div>';
- // Prevent duplicate wrapper.
- unset($group_form['#prefix'], $group_form['#suffix']);
-
- // If a newly inserted widget contains AHAH behaviors, they normally won't
- // work because AHAH doesn't know about those - it just attaches to the exact
- // form elements that were initially specified in the Drupal.settings object.
- // The new ones didn't exist then, so we need to update Drupal.settings
- // by ourselves in order to let AHAH know about those new form elements.
- $javascript = drupal_add_js(NULL, NULL);
- $output_js = isset($javascript['setting']) ? '<script type="text/javascript">jQuery.extend(Drupal.settings, '. drupal_to_js(call_user_func_array('array_merge_recursive', $javascript['setting'])) .');</script>' : '';
-
- $output = theme('status_messages') . drupal_render($group_form) . $output_js;
-
- // Using drupal_json() breaks filefield's file upload, because the jQuery
- // Form plugin handles file uploads in a way that is not compatible with
- // 'text/javascript' response type.
- $_GLOBALS['devel_shutdown'] = FALSE;
- print drupal_to_js(array('status' => TRUE, 'data' => $output));
- exit;
-}
-
-/**
- * Theme an individual form element.
- *
- * Combine multiple values into a table with drag-n-drop reordering.
- */
-function theme_content_multigroup_node_form($element) {
- $group_name = $element['#group_name'];
- $groups = fieldgroup_groups($element['#type_name']);
- $group = $groups[$group_name];
- $group_multiple = $group['settings']['multigroup']['multiple'];
- $group_fields = $element['#group_fields'];
-
- $table_id = $element['#group_name'] .'_values';
- $table_class = 'content-multiple-table';
- $order_class = $element['#group_name'] .'-delta-order';
- $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
- $show_label = isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above';
- $subgroup_labels = isset($group['settings']['multigroup']['labels']) ? $group['settings']['multigroup']['labels'] : array();
- $multiple_columns = isset($group['settings']['multigroup']['multiple-columns']) ? $group['settings']['multigroup']['multiple-columns'] : 0;
-
- $header = array();
- if ($group_multiple >= 1) {
- $header[] = array('data' => '');
- }
- if ($multiple_columns) {
- foreach ($group_fields as $field_name => $field) {
- $required = !empty($field['required']) ? '&nbsp;<span class="form-required" title="'. t('This field is required.') .'">*</span>' : '';
- $header[] = check_plain(t($field['widget']['label'])) . $required;
- }
- $table_class .= ' content-multigroup-edit-table-multiple-columns';
- }
- else {
- if ($group_multiple >= 1) {
- $header[0]['colspan'] = 2;
- }
- $table_class .= ' content-multigroup-edit-table-single-column';
- }
- if ($group_multiple >= 1) {
- $header[] = array('data' => t('Order'), 'class' => 'content-multiple-weight-header');
- if ($group_multiple == 1) {
- $header[] = array('data' => '<span>'. t('Remove') .'</span>', 'class' => 'content-multiple-remove-header');
- }
- }
- $rows = array();
-
- $i = 0;
- foreach (element_children($element) as $delta => $key) {
- if ($key !== $group_name .'_add_more') {
- $cells = array();
- $label = ($show_label == 'above' && !empty($subgroup_labels[$i]) ? theme('content_multigroup_node_label', check_plain(t($subgroup_labels[$i]))) : '');
- $element[$key]['_weight']['#attributes']['class'] = $order_class;
- if ($group_multiple >= 1) {
- $cells[] = array('data' => '', 'class' => 'content-multiple-drag');
- $delta_element = drupal_render($element[$key]['_weight']);
- if ($group_multiple == 1) {
- $remove_element = drupal_render($element[$key]['_remove']);
- }
- }
- else {
- $element[$key]['_weight']['#type'] = 'hidden';
- }
- if ($multiple_columns) {
- foreach ($group_fields as $field_name => $field) {
- $cells[] = array('data' => isset($element[$key][$field_name]) ? drupal_render($element[$key][$field_name]) : '');
- }
- }
- else {
- $cells[] = $label . drupal_render($element[$key]);
- }
- if ($group_multiple >= 1) {
- $row_class = 'draggable';
- $cells[] = array('data' => $delta_element, 'class' => 'delta-order');
- if ($group_multiple == 1) {
- if (!empty($element[$key]['_remove']['#value'])) {
- $row_class .= ' content-multiple-removed-row';
- }
- $cells[] = array('data' => $remove_element, 'class' => 'content-multiple-remove-cell');
- }
- $rows[] = array('data' => $cells, 'class' => $row_class);
- }
- else {
- $rows[] = array('data' => $cells);
- }
- }
- $i++;
- }
-
- drupal_add_css(drupal_get_path('module', 'content_multigroup') .'/content_multigroup.css');
- $output = theme('table', $header, $rows, array('id' => $table_id, 'class' => $table_class));
- $output .= drupal_render($element[$group_name .'_add_more']);
-
- // Enable drag-n-drop only if the group really allows multiple values.
- if ($group_multiple >= 1) {
- drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
- drupal_add_js(drupal_get_path('module', 'content') .'/theme/content-edit.js');
- }
-
- return $output;
-}
-
-/**
- * Theme the sub group label in the node form.
- */
-function theme_content_multigroup_node_label($text) {
- return !empty($text) ? '<h3>'. $text .'</h3>' : '';
-}
diff --git a/content_multigroup/content_multigroup.node_view.inc b/content_multigroup/content_multigroup.node_view.inc
deleted file mode 100644
index 97c0559..0000000
--- a/content_multigroup/content_multigroup.node_view.inc
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Implementation of node view functions for content multigroup.
- */
-
-/**
- * Implementation of hook_fieldgroup_view().
- */
-function _content_multigroup_fieldgroup_view(&$node, &$element, $group, $context) {
- drupal_add_css(drupal_get_path('module', 'content_multigroup') .'/content_multigroup.css');
-
- $node_copy = drupal_clone($node);
- $group_name = $group['group_name'];
- $group_multiple = (int)$group['settings']['multigroup']['multiple'];
- $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
- $show_label = isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above';
- $subgroup_labels = isset($group['settings']['multigroup']['labels']) ? $group['settings']['multigroup']['labels'] : array();
- $subgroup_format = isset($subgroup_settings[$context]['format']) ? $subgroup_settings[$context]['format'] : 'fieldset';
- $content_type = content_types($group['type_name']);
-
- // Build list of accessible fields in this group.
- $group_fields = array();
- foreach ($content_type['fields'] as $field_name => $field) {
- if (isset($group['fields'][$field_name]) && isset($element[$field_name])) {
- if (!isset($element[$field_name]['#access']) || $element[$field_name]['#access']) {
- $group_fields[$field_name] = $field;
- }
- }
- }
-
- switch ($group_multiple) {
- case 0:
- $group_deltas = array(0);
- break;
-
- case 1:
- // Compute deltas based on the field with the highest number of items.
- $group_deltas = array();
- $max_delta = -1;
- foreach (array_keys($group_fields) as $field_name) {
- $field_deltas = is_array($node->content[$field_name]['field']['items']) ? array_keys($node->content[$field_name]['field']['items']) : array();
- $field_max = (!empty($field_deltas) ? max($field_deltas) : 0);
- if ($field_max > $max_delta) {
- $max_delta = $field_max;
- $group_deltas = $field_deltas;
- }
- }
- break;
-
- default:
- $group_deltas = range(0, $group_multiple - 1);
- break;
- }
-
- foreach ($group_deltas as $i => $delta) {
- $element[$delta] = array(
- '#title' => ($show_label == 'above' && !empty($subgroup_labels[$i]) ? check_plain(t($subgroup_labels[$i])) : ''),
- '#attributes' => array('class' => 'content-multigroup-wrapper content-multigroup-'. $i),
- '#weight' => $delta,
- );
-
- // Create a pseudo node that only has the value we want in this group and
- // pass it to the formatter.
- // Default implementation of content-field.tpl.php uses a different CSS
- // class for inline labels when delta is zero, but this is not needed in
- // the context of multigroup, so we place the field into index 1 of the
- // item list. Note that CSS class "field-label-inline" is overridden in the
- // multigroup stylesheet because here labels should always be visible.
- foreach (array_keys($group_fields) as $field_name) {
- if (isset($node->content[$field_name])) {
- $node_copy->content[$field_name]['field']['items'] = array(
- 1 => isset($node->content[$field_name]['field']['items'][$delta]) ? $node->content[$field_name]['field']['items'][$delta] : NULL,
- );
- $element[$delta][$field_name] = $node_copy->content[$field_name];
- $element[$delta][$field_name]['#delta'] = $delta;
- }
- }
-
- switch ($subgroup_format) {
- case 'simple':
- $element[$delta]['#theme'] = 'content_multigroup_display_simple';
- $element[$delta]['#fields'] = $group_fields;
- break;
- case 'fieldset':
- $element[$delta]['#type'] = 'content_multigroup_display_fieldset';
- $element[$delta]['#fields'] = $group_fields;
- break;
- case 'hr':
- $element[$delta]['#theme'] = 'content_multigroup_display_hr';
- $element[$delta]['#fields'] = $group_fields;
- break;
- case 'table-single':
- $element['#theme'] = 'content_multigroup_display_table_single';
- $element['#attributes']['class'] = 'content-multigroup-display-table-single-column';
- $element['#fields'] = $group_fields;
- break;
- case 'table-multiple':
- $element['#theme'] = 'content_multigroup_display_table_multiple';
- $element['#attributes']['class'] = 'content-multigroup-display-table-multiple-columns';
- $element['#fields'] = $group_fields;
- break;
- }
- }
-
- // Unset the original group field values now that we've moved them.
- foreach (array_keys($group_fields) as $field_name) {
- if (isset($element[$field_name])) {
- unset($element[$field_name]);
- }
- }
-}
-
-/**
- * Theme a subgroup of fields in 'simple' format.
- *
- * No output is generated if all fields are empty.
- */
-function theme_content_multigroup_display_simple($element) {
- $children = $output = '';
- foreach (element_children($element) as $key) {
- $children .= drupal_render($element[$key]);
- }
- if (!empty($children)) {
- $output .= '<div'. drupal_attributes($element['#attributes']) .'>';
- if (!empty($element['#title'])) {
- $output .= '<label class="content-multigroup">'. $element['#title'] .':</label>';
- }
- $output .= $children .'</div>';
- }
- return $output;
-}
-
-/**
- * Theme a subgroup of fields in 'fieldset' format.
- *
- * No output is generated if all fields are empty.
- */
-function theme_content_multigroup_display_fieldset($element) {
- if (empty($element['#children']) && empty($element['#value'])) {
- return '';
- }
- return theme('fieldset', $element);
-}
-
-/**
- * Theme a subgroup of fields in 'hr' format.
- *
- * No output is generated if all fields are empty.
- */
-function theme_content_multigroup_display_hr($element) {
- $children = $output = '';
- foreach (element_children($element) as $key) {
- $children .= drupal_render($element[$key]);
- }
- if (!empty($children)) {
- $output .= '<div'. drupal_attributes($element['#attributes']) .'><hr class="content-multigroup" />';
- if (!empty($element['#title'])) {
- $output .= '<label class="content-multigroup">'. $element['#title'] .':</label>';
- }
- $output .= $children .'</div>';
- }
- return $output;
-}
-
-/**
- * Theme a multigroup in 'table-single' format.
- *
- * Each subgroup has its own table row with a single cell for all fields.
- * No output is generated if all fields are empty.
- */
-function theme_content_multigroup_display_table_single($element) {
- $header = array();
- $rows = array();
- foreach (element_children($element) as $delta) {
- $items = array();
- foreach ($element['#fields'] as $field_name => $field) {
- $item = drupal_render($element[$delta][$field_name]);
- if (!empty($item)) {
- $items[] = $item;
- }
- }
- if (!empty($items)) {
- if (!empty($element[$delta]['#title'])) {
- array_unshift($items, '<label class="content-multigroup">'. $element[$delta]['#title'] .':</label>');
- }
- $rows[] = array('data' => array(implode("\n", $items)), 'class' => $element[$delta]['#attributes']['class']);
- }
- }
- return count($rows) ? theme('table', $header, $rows, $element['#attributes']) : '';
-}
-
-/**
- * Theme a multigroup in 'table-multiple' format.
- *
- * Each subgroup has its own table row with a separate cell for each field.
- * No output is generated if all fields are empty.
- */
-function theme_content_multigroup_display_table_multiple($element) {
- $header = array();
- foreach ($element['#fields'] as $field_name => $field) {
- $label_display = isset($field['display_settings']['label']['format']) ? $field['display_settings']['label']['format'] : 'above';
- $header[] = $label_display != 'hidden' ? check_plain(t($field['widget']['label'])) : '';
- }
- $rows = array();
- foreach (element_children($element) as $delta) {
- $cells = array();
- $empty = TRUE;
- foreach ($element['#fields'] as $field_name => $field) {
- $item = drupal_render($element[$delta][$field_name]);
- $cells[] = array('data' => $item, 'class' => $element[$delta]['#attributes']['class']);
- if (!empty($item)) {
- $empty = FALSE;
- }
- }
- // Get the row only if there is at least one non-empty field.
- if (!$empty) {
- $rows[] = $cells;
- }
- }
- return count($rows) ? theme('table', $header, $rows, $element['#attributes']) : '';
-}
diff --git a/content_multigroup/translations/content_multigroup.de.po b/content_multigroup/translations/content_multigroup.de.po
deleted file mode 100644
index 74cd90e..0000000
--- a/content_multigroup/translations/content_multigroup.de.po
+++ /dev/null
@@ -1,128 +0,0 @@
-# $Id: content_multigroup.de.po,v 1.1.2.5 2008/11/05 12:39:46 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from file: fieldgroup.module,v 1.79.2.25 2008/09/18 18:21:01 karens
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation for combofield\n"
-"POT-Creation-Date: 2008-10-23 20:01+0200\n"
-"PO-Revision-Date: 2008-11-05 13:25+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/content_multigroup/content_multigroup.module:15
-msgid "The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields."
-msgstr "Die Felder in einer Standardgruppe sind unabhängig von allen anderen und jedes kann entweder einzelne oder mehrere Werte enthalten. Die Felder in einer Mehrfachgruppe werden als sich wiederholende Sammlung von Einzelwertfeldern behandelt."
-
-#: modules/content_multigroup/content_multigroup.module:53;123
-msgid "Multigroup"
-msgstr "Mehrfachgruppe"
-
-#: modules/content_multigroup/content_multigroup.module:122
-msgid "Standard"
-msgstr "Standard"
-
-#: modules/content_multigroup/content_multigroup.module:126
-msgid "Type of group."
-msgstr "Typ der Gruppe."
-
-#: modules/content_multigroup/content_multigroup.module:204
-msgid "The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group."
-msgstr "Das Feld %field wurde zur Verwendung von %multiple Werten aktualisiert, um mit den Einstellungen für mehrfache Werte der Mehrfachgruppe %group übereinzustimmen."
-
-#: modules/content_multigroup/content_multigroup.module:238
-msgid "This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data."
-msgstr "Diese Änderung ist nicht zulässig. Das Feld %field enthält schon %multiple Werte in der Datenbank aber die Gruppe %group lässt nur %group_max zu. Diese Änderung würde einen Datenverlust zur Folge haben."
-
-#: modules/content_multigroup/content_multigroup.module:262
-msgid "This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data."
-msgstr "Diese Änderung ist nicht zulässig. Das Feld %field behandelt mehrere Werte anders als das Inhaltsmodul. Diese Änderung könnte einen Datenverlust zur Folge haben."
-
-#: modules/content_multigroup/content_multigroup.module:277
-msgid "You are moving the field %field into a Multigroup."
-msgstr "Das Feld %field wird in eine Mehrfachgruppe verschoben."
-
-# TODO
-#: modules/content_multigroup/content_multigroup.module:310
-msgid "This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data."
-msgstr "Diese Änderung ist nicht zulässig. Das Feld %field enthält schon Daten und verwendet ein Steuerelement, welches Daten in einer Standardgruppe anders speichert als in einer Mehrfachgruppe. Diese Änderung könnte einen Datenverlust zur Folge haben."
-
-#: modules/content_multigroup/content_multigroup.module:324
-msgid "You are moving the field %field out of a Multigroup."
-msgstr "Das Feld %field wird aus einer Mehrfachgruppe herausgezogen."
-
-#: modules/content_multigroup/content_multigroup.module:357
-msgid "Fieldset"
-msgstr "Feldgruppe"
-
-#: modules/content_multigroup/content_multigroup.module:358
-msgid "Horizontal line"
-msgstr "Horizontale Linie"
-
-#: modules/content_multigroup/content_multigroup.module:371
-msgid "[Subgroup format]"
-msgstr "[Untergruppenformat]"
-
-#: modules/content_multigroup/content_multigroup.module:448
-msgid "Other settings"
-msgstr "Weitere Einstellungen"
-
-# Wie schreiben wir das anders? :-)
-#: modules/content_multigroup/content_multigroup.module:453
-#, fuzzy
-msgid "Number of times to repeat the collection of Multigroup fields."
-msgstr "Die Anzahl von Wiederholungen der Mehrfachgruppenfeldersammlungen."
-
-#: modules/content_multigroup/content_multigroup.module:454
-msgid "'Unlimited' will provide an 'Add more' button so the users can add repeat it as many times as they like."
-msgstr "„Unbegrenzt“ stellt Benutzern einen „Weitere hinzufügen“-Schaltknopf zu Verfügung, damit diese so viele Wiederholungen hinzufügen können wie sie möchten."
-
-#: modules/content_multigroup/content_multigroup.module:455
-msgid "All fields in this group will automatically be set to allow this number of values."
-msgstr "Alle Felder in dieser Gruppe werden automatisch eingestellt diese Anzahl an Werten zuzulassen."
-
-#: modules/content_multigroup/content_multigroup.module:461
-msgid "Number of repeats"
-msgstr "Anzahl der Wiederholungen"
-
-#: modules/content_multigroup/content_multigroup.module:469
-msgid "Labels"
-msgstr "Bezeichnung"
-
-#: modules/content_multigroup/content_multigroup.module:470
-msgid "Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."
-msgstr "Bezeichnungen für jede Untergruppe von Feldern. Bezeichnungen können in unterschiedlichen Kontexten auf der ‚Felder anzeigen‘-Maske versteckt oder angezeigt werden."
-
-#: modules/content_multigroup/content_multigroup.module:478
-#, fuzzy
-msgid "Subgroup %number label"
-msgstr "Bezeichnung der Untergruppe %number"
-
-#: modules/content_multigroup/content_multigroup.module:506
-msgid "The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this."
-msgstr "Das Feld %field in dieser Gruppe enthält schon %multiple Werte in der Datenbank. Um einen Datenverlust zu verhindern kann die Anzahl der Mehrfachgruppenwerte auf keinen geringeren Wert eingestellt werden."
-
-#: modules/content_multigroup/content_multigroup.module:966
-msgid "Add more values"
-msgstr "Weitere Werte hinzufügen"
-
-#: modules/content_multigroup/content_multigroup.module:0
-msgid "content_multigroup"
-msgstr "content_multigroup"
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Content Multigroup"
-msgstr "Inhalt-Mehrfachgruppe"
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Combine multiple CCK fields into repeating field collections that work in unison. This module is experimental and not ready for production."
-msgstr "Kombiniert mehrere übereinstimmende CCK-Felder in sich wiederholenden Feldsammlungen. Dieses Modul ist experimentell und nicht betriebsfertig."
-
diff --git a/content_multigroup/translations/modules-content_multigroup.pot b/content_multigroup/translations/modules-content_multigroup.pot
deleted file mode 100644
index 3cacb4d..0000000
--- a/content_multigroup/translations/modules-content_multigroup.pot
+++ /dev/null
@@ -1,125 +0,0 @@
-# $Id: modules-content_multigroup.pot,v 1.1.2.2 2008/10/23 18:51:14 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-content_multigroup)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
-# modules/content_multigroup/content_multigroup.info: n/a
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2008-10-23 20:01+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/content_multigroup/content_multigroup.module:15
-msgid "The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:53;123
-msgid "Multigroup"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:122
-msgid "Standard"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:126
-msgid "Type of group."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:204
-msgid "The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:238
-msgid "This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:262
-msgid "This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:277
-msgid "You are moving the field %field into a Multigroup."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:310
-msgid "This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:324
-msgid "You are moving the field %field out of a Multigroup."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:357
-msgid "Fieldset"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:358
-msgid "Horizontal line"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:371
-msgid "[Subgroup format]"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:448
-msgid "Other settings"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:453
-msgid "Number of times to repeat the collection of Multigroup fields."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:454
-msgid "'Unlimited' will provide an 'Add more' button so the users can add repeat it as many times as they like."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:455
-msgid "All fields in this group will automatically be set to allow this number of values."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:461
-msgid "Number of repeats"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:469
-msgid "Labels"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:470
-msgid "Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:478
-msgid "Subgroup %number label"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:506
-msgid "The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this."
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:966
-msgid "Add more values"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:0
-msgid "content_multigroup"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Content Multigroup"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Combine multiple CCK fields into repeating field collections that work in unison. This module is experimental and not ready for production."
-msgstr ""
-
diff --git a/help/add-existing-field.html b/help/add-existing-field.html
index b0992ea..fbfba0e 100644
--- a/help/add-existing-field.html
+++ b/help/add-existing-field.html
@@ -1,4 +1,3 @@
-<!-- $Id: add-existing-field.html,v 1.1.2.4 2008/10/22 21:09:12 karens Exp $ -->
<p>Using a field across several content type can be handy if a piece of data
is relevant for several content types. A typical use case is a 'Phone number'
field, used in both 'Restaurant' and 'Hotel' content types, even if hotels
diff --git a/help/add-new-field.html b/help/add-new-field.html
index dad3179..974902e 100644
--- a/help/add-new-field.html
+++ b/help/add-new-field.html
@@ -1,4 +1,3 @@
-<!-- $Id: add-new-field.html,v 1.1.2.3 2008/10/22 21:09:12 karens Exp $ -->
<p>At the bottom of the <strong>Manage fields</strong> page for a content type,
you'll find this:</p>
diff --git a/help/add-new-group.html b/help/add-new-group.html
index 8936938..fde5f7e 100644
--- a/help/add-new-group.html
+++ b/help/add-new-group.html
@@ -1,4 +1,3 @@
-<!-- $Id: add-new-group.html,v 1.1.2.5 2008/10/22 21:09:12 karens Exp $ -->
<p>Field groups are used to visually gather several fields that are associated
by some sort of logic, for instance several text fields that hold the different
parts of an 'Address'. On input forms and displayed content, the corresponding
diff --git a/help/add.html b/help/add.html
index b79d080..0ac0350 100644
--- a/help/add.html
+++ b/help/add.html
@@ -1,4 +1,3 @@
-<!-- $Id: add.html,v 1.1.2.4 2008/10/22 21:09:12 karens Exp $ -->
<p>The form elements at the bottom of the <strong>Manage fields</strong> page
let you add fields and groups to your content types.</p>
diff --git a/help/content.help.ini b/help/content.help.ini
index a5e6284..b303cbc 100644
--- a/help/content.help.ini
+++ b/help/content.help.ini
@@ -1,4 +1,3 @@
-; $Id: content.help.ini,v 1.1.2.5 2008/10/22 21:09:12 karens Exp $
[advanced help settings]
name = CCK
diff --git a/help/manage-fields.html b/help/manage-fields.html
index aa51c33..5c5396f 100644
--- a/help/manage-fields.html
+++ b/help/manage-fields.html
@@ -1,4 +1,3 @@
-<!-- $Id: manage-fields.html,v 1.1.2.2 2008/10/18 23:04:41 yched Exp $ -->
<p>This page lets you manage the CCK fields in your content type : add fields and
groups, rearrange them, access their configuration pages, remove them from the
content type.</p>
\ No newline at end of file
diff --git a/help/rearrange.html b/help/rearrange.html
index d31f0d4..e5084aa 100644
--- a/help/rearrange.html
+++ b/help/rearrange.html
@@ -1,4 +1,3 @@
-<!-- $Id: rearrange.html,v 1.1.2.3 2008/10/22 21:09:12 karens Exp $ -->
<p>To change the order of fields, grab a drag-and-drop handle
<img src="&path&draggable.png"> and drag the field to a new location in the list
(grab a handle by clicking and holding the mouse while hovering over a handle
diff --git a/help/remove.html b/help/remove.html
index a7930e1..5fcd157 100644
--- a/help/remove.html
+++ b/help/remove.html
@@ -1,4 +1,3 @@
-<!-- $Id: remove.html,v 1.1.2.4 2008/10/20 13:45:39 yched Exp $ -->
<h3>Removing a field</h3>
<p>When you remove a field from a content type, the data it holds are
diff --git a/help/theme-field-templates.html b/help/theme-field-templates.html
index 4544bae..085e909 100644
--- a/help/theme-field-templates.html
+++ b/help/theme-field-templates.html
@@ -1,4 +1,3 @@
-<!-- $Id: theme-field-templates.html,v 1.1.2.4 2008/12/08 20:00:35 yched Exp $ -->
<p>Field-level theming determines how the values of a given field are
displayed. The resulting output ends up in the <span class="code">$content</span>
and <span class="code">$&lt;FIELD_NAME&gt;_rendered</span> variables in the node
diff --git a/help/theme-formatters.html b/help/theme-formatters.html
index a2af15e..50bf89a 100644
--- a/help/theme-formatters.html
+++ b/help/theme-formatters.html
@@ -1,4 +1,3 @@
-<!-- $Id: theme-formatters.html,v 1.1.2.4 2008/10/20 13:45:39 yched Exp $ -->
<p>Formatters are used to turn the raw data for a single field value into html.
The <strong>Display Fields</strong> tab lets you chose which formatter you want to use
for each of your fields.</p>
diff --git a/help/theme-node-templates.html b/help/theme-node-templates.html
index 6cb5c32..27944ba 100644
--- a/help/theme-node-templates.html
+++ b/help/theme-node-templates.html
@@ -1,4 +1,3 @@
-<!-- $Id: theme-node-templates.html,v 1.1.2.5 2008/12/08 20:15:00 yched Exp $ -->
<h3>Template files</h3>
<p>All themes usually come with a default <span class="code">node.tpl.php</span>
diff --git a/help/theme.html b/help/theme.html
index d91b162..08b7329 100644
--- a/help/theme.html
+++ b/help/theme.html
@@ -1,4 +1,3 @@
-<!-- $Id: theme.html,v 1.1.2.4 2008/10/22 21:09:12 karens Exp $ -->
<p><strong>Note:</strong> these instructions assume you are familiar with the basic concepts
of Drupal 6 theming. For more informations, see the <a href="http://drupal.org/theme-guide">Theme guide for Drupal 6</a>,
and more specifically the <a href="http://drupal.org/node/173880">Overriding themable output</a>
diff --git a/images/CVS/Entries b/images/CVS/Entries
deleted file mode 100644
index 1784810..0000000
--- a/images/CVS/Entries
+++ /dev/null
@@ -1 +0,0 @@
-D
diff --git a/images/CVS/Repository b/images/CVS/Repository
deleted file mode 100644
index 1442cdb..0000000
--- a/images/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-contributions/modules/cck/images
diff --git a/images/CVS/Root b/images/CVS/Root
deleted file mode 100644
index 127da18..0000000
--- a/images/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib
diff --git a/images/CVS/Tag b/images/CVS/Tag
deleted file mode 100644
index fd64ef6..0000000
--- a/images/CVS/Tag
+++ /dev/null
@@ -1 +0,0 @@
-TDRUPAL-6--2-8
diff --git a/images/button-remove.png b/images/button-remove.png
deleted file mode 100644
index 5b26803..0000000
Binary files a/images/button-remove.png and /dev/null differ
diff --git a/images/button-throbber.gif b/images/button-throbber.gif
deleted file mode 100644
index 207e95c..0000000
Binary files a/images/button-throbber.gif and /dev/null differ
diff --git a/images/remove.png b/images/remove.png
index 5b26803..ca48c0c 100644
Binary files a/images/remove.png and b/images/remove.png differ
diff --git a/images/throbber.gif b/images/throbber.gif
deleted file mode 100644
index 207e95c..0000000
Binary files a/images/throbber.gif and /dev/null differ
diff --git a/includes/content.admin.inc b/includes/content.admin.inc
index f17bf5f..d41e93c 100644
--- a/includes/content.admin.inc
+++ b/includes/content.admin.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.admin.inc,v 1.181.2.76 2009/11/02 21:21:24 markuspetrux Exp $
/**
* @file
@@ -147,6 +146,7 @@ function content_field_overview_form(&$form_state, $type_name) {
if (module_exists('fieldgroup')) {
$groups = fieldgroup_groups($type['type']);
$group_types = fieldgroup_types();
+ $plain_tree = _fieldgroup_plain_tree($groups);
$group_options = _fieldgroup_groups_label($type['type']);
// Add the ability to group under the newly created row.
$group_options['_add_new_group'] = '_add_new_group';
@@ -194,6 +194,8 @@ function content_field_overview_form(&$form_state, $type_name) {
// Groups.
foreach ($groups as $name => $group) {
+ $current_group_options = $plain_tree;
+ unset($current_group_options[$name]);
$weight = $group['weight'];
$form[$name] = array(
'label' => array('#value' => check_plain($group['label'])),
@@ -202,17 +204,23 @@ function content_field_overview_form(&$form_state, $type_name) {
'configure' => array('#value' => l(t('Configure'), 'admin/content/node-type/'. $type['url_str'] .'/groups/'. $group['group_name'])),
'remove' => array('#value' => l(t('Remove'), 'admin/content/node-type/'. $type['url_str'] .'/groups/'. $group['group_name'] .'/remove')),
'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
- 'parent' => array('#type' => 'hidden', '#default_value' => ''),
+ 'parent' => array('#type' => 'select', '#options' => $current_group_options, '#default_value' => ''),
+ 'prev_parent' => array('#type' => 'hidden', '#value' => ''),
'hidden_name' => array('#type' => 'hidden', '#default_value' => $group['group_name']),
- '#root' => TRUE,
'#row_type' => 'group',
'group' => array('#type' => 'value', '#value' => $group),
);
// Adjust child fields rows.
- foreach ($group['fields'] as $field_name => $field) {
- $form[$field_name]['parent']['#default_value'] = $name;
- $form[$field_name]['prev_parent']['#value'] = $name;
+ if (isset($group['fields'])) {
+ foreach ($group['fields'] as $field_name => $field) {
+ $form[$field_name]['parent']['#default_value'] = $name;
+ $form[$field_name]['prev_parent']['#value'] = $name;
+ }
}
+ // Adjust child group rows
+ $form[$name]['parent']['#default_value'] = $group['parent'];
+ $form[$name]['prev_parent']['#value'] = $group['parent'];
+
$form['#group_rows'][] = $name;
$weights[] = $weight;
}
@@ -317,6 +325,9 @@ function content_field_overview_form(&$form_state, $type_name) {
// Additional row : add new group.
if (!empty($group_types)) {
+ $current_group_options = $group_options;
+ $options = fieldgroup_types();
+ unset($current_group_options['_add_new_group']);
$weight++;
$name = '_add_new_group';
$form[$name] = array(
@@ -346,9 +357,9 @@ function content_field_overview_form(&$form_state, $type_name) {
'#value' => 'standard',
),
'weight' => array('#type' => 'textfield', '#default_value' => $weight, '#size' => 3),
- 'parent' => array('#type' => 'hidden', '#default_value' => ''),
+ 'parent' => array('#type' => 'select', '#options' => $current_group_options, '#default_value' => ''),
+ 'prev_parent' => array('#type' => 'hidden', '#value' => ''),
'hidden_name' => array('#type' => 'hidden', '#default_value' => $name),
- '#root' => TRUE,
'#add_new' => TRUE,
'#row_type' => 'add_new_group',
);
@@ -662,6 +673,7 @@ function content_display_overview_form(&$form_state, $type_name, $contexts_selec
$form[$name] = array(
'human_name' => array('#value' => check_plain($group['label'])),
'weight' => array('#type' => 'value', '#value' => $weight),
+ 'parent' => array('#type' => 'value', '#value' => ''),
);
if ($contexts_selector == 'basic') {
$form[$name]['label'] = array(
@@ -686,6 +698,8 @@ function content_display_overview_form(&$form_state, $type_name, $contexts_selec
foreach ($group['fields'] as $field_name => $field) {
$form[$field_name]['parent']['#value'] = $name;
}
+ $form[$name]['parent']['#value'] = $group['parent'];
+ $form[$name]['group']['#value']['depth'] = $group['depth'];
}
$form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
@@ -1667,6 +1681,35 @@ function _content_overview_order(&$form, $field_rows, $group_rows) {
}
}
}
+ // Nested fieldgroup
+ if (module_exists('fieldgroup')) {
+ // readjust the depth and parenting of fieldgroup
+ $nested = array();
+ foreach ($group_rows as $name) {
+ if (empty($form[$name]['#depth'])) $form[$name]['#depth'] = 0;
+
+ // Skip top level groups, only nested groups need adjustment.
+ if ($parent = $form[$name]['parent']['#value']) {
+ $form[$name]['#depth'] = $form[$parent]['#depth'] + 1;
+ if (array_key_exists($parent, $nested)){
+ $nested[$parent][$name] = $dummy[$name];
+ $nested[$name] = & $nested[$parent][$name];
+ }
+ else {
+ $dummy[$parent][$name] = $dummy[$name];
+ $nested[$name] = & $dummy[$parent][$name];
+ }
+ unset($dummy[$name]);
+ }
+ }
+ // readjust the depth
+ foreach ($field_rows as $name) {
+ if ($parent = $form[$name]['parent']['#value']) {
+ $form[$name]['#depth'] = $form[$parent]['#depth'] + 1;
+ }
+ }
+ }
+
return $dummy ? explode(' ', trim(drupal_render($dummy))) : array();
}
diff --git a/includes/content.crud.inc b/includes/content.crud.inc
index 2823687..4e9178c 100644
--- a/includes/content.crud.inc
+++ b/includes/content.crud.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.crud.inc,v 1.76.2.17 2009/07/14 22:17:05 yched Exp $
/**
* @file
diff --git a/includes/content.devel.inc b/includes/content.devel.inc
index ce062df..c70a5a2 100644
--- a/includes/content.devel.inc
+++ b/includes/content.devel.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.devel.inc,v 1.4.2.6 2009/01/20 07:31:30 karens Exp $
/**
* @file
diff --git a/includes/content.diff.inc b/includes/content.diff.inc
index 33265ed..2b6243d 100644
--- a/includes/content.diff.inc
+++ b/includes/content.diff.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.diff.inc,v 1.2.2.7 2010/06/09 01:13:08 karens Exp $
/**
* @file hook_diff() implementations for CCK (especially fields).
diff --git a/includes/content.node_form.inc b/includes/content.node_form.inc
index 382173d..7f5b166 100644
--- a/includes/content.node_form.inc
+++ b/includes/content.node_form.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.node_form.inc,v 1.7.2.21 2009/07/18 00:40:20 markuspetrux Exp $
/**
* @file
@@ -155,18 +154,20 @@ function content_multiple_value_form(&$form, &$form_state, $field, $items) {
$deltas = array(0);
$max = 0;
break;
+
case 1:
$deltas = array_keys($items);
- $current_item_count = isset($form_state['item_count'][$field_name]) ? $form_state['item_count'][$field_name] : max(1, count($deltas));
+ $current_item_count = max(1, (isset($form_state['item_count'][$field_name]) ? $form_state['item_count'][$field_name] : count($deltas)));
$max = (!empty($deltas) ? max($deltas) : -1);
while (count($deltas) < $current_item_count) {
$max++;
$deltas[] = $max;
}
break;
+
default:
-// $max = $field['multiple'] - 1;
- $deltas = range(0, $max);
+ $max = $field['multiple'] - 1;
+ $deltas = range(0, $max);
break;
}
@@ -186,7 +187,7 @@ function content_multiple_value_form(&$form, &$form_state, $field, $items) {
$defaults = array(
'#title' => ($field['multiple'] >= 1) ? '' : $title,
'#description' => ($field['multiple'] >= 1) ? '' : $description,
- '#required' => $delta == 0 && $field['required'],
+ '#required' => ($field['multiple'] == 0 ? $field['required'] : FALSE),
'#weight' => $delta,
'#delta' => $delta,
'#columns' => array_keys($field['columns']),
@@ -223,6 +224,12 @@ function content_multiple_value_form(&$form, &$form_state, $field, $items) {
}
}
+ // Add an #after_build callback to prevent validation of fields that are
+ // flagged for removal and enforce field requirement settings.
+ if ($field['multiple'] >= 1) {
+ $form_element['#after_build'] = array('content_multiple_value_after_build_proxy');
+ }
+
// Add AHAH add more button, if not working with a programmed form.
if ($field['multiple'] == 1 && empty($form['#programmed'])) {
// Make sure the form is cached so ahah can work.
@@ -257,10 +264,133 @@ function content_multiple_value_form(&$form, &$form_state, $field, $items) {
$form_element[$field_name .'_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
$form_element[$field_name .'_add_more']['#suffix'] = '</div>';
}
+
return $form_element;
}
/**
+ * After build callback for multiple value fields.
+ */
+function content_multiple_value_after_build($elements, &$form_state) {
+ $items_map = array();
+
+ foreach (element_children($elements) as $delta) {
+ // Find delta items for this field when the form if being processed for validation.
+ if (isset($elements[$delta]) && $elements[$delta] && is_numeric($delta) && !empty($elements[$delta]['#needs_validation'])) {
+
+ // Find items that have been flagged for removal.
+ if (isset($elements[$delta]['_remove']) && !empty($elements[$delta]['_remove']['#value'])) {
+
+ // Update the value in the #post attribute of the elements.
+ $post = &$elements[$delta]['#post'];
+ foreach ($elements[$delta]['#parents'] as $name) {
+ $post = &$post[$name];
+ }
+ $post = array('_weight' => $elements[$delta]['_weight']['#value'], '_remove' => 1);
+
+ // Alter the value of this element and children recursively.
+ content_multiple_value_after_build_recursive($elements[$delta], $elements[$delta]['#post']);
+
+ $items_map[$delta] = TRUE;
+ }
+ else {
+ $items_map[$delta] = FALSE;
+ }
+ }
+ }
+
+ // If the multiple values field is required, then make sure there's at
+ // least one item not flagged for removal. This is necessary to point
+ // the user to the correct form element when the validation error is
+ // issued from content_multiple_value_nodeapi_validate().
+ $items_count = count($items_map);
+ if (!empty($elements['#required']) && $items_count > 0) {
+ // If the number of removed items is equal to the total number of
+ // items, then we'll reset the '_remove' flag of the first item, and
+ // that will be used to point the user when the required field error
+ // is issued by content_multiple_value_nodeapi_validate().
+ if ($items_count == count(array_filter($items_map))) {
+ $delta = key($items_map);
+ if (isset($elements[$delta]['_remove'])) {
+ $elements[$delta]['_remove']['#value'] = 0;
+ }
+ }
+ }
+
+ return $elements;
+}
+
+/**
+ * Helper function to deal with items flagged for removal recursively.
+ */
+function content_multiple_value_after_build_recursive(&$elements, $post) {
+ foreach (element_children($elements) as $key) {
+ if (isset($elements[$key]) && $elements[$key] && !in_array($key, array('_weight', '_remove', '_error_element'))) {
+ // Recurse through all children elements.
+ content_multiple_value_after_build_recursive($elements[$key], $post);
+ }
+ }
+
+ // Remove values for items flagged for removal.
+ if (isset($elements['#value'])) {
+ $elements['#value'] = NULL;
+ form_set_value($elements, NULL, $form_state);
+ $elements['#post'] = $post;
+ }
+}
+
+/**
+ * Implementation of nodeapi('validate') for multiple value fields
+ * managed by content module itself.
+ */
+function content_multiple_value_nodeapi_validate(&$node, $field, &$items, $form) {
+ $field_name = $field['field_name'];
+
+ // Getting the field structure from the form allows other modules alter
+ // field properties such as the required attribute.
+ $field = $form['#field_info'][$field_name];
+
+ // Get rid of the add more items element.
+ unset($items[$field_name .'_add_more']);
+
+ // Reorder items to account for drag-n-drop reordering.
+ $items = _content_sort_items($field, $items);
+
+ // Create a copy of the items before filtering those that are flagged
+ // for removal. We need this copy later to obtain the error element.
+ $items_copy = $items;
+
+ // Filter out items flagged for removal.
+ $items = content_set_empty($field, $items);
+
+ // Enforce field requirement settings.
+ if ($field['required'] && empty($node->_content_ignore_required_fields[$field_name]) && content_access('edit', $field, NULL, $node)) {
+ // Count non-empty items.
+ $count = 0;
+ $function = $field['module'] .'_content_is_empty';
+ foreach ($items as $item) {
+ if (!$function($item, $field)) {
+ $count++;
+ }
+ }
+ // The field is required so we expect at least one non-empty item.
+ if ($count == 0) {
+ // Try to guess the element path in the form from the first item that
+ // is not flagged for removal. Defaults to first item.
+ $error_element_index = 0;
+ foreach ($items_copy as $index => $item) {
+ if (empty($item['_remove'])) {
+ $error_element_index = $index;
+ break;
+ }
+ }
+ $error_element = isset($items_copy[$error_element_index]) && is_array($items_copy[$error_element_index]) && isset($items_copy[$error_element_index]['_error_element']) ? $items_copy[$error_element_index]['_error_element'] : '';
+ form_set_error($error_element, t('%name field is required.', array('%name' => t($field['widget']['label']))));
+ }
+ }
+}
+
+/**
* Submit handler to add more choices to a content form. This handler is used when
* JavaScript is not available. It makes changes to the form state and the
* entire form is rebuilt during the page reload.
@@ -281,6 +411,7 @@ function content_add_more_submit($form, &$form_state) {
* Menu callback for AHAH addition of new empty widgets.
*/
function content_add_more_js($type_name_url, $field_name) {
+ $content_type = content_types($type_name_url);
$type = content_types($type_name_url);
$field = content_fields($field_name, $type['type']);
@@ -335,15 +466,17 @@ function content_add_more_js($type_name_url, $field_name) {
$form_state['item_count'] = array($field_name => count($_POST[$field_name]) + 1);
$form_element = content_field_form($form, $form_state, $field);
// Let other modules alter it.
- drupal_alter('form', $form_element, array(), 'content_add_more_js');
+ // We pass an empty array as hook_form_alter's usual 'form_state' parameter,
+ // instead of $form_atate (for reasons we may never remember).
+ // However, this argument is still expected to be passed by-reference
+ // (and PHP5.3 will throw an error if it isn't.) This leads to:
+ $data = &$form_element;
+ $empty_form_state = array();
+ $data['__drupal_alter_by_ref'] = array(&$empty_form_state);
+ drupal_alter('form', $data, 'content_add_more_js');
// Add the new element at the right place in the (original, unbuilt) form.
- if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type['type'], $field_name))) {
- $form[$group_name][$field_name] = $form_element[$field_name];
- }
- else {
- $form[$field_name] = $form_element[$field_name];
- }
+ $success = content_set_nested_elements($form, $field_name, $form_element[$field_name]);
// Save the new definition of the form.
$form_state['values'] = array();
@@ -360,7 +493,8 @@ function content_add_more_js($type_name_url, $field_name) {
$form = form_builder($_POST['form_id'], $form, $form_state);
// Render the new output.
- $field_form = (!empty($group_name)) ? $form[$group_name][$field_name] : $form[$field_name];
+ $field_form = array_shift(content_get_nested_elements($form, $field_name));
+
// We add a div around the new content to receive the ahah effect.
$field_form[$delta]['#prefix'] = '<div class="ahah-new-content">'. (isset($field_form[$delta]['#prefix']) ? $field_form[$delta]['#prefix'] : '');
$field_form[$delta]['#suffix'] = (isset($field_form[$delta]['#suffix']) ? $field_form[$delta]['#suffix'] : '') .'</div>';
diff --git a/includes/content.rules.inc b/includes/content.rules.inc
index 340ff00..abf0f6a 100644
--- a/includes/content.rules.inc
+++ b/includes/content.rules.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.rules.inc,v 1.1.2.7 2009/12/23 17:33:25 fago Exp $
/**
* @file
diff --git a/includes/content.token.inc b/includes/content.token.inc
index 7c514c8..559e5b3 100644
--- a/includes/content.token.inc
+++ b/includes/content.token.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.token.inc,v 1.5.2.8 2008/12/05 14:59:22 yched Exp $
/**
* @file
@@ -21,13 +20,16 @@ function token_content_build_modes() {
}
// Two helper functions that generate appropriate tokens for CCK-added fields.
-function content_token_values($type, $object = NULL) {
+function content_token_values($type, $object = NULL, $options = array()) {
$tokens = array();
if ($type == 'node') {
- $node = $object;
// Prevent against invalid 'nodes' built by broken 3rd party code.
- if (isset($node->type)) {
- $type = content_types($node->type);
+ if (isset($object->type)) {
+ // Let PHP free the $node object when we are done. Working directly on the
+ // incoming $object causes memory leak issues on long-running scripts such
+ // as migrations. See http://drupal.org/node/736440.
+ $node = drupal_clone($object);
+ $content_type = content_types($node->type);
$node->build_mode = 'token';
$node->content = array();
content_view($node);
@@ -36,13 +38,13 @@ function content_token_values($type, $object = NULL) {
content_alter($node);
$field_types = _content_field_types();
- foreach ($type['fields'] as $field) {
- $items = $node->{$field['field_name']};
+ foreach ($content_type['fields'] as $field_name => $field) {
+ $items = isset($node->{$field_name}) ? $node->{$field_name} : array();
$function = $field_types[$field['type']]['module'] . '_token_values';
if (!empty($items) && function_exists($function)) {
- $token_values = $function('field', $items);
+ $token_values = (array) $function('field', $items, $options);
foreach ($token_values as $token => $value) {
- $tokens[$field['field_name'] .'-'. $token] = $value;
+ $tokens[$field_name .'-'. $token] = $value;
}
}
}
@@ -89,7 +91,7 @@ if (module_exists('nodereference')) {
}
}
- function nodereference_token_values($type, $object = NULL) {
+ function nodereference_token_values($type, $object = NULL, $options = array()) {
if ($type == 'field') {
$item = $object[0];
@@ -118,7 +120,7 @@ if (module_exists('number')) {
}
}
- function number_token_values($type, $object = NULL) {
+ function number_token_values($type, $object = NULL, $options = array()) {
if ($type == 'field') {
$item = $object[0];
@@ -142,7 +144,7 @@ if (module_exists('text')) {
}
}
- function text_token_values($type, $object = NULL) {
+ function text_token_values($type, $object = NULL, $options = array()) {
if ($type == 'field') {
$item = $object[0];
@@ -168,7 +170,7 @@ if (module_exists('userreference')) {
}
}
- function userreference_token_values($type, $object = NULL) {
+ function userreference_token_values($type, $object = NULL, $options = array()) {
if ($type == 'field') {
$item = $object[0];
diff --git a/includes/panels/content_types/content_field.inc b/includes/panels/content_types/content_field.inc
index 4d31857..72c1d35 100644
--- a/includes/panels/content_types/content_field.inc
+++ b/includes/panels/content_types/content_field.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_field.inc,v 1.1.2.10 2009/09/29 06:52:35 markuspetrux Exp $
/**
* @file
diff --git a/includes/views/content.views.inc b/includes/views/content.views.inc
index b492229..bc6be2c 100644
--- a/includes/views/content.views.inc
+++ b/includes/views/content.views.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.views.inc,v 1.1.2.28 2009/08/11 20:05:18 markuspetrux Exp $
/**
* @file
diff --git a/includes/views/content.views_convert.inc b/includes/views/content.views_convert.inc
index 7efbcef..9ee21e7 100644
--- a/includes/views/content.views_convert.inc
+++ b/includes/views/content.views_convert.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content.views_convert.inc,v 1.1.2.5 2009/07/14 22:17:05 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_argument.inc b/includes/views/handlers/content_handler_argument.inc
index 616654f..6da1be3 100644
--- a/includes/views/handlers/content_handler_argument.inc
+++ b/includes/views/handlers/content_handler_argument.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_argument.inc,v 1.1.2.2 2008/10/04 13:14:21 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_argument_many_to_one.inc b/includes/views/handlers/content_handler_argument_many_to_one.inc
index 435fc53..1fac5de 100644
--- a/includes/views/handlers/content_handler_argument_many_to_one.inc
+++ b/includes/views/handlers/content_handler_argument_many_to_one.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_argument_many_to_one.inc,v 1.1.2.4 2009/04/05 01:41:21 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_argument_numeric.inc b/includes/views/handlers/content_handler_argument_numeric.inc
index 69e380e..4403a21 100644
--- a/includes/views/handlers/content_handler_argument_numeric.inc
+++ b/includes/views/handlers/content_handler_argument_numeric.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_argument_numeric.inc,v 1.1.2.2 2008/10/04 13:14:21 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_argument_reference.inc b/includes/views/handlers/content_handler_argument_reference.inc
index 52119ac..e290254 100644
--- a/includes/views/handlers/content_handler_argument_reference.inc
+++ b/includes/views/handlers/content_handler_argument_reference.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_argument_reference.inc,v 1.1.2.2 2009/04/08 19:26:23 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_argument_string.inc b/includes/views/handlers/content_handler_argument_string.inc
index c5aaec3..3ad907b 100644
--- a/includes/views/handlers/content_handler_argument_string.inc
+++ b/includes/views/handlers/content_handler_argument_string.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_argument_string.inc,v 1.1.2.2 2008/10/04 13:14:21 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_field.inc b/includes/views/handlers/content_handler_field.inc
index ddca9c2..a905dde 100644
--- a/includes/views/handlers/content_handler_field.inc
+++ b/includes/views/handlers/content_handler_field.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_field.inc,v 1.1.2.18 2010/01/25 23:13:40 markuspetrux Exp $
/**
* @file
@@ -137,10 +136,22 @@ class content_handler_field extends views_handler_field_node {
/**
* Return DIV or SPAN based upon the field's element type.
*/
- function element_type() {
+ function element_type($none_supported = FALSE, $default_empty = FALSE) {
+ // The 'element_type' property denotes Views 3.x ('semantic views'
+ // functionnality). If the property is set, and not set to '' ("default"),
+ // let the generic method handle the output.
+ if (isset($this->options['element_type']) && $this->options['element_type'] !== '') {
+ return parent::element_type($none_supported, $default_empty);
+ }
+
+ if ($default_empty) {
+ return '';
+ }
+
if (isset($this->definition['element type'])) {
return $this->definition['element type'];
}
+
// TODO Figure out exactly when to return a div or a <span>. Any field
// that ever needs to be shown inline in Views UI. It needs to return
// a div for textareas to prevent wrapping a <span> around a <p>.
@@ -172,6 +183,13 @@ class content_handler_field extends views_handler_field_node {
// We're down to a single node here, so we can retrieve the actual field
// definition for the node type being considered.
$field = content_fields($this->content_field['field_name'], $values->{$this->aliases['type']});
+
+ // If the field does not appear in the node type, then we have no value
+ // to display, and can just return.
+ if (empty($field)) {
+ return '';
+ }
+
$options = $this->options;
$db_info = content_database_info($field);
@@ -207,4 +225,4 @@ class content_handler_field extends views_handler_field_node {
return '';
}
-}
\ No newline at end of file
+}
diff --git a/includes/views/handlers/content_handler_field_multiple.inc b/includes/views/handlers/content_handler_field_multiple.inc
index 9ea21f9..0ea0bfa 100644
--- a/includes/views/handlers/content_handler_field_multiple.inc
+++ b/includes/views/handlers/content_handler_field_multiple.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_field_multiple.inc,v 1.1.2.23 2010/01/25 23:13:40 markuspetrux Exp $
/**
* @file
@@ -191,14 +190,27 @@ class content_handler_field_multiple extends content_handler_field {
* Fields rendered with the 'group multiple' option use <div> markers,
* and thus shouldn't be wrapped in a <span>.
*/
- function element_type() {
+ function element_type($none_supported = FALSE, $default_empty = FALSE) {
+ // If this is not a grouped field, use the parent method.
if (!$this->defer_query) {
- return parent::element_type();
+ return parent::element_type($none_supported, $default_empty);
+ }
+
+ // The 'element_type' property denotes Views 3.x ('semantic views'
+ // functionnality). If the property is set, and not set to '' ("default"),
+ // let the generic method handle the output.
+ if (isset($this->options['element_type']) && $this->options['element_type'] !== '') {
+ return parent::element_type($none_supported, $default_empty);
+ }
+
+ if ($default_empty) {
+ return '';
}
if (isset($this->definition['element type'])) {
return $this->definition['element type'];
}
+
return 'div';
}
@@ -211,6 +223,13 @@ class content_handler_field_multiple extends content_handler_field {
// We're down to a single node here, so we can retrieve the actual field
// definition for the node type being considered.
$field = content_fields($this->content_field['field_name'], $values->{$this->aliases['type']});
+
+ // If the field does not appear in the node type, then we have no value
+ // to display, and can just return.
+ if (empty($field)) {
+ return '';
+ }
+
$options = $this->options;
$vid = $values->{$this->field_alias};
@@ -299,4 +318,4 @@ class content_handler_field_multiple extends content_handler_field {
}
}
-}
\ No newline at end of file
+}
diff --git a/includes/views/handlers/content_handler_filter_float.inc b/includes/views/handlers/content_handler_filter_float.inc
index d8a77f4..567f7d1 100644
--- a/includes/views/handlers/content_handler_filter_float.inc
+++ b/includes/views/handlers/content_handler_filter_float.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_filter_float.inc,v 1.1.2.3 2009/04/09 00:04:23 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_filter_many_to_one.inc b/includes/views/handlers/content_handler_filter_many_to_one.inc
index 7de15ca..5b165d6 100644
--- a/includes/views/handlers/content_handler_filter_many_to_one.inc
+++ b/includes/views/handlers/content_handler_filter_many_to_one.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_filter_many_to_one.inc,v 1.1.2.5 2009/08/14 19:15:10 markuspetrux Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_filter_numeric.inc b/includes/views/handlers/content_handler_filter_numeric.inc
index 0523886..aa19b3b 100644
--- a/includes/views/handlers/content_handler_filter_numeric.inc
+++ b/includes/views/handlers/content_handler_filter_numeric.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_filter_numeric.inc,v 1.1.2.2 2008/10/04 13:14:21 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_filter_string.inc b/includes/views/handlers/content_handler_filter_string.inc
index 4034b4e..ff40576 100644
--- a/includes/views/handlers/content_handler_filter_string.inc
+++ b/includes/views/handlers/content_handler_filter_string.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_filter_string.inc,v 1.1.2.2 2008/10/04 13:14:21 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_relationship.inc b/includes/views/handlers/content_handler_relationship.inc
index 40063f4..56c85f7 100644
--- a/includes/views/handlers/content_handler_relationship.inc
+++ b/includes/views/handlers/content_handler_relationship.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_relationship.inc,v 1.1.2.3 2008/10/24 12:31:58 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_handler_sort.inc b/includes/views/handlers/content_handler_sort.inc
index 0b9abb6..593ba36 100644
--- a/includes/views/handlers/content_handler_sort.inc
+++ b/includes/views/handlers/content_handler_sort.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_handler_sort.inc,v 1.1.2.6 2008/10/25 00:36:41 yched Exp $
/**
* @file
diff --git a/includes/views/handlers/content_plugin_display_simple.inc b/includes/views/handlers/content_plugin_display_simple.inc
index 49f45c4..d65e5de 100644
--- a/includes/views/handlers/content_plugin_display_simple.inc
+++ b/includes/views/handlers/content_plugin_display_simple.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_plugin_display_simple.inc,v 1.1.2.5 2010/06/09 04:10:25 karens Exp $
/**
* @file
diff --git a/includes/views/handlers/content_plugin_style_php_array_ac.inc b/includes/views/handlers/content_plugin_style_php_array_ac.inc
index e93f913..d2b0fb4 100644
--- a/includes/views/handlers/content_plugin_style_php_array_ac.inc
+++ b/includes/views/handlers/content_plugin_style_php_array_ac.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_plugin_style_php_array_ac.inc,v 1.1.2.3 2009/11/04 15:31:28 markuspetrux Exp $
/**
* @file
diff --git a/js/content.admin.js b/js/content.admin.js
new file mode 100644
index 0000000..ea1613c
--- /dev/null
+++ b/js/content.admin.js
@@ -0,0 +1,79 @@
+
+Drupal.behaviors.cckManageFields = function(context) {
+ attachUpdateSelects(context);
+};
+
+function attachUpdateSelects(context) {
+ var widgetTypes = Drupal.settings.contentWidgetTypes;
+ var fields = Drupal.settings.contentFields;
+
+ // Store the default text of widget selects.
+ $('#content-field-overview .content-widget-type-select', context).each(function() {
+ this.initialValue = this.options[0].text;
+ });
+
+ // 'Field type' select updates its 'Widget' select.
+ $('#content-field-overview .content-field-type-select', context).each(function() {
+ this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
+
+ $(this).change(function() {
+ var selectedFieldType = this.options[this.selectedIndex].value;
+ var options = (selectedFieldType in widgetTypes) ? widgetTypes[selectedFieldType] : [ ];
+ this.targetSelect.contentPopulateOptions(options);
+ });
+
+ // Trigger change on initial pageload to get the right widget options
+ // when field type comes pre-selected (on failed validation).
+ $(this).trigger('change');
+ });
+
+ // 'Existing field' select updates its 'Widget' select and 'Label' textfield.
+ $('#content-field-overview .content-field-select', context).each(function() {
+ this.targetSelect = $('.content-widget-type-select', $(this).parents('tr').eq(0));
+ this.targetTextfield = $('.content-label-textfield', $(this).parents('tr').eq(0));
+
+ $(this).change(function(e, updateText) {
+ var updateText = (typeof(updateText) == 'undefined') ? true : updateText;
+ var selectedField = this.options[this.selectedIndex].value;
+ var selectedFieldType = (selectedField in fields) ? fields[selectedField].type : null;
+ var selectedFieldWidget = (selectedField in fields) ? fields[selectedField].widget : null
+ var options = (selectedFieldType && (selectedFieldType in widgetTypes)) ? widgetTypes[selectedFieldType] : [ ];
+ this.targetSelect.contentPopulateOptions(options, selectedFieldWidget);
+
+ if (updateText) {
+ $(this.targetTextfield).attr('value', (selectedField in fields) ? fields[selectedField].label : '');
+ }
+ });
+
+ // Trigger change on initial pageload to get the right widget options
+ // and label when field type comes pre-selected (on failed validation).
+ $(this).trigger('change', false);
+ });
+}
+
+jQuery.fn.contentPopulateOptions = function(options, selected) {
+ return this.each(function() {
+ var disabled = false;
+ if (options.length == 0) {
+ options = [this.initialValue];
+ disabled = true;
+ }
+
+ // If possible, keep the same widget selected when changing field type.
+ // This is based on textual value, since the internal value might be
+ // different (optionwidgets_buttons vs. nodereference_buttons).
+ var previousSelectedText = this.options[this.selectedIndex].text;
+
+ var html = '';
+ jQuery.each(options, function(value, text) {
+ // Figure out which value should be selected. The 'selected' param
+ // takes precedence.
+ var is_selected = ((typeof(selected) !== 'undefined' && value == selected) || (typeof(selected) == 'undefined' && text == previousSelectedText));
+ html += '<option value="' + value + '"' + (is_selected ? ' selected="selected"' : '') +'>' + text + '</option>';
+ });
+
+ $(this)
+ .html(html)
+ .attr('disabled', disabled ? 'disabled' : '');
+ });
+}
\ No newline at end of file
diff --git a/js/content.node_form.js b/js/content.node_form.js
new file mode 100644
index 0000000..326ad1d
--- /dev/null
+++ b/js/content.node_form.js
@@ -0,0 +1,254 @@
+
+/**
+ * Private namespace for local methods.
+ */
+Drupal.contentRemoveButtons = Drupal.contentRemoveButtons || {};
+
+/**
+ * Manipulation of content remove buttons.
+ *
+ * TableDrag objects for multiple value fields (and multigroups) are scanned
+ * to find 'remove' checkboxes. These checkboxes are hidden when javascript is
+ * enabled (using the Global CSS Killswitch, html.js, defined in drupal.js).
+ * A new 'remove' button is created here in place of these checkboxes aimed to
+ * provide a more user-friendly method to remove items.
+ */
+Drupal.behaviors.contentRemoveButtons = function(context) {
+ var self = Drupal.contentRemoveButtons;
+
+ $('table.content-multiple-table', context).not('.content-remove-buttons-processed').addClass('content-remove-buttons-processed').each(function() {
+ var table = this, tableDrag = Drupal.tableDrag[$(table).attr('id')];
+
+ // Replace remove checkboxes with buttons.
+ $('input.content-multiple-remove-checkbox', table).each(function() {
+ var $checkbox = $(this), $row = $checkbox.parents('tr:first');
+ var isRemoved = $checkbox.attr('checked');
+ var $button = $(Drupal.theme('contentRemoveButton', tableDrag.getRemoveButtonTitle(isRemoved)));
+
+ // Bind the onClick event to the remove button.
+ $button.bind('click', function(event) {
+ self.onClick($button, $checkbox, $row, tableDrag);
+ return false;
+ });
+
+ // Attach the new button to the DOM tree.
+ $checkbox.parent().append($button);
+
+ // If the row is removed, then hide the contents of the cells and show
+ // the removed warning on the cell next to the drag'n'drop cell.
+ if (isRemoved) {
+ self.getCellWrappers($row).hide();
+ self.showRemovedWarning($row, tableDrag);
+
+ // FAPI not rendering the form on errors - case #1:
+ // If the form has been submitted and any error was found, FAPI will
+ // send back the same exact form that was submitted to show the error
+ // messages, but it will not invoke the rendering engine which is where
+ // we actually assign the removed class to the row, so we need to check
+ // this situation here and add the class if it is not present.
+ if (!$row.hasClass('content-multiple-removed-row')) {
+ $row.addClass('content-multiple-removed-row');
+ }
+ }
+ else {
+ // FAPI not rendering the form on errors - case #2:
+ // Similar issue than #1, but this time caused when user removes an
+ // item, previews, FAPI renders the new form with the removed class,
+ // then user changes anything in the form that causes an error, and
+ // also restores the previously removed item. This time, FAPI will
+ // send the form validation error with the item not flagged for removal
+ // but having the removed class that was present when the form was
+ // rendered in the previous step. So we need to remove this class here,
+ // if present, because the item is not really flagged for removal.
+ if ($row.hasClass('content-multiple-removed-row')) {
+ $row.removeClass('content-multiple-removed-row');
+ }
+ }
+ });
+ });
+};
+
+/**
+ * onClick handler for remove buttons.
+ *
+ * @param $button
+ * The jQuery object of the remove button.
+ * @param $checkbox
+ * The jQuery object of the remove checkbox.
+ * @param $row
+ * The jQuery object of the table row.
+ * @param tableDrag
+ * The tableDrag object where the row is.
+ */
+Drupal.contentRemoveButtons.onClick = function($button, $checkbox, $row, tableDrag) {
+ var self = Drupal.contentRemoveButtons;
+
+ // Prevent the user from firing this event while another one is still being
+ // processed. This flag is (should be) restored at end of animations.
+ // Note that this technique is required because the browser may experience
+ // delays while performing the animation, for whatever reason, and if this
+ // process it fired more than once at the same time for the same row, then
+ // it may cause unexpected behavior because the state of the elements being
+ // manipulated would be unknown.
+ if ($row.animating) {
+ return;
+ }
+ $row.animating = true;
+
+ // Toggle the state of the checkbox.
+ var isRemoved = !$checkbox.attr('checked');
+ $checkbox.attr('checked', isRemoved);
+
+ // Toggle the row class.
+ if (isRemoved) {
+ $row.addClass('content-multiple-removed-row');
+ }
+ else {
+ $row.removeClass('content-multiple-removed-row');
+ }
+
+ // Toggle the button title.
+ $button.attr('title', tableDrag.getRemoveButtonTitle(isRemoved));
+
+ // Get the list of cell wrappers in this row.
+ var $cellWrappers = self.getCellWrappers($row);
+
+ // If for whatever reason this row doesn't have cells with elements,
+ // then we are done, but we still need to reset the global busy flag
+ // and display the tableDrag changed warning.
+ if (!$cellWrappers.size()) {
+ tableDrag.displayChangedWarning();
+ $row.animating = false;
+ return;
+ }
+
+ // Toggle the visible state of the row cells.
+ $cellWrappers.each(function() {
+ var $cellWrapper = $(this);
+
+ // Drop the removed warning during restore operation.
+ if (!isRemoved) {
+ self.hideRemovedWarning($row);
+ }
+
+ // Toggle the visibility state of the contents of cells.
+ $cellWrapper.animate({opacity: (isRemoved ? 'hide' : 'show')}, 'fast', function() {
+ var $cell = $cellWrapper.parent();
+
+ // Show the removed warning during remove operation.
+ if (isRemoved && $cell.prev(':first').hasClass('content-multiple-drag')) {
+ self.showRemovedWarning($row, tableDrag);
+ }
+
+ // Disable the busy flag when animation of last cell has finished.
+ if ($cell.next(':first').hasClass('delta-order')) {
+ tableDrag.displayChangedWarning();
+ $row.animating = false;
+ }
+ });
+ });
+};
+
+/**
+ * Show the removed warning on the given row.
+ *
+ * @param $row
+ * The jQuery object of the table row.
+ * @param tableDrag
+ * The tableDrag object where the row is.
+ */
+Drupal.contentRemoveButtons.showRemovedWarning = function($row, tableDrag) {
+ $('.content-multiple-drag', $row).next(':first').append(Drupal.theme('contentRemovedWarning', tableDrag.getRemovedWarning()));
+};
+
+/**
+ * Hide the removed warning from the given row.
+ *
+ * @param $row
+ * The jQuery object of the table row.
+ */
+Drupal.contentRemoveButtons.hideRemovedWarning = function($row) {
+ if ($('.content-multiple-removed-warning', $row).size()) {
+ $('.content-multiple-removed-warning', $row).remove();
+ }
+};
+
+/**
+ * Get cell wrappers for the given row.
+ *
+ * @param $row
+ * The jQuery object of the table row.
+ */
+Drupal.contentRemoveButtons.getCellWrappers = function($row) {
+ // Create cell wrappers if this row has not already been processed.
+ if (!$('.content-multiple-cell-content-wrapper', $row).size()) {
+ // Wrap the contents of all cells (except the drag'n'drop, weight and
+ // remove button cells) with a dummy block element. This operation makes
+ // animations faster because we just need to show/hide a single element
+ // per cell, and it also prevents from creating more than one warning
+ // element per row.
+ $row.children('td:not(.content-multiple-drag):not(.delta-order):not(.content-multiple-remove-cell)').each(function() {
+ var $cell = $(this);
+ $cell.wrapInner('<div class="content-multiple-cell-content-wrapper"/>');
+ });
+ }
+ return $('.content-multiple-cell-content-wrapper', $row);
+};
+
+/**
+ * Display table change warning when appropriate.
+ */
+Drupal.tableDrag.prototype.displayChangedWarning = function() {
+ if (this.changed == false) {
+ $(Drupal.theme('tableDragChangedWarning')).insertAfter(this.table).hide().fadeIn('slow');
+ this.changed = true;
+ }
+};
+
+/**
+ * Get the title of the remove button.
+ *
+ * This method is an extension of the tableDrag class. This means a separate
+ * module can override this method for a particular tableDrag instance. For
+ * example, the multigroup module can change the text to read 'Remove this
+ * group of items', another module could change it to 'Remove this image',
+ * and so on...
+ * To override this function:
+ *
+ * @code
+ * var tableId = $(table).attr('id');
+ * Drupal.tableDrag[tableId].getRemoveButtonTitle = function(isRemoved) {
+ * return (isRemoved ? Drupal.t('Restore this foo') : Drupal.t('Remove this foo'));
+ * };
+ * @endcode
+ *
+ * @param isRemoved
+ * A flag that indicates the state of the button.
+ */
+Drupal.tableDrag.prototype.getRemoveButtonTitle = function(isRemoved) {
+ return (isRemoved ? Drupal.t('Restore this item') : Drupal.t('Remove this item'));
+};
+
+/**
+ * Get the item removed warning.
+ *
+ * This method is an extension of the tableDrag class. It can be overridden by
+ * a separate module. See getRemoveButtonTitle() for further information.
+ */
+Drupal.tableDrag.prototype.getRemovedWarning = function() {
+ return Drupal.t('Removed');
+};
+
+/**
+ * Theme the remove button.
+ */
+Drupal.theme.prototype.contentRemoveButton = function(title) {
+ return '<a href="javascript:void(0)" class="content-multiple-remove-button" title="'+ title +'"></a>';
+};
+
+/**
+ * Theme the item removed warning.
+ */
+Drupal.theme.prototype.contentRemovedWarning = function(warning) {
+ return '<div class="content-multiple-removed-warning">'+ warning +'</div>';
+};
diff --git a/modules/content_copy/content_copy.info b/modules/content_copy/content_copy.info
index 9a3d972..bbd7ad3 100644
--- a/modules/content_copy/content_copy.info
+++ b/modules/content_copy/content_copy.info
@@ -1,4 +1,3 @@
-; $Id: content_copy.info,v 1.6 2008/04/23 18:01:48 dww Exp $
name = Content Copy
description = Enables ability to import/export field definitions.
dependencies[] = content
diff --git a/modules/content_copy/content_copy.module b/modules/content_copy/content_copy.module
index 5845346..16e7add 100644
--- a/modules/content_copy/content_copy.module
+++ b/modules/content_copy/content_copy.module
@@ -1,5 +1,4 @@
<?php
-// $Id: content_copy.module,v 1.27.2.27 2009/12/04 18:23:30 markuspetrux Exp $
/**
* @file
diff --git a/modules/content_copy/content_copy_export_form.tpl.php b/modules/content_copy/content_copy_export_form.tpl.php
index 2ff549d..7125bca 100644
--- a/modules/content_copy/content_copy_export_form.tpl.php
+++ b/modules/content_copy/content_copy_export_form.tpl.php
@@ -1,5 +1,4 @@
<?php
-// $Id: content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched Exp $
if ($form['#step'] == 2):
if ($rows): ?>
diff --git a/modules/content_copy/translations/modules-content_copy.de.po b/modules/content_copy/translations/modules-content_copy.de.po
deleted file mode 100644
index 3a3e089..0000000
--- a/modules/content_copy/translations/modules-content_copy.de.po
+++ /dev/null
@@ -1,137 +0,0 @@
-# $Id: modules-content_copy.de.po,v 1.2.2.8 2008/11/05 12:24:00 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2008-11-05 12:54+0100\n"
-"PO-Revision-Date: 2008-11-05 13:17+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/content_copy/content_copy_export_form.tpl.php:9
-#: modules/content_copy/content_copy.module:187;38
-msgid "Export"
-msgstr "Exportieren"
-
-#: modules/content_copy/content_copy.module:97
-msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
-msgstr "Dieses Formular verarbeitet einen Inhaltstyp, ein oder mehrere Felder von diesem Typ und exportiert die Einstellungen. Der von diesem Prozess erstellte Export kann kopiert und als Import in die Aktuelle oder jede andere Datenbank eingefügt werden. Der Import wird die Felder zu einem vorhandenen Inhaltstyp hinzufügen oder einen neuen Inhaltstyp mit den ausgewählten Feldern erstellen."
-
-#: modules/content_copy/content_copy.module:103
-msgid "Types"
-msgstr "Typen"
-
-#: modules/content_copy/content_copy.module:107
-msgid "Select the content type to export."
-msgstr "Wählen Sie einen Inhaltstyp für den Export."
-
-#: modules/content_copy/content_copy.module:171
-msgid "Export data"
-msgstr "Daten exportieren"
-
-#: modules/content_copy/content_copy.module:176
-msgid "Copy the export text and paste it into another content type using the import function."
-msgstr "Kopieren Sie den exportierten Text und fügen Sie ihn mit der Importfunktion in einen anderen Inhaltstyp ein."
-
-#: modules/content_copy/content_copy.module:180
-msgid "Content types"
-msgstr "Inhaltstypen"
-
-#: modules/content_copy/content_copy.module:299
-msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
-msgstr "Dieses Formular wird Felddefinitionen importieren, die von einem anderen Inhaltstyp oder anderen Datenbank exportiert wurden.<br />Dabei ist zu beachten, dass die Felder nicht innerhalb des gleichen Inhalttyps dupliziert werden können, deshalb werden importierte Felder nur hinzugefügt, wenn diese im ausgewählten Typ noch nicht vorhanden sind."
-
-#: modules/content_copy/content_copy.module:302
-msgid "<Create>"
-msgstr "<Erstellen>"
-
-#: modules/content_copy/content_copy.module:304
-msgid "Content type"
-msgstr "Inhaltstyp"
-
-#: modules/content_copy/content_copy.module:305
-msgid "Select the content type to import these fields into.<br/>Select &lt;Create&gt; to create a new content type to contain the fields."
-msgstr "Wählen Sie den Inhaltstyp zum Aufnehmen der importierten Felder aus.<br/>Wählen Sie &ltErstellen&gt; zum Erstellen eines neuen Inhaltstyps für die zu importierenden Felder."
-
-#: modules/content_copy/content_copy.module:310
-msgid "Import data"
-msgstr "Daten importieren"
-
-#: modules/content_copy/content_copy.module:312
-msgid "Paste the text created by a content export into this field."
-msgstr "Fügen Sie den Text aus einem Inhaltsexport in dieses Feld ein."
-
-#: modules/content_copy/content_copy.module:316;46
-msgid "Import"
-msgstr "Importieren"
-
-# "vorgeladen" sounds strange
-#: modules/content_copy/content_copy.module:324
-#, fuzzy
-msgid "A file has been pre-loaded for import."
-msgstr "Eine Datei wurde für den Import vorgeladen."
-
-#: modules/content_copy/content_copy.module:350
-msgid "The import data is not valid import text."
-msgstr "Die importierten Daten sind kein gültiger Importtext."
-
-#: modules/content_copy/content_copy.module:399
-msgid "The following modules must be enabled for this import to work: %modules."
-msgstr "Die folgenden Module müssen eingeschaltet sein, damit dieser Import erfolgreich durchgeführt werden kann: %modules."
-
-#: modules/content_copy/content_copy.module:407
-msgid "The content type %type already exists in this database."
-msgstr "Der Inhaltstyp %type existiert bereits in dieser Datenbank."
-
-#: modules/content_copy/content_copy.module:414
-msgid "Exiting. No import performed."
-msgstr "Abbruch. Kein Import durchgeführt."
-
-#: modules/content_copy/content_copy.module:438
-msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
-msgstr "Beim Hinzufügen des Inhaltstyps %type trat ein Fehler auf.<br/>Bitte überprüfen Sie die angezeigten Fehler für weitere Details."
-
-#: modules/content_copy/content_copy.module:463
-msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
-msgstr "Das importierte Feld %field_label (%field_name) wurde nicht zu %type hinzugefügt, weil dieses Feld bereits in %type existiert."
-
-#: modules/content_copy/content_copy.module:472
-msgid "The field %field_label (%field_name) was added to the content type %type."
-msgstr "Das Feld %field_label (%field_name) wurde zu dem Inhaltstyp %type hinzugefügt."
-
-#: modules/content_copy/content_copy.module:553
-msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
-msgstr "Beim Exportieren der ‚Anzeige-Einstellungs‘-Daten für das Feld %field_name ist ein Fehler aufgetreten.<br />Der DB-Fehler ist: ‚%db_err‘."
-
-#: modules/content_copy/content_copy.module:0
-msgid "content_copy"
-msgstr "Inhaltskopie"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Content Copy"
-msgstr "Inhaltskopie"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr "Aktiviert die Möglichkeit zum Importieren und Exportieren von Felddefinitionen."
-
diff --git a/modules/content_copy/translations/modules-content_copy.fr.po b/modules/content_copy/translations/modules-content_copy.fr.po
deleted file mode 100644
index 6c54ab5..0000000
--- a/modules/content_copy/translations/modules-content_copy.fr.po
+++ /dev/null
@@ -1,177 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:52+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/content_copy/content_copy.module:80
-msgid ""
-"This form will process a content type and one or more fields from that type "
-"and export the settings. The export created by this process can be copied "
-"and pasted as an import into the current or any other database. The import "
-"will add the fields to into an existing content type or create a new content "
-"type that includes the selected fields."
-msgstr ""
-"Ce formulaire traitera un type de contenu et un ou plusieurs champs de ce "
-"type, pour en exporter les paramètres. Le code d'export ainsi généré peut "
-"être copié et collé dans la page d'import, vers la base de données courante "
-"ou vers une autre base de données. L'opération d'import ajoutera les champs "
-"à un type de contenu existant ou créera un nouveau type de contenu intégrant "
-"les champs sélectionnés."
-
-#: modules/content_copy/content_copy.module:86
-msgid "Types"
-msgstr "Types"
-
-#: modules/content_copy/content_copy.module:90
-msgid "Select the content type to export."
-msgstr "Sélectionner le type de contenu à exporter."
-
-#: modules/content_copy/content_copy.module:115
-msgid "Groups"
-msgstr "Groupes"
-
-#: modules/content_copy/content_copy.module:119
-msgid "Select the group definitions to export from %type."
-msgstr "Sélectionnez les définitions de groupes à exporter depuis '%type'."
-
-#: modules/content_copy/content_copy.module:129
-msgid "Select the field definitions to export from %type."
-msgstr "Sélectionnez les définitions de champs à exporter depuis '%type'."
-
-#: modules/content_copy/content_copy.module:139
-msgid "Export data"
-msgstr "Données exportée"
-
-#: modules/content_copy/content_copy.module:144
-msgid ""
-"Copy the export text and paste it into another content type using the import "
-"function."
-msgstr ""
-"Copiez le texte exporté et collez-le dans le type de contenu de votre choix, "
-"à l'aide de la fonction d'import."
-
-#: modules/content_copy/content_copy.module:154;38
-msgid "Export"
-msgstr "Exporter"
-
-#: modules/content_copy/content_copy.module:227
-msgid ""
-"This form will import field definitions exported from another content type "
-"or another database.<br/>Note that fields cannot be duplicated within the "
-"same content type, so imported fields will be added only if they do not "
-"already exist in the selected type."
-msgstr ""
-"Ce formulaire permet d'importer les définitions de champs exportées depuis "
-"un autre type de contenu ou depuis une autre base de données.<br/>Notez que "
-"les champs ne peuvent être dupliqués au sein d'un même type de contenu : les "
-"champs importés ne peuvent donc être ajoutés que s'ils n'existent pas encore "
-"dans le type sélectionné."
-
-#: modules/content_copy/content_copy.module:230
-msgid "<Create>"
-msgstr "<Créer>"
-
-#: modules/content_copy/content_copy.module:232
-msgid "Content type"
-msgstr "Type de contenu"
-
-#: modules/content_copy/content_copy.module:233
-msgid ""
-"Select the content type to import these fields into.<br/>Select &lt;"
-"Create&gt; to create a new content type to contain the fields."
-msgstr ""
-"Choisissez le type de contenu vers lequel vous voulez importer ces champs."
-"<br/>Sélectionnez &lt;Create&gt; pour créer un nouveau type de contenu "
-"comportant ces champs."
-
-#: modules/content_copy/content_copy.module:238
-msgid "Import data"
-msgstr "Données à importer"
-
-#: modules/content_copy/content_copy.module:240
-msgid "Paste the text created by a content export into this field."
-msgstr "Collez dans ce champ le texte créé par un export de contenu."
-
-#: modules/content_copy/content_copy.module:244;46
-msgid "Import"
-msgstr "Importer"
-
-#: modules/content_copy/content_copy.module:270
-msgid "The import data is not valid import text."
-msgstr "Les données d'import ne sont valides."
-
-#: modules/content_copy/content_copy.module:318
-msgid ""
-"The following modules must be enabled for this import to work: %modules."
-msgstr ""
-"Les modules suivants doivent être activés pour que l'import fonctionne : '%"
-"modules'."
-
-#: modules/content_copy/content_copy.module:324;338
-msgid "<create>"
-msgstr "<créer>"
-
-#: modules/content_copy/content_copy.module:326
-msgid "The content type %type already exists in this database."
-msgstr "Le type de contenu '%type' existe déjà dans cette base de données."
-
-#: modules/content_copy/content_copy.module:333
-msgid "Exiting. No import performed."
-msgstr "Abandon. L'import n'a pas été réalisé."
-
-#: modules/content_copy/content_copy.module:355
-msgid ""
-"An error has occurred adding the content type %type.<br/>Please check the "
-"errors displayed for more details."
-msgstr ""
-"Une erreur s'est produite à l'ajout du type de contenu '%type'.<br/"
-">Consultez les erreurs affichées à l'écran pour plus de détails."
-
-#: modules/content_copy/content_copy.module:380
-msgid ""
-"The imported field %field_label (%field_name) was not added to %type because "
-"that field already exists in %type."
-msgstr ""
-"Le champ importé '%field_label' (%field_name) n'a pas été ajouté à '%type' "
-"car ce champ existe déjà."
-
-#: modules/content_copy/content_copy.module:389
-msgid ""
-"The field %field_label (%field_name) was added to the content type %type."
-msgstr ""
-"Le champ importé '%field_label' (%field_name) a été ajouté au type de "
-"contenu '%type'."
-
-#: modules/content_copy/content_copy.module:503
-msgid ""
-"An error occurred when exporting the 'display settings' data for the field %"
-"field_name.<br/>The db error is: '%db_err'."
-msgstr ""
-"Une erreur s'est produite à l'export des données 'paramètres d'affichage' "
-"pour le champ '%field_name'.<br/>L'erreur renvoyée par la base de données "
-"est : '%db_err'."
-
-#: modules/content_copy/content_copy.module:0
-msgid "content_copy"
-msgstr "content_copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Content Copy"
-msgstr "Content Copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr "Permet d'importer et d'exporter des définitions de champs."
diff --git a/modules/content_copy/translations/modules-content_copy.hu.po b/modules/content_copy/translations/modules-content_copy.hu.po
deleted file mode 100644
index 12c9d4a..0000000
--- a/modules/content_copy/translations/modules-content_copy.hu.po
+++ /dev/null
@@ -1,193 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# content_copy.module,v 1.27.2.13 2008/10/08 12:55:54 karens
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 11:48-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/content_copy/content_copy.module:262,46
-msgid "Import"
-msgstr "Import"
-
-#: modules/content_copy/content_copy.module:139,38
-msgid "Export"
-msgstr "Export"
-
-#: modules/content_copy/content_copy.module:132
-msgid "Content types"
-msgstr "Tartalom típusok"
-
-#: modules/content_copy/content_copy.module:100
-msgid "Groups"
-msgstr "Csoportok"
-
-#: modules/content_copy/content_copy.module:250
-msgid "Content type"
-msgstr "Tartalomtípus"
-
-#: modules/content_copy/content_copy.module:85
-msgid "Types"
-msgstr "Típusok"
-
-#: modules/content_copy/content_copy.module:80
-msgid ""
-"This form will process a content type and one or more fields from that "
-"type and export the settings. The export created by this process can "
-"be copied and pasted as an import into the current or any other "
-"database. The import will add the fields to into an existing content "
-"type or create a new content type that includes the selected fields."
-msgstr ""
-"Ez az űrlap készíti el a tartalomtípus és a típusból egy vagy "
-"több mező beállításainak exportálását. A folyamat által "
-"készített exportot lehet lemásolni és mint importot beilleszteni "
-"az aktuális, vagy bármely más adatbázisba. Az import hozzá fogja "
-"adni a mezőket egy létező tartalom típushoz, vagy létre fog hozni "
-"egy új tartalomtípust, mely tartalmazni fogja a kiválasztott "
-"mezőket."
-
-#: modules/content_copy/content_copy.module:89
-msgid "Select the content type to export."
-msgstr "Tartalomtípus kiválasztása az exporthoz."
-
-#: modules/content_copy/content_copy.module:104
-msgid "Select the group definitions to export from %type."
-msgstr ""
-"Csoport meghatározások kiválasztása az exporthoz a következő "
-"tartalomtípusból: %type."
-
-#: modules/content_copy/content_copy.module:114
-msgid "Select the field definitions to export from %type."
-msgstr ""
-"Mező meghatározások kiválasztása az exporthoz a következő "
-"tartalom típusból: %type."
-
-#: modules/content_copy/content_copy.module:123
-msgid "Export data"
-msgstr "Adatok exportálása"
-
-#: modules/content_copy/content_copy.module:128
-msgid ""
-"Copy the export text and paste it into another content type using the "
-"import function."
-msgstr ""
-"Az export által előállított szöveget át lehet másolni egy "
-"másik tartalomtípusba az import művelet segítségével."
-
-#: modules/content_copy/content_copy.module:245
-msgid ""
-"This form will import field definitions exported from another content "
-"type or another database.<br/>Note that fields cannot be duplicated "
-"within the same content type, so imported fields will be added only if "
-"they do not already exist in the selected type."
-msgstr ""
-"Ez az űrlap importálja a mező meghatározásokat, melyek egy másik "
-"tartalom típusból, vagy egy másik adatbázisból lettek "
-"exportálva.<br/>Megjegyzés: Egy tartalom típuson belül a mezőket "
-"nem lehet többszörözni, így csak azok a mezők lesznek hozzáadva, "
-"melyek még nem szerepelnek a kiválasztott tartalom típusban."
-
-#: modules/content_copy/content_copy.module:248
-msgid "<Create>"
-msgstr "<Létrehozás>"
-
-#: modules/content_copy/content_copy.module:251
-msgid ""
-"Select the content type to import these fields into.<br/>Select "
-"&lt;Create&gt; to create a new content type to contain the fields."
-msgstr ""
-"Tartalom típus kiválasztása a mezők importálásához.<br/>A "
-"&lt;Létrehozás&gt; segítségével új tartalom típus jön létre, "
-"mely tartalmazni fogja a mezőket."
-
-#: modules/content_copy/content_copy.module:256
-msgid "Import data"
-msgstr "Adatok importálása"
-
-#: modules/content_copy/content_copy.module:258
-msgid "Paste the text created by a content export into this field."
-msgstr ""
-"A tartalom exportnál keletkezett szöveget kell ebbe a mezőbe "
-"illeszteni."
-
-#: modules/content_copy/content_copy.module:270
-msgid "A file has been pre-loaded for import."
-msgstr "A fájl előzetesen be lett töltve az importhoz."
-
-#: modules/content_copy/content_copy.module:296
-msgid "The import data is not valid import text."
-msgstr "Az adat nem értelmezhető import szövegként."
-
-#: modules/content_copy/content_copy.module:344
-msgid ""
-"The following modules must be enabled for this import to work: "
-"%modules."
-msgstr ""
-"A következő modulokat engedélyezni kell, hogy ez az import "
-"működjön: %modules."
-
-#: modules/content_copy/content_copy.module:352
-msgid "The content type %type already exists in this database."
-msgstr "%type tartalomtípus már szerepel az adatbázisban."
-
-#: modules/content_copy/content_copy.module:359
-msgid "Exiting. No import performed."
-msgstr "Kilépés. Az importálás nem lett végrehajtva."
-
-#: modules/content_copy/content_copy.module:383
-msgid ""
-"An error has occurred adding the content type %type.<br/>Please check "
-"the errors displayed for more details."
-msgstr ""
-"Hiba történt a következő tartalomtípus hozzáadása közben: "
-"%type.<br />További részletek a megjelenített hibaüzenetekben."
-
-#: modules/content_copy/content_copy.module:409
-msgid ""
-"The imported field %field_label (%field_name) was not added to %type "
-"because that field already exists in %type."
-msgstr ""
-"%field_label (%field_name) mező már létezik, ezért az import "
-"során nem lett hozzáadva a következő tartalomtípushoz: %type."
-
-#: modules/content_copy/content_copy.module:418
-msgid ""
-"The field %field_label (%field_name) was added to the content type "
-"%type."
-msgstr ""
-"%field_label (%field_name) mező hozzá lett adva a következő "
-"tartalomtípushoz: %type."
-
-#: modules/content_copy/content_copy.module:532
-msgid ""
-"An error occurred when exporting the 'display settings' data for the "
-"field %field_name.<br/>The db error is: '%db_err'."
-msgstr ""
-"%field_name mező „Megjelenítési beállítás” adatainak "
-"exportálása közben egy hiba keletkezett. <br />Az adatbázis hiba: "
-"„%db_err”."
-
-#: modules/content_copy/content_copy.module:0
-msgid "content_copy"
-msgstr "content_copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Content Copy"
-msgstr "Content Copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr ""
-"Lehetővé teszi a meződefiníciók importálását és "
-"exportálását."
-
diff --git a/modules/content_copy/translations/modules-content_copy.nl.po b/modules/content_copy/translations/modules-content_copy.nl.po
deleted file mode 100644
index 05e483f..0000000
--- a/modules/content_copy/translations/modules-content_copy.nl.po
+++ /dev/null
@@ -1,146 +0,0 @@
-# $Id: modules-content_copy.nl.po,v 1.1.2.1 2009/06/03 20:31:09 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:25+0200\n"
-"PO-Revision-Date: 2009-06-03 14:27+0100\n"
-"Last-Translator: L.B. Cohn <lichai@999games.nl>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: content_copy_export_form.tpl.php:9
-#: content_copy.module:191;38
-msgid "Export"
-msgstr "Exporteren"
-
-#: content_copy_export_form.tpl.php:10
-msgid "Label"
-msgstr "Label"
-
-#: content_copy_export_form.tpl.php:11
-msgid "Name"
-msgstr "Naam"
-
-#: content_copy_export_form.tpl.php:12
-msgid "Type"
-msgstr "Type"
-
-#: content_copy.module:97
-msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
-msgstr "Dit formulier zal een inhoudstype en één of meerdere velden van dat type exporteren. Dit kan worden gekopieerd en geplakt in deze of een andere database. Importeren zal deze velden aan een bestanden inhoudstype toevoegen of een nieuw inhoudstype maken met de geselecteerde velden."
-
-#: content_copy.module:103
-msgid "Types"
-msgstr "Typen"
-
-#: content_copy.module:107
-msgid "Select the content type to export."
-msgstr "Selecteer de inhoudstypes om te exporteren"
-
-#: content_copy.module:175
-msgid "Export data"
-msgstr "Exporteer data"
-
-#: content_copy.module:180
-msgid "Copy the export text and paste it into another content type using the import function."
-msgstr "Kopieer de geexporteerde tekst en plak het in een ander inhoudstype of gebruik de importeerfunctie."
-
-#: content_copy.module:184
-msgid "Content types"
-msgstr "Inhoudstypen"
-
-#: content_copy.module:251
-msgid "Save field settings"
-msgstr "Veldinstellingen indienen"
-
-#: content_copy.module:303
-msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
-msgstr "Dit formulier zal veldinformatie importeren die zijn geexporteerd uit een ander inhoudstype of database.<br />Merk op dat velden niet kunnen worden gedupliceerd in hetzelfde inhoudstype, dus geimporteerde velden zullen alleen worden toegevoegd als ze nog niet bestaan in het geselecteerde inhoudstype."
-
-#: content_copy.module:306
-msgid "<Create>"
-msgstr "<Maak>"
-
-#: content_copy.module:308
-msgid "Content type"
-msgstr "Inhoudstype"
-
-#: content_copy.module:309
-msgid "Select the content type to import these fields into.<br/>Select &lt;Create&gt; to create a new content type to contain the fields."
-msgstr "Selecteer het inhoudstype waarin deze velden moeten worden geimporteerd.<br />Selecteer &lt;Maak&gt; om een nieuw inhoudstype te maken waarin de velden komen."
-
-#: content_copy.module:314
-msgid "Import data"
-msgstr "Importeer data"
-
-#: content_copy.module:316
-msgid "Paste the text created by a content export into this field."
-msgstr "Plak de tekst die is geexporteerd in dit veld."
-
-#: content_copy.module:320;46
-msgid "Import"
-msgstr "Importeren"
-
-#: content_copy.module:328
-msgid "A file has been pre-loaded for import."
-msgstr "Een bestand is voorgeladen voor het importeren."
-
-#: content_copy.module:354
-msgid "The import data is not valid import text."
-msgstr "De geimporteerde data is geen valide importeertekst."
-
-#: content_copy.module:403
-msgid "The following modules must be enabled for this import to work: %modules."
-msgstr "De volgende modules moeten worden aangezet om te kunnen importeren: %modules."
-
-#: content_copy.module:411
-msgid "The content type %type already exists in this database."
-msgstr "Het inhoudstype %type bestaat al in de database."
-
-#: content_copy.module:418
-msgid "Exiting. No import performed."
-msgstr "Gestopt, er is niks geimporteerd."
-
-#: content_copy.module:442
-msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
-msgstr "Er is een fout opgetreden tijden het toevoegen van het inhoudstype %type.<br />Bekijk de foutmeldingen voor meer informatie."
-
-#: content_copy.module:467
-msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
-msgstr "Het geimporteerde veld %field_label (%field_name) is niet toegevoegd aan %type omdat het veld al bestaat in %type."
-
-#: content_copy.module:476
-msgid "The field %field_label (%field_name) was added to the content type %type."
-msgstr "Het veld %field_label (%field_name) is toegevoegd aan het inhoudstype %type."
-
-#: content_copy.module:581
-msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
-msgstr "Er is een fout opgetreden tijdens het exporteren van de weergaveinstellingendata voor het veld %field_name.<br />De databasefoutmelding is: '%db_err'."
-
-#: content_copy.module:0
-msgid "content_copy"
-msgstr "content_copy"
-
-#: content_copy.info:0
-msgid "Content Copy"
-msgstr "Kopieer inhoud"
-
-#: content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr "Laat velddefinities geimporteerd en geexporteerd worden."
-
-#: content_copy.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/content_copy/translations/modules-content_copy.pot b/modules/content_copy/translations/modules-content_copy.pot
deleted file mode 100644
index 2c34f57..0000000
--- a/modules/content_copy/translations/modules-content_copy.pot
+++ /dev/null
@@ -1,126 +0,0 @@
-# $Id: modules-content_copy.pot,v 1.1.2.11 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-content_copy)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/content_copy/content_copy_export_form.tpl.php:9 modules/content_copy/content_copy.module:191;38
-msgid "Export"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:97
-msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:103
-msgid "Types"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:107
-msgid "Select the content type to export."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:175
-msgid "Export data"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:180
-msgid "Copy the export text and paste it into another content type using the import function."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:184
-msgid "Content types"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:303
-msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:306
-msgid "<Create>"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:308
-msgid "Content type"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:309
-msgid "Select the content type to import these fields into.<br/>Select &lt;Create&gt; to create a new content type to contain the fields."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:314
-msgid "Import data"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:316
-msgid "Paste the text created by a content export into this field."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:320;46
-msgid "Import"
-msgstr ""
-
-#: modules/content_copy/content_copy.module:328
-msgid "A file has been pre-loaded for import."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:354
-msgid "The import data is not valid import text."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:403
-msgid "The following modules must be enabled for this import to work: %modules."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:411
-msgid "The content type %type already exists in this database."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:418
-msgid "Exiting. No import performed."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:442
-msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:467
-msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:476
-msgid "The field %field_label (%field_name) was added to the content type %type."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:581
-msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
-msgstr ""
-
-#: modules/content_copy/content_copy.module:0
-msgid "content_copy"
-msgstr ""
-
-#: modules/content_copy/content_copy.info:0
-msgid "Content Copy"
-msgstr ""
-
-#: modules/content_copy/content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr ""
-
diff --git a/modules/content_copy/translations/modules-content_copy.sv.po b/modules/content_copy/translations/modules-content_copy.sv.po
deleted file mode 100644
index 52b3369..0000000
--- a/modules/content_copy/translations/modules-content_copy.sv.po
+++ /dev/null
@@ -1,148 +0,0 @@
-# $Id: modules-content_copy.sv.po,v 1.1.2.1 2009/05/27 13:32:55 seals Exp $
-#
-# Swedish translation of Drupal (content_copy)
-# Generated from files:
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Content Copy 6.x\n"
-"POT-Creation-Date: 2009-05-27 12:42+0200\n"
-"PO-Revision-Date: 2009-05-27 13:04+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: content_copy_export_form.tpl.php:9
-#: content_copy.module:191;38
-msgid "Export"
-msgstr "Exportera"
-
-#: content_copy_export_form.tpl.php:10
-msgid "Label"
-msgstr "Etikett"
-
-#: content_copy_export_form.tpl.php:11
-msgid "Name"
-msgstr "Namn"
-
-#: content_copy_export_form.tpl.php:12
-msgid "Type"
-msgstr "Typ"
-
-#: content_copy.module:97
-msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
-msgstr "Detta formulär kommer att bearbeta en innehållstyp och ett eller flera fält från den typen och exportera inställningarna. Exporten skapad av denna bearbetning kan kopieras och klistras in som en import till den nuvarande, eller annan databas. Importen kommer att lägga till fält till den existerande innehållstypen eller skapa en ny innehållstyp som inkluderade valda fält."
-
-#: content_copy.module:103
-msgid "Types"
-msgstr "Typer"
-
-#: content_copy.module:107
-msgid "Select the content type to export."
-msgstr "Välj innehållstyp att exportera."
-
-#: content_copy.module:175
-msgid "Export data"
-msgstr "Exportera data"
-
-#: content_copy.module:180
-msgid "Copy the export text and paste it into another content type using the import function."
-msgstr "Kopiera den exporterade texten och klistra in den till en annan innehållstyp genom att använda funktionen för import."
-
-#: content_copy.module:184
-msgid "Content types"
-msgstr "Innehållstyper"
-
-#: content_copy.module:251
-msgid "Save field settings"
-msgstr "Spara inställningar för fält"
-
-#: content_copy.module:303
-msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
-msgstr "Detta formulär kommer att importera definitioner på fält exporterade från annan innehållstyp eller annan databas.<br />Observera att detta fält inte kan vara en dublett inom samma innehållstp, så importerade fält kommer enbart att läggas till om de inte redan existerar i den valda typen."
-
-#: content_copy.module:306
-msgid "<Create>"
-msgstr "<Skapa>"
-
-#: content_copy.module:308
-msgid "Content type"
-msgstr "Innehållstyp"
-
-#: content_copy.module:309
-msgid "Select the content type to import these fields into.<br/>Select &lt;Create&gt; to create a new content type to contain the fields."
-msgstr "Välj innehållstyp att importera dessa fält till.<br />Välj &lt;Skapa&gt; för att skapa en ny innehållstyp som skall innehålla fälten."
-
-#: content_copy.module:314
-msgid "Import data"
-msgstr "Importera data"
-
-#: content_copy.module:316
-msgid "Paste the text created by a content export into this field."
-msgstr "Klistra in texten skapad av en export av innehåll till detta fält."
-
-#: content_copy.module:320;46
-msgid "Import"
-msgstr "Importera"
-
-#: content_copy.module:328
-msgid "A file has been pre-loaded for import."
-msgstr "En fil har förladdats för import."
-
-#: content_copy.module:354
-msgid "The import data is not valid import text."
-msgstr "Det importerade datat är inte giltig text för import."
-
-#: content_copy.module:403
-msgid "The following modules must be enabled for this import to work: %modules."
-msgstr "Följande moduler måste aktiveras för att denna import skall fungera: %modules."
-
-#: content_copy.module:411
-msgid "The content type %type already exists in this database."
-msgstr "Innehållstypen %type finns redan i databasen."
-
-#: content_copy.module:418
-msgid "Exiting. No import performed."
-msgstr "Avslutar. Ingen import genomförd."
-
-#: content_copy.module:442
-msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
-msgstr "Ett fel inträffade när innehållstypen %type lades till.<br />Var vänlig se de visade felmeddelandena för mer detaljer."
-
-#: content_copy.module:467
-msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
-msgstr "Det importerade fältet %field_label (%field_name) lades inte till %type eftersom det fältet redan existerar i %type."
-
-#: content_copy.module:476
-msgid "The field %field_label (%field_name) was added to the content type %type."
-msgstr "Fältet %field_label (%field_name) lades till innehållstypen %type."
-
-#: content_copy.module:581
-msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
-msgstr "Ett fel inträffade "
-
-#: content_copy.module:0
-msgid "content_copy"
-msgstr "content_copy"
-
-#: content_copy.info:0
-msgid "Content Copy"
-msgstr "Kopiera innehåll"
-
-#: content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr "Aktiverar förmågan att importera/exportera definitioner av fält."
-
-#: content_copy.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/content_multigroup/README.txt b/modules/content_multigroup/README.txt
index 9d69ecf..5a45791 100644
--- a/modules/content_multigroup/README.txt
+++ b/modules/content_multigroup/README.txt
@@ -1,4 +1,99 @@
-; $Id: README.txt,v 1.1.2.4 2009/06/04 18:57:59 yched Exp $
-Ongoing work on the multigroup module has moved to the experimental
-CCK 3.0 branch.
+CONTENTS OF THIS FILE
+=====================
+- USING MULTIGROUPS
+- FIELDS AND WIDGETS THAT WORK IN MULTIGROUPS
+- VIEWS INTEGRATION
+- TROUBLESHOOTING
+
+
+USING MULTIGROUPS
+=================
+
+The Multigroup group treats all included fields like a single field, keeping
+the related delta values of all included fields synchronized.
+
+To use a Multigroup, create a new group, make it the 'Multigroup' type, set
+the number of multiple values for all the fields in the Multigroup, and drag
+into it the fields that should be included.
+
+All fields in the Multigroup will automatically get the group setting for
+multiple values. On the node form, the group is rearranged to keep the delta
+values for each field in a single drag 'n drop group, by transposing the
+normal array(group_name => field_name => delta => value) into
+array(group_name => delta => field_name => value).
+
+During validation and submission, the field values are restored to their
+normal positions.
+
+
+FIELDS AND WIDGETS THAT WORK IN MULTIGROUPS
+===========================================
+
+All fields that allow the Content module to handle their multiple values should
+work here. Fields that handle their own multiple values will not be allowed
+into Multigroups unless they implement hook_content_multigroup_allowed_widgets()
+to add their widgets to the allowed widget list. Example:
+
+ @code
+ function MODULE_content_multigroup_allowed_widgets() {
+ return array('WIDGET_NAME_1', 'WIDGET_NAME_2', ...);
+ }
+ @endcode
+
+All fields that allow the Content module to handle their multiple values
+should work correctly when a field placed on a Multigroup is moved off, to a
+normal field group, or to the top level of the form. Fields that handle their
+own multiple values which may store different results in Multigroup and
+standard groups should implement hook_content_multigroup_no_remove_widgets()
+to add their widgets to the list of widgets that cannot be removed from
+Multigroups. Example:
+
+ @code
+ function MODULE_content_multigroup_no_remove_widgets() {
+ return array('WIDGET_NAME_1', 'WIDGET_NAME_2', ...);
+ }
+ @endcode
+
+The Content Taxonomy module [1] is an example where it implements the previous
+hooks for a few widgets.
+
+[1] http://drupal.org/project/content_taxonomy
+
+If a simple array of widgets is not sufficient to test whether this action
+will work, modules can implement hook_content_multigroup_allowed_in()
+and hook_content_multigroup_allowed_out() to intervene. Both hooks should
+return an array as in the following example:
+
+ @code
+ function MODULE_content_multigroup_allowed_in() {
+ return array(
+ 'allowed' => FALSE,
+ 'message' => t('This change is not allowed. Reason here...'),
+ );
+ }
+ @endcode
+
+Custom code and modules that add fields to groups outside of the UI should
+use content_multigroup_allowed_in() and content_multigroup_allowed_out() to
+test whether fields are allowed in or out of a Multigroup. These functions
+can be located in content_multigroup.admin.inc.
+
+
+VIEWS INTEGRATION
+=================
+
+For each multigroup, there is a new filter under "Content multigroup" category
+in Views that provides a method to synchronize fields by delta.
+
+
+TROUBLESHOOTING
+===============
+
+The most likely cause of problems with field modules not working in multigroup
+is if they wipe out #element_validate with their own validation functions, or
+they hard-code assumptions into submit or validation processes that the form
+is structured in the usual field => delta => value order instead of allowing
+for the possibility of a different structure. See Nodereference for an example
+of a field that handles validation without making assumptions about the form
+structure.
diff --git a/modules/content_multigroup/content_multigroup.admin.inc b/modules/content_multigroup/content_multigroup.admin.inc
new file mode 100644
index 0000000..7e7ca58
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.admin.inc
@@ -0,0 +1,531 @@
+<?php
+
+/**
+ * @file
+ * Implementation of node type administration functions for content multigroup.
+ */
+
+/**
+ * Helper function to build the multiple values options for multigroups.
+ */
+function content_multigroup_multiple_values() {
+ return array(
+ //'' => t('N/A'),
+ 1 => t('Unlimited'),
+ 0 => 1) + drupal_map_assoc(range(2, 10));
+}
+
+/**
+ * Validation for creating/moving fields and groups on the
+ * Manage Fields screen.
+ */
+function content_multigroup_field_overview_form_validate($form, &$form_state) {
+ $form_values = $form_state['values'];
+ $type_name = $form['#type_name'];
+ $fields = array();
+ $groups = array();
+
+ $group = $form_values['_add_new_group'];
+ if (array_filter(array($group['label'], $group['group_name']))) {
+ $group['settings'] = field_group_default_settings($group['group_type']);
+ $validation = fieldgroup_validate_name($group, $form['#type_name']);
+
+ // If there's something wrong with the new group,
+ // don't bother doing any more validation, further
+ // processing will be stopped by the fieldgroup module.
+ if (!empty($validation['errors'])) {
+ return;
+ }
+ $group['group_name'] = $validation['group_name'];
+ $new_group_name = $group['group_name'];
+ $groups['_add_new_group'] = $group;
+ }
+
+ // See if we have fields moving into or out of a Multigroup.
+ // Set any fields to use the new name here so they will get processed
+ // correctly by the fieldgroup module when saved.
+ $group_rows = array();
+ foreach ($form_values as $key => $values) {
+ if ($values['parent'] == '_add_new_group') {
+ $values['parent'] = $new_group_name;
+ $form_values[$key] = $values;
+ }
+
+ if (!empty($form[$key]['#row_type']) && $form[$key]['#row_type'] == 'group') {
+ // Gather up info about all groups.
+ $group_name = $form_values[$key]['group']['group_name'];
+ $groups[$group_name] = $form_values[$key]['group'];
+ $group_rows[$group_name] = $group_name;
+ }
+ if (!empty($form[$key]['#row_type']) && $form[$key]['#row_type'] == 'field') {
+ if ($values['prev_parent'] != $values['parent']) {
+ // Gather up fields that have moved in or out of a group.
+ $fields[$key] = $form_values[$key]['field'];
+ }
+ }
+ }
+
+ $rebuild = FALSE;
+
+ // Test that a group was not moved into a multigroup, an invalid combination.
+ foreach ($groups as $key => $values) {
+ if (in_array($key, $group_rows)) {
+ $parent = $form_values[$key]['parent'];
+ $parent_info = !empty($parent) ? $form_values[$parent] : array();
+ if (!empty($parent) && $parent_info['group']['group_type'] == 'multigroup') {
+ $error_message = t('You cannot place any kind of group inside a multigroup. The group @name was moved back to where it started.', array('@name' => $key));
+ form_set_value($form[$key]['weight'], $form[$key]['weight']['#default_value'], $form_state);
+ form_set_value($form[$key]['parent'], $form[$key]['parent']['#default_value'], $form_state);
+ drupal_set_message($error_message, 'error');
+ }
+ }
+ }
+
+ // Synchronize the multiple value values for all fields in a group, they must be the same.
+ // Also ensure that fields moved into multigroups are fields that are allowed.
+ // In some cases, it may not be safe to move a field back out of a multigroup because
+ // it will behave differently elsewhere, so check that too.
+ foreach ($fields as $field_name => $field) {
+ $new_group = $form_values[$field_name]['parent'];
+ $old_group = $form_values[$field_name]['prev_parent'];
+ if (!empty($new_group) && isset($groups[$new_group]) && $groups[$new_group]['group_type'] == 'multigroup') {
+ $allowed_in = content_multigroup_allowed_in($field, $groups[$new_group]);
+ if (!$allowed_in['allowed']) {
+ form_set_error($field_name, $allowed_in['message']);
+ }
+ else {
+ if (!empty($allowed_in['message'])) {
+ drupal_set_message($allowed_in['message']);
+ }
+ module_load_include('inc', 'content', 'includes/content.crud');
+ $content_type = content_types($type_name);
+ $group_multiple = $groups[$new_group]['settings']['multigroup']['multiple'];
+ $multiple_values = content_multigroup_multiple_values();
+ $field = $content_type['fields'][$field_name];
+ $field['multiple'] = $group_multiple;
+ $field = content_field_instance_collapse($field);
+ content_field_instance_update($field, FALSE);
+ $rebuild = TRUE;
+ drupal_set_message(t('The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group.', array(
+ '%field' => $field['label'], '%multiple' => $multiple_values[$group_multiple], '%group' => $groups[$new_group]['label'])));
+ }
+ }
+ elseif (!empty($old_group) && isset($groups[$old_group]) && $groups[$old_group]['group_type'] == 'multigroup') {
+ $allowed_out = content_multigroup_allowed_out($field, $groups[$old_group]);
+ if (!$allowed_out['allowed']) {
+ form_set_error($field_name, $allowed_out['message']);
+ }
+ elseif (!empty($allowed_out['message'])) {
+ drupal_set_message($allowed_out['message']);
+ }
+ }
+ }
+
+ // Clear caches and rebuild menu only if any field has been updated.
+ if ($rebuild) {
+ content_clear_type_cache(TRUE);
+ menu_rebuild();
+ }
+}
+
+/**
+ * Helper function for deciding if a field is
+ * allowed into a Multigroup.
+ */
+function content_multigroup_allowed_in($field, $group) {
+ if ($group['group_type'] != 'multigroup') {
+ return array('allowed' => TRUE, 'message' => '');
+ }
+
+ // We can't allow fields with more multiple values than the group has
+ // to be moved into it.
+ $max_existing = content_max_delta($field['field_name']);
+ $group_multiple = $group['settings']['multigroup']['multiple'];
+ $multiple_values = content_multigroup_multiple_values();
+ if ($group_multiple != 1 && $max_existing > $group_multiple) {
+ return array(
+ 'allowed' => FALSE,
+ 'message' => t('This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data.', array('%field' => $field['widget']['label'], '%multiple' => $max_existing, '%group' => $group['label'], '%group_max' => $multiple_values[$group_multiple]))
+ );
+ }
+
+ // Fields that handle their own multiple values may not have the same values
+ // in Multigroup fields and normal fields. We don't know if they will work or not.
+
+ // Adding a hook here where widgets that handle their own multiple values
+ // that will work correctly in Multigroups can allow their fields in.
+
+ if (content_handle('widget', 'multiple values', $field) != CONTENT_HANDLE_CORE) {
+ $allowed_widgets = array(
+ 'optionwidgets_select',
+ 'optionwidgets_buttons',
+ 'optionwidgets_onoff',
+ 'nodereference_buttons',
+ 'nodereference_select',
+ 'userreference_buttons',
+ 'userreference_select',
+ );
+ $allowed_widgets = array_merge($allowed_widgets, module_invoke_all('content_multigroup_allowed_widgets'));
+ if (!in_array($field['widget']['type'], $allowed_widgets)) {
+ return array(
+ 'allowed' => FALSE,
+ 'message' => t('This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data.', array('%field' => $field['widget']['label']))
+ );
+ }
+ }
+
+ // Allow other modules to intervene.
+ // Any failure will prevent this action.
+ foreach (module_implements('content_multigroup_allowed_in') as $module) {
+ $function = $module .'_content_multigroup_allowed_in';
+ $result = $function($field, $group);
+ if ($result['allowed'] === FALSE) {
+ return array('allowed' => FALSE, 'message' => $result['message']);
+ }
+ }
+
+ $message = t('You are moving the field %field into a Multigroup.', array('%field' => $field['widget']['label']));
+ return array('allowed' => TRUE, 'message' => $message);
+}
+
+/**
+ * Helper function for deciding if a field is
+ * allowed out of a Multigroup.
+ */
+function content_multigroup_allowed_out($field, $group) {
+ if ($group['group_type'] != 'multigroup') {
+ return array('allowed' => TRUE, 'message' => '');
+ }
+ // Optionwidgets do not behave the same in a Multigroup field as out of it.
+ // In a Multigroup the same option can be selected multiple times,
+ // but that is not possible in a normal group.
+
+ // Adding a hook here where widgets that handle their own multiple values
+ // can indicate their fields should not be removed from Multigroups.
+
+ $max_existing = content_max_delta($field['field_name']);
+ $no_remove_widgets = array(
+ 'optionwidgets_select',
+ 'optionwidgets_buttons',
+ 'optionwidgets_onoff',
+ 'nodereference_buttons',
+ 'nodereference_select',
+ 'userreference_buttons',
+ 'userreference_select',
+ );
+ $no_remove_widgets = array_merge($no_remove_widgets, module_invoke_all('content_multigroup_no_remove_widgets'));
+ if (in_array($field['widget']['type'], $no_remove_widgets) && $max_existing > 0) {
+ return array(
+ 'allowed' => FALSE,
+ 'message' => t('This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data.', array('%field' => $field['widget']['label']))
+ );
+ }
+
+ // Allow other modules to intervene.
+ // Any failure will prevent this action.
+ foreach (module_implements('content_multigroup_allowed_out') as $module) {
+ $function = $module .'_content_multigroup_allowed_out';
+ $result = $function($field, $group);
+ if ($result['allowed'] === FALSE) {
+ return array('allowed' => FALSE, 'message' => $result['message']);
+ }
+ }
+
+ $message = t('You are moving the field %field out of a Multigroup.', array('%field' => $field['widget']['label']));
+ return array('allowed' => TRUE, 'message' => $message);
+}
+
+/**
+ * Alter the basic field settings form.
+ *
+ * It should not be possible to choose a widget type that is not compatible
+ * with multigroups.
+ */
+function content_multigroup_field_basic_form(&$form, &$form_state) {
+ $field_name = $form['basic']['field_name']['#value'];
+ $type_name = $form['type_name']['#value'];
+
+ // Ignore this field if it is not part of a field group.
+ if (!($group_name = fieldgroup_get_group($type_name, $field_name))) {
+ return;
+ }
+
+ // Retrieve information about the group the field is in.
+ $groups = fieldgroup_groups($type_name);
+ $group = $groups[$group_name];
+
+ // Ignore this field if it is not part of a multigroup.
+ if ($group['group_type'] != 'multigroup') {
+ return;
+ }
+
+ // Retrieve information about the field itself.
+ $field = content_fields($field_name, $type_name);
+
+ // Check if the widget can be moved out of the multigroup.
+ $allowed_out = content_multigroup_allowed_out($field, $group);
+ if (!$allowed_out['allowed']) {
+ $form['basic']['widget_type']['#disabled'] = TRUE;
+ $form['basic']['widget_type']['#suffix'] = '<div class="warning">'. t('The widget type cannot be changed because the field %field already has data created and this widget stores data differently in a Standard group than in a Multigroup. Allowing this change could result in the loss of data.', array('%field' => $field['widget']['label'])) .'</div>';
+ return;
+ }
+
+ // Remove from the list of available widgets those that are not
+ // compatible with multigroups.
+ $widget_types = _content_widget_types();
+ foreach (array_keys($form['basic']['widget_type']['#options']) as $widget_type) {
+ if ($field['widget']['type'] != $widget_type) {
+ $field_copy = $field;
+ $field_copy['widget']['type'] = $widget_type;
+ $field_copy['widget']['module'] = $widget_types[$widget_type]['module'];
+ $allowed_in = content_multigroup_allowed_in($field_copy, $group);
+ if (!$allowed_in['allowed']) {
+ unset($form['basic']['widget_type']['#options'][$widget_type]);
+ }
+ }
+ }
+}
+
+/**
+ * Alter the "Display fields" form.
+ *
+ * Add an additional selector for setting multigroup field display format.
+ */
+function content_multigroup_display_overview_form(&$form, &$form_state) {
+
+ $type_name = $form['#type_name'];
+ $contexts_selector = $form['#contexts'];
+
+ // Gather type information.
+ $content_type = content_types($type_name);
+
+ // The content module stops building the form if the type has no fields.
+ if (empty($content_type['fields'])) {
+ return;
+ }
+
+ $groups = array();
+ $groups = fieldgroup_groups($type_name);
+ $contexts = content_build_modes($contexts_selector);
+ $all_contexts = content_build_modes();
+
+ // Multigroups, extra values.
+ $label_options = array(
+ 'above' => t('Above'),
+ 'hidden' => t('<Hidden>'),
+ );
+ $options = array(
+ 'simple' => t('Simple'),
+ 'fieldset' => t('Fieldset'),
+ 'fieldset_collapsible' => t('Fieldset - collapsible'),
+ 'fieldset_collapsed' => t('Fieldset - collapsed'),
+ 'hr' => t('Horizontal line'),
+ 'table-single' => t('Table - Single column'),
+ 'table-multiple' => t('Table - Multiple columns'),
+ 'ul' => t('Unordered List'),
+ );
+ foreach ($groups as $group_name => $group) {
+ if ($group['group_type'] != 'multigroup') {
+ continue;
+ }
+ $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
+
+ $subgroup_name = $group_name .'_subgroup';
+ $form['#fields'] = array_merge(array($subgroup_name), $form['#fields']);
+ $form[$subgroup_name] = array(
+ 'human_name' => array('#value' => t('[Subgroup format]')),
+ 'weight' => array('#type' => 'value', '#value' => -20),
+ 'parent' => array('#type' => 'value', '#value' => $group_name),
+ 'subgroup' => array('#type' => 'value', '#value' => 1),
+ );
+ if ($contexts_selector == 'basic') {
+ $form[$subgroup_name]['label'] = array(
+ '#type' => 'select',
+ '#options' => $label_options,
+ '#default_value' => isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above',
+ );
+ }
+
+ // Allow a format selection for contexts on the current tab.
+ // Store other contexts as hidden values so they don't get lost.
+ foreach ($all_contexts as $key => $title) {
+ if (array_key_exists($key, $contexts)) {
+ $form[$subgroup_name][$key]['format'] = array(
+ '#type' => 'select',
+ '#options' => $options,
+ '#default_value' => isset($subgroup_settings[$key]['format']) ? $subgroup_settings[$key]['format'] : 'fieldset',
+ );
+ $form[$subgroup_name][$key]['exclude'] = array('#type' => 'value', '#value' => 0);
+ }
+ else {
+ $form[$subgroup_name][$key]['format'] = array(
+ '#type' => 'hidden',
+ '#value' => isset($subgroup_settings[$key]['format']) ? $subgroup_settings[$key]['format'] : 'fieldset',
+ );
+ $form[$subgroup_name][$key]['exclude'] = array('#type' => 'value', '#value' => 0);
+
+ }
+ }
+ }
+ $form['#submit'] = array_merge(array('content_multigroup_display_overview_form_submit'), $form['#submit']);
+}
+
+/**
+ * Submit handler for the display overview form.
+ *
+ * Do this in pre_save so we catch it before the content module
+ * tries to use our 'field'.
+ */
+function content_multigroup_display_overview_form_submit($form, &$form_state) {
+ $groups = fieldgroup_groups($form['#type_name']);
+ //$reset_cache = FALSE;
+ // Find any subgroups we inserted into the display fields form,
+ // save our settings, and remove them from $form_state.
+ foreach ($form_state['values'] as $key => $values) {
+ if (in_array($key, $form['#fields']) && !empty($values['parent']) && !empty($values['subgroup'])) {
+ $group_name = $values['parent'];
+ $group = $groups[$group_name];
+ unset($values['subgroup'], $values['parent']);
+
+ // We have some numeric keys here, so we can't use array_merge.
+ foreach ($values as $k => $v) {
+ $form_state['values'][$group_name]['settings']['multigroup']['subgroup'][$k] = $v;
+ }
+
+ // Remove the subgroup from $form_state.
+ unset($form_state['values'][$key]);
+ }
+ }
+}
+
+/**
+ * Alter the Fieldgroup edit form to add Multigroup settings.
+ */
+function content_multigroup_group_edit_form(&$form, &$form_state) {
+ $type_name = $form['#content_type']['type'];
+ $group_name = $form['group_name']['#default_value'];
+
+ $content_type = content_types($type_name);
+ $groups = fieldgroup_groups($type_name);
+ $group = $groups[$group_name];
+
+ if ($group['group_type'] != 'multigroup') {
+ return;
+ }
+
+ module_load_include('inc', 'content', 'includes/content.admin');
+ module_load_include('inc', 'content', 'includes/content.crud');
+ $form['group_type'] = array(
+ '#type' => 'hidden',
+ '#value' => $group['group_type'],
+ );
+ $form['settings']['multigroup'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Multigroup settings'),
+ '#collapsed' => FALSE,
+ '#collapsible' => TRUE,
+ );
+ if (isset($group['settings']['multigroup']['subgroup'])) {
+ // Preserve subgroup display settings.
+ $form['settings']['multigroup']['subgroup'] = array(
+ '#type' => 'value',
+ '#value' => $group['settings']['multigroup']['subgroup'],
+ );
+ }
+
+ $form['settings']['multigroup']['multiple-columns'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Multiple columns'),
+ '#default_value' => isset($group['settings']['multigroup']['multiple-columns']) ? $group['settings']['multigroup']['multiple-columns'] : 0,
+ '#description' => t('Enable this option to render each field on a separate column on the node edit form.'),
+ );
+
+ $form['settings']['multigroup']['required'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Required'),
+ '#default_value' => !empty($group['settings']['multigroup']['required']) ? $group['settings']['multigroup']['required'] : 0,
+ '#description' => t('Enable this option to require a minimum of one collection of fields in this Multigroup.'),
+ );
+
+ $description = t('Number of times to repeat the collection of Multigroup fields.') .' ';
+ $description .= t("'Unlimited' will provide an 'Add more' button so the users can add items as many times as they like.") .' ';
+ $description .= t('All fields in this group will automatically be set to allow this number of values.');
+
+ $group_multiple = isset($group['settings']['multigroup']['multiple']) ? $group['settings']['multigroup']['multiple'] : 1;
+ $form['settings']['multigroup']['multiple'] = array(
+ '#type' => 'select',
+ '#title' => t('Number of repeats'),
+ '#options' => content_multigroup_multiple_values(),
+ '#default_value' => $group_multiple,
+ '#description' => $description,
+ );
+
+ $form['settings']['multigroup']['labels'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Labels'),
+ '#description' => t("Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."),
+ );
+ if ($group_multiple < 2) {
+ $group_multiple = 0;
+ }
+ for ($i = 0; $i < 10; $i++) {
+ $form['settings']['multigroup']['labels'][$i] = array(
+ '#type' => 'textfield',
+ '#title' => t('Subgroup %number label', array('%number' => $i + 1)),
+ '#default_value' => isset($group['settings']['multigroup']['labels'][$i]) ? $group['settings']['multigroup']['labels'][$i] : '',
+ );
+ }
+
+ $form['#validate'][] = 'content_multigroup_group_edit_form_validate';
+ $form['#submit'][] = 'content_multigroup_group_edit_form_submit';
+}
+
+/**
+ * Validate the Fieldgroup edit form.
+ */
+function content_multigroup_group_edit_form_validate($form, &$form_state) {
+ $form_values = $form_state['values'];
+ $group_type = $form_values['group_type'];
+ if ($group_type != 'multigroup') {
+ return;
+ }
+ $content_type = $form['#content_type'];
+ $groups = fieldgroup_groups($content_type['type']);
+ $group = $groups[$form_values['group_name']];
+ foreach ($group['fields'] as $field_name => $data) {
+ // Make sure we don't set the multiple values to a number that
+ // would result in lost data.
+ $max_existing = content_max_delta($field_name);
+ if ($form_values['settings']['multigroup']['multiple'] != 1
+ && $max_existing > $form_values['settings']['multigroup']['multiple']) {
+ form_set_error('settings][multigroup][multiple', t('The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this.', array('%field' => $data['label'], '%multiple' => $max_existing)));
+ }
+ }
+}
+
+/**
+ * Submit the Fieldgroup edit form.
+ *
+ * Update multiple values of fields contained in Multigroups.
+ */
+function content_multigroup_group_edit_form_submit($form, &$form_state) {
+ $form_values = $form_state['values'];
+ $group_type = $form_values['group_type'];
+ if ($group_type != 'multigroup') {
+ return;
+ }
+ module_load_include('inc', 'content', 'includes/content.crud');
+ $content_type = $form['#content_type'];
+ $groups = fieldgroup_groups($content_type['type']);
+ $group = $groups[$form_values['group_name']];
+ $group_fields = array_intersect_key($content_type['fields'], $group['fields']);
+ if (!empty($group_fields)) {
+ foreach ($group_fields as $field_name => $field) {
+ $field['multiple'] = $form_values['settings']['multigroup']['multiple'];
+ $field = content_field_instance_collapse($field);
+ content_field_instance_update($field, FALSE);
+ }
+ content_clear_type_cache(TRUE);
+ menu_rebuild();
+ }
+}
diff --git a/modules/content_multigroup/content_multigroup.css b/modules/content_multigroup/content_multigroup.css
new file mode 100644
index 0000000..bd6f48a
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.css
@@ -0,0 +1,41 @@
+
+label.content-multigroup {
+ font-weight: bold;
+}
+
+/* Not styled by default, but available to style. */
+hr.content-multigroup {
+}
+
+/* Inline field labels visible within the context of multigroups. */
+.content-multigroup-wrapper .field .field-label-inline {
+ visibility: visible;
+}
+
+/**
+ * Hide field labels and description on the node edit form when the multiple
+ * columns option is enabled.
+ */
+.content-multigroup-edit-table-multiple-columns label,
+.content-multigroup-edit-table-multiple-columns .description {
+ display: none;
+}
+
+/* Hide field labels when using 'table-multiple' display mode. */
+.content-multigroup-display-table-multiple-columns .field .field-label,
+.content-multigroup-display-table-multiple-columns .field .field-label-inline,
+.content-multigroup-display-table-multiple-columns .field .field-label-inline-first {
+ display: none;
+}
+
+/* Display table with a row for each subgroup and all fields in a single column. */
+.content-multigroup-display-table-single-column .content-multigroup-wrapper {
+ clear: both;
+}
+.content-multigroup-display-table-single-column .content-multigroup-wrapper label.content-multigroup {
+ display: block;
+}
+.content-multigroup-display-table-single-column .content-multigroup-wrapper .field {
+ float: left;
+ margin-right: 1em;
+}
diff --git a/modules/content_multigroup/content_multigroup.info b/modules/content_multigroup/content_multigroup.info
new file mode 100644
index 0000000..c8daf65
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.info
@@ -0,0 +1,7 @@
+name = Content Multigroup
+description = Combine multiple CCK fields into repeating field collections that work in unison.
+dependencies[] = content
+dependencies[] = fieldgroup
+package = CCK
+core = 6.x
+
diff --git a/modules/content_multigroup/content_multigroup.install b/modules/content_multigroup/content_multigroup.install
new file mode 100644
index 0000000..9e12be3
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.install
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @file
+ * Module installation/uninstallation hooks.
+ */
+
+/**
+ * Implementation of hook_install().
+ *
+ * Notify content module when this module is installed.
+ */
+function content_multigroup_install() {
+ drupal_load('module', 'content');
+ content_notify('install', 'content_multigroup');
+}
+
+/**
+ * Implementation of hook_uninstall().
+ *
+ * Notify content module when this module is uninstalled.
+ */
+function content_multigroup_uninstall() {
+ drupal_load('module', 'content');
+ content_notify('uninstall', 'content_multigroup');
+}
+
+/**
+ * Implementation of hook_enable().
+ *
+ * Notify content module when this module is enabled.
+ */
+function content_multigroup_enable() {
+ drupal_load('module', 'content');
+ content_notify('enable', 'content_multigroup');
+}
+
+/**
+ * Implementation of hook_disable().
+ *
+ * Notify content module when this module is disabled.
+ */
+function content_multigroup_disable() {
+ drupal_load('module', 'content');
+ content_notify('disable', 'content_multigroup');
+}
diff --git a/modules/content_multigroup/content_multigroup.module b/modules/content_multigroup/content_multigroup.module
new file mode 100644
index 0000000..36513b3
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.module
@@ -0,0 +1,195 @@
+<?php
+
+/**
+ * @file
+ * Create complex, repeating groups of CCK fields that work in unison.
+ */
+
+function content_multigroup_help($path, $arg) {
+ switch ($path) {
+ case 'admin/help#content_multigroup':
+ return t('The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields.');
+ }
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function content_multigroup_views_api() {
+ return array(
+ 'api' => 2,
+ 'path' => drupal_get_path('module', 'content_multigroup') . '/views',
+ );
+}
+
+/**
+ * Implementation of hook_ctools_plugin_directory().
+ */
+function content_multigroup_ctools_plugin_directory($module, $plugin) {
+ if ($module == 'ctools' && $plugin == 'content_types') {
+ return 'panels/' . $plugin;
+ }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function content_multigroup_menu() {
+ $items = array();
+ // Callback for AHAH add more buttons.
+ $items['content_multigroup/js_add_more'] = array(
+ 'page callback' => 'content_multigroup_add_more_js',
+ 'access arguments' => array('access content'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'content_multigroup.node_form.inc',
+ );
+ return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function content_multigroup_theme() {
+ return array(
+ 'content_multigroup_node_form' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_form.inc',
+ ),
+ 'content_multigroup_node_label' => array(
+ 'arguments' => array('text' => NULL),
+ 'file' => 'content_multigroup.node_form.inc',
+ ),
+ 'content_multigroup_add_more_label' => array(
+ 'arguments' => array('group_name' => NULL),
+ 'file' => 'content_multigroup.node_form.inc',
+ ),
+ 'content_multigroup_display_simple' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ 'content_multigroup_display_fieldset' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ 'content_multigroup_display_hr' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ 'content_multigroup_display_table_single' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ 'content_multigroup_display_table_multiple' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ 'content_multigroup_display_ul' => array(
+ 'arguments' => array('element' => NULL),
+ 'file' => 'content_multigroup.node_view.inc',
+ ),
+ );
+}
+
+/**
+ * Implementation of hook_elements().
+ */
+function content_multigroup_elements() {
+ return array(
+ 'content_multigroup_display_fieldset' => array('#value' => NULL),
+ );
+}
+
+/**
+ * Implementation of hook_fieldgroup_types().
+ */
+function content_multigroup_fieldgroup_types() {
+ return array('multigroup' => t('Multigroup'));
+}
+
+/**
+ * Implementation of hook_fieldgroup_default_settings().
+ */
+function content_multigroup_fieldgroup_default_settings($group_type) {
+ if ($group_type == 'multigroup') {
+ module_load_include('inc', 'content', 'includes/content.admin');
+ $settings = array('multigroup' => array('multiple' => 1));
+ foreach (array_keys(content_build_modes()) as $key) {
+ $settings['display'][$key]['format'] = 'fieldset';
+ }
+ return $settings;
+ }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function content_multigroup_form_alter(&$form, $form_state, $form_id) {
+ if ($form_id == 'content_field_edit_form' && isset($form['widget'])) {
+ // If this is a field edit form and the field is in a Multigroup,
+ // override the multiple value settings.
+ $content_type = content_types($form['type_name']['#value']);
+ $groups = fieldgroup_groups($content_type['type']);
+ $group_name = _fieldgroup_field_get_group($content_type['type'], $form['field_name']['#value']);
+ $group = isset($groups[$group_name]) ? $groups[$group_name] : array();
+ if (!empty($group) && $group['group_type'] == 'multigroup') {
+ $form['field']['multiple']['#value'] = $group['settings']['multigroup']['multiple'];
+ $form['field']['multiple']['#access'] = FALSE;
+ }
+ }
+ elseif ($form_id == 'content_field_edit_form' && isset($form_state['change_basic'])) {
+ // This is the basic field settings form. It should not be possible to
+ // choose a widget type that is not compatible with multigroups.
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
+ content_multigroup_field_basic_form($form, $form_state);
+ }
+ elseif ($form_id == 'content_field_overview_form') {
+ // Validation for creating/moving fields and groups on the
+ // Manage Fields screen.
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
+ $form['#validate'][] = 'content_multigroup_field_overview_form_validate';
+ }
+ elseif ($form_id == 'content_display_overview_form' && !empty($form['#groups'])) {
+ // Add an additional selector for setting multigroup field display
+ // format to the Display Fields screen.
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
+ content_multigroup_display_overview_form($form, $form_state);
+ }
+ elseif ($form_id == 'fieldgroup_group_edit_form') {
+ // Alter the Fieldgroup edit form to add Multigroup settings.
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
+ content_multigroup_group_edit_form($form, $form_state);
+ }
+}
+
+/**
+ * After build callback for multigroups in node form.
+ *
+ * This proxy function is necessary to prevent from breaking AHAH handlers.
+ */
+function content_multigroup_node_form_after_build($form, &$form_state) {
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.node_form');
+ return _content_multigroup_node_form_after_build($form, $form_state);
+}
+
+/**
+ * Implementation of hook_fieldgroup_form().
+ */
+function content_multigroup_fieldgroup_form(&$form, &$form_state, $form_id, $group) {
+ $group_name = $group['group_name'];
+ if ($group['group_type'] == 'multigroup' && !empty($form[$group_name])) {
+ if (!isset($form[$group_name]['#access']) || $form[$group_name]['#access']) {
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.node_form');
+ _content_multigroup_fieldgroup_form($form, $form_state, $form_id, $group);
+ }
+ }
+}
+
+/**
+ * Implementation of hook_fieldgroup_view().
+ */
+function content_multigroup_fieldgroup_view(&$node, &$element, $group, $context) {
+ if ($group['group_type'] == 'multigroup') {
+ module_load_include('inc', 'content_multigroup', 'content_multigroup.node_view');
+ _content_multigroup_fieldgroup_view($node, $element, $group, $context);
+ }
+}
diff --git a/modules/content_multigroup/content_multigroup.node_form.inc b/modules/content_multigroup/content_multigroup.node_form.inc
new file mode 100644
index 0000000..fa4815d
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.node_form.inc
@@ -0,0 +1,983 @@
+<?php
+
+/**
+ * @file
+ * Implementation of node edit functions for content multigroup.
+ */
+
+/**
+ * Implementation of hook_fieldgroup_form().
+ *
+ * Align the delta values of each field in the Multigroup.
+ *
+ * Swap the field name and delta for each Multigroup so we can
+ * d-n-d each collection of fields as a single delta item.
+ */
+function _content_multigroup_fieldgroup_form(&$form, &$form_state, $form_id, $group) {
+ $node = $form['#node'];
+ $group_name = $group['group_name'];
+ $group_multiple = (int)$group['settings']['multigroup']['multiple'];
+ $content_type = content_types($group['type_name']);
+
+ // Build list of accessible fields in this group.
+ $group_fields = array();
+ foreach ($content_type['fields'] as $field_name => $field) {
+ if (isset($group['fields'][$field_name]) && isset($form[$group_name][$field_name])) {
+ if (!isset($form[$group_name][$field_name]['#access']) || $form[$group_name][$field_name]['#access']) {
+ $group_fields[$field_name] = $field;
+ }
+ }
+ }
+
+ // Quit if there are no field in the form for this group.
+ if (empty($group_fields)) {
+ return;
+ }
+
+ switch ($group_multiple) {
+ case 0:
+ $group_deltas = array(0);
+ $max_delta = 0;
+ break;
+
+ case 1:
+ // Compute unique deltas from all deltas used by fields in this multigroup.
+ $group_deltas = array();
+ $max_delta = -1;
+ foreach (array_keys($group_fields) as $field_name) {
+ if (!empty($node->$field_name) && is_array($node->$field_name)) {
+ foreach (array_keys($node->$field_name) as $delta) {
+ $group_deltas[$delta] = $delta;
+ }
+ sort($group_deltas);
+ $max_delta = max($max_delta, max($group_deltas));
+ }
+ }
+ $current_item_count = isset($form_state['item_count'][$group_name]) ? $form_state['item_count'][$group_name] : max(1, count($group_deltas));
+ while (count($group_deltas) < $current_item_count) {
+ $max_delta++;
+ $group_deltas[] = $max_delta;
+ }
+ break;
+
+ default:
+ $max_delta = $group_multiple - 1;
+ $group_deltas = range(0, $max_delta);
+ break;
+ }
+
+ $form[$group_name]['#theme'] = 'content_multigroup_node_form';
+ $form[$group_name]['#item_count'] = count($group_deltas);
+ $form[$group_name]['#type_name'] = $group['type_name'];
+ $form[$group_name]['#group_name'] = $group_name;
+ $form[$group_name]['#group_label'] = $group['label'];
+ $form[$group_name]['#group_fields'] = $group_fields;
+ $form[$group_name]['#tree'] = TRUE;
+ // Multigroups cannot be vertical tabs, don't let Vertical Tabs module try to do that.
+ $form[$group_name]['#group'] = FALSE;
+ if (!isset($form['#multigroups'])) {
+ $form['#multigroups'] = array();
+ }
+ $form['#multigroups'][$group_name] = $group_fields;
+
+ // Add a visual indication to the fieldgroup title if the multigroup is required.
+ if (!empty($group['settings']['multigroup']['required'])) {
+ $form[$group_name]['#title'] .= '&nbsp;<span class="form-required" title="'. t('This group requires one collection of fields minimum.') .'">*</span>';
+ }
+
+ // Attach our own after build handler to the form, used to fix posting data
+ // and the form structure, moving fields back to their original positions.
+ // That is, move them from group->delta->field back to field->delta.
+ if (!isset($form['#after_build'])) {
+ $form['#after_build'] = array();
+ }
+ if (!in_array('content_multigroup_node_form_after_build', $form['#after_build'])) {
+ array_unshift($form['#after_build'], 'content_multigroup_node_form_after_build');
+ }
+
+ // Attach our own validation handler to the form, used to check for empty fields.
+ if (!isset($form['#validate'])) {
+ $form['#validate'] = array();
+ }
+ if (!in_array('content_multigroup_node_form_validate', $form['#validate'])) {
+ array_unshift($form['#validate'], 'content_multigroup_node_form_validate');
+ }
+
+ $elements[$group_name] = array();
+ foreach ($group_deltas as $delta) {
+ $element = content_multigroup_group_form($form, $form_state, $group, $delta);
+ $elements[$group_name] = array_merge($elements[$group_name], $element[$group_name]);
+ }
+ $form[$group_name] = $elements[$group_name];
+
+ // Unset the original group field values now that we've moved them.
+ foreach (array_keys($group_fields) as $field_name) {
+ unset($form[$group_name][$field_name]);
+ }
+
+ // Disable required flag during FormAPI validation, except when building the
+ // form for an 'Add more values' request, then replace it in pre_render.
+ // To avoid re-creating this array of values over and over, create it once
+ // and store it as a form attribute.
+ $form['#multigroup_required_fields'] = array();
+ if (empty($form_state['multigroup_add_more'])) {
+ foreach ($form['#multigroups'] as $group_name => $group_fields) {
+ foreach ($group_fields as $field_name => $field) {
+ if ($field['required']) {
+ $form['#multigroup_required_fields'][$group_name][$field_name] = TRUE;
+ $form['#field_info'][$field_name]['required'] = FALSE;
+ }
+ }
+ }
+ if (!isset($form['#pre_render'])) {
+ $form['#pre_render'] = array();
+ }
+ if (!in_array('content_multigroup_node_form_pre_render', $form['#pre_render'])) {
+ array_unshift($form['#pre_render'], 'content_multigroup_node_form_pre_render');
+ }
+ }
+
+ if (($add_more = content_multigroup_add_more($form, $form_state, $group)) !== FALSE) {
+ $form[$group_name] += $add_more;
+ }
+}
+
+/**
+ * Create a new delta value for the group.
+ *
+ * Called in form_alter and by AHAH add more.
+ */
+function content_multigroup_group_form(&$form, &$form_state, $group, $delta) {
+ module_load_include('inc', 'content', 'includes/content.node_form');
+ $element = array();
+ $type_name = $group['type_name'];
+ $content_type = content_types($type_name);
+ $group_name = $group['group_name'];
+
+ if (!isset($form[$group_name])) {//nested AHAH, not initial build
+ $element[$group_name] = array_shift(content_get_nested_elements($form, $group_name));
+ }
+ else {//initial build (via content_multigroup_fieldgroup_form) or non-nested AHAH
+ $element[$group_name] = $form[$group_name];
+ }
+ if (($group['group_type'] != 'multigroup')
+ || (!(empty($element[$group['group_name']]['#access'])) && $element[$group['group_name']]['#access'] != TRUE)
+ || empty($element[$group['group_name']])) {
+ return;
+ }
+
+ $group_fields = $form['#multigroups'][$group_name];
+ $element[$group_name]['#fields'] = array_keys($group_fields);
+ $node = $form['#node'];
+ $group_multiple = $group['settings']['multigroup']['multiple'];
+
+ foreach ($group_fields as $field_name => $field) {
+ if (empty($element[$group_name][$delta])) {
+ $element[$group_name] += array($delta => array($field_name => array()));
+ }
+ else {
+ $element[$group_name][$delta][$field_name] = array();
+ }
+
+ $item_count = (isset($form_state['item_count'][$group_name]) ? $form_state['item_count'][$group_name] : $element[$group_name]['#item_count']);
+ $element[$group_name][$delta]['_weight'] = array(
+ '#type' => 'weight',
+ '#delta' => $item_count, // this 'delta' is the 'weight' element's property
+ '#default_value' => $delta,
+ '#weight' => 100,
+ );
+
+ // Add a checkbox to allow users remove a single delta subgroup.
+ // See content_set_empty() and theme_content_multigroup_node_form().
+ if ($group_multiple == 1) {
+ $element[$group_name][$delta]['_remove'] = array(
+ '#type' => 'checkbox',
+ '#attributes' => array('class' => 'content-multiple-remove-checkbox'),
+ '#default_value' => isset($form_state['multigroup_removed'][$group_name][$delta]) ? $form_state['multigroup_removed'][$group_name][$delta] : 0,
+ );
+ }
+
+ // Make each field into a pseudo single value field
+ // with the right delta value.
+ $field['multiple'] = 0;
+
+ $form['#field_info'][$field_name] = $field;
+ $node_copy = drupal_clone($node);
+
+ // Set the form '#node' to the delta value we want so the Content
+ // module will feed the right $items to the field module in
+ // content_field_form().
+
+ // There may be missing delta values for fields that were
+ // never created, so check first.
+ if (!empty($node->$field_name) && isset($node->{$field_name}[$delta])) {
+ $node_copy->$field_name = array($delta => $node->{$field_name}[$delta]);
+ }
+ else {
+ $value = NULL;
+ // Try to obtain default values only if the node is being created.
+ if (!isset($node->nid) && content_callback('widget', 'default value', $field) != CONTENT_CALLBACK_NONE) {
+ // If a module wants to insert custom default values here,
+ // it should provide a hook_default_value() function to call,
+ // otherwise the content module's content_default_value() function
+ // will be used.
+ $callback = content_callback('widget', 'default value', $field) == CONTENT_CALLBACK_CUSTOM ? $field['widget']['module'] .'_default_value' : 'content_default_value';
+ if (function_exists($callback)) {
+ $items = $callback($form, $form_state, $field, 0);
+ $value = !empty($items) ? $items[0] : '';
+ }
+ }
+ $node_copy->$field_name = array($delta => $value);
+ }
+ $form['#node'] = $node_copy;
+
+ // Place the new element into the $delta position in the group form.
+ if (content_handle('widget', 'multiple values', $field) == CONTENT_HANDLE_CORE) {
+ $field_form = content_field_form($form, $form_state, $field, $delta);
+ $value = array_key_exists($delta, $field_form[$field_name]) ? $delta : 0;
+ $element[$group_name][$delta][$field_name] = $field_form[$field_name][$value];
+ }
+ else {
+ // When the form is submitted, get the element data from the form values.
+ if (isset($form_state['values'][$field_name])) {
+ $form_state_copy = $form_state;
+ if (isset($form_state_copy['values'][$field_name][$delta])) {
+ $form_state_copy['values'][$field_name] = array($delta => $form_state_copy['values'][$field_name][$delta]);
+ }
+ else {
+ $form_state_copy['values'][$field_name] = array($delta => NULL);
+ }
+ $field_form = content_field_form($form, $form_state_copy, $field, $delta);
+ }
+ else {
+ $field_form = content_field_form($form, $form_state, $field, $delta);
+ }
+
+ // Multiple value fields have an additional level in the array form that
+ // needs to get fixed in $form_state['values'].
+ if (!isset($field_form[$field_name]['#element_validate'])) {
+ $field_form[$field_name]['#element_validate'] = array();
+ }
+ $field_form[$field_name]['#element_validate'][] = 'content_multigroup_fix_multivalue_fields';
+
+ $element[$group_name][$delta][$field_name] = $field_form[$field_name];
+ }
+ $element[$group_name][$delta][$field_name]['#weight'] = $field['widget']['weight'];
+ }
+
+ // Reset the form '#node' back to its original value.
+ $form['#node'] = $node;
+
+ return $element;
+}
+
+/**
+ * Fix required flag during form rendering stage.
+ *
+ * Required fields should display the required star in the rendered form.
+ */
+function content_multigroup_node_form_pre_render(&$form) {
+ foreach ($form['#multigroups'] as $group_name => $group_fields) {
+ $required_fields = array_keys($form['#multigroup_required_fields'][$group_name]);
+ if (!empty($required_fields)) {
+ content_multigroup_node_form_fix_required($form[$group_name], $required_fields, TRUE);
+ }
+ }
+ return $form;
+}
+
+/**
+ * Fix form and posting data when the form is submitted.
+ *
+ * FormAPI uses form_builder() during form processing to map incoming $_POST
+ * data to the proper elements in the form. It builds the '#parents' array,
+ * copies the $_POST array to the '#post' member of all form elements, and it
+ * also builds the $form_state['values'] array. Then the '#after_build' hook is
+ * invoked to allow custom processing of the form structure, and that happens
+ * just before validation and submit handlers are executed.
+ *
+ * During hook_form_alter(), the multigroup module altered the form structure
+ * moving elements from field->delta to multigroup->delta->field position,
+ * which is what has been processed by FormAPI to build the form structures,
+ * but field validation (and submit) handlers expect their data to be located
+ * in their original positions.
+ *
+ * We now need to move the fields back to their original positions in the form,
+ * and we need to do so without altering the form rendering process, which is
+ * now reflecting the structure the multigroup is interested in. We just need
+ * to fix the parts of the form that affect validation and submit processing.
+ */
+function _content_multigroup_node_form_after_build($form, &$form_state) {
+ // Disable required flag during FormAPI validation, except when building the
+ // form for an 'Add more values' request.
+ $required = !empty($form_state['multigroup_add_more']);
+ foreach ($form['#multigroups'] as $group_name => $group_fields) {
+ $required_fields = array_keys($form['#multigroup_required_fields'][$group_name]);
+ if (!empty($required_fields)) {
+ content_multigroup_node_form_fix_required($form[$group_name], $required_fields, $required);
+ }
+ }
+
+
+ if ($form_state['submitted']) {
+ // Fix value positions in $form_state for the fields in multigroups.
+ foreach (array_keys($form['#multigroups']) as $group_name) {
+ content_multigroup_node_form_transpose_elements($form, $form_state, $form['#node']->type, $group_name);
+ }
+
+ // Fix form element parents for all fields in multigroups.
+ content_multigroup_node_form_fix_parents($form, $form['#multigroups']);
+
+ // Update posting data to reflect delta changes in the form structure.
+ if (!empty($_POST)) {
+ content_multigroup_node_form_fix_post($form);
+ }
+ }
+
+ return $form;
+}
+
+/**
+ * Fix required flag for required fields.
+ *
+ * We need to let the user enter an empty set of fields for a delta subgroup,
+ * even if it contains required fields, which is equivalent to say a subgroup
+ * should be ignored, not to be stored into the database.
+ * So, we need to check for required fields, but only for non-empty subgroups.
+ *
+ * When the form is processed for rendering, the required flag is enabled for
+ * all required fields, so the user can see what's required and what's not.
+ *
+ * When the form is processed for validation, the required flag is disabled,
+ * so that FormAPI does not report errors for empty fields.
+ *
+ * @see content_multigroup_node_form_validate().
+ */
+function content_multigroup_node_form_fix_required(&$elements, $required_fields, $required) {
+ foreach (element_children($elements) as $key) {
+ if (isset($elements[$key]) && $elements[$key]) {
+ if (count($elements[$key]['#parents']) >= 3 && in_array($elements[$key]['#parents'][2], $required_fields) && isset($elements[$key]['#required'])) {
+ $elements[$key]['#required'] = $required;
+ // Required option lists do not have an empty option available. Add one to avoid 'An illegal choice has been detected' errors.
+ if (!$required && !empty($elements[$key]['#options']) && substr($elements[$key]['#id'], -7) != '_weight') {
+ $empty = array('' => '');
+ $elements[$key]['#options'] = $empty + $elements[$key]['#options'];
+ }
+ }
+
+ // Recurse through all children elements.
+ content_multigroup_node_form_fix_required($elements[$key], $required_fields, $required);
+ }
+ }
+}
+
+/**
+ * Node form validation handler.
+ *
+ * Perform validation for empty fields ignoring subgroups flagged for removal.
+ * Note that FormAPI validation for required fields is disabled because we need
+ * to accept empty fields that are flagged for removal.
+ */
+function content_multigroup_node_form_validate($form, &$form_state) {
+ $type_name = $form['#node']->type;
+ $groups = fieldgroup_groups($type_name);
+
+ foreach ($form['#multigroups'] as $group_name => $group_fields) {
+ $group = $groups[$group_name];
+ $group_required = isset($group['settings']['multigroup']['required']) ? $group['settings']['multigroup']['required'] : 0;
+
+ $non_empty_subgroups = $non_removed_subgroups = $required_field_errors = array();
+ foreach ($group_fields as $field_name => $field) {
+ // Tell the content module that it is not needed to enforce requirement
+ // of fields in this multigroup because we are doing it here.
+ // See content_multiple_value_nodeapi_validate().
+ $form_state['values']['_content_ignore_required_fields'][$field_name] = TRUE;
+
+ foreach ($form_state['values'][$field_name] as $delta => $item) {
+ // Keep track of the highest delta value for this group.
+ $max_delta = $delta;
+
+ // Ignore subgroups flagged for removal.
+ if ($form_state['multigroup_removed'][$group_name][$delta]) {
+ continue;
+ }
+ // Keep track of non-removed subgroups.
+ $non_removed_subgroups[$delta] = TRUE;
+
+ $is_empty_function = $field['module'] .'_content_is_empty';
+ if ($is_empty_function($form_state['values'][$field_name][$delta], $field)) {
+ // Ignore fields that are not required.
+ if (!$field['required']) {
+ continue;
+ }
+
+ // Build an error message for this field in this subgroup, but do
+ // not flag it, yet.
+ if (!empty($item['_error_element'])) {
+ // Here we don't know the number of elements and subelements a
+ // widget could have added to the form, so we need to extract
+ // components from the top, where we have group/delta/field, and
+ // then push back field/delta on top of the list.
+ $error_element = explode('][', $item['_error_element']);
+ array_shift($error_element);
+ array_shift($error_element);
+ array_shift($error_element);
+ array_unshift($error_element, $field_name, $delta);
+ $error_element = implode('][', $error_element);
+ }
+ else {
+ // Imagefield does not use error_element, sets error on the field.
+ // Are there others that need different treatment?
+ $error_element = $field_name;
+ }
+ $required_field_errors[$delta][$field_name] = array(
+ 'element' => $error_element,
+ 'message' => t('!name field is required in group @group.', array(
+ '!name' => $form[$group_name][$delta][$field_name]['#title'],
+ '@group' => t($group['label']),
+ )),
+ );
+ }
+ else {
+ $non_empty_subgroups[$delta] = TRUE;
+ }
+ }
+ }
+
+ // Required multigroups require at least one non-empty subgroup of fields.
+ if ($group_required && empty($non_empty_subgroups)) {
+ form_set_error('', t('Group @name requires one collection of fields minimum.', array('@name' => t($group['label']))));
+ continue;
+ }
+
+ // Force remove any empty groups so they will collapse.
+ // Don't flag errors on empty groups.
+ for ($delta = 0; $delta <= $max_delta; $delta++) {
+ if (!isset($non_empty_subgroups[$delta]) && isset($non_removed_subgroups[$delta])) {
+ unset($non_removed_subgroups[$delta]);
+ $form_state['multigroup_removed'][$group_name][$delta] = TRUE;
+ foreach ($group_fields as $field_name => $item) {
+ $form_state['values'][$field_name][$delta]['_remove'] = TRUE;
+ }
+ if (isset($required_field_errors[$delta])) {
+ unset($required_field_errors[$delta]);
+ }
+ }
+ }
+
+ // Ok, now we can flag errors for all required fields that have not been
+ // filled in when they should.
+ foreach ($required_field_errors as $delta => $error_list) {
+ foreach ($error_list as $field_name => $error_info) {
+ form_set_error($error_info['element'], $error_info['message']);
+ }
+ }
+ }
+}
+
+/**
+ * Transpose element positions in $form_state for the fields in a multigroup.
+ */
+function content_multigroup_node_form_transpose_elements(&$form, &$form_state, $type_name, $group_name) {
+ $groups = fieldgroup_groups($type_name);
+ $group = $groups[$group_name];
+ $group_fields = $form['#multigroups'][$group_name];
+
+ // Save the remove state of multigroup items in the $form_state array.
+ if (!isset($form_state['multigroup_removed'])) {
+ $form_state['multigroup_removed'] = array();
+ }
+ if (!isset($form_state['multigroup_removed'][$group_name])) {
+ $form_state['multigroup_removed'][$group_name] = array();
+ }
+
+ // Move group data from group->delta->field to field->delta.
+ $group_data = array();
+ foreach ($form_state['values'][$group_name] as $delta => $items) {
+ // Skip 'add more' button.
+ if (!is_array($items) || !isset($items['_weight'])) {
+ continue;
+ }
+ foreach ($group_fields as $field_name => $field) {
+ if (!isset($group_data[$field_name])) {
+ $group_data[$field_name] = array();
+ }
+ // Get field weight and remove state from the group and keep track of the
+ // current delta for each field item.
+ $item_defaults = array(
+ '_weight' => $items['_weight'],
+ '_remove' => $items['_remove'],
+ '_old_delta' => $delta,
+ );
+ $group_data[$field_name][$delta] = (is_array($items[$field_name]) ? array_merge($items[$field_name], $item_defaults) : $item_defaults);
+ // Store the remove state and the element weight in the form element as
+ // well, so we can restore them later.
+ // See content_multigroup_fix_multivalue_fields().
+ // See content_multigroup_fix_element_values().
+ $form[$group_name][$delta][$field_name]['#_weight'] = $items['_weight'];
+ $form[$group_name][$delta][$field_name]['#removed'] = $items['_remove'];
+
+ // Insert an element valitation callback of our own at the end of the
+ // list to ensure the drag'n'drop weight of the element is not lost by
+ // a form_set_value() operation made by the validation callback of the
+ // widget element.
+ if (!isset($form[$group_name][$delta][$field_name]['#element_validate'])) {
+ $form[$group_name][$delta][$field_name]['#element_validate'] = array();
+ }
+ $form[$group_name][$delta][$field_name]['#element_validate'][] = 'content_multigroup_fix_element_values';
+ }
+ $form_state['multigroup_removed'][$group_name][$delta] = $items['_remove'];
+ }
+
+ $form_group_sorted = FALSE;
+ foreach ($group_data as $field_name => $items) {
+
+ // Sort field items according to drag-n-drop reordering. Deltas are also
+ // rebuilt to start counting from 0 to n. Note that since all fields in the
+ // group share the same weight, their deltas remain in sync.
+ usort($items, '_content_sort_items_helper');
+
+ // Now we need to apply the same ordering to the form elements. Also,
+ // note that deltas have changed during the sort operation, so we need
+ // to reflect this delta conversion in the form.
+ if (!$form_group_sorted) {
+ $form_group_items = array();
+ $form_deltas = array();
+ foreach ($items as $new_delta => $item) {
+ $form_deltas[$item['_old_delta']] = $new_delta;
+ $form_group_items[$new_delta] = $form[$group_name][$item['_old_delta']];
+ unset($form[$group_name][$item['_old_delta']]);
+ }
+ foreach ($form_group_items as $new_delta => $form_group_item) {
+ $form[$group_name][$new_delta] = $form_group_item;
+ }
+ content_multigroup_node_form_fix_deltas($form[$group_name], $form_deltas);
+ $form_group_sorted = TRUE;
+ }
+
+ // Get rid of the old delta value.
+ foreach (array_keys($items) as $delta) {
+ unset($items[$delta]['_old_delta']);
+ }
+
+ // Fix field and delta positions in the $_POST array.
+ if (!empty($_POST)) {
+ $_POST[$field_name] = array();
+ foreach ($items as $new_delta => $item) {
+ $_POST[$field_name][$new_delta] = $item;
+ }
+ if (isset($_POST[$group_name])) {
+ unset($_POST[$group_name]);
+ }
+ }
+
+ // Move field items back to their original positions.
+ $form_state['values'][$field_name] = $items;
+ }
+
+ // Finally, get rid of the group data in form values.
+ unset($form_state['values'][$group_name]);
+}
+
+/**
+ * Fix deltas for all affected form elements.
+ */
+function content_multigroup_node_form_fix_deltas(&$elements, $form_deltas) {
+ foreach (element_children($elements) as $key) {
+ if (isset($elements[$key]) && $elements[$key] && substr($key, -9) != '_add_more') {
+
+ // Fix the second item, the delta value, of the element's '#parents' array.
+ $elements[$key]['#parents'][1] = $form_deltas[$elements[$key]['#parents'][1]];
+
+ // If present, fix delta value in '#delta' attribute of the element.
+ if (isset($elements[$key]['#delta']) && isset($form_deltas[$elements[$key]['#delta']])) {
+ $elements[$key]['#delta'] = $form_deltas[$elements[$key]['#delta']];
+ }
+
+ // Recurse through all children elements.
+ content_multigroup_node_form_fix_deltas($elements[$key], $form_deltas);
+ }
+ }
+}
+
+/**
+ * Fix form element parents for all fields in multigroups.
+ *
+ * The $element['#parents'] array needs to reflect the position of the fields
+ * in the $form_state['values'] array so that form_set_value() can be safely
+ * used by field validation handlers.
+ */
+function content_multigroup_node_form_fix_parents(&$elements, $multigroups) {
+ foreach (element_children($elements) as $key) {
+ if (isset($elements[$key]) && $elements[$key]) {
+
+ // Check if the current element is child of a multigroup. The #parents
+ // array for field values has, at least, 3 parent elements, being the
+ // first one the name of a multigroup.
+ if (count($elements[$key]['#parents']) >= 3 && isset($multigroups[$elements[$key]['#parents'][0]])) {
+
+ // Extract group name, delta and field name from the #parents array.
+ array_shift($elements[$key]['#parents']);
+ $delta = array_shift($elements[$key]['#parents']);
+ $field_name = array_shift($elements[$key]['#parents']);
+
+ // Now, insert field name and delta to the #parents array.
+ array_unshift($elements[$key]['#parents'], $field_name, $delta);
+ }
+
+ // Recurse through all children elements.
+ content_multigroup_node_form_fix_parents($elements[$key], $multigroups);
+ }
+ }
+}
+
+/**
+ * Update posting data to reflect delta changes in the form structure.
+ *
+ * The $_POST array is fixed in content_multigroup_node_form_transpose_elements().
+ */
+function content_multigroup_node_form_fix_post(&$elements) {
+ foreach (element_children($elements) as $key) {
+ if (isset($elements[$key]) && $elements[$key]) {
+
+ // Update the element copy of the $_POST array.
+ $elements[$key]['#post'] = $_POST;
+
+ // Recurse through all children elements.
+ content_multigroup_node_form_fix_post($elements[$key]);
+ }
+ }
+
+ // Update the form copy of the $_POST array.
+ $elements['#post'] = $_POST;
+}
+
+/**
+ * Make sure the '_weight' and '_remove' attributes of the element exist.
+ *
+ * @see content_multigroup_node_form_transpose_elements()
+ */
+function content_multigroup_fix_element_values($element, &$form_state) {
+ $field_name = $element['#field_name'];
+ $delta = $element['#delta'];
+ if (!isset($form_state['values'][$field_name][$delta]['_weight']) || !isset($form_state['values'][$field_name][$delta]['_remove'])) {
+ $value = array('_weight' => $element['#_weight'], '_remove' => $element['#removed']);
+ if (isset($form_state['values'][$field_name][$delta]) && is_array($form_state['values'][$field_name][$delta])) {
+ $value = array_merge($form_state['values'][$field_name][$delta], $value);
+ }
+ form_set_value($element, $value, $form_state);
+ }
+}
+
+/**
+ * Fix the value for fields that deal with multiple values themselves.
+ */
+function content_multigroup_fix_multivalue_fields($element, &$form_state) {
+ $field_name = $element['#field_name'];
+ $delta = $element['#delta'];
+ if (isset($form_state['values'][$field_name][$delta][0]) && is_array($form_state['values'][$field_name][$delta][0])) {
+ $value = array_merge($form_state['values'][$field_name][$delta][0], array('_remove' => $element['#removed']));
+ }
+ else {
+ $value = array('_remove' => $element['#removed']);
+ }
+ form_set_value($element, $value, $form_state);
+}
+
+/**
+ * Add AHAH add more button, if not working with a programmed form.
+ */
+function content_multigroup_add_more(&$form, &$form_state, $group) {
+ $group_multiple = $group['settings']['multigroup']['multiple'];
+ if ($group_multiple != 1 || !empty($form['#programmed'])) {
+ return FALSE;
+ }
+
+ // Make sure the form is cached so ahah can work.
+ $form['#cache'] = TRUE;
+ $content_type = content_types($group['type_name']);
+ $group_name = $group['group_name'];
+ $group_name_css = str_replace('_', '-', $group_name);
+
+ $form_element = array();
+ $form_element[$group_name .'_add_more'] = array(
+ '#type' => 'submit',
+ '#name' => $group_name .'_add_more',
+ '#value' => theme('content_multigroup_add_more_label', $group_name),
+ '#weight' => $group_multiple + 1,
+ '#submit' => array('content_multigroup_add_more_submit'),
+ '#ahah' => array(
+ 'path' => 'content_multigroup/js_add_more/'. $content_type['url_str'] .'/'. $group_name,
+ 'wrapper' => $group_name_css .'-items',
+ 'method' => 'replace',
+ 'effect' => 'fade',
+ ),
+ // When JS is disabled, the content_multigroup_add_more_submit handler will
+ // find the relevant group information using these entries.
+ '#group_name' => $group_name,
+ '#type_name' => $group['type_name'],
+ '#item_count' => $form[$group_name]['#item_count'],
+ );
+
+ // Add wrappers for the group and 'more' button.
+ $form_element['#prefix'] = '<div id="'. $group_name_css .'-items">';
+ $form_element['#suffix'] = '</div>';
+ $form_element[$group_name .'_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
+ $form_element[$group_name .'_add_more']['#suffix'] = '</div>';
+
+ return $form_element;
+}
+
+/**
+ * Submit handler to add more choices to a content form. This handler is used when
+ * JavaScript is not available. It makes changes to the form state and the
+ * entire form is rebuilt during the page reload.
+ */
+function content_multigroup_add_more_submit($form, &$form_state) {
+ // Set the form to rebuild and run submit handlers.
+ node_form_submit_build_node($form, $form_state);
+ $group_name = $form_state['clicked_button']['#group_name'];
+ $type_name = $form_state['clicked_button']['#type_name'];
+
+ // Make the changes we want to the form state.
+ if (isset($form_state['clicked_button']['#item_count'])) {
+ $form_state['item_count'][$group_name] = $form_state['clicked_button']['#item_count'] + 1;
+ }
+}
+
+/**
+ * Menu callback for AHAH addition of new empty widgets.
+ *
+ * Adapted from content_add_more_js to work with groups instead of fields.
+ */
+function content_multigroup_add_more_js($type_name_url, $group_name) {
+ $content_type = content_types($type_name_url);
+ $groups = fieldgroup_groups($content_type['type']);
+ $group = $groups[$group_name];
+
+ if (($group['settings']['multigroup']['multiple'] != 1) || empty($_POST['form_build_id'])) {
+ // Invalid request.
+ drupal_json(array('data' => ''));
+ exit;
+ }
+
+ // Retrieve the cached form.
+ $form_state = array('submitted' => FALSE);
+ $form_build_id = $_POST['form_build_id'];
+ $form = form_get_cache($form_build_id, $form_state);
+ if (!$form) {
+ // Invalid form_build_id.
+ drupal_json(array('data' => ''));
+ exit;
+ }
+
+ // We don't simply return a new empty widget to append to existing ones, because
+ // - ahah.js won't simply let us add a new row to a table
+ // - attaching the 'draggable' behavior won't be easy
+ // So we resort to rebuilding the whole table of widgets including the existing ones,
+ // which makes us jump through a few hoops.
+
+ // The form that we get from the cache is unbuilt. We need to build it so that
+ // _value callbacks can be executed and $form_state['values'] populated.
+ // We only want to affect $form_state['values'], not the $form itself
+ // (built forms aren't supposed to enter the cache) nor the rest of $form_data,
+ // so we use copies of $form and $form_data.
+ $form_copy = $form;
+ $form_state_copy = $form_state;
+ $form_copy['#post'] = array();
+ form_builder($_POST['form_id'], $form_copy, $form_state_copy);
+ // Just grab the data we need.
+ $form_state['values'] = $form_state_copy['values'];
+ // Reset cached ids, so that they don't affect the actual form we output.
+ form_clean_id(NULL, TRUE);
+
+ // Sort the $form_state['values'] we just built *and* the incoming $_POST data
+ // according to d-n-d reordering.
+ unset($form_state['values'][$group_name][$group['group_name'] .'_add_more']);
+ foreach ($_POST[$group_name] as $delta => $item) {
+ $form_state['values'][$group_name][$delta]['_weight'] = $item['_weight'];
+ $form_state['values'][$group_name][$delta]['_remove'] = isset($item['_remove']) ? $item['_remove'] : 0;
+ }
+ $group['multiple'] = $group['settings']['multigroup']['multiple'];
+ $form_state['values'][$group_name] = _content_sort_items($group, $form_state['values'][$group_name]);
+ $_POST[$group_name] = _content_sort_items($group, $_POST[$group_name]);
+
+ // Build our new form element for the whole group, asking for one more element.
+ $delta = max(array_keys($_POST[$group_name])) + 1;
+ $form_state['item_count'] = array($group_name => count($_POST[$group_name]) + 1);
+ $form_element = content_multigroup_group_form($form, $form_state, $group, $delta);
+ // Rebuild weight deltas to make sure they all are equally dimensioned.
+ foreach ($form_element[$group_name] as $key => $item) {
+ if (is_numeric($key) && isset($item['_weight']) && is_array($item['_weight'])) {
+ $form_element[$group_name][$key]['_weight']['#delta'] = $delta;
+ }
+ }
+ // Add the new element at the right place in the (original, unbuilt) form.
+ $success = content_set_nested_elements($form, $group_name, $form_element[$group_name]);
+
+ // Save the new definition of the form.
+ $form_state['values'] = array();
+ form_set_cache($form_build_id, $form, $form_state);
+
+ // Build the new form against the incoming $_POST values so that we can
+ // render the new element.
+ $_POST[$group_name][$delta]['_weight'] = $delta;
+ $form_state = array('submitted' => FALSE, 'multigroup_add_more' => TRUE);
+ $form += array(
+ '#post' => $_POST,
+ '#programmed' => FALSE,
+ );
+ $form = form_builder($_POST['form_id'], $form, $form_state);
+
+ // Render the new output.
+ $group_form = array_shift(content_get_nested_elements($form, $group_name));
+
+ // We add a div around the new content to receive the ahah effect.
+ $group_form[$delta]['#prefix'] = '<div class="ahah-new-content">'. (isset($group_form[$delta]['#prefix']) ? $group_form[$delta]['#prefix'] : '');
+ $group_form[$delta]['#suffix'] = (isset($group_form[$delta]['#suffix']) ? $group_form[$delta]['#suffix'] : '') .'</div>';
+ // Prevent duplicate wrapper.
+ unset($group_form['#prefix'], $group_form['#suffix']);
+ // We're in the AHAH handler, so the fieldset was expanded.
+ $group_form['#collapsed'] = FALSE;
+
+ // If a newly inserted widget contains AHAH behaviors, they normally won't
+ // work because AHAH doesn't know about those - it just attaches to the exact
+ // form elements that were initially specified in the Drupal.settings object.
+ // The new ones didn't exist then, so we need to update Drupal.settings
+ // by ourselves in order to let AHAH know about those new form elements.
+ $javascript = drupal_add_js(NULL, NULL);
+ $output_js = isset($javascript['setting']) ? '<script type="text/javascript">jQuery.extend(Drupal.settings, '. drupal_to_js(call_user_func_array('array_merge_recursive', $javascript['setting'])) .');</script>' : '';
+
+ $output = theme('status_messages') . drupal_render($group_form) . $output_js;
+
+ // Using drupal_json() breaks filefield's file upload, because the jQuery
+ // Form plugin handles file uploads in a way that is not compatible with
+ // 'text/javascript' response type.
+ $GLOBALS['devel_shutdown'] = FALSE;
+ print drupal_to_js(array('status' => TRUE, 'data' => $output));
+ exit;
+}
+
+/**
+ * Theme an individual form element.
+ *
+ * Combine multiple values into a table with drag-n-drop reordering.
+ */
+function theme_content_multigroup_node_form($element) {
+ $group_name = $element['#group_name'];
+ $groups = fieldgroup_groups($element['#type_name']);
+ $group = $groups[$group_name];
+ $group_multiple = $group['settings']['multigroup']['multiple'];
+ $group_fields = $element['#group_fields'];
+
+ $table_id = $element['#group_name'] .'_values';
+ $table_class = 'content-multiple-table';
+ $order_class = $element['#group_name'] .'-delta-order';
+ $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
+ $show_label = isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above';
+ $subgroup_labels = isset($group['settings']['multigroup']['labels']) ? $group['settings']['multigroup']['labels'] : array();
+ $multiple_columns = isset($group['settings']['multigroup']['multiple-columns']) ? $group['settings']['multigroup']['multiple-columns'] : 0;
+
+ $headers = array();
+ if ($group_multiple >= 1) {
+ $headers[] = array('data' => '');
+ }
+ if ($multiple_columns) {
+ foreach ($group_fields as $field_name => $field) {
+ $required = !empty($field['required']) ? '&nbsp;<span class="form-required" title="'. t('This field is required.') .'">*</span>' : '';
+ $headers[] = array(
+ 'data' => check_plain(t($field['widget']['label'])) . $required,
+ 'class' => 'content-multigroup-cell-'. str_replace('_', '-', $field_name),
+ );
+ }
+ $table_class .= ' content-multigroup-edit-table-multiple-columns';
+ }
+ else {
+ if ($group_multiple >= 1) {
+ $headers[0]['colspan'] = 2;
+ }
+ $table_class .= ' content-multigroup-edit-table-single-column';
+ }
+ if ($group_multiple >= 1) {
+ $headers[] = array('data' => t('Order'), 'class' => 'content-multiple-weight-header');
+ if ($group_multiple == 1) {
+ $headers[] = array('data' => '<span>'. t('Remove') .'</span>', 'class' => 'content-multiple-remove-header');
+ }
+ }
+ $rows = array();
+
+ $i = 0;
+ foreach (element_children($element) as $delta => $key) {
+ if (is_numeric($key)) {
+ $cells = array();
+ $label = ($show_label == 'above' && !empty($subgroup_labels[$i]) ? theme('content_multigroup_node_label', check_plain(t($subgroup_labels[$i]))) : '');
+ $element[$key]['_weight']['#attributes']['class'] = $order_class;
+ if ($group_multiple >= 1) {
+ $cells[] = array('data' => '', 'class' => 'content-multiple-drag');
+ $delta_element = drupal_render($element[$key]['_weight']);
+ if ($group_multiple == 1) {
+ $remove_element = drupal_render($element[$key]['_remove']);
+ }
+ }
+ else {
+ $element[$key]['_weight']['#type'] = 'hidden';
+ }
+ if ($multiple_columns) {
+ foreach ($group_fields as $field_name => $field) {
+ $cell = array(
+ 'data' => (isset($element[$key][$field_name]) ? drupal_render($element[$key][$field_name]) : ''),
+ 'class' => 'content-multigroup-cell-'. str_replace('_', '-', $field_name),
+ );
+ if (!empty($cell['data']) && !empty($element[$key][$field_name]['#description'])) {
+ $cell['title'] = $element[$key][$field_name]['#description'];
+ }
+ $cells[] = $cell;
+ }
+ }
+ else {
+ $cells[] = $label . drupal_render($element[$key]);
+ }
+ if ($group_multiple >= 1) {
+ $row_class = 'draggable';
+ $cells[] = array('data' => $delta_element, 'class' => 'delta-order');
+ if ($group_multiple == 1) {
+ if (!empty($element[$key]['_remove']['#value'])) {
+ $row_class .= ' content-multiple-removed-row';
+ }
+ $cells[] = array('data' => $remove_element, 'class' => 'content-multiple-remove-cell');
+ }
+ $rows[] = array('data' => $cells, 'class' => $row_class);
+ }
+ else {
+ $rows[] = array('data' => $cells);
+ }
+ }
+ $i++;
+ }
+
+ drupal_add_css(drupal_get_path('module', 'content_multigroup') .'/content_multigroup.css');
+ $output = theme('table', $headers, $rows, array('id' => $table_id, 'class' => $table_class));
+ $output .= drupal_render($element[$group_name .'_add_more']);
+
+ // Enable drag-n-drop only if the group really allows multiple values.
+ if ($group_multiple >= 1) {
+ drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
+ drupal_add_js(drupal_get_path('module', 'content') .'/js/content.node_form.js');
+ }
+
+ return $output;
+}
+
+/**
+ * Theme the sub group label in the node form.
+ */
+function theme_content_multigroup_node_label($text) {
+ return !empty($text) ? '<h3>'. $text .'</h3>' : '';
+}
+
+/**
+ * Theme the label for the "Add more values" button
+ */
+function theme_content_multigroup_add_more_label($group_name) {
+ return t('Add more values');
+}
diff --git a/modules/content_multigroup/content_multigroup.node_view.inc b/modules/content_multigroup/content_multigroup.node_view.inc
new file mode 100644
index 0000000..5e3627c
--- /dev/null
+++ b/modules/content_multigroup/content_multigroup.node_view.inc
@@ -0,0 +1,262 @@
+<?php
+
+/**
+ * @file
+ * Implementation of node view functions for content multigroup.
+ */
+
+/**
+ * Implementation of hook_fieldgroup_view().
+ */
+function _content_multigroup_fieldgroup_view(&$node, &$element, $group, $context) {
+ drupal_add_css(drupal_get_path('module', 'content_multigroup') .'/content_multigroup.css');
+
+ $node_copy = drupal_clone($node);
+ $group_name = $group['group_name'];
+ $group_class = 'content-multigroup-'. str_replace('_', '-', $group_name);
+ $group_multiple = (int)$group['settings']['multigroup']['multiple'];
+ $subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
+ $show_label = isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above';
+ $subgroup_labels = isset($group['settings']['multigroup']['labels']) ? $group['settings']['multigroup']['labels'] : array();
+ $subgroup_format = isset($subgroup_settings[$context]['format']) ? $subgroup_settings[$context]['format'] : 'fieldset';
+ $content_type = content_types($group['type_name']);
+
+ // Build list of accessible fields in this group.
+ $group_fields = array();
+ foreach ($content_type['fields'] as $field_name => $field) {
+ if (isset($group['fields'][$field_name]) && isset($element[$field_name])) {
+ if (!isset($element[$field_name]['#access']) || $element[$field_name]['#access']) {
+ $group_fields[$field_name] = $field;
+ }
+ }
+ }
+
+ switch ($group_multiple) {
+ case 0:
+ $group_deltas = array(0);
+ break;
+
+ case 1:
+ // Compute unique deltas from all deltas used by fields in this multigroup.
+ $group_deltas = array();
+ foreach (array_keys($group_fields) as $field_name) {
+ if (is_array($node->content[$field_name]['field']['items'])) {
+ foreach (array_keys($node->content[$field_name]['field']['items']) as $delta) {
+ $group_deltas[$delta] = $delta;
+ }
+ }
+ }
+ sort($group_deltas);
+ break;
+
+ default:
+ $group_deltas = range(0, $group_multiple - 1);
+ break;
+ }
+ foreach ($group_deltas as $index => $delta) {
+ $element[$delta] = array(
+ '#title' => ($show_label == 'above' && !empty($subgroup_labels[$index]) ? check_plain(t($subgroup_labels[$index])) : ''),
+ '#attributes' => array('class' => 'content-multigroup-wrapper content-multigroup-'. $index),
+ '#weight' => $delta,
+ );
+
+ // Create a pseudo node that only has the value we want in this group and
+ // pass it to the formatter.
+
+ // @TODO Watch this change and be sure it doesn't break anything else.
+ // The delta was previously always set to '1' to keep CCK's inline label
+ // from assigning a class of 'first'. But changing it back to the right
+ // delta for the individual item makes the formatters easier to manage
+ // since the delta is always the correct delta and not occasionally
+ // a bogus value. It aslo fixes issues like http://drupal.org/node/766734
+ // by keeping the layout of multigroups the same as other fieldgroups.
+ foreach (array_keys($group_fields) as $field_name) {
+ if (isset($node->content[$field_name])) {
+ $node_copy->content[$field_name]['field']['items'] = array(
+ $delta => isset($node->content[$field_name]['field']['items'][$delta]) ? $node->content[$field_name]['field']['items'][$delta] : NULL,
+ );
+ $element[$delta][$field_name] = $node_copy->content[$field_name];
+ $element[$delta][$field_name]['#delta'] = $delta;
+ }
+ }
+
+ switch ($subgroup_format) {
+ case 'simple':
+ $element['#attributes']['class'] = $group_class;
+ $element[$delta]['#theme'] = 'content_multigroup_display_simple';
+ $element[$delta]['#fields'] = $group_fields;
+ break;
+ case 'fieldset_collapsed':
+ $element[$delta]['#collapsed'] = TRUE;
+ case 'fieldset_collapsible':
+ $element[$delta]['#collapsible'] = TRUE;
+ case 'fieldset':
+ $element['#attributes']['class'] = $group_class;
+ $element[$delta]['#type'] = 'content_multigroup_display_fieldset';
+ $element[$delta]['#fields'] = $group_fields;
+ break;
+ case 'hr':
+ $element['#attributes']['class'] = $group_class;
+ $element[$delta]['#theme'] = 'content_multigroup_display_hr';
+ $element[$delta]['#fields'] = $group_fields;
+ break;
+ case 'table-single':
+ $element['#theme'] = 'content_multigroup_display_table_single';
+ $element['#attributes']['class'] = $group_class .' content-multigroup-display-table-single-column';
+ $element['#fields'] = $group_fields;
+ break;
+ case 'table-multiple':
+ $element['#theme'] = 'content_multigroup_display_table_multiple';
+ $element['#attributes']['class'] = $group_class .' content-multigroup-display-table-multiple-columns';
+ $element['#fields'] = $group_fields;
+ break;
+ case 'ul':
+ $element['#theme'] = 'content_multigroup_display_ul';
+ $element['#attributes']['class'] = $group_class;
+ $element['#fields'] = $group_fields;
+ break;
+ }
+ }
+
+ // Unset the original group field values now that we've moved them.
+ foreach (array_keys($group_fields) as $field_name) {
+ if (isset($element[$field_name])) {
+ unset($element[$field_name]);
+ }
+ }
+}
+
+/**
+ * Theme a subgroup of fields in 'simple' format.
+ *
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_simple($element) {
+ $children = $output = '';
+ foreach (element_children($element) as $key) {
+ $children .= drupal_render($element[$key]);
+ }
+ if (!empty($children)) {
+ $output .= '<div'. drupal_attributes($element['#attributes']) .'>';
+ if (!empty($element['#title'])) {
+ $output .= '<label class="content-multigroup">'. $element['#title'] .':</label>';
+ }
+ $output .= $children .'</div>';
+ }
+ return $output;
+}
+
+/**
+ * Theme a subgroup of fields in 'fieldset' format.
+ *
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_fieldset($element) {
+ if (empty($element['#children']) && empty($element['#value'])) {
+ return '';
+ }
+ return theme('fieldset', $element);
+}
+
+/**
+ * Theme a subgroup of fields in 'hr' format.
+ *
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_hr($element) {
+ $children = $output = '';
+ foreach (element_children($element) as $key) {
+ $children .= drupal_render($element[$key]);
+ }
+ if (!empty($children)) {
+ $output .= '<div'. drupal_attributes($element['#attributes']) .'><hr class="content-multigroup" />';
+ if (!empty($element['#title'])) {
+ $output .= '<label class="content-multigroup">'. $element['#title'] .':</label>';
+ }
+ $output .= $children .'</div>';
+ }
+ return $output;
+}
+
+/**
+ * Theme a multigroup in 'table-single' format.
+ *
+ * Each subgroup has its own table row with a single cell for all fields.
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_table_single($element) {
+ $headers = array();
+ $rows = array();
+ foreach (element_children($element) as $delta) {
+ $items = array();
+ foreach ($element['#fields'] as $field_name => $field) {
+ $item = drupal_render($element[$delta][$field_name]);
+ if (!empty($item)) {
+ $items[] = $item;
+ }
+ }
+ if (!empty($items)) {
+ if (!empty($element[$delta]['#title'])) {
+ array_unshift($items, '<label class="content-multigroup">'. $element[$delta]['#title'] .':</label>');
+ }
+ $rows[] = array('data' => array(implode("\n", $items)), 'class' => $element[$delta]['#attributes']['class']);
+ }
+ }
+ return count($rows) ? theme('table', $headers, $rows, $element['#attributes']) : '';
+}
+
+/**
+ * Theme a multigroup in 'table-multiple' format.
+ *
+ * Each subgroup has its own table row with a separate cell for each field.
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_table_multiple($element) {
+ $headers = array();
+ foreach ($element['#fields'] as $field_name => $field) {
+ $label_display = isset($field['display_settings']['label']['format']) ? $field['display_settings']['label']['format'] : 'above';
+ $headers[] = array(
+ 'data' => ($label_display != 'hidden' ? check_plain(t($field['widget']['label'])) : ''),
+ 'class' => 'content-multigroup-cell-'. str_replace('_', '-', $field_name),
+ );
+ }
+ $rows = array();
+ foreach (element_children($element) as $delta) {
+ $cells = array();
+ $empty = TRUE;
+ foreach ($element['#fields'] as $field_name => $field) {
+ $item = drupal_render($element[$delta][$field_name]);
+ $cells[] = array(
+ 'data' => $item,
+ 'class' => $element[$delta]['#attributes']['class'] .' content-multigroup-cell-'. str_replace('_', '-', $field_name),
+ );
+ if (!empty($item)) {
+ $empty = FALSE;
+ }
+ }
+ // Get the row only if there is at least one non-empty field.
+ if (!$empty) {
+ $rows[] = $cells;
+ }
+ }
+ return count($rows) ? theme('table', $headers, $rows, $element['#attributes']) : '';
+}
+
+/**
+ * Theme a subgroup of fields in an unordered list.
+ *
+ * No output is generated if all fields are empty.
+ */
+function theme_content_multigroup_display_ul($element) {
+ $items = array();
+ foreach (element_children($element) as $delta) {
+ foreach ($element['#fields'] as $field_name => $field) {
+ $item = drupal_render($element[$delta][$field_name]);
+ if (!empty($item)) {
+ $items[] = $item;
+ }
+ }
+ }
+ $element['#attributes']['class'] .= ' content-multigroup';
+ return count($items) ? theme('item_list', $items, $element['#title'], 'ul', $element['#attributes']) : '';
+}
diff --git a/modules/content_multigroup/panels/content_types/content_multigroup.inc b/modules/content_multigroup/panels/content_types/content_multigroup.inc
new file mode 100644
index 0000000..d1e8eef
--- /dev/null
+++ b/modules/content_multigroup/panels/content_types/content_multigroup.inc
@@ -0,0 +1,174 @@
+<?php
+
+/**
+ * @file
+ * This file provides a CTools content type for multigroups.
+ */
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function content_multigroup_content_multigroup_ctools_content_types() {
+ return array(
+ 'title' => t('Content multigroup'),
+ 'defaults' => array('label' => 'hidden', 'format' => 'simple', 'subgroup' => 'fieldset', 'empty' => ''),
+ );
+}
+
+/**
+ * Return all multigroup content types available.
+ */
+function content_multigroup_content_multigroup_content_type_content_types() {
+ // This will hold all the individual multigroup content types.
+ $types = array();
+
+ // The outer loop goes through each node type with groups.
+ foreach (fieldgroup_groups() as $node_type_groups) {
+ // The inner loop gives us each fieldgroup on each node type with groups.
+ foreach ($node_type_groups as $group) {
+ // Skip field groups that are not of multigroup type.
+ if ($group['group_type'] != 'multigroup') {
+ continue;
+ }
+
+ // Name the content type a combination of fieldgroup and node type names.
+ $content_type_name = $group['type_name'] . ':' . $group['group_name'];
+
+ // Assemble the information about the content type.
+ $info = array(
+ 'category' => t('Node'),
+ 'icon' => 'icon_cck_field_group.png',
+ 'title' => t('Multigroup: @group in @type', array(
+ '@group' => t($group['label']),
+ '@type' => node_get_types('name', $group['type_name']),
+ )),
+ 'description' => t('All fields from this field group on the referenced node.'),
+ 'required context' => new ctools_context_required(t('Node'), 'node', array('type' => array($group['type_name']))),
+ );
+
+ $types[$content_type_name] = $info;
+ }
+ }
+
+ return $types;
+}
+
+/**
+ * Output function for the 'multigroup' content type.
+ */
+function content_multigroup_content_multigroup_content_type_render($subtype, $conf, $panel_args, $context) {
+ if (!isset($context->data)) {
+ return;
+ }
+ $node = drupal_clone($context->data);
+
+ // Extract the node type and fieldgroup name from the subtype.
+ list($node_type, $group_name) = explode(':', $subtype, 2);
+
+ // Get a list of all fieldgroups for this node type.
+ $groups = fieldgroup_groups($node_type);
+
+ if (!isset($groups[$group_name])) {
+ return;
+ }
+ $group = $groups[$group_name];
+
+ // Render the field group.
+ $node->build_mode = NODE_BUILD_NORMAL;
+ $group['settings']['display']['label'] = $conf['label'] == 'normal' || !empty($conf['override_title']) ? 'hidden' : $conf['label'];
+ $group['settings']['display']['full']['format'] = $conf['format'];
+ $group['settings']['display']['full']['exclude'] = 0;
+ $group['settings']['multigroup']['subgroup']['full']['format'] = $conf['subgroup'];
+ $group['settings']['multigroup']['subgroup']['full']['exclude'] = 0;
+ $output = fieldgroup_view_group($group, $node);
+
+ $block = new stdClass();
+ if ($conf['label'] == 'normal') {
+ $block->title = t($group['label']);
+ }
+ $block->content = !empty($output) ? $output : $conf['empty'];
+ return $block;
+}
+
+/**
+ * Returns a settings form for the custom type.
+ */
+function content_multigroup_content_multigroup_content_type_edit_form(&$form, &$form_state) {
+ $conf = $form_state['conf'];
+
+ $label_options = array(
+ 'normal' => t('Block title'),
+ 'above' => t('Above'),
+ );
+ $form['label'] = array(
+ '#type' => 'select',
+ '#title' => t('Multigroup label'),
+ '#default_value' => !empty($conf['label']) && isset($label_options[$conf['label']]) ? $conf['label'] : 'hidden',
+ '#options' => $label_options,
+ '#description' => t('Configure how the field group label is going to be displayed. This option takes no effect when "Override title" option is enabled, the specified block title is displayed instead.'),
+ );
+
+ $format_options = array(
+ 'simple' => t('Simple'),
+ 'fieldset' => t('Fieldset'),
+ 'fieldset_collapsible' => t('Fieldset - Collapsible'),
+ 'fieldset_collapsed' => t('Fieldset - Collapsed'),
+ );
+ $form['format'] = array(
+ '#type' => 'select',
+ '#title' => t('Multigroup format'),
+ '#default_value' => !empty($conf['format']) && isset($format_options[$conf['format']]) ? $conf['format'] : 'simple',
+ '#options' => $format_options,
+ '#description' => t('This option allows you to configure the field group format.'),
+ );
+
+ $subgroup_options = array(
+ 'simple' => t('Simple'),
+ 'fieldset' => t('Fieldset'),
+ 'fieldset_collapsible' => t('Fieldset - collapsible'),
+ 'fieldset_collapsed' => t('Fieldset - collapsed'),
+ 'hr' => t('Horizontal line'),
+ 'table-single' => t('Table - Single column'),
+ 'table-multiple' => t('Table - Multiple columns'),
+ );
+ $form['subgroup'] = array(
+ '#type' => 'select',
+ '#title' => t('Subgroup format'),
+ '#default_value' => !empty($conf['subgroup']) && isset($subgroup_options[$conf['subgroup']]) ? $conf['subgroup'] : 'fieldset',
+ '#options' => $subgroup_options,
+ '#description' => t('This option allows you to configure the format of the subgroups in the multigroup.'),
+ );
+
+ $form['empty'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Empty text'),
+ '#description' => t('Text to display if group has no data. Note that title will not display unless overridden.'),
+ '#rows' => 5,
+ '#default_value' => $conf['empty'],
+ );
+}
+
+function content_multigroup_content_multigroup_content_type_edit_form_submit(&$form, &$form_state) {
+ // Copy everything from our defaults.
+ foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+ $form_state['conf'][$key] = $form_state['values'][$key];
+ }
+}
+
+/**
+ * Admin title for multigroup content type.
+ */
+function content_multigroup_content_multigroup_content_type_admin_title($subtype, $conf, $context) {
+ // Extract the node type and fieldgroup name from the subtype.
+ list($node_type, $group_name) = explode(':', $subtype, 2);
+
+ // Get information about this field group for this node type.
+ $groups = fieldgroup_groups($node_type);
+ $group = $groups[$group_name];
+
+ return t('"@s" multigroup: @group in @type', array(
+ '@s' => $context->identifier,
+ '@group' => t($group['label']),
+ '@type' => node_get_types('name', $node_type),
+ ));
+}
diff --git a/modules/content_multigroup/panels/content_types/icon_cck_field_group.png b/modules/content_multigroup/panels/content_types/icon_cck_field_group.png
new file mode 100644
index 0000000..8459443
Binary files /dev/null and b/modules/content_multigroup/panels/content_types/icon_cck_field_group.png differ
diff --git a/modules/content_multigroup/views/content_multigroup.views.inc b/modules/content_multigroup/views/content_multigroup.views.inc
new file mode 100644
index 0000000..22beb92
--- /dev/null
+++ b/modules/content_multigroup/views/content_multigroup.views.inc
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * @file
+ * Views integration for Content Multigroups.
+ */
+
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function content_multigroup_views_data_alter(&$data) {
+ // Scan all field groups in the system.
+ foreach (fieldgroup_groups() as $type_name => $groups) {
+ $type_label = node_get_types('name', $type_name);
+
+ foreach ($groups as $group_name => $group) {
+ // Let's focus on multigroups that really accept multiple values.
+ if ($group['group_type'] == 'multigroup' && !empty($group['settings']['multigroup']['multiple'])) {
+
+ // Scan all fields in this multigroup.
+ $field_labels = array();
+ foreach (array_keys($group['fields']) as $field_name) {
+ // Load information about the field for this particular content type.
+ $field = content_fields($field_name, $type_name);
+
+ // Get the Views table alias.
+ $table_alias = content_views_tablename($field);
+
+ // Discard this field if not already exposed to Views.
+ if (isset($data[$table_alias])) {
+ $field_labels[$field_name] = t($field['widget']['label']);
+ }
+ }
+
+ if (!empty($field_labels)) {
+ // Build the name for this filter.
+ // The scope of field groups is the content type itself. You can
+ // have more than one group with the same name but different fields
+ // in different content types. Therefore, we need the type name and
+ // multigroup name.
+ $db_field = 'multigroup_'. $type_name .'_'. $group_name;
+
+ // Build the labels for the filter.
+ $label_truncated = truncate_utf8(t($group['label']), 10, TRUE);
+ $title = t('@group_label multigroup in @type_label', array(
+ '@group_label' => t($group['label']),
+ '@type_label' => $type_label,
+ ));
+ $title_short = t('@label-truncated in @type_label', array(
+ '@label-truncated' => $label_truncated,
+ '@type_label' => $type_label,
+ ));
+ $help_text = t('Synchronize multiple values for fields in @group_label multigroup, @type_label type. Fields in this group: @fields.', array(
+ '@group_label' => t($group['label']),
+ '@type_label' => $type_label,
+ '@fields' => implode(', ', $field_labels),
+ ));
+
+ // Attach the new filter to the node table.
+ $data['node'][$db_field] = array(
+ 'group' => t('Content multigroup'),
+ 'title' => $title,
+ 'title short' => $title_short,
+ 'help' => $help_text,
+ 'filter' => array(
+ 'field' => $db_field,
+ 'table' => 'node',
+ 'handler' => 'content_multigroup_handler_filter',
+ 'content_type_name' => $type_name,
+ 'content_group_name' => $group_name,
+ 'allow empty' => TRUE,
+ ),
+ );
+ }
+ }
+ }
+ }
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function content_multigroup_views_handlers() {
+ return array(
+ 'info' => array(
+ 'path' => drupal_get_path('module', 'content_multigroup') . '/views/handlers',
+ ),
+ 'handlers' => array(
+ 'content_multigroup_handler_filter' => array(
+ 'parent' => 'views_handler_filter',
+ ),
+ ),
+ );
+}
diff --git a/modules/content_multigroup/views/handlers/content_multigroup_handler_filter.inc b/modules/content_multigroup/views/handlers/content_multigroup_handler_filter.inc
new file mode 100644
index 0000000..e86a321
--- /dev/null
+++ b/modules/content_multigroup/views/handlers/content_multigroup_handler_filter.inc
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * @file
+ * Defines a content_multigroup filter object in views.
+ *
+ * This filter allows you to associate the deltas in a multigroup so that
+ * views doesn't do a cross-join across all values in multivalue fields.
+ */
+class content_multigroup_handler_filter extends views_handler_filter {
+ var $content_multigroup_fields;
+
+ function can_expose() {
+ return FALSE;
+ }
+
+ function admin_summary() {
+ return t('+ delta');
+ }
+
+ /**
+ * Get information about the multigroup.
+ */
+ function _get_multigroup() {
+ $groups = fieldgroup_groups($this->definition['content_type_name']);
+ return $groups[$this->definition['content_group_name']];
+ }
+
+ /**
+ * Get information about the fields in this multigroup.
+ */
+ function _get_multigroup_fields() {
+ if (!isset($this->content_multigroup_fields)) {
+ $group = $this->_get_multigroup();
+ $this->content_multigroup_fields = array();
+ foreach (array_keys($group['fields']) as $field_name) {
+ $field = content_fields($field_name, $this->definition['content_type_name']);
+ $table_alias = content_views_tablename($field);
+ $this->content_multigroup_fields[$table_alias] = $field;
+ }
+ }
+ return $this->content_multigroup_fields;
+ }
+
+ /**
+ * Define default value for master field.
+ */
+ function options(&$options) {
+ $multigroup_fields = $this->_get_multigroup_fields();
+ // Find the first required field.
+ foreach ($multigroup_fields as $table_alias => $field) {
+ if ($field['required']) {
+ $options['content_multigroup_master_field'] = $table_alias;
+ break;
+ }
+ }
+ // Default to first field in the multigroup.
+ if (empty($options['content_multigroup_master_field'])) {
+ $options['content_multigroup_master_field'] = current(array_keys($multigroup_fields));
+ }
+ }
+
+ /**
+ * Options from to ask the user for a master field.
+ */
+ function options_form(&$form, &$form_state) {
+ $group = $this->_get_multigroup();
+ $options = array();
+ foreach ($this->_get_multigroup_fields() as $table_alias => $field) {
+ $options[$table_alias] = t($field['widget']['label']);
+ }
+ $form['content_multigroup_master_field'] = array(
+ '#title' => t('Available fields in @group_label multigroup', array('@group_label' => t($group['label']))),
+ '#type' => 'radios',
+ '#options' => $options,
+ '#default_value' => $this->options['content_multigroup_master_field'],
+ '#description' => t('Select the field in this multigroup that will be used to build the primary join with the content table.'),
+ );
+ }
+
+ /**
+ * Add joins to the query to synchronize the fields in this multigroup.
+ */
+ function query() {
+ // Create the join between the master field table and the node table.
+ $base_alias = $this->query->ensure_table($this->options['content_multigroup_master_field'], $this->relationship);
+
+ // Now we want to join the master field table with all other tables
+ // related to fields in the same multigroup, but adding the delta
+ // key to the join condition. This is what allows us to keep delta
+ // values in sync for all fields in the same multigroup.
+ foreach ($this->_get_multigroup_fields() as $table_alias => $field) {
+ if ($table_alias != $this->options['content_multigroup_master_field']) {
+ $alias = $this->query->ensure_table($table_alias, $this->relationship);
+ $this->query->table_queue[$alias]['join']->extra = $base_alias .'.delta = '. $alias .'.delta';
+ }
+ }
+ }
+}
diff --git a/modules/content_permissions/content_permissions.info b/modules/content_permissions/content_permissions.info
index b00241c..cc97d32 100644
--- a/modules/content_permissions/content_permissions.info
+++ b/modules/content_permissions/content_permissions.info
@@ -1,4 +1,3 @@
-; $Id: content_permissions.info,v 1.2 2008/04/23 18:01:52 dww Exp $
name = Content Permissions
description = Set field-level permissions for CCK fields.
package = CCK
diff --git a/modules/content_permissions/content_permissions.install b/modules/content_permissions/content_permissions.install
index fe63968..0e97815 100644
--- a/modules/content_permissions/content_permissions.install
+++ b/modules/content_permissions/content_permissions.install
@@ -1,5 +1,4 @@
<?php
-// $Id: content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens Exp $
/**
* @file
diff --git a/modules/content_permissions/content_permissions.module b/modules/content_permissions/content_permissions.module
index 3de857b..d69900c 100644
--- a/modules/content_permissions/content_permissions.module
+++ b/modules/content_permissions/content_permissions.module
@@ -1,5 +1,4 @@
<?php
-// $Id: content_permissions.module,v 1.5.2.6 2009/07/18 00:40:21 markuspetrux Exp $
/**
* Implementation of hook_perm().
diff --git a/modules/content_permissions/translations/modules-content_permissions.de.po b/modules/content_permissions/translations/modules-content_permissions.de.po
deleted file mode 100644
index 36ce8d0..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.de.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# $Id: modules-content_permissions.de.po,v 1.2.2.7 2008/11/05 12:24:00 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2008-11-05 12:54+0100\n"
-"PO-Revision-Date: 2008-11-05 13:18+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:9
-msgid "edit "
-msgstr ""
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:9;10
-msgid "field_name"
-msgstr ""
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:10
-msgid "view "
-msgstr ""
-
-#: modules/content_permissions/content_permissions.module:0
-msgid "content_permissions"
-msgstr "Inhaltsberechtigungen"
-
-#: modules/content_permissions/content_permissions.install:9
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr "Bitte umgehend die <a href=\"!url\">Feldberechtigungen konfigurieren</a>. Alle Felder sind standardmäßig gesperrt."
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Inhaltsberechtigungen"
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Konfiguriert Berechtigungen für CCK-Felder auf Feldebene."
-
diff --git a/modules/content_permissions/translations/modules-content_permissions.fr.po b/modules/content_permissions/translations/modules-content_permissions.fr.po
deleted file mode 100644
index 7db1655..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.fr.po
+++ /dev/null
@@ -1,49 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-10-19 18:01+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:9
-msgid "edit "
-msgstr ""
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:9;10
-msgid "field_name"
-msgstr ""
-
-# Dynamic permission names are not yet translatable in Drupal. http://drupal.org/node/250854
-#: modules/content_permissions/content_permissions.module:10
-msgid "view "
-msgstr ""
-
-#: modules/content_permissions/content_permissions.module:0
-msgid "content_permissions"
-msgstr "content_permissions"
-
-#: modules/content_permissions/content_permissions.install:7
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr "Merci de <a href=\"!url\">configurer vos droits relatifs aux champs</a> immédiatement. Par défaut, tous les champs sont inaccessibles."
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Droits sur le contenu"
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Configurer les droits d'accès au niveau des champs pour les champs CCK."
-
diff --git a/modules/content_permissions/translations/modules-content_permissions.hu.po b/modules/content_permissions/translations/modules-content_permissions.hu.po
deleted file mode 100644
index 35e1496..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.hu.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# content_permissions.module,v 1.5.2.2 2008/10/06 15:11:39 karens
-# content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 11:49-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/content_permissions/content_permissions.module:9
-msgid "edit "
-msgstr "szerkesztés "
-
-#: modules/content_permissions/content_permissions.module:9,10
-msgid "field_name"
-msgstr "field_name"
-
-#: modules/content_permissions/content_permissions.module:10
-msgid "view "
-msgstr "nézet "
-
-#: modules/content_permissions/content_permissions.module:0
-msgid "content_permissions"
-msgstr "content_permissions"
-
-#: modules/content_permissions/content_permissions.install:9
-msgid ""
-"Please <a href=\"!url\">configure your field permissions</a> "
-"immediately. All fields are inaccessible by default."
-msgstr ""
-"Érdemes azonnal <a href=\"!url\">beállítani a mezők "
-"jogosultságait</a>. Alapértelmezés szerint egyik mező sem érhető "
-"el."
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Tartalom Jogosultságok"
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Mezőszintű jogosultságok beállítása."
-
diff --git a/modules/content_permissions/translations/modules-content_permissions.nl.po b/modules/content_permissions/translations/modules-content_permissions.nl.po
deleted file mode 100644
index 668393a..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.nl.po
+++ /dev/null
@@ -1,56 +0,0 @@
-# $Id: modules-content_permissions.nl.po,v 1.1.2.1 2009/06/03 20:31:09 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
-# content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:25+0200\n"
-"PO-Revision-Date: 2009-06-03 14:25+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: content_permissions.module:10
-msgid "edit "
-msgstr "bewerk"
-
-#: content_permissions.module:10;11
-msgid "field_name"
-msgstr "field_name"
-
-#: content_permissions.module:11
-msgid "view "
-msgstr "bekijk"
-
-#: content_permissions.module:0
-msgid "content_permissions"
-msgstr "content_permissions"
-
-#: content_permissions.install:9
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr ""
-"Stel <a href=\"!url\">je veldpermissies</a> direct in. Alle velden "
-"zijn standaard niet te bekijken."
-
-#: content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Inhoudpermissies"
-
-#: content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Stel veldpermissies in voor CCK-velden."
-
-#: content_permissions.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/content_permissions/translations/modules-content_permissions.pot b/modules/content_permissions/translations/modules-content_permissions.pot
deleted file mode 100644
index 355bdd6..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.pot
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id: modules-content_permissions.pot,v 1.1.2.12 2009/06/16 17:05:11 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-content_permissions)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
-# content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/content_permissions/content_permissions.module:10
-msgid "edit "
-msgstr ""
-
-#: modules/content_permissions/content_permissions.module:10;11
-msgid "field_name"
-msgstr ""
-
-#: modules/content_permissions/content_permissions.module:11
-msgid "view "
-msgstr ""
-
-#: modules/content_permissions/content_permissions.module:0
-msgid "content_permissions"
-msgstr ""
-
-#: modules/content_permissions/content_permissions.install:9
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr ""
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Content Permissions"
-msgstr ""
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr ""
-
diff --git a/modules/content_permissions/translations/modules-content_permissions.sv.po b/modules/content_permissions/translations/modules-content_permissions.sv.po
deleted file mode 100644
index 5741172..0000000
--- a/modules/content_permissions/translations/modules-content_permissions.sv.po
+++ /dev/null
@@ -1,55 +0,0 @@
-# $Id: modules-content_permissions.sv.po,v 1.1.2.1 2009/05/27 13:32:56 seals Exp $
-#
-# Swedish translation of Drupal (content_permissions)
-# Generated from files:
-# content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
-# content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Content Permissions 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:07+0200\n"
-"PO-Revision-Date: 2009-05-27 13:15+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: content_permissions.module:10
-msgid "edit "
-msgstr "redigera"
-
-#: content_permissions.module:10;11
-msgid "field_name"
-msgstr "fält_namn"
-
-#: content_permissions.module:11
-msgid "view "
-msgstr "visa"
-
-#: content_permissions.module:0
-msgid "content_permissions"
-msgstr "content_permissions"
-
-#: content_permissions.install:9
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr "Var vänlig <a href=\"!url\">konfigurera dina rättigheter för fält</a> omedelbart. Alla fält är som standard ej tillgängliga."
-
-#: content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Rättigheter för innehåll"
-
-#: content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Ange rättigheter per fältnivå för fält av typen CCK."
-
-#: content_permissions.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/fieldgroup/fieldgroup-rtl.css b/modules/fieldgroup/fieldgroup-rtl.css
index 4d93f22..1f36221 100644
--- a/modules/fieldgroup/fieldgroup-rtl.css
+++ b/modules/fieldgroup/fieldgroup-rtl.css
@@ -1,4 +1,3 @@
-/* $Id: fieldgroup-rtl.css,v 1.1.2.2 2009/03/14 18:55:20 yched Exp $ */
div.fieldgroup .content {
padding-left:0;
diff --git a/modules/fieldgroup/fieldgroup-simple.tpl.php b/modules/fieldgroup/fieldgroup-simple.tpl.php
index 6ac042f..0225fe3 100644
--- a/modules/fieldgroup/fieldgroup-simple.tpl.php
+++ b/modules/fieldgroup/fieldgroup-simple.tpl.php
@@ -1,5 +1,4 @@
<?php
-// $Id: fieldgroup-simple.tpl.php,v 1.1.2.1 2009/02/28 23:56:17 yched Exp $
/**
* @file fieldgroup-simple.tpl.php
diff --git a/modules/fieldgroup/fieldgroup.css b/modules/fieldgroup/fieldgroup.css
index a2ac4c6..56f9bf0 100644
--- a/modules/fieldgroup/fieldgroup.css
+++ b/modules/fieldgroup/fieldgroup.css
@@ -1,4 +1,3 @@
-/* $Id: fieldgroup.css,v 1.2.2.2 2009/03/14 18:55:20 yched Exp $ */
div.fieldgroup {
margin:.5em 0 1em 0;
diff --git a/modules/fieldgroup/fieldgroup.info b/modules/fieldgroup/fieldgroup.info
index 2408cc4..5c8f5f6 100644
--- a/modules/fieldgroup/fieldgroup.info
+++ b/modules/fieldgroup/fieldgroup.info
@@ -1,4 +1,3 @@
-; $Id: fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens Exp $
name = Fieldgroup
description = Create display groups for CCK fields.
dependencies[] = content
diff --git a/modules/fieldgroup/fieldgroup.install b/modules/fieldgroup/fieldgroup.install
index 91932cd..1d6b3c0 100644
--- a/modules/fieldgroup/fieldgroup.install
+++ b/modules/fieldgroup/fieldgroup.install
@@ -1,5 +1,4 @@
<?php
-// $Id: fieldgroup.install,v 1.34.2.19 2008/12/26 11:51:46 yched Exp $
/**
* @file
@@ -52,6 +51,7 @@ function fieldgroup_schema() {
'group_type' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => 'standard'),
'type_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
'group_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+ 'parent' => array('type' => 'varchar', 'length' => 32, 'not null' => FALSE, 'default' => ''),
'label' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'settings' => array('type' => 'text', 'size' => 'medium', 'not null' => TRUE),
'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
@@ -313,4 +313,16 @@ function fieldgroup_update_6007() {
$ret = array();
$ret[] = update_sql("DELETE FROM {content_group_fields} WHERE (field_name, type_name) NOT IN (SELECT field_name, type_name FROM {content_node_field_instance})");
return $ret;
+}
+
+/**
+ * allow for nesting of fieldgroups
+ */
+function fieldgroup_update_6008() {
+ if ($abort = content_check_update('fieldgroup')) {
+ return $abort;
+ }
+ $ret = array();
+ db_add_field($ret, 'content_group', 'parent', array('type' => 'varchar', 'length' => 32, 'not null' => FALSE, 'default' => ''));
+ return $ret;
}
\ No newline at end of file
diff --git a/modules/fieldgroup/fieldgroup.module b/modules/fieldgroup/fieldgroup.module
index 9ac0f74..d7dcc11 100644
--- a/modules/fieldgroup/fieldgroup.module
+++ b/modules/fieldgroup/fieldgroup.module
@@ -1,5 +1,4 @@
<?php
-// $Id: fieldgroup.module,v 1.79.2.52 2010/06/09 02:10:01 karens Exp $
/**
* @file
@@ -166,6 +165,7 @@ function fieldgroup_group_edit_form(&$form_state, $type_name, $group_name) {
$form['settings']['display']['label'] = array('#type' => 'value', '#value' => $group['settings']['display']['label']);
$form['weight'] = array('#type' => 'hidden', '#default_value' => $group['weight']);
$form['group_name'] = array('#type' => 'hidden', '#default_value' => $group_name);
+ $form['parent'] = array('#type' => 'hidden', '#default_value' => $group['parent']);
$form['#content_type'] = $content_type;
@@ -210,6 +210,9 @@ function fieldgroup_remove_group_submit($form, &$form_state) {
$form_values = $form_state['values'];
$content_type = $form['#content_type'];
$group_name = $form['#group_name'];
+ $parent = db_fetch_array(db_query("SELECT parent FROM {". fieldgroup_tablename() ."} WHERE group_name = '%s' AND type_name = '%s'", $group_name, $content_type['type']));
+ $result = db_query("UPDATE {". fieldgroup_tablename() ."} SET parent = '%s' WHERE parent = '%s' AND type_name = '%s'", $parent['parent'], $group_name, $content_type['type']);
+ $result = db_query("UPDATE {". fieldgroup_fields_tablename() ."} SET group_name = '%s' WHERE group_name = '%s' AND type_name = '%s'", $parent['parent'], $group_name, $content_type['type']);
fieldgroup_delete($content_type['type'], $group_name);
drupal_set_message(t('The group %group_name has been removed.', array('%group_name' => $group_name)));
$form_state['redirect'] = 'admin/content/node-type/'. $content_type['url_str'] .'/fields';
@@ -228,44 +231,13 @@ function fieldgroup_groups($content_type = '', $sorted = FALSE, $reset = FALSE)
$groups_sorted = $data['groups_sorted'];
}
else {
- $result = db_query("SELECT * FROM {". fieldgroup_tablename() ."} ORDER BY weight, group_name");
+ $result = db_query("SELECT * FROM {". fieldgroup_tablename() ."} ORDER BY type_name, weight");
$groups = array();
$groups_sorted = array();
while ($group = db_fetch_array($result)) {
- $group['settings'] = unserialize($group['settings']);
- $group['fields'] = array();
-
- // Allow external modules to translate field group strings.
- $group_strings = array(
- 'label' => $group['label'],
- 'form_description' => $group['settings']['form']['description'],
- 'display_description' => $group['settings']['display']['description'],
- );
- drupal_alter('content_fieldgroup_strings', $group_strings, $group['type_name'], $group['group_name']);
- $group['label'] = $group_strings['label'];
- $group['settings']['form']['description'] = $group_strings['form_description'];
- $group['settings']['display']['description'] = $group_strings['display_description'];
-
- $groups[$group['type_name']][$group['group_name']] = $group;
+ $groups[$group['type_name']] = _fieldgroup_get_tree($group['type_name']);
$groups_sorted[$group['type_name']][] = &$groups[$group['type_name']][$group['group_name']];
}
- //load fields
- $result = db_query("SELECT nfi.*, ng.group_name FROM {". fieldgroup_tablename() ."} ng ".
- "INNER JOIN {". fieldgroup_fields_tablename() ."} ngf ON ngf.type_name = ng.type_name AND ngf.group_name = ng.group_name ".
- "INNER JOIN {". content_instance_tablename() ."} nfi ON nfi.field_name = ngf.field_name AND nfi.type_name = ngf.type_name ".
- "WHERE nfi.widget_active = 1 ORDER BY nfi.weight");
- while ($field = db_fetch_array($result)) {
- // Allow external modules to translate field strings.
- $field_strings = array(
- 'widget_label' => $field['label'],
- 'widget_description' => $field['description'],
- );
- drupal_alter('content_field_strings', $field_strings, $field['type_name'], $field['field_name']);
- $field['label'] = $field_strings['widget_label'];
- $field['description'] = $field_strings['widget_description'];
-
- $groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']] = $field;
- }
cache_set('fieldgroup_data:'. $language->language, array('groups' => $groups, 'groups_sorted' => $groups_sorted), content_cache_tablename());
}
}
@@ -278,6 +250,87 @@ function fieldgroup_groups($content_type = '', $sorted = FALSE, $reset = FALSE)
return $sorted ? $groups_sorted[$content_type] : $groups[$content_type];
}
+/**
+ * create a tree of fieldgroups for nesting them
+ */
+function _fieldgroup_get_tree($type_name, $parent = '', $depth = -1, $max_depth = null) {
+ static $children, $parents, $groups;
+
+ $depth++;
+ // We cache trees, so it's not CPU-intensive to call get_tree() on a term
+ // and its children, too.
+ if (!isset($children[$type_name])) {
+ $children[$type_name] = array();
+
+ $result = db_query("SELECT * FROM {". fieldgroup_tablename() ."} WHERE type_name='%s' ORDER BY weight", $type_name);
+ while ($group = db_fetch_array($result)) {
+ $group['settings'] = unserialize($group['settings']);
+ $group['fields'] = array();
+
+ // Allow external modules to translate field group strings.
+ $group_strings = array(
+ 'label' => $group['label'],
+ 'form_description' => $group['settings']['form']['description'],
+ 'display_description' => $group['settings']['display']['description'],
+ );
+ $group['label'] = $group_strings['label'];
+ $group['settings']['form']['description'] = $group_strings['form_description'];
+ $group['settings']['display']['description'] = $group_strings['display_description'];
+
+ $children[$type_name][$group['parent']][] = $group['group_name'];
+ $parents[$type_name][$group['group_name']][] = $group['parent'];
+ $groups[$type_name][$group['group_name']] = $group;
+ }
+ //load fields
+ $result = db_query("SELECT nfi.*, ng.group_name FROM {". fieldgroup_tablename() ."} ng ".
+ "INNER JOIN {". fieldgroup_fields_tablename() ."} ngf ON ngf.type_name = ng.type_name AND ngf.group_name = ng.group_name ".
+ "INNER JOIN {". content_instance_tablename() ."} nfi ON nfi.field_name = ngf.field_name AND nfi.type_name = ngf.type_name ".
+ "WHERE nfi.widget_active = 1 ORDER BY nfi.weight");
+ while ($field = db_fetch_array($result)) {
+ $groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']] = $field;
+
+ // Unserialize arrays.
+ foreach (array('widget_settings', 'display_settings', 'global_settings', 'db_columns') as $key) {
+ $groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']] = (!empty($groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']][$key])) ? (array) unserialize($groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']][$key]) : array();
+ }
+
+ // For fields inside of groups, use the weight given by fieldgroup
+ $groups[$field['type_name']][$field['group_name']]['fields'][$field['field_name']]['weight'] = $field['weight'];
+ }
+ }
+
+ $max_depth = (is_null($max_depth)) ? count($children[$type_name]) : $max_depth;
+ if (isset($children[$type_name][$parent])) {
+ foreach ($children[$type_name][$parent] as $child_group_name) {
+ if ($max_depth > $depth) {
+ $group = $groups[$type_name][$child_group_name];
+ $group['depth'] = $depth;
+ $group['parents'] = $parents[$type_name][$child_group_name];
+ $tree[$group['group_name']] = $group;
+ if (!empty($children[$type_name][$child_group_name])) {
+ $tree = array_merge($tree, _fieldgroup_get_tree($type_name, $child_group_name, $depth, $max_depth));
+ }
+ }
+ }
+ }
+ return $tree ? $tree : array();
+}
+
+/**
+ * go through a set of fieldgroups and construct a simple representation of their hierarchy
+ */
+function _fieldgroup_plain_tree($items) {
+ $rows = array();
+ $rows[''] = '<'. t('none') .'>';
+ foreach ($items as $item) {
+ $group_name = $item['group_name'];
+ $label = t($item['label']);
+ if ($group_name) {
+ $rows[$group_name] = str_repeat('--', $item['depth']) . ' ' . $label;
+ }
+ }
+ return $rows;
+}
function _fieldgroup_groups_label($content_type) {
$groups = fieldgroup_groups($content_type);
@@ -294,50 +347,162 @@ function _fieldgroup_field_get_group($content_type, $field_name) {
}
/**
+ * Return an array of the parents for a field or group.
+ *
+ * @param $content_type The content type of the field/group.
+ * @param $name The name of a group or field.
+ */
+function fieldgroup_get_parents($content_type, $name) {
+ $is_group = substr($name, 0, 6) == 'group_';
+ $counter = 0;
+ if ($is_group) {
+ $parents[$counter] = $name;
+ }
+ else {
+ if ($result = db_result(db_query("SELECT group_name FROM {". fieldgroup_fields_tablename() ."} WHERE type_name = '%s' AND field_name = '%s'", $content_type, $name))) {
+ $parents[$counter] = $result;
+ }
+ }
+ while ($result = db_result(db_query("SELECT parent FROM {". fieldgroup_tablename() ."} WHERE type_name = '%s' AND group_name = '%s'", $content_type, $parents[$counter]))) {
+ $counter++;
+ $parents[$counter] = $result;
+ }
+ return $parents;
+}
+
+function _fieldgroup_add_group_to_form(&$form, &$form_state, $form_id, $group_name, $group, $groups) {
+ $form[$group_name] = array(
+ '#type' => 'fieldset',
+ '#title' => check_plain(t($group['label'])),
+ '#collapsed' => $group['settings']['form']['style'] == 'fieldset_collapsed',
+ '#collapsible' => in_array($group['settings']['form']['style'], array('fieldset_collapsed', 'fieldset_collapsible')),
+ '#weight' => $group['weight'],
+ '#depth' => $group['depth'],
+ '#group_parent' => $group['parent'],
+ '#description' => content_filter_xss(t($group['settings']['form']['description'])),
+ '#attributes' => array('class' => strtr($group['group_name'], '_', '-')),
+ );
+ $has_accessible_field = FALSE;
+ foreach ($group['fields'] as $field_name => $field) {
+ if (isset($form[$field_name])) {
+ $form[$field_name]['#weight'] = $field['weight'];
+ $form[$group_name][$field_name] = $form[$field_name];
+ //Track whether this group has any accessible fields within it.
+ if (!isset($form[$field_name]['#access']) || $form[$field_name]['#access'] !== FALSE) {
+ $has_accessible_field = TRUE;
+ }
+ unset($form[$field_name]);
+ }
+ }
+ if (!empty($group['fields']) && !element_children($form[$group_name])) {
+ //hide the fieldgroup, because the fields are hidden too
+ unset($form[$group_name]);
+ }
+
+ if (!$has_accessible_field) {
+ // Hide the fieldgroup, because the fields are inaccessible.
+ $form[$group_name]['#access'] = FALSE;
+ }
+ else {
+ //cascade visibility up
+ $form[$group_name]['#access'] = TRUE;
+ }
+
+ // Allow other modules to alter the form.
+ // Can't use module_invoke_all because we want
+ // to be able to use a reference to $form and $form_state.
+ foreach (module_implements('fieldgroup_form') as $module) {
+ $function = $module .'_fieldgroup_form';
+ $function($form, $form_state, $form_id, $group);
+ }
+}
+
+/**
+ * This is function fieldgroup_order_fields_and_groups
+ *
+ * @param array $group_rows An empty array that we will fill.
+ * @param array $groups All of the info we need about all of the groups for the content type we're working on.
+ * @param array $field_check_off This contains the fields. We will unset them as we process them.
+ *
+ */
+function fieldgroup_order_fields_groups(&$group_rows, &$groups, &$field_check_off) {
+ $max_depth = 0;
+ foreach ($group_rows as $name) {
+ $depth = $groups[$name]['depth'];
+ if ($depth > $max_depth) {
+ $max_depth = $depth;
+ }
+ $parent = $groups[$name]['parent'];
+
+ //run through the fields and come up with new weights for display purposes
+ if (isset($groups[$name]['fields'])) {
+ foreach ($groups[$name]['fields'] as $name2 => $elements) {
+ $depth2 = $groups[$name]['depth'] + 1;
+ $groups[$name]['fields'][$name2]['depth'] = $depth2;
+ if (in_array($name2, $field_check_off)) {
+ $index = array_search($name2, $field_check_off);
+ unset($field_check_off[$index]);
+ }
+ }
+ }
+ }
+ return $max_depth;
+}
+
+/**
* Implementation of hook_form_alter()
*/
function fieldgroup_form_alter(&$form, $form_state, $form_id) {
if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
- foreach (fieldgroup_groups($form['type']['#value']) as $group_name => $group) {
- $form[$group_name] = array(
- '#type' => 'fieldset',
- '#title' => check_plain(t($group['label'])),
- '#collapsed' => $group['settings']['form']['style'] == 'fieldset_collapsed',
- '#collapsible' => in_array($group['settings']['form']['style'], array('fieldset_collapsed', 'fieldset_collapsible')),
- '#weight' => $group['weight'],
- '#description' => content_filter_xss(t($group['settings']['form']['description'])),
- '#attributes' => array('class' => strtr($group['group_name'], '_', '-')),
- );
-
- $has_accessible_field = FALSE;
- foreach ($group['fields'] as $field_name => $field) {
- if (isset($form[$field_name])) {
- $form[$group_name][$field_name] = $form[$field_name];
- // Track whether this group has any accessible fields within it.
- if (!isset($form[$field_name]['#access']) || $form[$field_name]['#access'] !== FALSE) {
- $has_accessible_field = TRUE;
- }
- unset($form[$field_name]);
- }
+ $group_rows = array();
+ $field_rows = array();
+
+ //prepare data that will make this easier
+ $groups = fieldgroup_groups($form['type']['#value']);
+ if (!empty($groups)) {
+ foreach ($groups as $name => $more) {
+ $group_rows[] = $name;
}
- if (!empty($group['fields']) && !element_children($form[$group_name])) {
- //hide the fieldgroup, because the fields are hidden too
- unset($form[$group_name]);
+ }
+
+ $fields = $form['#field_info'];
+ if (!empty($fields)) {
+ foreach ($fields as $name => $more) {
+ $field_rows[] = $name;
}
-
- if (!$has_accessible_field) {
- // Hide the fieldgroup, because the fields are inaccessible.
- $form[$group_name]['#access'] = FALSE;
+ }
+
+ $max_depth = fieldgroup_order_fields_groups($group_rows, $groups, $field_rows);
+
+ //cover the top level fields that aren't in fieldgroups
+ if (isset($field_rows)) {
+ foreach ($field_rows as $name) {
+ $form[$name]['#depth'] = 0;
}
-
- // Allow other modules to alter the form.
- // Can't use module_invoke_all because we want
- // to be able to use a reference to $form and $form_state.
- foreach (module_implements('fieldgroup_form') as $module) {
- $function = $module .'_fieldgroup_form';
- $function($form, $form_state, $form_id, $group);
+ }
+
+ //now that we have the order of things as we want them, let's create the fieldsets for the fieldgroups
+ foreach ($groups as $group_name => $group) {
+ _fieldgroup_add_group_to_form($form, $form_state, $form_id, $group_name, $group, $groups);
+ }
+
+ //reorder the groups from the inside-out in order to avoid a recursive function
+ while ($max_depth >= 0) {
+ foreach ($group_rows as $name) {
+ if ($form[$name]['#depth'] == $max_depth) {
+ $parent = $form[$name]['#group_parent'];
+ if (isset($parent) && $parent != '') {
+ $form[$parent][$name] = $form[$name];
+ if ($form[$name]['#access']) {
+ $form[$parent]['#access'] = TRUE;
+ }
+ unset($form[$name]);
+ $index = array_search($name, $group_rows);
+ unset($group_rows[$index]);
+ }
+ }
}
-
+ $max_depth--;
}
}
@@ -451,7 +616,6 @@ function fieldgroup_field_overview_form_validate($form, &$form_state) {
function fieldgroup_field_overview_form_submit($form, &$form_state) {
$form_values = $form_state['values'];
$type_name = $form['#type_name'];
-
// Create new group if needed.
if (!empty($form_values['_add_new_group']['label'])) {
$group = $form_values['_add_new_group'];
@@ -463,6 +627,10 @@ function fieldgroup_field_overview_form_submit($form, &$form_state) {
// Parse incoming rows.
$add_field_rows = array('_add_new_field', '_add_existing_field');
$field_rows = array_merge($form['#fields'], $add_field_rows);
+ $add_group_rows = array($new_group_name);
+ $group_rows = array_merge($form['#groups'], $add_group_rows);
+
+
foreach ($form_values as $key => $values) {
// If 'field' row: update field parenting.
if (in_array($key, $field_rows)) {
@@ -486,12 +654,15 @@ function fieldgroup_field_overview_form_submit($form, &$form_state) {
// TODO: check the parent group does exist ?
fieldgroup_update_fields(array('field_name' => $key, 'group' => $parent, 'type_name' => $type_name));
}
-
- // If 'group' row: update groups weights
+ }
+
+ foreach ($form_state['values'] as $key => $values) {
+ // If 'group' row: update groups weights and parent
// (possible newly created group has already been taken care of).
- elseif (in_array($key, $form['#groups'])) {
- db_query("UPDATE {". fieldgroup_tablename() ."} SET weight = %d WHERE type_name = '%s' AND group_name = '%s'",
- $values['weight'], $type_name, $key);
+ if (in_array($key, $group_rows)) {
+ $parent = ($values['parent'] == '_add_new_group' && isset($new_group_name)) ? $new_group_name : $values['parent'];
+ $weight = $values['weight'];
+ db_query("UPDATE {". fieldgroup_tablename() ."} SET weight = %d, parent = '%s' WHERE type_name = '%s' AND group_name = '%s'", $weight, $parent, $type_name, $key);
}
}
@@ -519,6 +690,19 @@ function fieldgroup_display_overview_form_submit($form, &$form_state) {
foreach ($form_values as $key => $values) {
if (in_array($key, $form['#groups'])) {
$group = $groups[$key];
+ // Multigroup data (namely, subgroup data) ends up in the settings array as well
+ // Prevent this data from ending up inside of ['settings']['display']
+ if (is_array($values['settings']) && array_key_exists('multigroup', $values['settings'])){
+ if (is_array($group['settings']['multigroup'])){
+ foreach ($values['settings']['multigroup'] as $group_key => $group_values){
+ $group['settings']['multigroup'][$group_key] = $values['settings']['multigroup'][$group_key];
+ }
+ }
+ else {
+ $group['settings']['multigroup'] = $values['settings']['multigroup'];
+ }
+ unset($values['settings']['multigroup']);
+ }
// We have some numeric keys here, so we can't use array_merge.
$group['settings']['display'] = $values + $group['settings']['display'];
fieldgroup_save_group($form['#type_name'], $group);
@@ -543,10 +727,51 @@ function fieldgroup_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
case 'view':
// Prevent against invalid 'nodes' built by broken 3rd party code.
if (isset($node->type)) {
+ //prepare data that will make this easier
+ $group_rows = array();
+ $field_rows = array();
+ $groups = fieldgroup_groups($node->type);
+ if (!empty($groups)) {
+ foreach ($groups as $name => $more) {
+ $group_rows[] = $name;
+ }
+ }
+
+ $fields = $node->content;
+ if (!empty($fields)) {
+ foreach ($fields as $name => $more) {
+ if (is_string($name) && strstr($name, 'field_')) {
+ $field_rows[] = $name;
+ }
+ }
+ }
+
+ $max_depth = fieldgroup_order_fields_groups($group_rows, $groups, $field_rows);
+
+ //cover the top level fields that aren't in fieldgroups
+ if (isset($field_rows)) {
+ foreach ($field_rows as $name) {
+ $node->content[$name]['#depth'] = 0;
+ }
+ }
+
// Build the node content element needed to render each fieldgroup.
- foreach (fieldgroup_groups($node->type) as $group) {
+ foreach ($groups as $group) {
fieldgroup_build_content($group, $node, $teaser, $page);
}
+ //reorder the groups from the inside-out in order to avoid writing a recursive function
+ while ($max_depth >= 0) {
+ foreach ($group_rows as $name) {
+ if (!empty($node->content[$name]) && $node->content[$name]['#depth'] == $max_depth) {
+ $parent = $node->content[$name]['#group_parent'];
+ if (isset($parent) && $parent != '') {
+ $node->content[$parent]['group'][$name] = $node->content[$name];
+ unset($node->content[$name]);
+ }
+ }
+ }
+ $max_depth--;
+ }
}
break;
}
@@ -586,7 +811,7 @@ function fieldgroup_build_content($group, &$node, $teaser, $page) {
$label = $group['settings']['display']['label'] == 'above';
$element = array(
'#title' => $label ? check_plain(t($group['label'])) : '',
- '#description' => $label ? content_filter_xss(t($group['settings']['display']['description'])) : '',
+ '#description' => $label && !empty($group['settings']['display']['description']) ? content_filter_xss(t($group['settings']['display']['description'])) : '',
);
$format = isset($group['settings']['display'][$context]['format']) ? $group['settings']['display'][$context]['format'] : 'fieldset';
@@ -611,6 +836,8 @@ function fieldgroup_build_content($group, &$node, $teaser, $page) {
foreach ($group['fields'] as $field_name => $field) {
if (isset($node->content[$field_name])) {
$element[$field_name] = $node->content[$field_name];
+ $element[$field_name]['#weight'] = $field['weight'];
+ $element[$field_name]['#depth'] = $field['depth'];
}
}
@@ -636,10 +863,12 @@ function fieldgroup_build_content($group, &$node, $teaser, $page) {
$wrapper = array(
'group' => $element,
'#weight' => $group['weight'],
+ '#depth' => $group['depth'],
'#post_render' => array('fieldgroup_wrapper_post_render'),
'#group_name' => $group_name,
'#type_name' => $node->type,
'#context' => $context,
+ '#group_parent' => $group['parent'],
);
$node->content[$group_name] = $wrapper;
@@ -734,7 +963,7 @@ function fieldgroup_wrapper_post_render($content, $element) {
return $content;
}
-/*
+/**
* Get the group name for a field.
* If the field isn't in a group, FALSE will be returned.
* @return The name of the group, or FALSE.
@@ -792,7 +1021,7 @@ function fieldgroup_fields_tablename($version = NULL) {
* @todo
* Make this into more of a real API for groups.
*/
-/*
+/**
* Saves the given group for this content-type
*/
function fieldgroup_save_group($type_name, $group) {
@@ -803,18 +1032,19 @@ function fieldgroup_save_group($type_name, $group) {
$function = $module .'_fieldgroup_save_group';
$function($group);
}
-
+
if (!isset($groups[$group['group_name']])) {
// Accept group name from programmed submissions if valid.
- db_query("INSERT INTO {". fieldgroup_tablename() ."} (group_type, type_name, group_name, label, settings, weight)".
- " VALUES ('%s', '%s', '%s', '%s', '%s', %d)", $group['group_type'], $type_name, $group['group_name'], $group['label'], serialize($group['settings']), $group['weight']);
+ db_query("INSERT INTO {". fieldgroup_tablename() ."} (parent, group_type, type_name, group_name, label, settings, weight)".
+ " VALUES ('%s','%s', '%s', '%s', '%s', '%s', %d)",
+ isset($group['parent']) ? $group['parent'] : $group['parent'], $group['group_type'], $type_name, $group['group_name'], $group['label'], serialize($group['settings']), $group['weight']);
cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
return SAVED_NEW;
}
else {
- db_query("UPDATE {". fieldgroup_tablename() ."} SET group_type = '%s', label = '%s', settings = '%s', weight = %d ".
- "WHERE type_name = '%s' AND group_name = '%s'",
- $group['group_type'], $group['label'], serialize($group['settings']), $group['weight'], $type_name, $group['group_name']);
+ db_query("UPDATE {". fieldgroup_tablename() ."} SET parent = '%s', group_type = '%s', label = '%s', settings = '%s', weight = %d ".
+ "WHERE type_name = '%s' AND group_name = '%s'",
+ isset($group['parent']) ? $group['parent'] : $group['parent'], $group['group_type'], $group['label'], serialize($group['settings']), $group['weight'], $type_name, $group['group_name']);
cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
return SAVED_UPDATED;
}
@@ -881,9 +1111,10 @@ function theme_fieldgroup_fieldset($element) {
*
* @see fieldgroup-simple.tpl.php
*/
-function fieldgroup_preprocess_fieldgroup_simple(&$vars) {
+function template_preprocess_fieldgroup_simple(&$vars) {
$element = $vars['element'];
+ $vars['parent'] = isset($element['#parent']) ? $element['#parent'] : NULL;
$vars['group_name'] = $element['#group_name'];
$vars['group_name_css'] = strtr($element['#group_name'], '_', '-');
$vars['label'] = isset($element['#title']) ? $element['#title'] : '';;
@@ -910,4 +1141,4 @@ function fieldgroup_preprocess_node(&$vars) {
// '#chilren' might not be set if the group is empty.
$vars[$group_name .'_rendered'] = isset($node->content[$group_name]['#children']) ? $node->content[$group_name]['#children'] : '';
}
-}
\ No newline at end of file
+}
diff --git a/modules/fieldgroup/fieldgroup.panels.inc b/modules/fieldgroup/fieldgroup.panels.inc
deleted file mode 100644
index e86ec7b..0000000
--- a/modules/fieldgroup/fieldgroup.panels.inc
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-// $Id: fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched Exp $
-
-/**
- * Implementation of hook_panels_content_types()
- */
-function fieldgroup_panels_content_types() {
- $items = array();
- $items['content_fieldgroup'] = array(
- 'title' => t('Content fieldgroup'),
- 'content_types' => 'fieldgroup_panels_fieldgroup_content_types',
- 'single' => TRUE, // only provides a single content type
- 'render callback' => 'fieldgroup_panels_render_fieldgroup',
- 'add callback' => 'fieldgroup_panels_edit_fieldgroup',
- 'edit callback' => 'fieldgroup_panels_edit_fieldgroup',
- 'title callback' => 'fieldgroup_panels_fieldgroup_title',
- );
- return $items;
-}
-
-/**
- * Return all fieldgroup panel types available.
- */
-function fieldgroup_panels_fieldgroup_content_types() {
- return array(
- 'description' => array(
- 'title' => t('Content fieldgroup'),
- 'icon' => 'icon_node.png',
- 'path' => panels_get_path('content_types/node'),
- 'description' => t('All fields from a fieldgroup on the referenced node.'),
- 'required context' => new panels_required_context(t('Node'), 'node'),
- 'category' => array(t('Node context'), -9),
- ),
- );
-}
-
-/**
- * 'Render' callback for the 'fieldgroup' panel.
- */
-function fieldgroup_panels_render_fieldgroup($subtype, $conf, $panel_args, $context) {
- $node = isset($context->data) ? drupal_clone($context->data) : NULL;
- $block = new stdClass();
- $block->module = 'fieldgroup';
-
- if ($node) {
- $groups = fieldgroup_groups($node->type);
-
- if (isset($groups[$conf['group']])) {
- $group = $groups[$conf['group']];
- $output = array();
-
- foreach ($group['fields'] as $field_name => $field) {
- $field = content_fields($field_name, $node->type);
- $field_view = content_view_field($field, $node);
- if (!is_null($field_view)) {
- $output[] = $field_view;
- }
- }
-
- $block->subject = $group['label'];
- $block->content = $output ? theme('fieldgroup_panel', $output, $node->nid) : $conf['empty'];
- $block->delta = $node->nid;
- }
- }
- else {
- // Node context is not available. Don't print anything.
- $block->subject = $conf['group'];
- $block->content = '';
- $block->delta = 'unknown';
- }
-
- return $block;
-}
-
-/**
- * 'Edit' callback for the 'fieldgroup' panel.
- */
-function fieldgroup_panels_edit_fieldgroup($id, $parents, $conf = array()) {
- // Apply defaults
- if (empty($conf)) {
- $conf = array('title' => '', 'group' => '', 'empty' => '');
- }
-
- // Retrieve the list of all groups on all content types
- $group_list = array();
- $types = fieldgroup_groups(NULL, FALSE, FALSE);
-
- // Add each group to the list with the content type it is from in parentheses
- foreach ($types as $type) {
- foreach ($type as $group) {
- $group_list[$group['group_name']] = t('@group_label (@group_type_name)', array('@group_label' => $group['label'], '@group_type_name' => $group['type_name']));
- }
- }
-
- $form['type_name'] = array(
- '#type' => 'value',
- '#value' => $group['type_name'],
- );
-
- $form['group'] = array(
- '#type' => 'select',
- '#title' => t('Fieldgroup'),
- '#options' => $group_list,
- '#default_value' => $conf['group'],
- '#prefix' => '<div class="clear-block no-float">',
- '#suffix' => '</div>',
- );
-
- $form['empty'] = array(
- '#type' => 'textarea',
- '#title' => 'Empty text',
- '#description' => t('Text to display if group has no data. Note that title will not display unless overridden.'),
- '#rows' => 5,
- '#default_value' => $conf['empty'],
- '#prefix' => '<div class="clear-block no-float">',
- '#suffix' => '</div>',
- );
-
- return $form;
-}
-
-/**
- * 'Title' callback for the 'fieldgroup' panel.
- */
-function fieldgroup_panels_fieldgroup_title($conf, $context) {
- $types = fieldgroup_groups(NULL, FALSE, FALSE);
- $type = $types[$conf['type_name']][$conf['group']];
- return t('"@s" fieldgroup @name', array('@s' => $context->identifier, '@name' => $type['label']));
-}
-
-/**
- * Allows users to theme the panels group.
- */
-function theme_fieldgroup_panel($vars, $nid) {
- return implode('', $vars);
-}
\ No newline at end of file
diff --git a/modules/fieldgroup/panels/content_types/content_fieldgroup.inc b/modules/fieldgroup/panels/content_types/content_fieldgroup.inc
index c62811b..7017b12 100644
--- a/modules/fieldgroup/panels/content_types/content_fieldgroup.inc
+++ b/modules/fieldgroup/panels/content_types/content_fieldgroup.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: content_fieldgroup.inc,v 1.1.2.4 2009/07/18 01:18:07 markuspetrux Exp $
/**
* @file
diff --git a/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po b/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po
deleted file mode 100644
index 9aaebdc..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.de.po
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: modules-fieldgroup-panels-content_types.de.po,v 1.1.2.1 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:08+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:39
-msgid "@type: (fieldgroup) @fieldgroup"
-msgstr "@type: (Feldgruppe) @fieldgroup"
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:42
-msgid "All fields from this fieldgroup on the referenced node."
-msgstr "Alle Felder einer Feldgruppe auf dem referenzierten Beitrag."
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:119
-msgid "\"@s\" fieldgroup (@name)"
-msgstr "„@s“ Feldgruppe (@name)"
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot b/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot
deleted file mode 100644
index 969df82..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup-panels-content_types.pot
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: modules-fieldgroup-panels-content_types.pot,v 1.1.2.1 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-fieldgroup-panels-content_types)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from file: content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:39
-msgid "@type: (fieldgroup) @fieldgroup"
-msgstr ""
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:42
-msgid "All fields from this fieldgroup on the referenced node."
-msgstr ""
-
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:119
-msgid "\"@s\" fieldgroup (@name)"
-msgstr ""
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.de.po b/modules/fieldgroup/translations/modules-fieldgroup.de.po
deleted file mode 100644
index 6b59a76..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.de.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# $Id: modules-fieldgroup.de.po,v 1.1.2.13 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:06+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:30
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr "Alle Felder einer Feldgruppe auf dem referenzierten Beitrag."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr "Beitragskontext"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:91
-msgid "@group_label (@group_type_name)"
-msgstr "@group_label (@group_type_name)"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:102
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr "Feldgruppe"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:128
-msgid "\"@s\" fieldgroup @name"
-msgstr "„@s“ Feldgruppe @name"
-
-#: modules/fieldgroup/fieldgroup.module:130
-msgid "Form settings"
-msgstr "Formulareinstellungen"
-
-#: modules/fieldgroup/fieldgroup.module:131
-msgid "These settings apply to the group in the node editing form."
-msgstr "Diese Einstellungen gelten für die Gruppe im Bearbeitungsformular des Beitrages."
-
-#: modules/fieldgroup/fieldgroup.module:135
-msgid "Style"
-msgstr "Darstellung"
-
-#: modules/fieldgroup/fieldgroup.module:138
-msgid "always open"
-msgstr "Immer geöffnet"
-
-#: modules/fieldgroup/fieldgroup.module:139
-msgid "collapsible"
-msgstr "Zusammenklappbar"
-
-#: modules/fieldgroup/fieldgroup.module:140
-msgid "collapsed"
-msgstr "Zusammengeklappt"
-
-#: modules/fieldgroup/fieldgroup.module:148
-msgid "Instructions to present to the user on the editing form."
-msgstr "Eine Hilfestellung, die dem Benutzer im Bearbeitungsformular angezeigt wird."
-
-#: modules/fieldgroup/fieldgroup.module:153
-msgid "Display settings"
-msgstr "Anzeigeeinstellungen"
-
-#: modules/fieldgroup/fieldgroup.module:154
-msgid "These settings apply to the group on node display."
-msgstr "Diese Einstellungen gelten bei der Beitragsanzeige für die Gruppe."
-
-#: modules/fieldgroup/fieldgroup.module:161
-msgid "A description of the group."
-msgstr "Eine Beschreibung der Gruppe."
-
-#: modules/fieldgroup/fieldgroup.module:206
-msgid "Are you sure you want to remove the group %label?"
-msgstr "Soll die Gruppe %label wirklich gelöscht werden?"
-
-#: modules/fieldgroup/fieldgroup.module:208
-msgid "This action cannot be undone."
-msgstr "Dieser Vorgang kann nicht rückgängig gemacht werden."
-
-#: modules/fieldgroup/fieldgroup.module:217
-msgid "The group %group_name has been removed."
-msgstr "Die Gruppe %group_name wurde gelöscht."
-
-#: modules/fieldgroup/fieldgroup.module:359
-msgid "You need to provide a label."
-msgstr "Eine Bezeichnung muss angegeben werden."
-
-#: modules/fieldgroup/fieldgroup.module:364
-msgid "You need to provide a group name."
-msgstr "Ein Gruppenname muss angegeben werden."
-
-#: modules/fieldgroup/fieldgroup.module:378
-msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr "Der Gruppenname %group_name ist ungültig. Der Name darf nur nicht-akzentuierte Kleinbuchstaben, Zahlen und Unterstriche enthalten."
-
-#: modules/fieldgroup/fieldgroup.module:381
-msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
-msgstr "Der Gruppenname %group_name ist zu lang. Der Name ist inklusive dem Präfix ‚group_‘ auf 32 Zeichen begrenzt."
-
-#: modules/fieldgroup/fieldgroup.module:387
-msgid "The group name %group_name already exists."
-msgstr "Der Gruppenname %group_name ist schon vorhanden."
-
-#: modules/fieldgroup/fieldgroup.module:406;409
-msgid "Add new group:"
-msgstr "Neue Gruppe hinzufügen:"
-
-#: modules/fieldgroup/fieldgroup.module:424
-msgid "Add new group: you need to provide a label."
-msgstr "Neue Gruppe hinzufügen: Eine Bezeichnung muss angegeben werden."
-
-#: modules/fieldgroup/fieldgroup.module:425
-msgid "Add new group: you need to provide a group name."
-msgstr "Neue Gruppe hinzufügen: Ein Gruppenname muss angegeben werden."
-
-#: modules/fieldgroup/fieldgroup.module:654
-msgid "Standard group"
-msgstr "Standard-Gruppe"
-
-#: modules/fieldgroup/fieldgroup.module:45;52
-msgid "Edit group"
-msgstr "Gruppe bearbeiten"
-
-#: modules/fieldgroup/fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "Feldgruppe"
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr "Anzeigegruppen für CCK-Felder erstellen."
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.fr.po b/modules/fieldgroup/translations/modules-fieldgroup.fr.po
deleted file mode 100644
index 04ad703..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.fr.po
+++ /dev/null
@@ -1,110 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 19:20+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/fieldgroup/fieldgroup.module:103
-msgid "Add"
-msgstr "Ajouter"
-
-#: modules/fieldgroup/fieldgroup.module:128
-msgid "Form settings"
-msgstr "Paramètres du formulaire"
-
-#: modules/fieldgroup/fieldgroup.module:129
-msgid "These settings apply to the group in the node editing form."
-msgstr "Ces paramètres s'appliquent au groupe dans le formulaire d'édition de nœud."
-
-#: modules/fieldgroup/fieldgroup.module:133
-msgid "Style"
-msgstr "Style"
-
-#: modules/fieldgroup/fieldgroup.module:136
-msgid "always open"
-msgstr "toujours déplié"
-
-#: modules/fieldgroup/fieldgroup.module:137
-msgid "collapsible"
-msgstr "repliable"
-
-#: modules/fieldgroup/fieldgroup.module:138
-msgid "collapsed"
-msgstr "replié"
-
-#: modules/fieldgroup/fieldgroup.module:146
-msgid "Instructions to present to the user on the editing form."
-msgstr "Instructions à présenter à l'utilisateur dans le formulaire d'édition."
-
-#: modules/fieldgroup/fieldgroup.module:151
-msgid "Display settings"
-msgstr "Paramètres d'affichage"
-
-#: modules/fieldgroup/fieldgroup.module:152
-msgid "These settings apply to the group on node display."
-msgstr "Ces paramètres s'appliquent au groupe à l'affichage du nœud."
-
-#: modules/fieldgroup/fieldgroup.module:159
-msgid "A description of the group."
-msgstr "Description du groupe."
-
-#: modules/fieldgroup/fieldgroup.module:194
-msgid "The group name %name already exists."
-msgstr "Le nom de groupe '%name' existe déjà."
-
-#: modules/fieldgroup/fieldgroup.module:198
-msgid "The group name %name is invalid."
-msgstr "Le nom de groupe '%name' est invalide."
-
-#: modules/fieldgroup/fieldgroup.module:233
-msgid "Are you sure you want to remove the group %label?"
-msgstr "Êtes-vous sûr(e) de vouloir supprimer le groupe '%label' ?"
-
-#: modules/fieldgroup/fieldgroup.module:235
-msgid "This action cannot be undone."
-msgstr "Cette action est irréversible."
-
-#: modules/fieldgroup/fieldgroup.module:244
-msgid "The group %group_name has been removed."
-msgstr "Le groupe '%group_name' a été supprimé."
-
-#: modules/fieldgroup/fieldgroup.module:347
-msgid "Display in group"
-msgstr "Afficher dans le groupe"
-
-#: modules/fieldgroup/fieldgroup.module:350
-msgid "Select a group, in which the field will be displayed on the editing form."
-msgstr "Choisissez un groupe dans lequel apparaîtra le champ dans le formulaire d'édition."
-
-#: modules/fieldgroup/fieldgroup.module:29
-msgid "Add group"
-msgstr "Ajouter un groupe"
-
-#: modules/fieldgroup/fieldgroup.module:37;44
-msgid "Edit group"
-msgstr "Éditer le groupe"
-
-#: modules/fieldgroup/fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "fieldgroup"
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr "Fieldgroup"
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Create field groups for CCK fields."
-msgstr "Créer des groupes de champs pour des champs CCK."
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.hu.po b/modules/fieldgroup/translations/modules-fieldgroup.hu.po
deleted file mode 100644
index 551dfbc..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.hu.po
+++ /dev/null
@@ -1,163 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# fieldgroup.module,v 1.79.2.34 2008/10/06 15:11:39 karens
-# fieldgroup.panels.inc,v 1.1.2.4 2008/10/06 17:21:51 karens
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 16:40-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/fieldgroup/fieldgroup.module:196
-msgid "This action cannot be undone."
-msgstr "Ez a művelet nem visszavonható."
-
-#: modules/fieldgroup/fieldgroup.module:254
-msgid "none"
-msgstr "nincs"
-
-#: modules/fieldgroup/fieldgroup.module:126
-msgid "Style"
-msgstr "Stílus"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:10,66
-msgid "Content fieldgroup"
-msgstr "Tartalom mezőcsoport"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:47
-msgid "Content fieldgroup content goes here."
-msgstr "Tartalom mezőcsoport tartalma jön ide."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:69
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr "Minden mező a mezőcsoportból a hivatkozott tartalmon."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:90
-msgid "@group_label (@group_type_name)"
-msgstr "@group_label (@group_type_name)"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:108
-msgid ""
-"Text to display if group has no data. Note that title will not display "
-"unless overridden."
-msgstr ""
-"Megjelenítendő szöveg, ha a csoportnak nincs adata. A cím nem "
-"jelenik meg, ha nincs felülírva."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:123
-msgid "\"@s\" fieldgroup @name"
-msgstr "„@s” mezőcsoport @name"
-
-#: modules/fieldgroup/fieldgroup.module:121
-msgid "Form settings"
-msgstr "Űrlap beállításai"
-
-#: modules/fieldgroup/fieldgroup.module:122
-msgid "These settings apply to the group in the node editing form."
-msgstr ""
-"Ezek a beállítások lesznek értelmezve a csoportra a "
-"tartalomszerkesztő űrlapon."
-
-#: modules/fieldgroup/fieldgroup.module:129
-msgid "always open"
-msgstr "mindig nyitott"
-
-#: modules/fieldgroup/fieldgroup.module:130
-msgid "collapsible"
-msgstr "összecsukható"
-
-#: modules/fieldgroup/fieldgroup.module:131
-msgid "collapsed"
-msgstr "összecsukott"
-
-#: modules/fieldgroup/fieldgroup.module:139
-msgid "Instructions to present to the user on the editing form."
-msgstr "Az űrlap szerkesztésekor megjelenő útmutató."
-
-#: modules/fieldgroup/fieldgroup.module:144
-msgid "Display settings"
-msgstr "Megjelenítési beállítások"
-
-#: modules/fieldgroup/fieldgroup.module:145
-msgid "These settings apply to the group on node display."
-msgstr ""
-"Ezek a beállítások lesznek értelmezve a csoportra a tartalom "
-"megjelenítésekor."
-
-#: modules/fieldgroup/fieldgroup.module:152
-msgid "A description of the group."
-msgstr "A csoport leírása."
-
-#: modules/fieldgroup/fieldgroup.module:194
-msgid "Are you sure you want to remove the group %label?"
-msgstr "%label csoport biztosan törölhető?"
-
-#: modules/fieldgroup/fieldgroup.module:205
-msgid "The group %group_name has been removed."
-msgstr "%group_name csoport törölve lett."
-
-#: modules/fieldgroup/fieldgroup.module:347
-msgid "You need to provide a label."
-msgstr "Meg kell adni egy címkét."
-
-#: modules/fieldgroup/fieldgroup.module:352
-msgid "You need to provide a group name."
-msgstr "Meg kell adni a csoport nevét."
-
-#: modules/fieldgroup/fieldgroup.module:366
-msgid ""
-"The group name %group_name is invalid. The name must include only "
-"lowercase unaccentuated letters, numbers, and underscores."
-msgstr ""
-"%group_name csoportnév érvénytelen. A név csak ékezet nélküli "
-"kisbetűket, számokat és aláhúzásjeleket tartalmazhat."
-
-#: modules/fieldgroup/fieldgroup.module:369
-msgid ""
-"The group name %group_name is too long. The name is limited to 32 "
-"characters, including the 'group_' prefix."
-msgstr ""
-"%group_name csoportnév túl hosszú. A név csak 32 karakter hosszú "
-"lehet, beleértve a „group_” előtagot is."
-
-#: modules/fieldgroup/fieldgroup.module:381
-msgid "The group name %group_name already exists."
-msgstr "%group_name nevű csoport már létezik."
-
-#: modules/fieldgroup/fieldgroup.module:400,403
-msgid "Add new group:"
-msgstr "Új csoport hozzáadása:"
-
-#: modules/fieldgroup/fieldgroup.module:418
-msgid "Add new group: you need to provide a label."
-msgstr "Új csoport hozzáadása: meg kell adni egy címkét."
-
-#: modules/fieldgroup/fieldgroup.module:419
-msgid "Add new group: you need to provide a group name."
-msgstr "Új csoport hozzáadása: meg kell adni a csoport nevét."
-
-#: modules/fieldgroup/fieldgroup.module:622
-msgid "Standard group"
-msgstr "Alapvető csoport"
-
-#: modules/fieldgroup/fieldgroup.module:39,46
-msgid "Edit group"
-msgstr "Csoport szerkesztése"
-
-#: modules/fieldgroup/fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "mezőcsoport"
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr "Csoportokat hoz létre a CCK mezők számára."
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.nl.po b/modules/fieldgroup/translations/modules-fieldgroup.nl.po
deleted file mode 100644
index c81b584..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.nl.po
+++ /dev/null
@@ -1,192 +0,0 @@
-# $Id: modules-fieldgroup.nl.po,v 1.1.2.1 2009/06/03 20:31:08 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:25+0200\n"
-"PO-Revision-Date: 2009-06-03 14:25+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: fieldgroup.panels.inc:10;27
-msgid "Content fieldgroup"
-msgstr "Inhoudveldgroep"
-
-#: fieldgroup.panels.inc:30
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr "Alle velden van een veldgroep op de gerefereerde node."
-
-#: fieldgroup.panels.inc:31
-msgid "Node"
-msgstr "Node"
-
-#: fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr "Node context"
-
-#: fieldgroup.panels.inc:91
-msgid "@group_label (@group_type_name)"
-msgstr "@group_label (@group_type_name)"
-
-#: fieldgroup.panels.inc:102 fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr "Veldgroep"
-
-#: fieldgroup.panels.inc:112
-msgid "Text to display if group has no data. Note that title will not display unless overridden."
-msgstr ""
-"Tekst om weer te geven als de groep geen data heeft. Merk op dat de "
-"titel niet zal worden getoond tenzij anders ingesteld."
-
-#: fieldgroup.panels.inc:128
-msgid "\"@s\" fieldgroup @name"
-msgstr "\"@s\" veldgroep @name"
-
-#: fieldgroup.module:111
-msgid "Label"
-msgstr "Label"
-
-#: fieldgroup.module:124
-msgid "Form settings"
-msgstr "Formulierinstellingen"
-
-#: fieldgroup.module:125
-msgid "These settings apply to the group in the node editing form."
-msgstr "Deze instellingen zijn voor de groep in het node-bewerkformulier."
-
-#: fieldgroup.module:129
-msgid "Style"
-msgstr "Stijl"
-
-#: fieldgroup.module:132
-msgid "always open"
-msgstr "altijd open"
-
-#: fieldgroup.module:133
-msgid "collapsible"
-msgstr "uitklapbaar"
-
-#: fieldgroup.module:134
-msgid "collapsed"
-msgstr "uitgeklapt"
-
-#: fieldgroup.module:139
-msgid "Help text"
-msgstr "Helptekst"
-
-#: fieldgroup.module:142
-msgid "Instructions to present to the user on the editing form."
-msgstr "Instructies om aan de gebruiker te tonen bij het bewerkformulier."
-
-#: fieldgroup.module:147
-msgid "Display settings"
-msgstr "Weergaveinstellingen"
-
-#: fieldgroup.module:148
-msgid "These settings apply to the group on node display."
-msgstr "Deze instellingen zijn voor de groep van de node-weergave."
-
-#: fieldgroup.module:152
-msgid "Description"
-msgstr "Beschrijving"
-
-#: fieldgroup.module:155
-msgid "A description of the group."
-msgstr "Een beschrijving van de groep"
-
-#: fieldgroup.module:171;335
-msgid "Save"
-msgstr "Opslaan"
-
-#: fieldgroup.module:200
-msgid "Are you sure you want to remove the group %label?"
-msgstr "Weet je zeker dat je de groep %label wilt verwijderen?"
-
-#: fieldgroup.module:202
-msgid "This action cannot be undone."
-msgstr "Deze actie kan niet ongedaan worden gemaakt."
-
-#: fieldgroup.module:203
-msgid "Remove"
-msgstr "Verwijderen"
-
-#: fieldgroup.module:203
-msgid "Cancel"
-msgstr "Annuleren"
-
-#: fieldgroup.module:211
-msgid "The group %group_name has been removed."
-msgstr "De groep %group is verwijderd."
-
-#: fieldgroup.module:260
-msgid "none"
-msgstr "geen"
-
-#: fieldgroup.module:353
-msgid "You need to provide a label."
-msgstr "Je moet een label opgeven."
-
-#: fieldgroup.module:358
-msgid "You need to provide a group name."
-msgstr "Je moet een groepnaam opgeven."
-
-#: fieldgroup.module:372
-msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr ""
-"De groepnaam %group_name in niet toegestaan. De naam mag alleen kleine "
-"alfanumerieke karakters en underscores bevatten."
-
-#: fieldgroup.module:375
-msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
-msgstr ""
-"De groepnaam %group_name is te lang. De naam mag niet langer zijn dan "
-"32 karakters inclusief 'group_'-voorvoegsel."
-
-#: fieldgroup.module:381
-msgid "The group name %group_name already exists."
-msgstr "De groepnaam %group_name bestaat al."
-
-#: fieldgroup.module:400;403
-msgid "Add new group:"
-msgstr "Voeg nieuwe groep toe:"
-
-#: fieldgroup.module:418
-msgid "Add new group: you need to provide a label."
-msgstr "Voeg een nieuwe groep toe: je moet een label opgeven."
-
-#: fieldgroup.module:419
-msgid "Add new group: you need to provide a group name."
-msgstr "Voeg nieuwe groep toe: je moet een groepnaam opgeven."
-
-#: fieldgroup.module:648
-msgid "Standard group"
-msgstr "Standaardgroep"
-
-#: fieldgroup.module:39;46
-msgid "Edit group"
-msgstr "Bewerk groep"
-
-#: fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "veldgroep"
-
-#: fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr "Maak weergavegroepen voor CCK-velden."
-
-#: fieldgroup.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.pot b/modules/fieldgroup/translations/modules-fieldgroup.pot
deleted file mode 100644
index eee69b0..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.pot
+++ /dev/null
@@ -1,142 +0,0 @@
-# $Id: modules-fieldgroup.pot,v 1.1.2.12 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-fieldgroup)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:30
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:91
-msgid "@group_label (@group_type_name)"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:102 modules/fieldgroup/fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:128
-msgid "\"@s\" fieldgroup @name"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:130
-msgid "Form settings"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:131
-msgid "These settings apply to the group in the node editing form."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:135
-msgid "Style"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:138
-msgid "always open"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:139
-msgid "collapsible"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:140
-msgid "collapsed"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:148
-msgid "Instructions to present to the user on the editing form."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:153
-msgid "Display settings"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:154
-msgid "These settings apply to the group on node display."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:161
-msgid "A description of the group."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:206
-msgid "Are you sure you want to remove the group %label?"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:208
-msgid "This action cannot be undone."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:217
-msgid "The group %group_name has been removed."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:359
-msgid "You need to provide a label."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:364
-msgid "You need to provide a group name."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:378
-msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:381
-msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:387
-msgid "The group name %group_name already exists."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:406;409
-msgid "Add new group:"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:424
-msgid "Add new group: you need to provide a label."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:425
-msgid "Add new group: you need to provide a group name."
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:654
-msgid "Standard group"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:45;52
-msgid "Edit group"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.module:0
-msgid "fieldgroup"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr ""
-
diff --git a/modules/fieldgroup/translations/modules-fieldgroup.sv.po b/modules/fieldgroup/translations/modules-fieldgroup.sv.po
deleted file mode 100644
index b636828..0000000
--- a/modules/fieldgroup/translations/modules-fieldgroup.sv.po
+++ /dev/null
@@ -1,204 +0,0 @@
-# $Id: modules-fieldgroup.sv.po,v 1.1.2.1 2009/05/27 13:32:56 seals Exp $
-#
-# Swedish translation of Drupal (fieldgroup)
-# Generated from files:
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Fieldgroup 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:16+0200\n"
-"PO-Revision-Date: 2009-05-27 13:39+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: fieldgroup.panels.inc:10;27
-#: panels/content_types/content_fieldgroup.inc:14
-msgid "Content fieldgroup"
-msgstr "Fältgrupp för innehåll"
-
-#: fieldgroup.panels.inc:30
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr "Alla fält från en fältgrupp på den hänvisade noden."
-
-#: fieldgroup.panels.inc:31
-#: panels/content_types/content_fieldgroup.inc:43
-msgid "Node"
-msgstr "Nod"
-
-#: fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr "Sammanhang för nod"
-
-#: fieldgroup.panels.inc:91
-msgid "@group_label (@group_type_name)"
-msgstr "@group_label (@group_type_name)"
-
-#: fieldgroup.panels.inc:102
-#: fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr "Fältgrupp"
-
-#: fieldgroup.panels.inc:112
-#: panels/content_types/content_fieldgroup.inc:102
-msgid "Text to display if group has no data. Note that title will not display unless overridden."
-msgstr "Text att visa om gruppen inte har något innehåll. Observera att titel inte kommer att visas om det inte åsidosätts."
-
-#: fieldgroup.panels.inc:128
-msgid "\"@s\" fieldgroup @name"
-msgstr "\"@s\" fältgrupp @name"
-
-#: fieldgroup.module:117
-msgid "Label"
-msgstr "Etikett"
-
-#: fieldgroup.module:130
-msgid "Form settings"
-msgstr "Inställningar för formulär"
-
-#: fieldgroup.module:131
-msgid "These settings apply to the group in the node editing form."
-msgstr "Dessa inställningar gäller för gruppen i redigeringsformuläret för noden."
-
-#: fieldgroup.module:135
-msgid "Style"
-msgstr "Stil"
-
-#: fieldgroup.module:138
-msgid "always open"
-msgstr "alltid utfälld"
-
-#: fieldgroup.module:139
-msgid "collapsible"
-msgstr "hopfällbar"
-
-#: fieldgroup.module:140
-msgid "collapsed"
-msgstr "hopfälld"
-
-#: fieldgroup.module:145
-msgid "Help text"
-msgstr "Hjälptext"
-
-#: fieldgroup.module:148
-msgid "Instructions to present to the user on the editing form."
-msgstr "Instruktioner som visas för användaren på redigeringsformuläret."
-
-#: fieldgroup.module:153
-msgid "Display settings"
-msgstr "Inställningar för visning"
-
-#: fieldgroup.module:154
-msgid "These settings apply to the group on node display."
-msgstr "Dessa inställningar gäller för gruppen på visningen av noden."
-
-#: fieldgroup.module:158
-msgid "Description"
-msgstr "Beskrivning"
-
-#: fieldgroup.module:161
-msgid "A description of the group."
-msgstr "En beskrivning av gruppen."
-
-#: fieldgroup.module:177;341
-msgid "Save"
-msgstr "Spara"
-
-#: fieldgroup.module:206
-msgid "Are you sure you want to remove the group %label?"
-msgstr "Är du säker på att du vill ta bort gruppen %label?"
-
-#: fieldgroup.module:208
-msgid "This action cannot be undone."
-msgstr "Denna åtgärd kan inte ångras."
-
-#: fieldgroup.module:209
-msgid "Remove"
-msgstr "Ta bort"
-
-#: fieldgroup.module:209
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: fieldgroup.module:217
-msgid "The group %group_name has been removed."
-msgstr "Gruppen %group_name har tagits bort."
-
-#: fieldgroup.module:266
-msgid "none"
-msgstr "ingen"
-
-#: fieldgroup.module:359
-msgid "You need to provide a label."
-msgstr "Du måste ange en etikett."
-
-#: fieldgroup.module:364
-msgid "You need to provide a group name."
-msgstr "Du måste ange ett gruppnamn."
-
-#: fieldgroup.module:378
-msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr "Gruppnamnet %group_name är inte giltigt. Namnet får enbart bestå av små bokstäver som inte är accentuerade, siffor och understreck."
-
-#: fieldgroup.module:381
-msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
-msgstr "Gruppnamnet %group_name är för långt. Namnet får bestå av max 32 tecken, inklusive prefixet 'group_'."
-
-#: fieldgroup.module:387
-msgid "The group name %group_name already exists."
-msgstr "Gruppnamnet %group_name existerar redan."
-
-#: fieldgroup.module:406;409
-msgid "Add new group:"
-msgstr "Lägg till ny grupp:"
-
-#: fieldgroup.module:424
-msgid "Add new group: you need to provide a label."
-msgstr "Lägg till ny grupp: du måste ange en etikett."
-
-#: fieldgroup.module:425
-msgid "Add new group: you need to provide a group name."
-msgstr "Lägg till ny grupp: du måste ange ett gruppnamn."
-
-#: fieldgroup.module:654
-msgid "Standard group"
-msgstr "Standardgrupp"
-
-#: fieldgroup.module:45;52
-msgid "Edit group"
-msgstr "Redigera grupp"
-
-#: fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "fältgrupp"
-
-#: fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr "Skapa visningsgrupper för fält av typen CCK."
-
-#: fieldgroup.info:0
-msgid "CCK"
-msgstr "CCK"
-
-#: panels/content_types/content_fieldgroup.inc:39
-msgid "@type: (fieldgroup) @fieldgroup"
-msgstr "@type: (fältgrupp) @fieldgroup"
-
-#: panels/content_types/content_fieldgroup.inc:42
-msgid "All fields from this fieldgroup on the referenced node."
-msgstr "Alla fält från denna fältgrup på den hänvisade noden."
-
-#: panels/content_types/content_fieldgroup.inc:119
-msgid "\"@s\" fieldgroup (@name)"
-msgstr "\"@s\" fältgrupp (@name)"
-
diff --git a/modules/nodereference/help/nodereference.help.ini b/modules/nodereference/help/nodereference.help.ini
index 52aba90..2542033 100644
--- a/modules/nodereference/help/nodereference.help.ini
+++ b/modules/nodereference/help/nodereference.help.ini
@@ -1,4 +1,3 @@
-; $Id: nodereference.help.ini,v 1.1.2.2 2008/10/28 01:35:18 yched Exp $
[advanced help settings]
hide = TRUE
diff --git a/modules/nodereference/nodereference.info b/modules/nodereference/nodereference.info
index 39c2d85..d393f9b 100644
--- a/modules/nodereference/nodereference.info
+++ b/modules/nodereference/nodereference.info
@@ -1,4 +1,3 @@
-; $Id: nodereference.info,v 1.8 2008/04/23 18:02:07 dww Exp $
name = Node Reference
description = Defines a field type for referencing one node from another.
dependencies[] = content
diff --git a/modules/nodereference/nodereference.install b/modules/nodereference/nodereference.install
index 546c994..d819f51 100644
--- a/modules/nodereference/nodereference.install
+++ b/modules/nodereference/nodereference.install
@@ -1,5 +1,4 @@
<?php
-// $Id: nodereference.install,v 1.25.2.8 2009/07/19 13:03:56 markuspetrux Exp $
/**
* @file
diff --git a/modules/nodereference/nodereference.module b/modules/nodereference/nodereference.module
old mode 100755
new mode 100644
index 52cff63..7ff87b4
--- a/modules/nodereference/nodereference.module
+++ b/modules/nodereference/nodereference.module
@@ -1,5 +1,4 @@
<?php
-// $Id: nodereference.module,v 1.138.2.68 2010/08/11 23:27:10 pwolanin Exp $
/**
* @file
@@ -15,7 +14,7 @@ function nodereference_menu() {
'title' => 'Nodereference autocomplete',
'page callback' => 'nodereference_autocomplete',
'access callback' => 'nodereference_autocomplete_access',
- 'access arguments' => array(2),
+ 'access arguments' => array(2),
'type' => MENU_CALLBACK
);
return $items;
@@ -125,13 +124,6 @@ function nodereference_field_settings($op, $field) {
'#required' => FALSE,
'#description' => t('Provide a comma separated list of arguments to pass to the view.'),
);
- $form['advanced']['advanced_view_enforce_view_items'] = array(
- '#type' => 'checkbox',
- '#title' => t('Enforce view items in reference list.'),
- '#default_value' => isset($field['advanced_view_enforce_view_items']) ? $field['advanced_view_enforce_view_items'] : '',
- '#required' => FALSE,
- '#description' => t('Provides a way for a user to see a node reference list, but allow any reference to be included.'),
- );
}
else {
$form['advanced']['no_view_help'] = array(
@@ -147,7 +139,6 @@ function nodereference_field_settings($op, $field) {
if (module_exists('views')) {
$settings[] = 'advanced_view';
$settings[] = 'advanced_view_args';
- $settings[] = 'advanced_view_enforce_view_items';
}
return $settings;
@@ -190,7 +181,7 @@ function nodereference_field_settings($op, $field) {
* Implementation of hook_field().
*/
function nodereference_field($op, &$node, $field, &$items, $teaser, $page) {
- static $sanitized_nodes = array();
+ static $sanitized_nodes = array();
switch ($op) {
// When preparing a translation, load any translations of existing references.
@@ -214,31 +205,29 @@ function nodereference_field($op, &$node, $field, &$items, $teaser, $page) {
return $addition;
case 'validate':
- if (!$field['advanced_view_enforce_view_items']) {
- // Extract nids to check.
- $ids = array();
- foreach ($items as $delta => $item) {
- if (is_array($item) && !empty($item['nid'])) {
- if (is_numeric($item['nid'])) {
- $ids[] = $item['nid'];
- }
- else {
- $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
- if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
- form_set_error($error_element, t("%name: invalid input.", array('%name' => t($field['widget']['label']))));
- }
+ // Extract nids to check.
+ $ids = array();
+ foreach ($items as $delta => $item) {
+ if (is_array($item) && !empty($item['nid'])) {
+ if (is_numeric($item['nid'])) {
+ $ids[] = $item['nid'];
+ }
+ else {
+ $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+ if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+ form_set_error($error_element, t("%name: invalid input.", array('%name' => t($field['widget']['label']))));
}
}
- // Prevent performance hog if there are no ids to check.
- if ($ids) {
- $refs = _nodereference_potential_references($field, '', NULL, $ids);
- foreach ($items as $delta => $item) {
- if (is_array($item)) {
- $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
- if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
- if (!empty($item['nid']) && !isset($refs[$item['nid']])) {
- form_set_error($error_element, t("%name: this post can't be referenced.", array('%name' => t($field['widget']['label']))));
- }
+ }
+ // Prevent performance hog if there are no ids to check.
+ if ($ids) {
+ $refs = _nodereference_potential_references($field, '', NULL, $ids);
+ foreach ($items as $delta => $item) {
+ if (is_array($item)) {
+ $error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
+ if (is_array($item) && isset($item['_error_element'])) unset($item['_error_element']);
+ if (!empty($item['nid']) && !isset($refs[$item['nid']])) {
+ form_set_error($error_element, t("%name: this post can't be referenced.", array('%name' => t($field['widget']['label']))));
}
}
}
@@ -280,7 +269,7 @@ function nodereference_field($op, &$node, $field, &$items, $teaser, $page) {
}
}
}
- return $items;
+ return $items;
}
}
@@ -332,7 +321,7 @@ function theme_nodereference_formatter_default($element) {
if (!$element['#item']['safe']['status']) {
$output = '<span class="node-unpublished"> '. t('(Unpublished)') ." $output</span>";
}
- }
+ }
return $output;
}
@@ -968,9 +957,9 @@ function _nodereference_potential_references_standard($field, $string = '', $mat
return $references;
}
- /**
+/**
* Check access to the menu callback of the autocomplete widget.
- *
+ *
* Check for both 'edit' and 'view' access in the unlikely event
* a user has edit but not view access.
*/
diff --git a/modules/nodereference/nodereference.rules.inc b/modules/nodereference/nodereference.rules.inc
index ae3cb1b..c4511c1 100644
--- a/modules/nodereference/nodereference.rules.inc
+++ b/modules/nodereference/nodereference.rules.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens Exp $
/**
* @file
diff --git a/modules/nodereference/panels/relationships/node_from_noderef.inc b/modules/nodereference/panels/relationships/node_from_noderef.inc
index e7e1dcd..f9b555d 100644
--- a/modules/nodereference/panels/relationships/node_from_noderef.inc
+++ b/modules/nodereference/panels/relationships/node_from_noderef.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: node_from_noderef.inc,v 1.1.2.3 2009/07/20 17:34:17 markuspetrux Exp $
/**
* @file
diff --git a/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po b/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po
deleted file mode 100644
index 3f67c39..0000000
--- a/modules/nodereference/translations/modules-nodereference-panels-relationships.de.po
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: modules-nodereference-panels-relationships.de.po,v 1.1.2.1 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:10+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:14
-msgid "Node from reference"
-msgstr "Beitrag der Referenz"
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:16
-msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
-msgstr ""
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:50
-msgid "Node reference field"
-msgstr "Beitragsreferenzfeld"
-
diff --git a/modules/nodereference/translations/modules-nodereference-panels-relationships.pot b/modules/nodereference/translations/modules-nodereference-panels-relationships.pot
deleted file mode 100644
index a13b6be..0000000
--- a/modules/nodereference/translations/modules-nodereference-panels-relationships.pot
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: modules-nodereference-panels-relationships.pot,v 1.1.2.1 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-nodereference-panels-relationships)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from file: node_from_noderef.inc,v 1.1.2.1 2009/06/02 12:24:03 yched
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:14
-msgid "Node from reference"
-msgstr ""
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:16
-msgid "Adds a node from a node reference in a node context; if multiple nodes are referenced, this will get the first referenced node only."
-msgstr ""
-
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:50
-msgid "Node reference field"
-msgstr ""
-
diff --git a/modules/nodereference/translations/modules-nodereference.de.po b/modules/nodereference/translations/modules-nodereference.de.po
deleted file mode 100644
index f22c3c2..0000000
--- a/modules/nodereference/translations/modules-nodereference.de.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# $Id: modules-nodereference.de.po,v 1.2.2.12 2009/03/09 22:04:26 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-03-09 22:08+0100\n"
-"PO-Revision-Date: 2009-03-09 22:59+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/nodereference/nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr "Referenzierten Beitrag laden"
-
-#: modules/nodereference/nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr "Der Inhalt der das Beitragsreferenzfeld enthält"
-
-#: modules/nodereference/nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr "Referenzierter Inhalt"
-
-#: modules/nodereference/nodereference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first content node will be loaded."
-msgstr "Sollte ein Feld mehrere Werte enthalten, wird nur der erste Beitrag geladen."
-
-#: modules/nodereference/nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr "Es sind keine Beitragsreferenzfelder vorhanden."
-
-#: modules/nodereference/nodereference.module:60
-msgid "Node reference"
-msgstr "Beitragsreferenz"
-
-#: modules/nodereference/nodereference.module:61
-msgid "Store the ID of a related node as an integer value."
-msgstr "Speichert die ID des zugehörigen Beitrages als ganzzahligen Wert."
-
-#: modules/nodereference/nodereference.module:75
-msgid "Content types that can be referenced"
-msgstr "Inhaltstypen, auf die referenziert werden kann"
-
-#: modules/nodereference/nodereference.module:97
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Erweitert - Beiträge, auf die referenziert werden kann (Ansicht)"
-
-#: modules/nodereference/nodereference.module:104
-msgid "View used to select the nodes"
-msgstr "Die zur Auswahl von Beiträgen verwendete Ansicht"
-
-#: modules/nodereference/nodereference.module:107
-#, fuzzy
-msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
-msgstr "<p>Wähle die „Views-Modul“-Ansicht das die Beiträge auswählt, die Referenziert werden können.<br />Hinweis:</p>"
-
-#: modules/nodereference/nodereference.module:108;121
-#, fuzzy
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr "<ul><li>Nur Ansichten mit Feldern werden für diesen Zweck nutzbar sein.</li><li>Dies wird die obigen Einstellungen der „Inhaltsttypen“ verwerfen. Stattdessen sollte hierfür der „Filter“-Bereich der Ansicht verwendet werden.</li><li>Um weitere Informationen über Beitragskandidaten für das Erstellungs-/Bearbeitungsformular anzuzeigen, kann das Ansichten-Feld verwendet werden.</li><li>Um die Reihenfolge der Beitragskandidaten festzulegen sollte das „Sortierkriterium“ von Ansichten verwendet werden.</li></ul>"
-
-#: modules/nodereference/nodereference.module:120
-msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:217
-msgid "%name: this post can't be referenced."
-msgstr "%name: Dieser Beitrag kann nicht referenziert werden."
-
-#: modules/nodereference/nodereference.module:242
-msgid "Title (link)"
-msgstr "Titel (Link)"
-
-#: modules/nodereference/nodereference.module:247
-msgid "Title (no link)"
-msgstr "Titel (kein Link)"
-
-#: modules/nodereference/nodereference.module:423
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
-msgstr "Die Methode zur Sammlung von Autovervollständigungsvorschlägen auswählen. Dabei ist zu beachten, dass <em>Enthält</em> auf Websites mit tausenden von Beiträgen große Performanceprobleme verursachen kann."
-
-#: modules/nodereference/nodereference.module:671
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name: Der Titel ist ungültig. Bitte die Auswahl überprüfen."
-
-#: modules/nodereference/nodereference.module:678
-msgid "%name: found no valid post with that title."
-msgstr "%name: Kein gültiger Beitrag mit diesem Titel gefunden."
-
-#: modules/nodereference/nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Autovervollständigung der Beitragsreferenz"
-
-#: modules/nodereference/nodereference.module:0
-msgid "nodereference"
-msgstr "Beitragsreferenz"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Node Reference"
-msgstr "Beitragsreferenz"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr "Definiert einen Feldtyp, um einen Beitrag von einem anderen zu referenzieren."
-
diff --git a/modules/nodereference/translations/modules-nodereference.fr.po b/modules/nodereference/translations/modules-nodereference.fr.po
deleted file mode 100644
index 8afec36..0000000
--- a/modules/nodereference/translations/modules-nodereference.fr.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 18:05+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/nodereference/nodereference.module:71
-msgid "Node reference"
-msgstr "Référence de nœud"
-
-#: modules/nodereference/nodereference.module:72
-msgid "Store the ID of a related node as an integer value."
-msgstr "Enregistre l'identifiant d'un nœud associé, sous la forme d'une valeur entière."
-
-#: modules/nodereference/nodereference.module:90
-msgid "Content types that can be referenced"
-msgstr "Types de contenu pouvant être référencés"
-
-#: modules/nodereference/nodereference.module:101
-msgid "Existing Views"
-msgstr "Vues existantes"
-
-#: modules/nodereference/nodereference.module:108
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Avancé - Nœuds pouvant être référencés (Vue)"
-
-#: modules/nodereference/nodereference.module:114
-msgid "View used to select the nodes"
-msgstr "Vue utilisée pour choisir les nœuds"
-
-#: modules/nodereference/nodereference.module:117
-msgid "Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr "Choisissez la vue du module Views qui sélectionne les nœuds pouvant être référencés.<br />Notez que :<ul><li>seules les vues présentant des champs fonctionneront dans ce cadre </li><li>ceci effacera les paramètres de \"Types de contenus\" figurant ci-dessus. Utilisez à la place la section \"filtres\" de la vue ;</li><li>utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires sur les nœuds candidats dans le formulaire de création/édition de nœud ;</li><li>utilisez la section \"critère de tri\" de la vue pour déterminer l'ordre d'affichage des nœuds candidats.</li></ul>"
-
-#: modules/nodereference/nodereference.module:121
-msgid "View arguments"
-msgstr "Arguments de la vue"
-
-#: modules/nodereference/nodereference.module:124
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Fournit une liste d'arguments, séparés par des virgules, à transmettre à la vue."
-
-#: modules/nodereference/nodereference.module:175
-msgid "%name: This post can't be referenced."
-msgstr "Champ '%name' : cette publication ne peut être référencée."
-
-#: modules/nodereference/nodereference.module:200
-msgid "Title (link)"
-msgstr "Titre (avec lien)"
-
-#: modules/nodereference/nodereference.module:205
-msgid "Title (no link)"
-msgstr "Titre (sans lien)"
-
-#: modules/nodereference/nodereference.module:518
-msgid "%name: Title mismatch. Please check your selection."
-msgstr "Champ '%name' : incohérence au niveau du titre. Merci de vérifier votre sélection."
-
-#: modules/nodereference/nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Auto-complètement de la référence de nœud"
-
-#: modules/nodereference/nodereference.module:0
-msgid "nodereference"
-msgstr "nodereference"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Node Reference"
-msgstr "Node Reference"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr "Définit un type de champ qui permet d'établir des liens entre les nœuds."
-
diff --git a/modules/nodereference/translations/modules-nodereference.hu.po b/modules/nodereference/translations/modules-nodereference.hu.po
deleted file mode 100644
index 17625b2..0000000
--- a/modules/nodereference/translations/modules-nodereference.hu.po
+++ /dev/null
@@ -1,123 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# nodereference.module,v 1.138.2.38 2008/10/06 15:11:39 karens
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 16:40-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/nodereference/nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr "Egy hivatkozott tartalom betöltése"
-
-#: modules/nodereference/nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr "A tartalom, amely a hivatkozó mezőt tartalmazza"
-
-#: modules/nodereference/nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr "Hivatkozott tartalom"
-
-#: modules/nodereference/nodereference.rules.inc:29
-msgid ""
-"Note that if the field has multiple values, only the first content "
-"node will be loaded."
-msgstr ""
-"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
-"első tartalom fog betöltődni."
-
-#: modules/nodereference/nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr "Nincsenek tartalomra hivatkozó mezők meghatározva."
-
-#: modules/nodereference/nodereference.module:68
-msgid "Node reference"
-msgstr "Tartalomra hivatkozás"
-
-#: modules/nodereference/nodereference.module:69
-msgid "Store the ID of a related node as an integer value."
-msgstr "A hivatkozott tartalom azonosítójának tárolása egész számként."
-
-#: modules/nodereference/nodereference.module:87
-msgid "Content types that can be referenced"
-msgstr "Tartalomtípusok, melyekre hivatkozni lehet"
-
-#: modules/nodereference/nodereference.module:110
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Haladó - tartalmak, melyekre hivatkozni lehet (Nézet)"
-
-#: modules/nodereference/nodereference.module:116
-msgid "View used to select the nodes"
-msgstr "Nézet használata a tartalmak kiválasztásához"
-
-#: modules/nodereference/nodereference.module:119
-msgid ""
-"Choose the \"Views module\" view that selects the nodes that can be "
-"referenced.<br />Note:<ul><li>Only views that have fields will work "
-"for this purpose.</li><li>This will discard the \"Content types\" "
-"settings above. Use the view's \"filters\" section "
-"instead.</li><li>Use the view's \"fields\" section to display "
-"additional informations about candidate nodes on node creation/edition "
-"form.</li><li>Use the view's \"sort criteria\" section to determine "
-"the order in which candidate nodes will be displayed.</li></ul>"
-msgstr ""
-"A „Nézet modul” egyik nézetének kiválasztása, mely azokat a "
-"tartalmakat mutatja, melyekre hivatkozni "
-"lehet.<br>Megjegyzés:<ul><li>Itt csak olyan nézet működik, melynek "
-"vannak mezői.</li><li>Ez felülírja a fenti „Tartalomtípusok” "
-"beállítást. A nézet „szűrő” feltétele használható e "
-"helyett.</li><li>A nézet „mezők” része használható arra, hogy "
-"bővebb információkat jelenítsen meg a lehetséges tartalmakról a "
-"szerkesztő űrlapon.</li><li>A nézet „sorrend” része "
-"befolyásolja a lehetséges tartalmak megjelenítési "
-"sorrendjét.</li></ul>"
-
-#: modules/nodereference/nodereference.module:199
-msgid "%name: this post can't be referenced."
-msgstr "%name: erre a tartalomra nem lehet hivatkozni."
-
-#: modules/nodereference/nodereference.module:224
-msgid "Title (link)"
-msgstr "Cím (hivatkozással)"
-
-#: modules/nodereference/nodereference.module:229
-msgid "Title (no link)"
-msgstr "Cím (hivatkozás nélkül)"
-
-#: modules/nodereference/nodereference.module:624
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name: a cím nem egyezik."
-
-#: modules/nodereference/nodereference.module:631
-msgid "%name: found no valid post with that title."
-msgstr "%name: nincs érvényes tartalom ezzel a címmel."
-
-#: modules/nodereference/nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Automatikusan kiegészülő tartalomhivatkozás"
-
-#: modules/nodereference/nodereference.module:0
-msgid "nodereference"
-msgstr "tartalomhivatozás"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Node Reference"
-msgstr "Tartalomra hivatkozás"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr ""
-"Olyan mezőtípust ad, amely a tartalomban egy másik tartalomra "
-"hivatkozik."
-
diff --git a/modules/nodereference/translations/modules-nodereference.nl.po b/modules/nodereference/translations/modules-nodereference.nl.po
deleted file mode 100644
index c4780d3..0000000
--- a/modules/nodereference/translations/modules-nodereference.nl.po
+++ /dev/null
@@ -1,193 +0,0 @@
-# $Id: modules-nodereference.nl.po,v 1.1.2.1 2009/06/03 20:31:09 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# nodereference.module,v 1.138.2.50 2009/03/18 21:00:58 yched
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:25+0200\n"
-"PO-Revision-Date: 2009-06-03 14:25+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr "Laad een gerefereerde node"
-
-#: nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr "Inhoud met het nodereferentieveld"
-
-#: nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr "Gerefereerde inhoud"
-
-#: nodereference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first content node will be loaded."
-msgstr ""
-"Merk op dat als het veld meerdere waardes heeft, alleen de eerste "
-"inhoudnode zal worden geladen."
-
-#: nodereference.rules.inc:45
-msgid "Field"
-msgstr "Veld"
-
-#: nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr "Er zijn geen nodereferentie velden."
-
-#: nodereference.module:60
-msgid "Node reference"
-msgstr "Nodereferentie"
-
-#: nodereference.module:61
-msgid "Store the ID of a related node as an integer value."
-msgstr "Bewaar de ID van een gerelateerde node als een integer-waarde."
-
-#: nodereference.module:75
-msgid "Content types that can be referenced"
-msgstr "Inhoudstypes waarnaar een referentie geplaatst kan worden"
-
-#: nodereference.module:87
-msgid "Default Views"
-msgstr "Standaard views"
-
-#: nodereference.module:90
-msgid "Existing Views"
-msgstr "Bestaande Views"
-
-#: nodereference.module:97
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Geavanceerd - Nodes die kunnen worden gerefereerd (View)"
-
-#: nodereference.module:104
-msgid "View used to select the nodes"
-msgstr "View die gebruikt wordt voor het selecteren van nodes"
-
-#: nodereference.module:107
-msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
-msgstr ""
-"<p>Kies de \"Views module\"-view die selecteert welke nodes kunnen "
-"worden gerefereerd.<br />Merk op:</p>"
-
-#: nodereference.module:108;121
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr ""
-"<ul><li>Alleen Views met velden zullen werken voor dit "
-"doel.</li><li>Dit zal de \"Inhoudstypes-\"-instellingen boven "
-"negeren. Gebruik anders de view z'n \"filters\" "
-"sectie.</li><li>Gebruik de view z'n \"velden\"-sectie om extra "
-"informatie over gebruikers op het bewerkformulier weer te "
-"geven.</li><li>Gebruik de view z'n \"sorteercriteria\"-sectie om de "
-"volgorde te bepalen waarin gebruikers worden weergegeven.</li></ul>"
-
-#: nodereference.module:112
-msgid "View arguments"
-msgstr "Bekijk argumenten"
-
-#: nodereference.module:115
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr ""
-"Geef een door komma's gescheiden lijst met argumenten op om naar de "
-"view te sturen."
-
-#: nodereference.module:120
-msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-"<p>De lijst met nodes die kunnen worden gerefereerd, gebaseerd op een "
-"\"Views module\"-view, maar geen passende views gevonden. <br />Merk "
-"op:</p>"
-
-#: nodereference.module:205
-msgid "%name: invalid input."
-msgstr "%name: geen toegestane waarde."
-
-#: nodereference.module:217
-msgid "%name: this post can't be referenced."
-msgstr "%name: dit bericht kan niet worden gerefereerd."
-
-#: nodereference.module:242
-msgid "Title (link)"
-msgstr "Titel (link)"
-
-#: nodereference.module:247
-msgid "Title (no link)"
-msgstr "Titel (geen link)"
-
-#: nodereference.module:252
-msgid "Full node"
-msgstr "Volledige node"
-
-#: nodereference.module:257
-msgid "Teaser"
-msgstr "Voorbeeldweergave"
-
-#: nodereference.module:347
-msgid "Select list"
-msgstr "Selectielijst"
-
-#: nodereference.module:355
-msgid "Check boxes/radio buttons"
-msgstr "Vinkje/radio buttons"
-
-#: nodereference.module:363
-msgid "Autocomplete text field"
-msgstr "Automatisch aanvullend tekstveld"
-
-#: nodereference.module:417
-msgid "Autocomplete matching"
-msgstr "Automatisch aanvullende overeenkomst"
-
-#: nodereference.module:420
-msgid "Starts with"
-msgstr "Begint met"
-
-#: nodereference.module:421
-msgid "Contains"
-msgstr "Bevat"
-
-#: nodereference.module:423
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
-msgstr ""
-"Selecteer de methode die wordt gebruikt om automatisch aangevulde "
-"suggesties te geven. Merk op <em>Bevat</em> prestatieproblemen kan "
-"veroorzaken op sites met vele duizenden gebruikers."
-
-#: nodereference.module:671
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name: titel niet gevonden. Controleer je selectie."
-
-#: nodereference.module:678
-msgid "%name: found no valid post with that title."
-msgstr "%name: geen bericht gevonden met die titel."
-
-#: nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Nodereferentie automatisch aanvullen"
-
-#: nodereference.module:0
-msgid "nodereference"
-msgstr "nodereferentie"
-
-#: nodereference.info:0
-msgid "Node Reference"
-msgstr "Nodereferentie"
-
-#: nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr "Levert een veldtype for het refereren van een node naar een ander."
-
-#: nodereference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/nodereference/translations/modules-nodereference.pot b/modules/nodereference/translations/modules-nodereference.pot
deleted file mode 100644
index bf1bb00..0000000
--- a/modules/nodereference/translations/modules-nodereference.pot
+++ /dev/null
@@ -1,114 +0,0 @@
-# $Id: modules-nodereference.pot,v 1.1.2.12 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-nodereference)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# nodereference.module,v 1.138.2.55 2009/06/02 12:24:04 yched
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/nodereference/nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr ""
-
-#: modules/nodereference/nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr ""
-
-#: modules/nodereference/nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr ""
-
-#: modules/nodereference/nodereference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first content node will be loaded."
-msgstr ""
-
-#: modules/nodereference/nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:69
-msgid "Node reference"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:70
-msgid "Store the ID of a related node as an integer value."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:85
-msgid "Content types that can be referenced"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:107
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:114
-msgid "View used to select the nodes"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:117
-msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:118;131
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:130
-msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:228
-msgid "%name: this post can't be referenced."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:253
-msgid "Title (link)"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:258
-msgid "Title (no link)"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:435
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:691
-msgid "%name: title mismatch. Please check your selection."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:698
-msgid "%name: found no valid post with that title."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:0
-msgid "nodereference"
-msgstr ""
-
-#: modules/nodereference/nodereference.info:0
-msgid "Node Reference"
-msgstr ""
-
-#: modules/nodereference/nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr ""
-
diff --git a/modules/nodereference/translations/modules-nodereference.sv.po b/modules/nodereference/translations/modules-nodereference.sv.po
deleted file mode 100644
index 77ba6bf..0000000
--- a/modules/nodereference/translations/modules-nodereference.sv.po
+++ /dev/null
@@ -1,179 +0,0 @@
-# $Id: modules-nodereference.sv.po,v 1.1.2.1 2009/05/27 13:32:56 seals Exp $
-#
-# Swedish translation of Drupal (nodereference)
-# Generated from files:
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# nodereference.module,v 1.138.2.54 2009/04/29 20:51:53 karens
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Nodereference 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:40+0200\n"
-"PO-Revision-Date: 2009-05-27 14:40+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr "Ladda en hänvisad nod"
-
-#: nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr "Innehåll som innehåller det hänvisade nodfältet"
-
-#: nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr "Hänvisat innehåll"
-
-#: nodereference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first content node will be loaded."
-msgstr "Observera att om fält har flera värden, så kommer enbart den första innehållsnoden att laddas."
-
-#: nodereference.rules.inc:45
-msgid "Field"
-msgstr "Fält"
-
-#: nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr "Det finns inga hänvisade nodfält definierade."
-
-#: nodereference.module:60
-msgid "Node reference"
-msgstr "Hänvisad nod"
-
-#: nodereference.module:61
-msgid "Store the ID of a related node as an integer value."
-msgstr "Lagra ID för en relaterad nod som ett heltalsvärde."
-
-#: nodereference.module:76
-msgid "Content types that can be referenced"
-msgstr "Innehållstyper som kan hänvisas"
-
-#: nodereference.module:88
-msgid "Default Views"
-msgstr "Förvald vy"
-
-#: nodereference.module:91
-msgid "Existing Views"
-msgstr "Existerande vyer"
-
-#: nodereference.module:98
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Avancerat - Noder som kan hänvisas (Vyer)"
-
-#: nodereference.module:105
-msgid "View used to select the nodes"
-msgstr "Vy som används för att välja noder"
-
-#: nodereference.module:108
-msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
-msgstr "<p>Välj \"modulen Views\" vy som väljer noden som kan hänvisas.<br />Observera:</p>"
-
-#: nodereference.module:109;122
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr "<ul><li>Enbart vyer som har fält kommer att fungera för detta ändamål.</li><li>Detta kommer att bryta mot inställningarna för \"Innehållstyper\" ovan. Använd vyns \"filtrering\" istället.</li><li>Använd vyns \"fält\" för att visa ytterligare information om kandiderande noder på formuläret för att skapa/redigera nod</li><li>Använd vyns \"sorteringskriterier\" för att bestämma ordningen på vilken de kandiderande noder kommer att visas</li></ul>"
-
-#: nodereference.module:113
-msgid "View arguments"
-msgstr "Argument för vy"
-
-#: nodereference.module:116
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
-
-#: nodereference.module:121
-msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr "<p>Listan av noder som kan hänvisas kan baseras på en vy från \"modulen Views\", men inga lämpliga vyer hittades. <br />Observera</p>"
-
-#: nodereference.module:207
-msgid "%name: invalid input."
-msgstr "%name: ogiltig inmatning."
-
-#: nodereference.module:219
-msgid "%name: this post can't be referenced."
-msgstr "%name: denna post kan inte hänvisas."
-
-#: nodereference.module:244
-msgid "Title (link)"
-msgstr "Titel (länk)"
-
-#: nodereference.module:249
-msgid "Title (no link)"
-msgstr "Titel (ingen länk)"
-
-#: nodereference.module:254
-msgid "Full node"
-msgstr "Fullständig nod"
-
-#: nodereference.module:259
-msgid "Teaser"
-msgstr "Förhandstitt"
-
-#: nodereference.module:349
-msgid "Select list"
-msgstr "Listval"
-
-#: nodereference.module:357
-msgid "Check boxes/radio buttons"
-msgstr "Kryssrutor/radioknappar"
-
-#: nodereference.module:365
-msgid "Autocomplete text field"
-msgstr "Automatiskt kompletterande textfält"
-
-#: nodereference.module:420
-msgid "Autocomplete matching"
-msgstr "Automatiskt kompletterande som överensstämmer"
-
-#: nodereference.module:423
-msgid "Starts with"
-msgstr "Börjar med"
-
-#: nodereference.module:424
-msgid "Contains"
-msgstr "Innehåller"
-
-#: nodereference.module:426
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
-msgstr "Välj metod att använda för att samla in automatiskt kompletterande förslag. Observera att <em>Innehåller</em> kan orsaka prestandaproblem med webbplatser som har tusentals noder."
-
-#: nodereference.module:430
-msgid "Size of textfield"
-msgstr "Storlek på textfält"
-
-#: nodereference.module:682
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name: titel stämmer inte. Var vänlig kontrollera ditt urval."
-
-#: nodereference.module:689
-msgid "%name: found no valid post with that title."
-msgstr "%name: hittade ingen giltig post med denna titel."
-
-#: nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Automatiskt kompletterande nodhänvisning"
-
-#: nodereference.module:0
-msgid "nodereference"
-msgstr "nodereference"
-
-#: nodereference.info:0
-msgid "Node Reference"
-msgstr "Hänvisning av nod"
-
-#: nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr "Definierar en fälttyp för att hänvisa en nod till en annan."
-
-#: nodereference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/number/help/number.help.ini b/modules/number/help/number.help.ini
index 1879356..9003c5c 100644
--- a/modules/number/help/number.help.ini
+++ b/modules/number/help/number.help.ini
@@ -1,4 +1,3 @@
-; $Id: number.help.ini,v 1.1.2.2 2008/10/28 01:35:18 yched Exp $
[advanced help settings]
hide = TRUE
diff --git a/modules/number/number.info b/modules/number/number.info
index 8273873..2093906 100644
--- a/modules/number/number.info
+++ b/modules/number/number.info
@@ -1,4 +1,3 @@
-; $Id: number.info,v 1.7 2008/04/23 18:02:16 dww Exp $
name = Number
description = Defines numeric field types.
dependencies[] = content
diff --git a/modules/number/number.install b/modules/number/number.install
index 21927b3..0fc566d 100644
--- a/modules/number/number.install
+++ b/modules/number/number.install
@@ -1,5 +1,4 @@
<?php
-// $Id: number.install,v 1.28.2.6 2008/10/04 13:14:22 karens Exp $
/**
* @file
diff --git a/modules/number/number.module b/modules/number/number.module
index 182c9f1..667a503 100644
--- a/modules/number/number.module
+++ b/modules/number/number.module
@@ -1,5 +1,4 @@
<?php
-// $Id: number.module,v 1.91.2.37 2009/10/15 10:45:03 markuspetrux Exp $
/**
* @file
diff --git a/modules/number/translations/modules-number.de.po b/modules/number/translations/modules-number.de.po
deleted file mode 100644
index 84857ba..0000000
--- a/modules/number/translations/modules-number.de.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# $Id: modules-number.de.po,v 1.2.2.10 2008/11/05 12:24:01 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2008-11-05 12:54+0100\n"
-"PO-Revision-Date: 2008-11-05 13:18+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/number/number.module:34
-msgid "Integer"
-msgstr "Ganzzahl"
-
-#: modules/number/number.module:35
-msgid "Store a number in the database as an integer."
-msgstr "Speichert die Zahl in der Datenbank als Ganzzahl."
-
-#: modules/number/number.module:38
-msgid "Decimal"
-msgstr "Dezimalzahl"
-
-#: modules/number/number.module:39
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Speichert die Zahl in der Datenbank in einem festen Dezimalformat."
-
-#: modules/number/number.module:42
-msgid "Float"
-msgstr "Fließkommazahl"
-
-#: modules/number/number.module:43
-msgid "Store a number in the database in a floating point format."
-msgstr "Speichert die Zahl in der Datenbank in einem Fließkommaformat."
-
-#: modules/number/number.module:57
-msgid "Minimum"
-msgstr "Minimum"
-
-#: modules/number/number.module:63
-msgid "Maximum"
-msgstr "Maximum"
-
-#: modules/number/number.module:71
-msgid "Precision"
-msgstr "Präzision"
-
-#: modules/number/number.module:72
-msgid "The total number of digits to store in the database, including those to the right of the decimal."
-msgstr "Die gesamte Anzahl der in der Datenbank zu speichernden Stellen, inclusive der rechts vom Dezimaltrennzeichen angegebenen."
-
-#: modules/number/number.module:78
-msgid "Scale"
-msgstr "Skalierung"
-
-#: modules/number/number.module:79
-msgid "The number of digits to the right of the decimal."
-msgstr "Die Anzahl der rechts vom Dezimaltrennzeichen angegebenen Stellen."
-
-#: modules/number/number.module:85
-msgid "Decimal marker"
-msgstr "Dezimalzeichen"
-
-#: modules/number/number.module:86
-msgid "The character users will input to mark the decimal point in forms."
-msgstr "Das von Benutzern in Formularen als Dezimalzeichen zu verwendende Symbol."
-
-#: modules/number/number.module:92
-msgid "Prefix"
-msgstr "Präfix"
-
-#: modules/number/number.module:95
-msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Eine Zeichenkette angeben, welche dem Wert vorrangestellt werden soll, z.b. $ oder €. Ansonsten freilassen. Werte für Einzahl und Mehrzahl mit einer Pipe trennen (Pfund|Pfunde)."
-
-#: modules/number/number.module:99
-msgid "Suffix"
-msgstr "Suffix"
-
-#: modules/number/number.module:102
-msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Eine Zeichenkette angeben, welche dem Wert angehängt werden soll, z.b. m², m/s², kb/s. Ansonsten freilassen. Werte für Einzahl und Mehrzahl mit einer Pipe trennen (Pfund|Pfunde)."
-
-#: modules/number/number.module:195
-msgid "\"Minimum\" must be a number."
-msgstr "„Minimum“ muss eine Zahl sein."
-
-#: modules/number/number.module:202
-msgid "\"Maximum\" must be a number."
-msgstr "„Maximum“ muss eine Zahl sein."
-
-#: modules/number/number.module:219
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name: Der Wert darf nicht kleiner als %min sein."
-
-#: modules/number/number.module:222
-msgid "%name: the value may be no larger than %max."
-msgstr "%name: Der Wert darf nicht grösser als %max sein."
-
-#: modules/number/number.module:270
-msgid "unformatted"
-msgstr "unformatiert"
-
-# Float validation: English needs work
-#: modules/number/number.module:509
-#, fuzzy
-msgid "Only numbers and decimals are allowed in %field."
-msgstr "Im Feld %field sind nur Ganzzahlen und Fließkommazahlen zulässig."
-
-# Integer validation: English needs work
-#: modules/number/number.module:532
-#, fuzzy
-msgid "Only numbers are allowed in %field."
-msgstr "Im Feld %field sind nur Ganzzahlen zulässig."
-
-# Decimal validation with decimal character: English needs work
-#: modules/number/number.module:556
-#, fuzzy
-msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
-msgstr "Im Feld %field sind nur Dezimalzahlen und das Dezimaltrennzeichen (%decimal) zulässig."
-
-#: modules/number/number.module:0
-msgid "number"
-msgstr "Zahl"
-
-#: modules/number/number.info:0
-msgid "Number"
-msgstr "Zahl"
-
-#: modules/number/number.info:0
-msgid "Defines numeric field types."
-msgstr "Definiert einen numerischen Feldtyp."
-
diff --git a/modules/number/translations/modules-number.fr.po b/modules/number/translations/modules-number.fr.po
deleted file mode 100644
index b1b913f..0000000
--- a/modules/number/translations/modules-number.fr.po
+++ /dev/null
@@ -1,163 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/number/number.module:41
-msgid "Integer"
-msgstr "Entier"
-
-#: modules/number/number.module:42
-msgid "Store a number in the database as an integer."
-msgstr "Enregistre un nombre dans la base de données en tant qu'entier."
-
-#: modules/number/number.module:49
-msgid "Decimal"
-msgstr "Décimal"
-
-#: modules/number/number.module:50
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Enregistre un nombre dans la base de données en format décimal fixe."
-
-#: modules/number/number.module:57
-msgid "Float"
-msgstr "Réel à virgule flottante"
-
-#: modules/number/number.module:58
-msgid "Store a number in the database in a floating point format."
-msgstr ""
-"Enregistre un nombre dans la base de données en format réel à virgule "
-"flottante."
-
-#: modules/number/number.module:76
-msgid "Minimum"
-msgstr "Minimum"
-
-#: modules/number/number.module:81
-msgid "Maximum"
-msgstr "Maximum"
-
-#: modules/number/number.module:88
-msgid "Precision"
-msgstr "Précision"
-
-#: modules/number/number.module:89
-msgid ""
-"The total number of digits to store in the database, including those to the "
-"right of the decimal."
-msgstr ""
-"Nombre total de chiffres à enregistrer dans la base de données, y compris "
-"ceux à droite du marqueur décimal."
-
-#: modules/number/number.module:95
-msgid "Scale"
-msgstr "Échelle"
-
-#: modules/number/number.module:96
-msgid "The number of digits to the right of the decimal."
-msgstr "Nombre de chiffres à la droite du marqueur décimal."
-
-#: modules/number/number.module:102
-msgid "Decimal marker"
-msgstr "Marqueur décimal"
-
-#: modules/number/number.module:103
-msgid "The character users will input to mark the decimal point in forms."
-msgstr ""
-"Caractère employé par les utilisateurs dans les formulaires pour signaler la "
-"partie décimale des nombres."
-
-#: modules/number/number.module:109
-msgid "Prefix"
-msgstr "Préfixe"
-
-#: modules/number/number.module:112
-msgid ""
-"Define a string that should be prefixed to the value, like $ or €. Leave "
-"blank for none. Separate singular and plural values with a pipe (pound|"
-"pounds)."
-msgstr ""
-"Définissez une chaîne de caractères à utiliser pour préfixer la valeur, par "
-"exemple $ ou €. Laissez vide pour ne rien afficher de plus. Séparez les "
-"valeurs singulier et pluriel par une barre verticale (euro|euros)."
-
-#: modules/number/number.module:116
-msgid "Suffix"
-msgstr "Suffixe"
-
-#: modules/number/number.module:119
-msgid ""
-"Define a string that should suffixed to the value, like m², m/s², kb/s. "
-"Leave blank for none. Separate singular and plural values with a pipe (pound|"
-"pounds)."
-msgstr ""
-"Définissez une chaîne de caractères à utiliser pour suffixerla valeur, par "
-"exemple m², m/s², ko/s. Laissez vide pour ne rien afficher de plus. Séparez "
-"les valeurs singulier et pluriel par une barre verticale (euro|euros)."
-
-#: modules/number/number.module:162
-msgid "\"Minimum\" must be a number."
-msgstr "'Minimum' doit être un nombre."
-
-#: modules/number/number.module:165
-msgid "\"Maximum\" must be a number."
-msgstr "'Maximum' doit être un nombre."
-
-#: modules/number/number.module:222
-msgid "The value of %name may be no smaller than %min."
-msgstr "La valeur de '%name 'ne peut être plus petite que %min."
-
-#: modules/number/number.module:225
-msgid "The value of %name may be no larger than %max."
-msgstr "La valeur de '%name' ne peut pas être plus grande que %max."
-
-#: modules/number/number.module:263
-msgid "unformatted"
-msgstr "non mis en forme"
-
-#: modules/number/number.module:476
-msgid ""
-"Only numbers and decimals are allowed in %field. %start was changed to %"
-"value."
-msgstr ""
-"Seuls des nombres et des décimaux sont autorisés dans '%field'. La valeur "
-"saisie, '%start', a été modifié en '%value'."
-
-#: modules/number/number.module:494
-msgid "Only numbers are allowed in %field. %start was changed to %value."
-msgstr ""
-"Seuls des nombres sont autorisés dans '%field'. La valeur saisie, '%start', "
-"a été modifié en '%value'."
-
-#: modules/number/number.module:513
-msgid ""
-"Only numbers and the decimal character (%decimal) are allowed in %field. %"
-"start was changed to %value."
-msgstr ""
-"Seuls des nombres et le marqueur décimal (%decimal) sont autorisés dans '%"
-"field'. La valeur saisie, '%start', a été modifié en '%value'."
-
-#: modules/number/number.module:0
-msgid "number"
-msgstr "number"
-
-#: modules/number/number.info:0
-msgid "Number"
-msgstr "Number"
-
-#: modules/number/number.info:0
-msgid "Defines numeric field types."
-msgstr "Permet de définir des champs numériques"
diff --git a/modules/number/translations/modules-number.hu.po b/modules/number/translations/modules-number.hu.po
deleted file mode 100644
index 8e81838..0000000
--- a/modules/number/translations/modules-number.hu.po
+++ /dev/null
@@ -1,228 +0,0 @@
-# Hungarian translation of number (all releases)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# number.module,v 1.91.2.23 2008/10/06 15:11:39 karens
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: number (all releases)\n"
-"POT-Creation-Date: 2008-10-26 11:25-0500\n"
-"PO-Revision-Date: 2008-10-26 09:39-0500\n"
-"Last-Translator: Fehér János <feher.janos _at- mindworks.hu>\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: number.module:147,156
-msgid "Code"
-msgstr "Kód"
-
-#: number.info:0
-msgid "Number"
-msgstr "Szám"
-
-#: number.module:91
-msgid "Precision"
-msgstr "Helyiértékek"
-
-#: number.module:112
-msgid "Prefix"
-msgstr "Előtag"
-
-#: number.module:119
-msgid "Suffix"
-msgstr "Toldalék"
-
-#: number.info:0
-msgid "CCK"
-msgstr "CCK"
-
-#: number.module:140
-msgid "PHP code"
-msgstr "PHP kód"
-
-#: number.module:157
-msgid "&lt;none&gt;"
-msgstr "&lt;nincs&gt;"
-
-#: number.module:158
-msgid "You're not allowed to input PHP code."
-msgstr "Nem engedélyezett a PHP kód bevitele."
-
-#: number.module:42
-msgid "Integer"
-msgstr "Egész szám"
-
-#: number.module:43
-msgid "Store a number in the database as an integer."
-msgstr "Egészként tárol számot az adatbázisban."
-
-#: number.module:50
-msgid "Decimal"
-msgstr "Decimális"
-
-#: number.module:51
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Rögzített tízes számot tárol az adatbázisban"
-
-#: number.module:58
-msgid "Float"
-msgstr "Lebegőpontos"
-
-#: number.module:59
-msgid "Store a number in the database in a floating point format."
-msgstr "Lebegőpontos számot tárol az adatbázisban."
-
-#: number.module:77
-msgid "Minimum"
-msgstr "Minimum"
-
-#: number.module:83
-msgid "Maximum"
-msgstr "Maximum"
-
-#: number.module:92
-msgid ""
-"The total number of digits to store in the database, including those "
-"to the right of the decimal."
-msgstr ""
-"Az adatbázisban tárolt számjegyek teljes száma, beleértve a "
-"tizedesponttól jobbra lévő számjegyeket is."
-
-#: number.module:98
-msgid "Scale"
-msgstr "Felbontás"
-
-#: number.module:99
-msgid "The number of digits to the right of the decimal."
-msgstr "A számjegyek száma."
-
-#: number.module:105
-msgid "Decimal marker"
-msgstr "Decimális jelölő"
-
-#: number.module:106
-msgid "The character users will input to mark the decimal point in forms."
-msgstr "Az űrlapokon a tizedespont jelölésére használt karakter."
-
-#: number.module:115
-msgid ""
-"Define a string that should be prefixed to the value, like $ or €. "
-"Leave blank for none. Separate singular and plural values with a pipe "
-"(pound|pounds)."
-msgstr ""
-"Egy karaktersorozat, ami az érték előtagja lehet, mint például a "
-"$ vagy az €. Ha nincs előtag, akkor üresen kell hagyni. "
-"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
-"többes számú alakot (font|fontok)."
-
-#: number.module:122
-msgid ""
-"Define a string that should suffixed to the value, like m², m/s², "
-"kb/s. Leave blank for none. Separate singular and plural values with a "
-"pipe (pound|pounds)."
-msgstr ""
-"Egy karaktersorozat, ami az érték toldaléka lehet, mint például "
-"m², m/s², kb/s. Ha nincs toldalék, akkor üresen kell hagyni. "
-"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
-"többes számú alakot (font|fontok)."
-
-#: number.module:126
-msgid "Allowed values"
-msgstr "Megengedett értékek"
-
-#: number.module:132
-msgid "Allowed values list"
-msgstr "Megengedett értékek"
-
-#: number.module:136
-msgid ""
-"The possible values this field can contain. Enter one value per line, "
-"in the format key|label. The key is the value that will be stored in "
-"the database, and it must match the field storage type (%type). The "
-"label is optional, and the key will be used as the label if no label "
-"is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
-"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
-"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
-"címke nem kötelező, ha nincs megadva, akkor a kulcs kerül "
-"felhasználásra, mint címke.<br />Engedélyezett HTML elemek: @tags"
-
-#: number.module:150
-msgid ""
-"Advanced usage only: PHP code that returns a keyed array of allowed "
-"values. Should not include &lt;?php ?&gt; delimiters. If this field is "
-"filled out, the array returned by this code will override the allowed "
-"values list above."
-msgstr ""
-"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
-"tömbjét. Nem szükséges &lt;?php ?&gt; elemek közé zárni. Ha ez "
-"a mező ki van töltve, a kód által visszaadott tömb felülír "
-"minden fentebb megadott értéket."
-
-#: number.module:158
-msgid ""
-"This PHP code was set by an administrator and will override the "
-"allowed values list above."
-msgstr ""
-"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
-"írni a fentebb megadott elfogadható értékek listáját."
-
-#: number.module:210
-msgid "\"Minimum\" must be a number."
-msgstr "„Minimum”-nak számot kell megadni."
-
-#: number.module:217
-msgid "\"Maximum\" must be a number."
-msgstr "„Maximum”-nak számot kell megadni."
-
-#: number.module:234
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name: az érték nem lehet kisebb ennél: %min."
-
-#: number.module:237
-msgid "%name: the value may be no larger than %max."
-msgstr "%name: az érték nem lehet nagyobb ennél: %max."
-
-#: number.module:250
-msgid "%name: illegal value."
-msgstr "%name: érvénytelen érték."
-
-#: number.module:285
-msgid "unformatted"
-msgstr "formázatlan"
-
-#: number.module:368
-msgid "Text field"
-msgstr "Szöveg mező"
-
-#: number.module:524
-msgid ""
-"Only numbers and decimals are allowed in %field. %start was changed to "
-"%value."
-msgstr ""
-"%field: csak számok és tizedesek bevitele megengedett. %start új "
-"értéke: %value."
-
-#: number.module:546
-msgid "Only numbers are allowed in %field. %start was changed to %value."
-msgstr ""
-"%field: csak számok bevitele megengedett. %start új értéke: "
-"%value."
-
-#: number.module:569
-msgid ""
-"Only numbers and the decimal character (%decimal) are allowed in "
-"%field. %start was changed to %value."
-msgstr ""
-"%field: csak számok és a tizedespont (%decimal) bevitele "
-"megengedett. %start új értéke: %value."
-
-#: number.module:0
-msgid "number"
-msgstr "szám"
-
diff --git a/modules/number/translations/modules-number.nl.po b/modules/number/translations/modules-number.nl.po
deleted file mode 100644
index 5678e33..0000000
--- a/modules/number/translations/modules-number.nl.po
+++ /dev/null
@@ -1,214 +0,0 @@
-# $Id: modules-number.nl.po,v 1.1.2.1 2009/06/03 20:31:08 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# number.module,v 1.91.2.33 2009/03/16 22:04:07 yched
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:26+0200\n"
-"PO-Revision-Date: 2009-06-03 14:26+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: number.module:34
-msgid "Integer"
-msgstr "Integer"
-
-#: number.module:35
-msgid "Store a number in the database as an integer."
-msgstr "Sla een waarde in de database op als integer."
-
-#: number.module:38
-msgid "Decimal"
-msgstr "Decimaal"
-
-#: number.module:39
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Sla een waarde in de database op in een decimaal formaat."
-
-#: number.module:42
-msgid "Float"
-msgstr "Float"
-
-#: number.module:43
-msgid "Store a number in the database in a floating point format."
-msgstr "Sla een waarde in de database op als floating point getal."
-
-#: number.module:57
-msgid "Minimum"
-msgstr "Minimum"
-
-#: number.module:63
-msgid "Maximum"
-msgstr "Maximum"
-
-#: number.module:71
-msgid "Precision"
-msgstr "Precisie"
-
-#: number.module:72
-msgid "The total number of digits to store in the database, including those to the right of the decimal."
-msgstr ""
-"Het totale aantal cijfers om op te slaan in de database, inclusief de "
-"waardes achter de komma."
-
-#: number.module:78
-msgid "Scale"
-msgstr "Schaal"
-
-#: number.module:79
-msgid "The number of digits to the right of the decimal."
-msgstr "Het aantal waardes achter de komma."
-
-#: number.module:85
-msgid "Decimal marker"
-msgstr "Decimaal scheidingsteken"
-
-#: number.module:86
-msgid "The character users will input to mark the decimal point in forms."
-msgstr ""
-"Het karakter dat gebruikers zullen gebruiken om de waardes achter de "
-"komma aan te geven in formulieren."
-
-#: number.module:92
-msgid "Prefix"
-msgstr "Voorvoegsel"
-
-#: number.module:95
-msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr ""
-"Geef op wat als voorvoegsel moet worden gebruikt zoals: $ of €. Laat "
-"leeg als er geen voorvoegsel moet worden gebruikt. Maak onderscheid "
-"tussen enkelvoud en meervoud met een pipe, bijvoorbeeld: euro|euro's."
-
-#: number.module:99
-msgid "Suffix"
-msgstr "Achtervoegsel"
-
-#: number.module:102
-msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr ""
-"Geef op wat als achtervoegsel moet worden gebruikt zoals: m², m/s², "
-"kb/s. Laat leeg als er geen achtervoegsel moet worden gebruikt. Maak "
-"onderscheid tussen enkelvoud en meervoud met een pipe, bijvoorbeeld: "
-"kilo|kilo's."
-
-#: number.module:106
-msgid "Allowed values"
-msgstr "Toegestane waardes"
-
-#: number.module:112
-msgid "Allowed values list"
-msgstr "Lijst met toegestane waardes"
-
-#: number.module:116
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-"De mogelijke waardes die in dit veld kunnen staan. Voer één waarde "
-"per regel in, in het formaat sleutel|label. De sleutel wordt in de "
-"database opgeslagen en moet overeen komen met het veldopslagtype "
-"(%type). Het label is optioneel. Als geen label wordt ingevoerd zal de "
-"sleutel ook worden gebruikt als label. <br />Toegestane HTML-tags: "
-"@tags"
-
-#: number.module:120
-msgid "PHP code"
-msgstr "PHP code"
-
-#: number.module:127;136
-msgid "Code"
-msgstr "Code"
-
-#: number.module:130
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr ""
-"Alleen voor geavanceerd gebruik: PHP-code die een array met sleutels "
-"geeft van de toegestane waardes. Moet niet beginnen en eindigen met "
-"&lt;?php ?&gt;. Als dit veld in ingevuld zullen de bovenstaande "
-"toegestane waardes worden genegeerd."
-
-#: number.module:137
-msgid "&lt;none&gt;"
-msgstr "&lt;geen&gt;"
-
-#: number.module:138
-msgid "You're not allowed to input PHP code."
-msgstr "Je mag geen PHP-code gebruiken."
-
-#: number.module:138
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr ""
-"Deze PHP-code is door een beheerder ingesteld en zal worden uitgevoerd "
-"in plaats van de toegestane waardeslijst hierboven."
-
-#: number.module:178
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Toegestane waardes"
-
-#: number.module:195
-msgid "\"Minimum\" must be a number."
-msgstr "\"Minimum\" moet een nummer zijn."
-
-#: number.module:202
-msgid "\"Maximum\" must be a number."
-msgstr "\"Maximum\" moet een nummer zijn."
-
-#: number.module:219
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name: de waarde mag niet kleiner zijn dan %min."
-
-#: number.module:222
-msgid "%name: the value may be no larger than %max."
-msgstr "%name: de waarde mag niet groter zijn dan %max."
-
-#: number.module:235
-msgid "%name: illegal value."
-msgstr "%name: niet toegestane waarde."
-
-#: number.module:270
-msgid "unformatted"
-msgstr "ongeformatteerd"
-
-#: number.module:353
-msgid "Text field"
-msgstr "Tekstveld"
-
-#: number.module:512
-msgid "Only numbers and decimals are allowed in %field."
-msgstr "Alleen nummers en decimalen zijn toegestaan in %field."
-
-#: number.module:535
-msgid "Only numbers are allowed in %field."
-msgstr "Alleen nummers zijn toegestaan in %field."
-
-#: number.module:559
-msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
-msgstr ""
-"Alleen nummers en het decimalenkarakter (%decimal) zijn toegestaan in "
-"%field."
-
-#: number.module:0
-msgid "number"
-msgstr "getal"
-
-#: number.info:0
-msgid "Number"
-msgstr "Nummer"
-
-#: number.info:0
-msgid "Defines numeric field types."
-msgstr "Levert numerieke veldtypes."
-
-#: number.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/number/translations/modules-number.pot b/modules/number/translations/modules-number.pot
deleted file mode 100644
index 82b8057..0000000
--- a/modules/number/translations/modules-number.pot
+++ /dev/null
@@ -1,137 +0,0 @@
-# $Id: modules-number.pot,v 1.1.2.12 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-number)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/number/number.module:34
-msgid "Integer"
-msgstr ""
-
-#: modules/number/number.module:35
-msgid "Store a number in the database as an integer."
-msgstr ""
-
-#: modules/number/number.module:39
-msgid "Decimal"
-msgstr ""
-
-#: modules/number/number.module:40
-msgid "Store a number in the database in a fixed decimal format."
-msgstr ""
-
-#: modules/number/number.module:44
-msgid "Float"
-msgstr ""
-
-#: modules/number/number.module:45
-msgid "Store a number in the database in a floating point format."
-msgstr ""
-
-#: modules/number/number.module:60
-msgid "Minimum"
-msgstr ""
-
-#: modules/number/number.module:66
-msgid "Maximum"
-msgstr ""
-
-#: modules/number/number.module:74
-msgid "Precision"
-msgstr ""
-
-#: modules/number/number.module:75
-msgid "The total number of digits to store in the database, including those to the right of the decimal."
-msgstr ""
-
-#: modules/number/number.module:81
-msgid "Scale"
-msgstr ""
-
-#: modules/number/number.module:82
-msgid "The number of digits to the right of the decimal."
-msgstr ""
-
-#: modules/number/number.module:88
-msgid "Decimal marker"
-msgstr ""
-
-#: modules/number/number.module:89
-msgid "The character users will input to mark the decimal point in forms."
-msgstr ""
-
-#: modules/number/number.module:95
-msgid "Prefix"
-msgstr ""
-
-#: modules/number/number.module:98
-msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr ""
-
-#: modules/number/number.module:102
-msgid "Suffix"
-msgstr ""
-
-#: modules/number/number.module:105
-msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr ""
-
-#: modules/number/number.module:198
-msgid "\"Minimum\" must be a number."
-msgstr ""
-
-#: modules/number/number.module:205
-msgid "\"Maximum\" must be a number."
-msgstr ""
-
-#: modules/number/number.module:222
-msgid "%name: the value may be no smaller than %min."
-msgstr ""
-
-#: modules/number/number.module:225
-msgid "%name: the value may be no larger than %max."
-msgstr ""
-
-#: modules/number/number.module:273
-msgid "unformatted"
-msgstr ""
-
-#: modules/number/number.module:515
-msgid "Only numbers and decimals are allowed in %field."
-msgstr ""
-
-#: modules/number/number.module:538
-msgid "Only numbers are allowed in %field."
-msgstr ""
-
-#: modules/number/number.module:562
-msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
-msgstr ""
-
-#: modules/number/number.module:0
-msgid "number"
-msgstr ""
-
-#: modules/number/number.info:0
-msgid "Number"
-msgstr ""
-
-#: modules/number/number.info:0
-msgid "Defines numeric field types."
-msgstr ""
-
diff --git a/modules/number/translations/modules-number.sv.po b/modules/number/translations/modules-number.sv.po
deleted file mode 100644
index 7b5150f..0000000
--- a/modules/number/translations/modules-number.sv.po
+++ /dev/null
@@ -1,190 +0,0 @@
-# $Id: modules-number.sv.po,v 1.1.2.1 2009/05/27 13:32:56 seals Exp $
-#
-# Swedish translation of Drupal (number)
-# Generated from files:
-# number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Number 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:47+0200\n"
-"PO-Revision-Date: 2009-05-27 14:20+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: number.module:34
-msgid "Integer"
-msgstr "Heltal"
-
-#: number.module:35
-msgid "Store a number in the database as an integer."
-msgstr "Lagra ett tal i databasen som ett heltal."
-
-#: number.module:39
-msgid "Decimal"
-msgstr "Decimaltal"
-
-#: number.module:40
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Lagra ett tal i databasen som ett bestämt format för decimaltal."
-
-#: number.module:44
-msgid "Float"
-msgstr "Flyttal"
-
-#: number.module:45
-msgid "Store a number in the database in a floating point format."
-msgstr "Lagra ett tal i databasen som ett flytande format för tal."
-
-#: number.module:60
-msgid "Minimum"
-msgstr "Lägsta"
-
-#: number.module:66
-msgid "Maximum"
-msgstr "Högsta"
-
-#: number.module:74
-msgid "Precision"
-msgstr "Precision"
-
-#: number.module:75
-msgid "The total number of digits to store in the database, including those to the right of the decimal."
-msgstr "Det totala antalet siffror att lagra i databasen, inklusive de till höger om decimalkommat."
-
-#: number.module:81
-msgid "Scale"
-msgstr "Skala"
-
-#: number.module:82
-msgid "The number of digits to the right of the decimal."
-msgstr "Antalet siffror till höger om decimalkommat."
-
-#: number.module:88
-msgid "Decimal marker"
-msgstr "Decimalmärke"
-
-#: number.module:89
-msgid "The character users will input to mark the decimal point in forms."
-msgstr "Tecken användare kommer att mata in för att markera decimalpunkten i formulär."
-
-#: number.module:95
-msgid "Prefix"
-msgstr "Prefix"
-
-#: number.module:98
-msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Definiera en sträng som skall sättas in före värdet, till exempel $ eller €. Utelämna för tomt värde. Separera enstaka och flerfaldiga värden med en stående streck (krona|kronor)."
-
-#: number.module:102
-msgid "Suffix"
-msgstr "Suffix"
-
-#: number.module:105
-msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Definiera en sträng som skall sättas in efter värdet, såsom m², m/s², kb/s. Utelämna för tomt värde. Separera enstaka och flervärdiga värden med ett stående streck (krona|kronor)."
-
-#: number.module:109
-msgid "Allowed values"
-msgstr "Tillåtna värden"
-
-#: number.module:115
-msgid "Allowed values list"
-msgstr "Tillåtna listvärden"
-
-#: number.module:119
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel/etikett. Denna nyckel är värdet som kommer att lagras i databasen och måste överensstämma typen för fältlagring (%type). Etikett är valfritt, och nyckeln som kommer att användas är etiketten om ingen etikett är specificerad.<br />Tillåtna HTML-taggar: @tags"
-
-#: number.module:123
-msgid "PHP code"
-msgstr "PHP-kod"
-
-#: number.module:130;139
-msgid "Code"
-msgstr "Kod"
-
-#: number.module:133
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna &lt;?php ?&gt;. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
-
-#: number.module:140
-msgid "&lt;none&gt;"
-msgstr "&lt;ingen&gt;"
-
-#: number.module:141
-msgid "You're not allowed to input PHP code."
-msgstr "Du har inte tillåtelse att mata in PHP-kod."
-
-#: number.module:141
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
-
-#: number.module:181
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Tillåtna värden"
-
-#: number.module:198
-msgid "\"Minimum\" must be a number."
-msgstr "\"Lägsta\" måste vara ett tal."
-
-#: number.module:205
-msgid "\"Maximum\" must be a number."
-msgstr "\"Högsta\" måste vara ett tal."
-
-#: number.module:222
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name: värdet får inte vara mindre än %min."
-
-#: number.module:225
-msgid "%name: the value may be no larger than %max."
-msgstr "%name: värdet får inte större än %max."
-
-#: number.module:238
-msgid "%name: illegal value."
-msgstr "%name: otillåtet värde."
-
-#: number.module:273
-msgid "unformatted"
-msgstr "oformaterad"
-
-#: number.module:356
-msgid "Text field"
-msgstr "Textfält"
-
-#: number.module:515
-msgid "Only numbers and decimals are allowed in %field."
-msgstr "Enbart sifror och decimaltal är tillåtna i %field."
-
-#: number.module:538
-msgid "Only numbers are allowed in %field."
-msgstr "Enbart siffror är tillåtna i %field."
-
-#: number.module:562
-msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
-msgstr "Enbart siffror och decimaltalstecken (%decimal) är tillåtna i %field."
-
-#: number.module:0
-msgid "number"
-msgstr "number"
-
-#: number.info:0
-msgid "Number"
-msgstr "Nummer"
-
-#: number.info:0
-msgid "Defines numeric field types."
-msgstr "Definierar numeriska fälttyper."
-
-#: number.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/optionwidgets/help/optionwidgets.help.ini b/modules/optionwidgets/help/optionwidgets.help.ini
index 70cdef6..caebd30 100644
--- a/modules/optionwidgets/help/optionwidgets.help.ini
+++ b/modules/optionwidgets/help/optionwidgets.help.ini
@@ -1,4 +1,3 @@
-; $Id: optionwidgets.help.ini,v 1.1.2.2 2008/10/28 01:35:17 yched Exp $
[advanced help settings]
hide = TRUE
diff --git a/modules/optionwidgets/optionwidgets.info b/modules/optionwidgets/optionwidgets.info
index 1c0e5db..c0e34ef 100644
--- a/modules/optionwidgets/optionwidgets.info
+++ b/modules/optionwidgets/optionwidgets.info
@@ -1,4 +1,3 @@
-; $Id: optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww Exp $
name = Option Widgets
description = Defines selection, check box and radio button widgets for text and numeric fields.
dependencies[] = content
diff --git a/modules/optionwidgets/optionwidgets.install b/modules/optionwidgets/optionwidgets.install
index c57b2ea..bdc967c 100644
--- a/modules/optionwidgets/optionwidgets.install
+++ b/modules/optionwidgets/optionwidgets.install
@@ -1,5 +1,4 @@
<?php
-// $Id: optionwidgets.install,v 1.23.2.7 2008/10/04 13:14:22 karens Exp $
/**
* @file
diff --git a/modules/optionwidgets/optionwidgets.module b/modules/optionwidgets/optionwidgets.module
index ec9e451..102af89 100644
--- a/modules/optionwidgets/optionwidgets.module
+++ b/modules/optionwidgets/optionwidgets.module
@@ -1,5 +1,4 @@
<?php
-// $Id: optionwidgets.module,v 1.69.2.27 2009/09/11 09:00:56 markuspetrux Exp $
/**
* @file
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.de.po b/modules/optionwidgets/translations/modules-optionwidgets.de.po
deleted file mode 100644
index 1706893..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.de.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# $Id: modules-optionwidgets.de.po,v 1.1.2.10 2009/08/17 12:26:44 markuspetrux Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2008-11-05 12:54+0100\n"
-"PO-Revision-Date: 2008-11-05 13:34+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/optionwidgets/optionwidgets.module:19
-msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
-msgstr "Eine Liste von Optionen als Liste in der <strong>zulässigen Werteliste</strong> oder als ein Array in PHP-Code erstellen. Diese Werte werden für %field in allen Inhaltsstypen gleich sein."
-
-#: modules/optionwidgets/optionwidgets.module:22
-msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
-msgstr "Für ein einzelnes „an/aus“ Ankreuzfeld-Steuerelement sollte zuerst der ‚aus‘ Wert und dann der ‚an‘ Wert im Bereich der <strong>gültigen Werte</strong> angegeben werden. Das Ankreuzfeld wird mit der Beschriftung des ‚an‘ Wertes beschriftet."
-
-#: modules/optionwidgets/optionwidgets.module:25
-msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
-msgstr "Das ‚Ankreuzfeld/Auswahlknöpfe‘-Steuerelement wird Ankreuzfelder anzeigen, wenn die Option für mehrere Werte bei diesem Feld ausgewählt wurde, ansonsten werden Auswahlknöpfe anzeigt."
-
-#: modules/optionwidgets/optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Für dieses Feld müssen die „zulässigen Werte“ angegeben werden."
-
-#: modules/optionwidgets/optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr "Einzelnes an/aus Ankreuzfeld"
-
-#: modules/optionwidgets/optionwidgets.module:326
-msgid "%name: this field cannot hold more than @count values."
-msgstr "%name: Dieses Feld kann nicht mehr als @count Werte enthalten."
-
-#: modules/optionwidgets/optionwidgets.module:411
-msgid "N/A"
-msgstr "k.A."
-
-#: modules/optionwidgets/optionwidgets.module:415
-msgid "- None -"
-msgstr "- Keine -"
-
-#: modules/optionwidgets/optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "Options-Steuerelemente"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Options-Steuerelemente"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Defines selection, check box and radio button widgets for text and numeric fields."
-msgstr "Definiert Auswahlfeld-, Ankreuzfeld- und Auswahlknopf-Steuerelemente für Texte und numerische Felder."
-
-#: modules/text/text.module:41
-#: modules/text/text.info:0
-msgid "Text"
-msgstr "Text"
-
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.fr.po b/modules/optionwidgets/translations/modules-optionwidgets.fr.po
deleted file mode 100644
index c02d63b..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.fr.po
+++ /dev/null
@@ -1,75 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/optionwidgets/optionwidgets.module:10
-msgid ""
-"Create a list of options as a list in <strong>Allowed values</strong> or as "
-"an array in PHP code. These values will be the same for %field in all "
-"content types."
-msgstr ""
-"Créez une liste d'options en tant que liste dans les <strong>Valeurs "
-"permises</strong> ou en tant que tableau dans le code PHP. Ces valeurs "
-"seront identiques pour '%field' dans tous les types de contenus."
-
-#: modules/optionwidgets/optionwidgets.module:12
-msgid ""
-"For a 'single on/off checkbox' widget, define the 'off' value first, then "
-"the 'on' value in the <strong>Allowed values</strong> section. Note that the "
-"checkbox will be labeled with the label of the 'on' value."
-msgstr ""
-"Pour un widget 'case à cocher on/off unique', définissez d'abord la valeur "
-"'off' puis la valeur 'on' dans la section <strong>Valeurs permises</strong>. "
-"Notez que l'intitulé de la case à cocher sera celui de la valeur 'on'."
-
-#: modules/optionwidgets/optionwidgets.module:15
-msgid ""
-"The 'checkboxes/radio buttons' widget will display checkboxes if the "
-"multiple values option is selected for this field, otherwise radios will be "
-"displayed."
-msgstr ""
-"Le widget 'cases à cocher/bouton radio' fera apparaître des cases à cocher "
-"si l'option 'valeurs multiples' est sélectionnée pour ce champ ; dans le cas "
-"contraire, ce seront des boutons radio."
-
-#: modules/optionwidgets/optionwidgets.module:70
-msgid "Check boxes/radio buttons"
-msgstr "Cases à cocher/boutons radio"
-
-#: modules/optionwidgets/optionwidgets.module:78
-msgid "Single on/off checkbox"
-msgstr "Case à cocher on/off unique"
-
-#: modules/optionwidgets/optionwidgets.module:364
-msgid "N/A"
-msgstr "Non disponible"
-
-#: modules/optionwidgets/optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optionwidgets"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Option Widgets"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid ""
-"Defines selection, check box and radio button widgets for text and numeric "
-"fields."
-msgstr ""
-"Permet de créer des widgets de sélection, cases à cocher et boutons radio "
-"pour les champs de texte et numériques."
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.hu.po b/modules/optionwidgets/translations/modules-optionwidgets.hu.po
deleted file mode 100644
index f4e15e8..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.hu.po
+++ /dev/null
@@ -1,84 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# optionwidgets.module,v 1.69.2.18 2008/10/06 15:11:39 karens
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 11:40-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/optionwidgets/optionwidgets.module:401
-msgid "- None -"
-msgstr "- Nincs -"
-
-#: modules/optionwidgets/optionwidgets.module:397
-msgid "N/A"
-msgstr "N/A"
-
-#: modules/optionwidgets/optionwidgets.module:19
-msgid ""
-"Create a list of options as a list in <strong>Allowed values "
-"list</strong> or as an array in PHP code. These values will be the "
-"same for %field in all content types."
-msgstr ""
-"A választható értékek megadása az <strong>Engedélyezett "
-"értékek</strong> mezőben, vagy egy PHP kóddal előállított "
-"tömbben. Erre a mezőre (%field) vonatkozóan ezek az értékek "
-"minden tartalomtípusnál megegyeznek."
-
-#: modules/optionwidgets/optionwidgets.module:22
-msgid ""
-"For a 'single on/off checkbox' widget, define the 'off' value first, "
-"then the 'on' value in the <strong>Allowed values</strong> section. "
-"Note that the checkbox will be labeled with the label of the 'on' "
-"value."
-msgstr ""
-"Az „egyszerű jelölőnégyzet” felületi elemnél először a "
-"„ki”, majd a „be” állapothoz tartozó értéket kell megadni "
-"az <strong>Engedélyezett értékek</strong> részben. A "
-"jelölőnégyzet címkéje a „be” állapothoz tartozó érték "
-"címkéje lesz."
-
-#: modules/optionwidgets/optionwidgets.module:25
-msgid ""
-"The 'checkboxes/radio buttons' widget will display checkboxes if the "
-"multiple values option is selected for this field, otherwise radios "
-"will be displayed."
-msgstr ""
-"A „Jelölőnégyzetek/választógombok” felületi elem "
-"jelölőnégyzeteket jelenít meg, ha a mezőnek több értéke is "
-"lehet, különben választógombok jelennek meg."
-
-#: modules/optionwidgets/optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Ki kell tölteni a „Megengedett értékek”-et ennél a mezőnél."
-
-#: modules/optionwidgets/optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr "Egyszerű be/ki jelölőnégyzet"
-
-#: modules/optionwidgets/optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optionwidgets"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Kapcsoló felületi elemek"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid ""
-"Defines selection, check box and radio button widgets for text and "
-"numeric fields."
-msgstr ""
-"A szöveg és szám mezőtípushoz legördülő lista, "
-"jelölőnégyzet és választógomb típusú felületi elemeket ad."
-
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.nl.po b/modules/optionwidgets/translations/modules-optionwidgets.nl.po
deleted file mode 100644
index cde532f..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.nl.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# $Id: modules-optionwidgets.nl.po,v 1.1.2.2 2009/08/17 12:26:44 markuspetrux Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:26+0200\n"
-"PO-Revision-Date: 2009-06-03 14:26+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: optionwidgets.module:19
-msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
-msgstr ""
-"Maak een lijst met opties als in <strong>Toegestane "
-"waardeslijst</strong> of als een array in PHP. Deze waarde zullen "
-"hetzelfde zijn in %field in alle inhoudstypes."
-
-#: optionwidgets.module:22
-msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
-msgstr ""
-"Voor een aan/uit vinkjewidget moet je eerst de 'uit'-waarde opgeven en "
-"daarna de 'aan'-waarde in de <strong>Toegestane "
-"waarde</strong>-sectie. Merk op dat het vinkje zal worden gelabeled "
-"met de waarde van 'aan'."
-
-#: optionwidgets.module:25
-msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
-msgstr ""
-"De 'vinkje-/radio button'widget zal een vinkje tonen als de meerdere "
-"toegestane waardes is geselecteerd voor dit veld, anders zullen radio "
-"buttons worden gebruikt."
-
-#: optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Je moet de toegestane waardes voor dit veld opgeven."
-
-#: optionwidgets.module:80
-msgid "Select list"
-msgstr "Selectielijst"
-
-#: optionwidgets.module:88
-msgid "Check boxes/radio buttons"
-msgstr "Vinkje/radio buttons"
-
-#: optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr "Een aan/uit vinkje"
-
-#: optionwidgets.module:331
-msgid "%name: this field cannot hold more than @count values."
-msgstr "%name: dit veld kan niet meer dan @count waardes bevatten."
-
-#: optionwidgets.module:416
-msgid "N/A"
-msgstr "Niet beschikbaar"
-
-#: optionwidgets.module:420
-msgid "- None -"
-msgstr "- Geen -"
-
-#: optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optiewidgets"
-
-#: optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Optiewidgets"
-
-#: optionwidgets.info:0
-msgid "Defines selection, check box and radio button widgets for text and numeric fields."
-msgstr ""
-"Levert selectie-, vinkje- en radio buttonwidgets voor tekst- en "
-"numerieke velden."
-
-#: optionwidgets.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.pot b/modules/optionwidgets/translations/modules-optionwidgets.pot
deleted file mode 100644
index ffe8687..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.pot
+++ /dev/null
@@ -1,71 +0,0 @@
-# $Id: modules-optionwidgets.pot,v 1.1.2.13 2009/08/17 12:26:44 markuspetrux Exp $
-#
-# LANGUAGE translation of Drupal (modules-optionwidgets)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-# text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/optionwidgets/optionwidgets.module:19
-msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:22
-msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:25
-msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:331
-msgid "%name: this field cannot hold more than @count values."
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:416
-msgid "N/A"
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:420
-msgid "- None -"
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.module:0
-msgid "optionwidgets"
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Option Widgets"
-msgstr ""
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Defines selection, check box and radio button widgets for text and numeric fields."
-msgstr ""
-
-#: modules/text/text.module:41 modules/text/text.info:0
-msgid "Text"
-msgstr ""
-
diff --git a/modules/optionwidgets/translations/modules-optionwidgets.sv.po b/modules/optionwidgets/translations/modules-optionwidgets.sv.po
deleted file mode 100644
index ffba6fa..0000000
--- a/modules/optionwidgets/translations/modules-optionwidgets.sv.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# $Id: modules-optionwidgets.sv.po,v 1.1.2.2 2009/08/17 12:26:44 markuspetrux Exp $
-#
-# Swedish translation of Drupal (optionwidgets)
-# Generated from files:
-# optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Optionwidgets 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:47+0200\n"
-"PO-Revision-Date: 2009-05-27 14:01+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: optionwidgets.module:19
-msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
-msgstr "Skapa en lista av alternativ som en lista i <strong>Tillåtna värden</strong> eller som en lista i PHP-kod. Dessa värden kommer att vara likadana för %field i alla innehållstyper."
-
-#: optionwidgets.module:22
-msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
-msgstr "För en gränssnittskomponent \"enstaka kryssruta för av/på\", definiera värdet för \"av\" först, sedan värdet för \"på\" i <strong>Tillåtna värden</strong. Observera att kryssrutan kommer att namnges efter etiketten på värdet för \"på\"."
-
-#: optionwidgets.module:25
-msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
-msgstr "Gränssnittskomponenten för \"kryssrutor/radioknappar\" kommer att visa kryssrutor om flera alternativet flera värden är valt för detta vält, annars kommer radioknappar att visas."
-
-#: optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Du måste ange \"tillåtna värden\" för detta fält."
-
-#: optionwidgets.module:80
-msgid "Select list"
-msgstr "Listval"
-
-#: optionwidgets.module:88
-msgid "Check boxes/radio buttons"
-msgstr "Kryssrutor/radioknappar"
-
-#: optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr "Enstaka kryssruta för av/på"
-
-#: optionwidgets.module:331
-msgid "%name: this field cannot hold more than @count values."
-msgstr "%name: detta fält kan inte innehålla mer än @count värden."
-
-#: optionwidgets.module:416
-msgid "N/A"
-msgstr "Ej tillgänglig"
-
-#: optionwidgets.module:420
-msgid "- None -"
-msgstr "- Ingen -"
-
-#: optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optionwidgets"
-
-#: optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Alternativ för gränssnittskomponent"
-
-#: optionwidgets.info:0
-msgid "Defines selection, check box and radio button widgets for text and numeric fields."
-msgstr "Definierar urval, gränssnittskomponenter för kryssrutor och radioknappar för text- och numeriska fält."
-
-#: optionwidgets.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/text/help/text.help.ini b/modules/text/help/text.help.ini
index 01f0a90..86e633a 100644
--- a/modules/text/help/text.help.ini
+++ b/modules/text/help/text.help.ini
@@ -1,4 +1,3 @@
-; $Id: text.help.ini,v 1.1.2.2 2008/10/28 01:35:18 yched Exp $
[advanced help settings]
hide = TRUE
diff --git a/modules/text/text.info b/modules/text/text.info
index 2e286ec..eb93f74 100644
--- a/modules/text/text.info
+++ b/modules/text/text.info
@@ -1,4 +1,3 @@
-; $Id: text.info,v 1.9 2008/04/23 18:02:31 dww Exp $
name = Text
description = Defines simple text field types.
dependencies[] = content
diff --git a/modules/text/text.install b/modules/text/text.install
index ffcdd23..3aee9be 100644
--- a/modules/text/text.install
+++ b/modules/text/text.install
@@ -1,5 +1,4 @@
<?php
-// $Id: text.install,v 1.37.2.10 2008/10/22 12:53:40 yched Exp $
/**
* @file
diff --git a/modules/text/text.module b/modules/text/text.module
index 1ea4e7a..c8cb59c 100644
--- a/modules/text/text.module
+++ b/modules/text/text.module
@@ -1,5 +1,4 @@
<?php
-// $Id: text.module,v 1.95.2.30 2009/07/18 01:18:07 markuspetrux Exp $
/**
* @file
@@ -167,11 +166,10 @@ function text_field($op, &$node, $field, &$items, $teaser, $page) {
case 'sanitize':
foreach ($items as $delta => $item) {
if (!empty($field['text_processing'])) {
- $check = is_null($node) || (isset($node->build_mode) && $node->build_mode == NODE_BUILD_PREVIEW);
- $text = isset($item['value']) ? check_markup($item['value'], $item['format'], $check) : '';
+ $text = isset($item['value']) ? check_markup($item['value'], $item['format'], FALSE) : '';
}
else {
- $text = check_plain($item['value']);
+ $text = isset($item['value']) ? check_plain($item['value']) : '';
}
$items[$delta]['safe'] = $text;
}
@@ -483,4 +481,4 @@ function theme_text_textfield($element) {
function theme_text_textarea($element) {
return $element['#children'];
-}
\ No newline at end of file
+}
diff --git a/modules/text/translations/modules-text.de.po b/modules/text/translations/modules-text.de.po
deleted file mode 100644
index 6428e97..0000000
--- a/modules/text/translations/modules-text.de.po
+++ /dev/null
@@ -1,74 +0,0 @@
-# $Id: modules-text.de.po,v 1.1.2.10 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:10+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/text/text.module:42
-msgid "Store text in the database."
-msgstr "Text in der Datenbank speichern."
-
-#: modules/text/text.module:55
-msgid "Filtered text (user selects input format)"
-msgstr "Gefilterter Text (Benutzer wählt Eingabeformat aus)"
-
-#: modules/text/text.module:58
-msgid "Text processing"
-msgstr "Textverarbeitung"
-
-#: modules/text/text.module:64
-msgid "Maximum length"
-msgstr "Maximallänge"
-
-#: modules/text/text.module:68
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr "Die maximale Zeichenlänge des Feldes. Für eine unbegrenzte Länge freilassen."
-
-#: modules/text/text.module:160
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name: Der Wert darf nicht länger als %max Zeichen sein."
-
-#: modules/text/text.module:207
-msgid "Trimmed"
-msgstr "Getrimmt"
-
-#: modules/text/text.module:265
-msgid "Text area (multiple rows)"
-msgstr "Textfeld (mehrere Zeilen)"
-
-#: modules/text/text.module:326
-msgid "Rows"
-msgstr "Zeilen"
-
-#: modules/text/text.module:0
-msgid "text"
-msgstr "Text"
-
-#: modules/text/text.info:0
-msgid "Defines simple text field types."
-msgstr "Definiert einfache Typen von Textfeldern."
-
diff --git a/modules/text/translations/modules-text.fr.po b/modules/text/translations/modules-text.fr.po
deleted file mode 100644
index 29e611c..0000000
--- a/modules/text/translations/modules-text.fr.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/text/text.module:50
-msgid "Store text in the database."
-msgstr "Enregistre le texte dans la base de données."
-
-#: modules/text/text.module:272
-msgid "Text area (multiple rows)"
-msgstr "Zone de texte (plusieurs lignes)"
-
-#: modules/text/text.module:0
-msgid "text"
-msgstr "texte"
-
-#: modules/text/text.info:0
-msgid "Defines simple text field types."
-msgstr "Définit les types de champs en texte simple."
diff --git a/modules/text/translations/modules-text.hu.po b/modules/text/translations/modules-text.hu.po
deleted file mode 100644
index 5e74893..0000000
--- a/modules/text/translations/modules-text.hu.po
+++ /dev/null
@@ -1,156 +0,0 @@
-# Hungarian translation of text (all releases)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# text.module,v 1.95.2.20 2008/10/01 17:04:31 karens
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: text (all releases)\n"
-"POT-Creation-Date: 2008-10-26 11:32-0500\n"
-"PO-Revision-Date: 2008-10-26 09:41-0500\n"
-"Last-Translator: Fehér János <feher.janos _at- mindworks.hu>\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: text.module:103,112
-msgid "Code"
-msgstr "Kód"
-
-#: text.module:202
-msgid "Default"
-msgstr "Alapértelmezett"
-
-#: text.module:66,207
-msgid "Plain text"
-msgstr "Egyszerű szöveg"
-
-#: text.info:0
-msgid "CCK"
-msgstr "CCK"
-
-#: text.module:96
-msgid "PHP code"
-msgstr "PHP kód"
-
-#: text.module:113
-msgid "&lt;none&gt;"
-msgstr "&lt;nincs&gt;"
-
-#: text.module:114
-msgid "You're not allowed to input PHP code."
-msgstr "Nem engedélyezett a PHP kód bevitele."
-
-#: text.module:82
-msgid "Allowed values"
-msgstr "Megengedett értékek"
-
-#: text.module:88
-msgid "Allowed values list"
-msgstr "Megengedett értékek"
-
-#: text.module:92
-msgid ""
-"The possible values this field can contain. Enter one value per line, "
-"in the format key|label. The key is the value that will be stored in "
-"the database, and it must match the field storage type (%type). The "
-"label is optional, and the key will be used as the label if no label "
-"is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
-"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
-"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
-"címke nem kötelező, ha nincs megadva, akkor a kulcs kerül "
-"felhasználásra, mint címke.<br />Engedélyezett HTML elemek: @tags"
-
-#: text.module:106
-msgid ""
-"Advanced usage only: PHP code that returns a keyed array of allowed "
-"values. Should not include &lt;?php ?&gt; delimiters. If this field is "
-"filled out, the array returned by this code will override the allowed "
-"values list above."
-msgstr ""
-"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
-"tömbjét. Nem szükséges &lt;?php ?&gt; elemek közé zárni. Ha ez "
-"a mező ki van töltve, a kód által visszaadott tömb felülír "
-"minden fentebb megadott értéket."
-
-#: text.module:114
-msgid ""
-"This PHP code was set by an administrator and will override the "
-"allowed values list above."
-msgstr ""
-"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
-"írni a fentebb megadott elfogadható értékek listáját."
-
-#: text.module:162
-msgid "%name: illegal value."
-msgstr "%name: érvénytelen érték."
-
-#: text.module:262
-msgid "Text field"
-msgstr "Szöveg mező"
-
-#: text.module:50
-msgid "Store text in the database."
-msgstr "Szöveget tárol az adatbázisban."
-
-#: text.module:66
-msgid "Filtered text (user selects input format)"
-msgstr "Formázott szöveg (a felhasználó választja ki a beviteli formát)"
-
-#: text.module:69
-msgid "Text processing"
-msgstr "Szövegfeldolgozás"
-
-#: text.module:75
-msgid "Maximum length"
-msgstr "Maximális hossz"
-
-#: text.module:78
-msgid ""
-"The maximum length of the field in characters. Leave blank for an "
-"unlimited size."
-msgstr ""
-"A mező karakterben mért maximális hossza. Üresen hagyva nincs "
-"korlátozva."
-
-#: text.module:165
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name: az érték nem lehet hosszabb %max karakternél."
-
-#: text.module:212
-msgid "Trimmed"
-msgstr "Levágva"
-
-#: text.module:270
-msgid "Text area (multiple rows)"
-msgstr "Szövegdoboz (többsoros)"
-
-#: text.module:322
-msgid "Size of textfield"
-msgstr "A szövegmező mérete"
-
-#: text.module:331
-msgid "Rows"
-msgstr "Sorok"
-
-#: text.module:348
-msgid "\"Rows\" must be a positive integer."
-msgstr "A „Sorok” számának pozitív egész számot lehet megadni."
-
-#: text.module:355
-msgid "\"Size\" must be a positive integer."
-msgstr "A méret csak pozitív egész szám lehet."
-
-#: text.module:0
-msgid "text"
-msgstr "szöveg"
-
-#: text.module:49; text.info:0
-msgid "Text"
-msgstr "Szöveg"
-
diff --git a/modules/text/translations/modules-text.nl.po b/modules/text/translations/modules-text.nl.po
deleted file mode 100644
index 1c6d0f1..0000000
--- a/modules/text/translations/modules-text.nl.po
+++ /dev/null
@@ -1,147 +0,0 @@
-# $Id: modules-text.nl.po,v 1.1.2.1 2009/06/03 20:31:09 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:26+0200\n"
-"PO-Revision-Date: 2009-06-03 14:26+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: text.module:41 text.info:0
-msgid "Text"
-msgstr "Tekst"
-
-#: text.module:42
-msgid "Store text in the database."
-msgstr "Bewaar tekst in de database."
-
-#: text.module:54;201
-msgid "Plain text"
-msgstr "Platte tekst"
-
-#: text.module:54
-msgid "Filtered text (user selects input format)"
-msgstr "Gefilterede tekst (gebruiker geeft invoerformaat op)"
-
-#: text.module:57
-msgid "Text processing"
-msgstr "Tekstverwerking"
-
-#: text.module:63
-msgid "Maximum length"
-msgstr "Maximum lengte"
-
-#: text.module:67
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr ""
-"De maximum lengte van het veld in karakters. Laat leeg voor "
-"ongelimiteerde grootte."
-
-#: text.module:71
-msgid "Allowed values"
-msgstr "Toegestane waardes"
-
-#: text.module:77
-msgid "Allowed values list"
-msgstr "Lijst met toegestane waardes"
-
-#: text.module:81
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-"De mogelijke waardes die in dit veld kunnen staan. Voer één waarde "
-"per regel in, in het formaat sleutel|label. De sleutel wordt in de "
-"database opgeslagen en moet overeen komen met het veldopslagtype "
-"(%type). Het label is optioneel. Als geen label wordt ingevoerd zal de "
-"sleutel ook worden gebruikt als label. <br />Toegestane HTML-tags: "
-"@tags"
-
-#: text.module:85
-msgid "PHP code"
-msgstr "PHP code"
-
-#: text.module:92;101
-msgid "Code"
-msgstr "Code"
-
-#: text.module:95
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr ""
-"Alleen voor geavanceerd gebruik: PHP-code die een array met sleutels "
-"geeft van de toegestane waardes. Moet niet beginnen en eindigen met "
-"&lt;?php ?&gt;. Als dit veld in ingevuld zullen de bovenstaande "
-"toegestane waardes worden genegeerd."
-
-#: text.module:102
-msgid "&lt;none&gt;"
-msgstr "&lt;geen&gt;"
-
-#: text.module:103
-msgid "You're not allowed to input PHP code."
-msgstr "Je mag geen PHP-code gebruiken."
-
-#: text.module:103
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr ""
-"Deze PHP-code is door een beheerder ingesteld en zal worden uitgevoerd "
-"in plaats van de toegestane waardeslijst hierboven."
-
-#: text.module:132
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Toegestane waardes"
-
-#: text.module:156
-msgid "%name: illegal value."
-msgstr "%name: niet toegestane waarde."
-
-#: text.module:159
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name: de waarde mag niet langer zijn dan %max karakters."
-
-#: text.module:196
-msgid "Default"
-msgstr "Standaard"
-
-#: text.module:206
-msgid "Trimmed"
-msgstr "Ingekort"
-
-#: text.module:256
-msgid "Text field"
-msgstr "Tekstveld"
-
-#: text.module:264
-msgid "Text area (multiple rows)"
-msgstr "Tekstveld (meerdere rijen)"
-
-#: text.module:316
-msgid "Size of textfield"
-msgstr "Maat van het tekstveld"
-
-#: text.module:325
-msgid "Rows"
-msgstr "Rijen"
-
-#: text.module:0
-msgid "text"
-msgstr "tekst"
-
-#: text.info:0
-msgid "Defines simple text field types."
-msgstr "Levert simpele tekstveldtypes."
-
-#: text.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/text/translations/modules-text.pot b/modules/text/translations/modules-text.pot
deleted file mode 100644
index 0d22677..0000000
--- a/modules/text/translations/modules-text.pot
+++ /dev/null
@@ -1,65 +0,0 @@
-# $Id: modules-text.pot,v 1.1.2.12 2009/06/16 17:05:12 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-text)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/text/text.module:42
-msgid "Store text in the database."
-msgstr ""
-
-#: modules/text/text.module:55
-msgid "Filtered text (user selects input format)"
-msgstr ""
-
-#: modules/text/text.module:58
-msgid "Text processing"
-msgstr ""
-
-#: modules/text/text.module:64
-msgid "Maximum length"
-msgstr ""
-
-#: modules/text/text.module:68
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr ""
-
-#: modules/text/text.module:160
-msgid "%name: the value may not be longer than %max characters."
-msgstr ""
-
-#: modules/text/text.module:207
-msgid "Trimmed"
-msgstr ""
-
-#: modules/text/text.module:265
-msgid "Text area (multiple rows)"
-msgstr ""
-
-#: modules/text/text.module:326
-msgid "Rows"
-msgstr ""
-
-#: modules/text/text.module:0
-msgid "text"
-msgstr ""
-
-#: modules/text/text.info:0
-msgid "Defines simple text field types."
-msgstr ""
-
diff --git a/modules/text/translations/modules-text.sv.po b/modules/text/translations/modules-text.sv.po
deleted file mode 100644
index 8ffb805..0000000
--- a/modules/text/translations/modules-text.sv.po
+++ /dev/null
@@ -1,135 +0,0 @@
-# $Id: modules-text.sv.po,v 1.1.2.1 2009/05/27 13:32:56 seals Exp $
-#
-# Swedish translation of Drupal (text)
-# Generated from files:
-# text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Text 6.x\n"
-"POT-Creation-Date: 2009-05-27 13:47+0200\n"
-"PO-Revision-Date: 2009-05-27 14:27+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: text.module:41
-#: text.info:0
-msgid "Text"
-msgstr "Text"
-
-#: text.module:42
-msgid "Store text in the database."
-msgstr "Lagra text i databasen."
-
-#: text.module:55;202
-msgid "Plain text"
-msgstr "Ren text"
-
-#: text.module:55
-msgid "Filtered text (user selects input format)"
-msgstr "Filtrerade text (användare väljer inmatningsformat)"
-
-#: text.module:58
-msgid "Text processing"
-msgstr "Bearbetning av text"
-
-#: text.module:64
-msgid "Maximum length"
-msgstr "Maximal längd"
-
-#: text.module:68
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr "Maximalt antal tecken för fältet. Lämna blankt för oändlig storlek."
-
-#: text.module:72
-msgid "Allowed values"
-msgstr "Tillåtna värden"
-
-#: text.module:78
-msgid "Allowed values list"
-msgstr "Tillåtna listvärden"
-
-#: text.module:82
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel/etikett. Denna nyckel är värdet som kommer att lagras i databasen och måste överensstämma typen för fältlagring (%type). Etikett är valfritt, och nyckeln som kommer att användas är etiketten om ingen etikett är specificerad.<br />Tillåtna HTML-taggar: @tags"
-
-#: text.module:86
-msgid "PHP code"
-msgstr "PHP-kod"
-
-#: text.module:93;102
-msgid "Code"
-msgstr "Kod"
-
-#: text.module:96
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna &lt;?php ?&gt;. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
-
-#: text.module:103
-msgid "&lt;none&gt;"
-msgstr "&lt;ingen&gt;"
-
-#: text.module:104
-msgid "You're not allowed to input PHP code."
-msgstr "Du har inte tillåtelse att mata in PHP-kod."
-
-#: text.module:104
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
-
-#: text.module:133
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Tillåtna värden"
-
-#: text.module:157
-msgid "%name: illegal value."
-msgstr "%name: otillåtet värde."
-
-#: text.module:160
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name: värdet får inte vara längre än %max tecken."
-
-#: text.module:197
-msgid "Default"
-msgstr "Standard"
-
-#: text.module:207
-msgid "Trimmed"
-msgstr "Avkortad"
-
-#: text.module:257
-msgid "Text field"
-msgstr "Textfält"
-
-#: text.module:265
-msgid "Text area (multiple rows)"
-msgstr "Textområde (flera rader)"
-
-#: text.module:317
-msgid "Size of textfield"
-msgstr "Storlek på textfält"
-
-#: text.module:326
-msgid "Rows"
-msgstr "Rader"
-
-#: text.module:0
-msgid "text"
-msgstr "text"
-
-#: text.info:0
-msgid "Defines simple text field types."
-msgstr "Definierar enkla typer av textfält."
-
-#: text.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/userreference/help/userreference.help.ini b/modules/userreference/help/userreference.help.ini
index 8e51d58..284ab7c 100644
--- a/modules/userreference/help/userreference.help.ini
+++ b/modules/userreference/help/userreference.help.ini
@@ -1,4 +1,3 @@
-; $Id: userreference.help.ini,v 1.1.2.2 2008/10/28 01:35:18 yched Exp $
[advanced help settings]
hide = TRUE
diff --git a/modules/userreference/panels/relationships/user_from_userref.inc b/modules/userreference/panels/relationships/user_from_userref.inc
index 667082f..d3d7e9d 100644
--- a/modules/userreference/panels/relationships/user_from_userref.inc
+++ b/modules/userreference/panels/relationships/user_from_userref.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: user_from_userref.inc,v 1.1.2.3 2009/07/21 20:06:12 markuspetrux Exp $
/**
* @file
diff --git a/modules/userreference/translations/modules-userreference-panels-relationships.de.po b/modules/userreference/translations/modules-userreference-panels-relationships.de.po
deleted file mode 100644
index a924cf8..0000000
--- a/modules/userreference/translations/modules-userreference-panels-relationships.de.po
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: modules-userreference-panels-relationships.de.po,v 1.1.2.1 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:12+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:14
-msgid "User from reference"
-msgstr "Benutzer der Referenz"
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:16
-msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
-msgstr ""
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:50
-msgid "User reference field"
-msgstr "Benutzerreferenzfeld"
-
diff --git a/modules/userreference/translations/modules-userreference-panels-relationships.pot b/modules/userreference/translations/modules-userreference-panels-relationships.pot
deleted file mode 100644
index 108d142..0000000
--- a/modules/userreference/translations/modules-userreference-panels-relationships.pot
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: modules-userreference-panels-relationships.pot,v 1.1.2.1 2009/06/16 17:05:11 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-userreference-panels-relationships)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from file: user_from_userref.inc,v 1.1.2.1 2009/06/02 12:24:04 yched
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:14
-msgid "User from reference"
-msgstr ""
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:16
-msgid "Adds a user from a user reference in a node context; if multiple users are referenced, this will get the first referenced user only."
-msgstr ""
-
-#: modules/userreference/panels/relationships/user_from_userref.inc:50
-msgid "User reference field"
-msgstr ""
-
diff --git a/modules/userreference/translations/modules-userreference.de.po b/modules/userreference/translations/modules-userreference.de.po
deleted file mode 100644
index d199111..0000000
--- a/modules/userreference/translations/modules-userreference.de.po
+++ /dev/null
@@ -1,136 +0,0 @@
-# $Id: modules-userreference.de.po,v 1.2.2.11 2009/03/09 22:04:26 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-03-09 22:08+0100\n"
-"PO-Revision-Date: 2009-03-09 23:01+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: modules/userreference/userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr "Einen referenzierten Benutzer laden"
-
-#: modules/userreference/userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr "Der Inhalt der das Benutzerreferenzfeld enthält"
-
-#: modules/userreference/userreference.rules.inc:25
-msgid "Referenced user"
-msgstr "Referenzierter Benutzer"
-
-#: modules/userreference/userreference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first user will be loaded."
-msgstr "Sollte ein Feld mehrere Werte enthalten, wird nur der erste Benutzer geladen."
-
-#: modules/userreference/userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr "Es sind keine Benutzerreferenzfelder vorhanden."
-
-#: modules/userreference/userreference.module:52
-msgid "User reference"
-msgstr "Benutzerreferenz"
-
-#: modules/userreference/userreference.module:53
-msgid "Store the ID of a related user as an integer value."
-msgstr "Speichert die ID eines zugehörigen Benutzers als ganzzahligen Wert."
-
-#: modules/userreference/userreference.module:67
-msgid "User roles that can be referenced"
-msgstr "Benutzerrollen auf die referenziert werden kann"
-
-#: modules/userreference/userreference.module:73
-msgid "User status that can be referenced"
-msgstr "Benutzerstatus der referenziert werden kann"
-
-#: modules/userreference/userreference.module:75
-msgid "Active"
-msgstr "Aktiv"
-
-#: modules/userreference/userreference.module:75
-msgid "Blocked"
-msgstr "Gesperrt"
-
-#: modules/userreference/userreference.module:94
-msgid "Advanced - Users that can be referenced (View)"
-msgstr "Erweitert - Benutzer die referenziert werden können (Ansicht)"
-
-#: modules/userreference/userreference.module:101
-msgid "View used to select the users"
-msgstr "Die zur Auswahl von Benutzern verwendete Ansicht"
-
-#: modules/userreference/userreference.module:104
-#, fuzzy
-msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
-msgstr "<p>Wähle die „Views-Modul“-Ansicht das die Beiträge auswählt, die Referenziert werden können.<br />Hinweis:</p>"
-
-#: modules/userreference/userreference.module:105;118
-#, fuzzy
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
-msgstr "<ul><li>Nur Ansichten mit Feldern werden für diesen Zweck nutzbar sein.</li><li>Dies wird die obigen Einstellungen der „referenzierbaren Rollen“ und „referenzierbaren Status“ verwerfen. Stattdessen sollte hierfür der „Filter“-Bereich der Ansicht verwendet werden.</li><li>Um weitere Informationen über Beitragskandidaten für das Erstellungs-/Bearbeitungsformular anzuzeigen, kann das Ansichten-Feld verwendet werden.</li><li>Um die Reihenfolge der Beitragskandidaten festzulegen sollte das „Sortierkriterium“ von Ansichten verwendet werden.</li></ul>"
-
-#: modules/userreference/userreference.module:117
-msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-
-#: modules/userreference/userreference.module:196
-msgid "%name: invalid user."
-msgstr "%name: Der Benutzer ist ungültig."
-
-#: modules/userreference/userreference.module:349
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
-msgstr "Die Methode zur Sammlung von Autovervollständigungsvorschlägen auswählen. Dabei ist zu beachten, dass <em>Enthält</em> auf Websites mit tausenden von Benutzern große Performanceprobleme verursachen kann."
-
-#: modules/userreference/userreference.module:357
-msgid "Reverse link"
-msgstr "‚Zurück‘-Link"
-
-#: modules/userreference/userreference.module:359
-msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
-msgstr "Sobald ausgewählt, wird auf dem referenzierten Benutzerdatensatz ein ‚Zurück‘-Link zu dem referenzierten Beitrag angezeigt."
-
-#: modules/userreference/userreference.module:594
-msgid "%name: found no valid user with that name."
-msgstr "%name: Kein Benutzer mit diesem Namen gefunden."
-
-#: modules/userreference/userreference.module:889
-msgid "Related content"
-msgstr "Zugehöriger Inhalt"
-
-#: modules/userreference/userreference.module:15
-msgid "Userreference autocomplete"
-msgstr "Autovervollständigung der Benutzerreferenzen"
-
-#: modules/userreference/userreference.module:0
-msgid "userreference"
-msgstr "Benutzerreferenz"
-
-#: modules/userreference/userreference.info:0
-msgid "User Reference"
-msgstr "Benutzerreferenz"
-
-#: modules/userreference/userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr "Definiert einen Feldtyp mit dem von einem Beitrag auf einen Benutzer verwiesen werden kann."
-
diff --git a/modules/userreference/translations/modules-userreference.fr.po b/modules/userreference/translations/modules-userreference.fr.po
deleted file mode 100644
index 3a9c8e6..0000000
--- a/modules/userreference/translations/modules-userreference.fr.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: modules/userreference/userreference.module:52
-msgid "User reference"
-msgstr "Référence utilisateur"
-
-#: modules/userreference/userreference.module:53
-msgid "Store the ID of a related user as an integer value."
-msgstr ""
-"Enregistre l'identifiant d'un utilisateur associé, sous la forme d'une "
-"valeur entière."
-
-#: modules/userreference/userreference.module:71
-msgid "User roles that can be referenced"
-msgstr "Rôles utilisateur pouvant être référencés"
-
-#: modules/userreference/userreference.module:77
-msgid "User status that can be referenced"
-msgstr "Statuts utilisateur pouvant être référencés"
-
-#: modules/userreference/userreference.module:79
-msgid "Active"
-msgstr "Actif"
-
-#: modules/userreference/userreference.module:79
-msgid "Blocked"
-msgstr "Bloqué"
-
-#: modules/userreference/userreference.module:122
-msgid "%name: Invalid user."
-msgstr "Champ '%name' : utilisateur invalide."
-
-#: modules/userreference/userreference.module:253
-msgid "Reverse link"
-msgstr "Lien réciproque"
-
-#: modules/userreference/userreference.module:255
-msgid "No"
-msgstr "Non"
-
-#: modules/userreference/userreference.module:255
-msgid "Yes"
-msgstr "Oui"
-
-#: modules/userreference/userreference.module:257
-msgid ""
-"If selected, a reverse link back to the referencing node will displayed on "
-"the referenced user record."
-msgstr ""
-"Si cette option est sélectionnée, un lien réciproque vers le nœud "
-"référençant sera affiché dans l'enregistrement utilisateur référencé."
-
-#: modules/userreference/userreference.module:586
-msgid "Related content"
-msgstr "Contenus liés"
-
-#: modules/userreference/userreference.module:15
-msgid "Userreference autocomplete"
-msgstr "Autocomplètement de la référence utilisateur"
-
-#: modules/userreference/userreference.module:0
-msgid "userreference"
-msgstr "userreference"
-
-#: modules/userreference/userreference.info:0
-msgid "User Reference"
-msgstr "User Reference"
-
-#: modules/userreference/userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr ""
-"Définit un type de champ qui permet d'établir des liens entre les nœuds et "
-"les utilisateurs."
diff --git a/modules/userreference/translations/modules-userreference.hu.po b/modules/userreference/translations/modules-userreference.hu.po
deleted file mode 100644
index 1e1c86d..0000000
--- a/modules/userreference/translations/modules-userreference.hu.po
+++ /dev/null
@@ -1,137 +0,0 @@
-# Hungarian translation of cck (6.x-2.0-rc10)
-# Copyright (c) 2008 by the Hungarian translation team
-# Generated from files:
-# userreference.module,v 1.106.2.21 2008/10/07 10:17:51 karens
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck (6.x-2.0-rc10)\n"
-"POT-Creation-Date: 2008-10-31 12:16-0500\n"
-"PO-Revision-Date: 2008-10-26 16:42-0500\n"
-"Last-Translator: Balogh Zoltán\n"
-"Language-Team: Drupal.hu Fordítói Csapat <forditas [at] drupal.hu>\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"
-
-#: modules/userreference/userreference.module:97
-msgid "Active"
-msgstr "Aktív"
-
-#: modules/userreference/userreference.module:97
-msgid "Blocked"
-msgstr "Blokkolt"
-
-#: modules/userreference/userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr "Egy hivatkozott felhasználó betöltése"
-
-#: modules/userreference/userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr "A felhasználóhivatkozás mező tartalma"
-
-#: modules/userreference/userreference.rules.inc:25
-msgid "Referenced user"
-msgstr "Hivatkozott felhasználó"
-
-#: modules/userreference/userreference.rules.inc:29
-msgid ""
-"Note that if the field has multiple values, only the first user will "
-"be loaded."
-msgstr ""
-"Megjegyzés: Ha a mezőnek több értéke is lehet, akkor csak az "
-"első felhasználó lesz betöltve."
-
-#: modules/userreference/userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr "Nincsenek felhasználóhivatkozás mezők meghatározva."
-
-#: modules/userreference/userreference.module:70
-msgid "User reference"
-msgstr "Hivatkozás felhasználóra"
-
-#: modules/userreference/userreference.module:71
-msgid "Store the ID of a related user as an integer value."
-msgstr ""
-"A hivatkozott felhasználó azonosítójának tárolása egész "
-"számként."
-
-#: modules/userreference/userreference.module:89
-msgid "User roles that can be referenced"
-msgstr "Felhasználói csoport, amelyre hivatkozni lehet"
-
-#: modules/userreference/userreference.module:95
-msgid "User status that can be referenced"
-msgstr "Felhasználói állapot, amelyre hivatkozni lehet"
-
-#: modules/userreference/userreference.module:117
-msgid "Advanced - Users that can be referenced (View)"
-msgstr "Haladó - Felhasználók, akikre hivatkozni lehet (Nézet)"
-
-#: modules/userreference/userreference.module:123
-msgid "View used to select the users"
-msgstr "A felhasználók kiválasztásához használt nézet"
-
-#: modules/userreference/userreference.module:126
-msgid ""
-"Choose the \"Views module\" view that selects the users that can be "
-"referenced.<br />Note:<ul><li>Only views that have fields will work "
-"for this purpose.</li><li>This will discard the \"Referenceable "
-"Roles\" and \"Referenceable Status\" settings above. Use the view's "
-"\"filters\" section instead.</li><li>Use the view's \"fields\" section "
-"to display additional informations about candidate users on user "
-"creation/edition form.</li><li>Use the view's \"sort criteria\" "
-"section to determine the order in which candidate users will be "
-"displayed.</li></ul>"
-msgstr ""
-"A „Nézet modul” egyik nézetének kiválasztása, mely azokat a "
-"felhasználókat mutatja, akikre hivatkozni "
-"lehet.<br>Megjegyzés:<ul><li>Itt csak olyan nézet működik, melynek "
-"vannak mezői.</li><li>Ez felülírja a fenti „Hivatkozható "
-"csoportok” és „Hivatkozható állapotok” beállításokat. A "
-"nézet „szűrő” feltétele használható e helyett.</li><li>A "
-"nézet „mezők” része használható arra, hogy bővebb "
-"információkat jelenítsen meg a lehetséges felhasználókról a "
-"szerkesztő űrlapon.</li><li>A nézet „sorrend” része "
-"befolyásolja a lehetséges felhasználók megjelenítési "
-"sorrendjét.</li></ul>"
-
-#: modules/userreference/userreference.module:185
-msgid "%name: invalid user."
-msgstr "%name: érvénytelen felhasználó."
-
-#: modules/userreference/userreference.module:329
-msgid "Reverse link"
-msgstr "Visszamutató hivatkozás"
-
-#: modules/userreference/userreference.module:331
-msgid ""
-"If selected, a reverse link back to the referencing node will "
-"displayed on the referenced user record."
-msgstr ""
-"Ha be van jelölve, akkor a felhasználó adatlapján egy hivatkozás "
-"visszamutat a hivatkozó tartalomra."
-
-#: modules/userreference/userreference.module:830
-msgid "Related content"
-msgstr "Kapcsolódó tartalom"
-
-#: modules/userreference/userreference.module:15
-msgid "Userreference autocomplete"
-msgstr "Felhasználóhivatkozás automatikus kiegészítéssel"
-
-#: modules/userreference/userreference.module:0
-msgid "userreference"
-msgstr "felhasználóhivatkozás"
-
-#: modules/userreference/userreference.info:0
-msgid "User Reference"
-msgstr "Felhasználói hivatkozás"
-
-#: modules/userreference/userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr "Olyan mezőtípus, amely a tartalomban egy felhasználóra hivatkozik."
-
diff --git a/modules/userreference/translations/modules-userreference.nl.po b/modules/userreference/translations/modules-userreference.nl.po
deleted file mode 100644
index 5eac780..0000000
--- a/modules/userreference/translations/modules-userreference.nl.po
+++ /dev/null
@@ -1,209 +0,0 @@
-# $Id: modules-userreference.nl.po,v 1.1.2.1 2009/06/03 20:31:09 hass Exp $
-#
-# Dutch translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.module,v 1.106.2.36 2009/03/18 21:00:58 yched
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-03 14:26+0200\n"
-"PO-Revision-Date: 2009-06-03 14:26+0200\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Dutch <EMAIL@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"
-
-#: userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr "Laad een gerefereerde gebruiker"
-
-#: userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr "Inhoud dat het gebruikersreferentieveld bevat"
-
-#: userreference.rules.inc:25
-msgid "Referenced user"
-msgstr "Gerefereerde gebruiker"
-
-#: userreference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first user will be loaded."
-msgstr ""
-"Merk op dat als het veld meerdere waardes heeft, alleen de eerste "
-"gebruiker zal worden geladen."
-
-#: userreference.rules.inc:47
-msgid "Field"
-msgstr "Veld"
-
-#: userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr "Er zijn geen gebruikersreferentievelden ingesteld."
-
-#: userreference.module:52
-msgid "User reference"
-msgstr "Gebruikersreferentie"
-
-#: userreference.module:53
-msgid "Store the ID of a related user as an integer value."
-msgstr "Bewaar de ID van een gerelateerde gebruiker als een integer-waarde"
-
-#: userreference.module:67
-msgid "User roles that can be referenced"
-msgstr "Gebruikersrollen die kunnen worden gerefereerd"
-
-#: userreference.module:73
-msgid "User status that can be referenced"
-msgstr "Gebruikersstatus die kan worden gerefereerd"
-
-#: userreference.module:75
-msgid "Active"
-msgstr "Actief"
-
-#: userreference.module:75
-msgid "Blocked"
-msgstr "Geblokkeerd"
-
-#: userreference.module:84
-msgid "Default Views"
-msgstr "Standaard views"
-
-#: userreference.module:87
-msgid "Existing Views"
-msgstr "Bestaande Views"
-
-#: userreference.module:94
-msgid "Advanced - Users that can be referenced (View)"
-msgstr "Geavanceerd - Gebruikers die kunnen worden gerefereerd (View)"
-
-#: userreference.module:101
-msgid "View used to select the users"
-msgstr "View die gebruikt wordt om gebruikers te selecteren"
-
-#: userreference.module:104
-msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
-msgstr ""
-"<p>Kies de \"Views module\"-view die de gebruikers selecteert die "
-"kunnen worden gerefereerd.<br />Merk op:</p>"
-
-#: userreference.module:105;118
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
-msgstr ""
-"<ul><li>Alleen Views met velden zullen werken voor dit "
-"doel.</li><li>Dit zal de \"Refereerbare Rollen-\" en \"Refereerbare "
-"Status\"-instellingen boven negeren. Gebruik anders de view z'n "
-"\"filters\" sectie.</li><li>Gebruik de view z'n \"velden\"-sectie om "
-"extra informatie over gebruikers op het bewerkformulier weer te "
-"geven.</li><li>Gebruik de view z'n \"sorteercriteria\"-sectie om de "
-"volgorde te bepalen waarin gebruikers worden weergegeven.</li></ul>"
-
-#: userreference.module:109
-msgid "View arguments"
-msgstr "Bekijk argumenten"
-
-#: userreference.module:112
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr ""
-"Geef een door komma's gescheiden lijst met argumenten op om naar de "
-"view te sturen."
-
-#: userreference.module:117
-msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-"<p>De lijst met gebruikers die kunnen worden gerefereerd op basis van "
-"een \"Views module\"-view, maar geen passende views gevonden. <br "
-"/>Merk op:</p>"
-
-#: userreference.module:184
-msgid "%name: invalid input."
-msgstr "%name: geen toegestane waarde."
-
-#: userreference.module:196
-msgid "%name: invalid user."
-msgstr "%name: geen toegestane gebruiker."
-
-#: userreference.module:221
-msgid "Default"
-msgstr "Standaard"
-
-#: userreference.module:226
-msgid "Plain text"
-msgstr "Platte tekst"
-
-#: userreference.module:273
-msgid "Select list"
-msgstr "Selectielijst"
-
-#: userreference.module:281
-msgid "Check boxes/radio buttons"
-msgstr "Vinkje/radio buttons"
-
-#: userreference.module:289
-msgid "Autocomplete text field"
-msgstr "Automatisch aanvullend tekstveld"
-
-#: userreference.module:343
-msgid "Autocomplete matching"
-msgstr "Automatisch aanvullende overeenkomst"
-
-#: userreference.module:346
-msgid "Starts with"
-msgstr "Begint met"
-
-#: userreference.module:347
-msgid "Contains"
-msgstr "Bevat"
-
-#: userreference.module:349
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
-msgstr ""
-"Selecteer de methode die wordt gebruikt om automatisch aangevulde "
-"suggesties te geven. Merk op <em>Bevat</em> prestatieproblemen kan "
-"veroorzaken op sites met vele duizenden gebruikers."
-
-#: userreference.module:357
-msgid "Reverse link"
-msgstr "Link terug"
-
-#: userreference.module:359
-msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
-msgstr ""
-"Als geselecteerd zal een links terug worden geplaatst naar de "
-"gerefereerde node in de gerefereerde gebruiker."
-
-#: userreference.module:594
-msgid "%name: found no valid user with that name."
-msgstr "%name: geen toegestane gebruiker gevonden met die naam."
-
-#: userreference.module:887
-msgid "Related content"
-msgstr "Gerelateerde inhoud"
-
-#: userreference.module:15
-msgid "Userreference autocomplete"
-msgstr "Gebruikersreferentie automatische aanvulling"
-
-#: userreference.module:0
-msgid "userreference"
-msgstr "gebruikersreferentie"
-
-#: userreference.info:0
-msgid "User Reference"
-msgstr "Gebruikersreferentie"
-
-#: userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr ""
-"Levert een veldtype for het refereren van een gebruiker vanuit een "
-"node."
-
-#: userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/userreference/translations/modules-userreference.pot b/modules/userreference/translations/modules-userreference.pot
deleted file mode 100644
index d67d3dd..0000000
--- a/modules/userreference/translations/modules-userreference.pot
+++ /dev/null
@@ -1,126 +0,0 @@
-# $Id: modules-userreference.pot,v 1.1.2.12 2009/06/16 17:05:11 hass Exp $
-#
-# LANGUAGE translation of Drupal (modules-userreference)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.module,v 1.106.2.43 2009/06/02 12:24:04 yched
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: modules/userreference/userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr ""
-
-#: modules/userreference/userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr ""
-
-#: modules/userreference/userreference.rules.inc:25
-msgid "Referenced user"
-msgstr ""
-
-#: modules/userreference/userreference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first user will be loaded."
-msgstr ""
-
-#: modules/userreference/userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr ""
-
-#: modules/userreference/userreference.module:61
-msgid "User reference"
-msgstr ""
-
-#: modules/userreference/userreference.module:62
-msgid "Store the ID of a related user as an integer value."
-msgstr ""
-
-#: modules/userreference/userreference.module:77
-msgid "User roles that can be referenced"
-msgstr ""
-
-#: modules/userreference/userreference.module:83
-msgid "User status that can be referenced"
-msgstr ""
-
-#: modules/userreference/userreference.module:85
-msgid "Active"
-msgstr ""
-
-#: modules/userreference/userreference.module:85
-msgid "Blocked"
-msgstr ""
-
-#: modules/userreference/userreference.module:104
-msgid "Advanced - Users that can be referenced (View)"
-msgstr ""
-
-#: modules/userreference/userreference.module:111
-msgid "View used to select the users"
-msgstr ""
-
-#: modules/userreference/userreference.module:114
-msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
-msgstr ""
-
-#: modules/userreference/userreference.module:115;128
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
-msgstr ""
-
-#: modules/userreference/userreference.module:127
-msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-
-#: modules/userreference/userreference.module:207
-msgid "%name: invalid user."
-msgstr ""
-
-#: modules/userreference/userreference.module:361
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
-msgstr ""
-
-#: modules/userreference/userreference.module:377
-msgid "Reverse link"
-msgstr ""
-
-#: modules/userreference/userreference.module:379
-msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
-msgstr ""
-
-#: modules/userreference/userreference.module:614
-msgid "%name: found no valid user with that name."
-msgstr ""
-
-#: modules/userreference/userreference.module:908
-msgid "Related content"
-msgstr ""
-
-#: modules/userreference/userreference.module:15
-msgid "Userreference autocomplete"
-msgstr ""
-
-#: modules/userreference/userreference.module:0
-msgid "userreference"
-msgstr ""
-
-#: modules/userreference/userreference.info:0
-msgid "User Reference"
-msgstr ""
-
-#: modules/userreference/userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr ""
-
diff --git a/modules/userreference/translations/modules-userreference.sv.po b/modules/userreference/translations/modules-userreference.sv.po
deleted file mode 100644
index 74b53a7..0000000
--- a/modules/userreference/translations/modules-userreference.sv.po
+++ /dev/null
@@ -1,191 +0,0 @@
-# $Id: modules-userreference.sv.po,v 1.1.2.1 2009/05/27 14:12:42 seals Exp $
-#
-# Swedish translation of Drupal (userreference)
-# Generated from files:
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.module,v 1.106.2.42 2009/05/16 16:41:30 yched
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Userreference\n"
-"POT-Creation-Date: 2009-05-27 13:47+0200\n"
-"PO-Revision-Date: 2009-05-27 13:48+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr ""
-
-#: userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr ""
-
-#: userreference.rules.inc:25
-msgid "Referenced user"
-msgstr ""
-
-#: userreference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first user will be loaded."
-msgstr ""
-
-#: userreference.rules.inc:47
-msgid "Field"
-msgstr "Fält"
-
-#: userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr ""
-
-#: userreference.module:52
-msgid "User reference"
-msgstr ""
-
-#: userreference.module:53
-msgid "Store the ID of a related user as an integer value."
-msgstr ""
-
-#: userreference.module:68
-msgid "User roles that can be referenced"
-msgstr ""
-
-#: userreference.module:74
-msgid "User status that can be referenced"
-msgstr ""
-
-#: userreference.module:76
-msgid "Active"
-msgstr "Aktiv"
-
-#: userreference.module:76
-msgid "Blocked"
-msgstr "Spärrad"
-
-#: userreference.module:85
-msgid "Default Views"
-msgstr "Förvald vy"
-
-#: userreference.module:88
-msgid "Existing Views"
-msgstr "Existerande vyer"
-
-#: userreference.module:95
-msgid "Advanced - Users that can be referenced (View)"
-msgstr ""
-
-#: userreference.module:102
-msgid "View used to select the users"
-msgstr ""
-
-#: userreference.module:105
-msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
-msgstr ""
-
-#: userreference.module:106;119
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
-msgstr ""
-
-#: userreference.module:110
-msgid "View arguments"
-msgstr "Argument för vy"
-
-#: userreference.module:113
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
-
-#: userreference.module:118
-msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr ""
-
-#: userreference.module:186
-msgid "%name: invalid input."
-msgstr "%name: ogiltig inmatning."
-
-#: userreference.module:198
-msgid "%name: invalid user."
-msgstr ""
-
-#: userreference.module:223
-msgid "Default"
-msgstr "Standard"
-
-#: userreference.module:228
-msgid "Plain text"
-msgstr "Ren text"
-
-#: userreference.module:275
-msgid "Select list"
-msgstr "Listval"
-
-#: userreference.module:283
-msgid "Check boxes/radio buttons"
-msgstr "Kryssrutor/radioknappar"
-
-#: userreference.module:291
-msgid "Autocomplete text field"
-msgstr "Automatiskt kompletterande textfält"
-
-#: userreference.module:346
-msgid "Autocomplete matching"
-msgstr "Automatiskt kompletterande som överensstämmer"
-
-#: userreference.module:349
-msgid "Starts with"
-msgstr "Börjar med"
-
-#: userreference.module:350
-msgid "Contains"
-msgstr "Innehåller"
-
-#: userreference.module:352
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
-msgstr ""
-
-#: userreference.module:356
-msgid "Size of textfield"
-msgstr ""
-
-#: userreference.module:368
-msgid "Reverse link"
-msgstr ""
-
-#: userreference.module:370
-msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
-msgstr ""
-
-#: userreference.module:605
-msgid "%name: found no valid user with that name."
-msgstr ""
-
-#: userreference.module:899
-msgid "Related content"
-msgstr ""
-
-#: userreference.module:15
-msgid "Userreference autocomplete"
-msgstr ""
-
-#: userreference.module:0
-msgid "userreference"
-msgstr ""
-
-#: userreference.info:0
-msgid "User Reference"
-msgstr ""
-
-#: userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr ""
-
-#: userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/modules/userreference/userreference.info b/modules/userreference/userreference.info
index 97200ad..df1b065 100644
--- a/modules/userreference/userreference.info
+++ b/modules/userreference/userreference.info
@@ -1,4 +1,3 @@
-; $Id: userreference.info,v 1.8 2008/04/23 18:02:38 dww Exp $
name = User Reference
description = Defines a field type for referencing a user from a node.
dependencies[] = content
diff --git a/modules/userreference/userreference.install b/modules/userreference/userreference.install
index 17f023b..04b0aea 100644
--- a/modules/userreference/userreference.install
+++ b/modules/userreference/userreference.install
@@ -1,5 +1,4 @@
<?php
-// $Id: userreference.install,v 1.23.2.10 2009/11/07 11:04:15 markuspetrux Exp $
/**
* @file
diff --git a/modules/userreference/userreference.module b/modules/userreference/userreference.module
old mode 100755
new mode 100644
index 90c857b..ebbbe15
--- a/modules/userreference/userreference.module
+++ b/modules/userreference/userreference.module
@@ -1,5 +1,4 @@
<?php
-// $Id: userreference.module,v 1.106.2.51 2010/06/10 16:17:06 markuspetrux Exp $
/**
* @file
diff --git a/modules/userreference/userreference.rules.inc b/modules/userreference/userreference.rules.inc
index 6975664..e0ed151 100644
--- a/modules/userreference/userreference.rules.inc
+++ b/modules/userreference/userreference.rules.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens Exp $
/**
* @file
diff --git a/tests/content.crud.test b/tests/content.crud.test
index 36ce040..12b97f1 100644
--- a/tests/content.crud.test
+++ b/tests/content.crud.test
@@ -1,5 +1,4 @@
<?php
-// $Id: content.crud.test,v 1.4.2.16 2008/12/08 12:41:08 yched Exp $
// TODO:
// - Test search indexing
diff --git a/tests/fieldgroup.test b/tests/fieldgroup.test
new file mode 100644
index 0000000..5095dc3
--- /dev/null
+++ b/tests/fieldgroup.test
@@ -0,0 +1,178 @@
+<?php
+
+class FieldgroupCRUDTest extends ContentCrudTestCase {
+ var $last_group = NULL;
+ var $next_group_n = 1;
+
+ /**
+ * Enable fieldgroup module.
+ */
+ function setUp() {
+ $args = func_get_args();
+ $modules = array_merge(array('fieldgroup'), $args);
+ call_user_func_array(array('parent','setUp'), $modules);
+ }
+
+ /**
+ * Creates a fieldgroup with a predictable name. Also makes all future calls to functions
+ * which take an optional fieldgroup use this one as the default.
+ * @param $settings Array to be passed to fieldgroup_save_group.
+ * @param $content_type Either a content type object, or the index of an acquired content type
+ * @return The newly created fieldgroup.
+ */
+ function createGroup($settings, $fields = array(), $content_type = 0) {
+ if (is_numeric($content_type) && isset($this->content_types[$content_type])) {
+ $content_type = $this->content_types[$content_type];
+ }
+ $type_name = $content_type->type;
+ $group_name = 'simpletest_g'. $this->next_group_n++;
+
+ $defaults = array(
+ 'group_name' => $group_name,
+ 'group_type' => 'standard',
+ 'parent' => '',
+ 'label' => $group_name,
+ 'weight' => -3,
+ 'settings' => array(
+ 'form' => array(
+ 'style' => 'fieldset',
+ 'description' => '',
+ ),
+ 'display' => array(
+ 'weight' => -3,
+ 'parent' => '',
+ 'label' => 'above',
+ 'description' => '',
+ 'teaser' => array(
+ 'format' => 'fieldset',
+ 'exclude' => 0,
+ ),
+ 'full' => array(
+ 'format' => 'fieldset',
+ 'exclude' => 0,
+ ),
+ ),
+ ),
+ );
+ $group = $settings + $defaults;
+ fieldgroup_save_group($type_name, $group);
+ $this->last_group = $group_name;
+
+ foreach ($fields as $field_name) {
+ $form_values = array(
+ 'field_name' => $field_name,
+ 'group' => $group_name,
+ 'type_name' => $type_name,
+ );
+ fieldgroup_update_fields($form_values);
+ }
+ cache_clear_all('fieldgroup_data:', content_cache_tablename(), TRUE);
+ return $this->last_group;
+ }
+
+}
+
+class testFieldgroupFields extends FieldgroupCRUDTest {
+ function getInfo() {
+ return array(
+ 'name' => t('Fieldgroups'),
+ 'description' => t('Test creating fields in fieldgroups.'),
+ 'group' => t('CCK'),
+ );
+ }
+
+ function setUp() {
+ parent::setUp();
+ $this->loginWithPermissions();
+ $this->acquireContentTypes(1);
+ }
+
+ function testFieldgroup() {
+
+ // Create a content type with a multivalue text field.
+ $type = $this->content_types[0];
+ $type_name = $type->type;
+ $type_url = str_replace('_', '-', $type_name);
+ $admin_type_url = 'admin/content/node-type/'. $type_url;
+ $field = $this->createFieldText(array('text_processing' => 0, 'multiple' => 1, 'weight' => -4));
+ $field_name = $field['field_name'];
+ $field2 = $this->createFieldText(array('text_processing' => 0, 'multiple' => 1, 'weight' => -3));
+ $field_name2 = $field2['field_name'];
+ $fields = array($field_name, $field_name2);
+
+ // Create a fieldgroup and nest the fields in it.
+ $settings = array(
+ 'type_name' => $type_name,
+ 'group_type' => 'standard',
+ 'parent' => '',
+ );
+ $group_name = $this->createGroup($settings, $fields);
+
+ // Check that our new group shows up on the administration pages.
+ $this->drupalGet($admin_type_url .'/groups/'. $group_name);
+ $this->drupalGet($admin_type_url .'/fields');
+ $this->assertText($group_name, 'Group name displayed');
+ $this->drupalGet($admin_type_url .'/display');
+ $this->assertText($group_name, 'Group name displayed');
+
+ // Create a node with 2 values set in each of 2 fields.
+ $value1 = $this->randomName(5);
+ $value2 = $this->randomName(5);
+ $value3 = $this->randomName(5);
+ $value4 = $this->randomName(5);
+ $edit = array(
+ 'title' => $this->randomName(20),
+ 'body' => $this->randomName(20),
+ 'type' => $type_name,
+ );
+ $edit[$field_name][0]['value'] = $value1;
+ $edit[$field_name][1]['value'] = $value2;
+ $edit[$field_name2][0]['value'] = $value3;
+ $edit[$field_name2][1]['value'] = $value4;
+
+ $node = $this->drupalCreateNode($edit);
+
+ $this->drupalGet('node/'. $node->nid);
+ $this->assertText($value1, 'First value displayed');
+ $this->assertText($value2, 'Second value displayed');
+ $this->assertText($value3, 'Third value displayed');
+ $this->assertText($value4, 'Fourth value displayed');
+ $this->assertText($group_name, 'Group name displayed');
+
+ // Create a second fieldgroup and nest the first fieldgroup inside the second one.
+ $settings = array(
+ 'type_name' => $type_name,
+ 'group_type' => 'standard',
+ 'parent' => '',
+ );
+ $group_name2 = $this->createGroup($settings, array());
+
+ // Check that our new group shows up on the administration pages.
+ $this->drupalGet($admin_type_url .'/groups/'. $group_name2);
+ $this->drupalGet($admin_type_url .'/fields');
+ $this->assertText($group_name2, 'Group name 2 displayed');
+ $this->drupalGet($admin_type_url .'/display');
+ $this->assertText($group_name2, 'Group name 2 displayed');
+
+ // Set the first group to use the second group as a parent.
+ $groups = fieldgroup_groups($type->name);
+ $settings = $groups[$group_name];
+ $settings['parent'] = $group_name2;
+ $group_name = $this->createGroup($settings, $fields);
+
+ // Clear the content cache to re-generate the node display.
+ cache_clear_all('content:', content_cache_tablename(), TRUE);
+
+ // Checking that the outside group is displayed is sufficient to tell us they got nested,
+ // because it has no fields and empty groups are not displayed.
+
+ $this->drupalGet('node/'. $node->nid);
+ $this->assertText($value1, 'First value displayed');
+ $this->assertText($value2, 'Second value displayed');
+ $this->assertText($value3, 'Third value displayed');
+ $this->assertText($value4, 'Fourth value displayed');
+ $this->assertText($group_name, 'Group name displayed');
+ $this->assertText($group_name2, 'Group name 2 displayed');
+
+ }
+}
\ No newline at end of file
diff --git a/theme/content-admin-display-overview-form.tpl.php b/theme/content-admin-display-overview-form.tpl.php
index bb95716..5026305 100644
--- a/theme/content-admin-display-overview-form.tpl.php
+++ b/theme/content-admin-display-overview-form.tpl.php
@@ -1,5 +1,4 @@
<?php
-// $Id: content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens Exp $
?>
<div>
<?php print $help; ?>
diff --git a/theme/content-admin-field-overview-form.tpl.php b/theme/content-admin-field-overview-form.tpl.php
index c3aed4a..237c3d7 100644
--- a/theme/content-admin-field-overview-form.tpl.php
+++ b/theme/content-admin-field-overview-form.tpl.php
@@ -1,5 +1,4 @@
<?php
-// $Id: content-admin-field-overview-form.tpl.php,v 1.1.2.6 2009/06/26 18:02:45 yched Exp $
?>
<div>
<?php print $help; ?>
diff --git a/theme/content-edit.js b/theme/content-edit.js
deleted file mode 100644
index d0e2219..0000000
--- a/theme/content-edit.js
+++ /dev/null
@@ -1,253 +0,0 @@
-// $Id$
-
-/**
- * Manipulation of content remove buttons.
- *
- * TableDrag objects for multiple value fields (and multigroups) are scanned
- * to find 'remove' checkboxes. These checkboxes are hidden when javascript is
- * enabled (using the Global CSS Killswitch, html.js, defined in drupal.js).
- * A new 'remove' button is created here in place of these checkboxes aimed to
- * provide a more user-friendly method to remove items.
- */
-Drupal.behaviors.contentRemoveButtons = function(context) {
- var self = Drupal.contentRemoveButtons;
-
- $('table.content-multiple-table', context).not('.content-multiple-remove-buttons-processed').addClass('content-multiple-remove-buttons-processed').each(function() {
- var table = this, tableDrag = Drupal.tableDrag[$(table).attr('id')];
-
- // Replace remove checkboxes with buttons.
- $('input.content-multiple-remove-checkbox', table).each(function() {
- var $checkbox = $(this), $row = $checkbox.parents('tr:first');
- var isRemoved = $checkbox.attr('checked');
- var $button = $(Drupal.theme('contentRemoveButton', tableDrag.getRemoveButtonTitle(isRemoved)));
-
- // Bind the onClick event to the remove button.
- $button.bind('click', function(event) {
- if (!self._isBusy) {
- self.onClick($button, $checkbox, $row, tableDrag);
- }
- return false;
- });
-
- // Attach the new button to the DOM tree.
- $checkbox.parent().append($button);
-
- // If the row is removed, then hide the contents of the cells and show
- // the removed warning on the cell next to the drag'n'drop cell.
- if (isRemoved) {
- self.getCellWrappers($row).hide();
- self.showRemovedWarning($row, tableDrag);
-
- // FAPI not rendering the form on errors - case #1:
- // If the form has been submitted and any error was found, FAPI will
- // send back the same exact form that was submitted to show the error
- // messages, but it will not invoke the rendering engine which is where
- // we actually assign the removed class to the row, so we need to check
- // this situation here and add the class if it is not present.
- if (!$row.hasClass('content-multiple-removed-row')) {
- $row.addClass('content-multiple-removed-row');
- }
- }
- else {
- // FAPI not rendering the form on errors - case #2:
- // Similar issue than #1, but this time caused when user removes an
- // item, previews, FAPI renders the new form with the removed class,
- // then user changes anything in the form that causes an error, and
- // also restores the previously removed item. This time, FAPI will
- // send the form validation error with the item not flagged for removal
- // but having the removed class that was present when the form was
- // rendered in the previous step. So we need to remove this class here,
- // if present, since the item is not really flagged for removal.
- if ($row.hasClass('content-multiple-removed-row')) {
- $row.removeClass('content-multiple-removed-row');
- }
- }
- });
- });
-};
-
-/**
- * Private namespace for local methods.
- */
-Drupal.contentRemoveButtons = Drupal.contentRemoveButtons || { _isBusy: false };
-
-/**
- * onClick handler for remove buttons.
- *
- * @param $button
- * The jQuery object of the remove button.
- * @param $checkbox
- * The jQuery object of the remove checkbox.
- * @param $row
- * The jQuery object of the table row.
- * @param tableDrag
- * The tableDrag object where the row is.
- */
-Drupal.contentRemoveButtons.onClick = function($button, $checkbox, $row, tableDrag) {
- var self = Drupal.contentRemoveButtons;
-
- // Prevent the user from firing this event while another one is still being
- // processed. This flag is (should be) restored at end of animations.
- // Note that this technique is required because the browser may experience
- // delays while performing the animation, for whatever reason, and if this
- // process it fired more than once at the same time for the same row, then
- // it may cause unexpected behavior because the state of the elements being
- // manipulated would be unknown.
- self._isBusy = true;
-
- // Toggle the state of the checkbox.
- var isRemoved = !$checkbox.attr('checked');
- $checkbox.attr('checked', isRemoved);
-
- // Toggle the row class.
- if (isRemoved) {
- $row.addClass('content-multiple-removed-row');
- }
- else {
- $row.removeClass('content-multiple-removed-row');
- }
-
- // Toggle the button title.
- $button.attr('title', tableDrag.getRemoveButtonTitle(isRemoved));
-
- // Get the list of cell wrappers in this row.
- var $cellWrappers = self.getCellWrappers($row);
-
- // If for whatever reason this row doesn't have cells with elements,
- // then we are done, but we still need to reset the global busy flag
- // and display the tableDrag changed warning.
- if (!$cellWrappers.size()) {
- tableDrag.displayChangedWarning();
- self._isBusy = false;
- return;
- }
-
- // Toggle the visible state of the row cells.
- $cellWrappers.each(function() {
- var $cellWrapper = $(this);
-
- // Drop the removed warning during restore operation.
- if (!isRemoved) {
- self.hideRemovedWarning($row);
- }
-
- // Toggle the visibility state of the contents of cells.
- $cellWrapper.animate({opacity: (isRemoved ? 'hide' : 'show')}, 'fast', function() {
- var $cell = $cellWrapper.parent();
-
- // Show the removed warning during remove operation.
- if (isRemoved && $cell.prev(':first').hasClass('content-multiple-drag')) {
- self.showRemovedWarning($row, tableDrag);
- }
-
- // Disable the busy flag when animation of last cell has finished.
- if ($cell.next(':first').hasClass('delta-order')) {
- tableDrag.displayChangedWarning();
- self._isBusy = false;
- }
- });
- });
-};
-
-/**
- * Show the removed warning on the given row.
- *
- * @param $row
- * The jQuery object of the table row.
- * @param tableDrag
- * The tableDrag object where the row is.
- */
-Drupal.contentRemoveButtons.showRemovedWarning = function($row, tableDrag) {
- $('.content-multiple-drag', $row).next(':first').append(Drupal.theme('contentRemovedWarning', tableDrag.getRemovedWarning()));
-};
-
-/**
- * Hide the removed warning from the given row.
- *
- * @param $row
- * The jQuery object of the table row.
- */
-Drupal.contentRemoveButtons.hideRemovedWarning = function($row) {
- if ($('.content-multiple-removed-warning', $row).size()) {
- $('.content-multiple-removed-warning', $row).remove();
- }
-};
-
-/**
- * Get cell wrappers for the given row.
- *
- * @param $row
- * The jQuery object of the table row.
- */
-Drupal.contentRemoveButtons.getCellWrappers = function($row) {
- // Create cell wrappers if this row has not already been processed.
- if (!$('.content-multiple-cell-content-wrapper', $row).size()) {
- // Wrap the contents of all cells (except the drag'n'drop, weight and
- // remove button cells) with a dummy block element. This operation makes
- // animations faster because we just need to show/hide a single element
- // per cell, and it also prevents from creating more than one warning
- // element per row.
- $row.children('td:not(.content-multiple-drag):not(.delta-order):not(.content-multiple-remove-cell)').each(function() {
- var $cell = $(this);
- $cell.wrapInner('<div class="content-multiple-cell-content-wrapper"/>');
- });
- }
- return $('.content-multiple-cell-content-wrapper', $row);
-};
-
-/**
- * Display table change warning when appropriate.
- */
-Drupal.tableDrag.prototype.displayChangedWarning = function() {
- if (this.changed == false) {
- $(Drupal.theme('tableDragChangedWarning')).insertAfter(this.table).hide().fadeIn('slow');
- this.changed = true;
- }
-};
-
-/**
- * Get the title of the remove button.
- *
- * This method is an extension of the tableDrag object. This means a separate
- * module can override this method for a particular tableDrag object. For example,
- * the multigroup module can change the text to read 'Remove this group of items',
- * another module could change it to 'Remove this image', and so on...
- * To override this function:
- *
- * @code
- * var tableId = $(table).attr('id');
- * Drupal.tableDrag[tableId].getRemoveButtonTitle = function(isRemoved) {
- * return (isRemoved ? Drupal.t('Restore this foo') : Drupal.t('Remove this foo'));
- * };
- * @endcode
- *
- * @param isRemoved
- * A flag that indicates the state of the button.
- */
-Drupal.tableDrag.prototype.getRemoveButtonTitle = function(isRemoved) {
- return (isRemoved ? Drupal.t('Restore this item') : Drupal.t('Remove this item'));
-};
-
-/**
- * Get the item removed warning.
- *
- * This method is an extension of the tableDrag object. It can be overridden by
- * a separate module. See getRemoveButtonTitle() for further information.
- */
-Drupal.tableDrag.prototype.getRemovedWarning = function() {
- return Drupal.t('Removed');
-};
-
-/**
- * Theme the remove button.
- */
-Drupal.theme.prototype.contentRemoveButton = function(title) {
- return '<a href="javascript:void(0)" class="content-multiple-remove-button" title="'+ title +'"></a>';
-};
-
-/**
- * Theme the item removed warning.
- */
-Drupal.theme.prototype.contentRemovedWarning = function(warning) {
- return '<div class="content-multiple-removed-warning">'+ warning +'</div>';
-};
diff --git a/theme/content-field.tpl.php b/theme/content-field.tpl.php
index 8e29893..5f899be 100644
--- a/theme/content-field.tpl.php
+++ b/theme/content-field.tpl.php
@@ -1,5 +1,4 @@
<?php
-// $Id: content-field.tpl.php,v 1.1.2.6 2009/09/11 09:20:37 markuspetrux Exp $
/**
* @file content-field.tpl.php
diff --git a/theme/content-module-rtl.css b/theme/content-module-rtl.css
index 49378e6..9a6416e 100644
--- a/theme/content-module-rtl.css
+++ b/theme/content-module-rtl.css
@@ -1,4 +1,3 @@
-/* $Id: content-module-rtl.css,v 1.1.2.1 2009/03/14 18:45:38 yched Exp $ */
/* Node form display */
.node-form .content-multiple-table td.content-multiple-drag {
diff --git a/theme/content-module.css b/theme/content-module.css
index 246d100..2a29acb 100644
--- a/theme/content-module.css
+++ b/theme/content-module.css
@@ -1,4 +1,3 @@
-/* $Id: content-module.css,v 1.1.2.6 2009/03/14 18:45:38 yched Exp $ */
/* Node display */
.field .field-label,
diff --git a/theme/theme.inc b/theme/theme.inc
index f123c98..d8a8034 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -1,5 +1,4 @@
<?php
-// $Id: theme.inc,v 1.1.2.13 2009/04/28 23:06:37 yched Exp $
/**
* @file
@@ -18,7 +17,7 @@ function template_preprocess_content_field_overview_form(&$vars) {
$order = _content_overview_order($form, $form['#field_rows'], $form['#group_rows']);
$rows = array();
-
+
// Identify the 'new item' keys in the form, they look like
// _add_new_field, add_new_group.
$keys = array_keys($form);
@@ -28,10 +27,11 @@ function template_preprocess_content_field_overview_form(&$vars) {
$add_rows[] = $key;
}
}
+
while ($order) {
$key = reset($order);
$element = &$form[$key];
-
+
// Only display the 'Add' separator if the 'add' rows are still
// at the end of the table.
if (!isset($added_separator)) {
@@ -82,9 +82,7 @@ function template_preprocess_content_field_overview_form(&$vars) {
$vars['submit'] = drupal_render($form);
// Add tabledrag behavior.
-// drupal_add_tabledrag('content-field-overview', 'match', 'parent', 'group-parent', 'group-parent', 'field-name', FALSE, 1);
- drupal_add_tabledrag('content-field-overview', 'match', 'parent', 'group-parent', 'group-parent', 'field-name', TRUE, 1);
-// drupal_add_tabledrag('content-field-overview', 'order', 'sibling', 'field-weight', NULL, NULL, FALSE);
+ drupal_add_tabledrag('content-field-overview', 'match', 'parent', 'group-parent', 'group-parent', 'field-name', TRUE, 10);
drupal_add_tabledrag('content-field-overview', 'order', 'sibling', 'field-weight');
// Add settings for the update selects behavior.
@@ -94,7 +92,7 @@ function template_preprocess_content_field_overview_form(&$vars) {
$js_fields[$field_name] = array('label' => $field['widget']['label'], 'type' => $field['type'], 'widget' => $field['widget']['type']);
}
drupal_add_js(array('contentWidgetTypes' => content_widget_type_options(), 'contentFields' => $js_fields), 'setting');
- drupal_add_js(drupal_get_path('module', 'content') .'/content.js');
+ drupal_add_js(drupal_get_path('module', 'content') .'/js/content.admin.js');
}
/**
@@ -128,6 +126,7 @@ function template_preprocess_content_display_overview_form(&$vars) {
$element = &$form[$key];
$row = new stdClass();
foreach (element_children($element) as $child) {
+ if (empty($row->{$child})) $row->{$child} = new stdClass();
if (!array_key_exists('exclude', $element[$child])) {
$row->{$child} = drupal_render($element[$child]);
}
diff --git a/translations/content.de.po b/translations/content.de.po
deleted file mode 100644
index 095d82d..0000000
--- a/translations/content.de.po
+++ /dev/null
@@ -1,245 +0,0 @@
-# $Id: content.de.po,v 1.1.2.16 2009/06/16 17:19:19 hass Exp $
-# German translation of CCK
-# Copyright 2006 Lukas Gangoly <lukas.gangoly@univie.ac.at>
-# Copyright 2006 Jakob Petsovits <jpetso@gmx.at>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 luke
-# text.module,v 1.34 2006/06/12 19:59:53 luke
-# number.module,v 1.28 2006/05/02 13:52:16 luke
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 luke
-# content.module,v 1.64 2006/06/12 19:36:54 luke
-# nodereference.module,v 1.28 2006/06/12 19:36:54 luke
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 luke
-# userreference.module,v 1.24 2006/05/05 14:10:44 luke
-# weburl.module,v 1.8 2006/06/12 19:36:54 luke
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:14+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: content.module:21
-msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible through tabs on the <a href=\"@content-types\">content types administration page</a>. (See the <a href=\"@node-help\">node module help page</a> for more information about content types.)"
-msgstr "Das Content-Modul ist eine erforderliche Komponente des Content Construction Kit (CCK) und ermöglicht Administratoren benutzerdefinierte Felder mit Inhaltstypen zu verknüpfen. In Drupal werden Inhaltstypen dazu verwendet, die Eigenschaften eines Beitrags inklusive dem Titel und der Beschreibung von Feldern festzulegen, die auf deren „Hinzufügen“ und „Bearbeiten“-Seiten angezeigt werden. Die Verwendung des Content-Moduls (und der anderen in CCK enthaltenen Hilfsmodule) können benutzerdefinierte Felder über die standardmäßigen „Titel“ und „Textkörper“-Felder hinaus hinzugefügt werden. CCK-Funktionen sind verfügbar über Tabulatoren auf der <a href=\"@content-types\">Verwaltungsseite für Inhaltstypen</a>. (Nähere Informationen bezüglich Inhaltstypen gibt es auf der <a href=\"@node-help\">Hilfeseite des Inhalts-Moduls</a>.)"
-
-#: content.module:22
-msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatically adjusts the structure of the database as necessary. CCK also provides a number of other features, including intelligent caching for your custom data, an import and export facility for content type definitions, and integration with other contributed modules."
-msgstr "Beim Hinzufügen eines benutzerdefiniertes Feldes zu einem Inhaltstyp, wird der Typ festgelegt (ob dieser Text enthält, Zahlen oder Referenzen auf andere Objekte) und wie dieser Angezeigt wird (entweder als Textfeld oder -bereich, Auswahlfeld, Ankreuzfeld, Auswahlknopf oder Autovervollständigungsfeld). Ein Feld kann mehrere Werte enthalten (d.h., eine „Person“ kann mehrere E-Mail-Adressen haben) oder ein einfacher Wert (d.h., ein „Mitarbeiter“ hat eine Mitarbeiteridentifikationsnummer). Sollten Felder hinzugefügt und bearbeitet werden, passt CCK automatisch die Datenbank an die erforderliche Struktur an. CCK ermöglich auch eine Anzahl von anderen Funktionen, inklusive intelligenten Caching für benutzerdefinierte Daten, eine Import- und Export-Möglichkeit von festgelegten Inhaltstypen und die Integration von weiteren Modulen."
-
-#: content.module:23
-msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
-msgstr "Benutzerdefinierte Feldtypen werden von einer Reihe an optionalen Modulen zu Verfügung gestellt, die in CCK enthalten sind (jedes Modul stellt einen anderen Typ zu Verfügung). Die <a href=\"@modules\">Modulseite</a> ermöglicht die Aktivierung oder Deaktivierung von CCK-Komponenten. Eine standardmäßige Installation von CCK enthält:"
-
-#: content.module:25
-msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
-msgstr "<em>Zahl</em>, welches numerische Feldtypen in Form von Ganzzahl, Dezimalzahl oder Fließkommazahl hinzufügt. Die zulässigen Eingaben oder ein zulässiger Bereich von Werten kann festgelegt werden. Eine Auswahl von Standardformaten für die Anzeige numerischer Daten ist vorhanden."
-
-#: content.module:26
-msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
-msgstr "<em>Text</em>, welches Textfeldtypen hinzufügt. Ein Textfeld kann nur Klartext oder optional die Eingabefilterformate von Drupal verwenden, um Texteingaben sicher zu verwalten. Texteingabefelder können eine einfache Zeile (Textfeld), mehrere Zeilen (Textbereich) oder für größere Eingabekontrolle aus einem Auswahlfeld, Ankreuzfeld oder Auswahlknopf bestehen. Auf Wunsch kann CCK die Eingaben gegen einer Reihe von zulässigen Werten überprüfen."
-
-#: content.module:27
-msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
-msgstr "<em>Beitragsreferenz</em>, welches benutzerdefinierte Referenzen zwischen Drupal-Beiträgen erstellt. Durch Hinzufügen eines <em>Beitragsreferenz</em>-Feldes und zwei unterschiedlichen Inhaltstypen können Beispielsweise auf einfachem Weg komplexe Übergeordnet/Untergeordnet-Beziehungen zwischen Daten erstellt werden (mehrere „Mitarbeiterbeiträge“ können ein <em>Beitragsreferenz</em>-Feld enthalten, das auf einen „Arbeitgeberbeitrag“ verweist)."
-
-#: content.module:28
-msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
-msgstr "<em>Benutzerreferenz</em>, welche benutzerdefinierte Referenzen zu den Benutzerkonten der Website erstellt. Durch Hinzufügen eines <em>Benutzerreferenz</em>-Feldes können komplexe Beziehungen zwischen den Benutzern der Website und Beiträgen erstellt werden. Um an einem Beitrag beteiligte Benutzer, über das standardmäßige Drupal-Feld <em>geschrieben von</em> hinaus zu tracken, kann Beispielsweise ein <em>Benutzerreferenz</em>-Feld mit dem Namen „Bearbeitet von“ zu einem Inhaltstypen hinzugefügt werden, um einen Verweis auf die Benutzerkontoseite des Bearbeiters zu speichern."
-
-#: content.module:29
-msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
-msgstr "<em>Feldgruppe</em>, welches zusammenklappbare Feldgruppen erstellt, die eine Gruppe von zugehörigen Feldern enthält. Eine Feldgruppe kann standardmäßig offen oder geschlossen sein. Die Reihenfolge der Feldgruppe und die Reihenfolge der Felder innerhalb der Feldgruppe, wird mit einer vom Content-Modul zu Verfügung gestellten Drag-und-Drop-Oberfläche verwaltet."
-
-#: content.module:31
-msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
-msgstr "Nähere Informationen bezüglich der Konfiguration und Anpassung gibt es auf der Handbuch-Seite zum <a href=\"@handbook-cck\">CCK-Modul</a> oder auf der <a href=\"@project-cck\">CCK-Projektseite</a>."
-
-#: content.module:492
-msgid "This field is required."
-msgstr "Dieses Feld wird benötigt."
-
-#: content.module:496
-msgid "!title: !required"
-msgstr "!title: !required"
-
-#: content.module:1854
-msgid "Basic"
-msgstr "Basis"
-
-#: content.module:1867;1870
-msgid "RSS"
-msgstr "RSS"
-
-#: content.module:1880
-msgid "Search"
-msgstr "Suchen"
-
-#: content.module:1883
-msgid "Search Index"
-msgstr "Suchindex"
-
-#: content.module:1887
-msgid "Search Result"
-msgstr "Suchergebnis"
-
-#: content.module:1897;1900
-#, fuzzy
-msgid "Print"
-msgstr "Drucken"
-
-#: content.module:2348;2355
-msgid "Node module form."
-msgstr "Formular des Beitrag-Moduls."
-
-#: content.module:2362
-msgid "Language"
-msgstr "Sprache"
-
-#: content.module:2363
-msgid "Locale module form."
-msgstr "Formular des Locale-Moduls."
-
-#: content.module:2369
-msgid "Menu settings"
-msgstr "Menüeinstellungen"
-
-#: content.module:2370
-msgid "Menu module form."
-msgstr "Formular des Menü-Moduls."
-
-#: content.module:2376
-msgid "Taxonomy"
-msgstr "Taxonomie"
-
-#: content.module:2377
-msgid "Taxonomy module form."
-msgstr "Formular des Taxonomie-Moduls."
-
-#: content.module:2383
-msgid "Book"
-msgstr "Buch"
-
-#: content.module:2384
-msgid "Book module form."
-msgstr "Formular des Buch-Moduls."
-
-#: content.module:2390
-msgid "Poll title"
-msgstr "Umfragetitel"
-
-#: content.module:2391
-msgid "Poll module title."
-msgstr "Umfragemodultitel"
-
-#: content.module:2395
-msgid "Poll choices"
-msgstr ""
-
-#: content.module:2396
-msgid "Poll module choices."
-msgstr ""
-
-#: content.module:2400
-msgid "Poll settings"
-msgstr "Umfrageeinstellungen"
-
-#: content.module:2401
-msgid "Poll module settings."
-msgstr "Umfragemoduleinstellungen"
-
-#: content.module:2407
-msgid "File attachments"
-msgstr "Dateianhänge"
-
-#: content.module:2408
-msgid "Upload module form."
-msgstr "Formular des Upload-Moduls."
-
-#: content.module:595
-msgid "Updating field type %type with module %module."
-msgstr "Feldtyp %type wird mit Modul %module aktualisiert."
-
-#: content.module:602
-msgid "Updating widget type %type with module %module."
-msgstr "Widget %type wird mit Modul %module aktualisiert."
-
-#: content.module:60
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr "PHP-Eingabe für Feldeinstellungen verwenden (Gefährlich - mit Vorsicht zu gewähren)"
-
-#: content.module:79
-msgid "Fields"
-msgstr "Felder"
-
-#: content.module:101
-msgid "Manage fields"
-msgstr "Felder verwalten"
-
-#: content.module:110
-msgid "Display fields"
-msgstr "Felder anzeigen"
-
-#: content.module:141
-msgid "Remove field"
-msgstr "Feld löschen"
-
-#: content.install:236
-msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Aktualisierungen für CCK verwandte Module werden nicht ausgeführt, bis die Module auf der <a href=\"@admin-modules-path\">Verwaltungsseite für Module</a> aktiviert wurden. Sobald diese aktiviert werden, müssen die ausstehenden Aktualisierungen auf der <a href=\"@update-php\">update.php</a>-Seite ausgeführt werden."
-
-#: content.install:239
-msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "Für !module.module liegen Aktualisierungen vor. Dieses kann aber nicht aktualisiert werden, da das content.module nicht aktiviert ist.<br />Wenn das content.module aktiviert wird, muss das Aktualisierungsskript noch einmal ausgeführt werden. Diese Nachricht erscheint so lange, bis das Modul aktiviert und die Aktualisierungen ausgeführt wurden."
-
-#: content.install:244
-msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "Für !module.module liegen Aktualisierungen vor. Dieses Modul befindet sich im Modulverzeichnis, ist aber nicht aktiviert.<br />Wenn es aktiviert wird, muss das Aktualisierungsskript noch einmal ausgeführt werden. Diese Nachricht erscheint so lange, bis das Modul aktiviert und die Aktualisierungen ausgeführt wurden."
-
-#: content.install:251
-msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Einige Aktualisierungen stehen noch aus. Bitte zur <a href=\"@update-php\">update.php</a> zurückkehren und die ausstehenden Aktualisierungen ausführen."
-
-#: content.install:252
-msgid "Some updates are still pending.<br/>Please re-run the update script."
-msgstr "Einige Aktualisierungen stehen noch aus.<br/>Bitte das Aktualisierungsskript noch einmal ausführen."
-
-#: (duplicate) content.install:10
-msgid "CCK - No Views integration"
-msgstr "CCK - Keine Integration von Ansichten"
-
-#: (duplicate) content.install:11
-msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
-msgstr "Die CCK-Integration mit dem Views-Modul erfordert Views 6.x-2.0-rc2 oder höher."
-
-#: content.info:0
-#: includes/content.rules.inc:19;212
-#: includes/views/content.views.inc:180;261
-msgid "Content"
-msgstr "Inhalt"
-
-#: content.info:0
-msgid "Allows administrators to define new content types."
-msgstr "Erlaubt dem Administrator, neue Inhaltstypen zu definieren."
-
-#: content.info:0
-#: modules/content_copy/content_copy.info:0
-#: modules/content_permissions/content_permissions.info:0
-#: modules/fieldgroup/fieldgroup.info:0
-#: modules/nodereference/nodereference.info:0
-#: modules/number/number.info:0
-#: modules/optionwidgets/optionwidgets.info:0
-#: modules/text/text.info:0
-#: modules/userreference/userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/translations/content.fr.po b/translations/content.fr.po
deleted file mode 100644
index 11bbdb0..0000000
--- a/translations/content.fr.po
+++ /dev/null
@@ -1,280 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: content.module:25
-msgid ""
-"The content module, a required component of the Content Construction Kit "
-"(CCK), allows administrators to associate custom fields with content types. "
-"In Drupal, content types are used to define the characteristics of a post, "
-"including the title and description of the fields displayed on its add and "
-"edit pages. Using the content module (and the other helper modules included "
-"in CCK), custom fields beyond the default \"Title\" and \"Body\" may be "
-"added. CCK features are accessible through tabs on the <a href=\"@content-"
-"types\">content types administration page</a>. (See the <a href=\"@node-help"
-"\">node module help page</a> for more information about content types.)"
-msgstr ""
-"Le module Content, composant obligatoire du kit CCK (Content Construction "
-"Kit) permet aux administrateurs d'associer des champs personnalisés à des "
-"types de contenus. Au sein de Drupal, les types de contenus servent à "
-"définir les caractéristiques d'une publication, y compris le titre et la "
-"description des champs affichés sur ses pages \"ajouter\" et \"éditer\". Le "
-"module Content (et les modules auxiliaires inclus dans CCK) permet d'ajouter "
-"des champs personnalisés en plus des champs par défaut \"Titre\" et \"Corps"
-"\". Les fonctionnalités de CCK sont accessible via différents onglets sur la "
-"<a href=\"@content-types\">page d'administration des types de contenus</a>. "
-"(Voir la <a href=\"@node-help\">page d'aide du module Node</a> pour plus "
-"d'informations sur les types de contenus)."
-
-#: content.module:26
-msgid ""
-"When adding a custom field to a content type, you determine its type "
-"(whether it will contain text, numbers, or references to other objects) and "
-"how it will be displayed (either as a text field or area, a select box, "
-"checkbox, radio button, or autocompleting field). A field may have multiple "
-"values (i.e., a \"person\" may have multiple e-mail addresses) or a single "
-"value (i.e., an \"employee\" has a single employee identification number). "
-"As you add and edit fields, CCK automatically adjusts the structure of the "
-"database as necessary. CCK also provides a number of other features, "
-"including intelligent caching for your custom data, an import and export "
-"facility for content type definitions, and integration with other "
-"contributed modules."
-msgstr ""
-"Lorsque vous ajoutez un champ personnalisé à un type de contenu, vous "
-"déterminez son type (c'est-à-dire s'il doit contenir du texte, des nombres "
-"ou des références à d'autres objets) et la façon dont il doit être affiché "
-"(en tant que champ ou zone de texte, liste de sélection, case à cocher, "
-"bouton radio, ou champ à auto-complètement). Un champ peut présenter "
-"plusieurs valeurs (par exemple, une \"personne\" peut disposer de plusieurs "
-"adresses courriel) ou une seule (par exemple, un \"employé\" possède un "
-"numéro d'identification unique). À mesure que vous ajoutez et modifiez des "
-"champs, CCK ajuste automatiquement la structure de la base de données en "
-"fonction. CCK propose également un certain nombre d'autres fonctionnalités, "
-"par exemple un cache intelligent pour vos données personnalisées, des "
-"fonctionnalités d'import et d'export pour les définitions de types de "
-"contenus, ainsi qu'une intégration à d'autres modules provenant des "
-"contributions."
-
-#: content.module:27
-msgid ""
-"Custom field types are provided by a set of optional modules included with "
-"CCK (each module provides a different type). The <a href=\"@modules"
-"\">modules page</a> allows you to enable or disable CCK components. A "
-"default installation of CCK includes:"
-msgstr ""
-"Des types de champs personnalisés sont proposés par plusieurs modules "
-"optionnels inclus dans CCK (chaque module fournissant un type différent). La "
-"<a href=\"@modules\">page des modules</a> vous permet d'activer ou de "
-"désactiver des composants CCK. Une installation par défaut de CCK inclut :"
-
-#: content.module:29
-msgid ""
-"<em>number</em>, which adds numeric field types, in integer, decimal or "
-"floating point form. You may define a set of allowed inputs, or specify an "
-"allowable range of values. A variety of common formats for displaying "
-"numeric data are available."
-msgstr ""
-"<em>Number</em>, qui ajoute des types de champs numériques (formats entier, "
-"décimal ou réel à virgule flottante). Vous pouvez définir un jeu ou un "
-"intervalle de valeurs autorisées. Divers formats sont disponibles pour "
-"l'affichage des données numériques."
-
-#: content.module:30
-msgid ""
-"<em>text</em>, which adds text field types. A text field may contain plain "
-"text only, or optionally, may use Drupal's input format filters to securely "
-"manage rich text input. Text input fields may be either a single line (text "
-"field), multiple lines (text area), or for greater input control, a select "
-"box, checkbox, or radio buttons. If desired, CCK can validate the input to a "
-"set of allowed values."
-msgstr ""
-"<em>Text</em>, qui ajoute des types de champs de texte. Un champ texte peut "
-"contenir du texte brut uniquement ou, optionnellement, utiliser les filtres "
-"des formats d'entrée que propose Drupal pour gérer en toute sécurité des "
-"textes enrichis. Les champs de saisie de texte peuvent être constitués d'une "
-"seule ligne (champ texte), de plusieurs lignes (zone de texte) ou, pour un "
-"meilleur contrôle des valeurs saisies, une liste de sélection, des cases à "
-"cocher ou des boutons radio. Si besoin, CCK peut valider les saisies sur la "
-"base d'un ensemble de valeurs autorisées."
-
-#: content.module:31
-msgid ""
-"<em>nodereference</em>, which creates custom references between Drupal "
-"nodes. By adding a <em>nodereference</em> field and two different content "
-"types, for instance, you can easily create complex parent/child "
-"relationships between data (multiple \"employee\" nodes may contain a "
-"<em>nodereference</em> field linking to an \"employer\" node)."
-msgstr ""
-"<em>Node Reference</em>, qui crée des références personnalisées entre nœuds "
-"de Drupal. En ajoutant, par exemple, un champ <em>nodereference</em> et deux "
-"types de contenus différents, vous pouvez facilement créer des relations "
-"complexes de type parent/enfant entre données (par exemple plusieurs nœuds "
-"\"employé\" peuvent présenter un champ <em>nodereference</em> pointant vers "
-"un même nœud \"employeur\")."
-
-#: content.module:32
-msgid ""
-"<em>userreference</em>, which creates custom references to your sites' user "
-"accounts. By adding a <em>userreference</em> field, you can create complex "
-"relationships between your site's users and posts. To track user involvement "
-"in a post beyond Drupal's standard <em>Authored by</em> field, for instance, "
-"add a <em>userreference</em> field named \"Edited by\" to a content type to "
-"store a link to an editor's user account page."
-msgstr ""
-"<em>User reference</em>, qui crée des références personnalisées vers les "
-"comptes des utilisateurs de votre site. En ajoutant un champ "
-"<em>userreference</em>, vous pouvez créer des relations complexes entre les "
-"utilisateurs de votre site et des publications. Ainsi, pour tracer "
-"l'implication d'un utilisateur dans une publication (au delà du champ Drupal "
-"standard <em>Écrit par</em>), vous pouvez ajouter à un type de contenu un "
-"champ <em>userreference</em> intitulé \"Édité par\" pour enregistrer un lien "
-"vers la page du compte utilisateur ayant édité la publication."
-
-#: content.module:33
-msgid ""
-"<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of "
-"related fields. A fieldset may either be open or closed by default. The "
-"order of your fieldsets, and the order of fields within a fieldset, is "
-"managed via a drag-and-drop interface provided by content module."
-msgstr ""
-"<em>Fieldgroup</em>, qui crée des groupes de champs liés. Les groupe de "
-"champ peuvent être repliés, et vous pouvez choisir qu'ils soient dépliés ou "
-"repliés par défaut. L'ordre des groupes de champs, ainsi que l'ordre des "
-"champs au sein d'un groupe, est géré grâce à l'interface par glisser-déposer "
-"fournie par le module Content."
-
-#: content.module:35
-msgid ""
-"For more information, see the online handbook entry for <a href=\"@handbook-"
-"cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
-msgstr ""
-"Pour plus d'informations, reportez-vous à l'entrée de manuel en ligne "
-"relative à <a href=\"@handbook-cck\">CCK</a> ou à la <a href=\"@project-cck"
-"\">page du projet CCK</a>."
-
-#: content.module:41
-msgid ""
-"Configure how this content type's fields and field labels should be "
-"displayed when it's viewed in teaser and full-page mode."
-msgstr ""
-"Configurez ici la manière dont les champs et étiquettes de champs de ce type "
-"de contenu doivent être affichées, lorsque le contenu est vu en mode résumé "
-"ou en pleine page."
-
-#: content.module:44
-msgid ""
-"Configure how this content type's fields should be displayed when it's "
-"rendered in the following contexts."
-msgstr ""
-"Configurez ici la façon dont les champs de ce type de contenu doivent être "
-"affichés lorsqu'il est rendu dans les contextes suivants."
-
-#: content.module:48
-msgid "Control the order of fields in the input form."
-msgstr "Contrôlez ici l'ordre des champs dans le formulaire de saisie."
-
-#: content.module:474
-msgid "This field is required."
-msgstr "Ce champ est obligatoire."
-
-#: content.module:478
-msgid "!title: !required"
-msgstr "!title : !required"
-
-#: content.module:481
-msgid "Order"
-msgstr "Ordre"
-
-#: content.module:1640
-msgid "RSS Item"
-msgstr "Élément de flux RSS"
-
-#: content.module:1642
-msgid "Search Index"
-msgstr "Index de recherche"
-
-#: content.module:1643
-msgid "Search Result"
-msgstr "Résultat de recherche"
-
-#: content.module:1981
-msgid "Language"
-msgstr "Langue"
-
-#: content.module:1984
-msgid "Taxonomy"
-msgstr "Taxonomie"
-
-#: content.module:1987
-msgid "File attachments"
-msgstr "Fichiers attachés"
-
-#: content.module:557
-msgid "Updating field type %type with module %module."
-msgstr "Mise à jour du type de champ %type avec le module %module."
-
-#: content.module:564
-msgid "Updating widget type %type with module %module."
-msgstr "Mise à jour du type de widget %widget avec le module %module."
-
-#: content.module:84
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr ""
-"Utiliser du code PHP pour le paramétrage des champs (dangereux - à "
-"n'autoriser qu'avec précautions)"
-
-#: content.module:125
-msgid "Manage fields"
-msgstr "Gérer les champs"
-
-#: content.module:134
-msgid "Display fields"
-msgstr "Afficher les champs"
-
-#: content.module:143
-msgid "General"
-msgstr "Général"
-
-#: content.module:149
-msgid "Advanced"
-msgstr "Avancé"
-
-#: content.module:177
-msgid "Remove field"
-msgstr "Supprimer un champ"
-
-#: content.info:0 includes/content.views.inc:54;91
-msgid "Content"
-msgstr "Content"
-
-#: content.info:0
-msgid "Allows administrators to define new content types."
-msgstr "Permet aux administrateurs de définir des nouveaux types de contenu."
-
-#: content.info:0 modules/content_copy/content_copy.info:0
-#: modules/content_permissions/content_permissions.info:0
-#: modules/fieldgroup/fieldgroup.info:0
-#: modules/nodereference/nodereference.info:0 modules/number/number.info:0
-#: modules/optionwidgets/optionwidgets.info:0 modules/text/text.info:0
-#: modules/userreference/userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
-#: examples/example_field.php:107 examples/simple_field.php:115
-#: modules/text/text.module:49 modules/text/text.info:0
-msgid "Text"
-msgstr "Texte"
diff --git a/translations/content.pot b/translations/content.pot
deleted file mode 100644
index 04f3ab0..0000000
--- a/translations/content.pot
+++ /dev/null
@@ -1,236 +0,0 @@
-# $Id: content.pot,v 1.1.2.11 2009/06/16 17:05:11 hass Exp $
-#
-# LANGUAGE translation of Drupal (root)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content.module,v 1.301.2.106 2009/06/02 12:24:04 yched
-# content.install,v 1.85.2.31 2009/04/23 18:37:10 yched
-# content.info,v 1.6 2007/07/04 23:46:29 yched
-# content.rules.inc,v 1.1.2.6 2009/04/30 09:56:07 fago
-# content.views.inc,v 1.1.2.25 2009/04/11 14:50:53 yched
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: content.module:21
-msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible through tabs on the <a href=\"@content-types\">content types administration page</a>. (See the <a href=\"@node-help\">node module help page</a> for more information about content types.)"
-msgstr ""
-
-#: content.module:22
-msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatically adjusts the structure of the database as necessary. CCK also provides a number of other features, including intelligent caching for your custom data, an import and export facility for content type definitions, and integration with other contributed modules."
-msgstr ""
-
-#: content.module:23
-msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
-msgstr ""
-
-#: content.module:25
-msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
-msgstr ""
-
-#: content.module:26
-msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
-msgstr ""
-
-#: content.module:27
-msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
-msgstr ""
-
-#: content.module:28
-msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
-msgstr ""
-
-#: content.module:29
-msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
-msgstr ""
-
-#: content.module:31
-msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
-msgstr ""
-
-#: content.module:492
-msgid "This field is required."
-msgstr ""
-
-#: content.module:496
-msgid "!title: !required"
-msgstr ""
-
-#: content.module:1854
-msgid "Basic"
-msgstr ""
-
-#: content.module:1867;1870
-msgid "RSS"
-msgstr ""
-
-#: content.module:1880
-msgid "Search"
-msgstr ""
-
-#: content.module:1883
-msgid "Search Index"
-msgstr ""
-
-#: content.module:1887
-msgid "Search Result"
-msgstr ""
-
-#: content.module:1897;1900
-msgid "Print"
-msgstr ""
-
-#: content.module:2348;2355
-msgid "Node module form."
-msgstr ""
-
-#: content.module:2362
-msgid "Language"
-msgstr ""
-
-#: content.module:2363
-msgid "Locale module form."
-msgstr ""
-
-#: content.module:2369
-msgid "Menu settings"
-msgstr ""
-
-#: content.module:2370
-msgid "Menu module form."
-msgstr ""
-
-#: content.module:2376
-msgid "Taxonomy"
-msgstr ""
-
-#: content.module:2377
-msgid "Taxonomy module form."
-msgstr ""
-
-#: content.module:2383
-msgid "Book"
-msgstr ""
-
-#: content.module:2384
-msgid "Book module form."
-msgstr ""
-
-#: content.module:2390
-msgid "Poll title"
-msgstr ""
-
-#: content.module:2391
-msgid "Poll module title."
-msgstr ""
-
-#: content.module:2395
-msgid "Poll choices"
-msgstr ""
-
-#: content.module:2396
-msgid "Poll module choices."
-msgstr ""
-
-#: content.module:2400
-msgid "Poll settings"
-msgstr ""
-
-#: content.module:2401
-msgid "Poll module settings."
-msgstr ""
-
-#: content.module:2407
-msgid "File attachments"
-msgstr ""
-
-#: content.module:2408
-msgid "Upload module form."
-msgstr ""
-
-#: content.module:595
-msgid "Updating field type %type with module %module."
-msgstr ""
-
-#: content.module:602
-msgid "Updating widget type %type with module %module."
-msgstr ""
-
-#: content.module:60
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr ""
-
-#: content.module:79
-msgid "Fields"
-msgstr ""
-
-#: content.module:101
-msgid "Manage fields"
-msgstr ""
-
-#: content.module:110
-msgid "Display fields"
-msgstr ""
-
-#: content.module:141
-msgid "Remove field"
-msgstr ""
-
-#: content.install:236
-msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr ""
-
-#: content.install:239
-msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr ""
-
-#: content.install:244
-msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr ""
-
-#: content.install:251
-msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr ""
-
-#: content.install:252
-msgid "Some updates are still pending.<br/>Please re-run the update script."
-msgstr ""
-
-#: (duplicate) content.install:10
-msgid "CCK - No Views integration"
-msgstr ""
-
-#: (duplicate) content.install:11
-msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
-msgstr ""
-
-#: content.info:0 includes/content.rules.inc:19;212 includes/views/content.views.inc:180;261
-msgid "Content"
-msgstr ""
-
-#: content.info:0
-msgid "Allows administrators to define new content types."
-msgstr ""
-
-#: content.info:0 modules/content_copy/content_copy.info:0 modules/content_permissions/content_permissions.info:0 modules/fieldgroup/fieldgroup.info:0 modules/nodereference/nodereference.info:0 modules/number/number.info:0 modules/optionwidgets/optionwidgets.info:0 modules/text/text.info:0 modules/userreference/userreference.info:0
-msgid "CCK"
-msgstr ""
-
diff --git a/translations/content.sv.po b/translations/content.sv.po
deleted file mode 100644
index 6e89a56..0000000
--- a/translations/content.sv.po
+++ /dev/null
@@ -1,243 +0,0 @@
-# $Id: content.sv.po,v 1.1.2.2 2009/05/27 13:37:56 seals Exp $
-#
-# Swedish translation of Drupal (content)
-# Generated from files:
-# content.module,v 1.301.2.99 2009/03/05 22:58:57 karens
-# content.install,v 1.85.2.30 2008/11/07 16:24:58 yched
-# content.info,v 1.6 2007/07/04 23:46:29 yched
-# content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
-# content.views.inc,v 1.1.2.22 2009/01/14 13:19:47 karens
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - Content 6.x\n"
-"POT-Creation-Date: 2009-03-09 22:08+0100\n"
-"PO-Revision-Date: 2009-05-27 15:37+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: content.module:21
-msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible through tabs on the <a href=\"@content-types\">content types administration page</a>. (See the <a href=\"@node-help\">node module help page</a> for more information about content types.)"
-msgstr "Modulen Content, en obligatorisk komponent till Content Construction Kit (CCK), gör det möjligt för administratörer att associera anpassade fält med innehållstyper. I Drupal används innehållstyper för att definiera ett inläggs karaktäristik, såsom titel och beskrivning för fälten som visas på dess sidor för att lägga till redigera. Genom att använda modulen Content (och de andra hjälpmodulerna inkluderade i CCK), kan egna fält utöver standardfälten \"Titel\" och \"Brödtext\" läggas till. Funktionerna för CCK är tillgängliga genom flikarna på sidan<a href=\"@content-types\">admininistrera innehållstyper</a>. (Se sidan <a href=\"@node-help\">hjälp för modulen Nod</a> för mer information om innehållstyper.)"
-
-#: content.module:22
-msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatically adjusts the structure of the database as necessary. CCK also provides a number of other features, including intelligent caching for your custom data, an import and export facility for content type definitions, and integration with other contributed modules."
-msgstr "När du lägger till ett anpassat fält till en innehållstyp, bestämmer du dess typ (om det ska innehålla text, nummer eller referera till andra objekt) och hur det ska visas (antingen som ett textfält, flerradigt textfält, listval, kryssruta, radioknapp eller autokomatiskt kompletterande fält). Ett fält kan ha flera värden (till exempel kan en \"person\" ha flera e-postadresser) eller ett värda (till exempel kan en \"anställd\" ha ett anställnings-ID). När du lägger till och redigerar fält kommer CCK automatiskt att justera databasens struktur. CCK möjliggör även ett antal andra funktioner, såsom intelligent caching för dina anpassade data, import och export av definitioner av innehållstyper samt integration med andra tilläggsmoduler."
-
-#: content.module:23
-msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
-msgstr "Anpassade fälttyper är tillgängliga genom ett antal valfria moduler som är inkluderade med CCK (varje modul tillhandahåller en egen typ). Sidan <a href=\"@modules\">moduler</a> låter dig aktivera eller eller inaktivera komponenter för CCK. En standardinstallation av CCK inkluderar:"
-
-#: content.module:25
-msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
-msgstr "<em>tal</em>, som lägger till numeriska fälttyper som heltal, decimaltal eller flyttal. Du kan definiera en uppsättning av tillåtna värden eller specificera en tillåten spännvidd av värden. Ett antal vanliga format för att visa numerisk data finns tillgängliga."
-
-#: content.module:26
-msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
-msgstr "<em>text</em>, som lägger till typer av sorten textfält. Ett textfält kan innehålla enbart ren text, eller använda Drupals inmatningsformat för att säkert hantera formaterad text. Textfält kan vara antingen en rad (textfält), flera rader (textområde), eller för större kontroll av det som matas in, ett listval, kryssruta eller radioknapp. Om så önskas kan CCK validera den inmatade datan enligt en uppsättning tillåtna värden."
-
-#: content.module:27
-msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
-msgstr "<em>hänvisning av nod</em>, som skapar hänvisningar mellan noder i Drupal. Genom att lägga till en fält av typen <em>nodreferens</em> och två olika innehållstyper, till exempel, kan du enkelt skapa komplexa ovan- eller underliggande relationer mellan data (flera noder med \"anställda\" kan innehålla ett fält av typen <em>nodreferens</em> som länkar till en nod för \"arbetsgivare\")."
-
-#: content.module:28
-msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
-msgstr "<em>hänvisning av användare</em>, som skapar anpassade hänvisningar till användarkonton på din webbplats. Genom att lägga till ett fält av typen <em>användarreferens</em> kan du skapa komplexa relationer mellan din webbplats användare och inlägg. Till exempel: för att spåra användares inblandning i ett inlägg utöver Drupals standardfält <em>Författad av</em>, lägg till ett fält av typen <em>användarreferens</em> med namnet \"Redigerad av\" till en innehållstyp för att lagra en länk till en redigerares användarsida."
-
-#: content.module:29
-msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
-msgstr "<em>fältgrupp</em>, som skapar hopfällbara fältgrupp för att innehålla en grupp av relaterade fält. En fältgrupp kan antingen vara öppen eller hopfälld som standard. Sorteringen av fältgrupper, och sorteringen av fält inom en fältgrupp, hanteras genom ett drag-och-släpp-gränssnitt via modulen Content."
-
-#: content.module:31
-msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
-msgstr "För mer information, <a href=\"@handbook-cck\">läs onlinehandboken för CCK</a> eller besök <a href=\"@project-cck\">CCK:s projektsida</a>."
-
-#: content.module:486
-msgid "This field is required."
-msgstr "Detta fält är obligatoriskt."
-
-#: content.module:490
-msgid "!title: !required"
-msgstr "!title: !required"
-
-#: content.module:1843
-msgid "Basic"
-msgstr "Grundläggande"
-
-#: content.module:1856;1859
-msgid "RSS"
-msgstr "RSS"
-
-#: content.module:1869
-msgid "Search"
-msgstr "Sök"
-
-#: content.module:1872
-msgid "Search Index"
-msgstr "Sökindex"
-
-#: content.module:1876
-msgid "Search Result"
-msgstr "Sökresultat"
-
-#: content.module:2324;2331
-msgid "Node module form."
-msgstr "Formulär för modulen Nod."
-
-#: content.module:2338
-msgid "Language"
-msgstr "Språk"
-
-#: content.module:2339
-msgid "Locale module form."
-msgstr "Formulär för modulen Språkanpassning.."
-
-#: content.module:2345
-msgid "Menu settings"
-msgstr "Menyinställningar"
-
-#: content.module:2346
-msgid "Menu module form."
-msgstr "Formulär för modulen Meny."
-
-#: content.module:2352
-msgid "Taxonomy"
-msgstr "Taxonomi"
-
-#: content.module:2353
-msgid "Taxonomy module form."
-msgstr "Formulär för modulen Taxonomi."
-
-#: content.module:2359
-msgid "Book"
-msgstr "Bok"
-
-#: content.module:2360
-msgid "Book module form."
-msgstr "Formulär för modulen Bok."
-
-#: content.module:2366
-msgid "Poll title"
-msgstr "Titel för omröstning"
-
-#: content.module:2367
-msgid "Poll module title."
-msgstr "Titel för modulen Omröstning."
-
-#: content.module:2371
-msgid "Poll choices"
-msgstr "Val för omröstning"
-
-#: content.module:2372
-msgid "Poll module choices."
-msgstr "Val för modulen Omröstning."
-
-#: content.module:2376
-msgid "Poll settings"
-msgstr "Inställningar för omröstning"
-
-#: content.module:2377
-msgid "Poll module settings."
-msgstr "Inställningar för modulen Omröstning."
-
-#: content.module:2383
-msgid "File attachments"
-msgstr "Bifogade filer"
-
-#: content.module:2384
-msgid "Upload module form."
-msgstr "Formulär för modulen Uppladdning."
-
-#: content.module:589
-msgid "Updating field type %type with module %module."
-msgstr "Uppdaterar fälttypen %type med modulen %module."
-
-#: content.module:596
-msgid "Updating widget type %type with module %module."
-msgstr "Uppdaterar gränssnittskomponenten %type med modulen %module."
-
-#: content.module:63
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr "Använd PHP-inmatning för fältinställningarna (farligt - använd med försiktighet)"
-
-#: content.module:82
-msgid "Fields"
-msgstr "Fält"
-
-#: content.module:104
-msgid "Manage fields"
-msgstr "Hantera fält"
-
-#: content.module:113
-msgid "Display fields"
-msgstr "Visa fält"
-
-#: content.module:144
-msgid "Remove field"
-msgstr "Ta bort fält"
-
-#: content.install:236
-msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Uppdateringar för relaterade moduler till CCK körs inte förrän modulerna är aktiverade på sidan <a href=\"@admin-modules-path\">administrera moduler</a>. När du aktiverar dem kommer du att behöva återvända till <a href=\"@update-php\">update.php</a> och köra de kvarvarande uppdateringarna."
-
-#: content.install:239
-msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "!module.module har uppdateringar men kan inte uppdateras eftersom content.module inte är aktiverad.<br />Om och när content.module är aktiverad kommer du att behöva köra uppdateringsskriptet igen. Du kommer att fortsätta se detta meddelande tills modulen är aktiverad och uppdateringarna är genomförda."
-
-#: content.install:244
-msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "!module.module har uppdateringar och är tillgänglig i katalogen för moduler men är inte aktiverad.<br /> Om och när den är aktiverad kommer du att behöva köra uppdateringsskriptet igen. Du kommer att fortsätta se detta meddelande tills modulen är aktiverad och uppdateringarna är genomförda."
-
-#: content.install:251
-msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Några uppdateringar är fortfarande kvar. Vänligen återvänd till <a href=\"@update-php\">update.php</a> och kör de kvarvarande uppdateringarna."
-
-#: content.install:252
-msgid "Some updates are still pending.<br/>Please re-run the update script."
-msgstr "Några uppdateringar är fortfarande kvar.<br/>Var vänlig kör uppdateringsskriptet igen."
-
-#: (duplicate) content.install:10
-msgid "CCK - No Views integration"
-msgstr "CCK - Ingen integration med Views"
-
-#: (duplicate) content.install:11
-msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
-msgstr "Integration av CCK med modulen Views kräver Views 6.x-2.0-rc2 eller senare."
-
-#: content.info:0
-#: includes/content.rules.inc:19;200
-#: includes/views/content.views.inc:178;254
-msgid "Content"
-msgstr "Innehåll"
-
-#: content.info:0
-msgid "Allows administrators to define new content types."
-msgstr "Tillåter administratörer att definiera nya innehållstyper."
-
-#: content.info:0
-#: modules/content_copy/content_copy.info:0
-#: modules/content_permissions/content_permissions.info:0
-#: modules/fieldgroup/fieldgroup.info:0
-#: modules/nodereference/nodereference.info:0
-#: modules/number/number.info:0
-#: modules/optionwidgets/optionwidgets.info:0
-#: modules/text/text.info:0
-#: modules/userreference/userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
diff --git a/translations/es.po b/translations/es.po
deleted file mode 100644
index 736ba58..0000000
--- a/translations/es.po
+++ /dev/null
@@ -1,403 +0,0 @@
-# $Id: es.po,v 1.1 2007/09/25 03:31:32 yched Exp $
-# LANGUAGE translation of Drupal (general)
-# Copyright 2006 NAME <EMAIL@ADDRESS>
-# Generated from files:
-# field.php,v 1.3 2006/04/16 13:47:13 JonBob
-# text.module,v 1.34 2006/06/12 19:59:53 JonBob
-# number.module,v 1.28 2006/05/02 13:52:16 JonBob
-# content_admin.inc,v 1.16 2006/06/12 19:36:54 JonBob
-# content.module,v 1.64 2006/06/12 19:36:54 JonBob
-# nodereference.module,v 1.28 2006/06/12 19:36:54 JonBob
-# optionwidgets.module,v 1.8 2006/05/01 15:45:29 JonBob
-# userreference.module,v 1.24 2006/05/05 14:10:44 JonBob
-# weburl.module,v 1.8 2006/06/12 19:36:54 JonBob
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: cck.module 4.7\n"
-"POT-Creation-Date: 2006-07-05 13:23-0400\n"
-"PO-Revision-Date: 2006-07-17 08:30-0300\n"
-"Last-Translator: Guillermo Acedo <guillermo.acedo@gmail.com>\n"
-"Language-Team: Spanish <es@li.org>\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\n"
-
-#: field.php:77
-#: text.module:44
-msgid "Maximum length"
-msgstr "Longitud máxima"
-
-#: field.php:80
-#: text.module:47
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr "La longitud máxima del campo en caracteres. Déjalo en blanco para un tamaño ilimitado."
-
-#: field.php:102
-#: number.module:82
-#: text.module:80
-msgid "is equal to"
-msgstr "es igual a"
-
-#: field.php:103
-#: number.module:83
-#: text.module:81
-msgid "is not equal to"
-msgstr "no es igual a"
-
-#: field.php:104
-#: text.module:82
-msgid "matches the pattern"
-msgstr "coincide con el patrón"
-
-#: field.php:180;190
-#: number.module:119
-#: text.module:107
-msgid "Illegal value for %name."
-msgstr "Valor ilegal para %name."
-
-#: field.php:265
-#: text.module:159
-msgid "Rows"
-msgstr "Filas"
-
-#: field.php:273
-#: text.module:167
-msgid "\"Rows\" must be a positive integer."
-msgstr "\"Filas\" debe ser un valor positivo entero."
-
-#: content_admin.inc:25
-#: content.module:119
-msgid "duplicate"
-msgstr "duplicar"
-
-#: number.module:48
-#: text.module:51
-msgid "Allowed values"
-msgstr "Valores permitidos"
-
-#: number.module:52
-#: text.module:55
-msgid "The possible values this field can contain. Any other values will result in an error. Enter one value per line."
-msgstr "Los valores posibles que este campo puede contener. Cualquier otro valor puede dará error. Ingresar un valor por linea."
-
-#: content.module:18
-msgid "Allows administrators to define new content types."
-msgstr "Permitir a los administradores definir nuevos tipos de contenidos."
-
-#: content.module:73
-msgid "add content type"
-msgstr "añadir un tipo de contenido"
-
-#: content.module:80
-msgid "fields"
-msgstr "los campos"
-
-#: content.module:135
-msgid "manage fields"
-msgstr "configurar los campos"
-
-#: content.module:164
-msgid "remove field"
-msgstr "borrar el campo"
-
-#: nodereference.module:15
-msgid "Defines a field type for referencing one node from another. <em>Note: Requires content.module.</em>"
-msgstr "Define un tipo de campo para referenciar un nodo de otro. <em>Nota: Requiere content.module.</em>"
-
-#: nodereference.module:26
-msgid "node reference autocomplete"
-msgstr "autocompletar nodo de referencia"
-
-#: nodereference.module:51
-msgid "Content types that can be referenced"
-msgstr "Tipos de contenido que pueden ser referenciados"
-
-#: nodereference.module:204
-msgid "No post with that title exists."
-msgstr "No existe ninguna publicación con ese título."
-
-#: nodereference.module:0
-msgid "nodereference"
-msgstr "nodo de referencia"
-
-#: number.module:15
-msgid "Defines numeric field types. <em>Note: Requires content.module.</em>"
-msgstr "Define los tipos de campo numéricos. <em>Nota: Requiere content.module.</em>"
-
-#: number.module:38
-msgid "Minimum"
-msgstr "Mínimo"
-
-#: number.module:43
-msgid "Maximum"
-msgstr "Máximo"
-
-#: number.module:58
-msgid "\"Minimum\" must be a number."
-msgstr "\"Mínimo\" debe ser un número."
-
-#: number.module:61
-msgid "\"Maximum\" must be a number."
-msgstr "\"Máximo\"debe ser un número."
-
-#: number.module:113
-msgid "The value of %name may be no smaller than %min."
-msgstr "El valor de %name no debe ser menor que %min."
-
-#: number.module:116
-msgid "The value of %name may be no larger than %max."
-msgstr "El valor de %name no debe ser mayor que %max."
-
-#: number.module:0
-msgid "number"
-msgstr "número"
-
-#: optionwidgets.module:15
-msgid "Defines selection, check box and radio button widgets for text and numeric fields. <em>Note: Requires content.module, text.module and number.module.</em>"
-msgstr "Define controles de selección, check box y radio button para campos de texto y numéricos. <em>Nota: Requiere content.module, text.module y number.module.</em>"
-
-#: optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optionwidgets"
-
-#: text.module:15
-msgid "Defines simple text field types. <em>Note: Requires content.module.</em>"
-msgstr "Define tipos de campo de texto simple. <em>Nota: Requiere content.module.</em>"
-
-#: text.module:35
-msgid "Plain text"
-msgstr "Sólo texto"
-
-#: text.module:35
-msgid "Filtered text (user selects input format)"
-msgstr "Texto filtrado (los usuarios seleccionan el formato de entrada)"
-
-#: text.module:38
-msgid "Text processing"
-msgstr "Procesando texto"
-
-#: text.module:0
-msgid "text"
-msgstr "texto"
-
-#: userreference.module:15
-msgid "Defines a field type for referencing a user from a node. <em>Note: Requires content.module.</em>"
-msgstr "Define un tipo de campo para referenciar un usuario desde un nodo. <em>Nota: Requiere content.module.</em>"
-
-#: userreference.module:176
-msgid "Invalid user name."
-msgstr "Nombre de usuario no válido"
-
-#: userreference.module:0
-msgid "userreference"
-msgstr "userreference"
-
-#: weburl.module:15
-msgid "Defines simple weburl field types. <em>Note: Requires content.module.</em>"
-msgstr "Define tipo de campo para dirección de Web. <em>Nota: Requiere content.module.</em>"
-
-#: weburl.module:164;172
-msgid "Not a valid Web URL."
-msgstr "No es una dirección de pagina Web válida"
-
-#: weburl.module:0
-msgid "weburl"
-msgstr "weburl"
-
-#: content_admin.inc:16;87;232;310;533
-msgid "Label"
-msgstr "Etiqueta"
-
-#: content_admin.inc:42
-msgid "Content types"
-msgstr "Tipo de contenido"
-
-#: content_admin.inc:90
-msgid "The human-readable name of this content type."
-msgstr "El nombre legible de este tipo de contenido."
-
-#: content_admin.inc:98
-msgid "A brief description of the content type."
-msgstr "Una breve descripción del tipo de contenido."
-
-#: content_admin.inc:106
-msgid "Instructions to present to the user when adding new content of this type."
-msgstr "Instrucciones a presentar al usuario cuando agrega este tipo de contenido."
-
-#: content_admin.inc:110
-msgid "Title field label"
-msgstr "Etiqueta del campo Título"
-
-#: content_admin.inc:113
-msgid "The label for the title field."
-msgstr "La etiqueta para el campo del título."
-
-#: content_admin.inc:118
-msgid "Save content type"
-msgstr "Guardar este tipo de contenido"
-
-#: content_admin.inc:182
-msgid "Saved content type %type."
-msgstr "Tipo de contenido %type guardado."
-
-#: content_admin.inc:198
-msgid "Are you sure you want to delete the content type %type?"
-msgstr "¿Está seguro que quiere borrar el tipo de contenido %type?"
-
-#: content_admin.inc:198
-msgid "If you have any content left in this content type, it will be permanently deleted. This action cannot be undone."
-msgstr "Si existe contenido de este tipo en la base de datos, será borrado de forma permanente. Esta acción no se puede deshacer."
-
-#: content_admin.inc:218
-msgid "Deleted content type %type."
-msgstr "Tipo de contenido %type borrado."
-
-#: content_admin.inc:248
-msgid "remove"
-msgstr "borrar"
-
-#: content_admin.inc:277
-msgid "Add existing field"
-msgstr "Añadir un campo existente"
-
-#: content_admin.inc:286
-msgid "Add field"
-msgstr "Añadir un campo"
-
-#: content_admin.inc:307
-msgid "Create new field"
-msgstr "Crear un nuevo campo"
-
-#: content_admin.inc:313
-msgid "The human-readable name of this field."
-msgstr "El nombre leíble-por-humanos de este campo."
-
-#: content_admin.inc:318
-msgid "Field type"
-msgstr "Tipo de campo"
-
-#: content_admin.inc:326
-msgid "Create field"
-msgstr "Crear un campo"
-
-#: content_admin.inc:335
-msgid "No field modules are enabled. You need to <a href=\"%modules_url\">enable one</a>, such as text.module, before you can add new fields."
-msgstr "No hay ningún módulo de definición de campos habilitados. Usted debe <a href=\"%modules_url\">habilitar uno</a>, por ejemplo como text.module, antes que pueda añadir nuevos campos."
-
-#: content_admin.inc:389
-msgid "Added field %label."
-msgstr "Campo %label agregado."
-
-#: content_admin.inc:432
-msgid "Created field %label."
-msgstr "campo %label creado."
-
-#: content_admin.inc:452
-msgid "Are you sure you want to remove the field %field?"
-msgstr "¿Está seguro que quiere borrar el campo %field?"
-
-#: content_admin.inc:452
-msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
-msgstr "Si tiene algún contenido en este campo, va a ser permanentemente borrado. Esta acción no podrá deshacerse."
-
-#: content_admin.inc:452
-msgid "Remove"
-msgstr "Borrar"
-
-#: content_admin.inc:468
-msgid "Removed field %field from %type."
-msgstr "Campo %field de %type borrado."
-
-#: content_admin.inc:487
-msgid "The field %field no longer exists in any content type, so it was deleted."
-msgstr "El campo %field no existe mas en ningún tupo de contenido, ha sido borrado."
-
-#: content_admin.inc:511
-msgid "Widget settings"
-msgstr "Opciones del control"
-
-#: content_admin.inc:512
-msgid "These settings apply only to the %field field as it appears in the %type content type."
-msgstr "Estas configuraciónes se aplican solamente al campo %field como aparece en el tipo de contenido %type. "
-
-#: content_admin.inc:526
-msgid "Widget"
-msgstr "Control"
-
-#: content_admin.inc:541
-msgid "In the node editing form, the heavier fields will sink and the lighter fields will be positioned nearer the top."
-msgstr "En el formulario de edición de nodo, los campos más pesado se posicionarán más hacia abajo y los campos más livianos hacia más arriba."
-
-#: content_admin.inc:552
-msgid "Instructions to present to the user below this field on the editing form."
-msgstr "Las instrucciones a presentan al usuario debajo este campo en el formulario de edición."
-
-#: content_admin.inc:558
-msgid "Data settings"
-msgstr "Configuraciónes de datos"
-
-#: content_admin.inc:559
-msgid "These settings apply to the %field field in every content type in which it appears."
-msgstr "Estas configuraciones se aplica al campo %field en cada tipo de contenido que este aparezca."
-
-#: content_admin.inc:568
-msgid "Multiple values"
-msgstr "Valores múltiples"
-
-#: content_admin.inc:579
-msgid "Save field settings"
-msgstr "Guardar configuraciones del campo"
-
-#: content_admin.inc:652
-msgid "Saved field %field."
-msgstr "campo %field guardado."
-
-#: content_admin.inc:882;971
-msgid "No PostgreSQL mapping found for %type data type."
-msgstr "El mapeo PostgreSQL no se ha encontrado para el tipo de datos %type."
-
-#: content_admin.inc:882;971
-msgid "database"
-msgstr "base de datos"
-
-#: date.module:15
-msgid "Defines a date/time field type. <em>Note: Requires content.module.</em>"
-msgstr "Definir un tipo de campo de fecha/hora. <em>Note: Requiere content.module.</em>"
-
-#: date.module:36
-msgid "Year"
-msgstr "Año"
-
-#: date.module:37
-msgid "Year and month"
-msgstr "Año y mes"
-
-#: date.module:39
-msgid "Date and time"
-msgstr "Día y hora"
-
-#: date.module:40
-msgid "Time only"
-msgstr "Sólo hora"
-
-#: date.module:44
-msgid "Granularity"
-msgstr "Granularity"
-
-#: date.module:102
-msgid "Times are entered and displayed with site's time zone"
-msgstr "El horario debe ser ingresado y visualizado a partir de la zona horaria del sitio"
-
-#: date.module:103
-msgid "Times are entered and displayed with user's time zone"
-msgstr "El horario debe ser ingresado y visualizado a partir de la zona horaria del usuario"
-
-#: date.module:107
-msgid "Time zone handling"
-msgstr "Configurar zona horaria"
-
-#: date.module:153
-msgid "%name must be entered in ISO 8601 format (YYYYMMDDThh:mm:ss)."
-msgstr "%name debe ser ingresado en formato ISO 8601 t (AAAMMDDThh:mm:ss)."
\ No newline at end of file
diff --git a/translations/examples.fr.po b/translations/examples.fr.po
deleted file mode 100644
index 55c5f31..0000000
--- a/translations/examples.fr.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: examples/example_field.php:178
-msgid ""
-"The possible values this field can contain. Enter one value per line, in the "
-"format key|label. The key is the value that will be stored in the database "
-"and it must match the field storage type, %type. The label is optional and "
-"the key will be used as the label if no label is specified."
-msgstr ""
-"Les valeurs possibles pour ce champ. Saisissez une valeur par ligne, sous la "
-"forme <em>clé|libellé</em>. La clé est la valeur enregistrée dans la base de "
-"données, et elle doit correspondre au type de stockage du champ, %type. Le "
-"libellé est optionnel et, s'il n'est pas spécifié, la clé sera utilisée "
-"comme libellé."
-
-#: examples/example_field.php:484
-msgid "Text area"
-msgstr "Zone de texte"
diff --git a/translations/fr.po b/translations/fr.po
deleted file mode 100644
index e642fa7..0000000
--- a/translations/fr.po
+++ /dev/null
@@ -1,2020 +0,0 @@
-# $Id: fr.po,v 1.1.2.3 2009/03/26 17:24:36 slybud Exp $
-#
-# French translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content.module,v 1.301.2.100 2009/03/18 19:20:52 yched
-# content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
-# content.admin.inc,v 1.181.2.64 2009/03/01 13:48:44 yched
-# fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
-# nodereference.module,v 1.138.2.50 2009/03/18 21:00:58 yched
-# content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
-# content.install,v 1.85.2.30 2008/11/07 16:24:58 yched
-# content.info,v 1.6 2007/07/04 23:46:29 yched
-# content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
-# content.views.inc,v 1.1.2.22 2009/01/14 13:19:47 karens
-# content_copy.info,v 1.6 2008/04/23 18:01:48 dww
-# modules/content_multigroup/content_multigroup.info: n/a
-# content_permissions.info,v 1.2 2008/04/23 18:01:52 dww
-# fieldgroup.info,v 1.6.2.1 2008/09/22 18:25:21 karens
-# nodereference.info,v 1.8 2008/04/23 18:02:07 dww
-# number.info,v 1.7 2008/04/23 18:02:16 dww
-# optionwidgets.info,v 1.7 2008/04/23 18:02:24 dww
-# text.info,v 1.9 2008/04/23 18:02:31 dww
-# userreference.info,v 1.8 2008/04/23 18:02:38 dww
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
-# content.panels.inc,v 1.1.2.6 2008/11/03 14:12:41 yched
-# content_handler_field.inc,v 1.1.2.14 2009/03/18 19:20:52 yched
-# content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
-# number.module,v 1.91.2.33 2009/03/16 22:04:07 yched
-# text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# content.node_form.inc,v 1.7.2.18 2009/02/10 22:53:04 yched
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# content.token.inc,v 1.5.2.8 2008/12/05 14:59:22 yched
-# content_handler_field_multiple.inc,v 1.1.2.16 2009/03/17 22:58:06 yched
-# content_handler_relationship.inc,v 1.1.2.3 2008/10/24 12:31:58 yched
-# content_handler_sort.inc,v 1.1.2.6 2008/10/25 00:36:41 yched
-# content_permissions.module,v 1.5.2.5 2008/12/27 22:22:55 yched
-# content_permissions.install,v 1.1.2.2 2008/10/04 13:14:22 karens
-# userreference.module,v 1.106.2.36 2009/03/18 21:00:58 yched
-# optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
-# theme.inc,v 1.1.2.12 2008/10/28 22:12:09 yched
-# theme/content-edit.js: n/a
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: French Translation for drupal cck module\n"
-"POT-Creation-Date: 2009-03-26 16:52+0100\n"
-"PO-Revision-Date: 2009-03-26 18:09+0100\n"
-"Last-Translator: Sylvain Moreau <sylvain.moreau@ows.fr>\n"
-"Language-Team: Sylvain Moreau, OWS <sylvain.moreau@ows.fr>\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: French\n"
-"X-Poedit-Country: FRANCE\n"
-
-#: content.module:21
-msgid "The content module, a required component of the Content Construction Kit (CCK), allows administrators to associate custom fields with content types. In Drupal, content types are used to define the characteristics of a post, including the title and description of the fields displayed on its add and edit pages. Using the content module (and the other helper modules included in CCK), custom fields beyond the default \"Title\" and \"Body\" may be added. CCK features are accessible through tabs on the <a href=\"@content-types\">content types administration page</a>. (See the <a href=\"@node-help\">node module help page</a> for more information about content types.)"
-msgstr "Le module Content, composant obligatoire du kit CCK (Content Construction Kit) permet aux administrateurs d'associer des champs personnalisés à des types de contenus. Au sein de Drupal, les types de contenus servent à définir les caractéristiques d'une publication, y compris le titre et la description des champs affichés sur ses pages \"ajouter\" et \"éditer\". Le module Content (et les modules auxiliaires inclus dans CCK) permet d'ajouter des champs personnalisés en plus des champs par défaut \"Titre\" et \"Corps\". Les fonctionnalités de CCK sont accessible via différents onglets sur la <a href=\"@content-types\">page d'administration des types de contenus</a>. (Voir la <a href=\"@node-help\">page d'aide du module Node</a> pour plus d'informations sur les types de contenus)."
-
-#: content.module:22
-msgid "When adding a custom field to a content type, you determine its type (whether it will contain text, numbers, or references to other objects) and how it will be displayed (either as a text field or area, a select box, checkbox, radio button, or autocompleting field). A field may have multiple values (i.e., a \"person\" may have multiple e-mail addresses) or a single value (i.e., an \"employee\" has a single employee identification number). As you add and edit fields, CCK automatically adjusts the structure of the database as necessary. CCK also provides a number of other features, including intelligent caching for your custom data, an import and export facility for content type definitions, and integration with other contributed modules."
-msgstr "Lorsque vous ajoutez un champ personnalisé à un type de contenu, vous déterminez son type (c'est-à-dire s'il doit contenir du texte, des nombres ou des références à d'autres objets) et la façon dont il doit être affiché (en tant que champ ou zone de texte, liste de sélection, case à cocher, bouton radio, ou champ à auto-complètement). Un champ peut présenter plusieurs valeurs (par exemple, une \"personne\" peut disposer de plusieurs adresses e-mail) ou une seule (par exemple, un \"employé\" possède un numéro d'identification unique). À mesure que vous ajoutez et modifiez des champs, CCK ajuste automatiquement la structure de la base de données en fonction. CCK propose également un certain nombre d'autres fonctionnalités, par exemple un cache intelligent pour vos données personnalisées, des fonctionnalités d'import et d'export pour les définitions de types de contenus, ainsi qu'une intégration à d'autres modules provenant des contributions."
-
-#: content.module:23
-msgid "Custom field types are provided by a set of optional modules included with CCK (each module provides a different type). The <a href=\"@modules\">modules page</a> allows you to enable or disable CCK components. A default installation of CCK includes:"
-msgstr "Des types de champs personnalisés sont proposés par plusieurs modules optionnels inclus dans CCK (chaque module fournissant un type différent). La <a href=\"@modules\">page des modules</a> vous permet d'activer ou de désactiver des composants CCK. Une installation par défaut de CCK inclut :"
-
-#: content.module:25
-msgid "<em>number</em>, which adds numeric field types, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. A variety of common formats for displaying numeric data are available."
-msgstr "<em>Number</em>, qui ajoute des types de champs numériques (formats entier, décimal ou réel à virgule flottante). Vous pouvez définir un jeu ou un intervalle de valeurs autorisées. Divers formats sont disponibles pour l'affichage des données numériques."
-
-#: content.module:26
-msgid "<em>text</em>, which adds text field types. A text field may contain plain text only, or optionally, may use Drupal's input format filters to securely manage rich text input. Text input fields may be either a single line (text field), multiple lines (text area), or for greater input control, a select box, checkbox, or radio buttons. If desired, CCK can validate the input to a set of allowed values."
-msgstr "<em>Text</em>, qui ajoute des types de champs de texte. Un champ texte peut contenir du texte brut uniquement ou, optionnellement, utiliser les filtres des formats d'entrée que propose Drupal pour gérer en toute sécurité des textes enrichis. Les champs de saisie de texte peuvent être constitués d'une seule ligne (champ texte), de plusieurs lignes (zone de texte) ou, pour un meilleur contrôle des valeurs saisies, une liste de sélection, des cases à cocher ou des boutons radio. Si besoin, CCK peut valider les saisies sur la base d'un ensemble de valeurs autorisées."
-
-#: content.module:27
-msgid "<em>nodereference</em>, which creates custom references between Drupal nodes. By adding a <em>nodereference</em> field and two different content types, for instance, you can easily create complex parent/child relationships between data (multiple \"employee\" nodes may contain a <em>nodereference</em> field linking to an \"employer\" node)."
-msgstr "<em>Node Reference</em>, qui crée des références personnalisées entre nœuds de Drupal. En ajoutant, par exemple, un champ <em>nodereference</em> et deux types de contenus différents, vous pouvez facilement créer des relations complexes de type parent/enfant entre données (par exemple plusieurs nœuds \"employé\" peuvent présenter un champ <em>nodereference</em> pointant vers un même nœud \"employeur\")."
-
-#: content.module:28
-msgid "<em>userreference</em>, which creates custom references to your sites' user accounts. By adding a <em>userreference</em> field, you can create complex relationships between your site's users and posts. To track user involvement in a post beyond Drupal's standard <em>Authored by</em> field, for instance, add a <em>userreference</em> field named \"Edited by\" to a content type to store a link to an editor's user account page."
-msgstr "<em>User reference</em>, qui crée des références personnalisées vers les comptes des utilisateurs de votre site. En ajoutant un champ <em>userreference</em>, vous pouvez créer des relations complexes entre les utilisateurs de votre site et des publications. Ainsi, pour tracer l'implication d'un utilisateur dans une publication (au delà du champ Drupal standard <em>Écrit par</em>), vous pouvez ajouter à un type de contenu un champ <em>userreference</em> intitulé \"Édité par\" pour enregistrer un lien vers la page du compte utilisateur ayant édité la publication."
-
-#: content.module:29
-msgid "<em>fieldgroup</em>, which creates collapsible fieldsets to hold a group of related fields. A fieldset may either be open or closed by default. The order of your fieldsets, and the order of fields within a fieldset, is managed via a drag-and-drop interface provided by content module."
-msgstr "<em>Fieldgroup</em>, qui crée des groupes de champs liés. Les groupes de champ peuvent être repliés, et vous pouvez choisir qu'ils soient dépliés ou repliés par défaut. L'ordre des groupes de champs, ainsi que l'ordre des champs au sein d'un groupe, est géré grâce à l'interface par glisser-déposer fournie par le module Content."
-
-#: content.module:31
-msgid "For more information, see the online handbook entry for <a href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK project page</a>."
-msgstr "Pour plus d'informations, reportez-vous à l'entrée de manuel en ligne relative à <a href=\"@handbook-cck\">CCK</a> ou à la <a href=\"@project-cck\">page du projet CCK</a>."
-
-#: content.module:486
-#: modules/content_multigroup/content_multigroup.module:1422
-msgid "This field is required."
-msgstr "Ce champ est obligatoire."
-
-#: content.module:490
-msgid "!title: !required"
-msgstr "!title : !required"
-
-#: content.module:493
-#: modules/content_multigroup/content_multigroup.module:1434
-msgid "Order"
-msgstr "Ordre"
-
-#: content.module:496
-#: includes/content.admin.inc:171;197;888
-#: modules/content_multigroup/content_multigroup.module:1436
-#: modules/fieldgroup/fieldgroup.module:203
-msgid "Remove"
-msgstr "Ôter"
-
-#: content.module:1868
-msgid "Basic"
-msgstr "Basique"
-
-#: content.module:1871
-#: modules/nodereference/nodereference.module:257
-msgid "Teaser"
-msgstr "Résumé"
-
-#: content.module:1875
-#: modules/nodereference/nodereference.module:252
-msgid "Full node"
-msgstr "Nœud complet"
-
-#: content.module:1881;1884
-msgid "RSS"
-msgstr "RSS"
-
-#: content.module:1894
-msgid "Search"
-msgstr "Recherche"
-
-#: content.module:1897
-msgid "Search Index"
-msgstr "Index de recherche"
-
-#: content.module:1901
-msgid "Search Result"
-msgstr "Résultat de recherche"
-
-#: content.module:2349;2356
-msgid "Node module form."
-msgstr "Formulaire du module node."
-
-#: content.module:2363
-msgid "Language"
-msgstr "Langue"
-
-#: content.module:2364
-msgid "Locale module form."
-msgstr "Formulaire du module locale."
-
-#: content.module:2370
-msgid "Menu settings"
-msgstr "Paramètres du menu"
-
-#: content.module:2371
-msgid "Menu module form."
-msgstr "Formulaire du module menu."
-
-#: content.module:2377
-msgid "Taxonomy"
-msgstr "Taxonomie"
-
-#: content.module:2378
-msgid "Taxonomy module form."
-msgstr "Formulaire du module taxonomy."
-
-#: content.module:2384
-msgid "Book"
-msgstr "Livre"
-
-#: content.module:2385
-msgid "Book module form."
-msgstr "Formulaire du module livre (book)."
-
-#: content.module:2391
-msgid "Poll title"
-msgstr "Titre du sondage"
-
-#: content.module:2392
-msgid "Poll module title."
-msgstr "Titre du module sondage (Poll)"
-
-#: content.module:2396
-msgid "Poll choices"
-msgstr "Choix du sondage"
-
-#: content.module:2397
-msgid "Poll module choices."
-msgstr "Choix du module sondage (poll)."
-
-#: content.module:2401
-msgid "Poll settings"
-msgstr "Paramètrage du sondage"
-
-#: content.module:2402
-msgid "Poll module settings."
-msgstr "Paramètres du module sondage (poll)."
-
-#: content.module:2408
-msgid "File attachments"
-msgstr "Fichiers attachés"
-
-#: content.module:2409
-msgid "Upload module form."
-msgstr "Formulaire du module upload."
-
-#: content.module:600;607;0
-#: includes/content.crud.inc:589;633
-msgid "content"
-msgstr "contenu"
-
-#: content.module:600
-msgid "Updating field type %type with module %module."
-msgstr "Mise à jour du type de champ %type avec le module %module."
-
-#: content.module:607
-msgid "Updating widget type %type with module %module."
-msgstr "Mise à jour du type de widget %widget avec le module %module."
-
-#: content.module:63
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr "Utiliser du code PHP pour le paramétrage des champs (dangereux - à n'autoriser qu'avec précautions)"
-
-#: content.module:82
-msgid "Fields"
-msgstr "Champs"
-
-#: content.module:104
-msgid "Manage fields"
-msgstr "Gérer les champs"
-
-#: content.module:113
-msgid "Display fields"
-msgstr "Afficher les champs"
-
-#: content.module:144
-msgid "Remove field"
-msgstr "Supprimer un champ"
-
-#: content.install:236
-msgid "Updates for CCK-related modules are not run until the modules are enabled on the <a href=\"@admin-modules-path\">administer modules page</a>. When you enable them, you'll need to return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Les mises à jour des modules liés à CCK ne sont pas exécutées tant que les modules ne sont pas activés sur la <a href=\"@admin-modules-path\">page d'administration des modules</a>. Lorsque vous les activerez, vous devrez retourner sur la page <a href=\"@update-php\">update.php</a> et exécuter les mises à jour restantes."
-
-#: content.install:239
-msgid "!module.module has updates but cannot be updated because content.module is not enabled.<br />If and when content.module is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "!module.module possède des mises à jour mais ne peut pas être mis à jour car content.module n'est pas activé.<br /> Le cas échéant, lors de l'activation de content.module, vous devrez exécuter à nouveau le script de mise à jour. Vous continuerez à voir ce message jusqu'à ce que le module soit activé et les mises à jour exécutées."
-
-#: content.install:244
-msgid "!module.module has updates and is available in the modules folder but is not enabled.<br />If and when it is enabled, you will need to re-run the update script. You will continue to see this message until the module is enabled and updates are run."
-msgstr "!module.module possède des mises à jour et est disponible dans le répertoire des modules, mais n'est pas activé.<br /> Le cas échéant, lorsque vous l'aurez activé, vous devrez ré-exécuter le script de mise à jour. Vous continuerez à voir ce message jusqu'à l'activation du module et l'exécution des mises à jour. "
-
-#: content.install:251
-msgid "Some updates are still pending. Please return to <a href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr "Des mises à jour sont toujours en attente. Veuillez retourner sur <a href=\"@update-php\">update.php</a> et exécuter les mises à jour restarntes."
-
-#: content.install:252
-msgid "Some updates are still pending.<br/>Please re-run the update script."
-msgstr "Des mises à jour sont toujours en attente.<br/>Veuillez ré-exécuter le script de mise à jour."
-
-#: (duplicate) content.install:10
-msgid "CCK - No Views integration"
-msgstr "CCK - Aucune Intégration aux Vues"
-
-#: (duplicate) content.install:11
-msgid "CCK integration with Views module requires Views 6.x-2.0-rc2 or greater."
-msgstr "L\"intégration de CCK avec le module Views requiert Views 6.x-2.0-rc2 ou une version supérieure."
-
-#: content.info:0
-#: includes/content.rules.inc:19;200
-#: includes/views/content.views.inc:178;254
-msgid "Content"
-msgstr "Contenu"
-
-#: content.info:0
-msgid "Allows administrators to define new content types."
-msgstr "Permet aux administrateurs de définir des nouveaux types de contenu."
-
-#: content.info:0
-#: modules/content_copy/content_copy.info:0
-#: modules/content_multigroup/content_multigroup.info:0
-#: modules/content_permissions/content_permissions.info:0
-#: modules/fieldgroup/fieldgroup.info:0
-#: modules/nodereference/nodereference.info:0
-#: modules/number/number.info:0
-#: modules/optionwidgets/optionwidgets.info:0
-#: modules/text/text.info:0
-#: modules/userreference/userreference.info:0
-msgid "CCK"
-msgstr "CCK"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:11
-#: theme/content-admin-field-overview-form.tpl.php:12
-msgid "Name"
-msgstr "Nom"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:12
-#: theme/content-admin-field-overview-form.tpl.php:13
-msgid "Type"
-msgstr "Type"
-
-#: includes/content.admin.inc:16
-#: modules/fieldgroup/fieldgroup.module:152
-msgid "Description"
-msgstr "Description"
-
-#: includes/content.admin.inc:16
-#: theme/content-admin-field-overview-form.tpl.php:14
-msgid "Operations"
-msgstr "Opérations"
-
-#: includes/content.admin.inc:30
-msgid "edit"
-msgstr "éditer"
-
-#: includes/content.admin.inc:33
-msgid "manage fields"
-msgstr "gérer les champs"
-
-#: includes/content.admin.inc:36
-msgid "delete"
-msgstr "supprimer"
-
-#: includes/content.admin.inc:47
-msgid "No content types available."
-msgstr "Aucun type de contenu disponible."
-
-#: includes/content.admin.inc:54
-msgid "» Add a new content type"
-msgstr "» Ajouter un nouveau type de contenu"
-
-#: includes/content.admin.inc:67;789;984
-msgid "Field name"
-msgstr "Nom du champ"
-
-#: includes/content.admin.inc:67;804;990
-msgid "Field type"
-msgstr "Type de champ"
-
-#: includes/content.admin.inc:67
-msgid "Used in"
-msgstr "Utilisé dans"
-
-#: includes/content.admin.inc:71
-msgid "@field_name (Locked)"
-msgstr "@field_name (Verrouillé)"
-
-#: includes/content.admin.inc:90
-msgid "No fields have been defined for any content type yet."
-msgstr "Aucun champ n'est pour l'instant défini sur l'ensemble des types de contenu."
-
-#: includes/content.admin.inc:106
-msgid "This content type has inactive fields. Inactive fields are not included in lists of available fields until their modules are enabled."
-msgstr "Ce type de contenu possède des champs inactifs. Les champs inactifs ne sont pas inclus dans la liste de champs disponibles, jusqu'à l'activation des modules correspondants."
-
-#: includes/content.admin.inc:108
-msgid "!field (!field_name) is an inactive !field_type field that uses a !widget_type widget."
-msgstr "!field (!field_name) est un champ inactif de type !field_type, qui utilise un widget de type !widget_type."
-
-#: includes/content.admin.inc:170;196
-msgid "Configure"
-msgstr "Configurer"
-
-#: includes/content.admin.inc:181
-msgid "Locked"
-msgstr "Verrouillé"
-
-#: includes/content.admin.inc:237
-msgid "- Select a field type -"
-msgstr "- Sélectionnez un type de champ -"
-
-#: includes/content.admin.inc:238
-msgid "- Select a widget -"
-msgstr "- Sélectionnez un widget -"
-
-#: includes/content.admin.inc:244;285;315;797;978
-#: includes/content.panels.inc:49
-#: includes/views/handlers/content_handler_field.inc:56
-#: modules/content_copy/content_copy_export_form.tpl.php:10
-#: modules/fieldgroup/fieldgroup.module:111
-#: theme/content-admin-display-overview-form.tpl.php:13
-#: theme/content-admin-field-overview-form.tpl.php:10
-msgid "Label"
-msgstr "Étiquette"
-
-#: includes/content.admin.inc:253
-msgid "Field name (a-z, 0-9, _)"
-msgstr "Nom du champ (a-z, 0-9, _)"
-
-#: includes/content.admin.inc:258
-msgid "Type of data to store."
-msgstr "Type de données à stocker."
-
-#: includes/content.admin.inc:263;295
-msgid "Form element to edit the data."
-msgstr "Elément du formulaire pour l'édition des données."
-
-#: includes/content.admin.inc:279
-msgid "- Select an existing field -"
-msgstr "- Sélectionnez un champ existant -"
-
-#: includes/content.admin.inc:290
-msgid "Field to share"
-msgstr "Champ à partager"
-
-#: includes/content.admin.inc:324
-msgid "Group name (a-z, 0-9, _)"
-msgstr "Nom du groupe (a-z, 0-9, _)"
-
-#: includes/content.admin.inc:344;670
-#: modules/fieldgroup/fieldgroup.module:171;335
-msgid "Save"
-msgstr "Enregistrer"
-
-#: includes/content.admin.inc:365
-msgid "Add new field: you need to provide a label."
-msgstr "Ajouter un nouveau champ : vous devez fournir une étiquette."
-
-#: includes/content.admin.inc:370
-msgid "Add new field: you need to provide a field name."
-msgstr "Ajouter un nouveau champ : vous devez fournir un nom de champ."
-
-#: includes/content.admin.inc:384
-msgid "Add new field: the field name %field_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr "Ajouter un nouveau champ : le nom de champ %field_name n'est pas valide. Le nom doit seulement contenir des lettre minuscules non accentuées, des nombres, et des underscores. "
-
-#: includes/content.admin.inc:387
-msgid "Add new field: the field name %field_name is too long. The name is limited to 32 characters, including the 'field_' prefix."
-msgstr "Ajouter un nouveau champ : le nom de champ %field_name est trop long. Le nom est limité à 32 caractères, en comptant le préfixe 'field_'."
-
-#: includes/content.admin.inc:391
-msgid "Add new field: the name 'field_instance' is a reserved name."
-msgstr "Ajouter un nouveau champ : le nom 'field_instance' est un nom réservé."
-
-#: includes/content.admin.inc:403
-msgid "Add new field: the field name %field_name already exists."
-msgstr "Ajouter un nouveau champ : le nom du champ %field_name existe déjà."
-
-#: includes/content.admin.inc:409
-msgid "Add new field: you need to select a field type."
-msgstr "Ajouter un nouveau champ : vous devez sélectionner un type de champ."
-
-#: includes/content.admin.inc:414
-msgid "Add new field: you need to select a widget."
-msgstr "Ajouter un nouveau champ : vous devez sélectionner un widget."
-
-#: includes/content.admin.inc:420
-msgid "Add new field: invalid widget."
-msgstr "Ajouter un nouveau champ : widget non valide."
-
-#: includes/content.admin.inc:441
-msgid "Add existing field: you need to provide a label."
-msgstr "Ajouter un champ existant : vous devez fournir une étiquette."
-
-#: includes/content.admin.inc:446
-msgid "Add existing field: you need to select a field."
-msgstr "Ajouter un champ existant : vous devez sélectionner un champ."
-
-#: includes/content.admin.inc:451
-msgid "Add existing field: you need to select a widget."
-msgstr "Ajouter un champ existant: vous devez sélectionner un widget."
-
-#: includes/content.admin.inc:457
-msgid "Add existing field: invalid widget."
-msgstr "Ajouter un champ existant : widget non valide."
-
-#: includes/content.admin.inc:506
-msgid "There was a problem creating field %label."
-msgstr "Un problème est survenu à la création du champ '%label'."
-
-#: includes/content.admin.inc:518
-msgid "The field %label cannot be added to a content type because it is locked."
-msgstr "Le champ %label n'a pas pu être ajouté au type de contenu car il est verrouillé."
-
-#: includes/content.admin.inc:528
-msgid "There was a problem adding field %label."
-msgstr "Un problème est survenu lors de l'ajout du champ '%label'."
-
-#: includes/content.admin.inc:571
-msgid "There are no fields configured for this content type. You can add new fields on the <a href=\"@link\">Manage fields</a> page."
-msgstr "Il n'y a aucun champ configuré pour ce type de contenu. Vous pouvez ajouter de nouveaux champs sur la page <a href=\"@link\">Gérer les champs</a>."
-
-#: includes/content.admin.inc:578;626
-#: includes/content.panels.inc:53
-#: modules/content_multigroup/content_multigroup.module:365
-msgid "Above"
-msgstr "Au dessus"
-
-#: includes/content.admin.inc:579
-#: includes/content.panels.inc:54
-msgid "Inline"
-msgstr "Sur la même ligne"
-
-#: includes/content.admin.inc:580;607;627;635
-#: modules/content_multigroup/content_multigroup.module:366
-msgid "<Hidden>"
-msgstr "<Caché>"
-
-#: includes/content.admin.inc:618;661
-msgid "Include"
-msgstr "Inclure"
-
-#: includes/content.admin.inc:618;661
-#: theme/content-admin-display-overview-form.tpl.php:17
-msgid "Exclude"
-msgstr "Exclure"
-
-#: includes/content.admin.inc:630
-msgid "no styling"
-msgstr "aucune mise en forme"
-
-#: includes/content.admin.inc:631
-msgid "simple"
-msgstr "simple"
-
-#: includes/content.admin.inc:632
-msgid "fieldset"
-msgstr "groupe de champs"
-
-#: includes/content.admin.inc:633
-msgid "fieldset - collapsible"
-msgstr "groupe de champs - repliable"
-
-#: includes/content.admin.inc:634
-msgid "fieldset - collapsed"
-msgstr "groupe de champs - replié"
-
-#: includes/content.admin.inc:690
-msgid "Your settings have been saved."
-msgstr "Vos paramètres ont été enregistrés."
-
-#: includes/content.admin.inc:760
-msgid "@type: @field (@label)"
-msgstr "@type : @field (@label)"
-
-#: includes/content.admin.inc:786
-msgid "Edit basic information"
-msgstr "Éditer les informations de base"
-
-#: includes/content.admin.inc:792
-msgid "The machine-readable name of the field. This name cannot be changed."
-msgstr "Le nom lisible par une machine du champ. Ce nom ne peut être changé."
-
-#: includes/content.admin.inc:800
-msgid "A human-readable name to be used as the label for this field in the %type content type."
-msgstr "Nom lisible par une personne, destiné à servir d'étiquette pour ce champ au sein du type de contenu '%type'."
-
-#: includes/content.admin.inc:807
-msgid "The type of data you would like to store in the database with this field. This option cannot be changed."
-msgstr "Type de données que vous souhaitez enregistrer, par le biais de ce champ, dans la base de données. Cette option ne peut être modifiée."
-
-#: includes/content.admin.inc:812;996
-msgid "Widget type"
-msgstr "Type de widget"
-
-#: includes/content.admin.inc:816
-msgid "The type of form element you would like to present to the user when creating this field in the %type content type."
-msgstr "Type d'élément de formulaire que vous souhaitez présenter à l'utilisateur lorsqu'il renseigne ce champ dans le type de contenu '%type'."
-
-#: includes/content.admin.inc:826
-#: includes/content.rules.inc:66
-msgid "Continue"
-msgstr "Continuer"
-
-#: includes/content.admin.inc:854
-msgid "Updated basic settings for field %label."
-msgstr "Les paramètres basiques du champ %label ont été mis à jour."
-
-#: includes/content.admin.inc:858
-msgid "There was a problem updating the basic settings for field %label."
-msgstr "Un problème a été rencontré lors de la mise à jour des paramètres basiques du champ %label."
-
-#: includes/content.admin.inc:885
-msgid "Are you sure you want to remove the field %field?"
-msgstr "Êtes-vous certain de vouloir enlever le champ '%field' ?"
-
-#: includes/content.admin.inc:887
-msgid "If you have any content left in this field, it will be lost. This action cannot be undone."
-msgstr "Si vous avez encore du contenu dans ce champ, il sera perdu. Cette action est irréversible."
-
-#: includes/content.admin.inc:888
-#: modules/fieldgroup/fieldgroup.module:203
-msgid "Cancel"
-msgstr "Annuler"
-
-#: includes/content.admin.inc:894
-msgid "This field is <strong>locked</strong> and cannot be removed."
-msgstr "Ce champ est <strong>verrouillé</strong> et ne peut être supprimé."
-
-#: includes/content.admin.inc:915
-msgid "Removed field %field from %type."
-msgstr "Le champ '%field' de '%type' a été enlevé."
-
-#: includes/content.admin.inc:920
-msgid "There was a problem deleting %field from %type."
-msgstr "Un problème est survenu à la suppression du champ '%field' du type '%type'."
-
-#: includes/content.admin.inc:939
-msgid "The field %field is locked and cannot be edited."
-msgstr "Le champ %field est verouillé et ne peut être édité."
-
-#: includes/content.admin.inc:973
-msgid "%type basic information"
-msgstr "Informations de base pour '%type'"
-
-#: includes/content.admin.inc:1003;1182
-msgid "Change basic information"
-msgstr "Modifier les informations de base"
-
-#: includes/content.admin.inc:1009
-msgid "%type settings"
-msgstr "Paramètres de '%type'"
-
-#: includes/content.admin.inc:1010
-msgid "These settings apply only to the %field field as it appears in the %type content type."
-msgstr "Ces paramètres ne s'applique qu'au champ '%field' tel qu'il apparaît dans le type contenu '%type'."
-
-#: includes/content.admin.inc:1024
-#: modules/fieldgroup/fieldgroup.module:139
-msgid "Help text"
-msgstr "Texte d'aide"
-
-#: includes/content.admin.inc:1027
-msgid "Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags"
-msgstr "Instructions à présenter à l'utilisateur sous ce champ, dans le formulaire d'édition.<br />Balises HTML autorisées : @tags"
-
-#: includes/content.admin.inc:1053
-msgid "Default value"
-msgstr "Valeur par défaut"
-
-#: includes/content.admin.inc:1074
-#: modules/number/number.module:120
-#: modules/text/text.module:85
-msgid "PHP code"
-msgstr "Code PHP"
-
-#: includes/content.admin.inc:1083;1238
-#: includes/content.rules.inc:93
-msgid "'@column' => value for @column"
-msgstr "'@column' => valeur de @column"
-
-#: includes/content.admin.inc:1085;1240
-#: includes/content.rules.inc:95
-msgid ""
-"return array(\n"
-" 0 => array(@columns),\n"
-" // You'll usually want to stop here. Provide more values\n"
-" // if you want your 'default value' to be multi-valued:\n"
-" 1 => array(@columns),\n"
-" 2 => ...\n"
-");"
-msgstr ""
-"return array(\n"
-" 0 => array(@columns),\n"
-" // Vous voudrez vous arrêter là dans la plupart des cas. Fournir plus de valeurs\n"
-" // si vous souhaitez que votre 'valeur par défaut' ait des valeurs multiples :\n"
-" 1 => array(@columns),\n"
-" 2 => ...\n"
-");"
-
-#: includes/content.admin.inc:1089;1102
-#: includes/content.rules.inc:99
-#: modules/number/number.module:127;136
-#: modules/text/text.module:92;101
-msgid "Code"
-msgstr "Code"
-
-#: includes/content.admin.inc:1093
-msgid "Advanced usage only: PHP code that returns a default value. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>To figure out the expected format, you can use the <em>devel load</em> tab provided by <a href=\"@link_devel\">devel module</a> on a %type content page."
-msgstr "Usage avancé seulement : code PHP retournant une valeur par défaut. Ne doit pas contenir les délimiteurs &lt;?php ?&gt;. Si ce champ est rempli, la valeur retournée par ce code écrasera toute valeur spécifiée ci-dessus. Format attendu : <pre>!sample</pre>. Pour vous faire une idée du format attendu, vous pouvez utiliser l'onglet <em>devel load</em> fourni par <a href=\"@link_devel\">le module devel</a> sur une page de contenu de type %type."
-
-#: includes/content.admin.inc:1103
-#: modules/number/number.module:137
-#: modules/text/text.module:102
-msgid "&lt;none&gt;"
-msgstr "&lt;aucun&gt;"
-
-#: includes/content.admin.inc:1104
-#: modules/number/number.module:138
-#: modules/text/text.module:103
-msgid "You're not allowed to input PHP code."
-msgstr "Vous n'êtes pas autorisé à saisir du code PHP."
-
-#: includes/content.admin.inc:1104
-msgid "This PHP code was set by an administrator and will override any value specified above."
-msgstr "Ce code PHP a été inséré par un administrateur et supplantera toute valeur spécifiée ci-dessus."
-
-#: includes/content.admin.inc:1111
-msgid "Global settings"
-msgstr "Paramètres globaux"
-
-#: includes/content.admin.inc:1112
-msgid "These settings apply to the %field field in every content type in which it appears."
-msgstr "Ces paramètres s'appliquent au champ '%field' dans tous les types de contenu où il apparaît."
-
-#: includes/content.admin.inc:1116
-#: modules/content_multigroup/content_multigroup.module:483
-msgid "Required"
-msgstr "Obligatoire"
-
-#: includes/content.admin.inc:1119
-msgid "Maximum number of values users can enter for this field."
-msgstr "Le nombre maximum de valeurs qu'un utilisateur peut entrer pour ce champ."
-
-#: includes/content.admin.inc:1121
-msgid "'Unlimited' will provide an 'Add more' button so the users can add as many values as they like."
-msgstr "'Illimité' fournira un bouton 'Ajouter plus' pour que les utilisateurs puissent ajouter autant de valeurs qu'ils le souhaitent."
-
-#: includes/content.admin.inc:1123
-msgid "Warning! Changing this setting after data has been created could result in the loss of data!"
-msgstr "Attention ! Changer ce paramètre alors que des données ont déjà été créées peut conduire à perdre des données !"
-
-#: includes/content.admin.inc:1126
-msgid "Number of values"
-msgstr "Nombre de valeurs"
-
-#: includes/content.admin.inc:1127
-#: modules/content_multigroup/content_multigroup.module:85
-msgid "Unlimited"
-msgstr "Illimité"
-
-#: includes/content.admin.inc:1144
-#: modules/content_copy/content_copy.module:251
-msgid "Save field settings"
-msgstr "Enregistrer les paramètres du champ"
-
-#: includes/content.admin.inc:1242
-msgid "The default value PHP code returned an incorrect value.<br/>Expected format: <pre>!sample</pre> Returned value: @value"
-msgstr "Le code PHP de valeur par défaut a renvoyé une valeur incorrecte.<br/>Format attendu : <pre>!sample</pre> Valeur renvoyée : @value"
-
-#: includes/content.admin.inc:1281
-msgid "The PHP code for 'default value' returned @value, which is invalid."
-msgstr "Le code PHP pour la 'valeur par défaut' a retourné @value, qui n'est pas valide."
-
-#: includes/content.admin.inc:1285
-msgid "The default value is invalid."
-msgstr "La valeur par défaut est invalide."
-
-#: includes/content.admin.inc:1309
-msgid "Added field %label."
-msgstr "Le champ '%label' a été ajouté."
-
-#: includes/content.admin.inc:1313
-msgid "Saved field %label."
-msgstr "Champ '%label' enregistré."
-
-#: includes/content.admin.inc:1662
-msgid "Processing"
-msgstr "Exécution"
-
-#: includes/content.admin.inc:1663
-msgid "The update has encountered an error."
-msgstr "La mise à jour a échoué."
-
-#: includes/content.admin.inc:1677
-msgid "The database has been altered and data has been migrated or deleted."
-msgstr "La base de données a été modifiée et des données ont été déplacées ou supprimées."
-
-#: includes/content.admin.inc:1680
-msgid "An error occurred and database alteration did not complete."
-msgstr "Une erreur est survenue et a interrompu la modification de la base de données."
-
-#: includes/content.admin.inc:1783
-msgid "Processing %title"
-msgstr "'%title' en cours de traitement"
-
-#: includes/content.admin.inc:1849
-msgid "%name must be an integer."
-msgstr "%name doit être un entier."
-
-#: includes/content.admin.inc:1859
-msgid "%name must be a positive integer."
-msgstr "%name doit être un entier positif."
-
-#: includes/content.admin.inc:1869
-msgid "%name must be a number."
-msgstr "%name doit être un nombre."
-
-#: includes/content.admin.inc:1681
-msgid "1 item successfully processed:"
-msgid_plural "@count items successfully processed:"
-msgstr[0] "1 élément traité avec succès&nbsp:"
-msgstr[1] "@count éléments traités avec succès&nbsp:"
-
-#: includes/content.crud.inc:589
-msgid "Content fields table %old_name has been renamed to %new_name and field instances have been updated."
-msgstr "La table de champs a été renommée de '%old_name' à '%new_name' et les instances des champs ont été mises à jour."
-
-#: includes/content.crud.inc:633
-msgid "The content fields table %name has been deleted."
-msgstr "La table de champs '%name' a été supprimée."
-
-#: includes/content.node_form.inc:240
-msgid "Add another item"
-msgstr "Ajouter un autre élément"
-
-#: includes/content.panels.inc:21;35
-msgid "Content field"
-msgstr "Contenu du champ"
-
-#: includes/content.panels.inc:38
-msgid "A content field from the referenced node."
-msgstr "Un champ de contenu du node référencé."
-
-#: includes/content.panels.inc:39
-#: modules/fieldgroup/fieldgroup.panels.inc:31
-msgid "Node"
-msgstr "Noeud"
-
-#: includes/content.panels.inc:40
-#: modules/fieldgroup/fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr "Contexte du noeud"
-
-#: includes/content.panels.inc:52
-msgid "Block title"
-msgstr "Titre du bloc"
-
-#: includes/content.panels.inc:55
-msgid "Hidden"
-msgstr "Caché"
-
-#: includes/content.panels.inc:57
-msgid "Configure how the label is going to be displayed."
-msgstr "Configurer la manière dont l'étiquette est affichée."
-
-#: includes/content.panels.inc:73
-msgid "Field / Formatter"
-msgstr "Champ / Formateur"
-
-#: includes/content.panels.inc:76
-msgid "Select a field and formatter."
-msgstr "Sélectionner un champ et un formateur."
-
-#: includes/content.panels.inc:92
-msgid "\"@s\" field @name"
-msgstr "\"@s\" champ @name"
-
-#: includes/content.rules.inc:15
-msgid "Populate a field"
-msgstr "Remplir un champ"
-
-#: includes/content.rules.inc:23;212
-msgid "You should make sure that the used field exists in the given content type."
-msgstr "Vous devez vous assurer que le champ existe pour le type de contenu donné."
-
-#: includes/content.rules.inc:53;266
-#: modules/nodereference/nodereference.rules.inc:45
-#: modules/userreference/userreference.rules.inc:47
-#: theme/content-admin-display-overview-form.tpl.php:11
-msgid "Field"
-msgstr "Champ"
-
-#: includes/content.rules.inc:56
-msgid "Select the machine-name of the field."
-msgstr "Sélectionnez le nom-machine du champ."
-
-#: includes/content.rules.inc:84
-msgid "Advanced: Specify the fields value with PHP code"
-msgstr "Avancé : Préciser les valeurs des champs avec du code PHP"
-
-#: includes/content.rules.inc:102
-msgid "Advanced usage only: PHP code that returns the value to set. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the value returned by this code will override any value specified above. Expected format: <pre>!sample</pre>Using <a href=\"@link_devel\">devel.module's</a> 'devel load' tab on a content page might help you figure out the expected format."
-msgstr "Usage avancé seulement : code PHP retournant la valeur à définir. Ne doit pas contenir les délimiteurs &lt;?php ?&gt;. Si ce champ est rempli, la valeur retournée par ce code écrasera toute valeur spécifiée ci-dessus. Format attendu : <pre>!sample</pre>. Pour vous faire une idée du format attendu, vous pouvez utiliser l'onglet <em>devel load</em> fourni par <a href=\"@link_devel\">le module devel</a> sur une page de contenu de type %type."
-
-#: includes/content.rules.inc:130
-msgid "You have to return the default value in the expected format."
-msgstr "Vous devez retourner la valeur par défaut dans le format attendu."
-
-#: includes/content.rules.inc:181
-msgid "Populate @node's field '@field'"
-msgstr "Remplir le champ '@field' de @node"
-
-#: includes/content.rules.inc:198
-msgid "Field has value"
-msgstr "Le champ possède une valeur"
-
-#: includes/content.rules.inc:203
-msgid "You should make sure that the used field exists in the given content type. The condition returns TRUE, if the selected field has the given value."
-msgstr "Vous devez vous assurer que le champ utilisé existe dans le type de contenu donné. La condition retourne TRUE, si le champ sélectionné possède la valeur donnée."
-
-#: includes/content.rules.inc:207
-msgid "Field has changed"
-msgstr "Le champ a été modifié"
-
-#: includes/content.rules.inc:209
-msgid "Content containing changes"
-msgstr "Contenu contenant des modifications"
-
-#: includes/content.rules.inc:210
-msgid "Content not containing changes"
-msgstr "Contenu ne contenant pas de modification"
-
-#: includes/content.rules.inc:249
-msgid "@node's field '@field' has value"
-msgstr "Le champ '@field' de @node possède une valeur"
-
-#: includes/content.rules.inc:269
-msgid "Select the machine-name of the field to look at."
-msgstr "Sélectionnez le nom-machine du champ à voir."
-
-#: includes/content.rules.inc:275
-msgid "@node's field '@field' has been changed"
-msgstr "Le champ '@field' de @node a été modifié"
-
-#: includes/content.token.inc:12;15
-msgid "Token"
-msgstr "Jeton (Token)"
-
-#: includes/content.token.inc:81
-msgid "Referenced node ID"
-msgstr "Identifiant du nœud référencé"
-
-#: includes/content.token.inc:82
-msgid "Referenced node title"
-msgstr "Titre du nœud référencé"
-
-#: includes/content.token.inc:83
-msgid "Referenced node unfiltered title. WARNING - raw user input."
-msgstr "Titre non filtré du noeud référencé. ATTENTION - saisie brute utilisateur."
-
-#: includes/content.token.inc:84
-msgid "Formatted html link to the referenced node."
-msgstr "Lien html formaté vers le noeud référencé."
-
-#: includes/content.token.inc:85
-msgid "Relative path alias to the referenced node."
-msgstr "Alias de chemin relatif vers le noeud référencé."
-
-#: includes/content.token.inc:86
-msgid "Absolute path alias to the referenced node."
-msgstr "Alias de chemin absolu vers le noeud référencé."
-
-#: includes/content.token.inc:114
-msgid "Raw number value"
-msgstr "Valeur numérique brute"
-
-#: includes/content.token.inc:115
-msgid "Formatted number value"
-msgstr "Valeur numérique mise en forme"
-
-#: includes/content.token.inc:138
-msgid "Raw, unfiltered text"
-msgstr "Texte brut, non filtré"
-
-#: includes/content.token.inc:139
-msgid "Formatted and filtered text"
-msgstr "Texte filtré et mis en forme"
-
-#: includes/content.token.inc:161
-msgid "Referenced user ID"
-msgstr "Identifiant de l'utilisateur référencé"
-
-#: includes/content.token.inc:162
-msgid "Referenced user name"
-msgstr "Nom de l'utilisateur référencé"
-
-#: includes/content.token.inc:163
-msgid "Formatted HTML link to referenced user"
-msgstr "Lien HTML mis en forme vers l'utilisateur référencé"
-
-#: includes/content.token.inc:164
-msgid "Relative path alias to the referenced user."
-msgstr "Alias de chemin relatif vers l'utilisateur référencé."
-
-#: includes/content.token.inc:165
-msgid "Absolute path alias to the referenced user."
-msgstr "Alias de chemin absolu vers l'utilisateur référencé."
-
-#: includes/views/content.views.inc:245;261
-msgid "@label (!name)"
-msgstr "@label (!name)"
-
-#: includes/views/content.views.inc:249
-msgid "@label (!name) - !column"
-msgstr "@label (!name) - !column"
-
-#: includes/views/content.views.inc:250
-msgid "@label-truncated - !column"
-msgstr "@label-truncated - !column"
-
-#: includes/views/content.views.inc:257
-msgid "Appears in: @types"
-msgstr "Apparaît dans : @types"
-
-#: includes/views/content.views.inc:279
-msgid "<No value>"
-msgstr "<Aucune valeur>"
-
-#: includes/views/handlers/content_handler_field.inc:59
-msgid "None"
-msgstr "Aucun"
-
-#: includes/views/handlers/content_handler_field.inc:60
-msgid "Widget label (@label)"
-msgstr "Étiquette du widget (@label)"
-
-#: includes/views/handlers/content_handler_field.inc:61
-msgid "Custom"
-msgstr "Personnalisé"
-
-#: includes/views/handlers/content_handler_field.inc:67
-msgid "Custom label"
-msgstr "Étiquette personnalisée"
-
-#: includes/views/handlers/content_handler_field.inc:83
-msgid "Format"
-msgstr "Format"
-
-#: includes/views/handlers/content_handler_field_multiple.inc:58
-msgid "Group multiple values"
-msgstr "Grouper plusieurs valeurs"
-
-#: includes/views/handlers/content_handler_field_multiple.inc:61
-msgid "If unchecked, each item in the field will create a new row, which may appear to cause duplicates. This setting is not compatible with click-sorting in table displays."
-msgstr "Si non coché, chaque élément du champ créera une nouvelle ligne, ce qui pourrait apparemment entraîner des doublons. Ce paramètre n'est pas compatible avec le tri par clic dans l'affichage du tableau. "
-
-#: includes/views/handlers/content_handler_field_multiple.inc:65
-msgid "Show @count value(s)"
-msgstr "Afficher @count valeur(s)"
-
-#: includes/views/handlers/content_handler_field_multiple.inc:76
-msgid "starting from @count"
-msgstr "en commençant à @count"
-
-#: includes/views/handlers/content_handler_field_multiple.inc:87
-msgid "Reversed (start from last values)"
-msgstr "Inversé (commencer à partir des dernières valeurs)"
-
-#: includes/views/handlers/content_handler_relationship.inc:40
-#: includes/views/handlers/content_handler_sort.inc:41
-msgid "All"
-msgstr "Tous / Toutes"
-
-#: includes/views/handlers/content_handler_relationship.inc:48
-#: includes/views/handlers/content_handler_sort.inc:49
-msgid "Delta"
-msgstr "Delta"
-
-#: includes/views/handlers/content_handler_relationship.inc:49
-msgid "The delta allows you to select which item in a multiple value field to key the relationship off of. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
-msgstr "Le delta vous permet de sélectionner quel élément d'un champ à valeur multiple sera la clé de la relation. Sélectionnez \"1\" pour utiliser le premier élément, \"2\" pour le second et ainsi de suite. Si vous sélectionnez \"Tous\", chaque élément du champ créera une nouvelle ligne, ce qui pourrait causer des doublons."
-
-#: includes/views/handlers/content_handler_sort.inc:50
-msgid "The delta allows you to select which item in a multiple value field will be used for sorting. Select \"1\" to use the first item, \"2\" for the second item, and so on. If you select \"All\", each item in the field will create a new row, which may appear to cause duplicates."
-msgstr "Le delta vous permet de sélectionner quel élément d'un champ à valeur multiple sera utilisé pour les tris. Sélectionnez \"1\" pour utiliser le premier élément, \"2\" pour le second et ainsi de suite. Si vous sélectionnez \"Tous\", chaque élément du champ créera une nouvelle ligne, ce qui pourrait causer des doublons."
-
-#: modules/content_copy/content_copy_export_form.tpl.php:9
-#: modules/content_copy/content_copy.module:191;38
-msgid "Export"
-msgstr "Exporter"
-
-#: modules/content_copy/content_copy.module:97
-msgid "This form will process a content type and one or more fields from that type and export the settings. The export created by this process can be copied and pasted as an import into the current or any other database. The import will add the fields to into an existing content type or create a new content type that includes the selected fields."
-msgstr "Ce formulaire traitera un type de contenu et un ou plusieurs champs de ce type, pour en exporter les paramètres. Le code d'export ainsi généré peut être copié et collé dans la page d'import, vers la base de données courante ou vers une autre base de données. L'opération d'import ajoutera les champs à un type de contenu existant ou créera un nouveau type de contenu intégrant les champs sélectionnés."
-
-#: modules/content_copy/content_copy.module:103
-msgid "Types"
-msgstr "Types"
-
-#: modules/content_copy/content_copy.module:107
-msgid "Select the content type to export."
-msgstr "Sélectionner le type de contenu à exporter."
-
-#: modules/content_copy/content_copy.module:175
-msgid "Export data"
-msgstr "Données exportée"
-
-#: modules/content_copy/content_copy.module:180
-msgid "Copy the export text and paste it into another content type using the import function."
-msgstr "Copiez le texte exporté et collez-le dans le type de contenu de votre choix, à l'aide de la fonction d'import."
-
-#: modules/content_copy/content_copy.module:184
-msgid "Content types"
-msgstr "Types de contenu"
-
-#: modules/content_copy/content_copy.module:303
-msgid "This form will import field definitions exported from another content type or another database.<br/>Note that fields cannot be duplicated within the same content type, so imported fields will be added only if they do not already exist in the selected type."
-msgstr "Ce formulaire importera les définitions de champs exportées depuis un autre type de contenu, ou une autre base de données.<br/> Veuillez noter que les champs ne peuvent pas être dupliqués au sein d'un même type de contenu, si bien que les champs importés ne seront ajoutés que si ils n'existent pas déjà dans le type sélectionné."
-
-#: modules/content_copy/content_copy.module:306
-msgid "<Create>"
-msgstr "<Créer>"
-
-#: modules/content_copy/content_copy.module:308
-msgid "Content type"
-msgstr "Type de contenu"
-
-#: modules/content_copy/content_copy.module:309
-msgid "Select the content type to import these fields into.<br/>Select &lt;Create&gt; to create a new content type to contain the fields."
-msgstr "Séléctionnez le type de contenu dans lequel importer ces champs.<br />Sélectionnez &lt;Créer&gt; pour créer un nouveau type de contenu qui contiendra ces champs."
-
-#: modules/content_copy/content_copy.module:314
-msgid "Import data"
-msgstr "Données à importer"
-
-#: modules/content_copy/content_copy.module:316
-msgid "Paste the text created by a content export into this field."
-msgstr "Collez dans ce champ le texte créé par un export de contenu."
-
-#: modules/content_copy/content_copy.module:320;46
-msgid "Import"
-msgstr "Importer"
-
-#: modules/content_copy/content_copy.module:328
-msgid "A file has been pre-loaded for import."
-msgstr "Un fichier a été préchargé pour l'import."
-
-#: modules/content_copy/content_copy.module:354
-msgid "The import data is not valid import text."
-msgstr "Les données d'import ne sont valides."
-
-#: modules/content_copy/content_copy.module:403
-msgid "The following modules must be enabled for this import to work: %modules."
-msgstr "Les modules suivants doivent être activés pour que l'import fonctionne : '%modules'."
-
-#: modules/content_copy/content_copy.module:411
-msgid "The content type %type already exists in this database."
-msgstr "Le type de contenu '%type' existe déjà dans cette base de données."
-
-#: modules/content_copy/content_copy.module:418
-msgid "Exiting. No import performed."
-msgstr "Abandon. L'import n'a pas été réalisé."
-
-#: modules/content_copy/content_copy.module:442
-msgid "An error has occurred adding the content type %type.<br/>Please check the errors displayed for more details."
-msgstr "Une erreur s'est produite lors de l'ajout du nouveau type de contenu %type.<br> Veuillez vérifier les erreurs affichées pour plus de détails."
-
-#: modules/content_copy/content_copy.module:467
-msgid "The imported field %field_label (%field_name) was not added to %type because that field already exists in %type."
-msgstr "Le champ importé '%field_label' (%field_name) n'a pas été ajouté à '%type' car ce champ existe déjà."
-
-#: modules/content_copy/content_copy.module:476
-msgid "The field %field_label (%field_name) was added to the content type %type."
-msgstr "Le champ importé '%field_label' (%field_name) a été ajouté au type de contenu '%type'."
-
-#: modules/content_copy/content_copy.module:581
-msgid "An error occurred when exporting the 'display settings' data for the field %field_name.<br/>The db error is: '%db_err'."
-msgstr "Une erreur s'est produite lors de l'export des données des 'paramètres d'affichage' du champ %field_name.<br/> L'erreur de base de données est : '%db_err'."
-
-#: modules/content_copy/content_copy.module:0
-msgid "content_copy"
-msgstr "content_copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Content Copy"
-msgstr "Content Copy"
-
-#: modules/content_copy/content_copy.info:0
-msgid "Enables ability to import/export field definitions."
-msgstr "Permet d'importer et d'exporter des définitions de champs."
-
-#: modules/content_multigroup/content_multigroup.module:12
-msgid "The fields in a Standard group are independent of each other and each can have either single or multiple values. The fields in a Multigroup are treated as a repeating collection of single value fields."
-msgstr "Les champs d'un groupe Standard sont indépendants les uns des autres, et chacun peut soit avoir une valeur unique, soit des valeurs multiples. Les champs d'un Multigroupe sont traités comme une ensemble répétable de champs à valeurs uniques."
-
-#: modules/content_multigroup/content_multigroup.module:65;135
-msgid "Multigroup"
-msgstr "Multigroupe"
-
-#: modules/content_multigroup/content_multigroup.module:134
-msgid "Standard"
-msgstr "Standard"
-
-#: modules/content_multigroup/content_multigroup.module:138
-msgid "Type of group."
-msgstr "Type de groupe."
-
-#: modules/content_multigroup/content_multigroup.module:215
-msgid "The field %field has been updated to use %multiple values, to match the multiple value setting of the Multigroup %group."
-msgstr "Le champ %field a été mis à jour pour l'utilisation de valeurs %multiple, afin de correspondre au paramètre de valeur multipe du Multigroup %group."
-
-#: modules/content_multigroup/content_multigroup.module:248
-msgid "This change is not allowed. The field %field already has %multiple values in the database but the group %group only allows %group_max. Making this change would result in the loss of data."
-msgstr "Cette modification n'est pas autorisée. Le champ %field possède déjà des valeurs multiples dans la base de données, mais le groupe %group en autorise seulement %group_max. Effectuer cette modification pourrait entraîner la perte de données. "
-
-#: modules/content_multigroup/content_multigroup.module:272
-msgid "This change is not allowed. The field %field handles multiple values differently than the Content module. Making this change could result in the loss of data."
-msgstr "Cette modification n'est pas autorisée. Le champ %field manipule les valeurs multiples différemment du module Content. Effectuer cette modification pourrait entraîner la perte de données. "
-
-#: modules/content_multigroup/content_multigroup.module:287
-msgid "You are moving the field %field into a Multigroup."
-msgstr "Vous êtes en train d'inclure le champ %field dans un Multigroupe"
-
-#: modules/content_multigroup/content_multigroup.module:320
-msgid "This change is not allowed. The field %field already has data created and uses a widget that stores data differently in a Standard group than in a Multigroup. Making this change could result in the loss of data."
-msgstr "Cette modification n'est pas autorisée. Le champ %field possède déjà des données créées, et utilise un widget qui stocke les données différemment dans un groupe Standard que dans un Multigroupe. Effectuer ce changement pourrait entraîner la perte de données."
-
-#: modules/content_multigroup/content_multigroup.module:334
-msgid "You are moving the field %field out of a Multigroup."
-msgstr "Vous êtes en train de retirer le champ %field d'un Multigroupe"
-
-#: modules/content_multigroup/content_multigroup.module:369
-msgid "Simple"
-msgstr "Simple"
-
-#: modules/content_multigroup/content_multigroup.module:370
-msgid "Fieldset"
-msgstr "Groupe de champs"
-
-#: modules/content_multigroup/content_multigroup.module:371
-msgid "Horizontal line"
-msgstr "Ligne horizontale"
-
-#: modules/content_multigroup/content_multigroup.module:372
-msgid "Table - Single column"
-msgstr "Tableau - Colonne unique"
-
-#: modules/content_multigroup/content_multigroup.module:373
-msgid "Table - Multiple columns"
-msgstr "Tableau - Colonnes multiples"
-
-#: modules/content_multigroup/content_multigroup.module:384
-msgid "[Subgroup format]"
-msgstr "[Format du sous-groupe]"
-
-#: modules/content_multigroup/content_multigroup.module:461
-msgid "Multigroup settings"
-msgstr "Paramètres multigroupe"
-
-#: modules/content_multigroup/content_multigroup.module:476
-msgid "Multiple columns"
-msgstr "Colonnes multiples"
-
-#: modules/content_multigroup/content_multigroup.module:478
-msgid "Enable this option to render each field on a separate column on the node edit form."
-msgstr "Activez cette option pour rendre chaque champs dans une colonne disctincte sur le formulaire d'édition de noeud."
-
-#: modules/content_multigroup/content_multigroup.module:485
-msgid "Enable this option to require a minimum of one collection of fields in this Multigroup."
-msgstr "Activez cette option pour rendre obligatoire un minimum d'une collection de champs dans ce Multigroupe."
-
-#: modules/content_multigroup/content_multigroup.module:488
-msgid "Number of times to repeat the collection of Multigroup fields."
-msgstr "Nombre de fois où répéter l'ensemble Multigroupe de champs."
-
-#: modules/content_multigroup/content_multigroup.module:489
-msgid "'Unlimited' will provide an 'Add more' button so the users can add items as many times as they like."
-msgstr "'Illimité' fournira un bouton 'Ajouter plus' pour que les utilisateurs puissent ajouter des éléments autant de fois qu'ils le souhaitent."
-
-#: modules/content_multigroup/content_multigroup.module:490
-msgid "All fields in this group will automatically be set to allow this number of values."
-msgstr "Tous les champs de ce groupe seront automatiquement paramétrés pour autoriser ce nombre de valeurs."
-
-#: modules/content_multigroup/content_multigroup.module:495
-msgid "Number of repeats"
-msgstr "Nombre de répétitions"
-
-#: modules/content_multigroup/content_multigroup.module:503
-msgid "Labels"
-msgstr "Etiquettes"
-
-#: modules/content_multigroup/content_multigroup.module:504
-msgid "Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."
-msgstr "Etiquettes pour chaque sous-groupe de champs. Les étiquettes peuvent être cachées ou affichées dans des contextes divers en utilisant l'écran 'Afficher les champs'."
-
-#: modules/content_multigroup/content_multigroup.module:512
-msgid "Subgroup %number label"
-msgstr "Etiquette du sous-groupe %number"
-
-#: modules/content_multigroup/content_multigroup.module:539
-msgid "The field %field in this group already has %multiple values in the database. To prevent the loss of data you cannot set the number of Multigroup values to less than this."
-msgstr "Le champ %field dans ce groupe possède déjà %multiple valeurs dans la base de données. Pour éviter la perte de données, vous ne pouvez définir le nombre de valeurs du Multigroupe à une valeur inférieure."
-
-#: modules/content_multigroup/content_multigroup.module:932
-msgid "!name field is required in group @group."
-msgstr "Le champ !name est obligatoire dans le groupe @group."
-
-#: modules/content_multigroup/content_multigroup.module:946
-msgid "Group @name requires one collection of fields minimum."
-msgstr "Le groupe @name requiert au minimum un groupe de champs."
-
-#: modules/content_multigroup/content_multigroup.module:1145
-msgid "Add more values"
-msgstr "Ajouter plus de valeurs"
-
-#: modules/content_multigroup/content_multigroup.module:0
-msgid "content_multigroup"
-msgstr "content_multigroup"
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Content Multigroup"
-msgstr "Contenu Multigroupe"
-
-#: modules/content_multigroup/content_multigroup.info:0
-msgid "Combine multiple CCK fields into repeating field collections that work in unison."
-msgstr "Combinez de multiples champs CCK au sein de collections de champs qui fonctionnent à l'unisson."
-
-#: modules/content_permissions/content_permissions.module:10
-msgid "edit "
-msgstr "éditer"
-
-#: modules/content_permissions/content_permissions.module:10;11
-msgid "field_name"
-msgstr "field_name"
-
-#: modules/content_permissions/content_permissions.module:11
-msgid "view "
-msgstr "voir"
-
-#: modules/content_permissions/content_permissions.module:0
-msgid "content_permissions"
-msgstr "content_permissions"
-
-#: modules/content_permissions/content_permissions.install:9
-msgid "Please <a href=\"!url\">configure your field permissions</a> immediately. All fields are inaccessible by default."
-msgstr "Veuillez <a href=\"!url\">configurer vos permissions sur les champs</a> immédiatement. Tous les champs sont inaccessibles par défaut."
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Content Permissions"
-msgstr "Permissions sur les Contenus"
-
-#: modules/content_permissions/content_permissions.info:0
-msgid "Set field-level permissions for CCK fields."
-msgstr "Définit un niveau de permission par champ pour les champs CCK."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:10;27
-msgid "Content fieldgroup"
-msgstr "Contenu du groupe de champ"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:30
-msgid "All fields from a fieldgroup on the referenced node."
-msgstr "Tous les champs d'un groupe de champs sur le node référencé."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:91
-msgid "@group_label (@group_type_name)"
-msgstr "@group_label (@group_type_name)"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:102
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Fieldgroup"
-msgstr "Fieldgroup"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:112
-msgid "Text to display if group has no data. Note that title will not display unless overridden."
-msgstr "Texte à afficher si un groupe n'a pas de données. Notez que le titre ne s'affichera pas sauf s'il est surclassé."
-
-#: modules/fieldgroup/fieldgroup.panels.inc:128
-msgid "\"@s\" fieldgroup @name"
-msgstr "\"@s\" groupe de champs @name"
-
-#: modules/fieldgroup/fieldgroup.module:124
-msgid "Form settings"
-msgstr "Paramètres du formulaire"
-
-#: modules/fieldgroup/fieldgroup.module:125
-msgid "These settings apply to the group in the node editing form."
-msgstr "Ces paramètres s'appliquent au groupe dans le formulaire d'édition de nœud."
-
-#: modules/fieldgroup/fieldgroup.module:129
-msgid "Style"
-msgstr "Style"
-
-#: modules/fieldgroup/fieldgroup.module:132
-msgid "always open"
-msgstr "toujours déplié"
-
-#: modules/fieldgroup/fieldgroup.module:133
-msgid "collapsible"
-msgstr "repliable"
-
-#: modules/fieldgroup/fieldgroup.module:134
-msgid "collapsed"
-msgstr "replié"
-
-#: modules/fieldgroup/fieldgroup.module:142
-msgid "Instructions to present to the user on the editing form."
-msgstr "Instructions à présenter à l'utilisateur dans le formulaire d'édition."
-
-#: modules/fieldgroup/fieldgroup.module:147
-msgid "Display settings"
-msgstr "Paramètres d'affichage"
-
-#: modules/fieldgroup/fieldgroup.module:148
-msgid "These settings apply to the group on node display."
-msgstr "Ces paramètres s'appliquent au groupe à l'affichage du nœud."
-
-#: modules/fieldgroup/fieldgroup.module:155
-msgid "A description of the group."
-msgstr "Description du groupe."
-
-#: modules/fieldgroup/fieldgroup.module:200
-msgid "Are you sure you want to remove the group %label?"
-msgstr "Êtes-vous sûr(e) de vouloir supprimer le groupe '%label' ?"
-
-#: modules/fieldgroup/fieldgroup.module:202
-msgid "This action cannot be undone."
-msgstr "Cette action est irréversible."
-
-#: modules/fieldgroup/fieldgroup.module:211
-msgid "The group %group_name has been removed."
-msgstr "Le groupe '%group_name' a été supprimé."
-
-#: modules/fieldgroup/fieldgroup.module:260
-msgid "none"
-msgstr "aucun"
-
-#: modules/fieldgroup/fieldgroup.module:353
-msgid "You need to provide a label."
-msgstr "Vous devez fournir une étiquette."
-
-#: modules/fieldgroup/fieldgroup.module:358
-msgid "You need to provide a group name."
-msgstr "Vous devez fournir un nom de groupe"
-
-#: modules/fieldgroup/fieldgroup.module:372
-msgid "The group name %group_name is invalid. The name must include only lowercase unaccentuated letters, numbers, and underscores."
-msgstr "Le nom de groupe %group_name n'est pas valide. Le nom ne doit contenir que des lettres sans accents, des nombres, et des underscores."
-
-#: modules/fieldgroup/fieldgroup.module:375
-msgid "The group name %group_name is too long. The name is limited to 32 characters, including the 'group_' prefix."
-msgstr "Le nom de groupe %group_name est trop long. Le nom est limité à 32 caractères, le préfixe 'group_' compris."
-
-#: modules/fieldgroup/fieldgroup.module:381
-msgid "The group name %group_name already exists."
-msgstr "Le nom de groupe %group_name existe déjà."
-
-#: modules/fieldgroup/fieldgroup.module:400;403
-msgid "Add new group:"
-msgstr "Ajouter un nouveau groupe :"
-
-#: modules/fieldgroup/fieldgroup.module:418
-msgid "Add new group: you need to provide a label."
-msgstr "Ajouter un nouveau groupe : vous devez fournir une étiquette."
-
-#: modules/fieldgroup/fieldgroup.module:419
-msgid "Add new group: you need to provide a group name."
-msgstr "Ajouter un nouveau groupe : vous devez fournir un nom de groupe."
-
-#: modules/fieldgroup/fieldgroup.module:648
-msgid "Standard group"
-msgstr "Groupe standard"
-
-#: modules/fieldgroup/fieldgroup.module:39;46
-msgid "Edit group"
-msgstr "Éditer le groupe"
-
-#: modules/fieldgroup/fieldgroup.module:0
-msgid "fieldgroup"
-msgstr "fieldgroup"
-
-#: modules/fieldgroup/fieldgroup.info:0
-msgid "Create display groups for CCK fields."
-msgstr "Créée des groupes d'affichage pour les champs CCK."
-
-#: modules/nodereference/nodereference.rules.inc:15
-msgid "Load a referenced node"
-msgstr "Charge un noeud référencé"
-
-#: modules/nodereference/nodereference.rules.inc:19
-msgid "Content containing the node reference field"
-msgstr "Contenu contenant le champ node reference"
-
-#: modules/nodereference/nodereference.rules.inc:25
-msgid "Referenced content"
-msgstr "Contenu référencé"
-
-#: modules/nodereference/nodereference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first content node will be loaded."
-msgstr "Notez que si le champs possède des valeurs multiples, seul le premier contenu sera chargé."
-
-#: modules/nodereference/nodereference.rules.inc:50
-msgid "There are no nodereference fields defined."
-msgstr "Il n'y a aucun champ nodereference défini."
-
-#: modules/nodereference/nodereference.module:60
-msgid "Node reference"
-msgstr "Node référence"
-
-#: modules/nodereference/nodereference.module:61
-msgid "Store the ID of a related node as an integer value."
-msgstr "Stocker l'ID du noeud lié en tant que valeur entière."
-
-#: modules/nodereference/nodereference.module:75
-msgid "Content types that can be referenced"
-msgstr "Types de contenu pouvant être référencés"
-
-#: modules/nodereference/nodereference.module:87
-#: modules/userreference/userreference.module:84
-msgid "Default Views"
-msgstr "Vues par défaut"
-
-#: modules/nodereference/nodereference.module:90
-#: modules/userreference/userreference.module:87
-msgid "Existing Views"
-msgstr "Vues éxistantes"
-
-#: modules/nodereference/nodereference.module:97
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Avancé - Nœuds pouvant être référencés (Vue)"
-
-#: modules/nodereference/nodereference.module:104
-msgid "View used to select the nodes"
-msgstr "Vue utilisée pour sélectionner les noeuds"
-
-#: modules/nodereference/nodereference.module:107
-msgid "<p>Choose the \"Views module\" view that selects the nodes that can be referenced.<br />Note:</p>"
-msgstr "<p>Choisissez la vue du \"module Views\" qui sélectionne les noeuds pouvant être référencés.<br />Note :</p>"
-
-#: modules/nodereference/nodereference.module:108;121
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Content types\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate nodes on node creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate nodes will be displayed.</li></ul>"
-msgstr "<ul><li>Seules les vues qui possèdent des champs fonctionneront à cet effet.</li><li>Ceci annulera les paramètres \"Types de contenu\" ci-dessus. Utilisez la section \"filtres\" de la vue à la place.</li><li>Utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires à propos des noeuds candidats sur le formulaire de création/édition.</li><li>Utilisez la section \"critère de tri\" de la vue pour déterminer l'ordre dans lequel les noeuds candidats seront affichés.</li></ul>"
-
-#: modules/nodereference/nodereference.module:112
-#: modules/userreference/userreference.module:109
-msgid "View arguments"
-msgstr "Arguments de la vue"
-
-#: modules/nodereference/nodereference.module:115
-#: modules/userreference/userreference.module:112
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Fournit une liste d'arguments, séparés par des virgules, à transmettre à la vue."
-
-#: modules/nodereference/nodereference.module:120
-msgid "<p>The list of nodes that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr "<p>La liste des noeuds pouvant être référencés peut s'appuyer sur une vue du \"module Views\" mais aucune vue appropriée n'a été trouvée. <br />Note :</p>"
-
-#: modules/nodereference/nodereference.module:205
-#: modules/userreference/userreference.module:184
-msgid "%name: invalid input."
-msgstr "%name : saisie non valide."
-
-#: modules/nodereference/nodereference.module:217
-msgid "%name: this post can't be referenced."
-msgstr "%name : ce contenu ne peut être référencé."
-
-#: modules/nodereference/nodereference.module:242
-msgid "Title (link)"
-msgstr "Titre (avec lien)"
-
-#: modules/nodereference/nodereference.module:247
-msgid "Title (no link)"
-msgstr "Titre (sans lien)"
-
-#: modules/nodereference/nodereference.module:347
-#: modules/optionwidgets/optionwidgets.module:80
-#: modules/userreference/userreference.module:273
-msgid "Select list"
-msgstr "Liste de sélection"
-
-#: modules/nodereference/nodereference.module:355
-#: modules/optionwidgets/optionwidgets.module:88
-#: modules/userreference/userreference.module:281
-msgid "Check boxes/radio buttons"
-msgstr "Cases à cocher/boutons radio"
-
-#: modules/nodereference/nodereference.module:363
-#: modules/userreference/userreference.module:289
-msgid "Autocomplete text field"
-msgstr "Champ texte à auto-complètement"
-
-#: modules/nodereference/nodereference.module:417
-#: modules/userreference/userreference.module:343
-msgid "Autocomplete matching"
-msgstr "Correspondance de l'autocomplétion"
-
-#: modules/nodereference/nodereference.module:420
-#: modules/userreference/userreference.module:346
-msgid "Starts with"
-msgstr "Commence par"
-
-#: modules/nodereference/nodereference.module:421
-#: modules/userreference/userreference.module:347
-msgid "Contains"
-msgstr "Contient"
-
-#: modules/nodereference/nodereference.module:423
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes."
-msgstr "Séléctionnez la méthode utilisée pour collecter les suggestions de l'autocomplétion. Notez que <em>Contient</em> peut engendrer des problèmes de performances sur des sites avec des milliers de noeuds"
-
-#: modules/nodereference/nodereference.module:671
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name : différence de titre. Veuillez vérifier votre sélection."
-
-#: modules/nodereference/nodereference.module:678
-msgid "%name: found no valid post with that title."
-msgstr "%name : aucun contenu valide n'a été trouvé pour ce titre."
-
-#: modules/nodereference/nodereference.module:15
-msgid "Nodereference autocomplete"
-msgstr "Autocomplétion de nodereference"
-
-#: modules/nodereference/nodereference.module:0
-msgid "nodereference"
-msgstr "nodereference"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Node Reference"
-msgstr "Node Reference"
-
-#: modules/nodereference/nodereference.info:0
-msgid "Defines a field type for referencing one node from another."
-msgstr "Définit un type de champ pour référencer un noeud depuis un autre noeud."
-
-#: modules/number/number.module:34
-msgid "Integer"
-msgstr "Entier"
-
-#: modules/number/number.module:35
-msgid "Store a number in the database as an integer."
-msgstr "Stocke un nombre dans la base de données en format entier."
-
-#: modules/number/number.module:38
-msgid "Decimal"
-msgstr "Décimal"
-
-#: modules/number/number.module:39
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Stocke un nombre dans la base de données en format décimal fixe."
-
-#: modules/number/number.module:42
-msgid "Float"
-msgstr "Réel (Float)"
-
-#: modules/number/number.module:43
-msgid "Store a number in the database in a floating point format."
-msgstr "Stocke un nombre dans la base de données en format réel."
-
-#: modules/number/number.module:57
-msgid "Minimum"
-msgstr "Minimum"
-
-#: modules/number/number.module:63
-msgid "Maximum"
-msgstr "Maximum"
-
-#: modules/number/number.module:71
-msgid "Precision"
-msgstr "Précision"
-
-#: modules/number/number.module:72
-msgid "The total number of digits to store in the database, including those to the right of the decimal."
-msgstr "Le nombre total de chiffres à stocker dans la base de données, en incluant ceux à droite de la virgule."
-
-#: modules/number/number.module:78
-msgid "Scale"
-msgstr "Echelle"
-
-#: modules/number/number.module:79
-msgid "The number of digits to the right of the decimal."
-msgstr "Le nombre de chiffres à droite de la virgule"
-
-#: modules/number/number.module:85
-msgid "Decimal marker"
-msgstr "Séparateur de décimales"
-
-#: modules/number/number.module:86
-msgid "The character users will input to mark the decimal point in forms."
-msgstr "Le caractère que les utilisateurs saisiront pour séparer les décimales dans les formulaires."
-
-#: modules/number/number.module:92
-msgid "Prefix"
-msgstr "Préfixe"
-
-#: modules/number/number.module:95
-msgid "Define a string that should be prefixed to the value, like $ or €. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Définissez une chaîne de caractères à utiliser pour préfixer la valeur, par exemple $ ou €. Laissez vide pour ne rien afficher de plus. Séparez les valeurs singulier et pluriel par une barre verticale (euro|euros)."
-
-#: modules/number/number.module:99
-msgid "Suffix"
-msgstr "Suffixe"
-
-#: modules/number/number.module:102
-msgid "Define a string that should suffixed to the value, like m², m/s², kb/s. Leave blank for none. Separate singular and plural values with a pipe (pound|pounds)."
-msgstr "Définissez une chaîne qui sera ajoutée en suffixe à la valeur, comme m², m/s², kb/s. Laisser vide pour aucun suffixe. Séparez les singulier et pluriel avec un pipe (mètre|mètres)."
-
-#: modules/number/number.module:106
-#: modules/text/text.module:71
-msgid "Allowed values"
-msgstr "Valeurs autorisées"
-
-#: modules/number/number.module:112
-#: modules/text/text.module:77
-msgid "Allowed values list"
-msgstr "Liste des valeurs autorisées"
-
-#: modules/number/number.module:116
-#: modules/text/text.module:81
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr "Les valeurs possibles que ce champ peut contenir. Entrez une valeur par ligne, sous la forme clé|étiquette. La clé est une valeur qui sera stocker dans la base de données, elle doit correspondre au type de champ défini (%type). L'étiquette est optionnelle, si elle n'est pas précisée, la clé sera utilisée également comme étiquette.<br />Balises HTML autorisées : @tags"
-
-#: modules/number/number.module:130
-#: modules/text/text.module:95
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr "Pour usage avancé seulement : code PHP fournissant un tableau par clé des valeurs autorisées. Ne doit pas inclure les délimiteurs &lt;?php ?&gt;. Si ce champ est rempli, le tableau renvoyé par le code prendra le pas sur la liste des valeurs autorisées apparaissant ci-dessus."
-
-#: modules/number/number.module:138
-#: modules/text/text.module:103
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr "Ce code PHP a été saisi par un administrateur et supplantera la liste des valeurs permises ci-dessus."
-
-#: modules/number/number.module:178
-#: modules/text/text.module:132
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Valeurs autorisées"
-
-#: modules/number/number.module:195
-msgid "\"Minimum\" must be a number."
-msgstr "\"Minimum\" doit être un nombre."
-
-#: modules/number/number.module:202
-msgid "\"Maximum\" must be a number."
-msgstr "\"Maximum\" doit être un nombre."
-
-#: modules/number/number.module:219
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name : la valeur ne peut être inférieure à %min."
-
-#: modules/number/number.module:222
-msgid "%name: the value may be no larger than %max."
-msgstr "%name : la valeur ne peut être supérieure à %max."
-
-#: modules/number/number.module:235
-#: modules/text/text.module:156
-msgid "%name: illegal value."
-msgstr "%name : valeur illégale."
-
-#: modules/number/number.module:270
-msgid "unformatted"
-msgstr "non mis en forme"
-
-#: modules/number/number.module:353
-#: modules/text/text.module:256
-msgid "Text field"
-msgstr "Champ texte"
-
-#: modules/number/number.module:512
-msgid "Only numbers and decimals are allowed in %field."
-msgstr "Seuls les nombres et les décimaux sont autorisés dans %field."
-
-#: modules/number/number.module:535
-msgid "Only numbers are allowed in %field."
-msgstr "Seuls les nombres sont autorisés dans %field."
-
-#: modules/number/number.module:559
-msgid "Only numbers and the decimal character (%decimal) are allowed in %field."
-msgstr "Seuls les nombres et le caractère décimal (%decimal) sont autorisés dans %field."
-
-#: modules/number/number.module:0
-msgid "number"
-msgstr "nombre"
-
-#: modules/number/number.info:0
-msgid "Number"
-msgstr "Nombre"
-
-#: modules/number/number.info:0
-msgid "Defines numeric field types."
-msgstr "Définit des types de champs numériques."
-
-#: modules/optionwidgets/optionwidgets.module:19
-msgid "Create a list of options as a list in <strong>Allowed values list</strong> or as an array in PHP code. These values will be the same for %field in all content types."
-msgstr "Créez une liste d'options en tant que liste dans la <strong>Liste des valeurs autorisées</strong>, ou en tant que tableau en code PHP. Ces valeurs seront les mêmes pour le champ %field au sein de tous les types de contenu."
-
-#: modules/optionwidgets/optionwidgets.module:22
-msgid "For a 'single on/off checkbox' widget, define the 'off' value first, then the 'on' value in the <strong>Allowed values</strong> section. Note that the checkbox will be labeled with the label of the 'on' value."
-msgstr "Pour un widget 'case à cocher oui/non', définissez la valeur 'non' en premier, puis la valeur 'oui', dans la section <strong>Valeurs autorisées</strong>. Notez que la case à cocher sera étiquetée avec l'étiquette de la valeur du 'oui'."
-
-#: modules/optionwidgets/optionwidgets.module:25
-msgid "The 'checkboxes/radio buttons' widget will display checkboxes if the multiple values option is selected for this field, otherwise radios will be displayed."
-msgstr "Le widget 'cases à cocher/boutons radio' affichera des cases à cocher si l'option valeurs multiples est sélectionnées pour ce champ, autrement, des boutons radio seront affichés."
-
-#: modules/optionwidgets/optionwidgets.module:37
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Vous devez préciser les 'valeurs autorisées' pour ce champ."
-
-#: modules/optionwidgets/optionwidgets.module:96
-msgid "Single on/off checkbox"
-msgstr "Case à cocher on/off unique"
-
-#: modules/optionwidgets/optionwidgets.module:331
-msgid "%name: this field cannot hold more that @count values."
-msgstr "%name : ce champ ne peut contenir plus de @count valeurs."
-
-#: modules/optionwidgets/optionwidgets.module:416
-msgid "N/A"
-msgstr "N/A"
-
-#: modules/optionwidgets/optionwidgets.module:420
-msgid "- None -"
-msgstr "- Aucun -"
-
-#: modules/optionwidgets/optionwidgets.module:0
-msgid "optionwidgets"
-msgstr "optionwidgets"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Option Widgets"
-msgstr "Option Widgets"
-
-#: modules/optionwidgets/optionwidgets.info:0
-msgid "Defines selection, check box and radio button widgets for text and numeric fields."
-msgstr "Définit des widgets de liste déroulante, case à cocher et bouton radio pour des champs texte et numériques."
-
-#: modules/text/text.module:41
-#: modules/text/text.info:0
-msgid "Text"
-msgstr "Texte"
-
-#: modules/text/text.module:42
-msgid "Store text in the database."
-msgstr "Enregistre le texte dans la base de données."
-
-#: modules/text/text.module:54;201
-#: modules/userreference/userreference.module:226
-msgid "Plain text"
-msgstr "Texte simple"
-
-#: modules/text/text.module:54
-msgid "Filtered text (user selects input format)"
-msgstr "Texte filtré (l'utilisateur choisit le format d'entrée)"
-
-#: modules/text/text.module:57
-msgid "Text processing"
-msgstr "Traitement du texte"
-
-#: modules/text/text.module:63
-msgid "Maximum length"
-msgstr "Taille maximale"
-
-#: modules/text/text.module:67
-msgid "The maximum length of the field in characters. Leave blank for an unlimited size."
-msgstr "La taille maximale des champs, en caractères. Laisser vide pour ne pas limiter la taille."
-
-#: modules/text/text.module:159
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name : la valeur ne doit pas dépasser %max caractères."
-
-#: modules/text/text.module:196
-#: modules/userreference/userreference.module:221
-msgid "Default"
-msgstr "Par défaut"
-
-#: modules/text/text.module:206
-msgid "Trimmed"
-msgstr "Coupé"
-
-#: modules/text/text.module:264
-msgid "Text area (multiple rows)"
-msgstr "Zone de texte (plusieurs lignes)"
-
-#: modules/text/text.module:316
-msgid "Size of textfield"
-msgstr "Taille du champ texte"
-
-#: modules/text/text.module:325
-msgid "Rows"
-msgstr "Rangées"
-
-#: modules/text/text.module:0
-msgid "text"
-msgstr "texte"
-
-#: modules/text/text.info:0
-msgid "Defines simple text field types."
-msgstr "Définit les types de champs en texte simple."
-
-#: modules/userreference/userreference.rules.inc:15
-msgid "Load a referenced user"
-msgstr "Charge un utilisateur référencé"
-
-#: modules/userreference/userreference.rules.inc:19
-msgid "Content containing the user reference field"
-msgstr "Contenu contenant le champ userrefernece"
-
-#: modules/userreference/userreference.rules.inc:25
-msgid "Referenced user"
-msgstr "Utilisateur référencé"
-
-#: modules/userreference/userreference.rules.inc:29
-msgid "Note that if the field has multiple values, only the first user will be loaded."
-msgstr "Noter que si le champ possède des valeurs multiples, seul le premier utilisateur sera chargé"
-
-#: modules/userreference/userreference.rules.inc:52
-msgid "There are no userreference fields defined."
-msgstr "Il n'y a aucun champ userreference défini"
-
-#: modules/userreference/userreference.module:52
-msgid "User reference"
-msgstr "User reference"
-
-#: modules/userreference/userreference.module:53
-msgid "Store the ID of a related user as an integer value."
-msgstr "Stocke l'ID d'un utilisateur lié sous forme d'entier"
-
-#: modules/userreference/userreference.module:67
-msgid "User roles that can be referenced"
-msgstr "Rôles utilisateur pouvant être référencés"
-
-#: modules/userreference/userreference.module:73
-msgid "User status that can be referenced"
-msgstr "Statuts utilisateur pouvant être référencés"
-
-#: modules/userreference/userreference.module:75
-msgid "Active"
-msgstr "Actif"
-
-#: modules/userreference/userreference.module:75
-msgid "Blocked"
-msgstr "Bloqué"
-
-#: modules/userreference/userreference.module:94
-msgid "Advanced - Users that can be referenced (View)"
-msgstr "Avancé - Utilisateurs pouvant être référencés (Vue)"
-
-#: modules/userreference/userreference.module:101
-msgid "View used to select the users"
-msgstr "Vue utilisée pour sélectionner les utilisateurs"
-
-#: modules/userreference/userreference.module:104
-msgid "<p>Choose the \"Views module\" view that selects the users that can be referenced.<br />Note:</p>"
-msgstr "<p>Choisissez la vue du \"module Views\" qui sélectionne les utilisateurs pouvant être référencés.<br />Note :</p>"
-
-#: modules/userreference/userreference.module:105;118
-msgid "<ul><li>Only views that have fields will work for this purpose.</li><li>This will discard the \"Referenceable Roles\" and \"Referenceable Status\" settings above. Use the view's \"filters\" section instead.</li><li>Use the view's \"fields\" section to display additional informations about candidate users on user creation/edition form.</li><li>Use the view's \"sort criteria\" section to determine the order in which candidate users will be displayed.</li></ul>"
-msgstr "<ul><li>Seules les vues qui possèdent des champs fonctionneront à cet effet.</li><li>Ceci annulera les paramètres \"Rôles Référençables\" et \"Statut Référençable\" ci-dessus. Utilisez la section \"filtres\" de la vue à la place.</li><li>Utilisez la section \"champs\" de la vue pour afficher des informations supplémentaires à propos des utilisateurs candidats sur le formulaire de création/édition.</li><li>Utilisez la section \"critère de tri\" de la vue pour déterminer l'ordre dans lequel les utilisateurs candidats seront affichés.</li></ul>"
-
-#: modules/userreference/userreference.module:117
-msgid "<p>The list of user that can be referenced can be based on a \"Views module\" view but no appropriate views were found. <br />Note:</p>"
-msgstr "<p>La liste d'utilisateurs pouvant être référencés peut s'appueyr sur une vue du \"module Views\", mais aucune vue appropriée n'a été trouvée. <br />Note :</p>"
-
-#: modules/userreference/userreference.module:196
-msgid "%name: invalid user."
-msgstr "%name : utilisateur invalide."
-
-#: modules/userreference/userreference.module:349
-msgid "Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of users."
-msgstr "Séléctionnez la méthode utilisée pour collecter les suggestions de l'autocomplétion. Notez que <em>Contient</em> peut engendrer des problèmes de performances sur des sites avec des milliers d'utilisateurs."
-
-#: modules/userreference/userreference.module:357
-msgid "Reverse link"
-msgstr "Lien retour"
-
-#: modules/userreference/userreference.module:359
-msgid "If selected, a reverse link back to the referencing node will displayed on the referenced user record."
-msgstr "Si cette option est sélectionnée, un lien réciproque vers le nœud référençant sera affiché dans l'enregistrement utilisateur référencé."
-
-#: modules/userreference/userreference.module:594
-msgid "%name: found no valid user with that name."
-msgstr "%name : nous n'avons pas trouvé d'utilisateur valide pour ce nom."
-
-#: modules/userreference/userreference.module:887
-msgid "Related content"
-msgstr "Contenu lié"
-
-#: modules/userreference/userreference.module:15
-msgid "Userreference autocomplete"
-msgstr "Autocomplétion Userreference"
-
-#: modules/userreference/userreference.module:0
-msgid "userreference"
-msgstr "userreference"
-
-#: modules/userreference/userreference.info:0
-msgid "User Reference"
-msgstr "User Reference"
-
-#: modules/userreference/userreference.info:0
-msgid "Defines a field type for referencing a user from a node."
-msgstr "Définit un type de champ pour référencer un utilisateur depuis un noeud."
-
-#: theme/content-admin-field-overview-form.tpl.php:11
-msgid "Weight"
-msgstr "Poids"
-
-#: theme/content-admin-field-overview-form.tpl.php:53
-msgid "Add"
-msgstr "Ajouter"
-
-#: theme/content-admin-field-overview-form.tpl.php:59
-msgid "New field"
-msgstr "Nouveau champ"
-
-#: theme/content-admin-field-overview-form.tpl.php:72
-msgid "Existing field"
-msgstr "Champ existant"
-
-#: theme/content-admin-field-overview-form.tpl.php:84
-msgid "New group"
-msgstr "Nouveau groupe"
-
-#: theme/theme.inc:11
-msgid "Add fields and groups to the content type, and arrange them on content display and input forms."
-msgstr "Ajouter des champs et des groupes au type de contenu, et les paramétrer pour l'affichage du contenu et les formulaires de saisie."
-
-#: theme/theme.inc:13
-msgid "You can add a field to a group by dragging it below and to the right of the group."
-msgstr "Vous pouvez ajouter un champ à un groupe en le faisant glisser ci-dessous et à la droite du groupe."
-
-#: theme/theme.inc:16
-msgid "Note: Installing the <a href=\"!adv_help\">Advanced help</a> module will let you access more and better help."
-msgstr "Note : l'installation du module <a href=\"!adv_help\">Aide avancée (Advanced help)</a> vous permettra d'accéder à plus d'aide, et de meilleure qualité."
-
-#: theme/theme.inc:111
-msgid "Configure how this content type's fields and field labels should be displayed when it's viewed in teaser and full-page mode."
-msgstr "Configurez ici la manière dont les champs et étiquettes de champs de ce type de contenu doivent être affichées, lorsque le contenu est vu en mode accroche ou en pleine page."
-
-#: theme/theme.inc:114
-msgid "Configure how this content type's fields should be displayed when it's rendered in the following contexts."
-msgstr "Configurez ici la façon dont les champs de ce type de contenu doivent être affichés lorsqu'il est rendu dans les contextes suivants."
-
-#: theme/theme.inc:116
-msgid "Use the 'Exclude' checkbox to exclude an item from the !content value passed to the node template."
-msgstr "Utiliser la case à cocher 'Exclure' pour exclure un élément de la valeur de !content transmis au gabarit du node."
-
-#: theme/content-edit.js:0
-msgid "Remove this item"
-msgstr "Supprimer cet élément"
-
diff --git a/translations/general.de.po b/translations/general.de.po
deleted file mode 100644
index 77c3701..0000000
--- a/translations/general.de.po
+++ /dev/null
@@ -1,308 +0,0 @@
-# $Id: general.de.po,v 1.1.2.17 2009/06/16 17:19:19 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content.module,v 1.301.2.3 2008/06/14 02:24:00 yched
-# nodereference.module,v 1.138.2.1 2008/06/04 12:56:58 karens
-# content.crud.inc,v 1.76.2.1 2008/06/04 11:53:57 karens
-# content_copy.module,v 1.27 2008/05/29 22:27:04 karens
-# content.admin.inc,v 1.181.2.2 2008/06/14 02:50:08 yched
-# example_field.php,v 1.5 2008/04/23 08:24:06 karens
-# simple_field.php,v 1.5 2008/04/23 08:24:06 karens
-# text.module,v 1.95.2.2 2008/06/14 02:50:08 yched
-# userreference.module,v 1.106 2008/06/01 22:00:36 karens
-# number.module,v 1.91.2.3 2008/06/14 02:50:08 yched
-# fieldgroup.module,v 1.79.2.1 2008/06/13 21:41:06 yched
-# optionwidgets.module,v 1.69 2008/06/03 12:25:45 karens
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: German translation of CCK\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: 2009-06-16 19:15+0100\n"
-"Last-Translator: Alexander Haß\n"
-"Language-Team: \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"
-
-#: content.module:499
-#: modules/content_multigroup/content_multigroup.module:903
-msgid "Order"
-msgstr "Reihenfolge"
-
-#: content.module:1857
-#: modules/nodereference/nodereference.module:268
-msgid "Teaser"
-msgstr "Anrisstext"
-
-#: content.module:1861
-#: modules/nodereference/nodereference.module:263
-msgid "Full node"
-msgstr "Vollständiger Beitrag"
-
-#: content.module:595;602;0
-#: includes/content.crud.inc:589;633
-msgid "content"
-msgstr "Inhalt"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:11
-#: theme/content-admin-field-overview-form.tpl.php:12
-msgid "Name"
-msgstr "Name"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:12
-#: theme/content-admin-field-overview-form.tpl.php:13
-msgid "Type"
-msgstr "Typ"
-
-#: includes/content.admin.inc:16
-#: modules/fieldgroup/fieldgroup.module:158
-msgid "Description"
-msgstr "Beschreibung"
-
-#: includes/content.admin.inc:16
-#: theme/content-admin-field-overview-form.tpl.php:14
-msgid "Operations"
-msgstr "Operationen"
-
-#: includes/content.admin.inc:171;197;895
-#: modules/fieldgroup/fieldgroup.module:209
-msgid "Remove"
-msgstr "Entfernen"
-
-#: includes/content.admin.inc:244;285;315;804;985
-#: includes/panels/content_types/content_field.inc:97
-#: includes/views/handlers/content_handler_field.inc:56
-#: modules/content_copy/content_copy_export_form.tpl.php:10
-#: modules/fieldgroup/fieldgroup.module:117
-#: theme/content-admin-display-overview-form.tpl.php:13
-#: theme/content-admin-field-overview-form.tpl.php:10
-msgid "Label"
-msgstr "Bezeichnung"
-
-#: includes/content.admin.inc:344
-#: modules/content_multigroup/content_multigroup.module:126
-msgid "Type of group."
-msgstr "Typ der Gruppe."
-
-#: includes/content.admin.inc:352;677
-#: modules/fieldgroup/fieldgroup.module:177;341
-msgid "Save"
-msgstr "Speichern"
-
-#: includes/content.admin.inc:585;633
-#: includes/panels/content_types/content_field.inc:101
-#: modules/content_multigroup/content_multigroup.module:352
-msgid "Above"
-msgstr "Oberhalb"
-
-#: includes/content.admin.inc:586
-#: includes/panels/content_types/content_field.inc:102
-msgid "Inline"
-msgstr "Inline"
-
-#: includes/content.admin.inc:587;614;634;642
-#: modules/content_multigroup/content_multigroup.module:353;360
-msgid "<Hidden>"
-msgstr "<Versteckt>"
-
-#: includes/content.admin.inc:625;668
-#: theme/content-admin-display-overview-form.tpl.php:17
-msgid "Exclude"
-msgstr "Ausschließen"
-
-#: includes/content.admin.inc:895
-#: modules/fieldgroup/fieldgroup.module:209
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: includes/content.admin.inc:1031
-#: modules/fieldgroup/fieldgroup.module:145
-msgid "Help text"
-msgstr "Hilfetext"
-
-#: includes/content.admin.inc:1081
-#: modules/number/number.module:123
-#: modules/text/text.module:86
-msgid "PHP code"
-msgstr "PHP-Code"
-
-#: includes/content.admin.inc:1096;1109
-#: includes/content.rules.inc:99
-#: modules/number/number.module:130;139
-#: modules/text/text.module:93;102
-msgid "Code"
-msgstr "Kürzel"
-
-#: includes/content.admin.inc:1110
-#: modules/number/number.module:140
-#: modules/text/text.module:103
-msgid "&lt;none&gt;"
-msgstr "&lt;Keine&gt;"
-
-#: includes/content.admin.inc:1111
-#: modules/number/number.module:141
-#: modules/text/text.module:104
-msgid "You're not allowed to input PHP code."
-msgstr "Keine Berechtigung zur Eingabe von PHP-Code vorhanden."
-
-#: includes/content.admin.inc:1134
-#: modules/content_multigroup/content_multigroup.module:73
-msgid "Unlimited"
-msgstr "Unbegrenzt"
-
-#: includes/content.admin.inc:1151
-#: modules/content_copy/content_copy.module:251
-msgid "Save field settings"
-msgstr "Feldeinstellungen speichern"
-
-#: includes/content.rules.inc:53;276
-#: modules/nodereference/nodereference.rules.inc:45
-#: modules/userreference/userreference.rules.inc:47
-#: theme/content-admin-display-overview-form.tpl.php:11
-msgid "Field"
-msgstr "Feld"
-
-#: includes/panels/content_types/content_field.inc:45
-#: modules/fieldgroup/fieldgroup.panels.inc:31
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:43
-#: modules/nodereference/panels/relationships/node_from_noderef.inc:17
-#: modules/userreference/panels/relationships/user_from_userref.inc:17
-msgid "Node"
-msgstr "Beitrag"
-
-#: modules/content_multigroup/content_multigroup.module:356
-#: modules/fieldgroup/fieldgroup.module:266
-msgid "none"
-msgstr "Keine"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:10;27
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:14
-msgid "Content fieldgroup"
-msgstr "Inhaltsfeldgruppe"
-
-#: modules/fieldgroup/fieldgroup.panels.inc:112
-#: modules/fieldgroup/panels/content_types/content_fieldgroup.inc:102
-msgid "Text to display if group has no data. Note that title will not display unless overridden."
-msgstr "Der bei einer Gruppe ohne Daten anzuzeigende Text. Der Titel wird nur angezeigt, wenn dieser Übersteuert wird."
-
-#: modules/nodereference/nodereference.module:97
-#: modules/userreference/userreference.module:94
-msgid "Default Views"
-msgstr "Standardansichten"
-
-#: modules/nodereference/nodereference.module:100
-#: modules/userreference/userreference.module:97
-msgid "Existing Views"
-msgstr "Vorhandene Ansichten"
-
-#: modules/nodereference/nodereference.module:122
-#: modules/userreference/userreference.module:119
-msgid "View arguments"
-msgstr "Argumente anzeigen"
-
-#: modules/nodereference/nodereference.module:125
-#: modules/userreference/userreference.module:122
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Eine kommagetrennte Liste von Argumenten angeben, welche an die Ansicht übergeben werden."
-
-#: modules/nodereference/nodereference.module:216
-#: modules/userreference/userreference.module:195
-msgid "%name: invalid input."
-msgstr "%name: ungültige Eingabe."
-
-#: modules/nodereference/nodereference.module:358
-#: modules/optionwidgets/optionwidgets.module:80
-#: modules/userreference/userreference.module:284
-msgid "Select list"
-msgstr "Auswahlliste"
-
-#: modules/nodereference/nodereference.module:366
-#: modules/optionwidgets/optionwidgets.module:88
-#: modules/userreference/userreference.module:292
-msgid "Check boxes/radio buttons"
-msgstr "Ankreuzfelder/Auswahlknöpfe"
-
-#: modules/nodereference/nodereference.module:374
-#: modules/userreference/userreference.module:300
-msgid "Autocomplete text field"
-msgstr "Textfeld mit Autovervollständigung"
-
-#: modules/nodereference/nodereference.module:429
-#: modules/userreference/userreference.module:355
-msgid "Autocomplete matching"
-msgstr "Autovervollständigungsvergleich"
-
-#: modules/nodereference/nodereference.module:432
-#: modules/userreference/userreference.module:358
-msgid "Starts with"
-msgstr "Beginnt mit"
-
-#: modules/nodereference/nodereference.module:433
-#: modules/userreference/userreference.module:359
-msgid "Contains"
-msgstr "Enthält"
-
-#: modules/nodereference/nodereference.module:439
-#: modules/text/text.module:317
-#: modules/userreference/userreference.module:365
-msgid "Size of textfield"
-msgstr "Größe des Textfeldes"
-
-#: modules/number/number.module:109
-#: modules/text/text.module:72
-msgid "Allowed values"
-msgstr "Zulässige Werte"
-
-#: modules/number/number.module:115
-#: modules/text/text.module:78
-msgid "Allowed values list"
-msgstr "Zulässige Werteliste"
-
-#: modules/number/number.module:119
-#: modules/text/text.module:82
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr "Die möglichen Werte, die dieses Feld enthalten kann. Geben Sie pro Zeile einen Wert im Format „Schlüssel|Bezeichnung“ ein. Der Schüssel ist der Wert, welcher in der Datenbank gespeichert wird und muss dem Datentyp (%type) des Feldes entsprechen. Der Schlüssel wird als Bezeichnung verwendet, wenn die optionale Bezeichnung nicht angegeben wird.<br />Zulässige HTML-Tags: @tags"
-
-#: modules/number/number.module:133
-#: modules/text/text.module:96
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr "Nur erweiterte Verwendung: PHP-Code der ein Array mit Schlüsseln der zulässigen Werte zurückliefert. Dieser sollte keine &lt;?php ?&gt; Trennzeichen enthalten. Sollte dieses Feld ausgefüllt werden, wird das von diesem Code zurückgegebene Array die zulässige Werteliste oberhalb übersteuern."
-
-#: modules/number/number.module:141
-#: modules/text/text.module:104
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr "Dieser PHP-Code wurde von einem Administrator festgelegt und wird die obige zulässige Werteliste übersteuern."
-
-#: modules/number/number.module:181
-#: modules/text/text.module:133
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Zulässige Werte"
-
-#: modules/number/number.module:238
-#: modules/text/text.module:157
-msgid "%name: illegal value."
-msgstr "%name: ungültiger Wert."
-
-#: modules/number/number.module:356
-#: modules/text/text.module:257
-msgid "Text field"
-msgstr "Textfeld"
-
-#: modules/text/text.module:55;202
-#: modules/userreference/userreference.module:237
-msgid "Plain text"
-msgstr "Einfacher Text"
-
-#: modules/text/text.module:197
-#: modules/userreference/userreference.module:232
-msgid "Default"
-msgstr "Standard"
-
diff --git a/translations/general.fr.po b/translations/general.fr.po
deleted file mode 100644
index 047c85f..0000000
--- a/translations/general.fr.po
+++ /dev/null
@@ -1,207 +0,0 @@
-# translation of SB-cck-6.x-2.x-dev.po to
-# translation of cck-6.x-2.x-dev.po to
-msgid ""
-msgstr ""
-"Project-Id-Version: SB-cck-6.x-2.x-dev\n"
-"POT-Creation-Date: 2008-07-03 07:41+0200\n"
-"PO-Revision-Date: 2008-07-03 13:24+0100\n"
-"Last-Translator: Damien Tournoud <damz@prealable.org>\n"
-"Language-Team: <fr@li.org>\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: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: content.module:1635 modules/nodereference/nodereference.module:215
-msgid "Teaser"
-msgstr "Résumé"
-
-#: content.module:1636 modules/nodereference/nodereference.module:210
-msgid "Full node"
-msgstr "Nœud complet"
-
-#: content.module:557;564;0 includes/content.crud.inc:591;629
-msgid "content"
-msgstr "contenu"
-
-#: content.module:103 modules/content_copy/content_copy.module:125
-msgid "Fields"
-msgstr "Champs"
-
-#: content.module:156 includes/content.admin.inc:528
-msgid "Add field"
-msgstr "Ajouter un champ"
-
-#: examples/example_field.php:158;388 examples/simple_field.php:332
-#: modules/text/text.module:66;209
-#: modules/userreference/userreference.module:151
-msgid "Plain text"
-msgstr "Texte simple"
-
-#: examples/example_field.php:158 modules/text/text.module:66
-msgid "Filtered text (user selects input format)"
-msgstr "Texte filtré (l'utilisateur choisit le format d'entrée)"
-
-#: examples/example_field.php:161 modules/text/text.module:69
-msgid "Text processing"
-msgstr "Traitement du texte"
-
-#: examples/example_field.php:167 examples/simple_field.php:164
-#: modules/text/text.module:75
-msgid "Maximum length"
-msgstr "Taille maximale"
-
-#: examples/example_field.php:170 examples/simple_field.php:167
-#: modules/text/text.module:78
-msgid ""
-"The maximum length of the field in characters. Leave blank for an unlimited "
-"size."
-msgstr ""
-"La taille maximale des champs, en caractères. Laisser vide pour ne pas "
-"limiter la taille."
-
-#: examples/example_field.php:174 modules/number/number.module:129
-#: modules/text/text.module:88
-msgid "Allowed values list"
-msgstr "Liste des valeurs autorisées"
-
-#: examples/example_field.php:182 includes/content.admin.inc:930
-#: modules/number/number.module:137 modules/text/text.module:96
-msgid "PHP code"
-msgstr "Code PHP"
-
-#: examples/example_field.php:188 includes/content.admin.inc:951;964
-#: modules/number/number.module:144;153 modules/text/text.module:103;112
-msgid "Code"
-msgstr "Code"
-
-#: examples/example_field.php:191 modules/number/number.module:147
-#: modules/text/text.module:106
-msgid ""
-"Advanced usage only: PHP code that returns a keyed array of allowed values. "
-"Should not include &lt;?php ?&gt; delimiters. If this field is filled out, "
-"the array returned by this code will override the allowed values list above."
-msgstr ""
-"Pour usage avancé seulement : code PHP fournissant un tableau par clé des "
-"valeurs autorisées. Ne doit pas inclure les délimiteurs &lt;?php ?&gt;. Si "
-"ce champ est rempli, le tableau renvoyé par le code prendra le pas sur la "
-"liste des valeurs autorisées apparaissant ci-dessus."
-
-#: examples/example_field.php:278 modules/number/number.module:228
-#: modules/text/text.module:160
-msgid "Illegal value for %name."
-msgstr "Valeur illégale pour le champ '%name'."
-
-#: examples/example_field.php:287 examples/simple_field.php:231
-#: modules/text/text.module:169
-msgid "%label is longer than %max characters."
-msgstr "La longueur de '%label' dépasse %max caractères."
-
-#: examples/example_field.php:383 examples/simple_field.php:327
-#: modules/text/text.module:204 modules/userreference/userreference.module:146
-msgid "Default"
-msgstr "Par défaut"
-
-#: examples/example_field.php:393 modules/text/text.module:214
-msgid "Trimmed"
-msgstr "Coupé"
-
-#: examples/example_field.php:476 examples/simple_field.php:400
-#: modules/number/number.module:342 modules/text/text.module:264
-msgid "Text field"
-msgstr "Champ texte"
-
-#: examples/example_field.php:551 examples/simple_field.php:430
-#: modules/text/text.module:324
-msgid "Rows"
-msgstr "Rangées"
-
-#: examples/example_field.php:560 examples/simple_field.php:438
-#: modules/text/text.module:333
-msgid "\"Rows\" must be a positive integer."
-msgstr "Le champ 'Rangées' doit être un entier positif."
-
-#: includes/content.admin.inc:16 modules/fieldgroup/fieldgroup.module:156
-msgid "Description"
-msgstr "Description"
-
-#: includes/content.admin.inc:148;164;790
-#: modules/fieldgroup/fieldgroup.module:236
-msgid "Remove"
-msgstr "Ôter"
-
-#: includes/content.admin.inc:201;402
-#: modules/fieldgroup/fieldgroup.module:110;363
-msgid "Save"
-msgstr "Enregistrer"
-
-#: includes/content.admin.inc:212;413;623;850
-#: modules/fieldgroup/fieldgroup.module:121
-msgid "Label"
-msgstr "Étiquette"
-
-#: includes/content.admin.inc:790 modules/fieldgroup/fieldgroup.module:236
-msgid "Cancel"
-msgstr "Annuler"
-
-#: includes/content.admin.inc:897 modules/fieldgroup/fieldgroup.module:143
-msgid "Help text"
-msgstr "Texte d'aide"
-
-#: includes/content.admin.inc:965 modules/number/number.module:154
-#: modules/text/text.module:113
-msgid "&lt;none&gt;"
-msgstr "&lt;aucun&gt;"
-
-#: includes/content.admin.inc:966 modules/number/number.module:155
-#: modules/text/text.module:114
-msgid "You're not allowed to input PHP code."
-msgstr "Vous n'êtes pas autorisé à saisir du code PHP."
-
-#: modules/fieldgroup/fieldgroup.module:293
-#: modules/nodereference/nodereference.module:544
-#: modules/userreference/userreference.module:439
-msgid "none"
-msgstr "aucun"
-
-#: modules/nodereference/nodereference.module:303
-#: modules/optionwidgets/optionwidgets.module:62
-#: modules/userreference/userreference.module:198
-msgid "Select list"
-msgstr "Liste de sélection"
-
-#: modules/nodereference/nodereference.module:311
-#: modules/userreference/userreference.module:206
-msgid "Autocomplete text field"
-msgstr "Champ texte à auto-complètement"
-
-#: modules/number/number.module:123 modules/text/text.module:82
-msgid "Allowed values"
-msgstr "Valeurs permises"
-
-#: modules/number/number.module:133 modules/text/text.module:92
-msgid ""
-"The possible values this field can contain. Enter one value per line, in the "
-"format key|label. The key is the value that will be stored in the database "
-"and it must match the field storage type, %type. The label is optional and "
-"the key will be used as the label if no label is specified.<br />Allowed "
-"HTML tags: @tags"
-msgstr ""
-"Les valeurs que ce champ peut contenir. Saisissez une valeur par ligne, au "
-"format clé|libellé. La clé est la valeur qui sera enregistrée dans la base "
-"de données et elle doit correspondre au type définit pour le champ dans la "
-"base, '%type'. Le libellé est optionnel et, si aucune valeur n'est "
-"spécifiée, la clé sera utilisée comme libellé.<br />Balises HTML "
-"autorisées : @tags"
-
-#: modules/number/number.module:155 modules/text/text.module:114
-msgid ""
-"This PHP code was set by an administrator and will override the allowed "
-"values list above."
-msgstr ""
-"Ce code PHP a été saisi par un administrateur et supplantera la liste des "
-"valeurs permises ci-dessus."
diff --git a/translations/general.pot b/translations/general.pot
deleted file mode 100644
index fb72080..0000000
--- a/translations/general.pot
+++ /dev/null
@@ -1,246 +0,0 @@
-# $Id: general.pot,v 1.1.2.11 2009/06/16 17:05:11 hass Exp $
-#
-# LANGUAGE translation of Drupal (general)
-# Copyright YEAR NAME <EMAIL@ADDRESS>
-# Generated from files:
-# content.module,v 1.301.2.106 2009/06/02 12:24:04 yched
-# content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
-# nodereference.module,v 1.138.2.55 2009/06/02 12:24:04 yched
-# content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
-# content.admin.inc,v 1.181.2.68 2009/06/02 14:49:07 yched
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
-# fieldgroup.module,v 1.79.2.48 2009/04/29 20:51:52 karens
-# content_field.inc,v 1.1.2.4 2009/06/02 15:05:27 yched
-# content_handler_field.inc,v 1.1.2.15 2009/03/30 22:54:16 yched
-# content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
-# number.module,v 1.91.2.35 2009/04/29 20:51:53 karens
-# text.module,v 1.95.2.29 2009/04/29 20:51:53 karens
-# content.rules.inc,v 1.1.2.6 2009/04/30 09:56:07 fago
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# content_fieldgroup.inc,v 1.1.2.1 2009/04/29 18:34:46 karens
-# node_from_noderef.inc,v 1.1.2.1 2009/06/02 12:24:03 yched
-# user_from_userref.inc,v 1.1.2.1 2009/06/02 12:24:04 yched
-# userreference.module,v 1.106.2.43 2009/06/02 12:24:04 yched
-# optionwidgets.module,v 1.69.2.23 2009/03/18 21:00:58 yched
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2009-06-16 19:00+0200\n"
-"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
-"Last-Translator: NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <EMAIL@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"
-
-#: content.module:499 modules/content_multigroup/content_multigroup.module:903
-msgid "Order"
-msgstr ""
-
-#: content.module:1857 modules/nodereference/nodereference.module:268
-msgid "Teaser"
-msgstr ""
-
-#: content.module:1861 modules/nodereference/nodereference.module:263
-msgid "Full node"
-msgstr ""
-
-#: content.module:595;602;0 includes/content.crud.inc:589;633
-msgid "content"
-msgstr ""
-
-#: includes/content.admin.inc:16 modules/content_copy/content_copy_export_form.tpl.php:11 theme/content-admin-field-overview-form.tpl.php:12
-msgid "Name"
-msgstr ""
-
-#: includes/content.admin.inc:16 modules/content_copy/content_copy_export_form.tpl.php:12 theme/content-admin-field-overview-form.tpl.php:13
-msgid "Type"
-msgstr ""
-
-#: includes/content.admin.inc:16 modules/fieldgroup/fieldgroup.module:158
-msgid "Description"
-msgstr ""
-
-#: includes/content.admin.inc:16 theme/content-admin-field-overview-form.tpl.php:14
-msgid "Operations"
-msgstr ""
-
-#: includes/content.admin.inc:171;197;895 modules/fieldgroup/fieldgroup.module:209
-msgid "Remove"
-msgstr ""
-
-#: includes/content.admin.inc:244;285;315;804;985 includes/panels/content_types/content_field.inc:97 includes/views/handlers/content_handler_field.inc:56 modules/content_copy/content_copy_export_form.tpl.php:10 modules/fieldgroup/fieldgroup.module:117 theme/content-admin-display-overview-form.tpl.php:13 theme/content-admin-field-overview-form.tpl.php:10
-msgid "Label"
-msgstr ""
-
-#: includes/content.admin.inc:344 modules/content_multigroup/content_multigroup.module:126
-msgid "Type of group."
-msgstr ""
-
-#: includes/content.admin.inc:352;677 modules/fieldgroup/fieldgroup.module:177;341
-msgid "Save"
-msgstr ""
-
-#: includes/content.admin.inc:585;633 includes/panels/content_types/content_field.inc:101 modules/content_multigroup/content_multigroup.module:352
-msgid "Above"
-msgstr ""
-
-#: includes/content.admin.inc:586 includes/panels/content_types/content_field.inc:102
-msgid "Inline"
-msgstr ""
-
-#: includes/content.admin.inc:587;614;634;642 modules/content_multigroup/content_multigroup.module:353;360
-msgid "<Hidden>"
-msgstr ""
-
-#: includes/content.admin.inc:625;668 theme/content-admin-display-overview-form.tpl.php:17
-msgid "Exclude"
-msgstr ""
-
-#: includes/content.admin.inc:895 modules/fieldgroup/fieldgroup.module:209
-msgid "Cancel"
-msgstr ""
-
-#: includes/content.admin.inc:1031 modules/fieldgroup/fieldgroup.module:145
-msgid "Help text"
-msgstr ""
-
-#: includes/content.admin.inc:1081 modules/number/number.module:123 modules/text/text.module:86
-msgid "PHP code"
-msgstr ""
-
-#: includes/content.admin.inc:1096;1109 includes/content.rules.inc:99 modules/number/number.module:130;139 modules/text/text.module:93;102
-msgid "Code"
-msgstr ""
-
-#: includes/content.admin.inc:1110 modules/number/number.module:140 modules/text/text.module:103
-msgid "&lt;none&gt;"
-msgstr ""
-
-#: includes/content.admin.inc:1111 modules/number/number.module:141 modules/text/text.module:104
-msgid "You're not allowed to input PHP code."
-msgstr ""
-
-#: includes/content.admin.inc:1134 modules/content_multigroup/content_multigroup.module:73
-msgid "Unlimited"
-msgstr ""
-
-#: includes/content.admin.inc:1151 modules/content_copy/content_copy.module:251
-msgid "Save field settings"
-msgstr ""
-
-#: includes/content.rules.inc:53;276 modules/nodereference/nodereference.rules.inc:45 modules/userreference/userreference.rules.inc:47 theme/content-admin-display-overview-form.tpl.php:11
-msgid "Field"
-msgstr ""
-
-#: includes/panels/content_types/content_field.inc:45 modules/fieldgroup/fieldgroup.panels.inc:31 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:43 modules/nodereference/panels/relationships/node_from_noderef.inc:17 modules/userreference/panels/relationships/user_from_userref.inc:17
-msgid "Node"
-msgstr ""
-
-#: modules/content_multigroup/content_multigroup.module:356 modules/fieldgroup/fieldgroup.module:266
-msgid "none"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:10;27 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:14
-msgid "Content fieldgroup"
-msgstr ""
-
-#: modules/fieldgroup/fieldgroup.panels.inc:112 modules/fieldgroup/panels/content_types/content_fieldgroup.inc:102
-msgid "Text to display if group has no data. Note that title will not display unless overridden."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:97 modules/userreference/userreference.module:94
-msgid "Default Views"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:100 modules/userreference/userreference.module:97
-msgid "Existing Views"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:122 modules/userreference/userreference.module:119
-msgid "View arguments"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:125 modules/userreference/userreference.module:122
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:216 modules/userreference/userreference.module:195
-msgid "%name: invalid input."
-msgstr ""
-
-#: modules/nodereference/nodereference.module:358 modules/optionwidgets/optionwidgets.module:80 modules/userreference/userreference.module:284
-msgid "Select list"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:366 modules/optionwidgets/optionwidgets.module:88 modules/userreference/userreference.module:292
-msgid "Check boxes/radio buttons"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:374 modules/userreference/userreference.module:300
-msgid "Autocomplete text field"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:429 modules/userreference/userreference.module:355
-msgid "Autocomplete matching"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:432 modules/userreference/userreference.module:358
-msgid "Starts with"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:433 modules/userreference/userreference.module:359
-msgid "Contains"
-msgstr ""
-
-#: modules/nodereference/nodereference.module:439 modules/text/text.module:317 modules/userreference/userreference.module:365
-msgid "Size of textfield"
-msgstr ""
-
-#: modules/number/number.module:109 modules/text/text.module:72
-msgid "Allowed values"
-msgstr ""
-
-#: modules/number/number.module:115 modules/text/text.module:78
-msgid "Allowed values list"
-msgstr ""
-
-#: modules/number/number.module:119 modules/text/text.module:82
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-
-#: modules/number/number.module:133 modules/text/text.module:96
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr ""
-
-#: modules/number/number.module:141 modules/text/text.module:104
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr ""
-
-#: modules/number/number.module:181 modules/text/text.module:133
-msgid "@label (!name) - Allowed values"
-msgstr ""
-
-#: modules/number/number.module:238 modules/text/text.module:157
-msgid "%name: illegal value."
-msgstr ""
-
-#: modules/number/number.module:356 modules/text/text.module:257
-msgid "Text field"
-msgstr ""
-
-#: modules/text/text.module:55;202 modules/userreference/userreference.module:237
-msgid "Plain text"
-msgstr ""
-
-#: modules/text/text.module:197 modules/userreference/userreference.module:232
-msgid "Default"
-msgstr ""
-
diff --git a/translations/general.sv.po b/translations/general.sv.po
deleted file mode 100644
index cfcccf3..0000000
--- a/translations/general.sv.po
+++ /dev/null
@@ -1,292 +0,0 @@
-# $Id: general.sv.po,v 1.1.2.2 2009/08/25 11:21:34 markuspetrux Exp $
-#
-# Swedish translation of Drupal (general)
-# Generated from files:
-# content.module,v 1.301.2.99 2009/03/05 22:58:57 karens
-# content_multigroup.module,v 1.1.2.4 2008/10/22 11:02:41 yched
-# nodereference.module,v 1.138.2.49 2009/03/01 14:40:35 yched
-# content.crud.inc,v 1.76.2.14 2008/11/07 15:02:02 yched
-# content.admin.inc,v 1.181.2.64 2009/03/01 13:48:44 yched
-# content_copy_export_form.tpl.php,v 1.1.2.2 2008/10/28 02:11:49 yched
-# content-admin-field-overview-form.tpl.php,v 1.1.2.5 2008/10/16 14:40:54 yched
-# fieldgroup.module,v 1.79.2.45 2009/02/28 23:56:17 yched
-# content.panels.inc,v 1.1.2.6 2008/11/03 14:12:41 yched
-# content_handler_field.inc,v 1.1.2.13 2009/03/06 15:29:34 karens
-# content-admin-display-overview-form.tpl.php,v 1.1.2.3 2008/10/09 20:58:26 karens
-# number.module,v 1.91.2.31 2008/12/05 23:27:56 yched
-# text.module,v 1.95.2.28 2008/12/30 00:00:54 yched
-# content.rules.inc,v 1.1.2.4 2008/10/24 11:11:48 fago
-# content_copy.module,v 1.27.2.21 2009/02/26 23:15:54 yched
-# fieldgroup.panels.inc,v 1.1.2.5 2009/01/10 22:47:06 yched
-# nodereference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.rules.inc,v 1.1.2.2 2008/10/06 15:02:03 karens
-# userreference.module,v 1.106.2.35 2009/03/01 14:40:35 yched
-# optionwidgets.module,v 1.69.2.21 2008/10/25 02:04:44 yched
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CCK - General 6.x\n"
-"POT-Creation-Date: 2009-03-09 22:08+0100\n"
-"PO-Revision-Date: 2009-04-20 22:18+0100\n"
-"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
-"Language-Team: drupalsverige.se\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: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: content.module:493
-#: modules/content_multigroup/content_multigroup.module:903
-msgid "Order"
-msgstr "Ordning"
-
-#: content.module:1846
-#: modules/nodereference/nodereference.module:257
-msgid "Teaser"
-msgstr "Förhandstitt"
-
-#: content.module:1850
-#: modules/nodereference/nodereference.module:252
-msgid "Full node"
-msgstr "Fullständig nod"
-
-#: content.module:589;596;0
-#: includes/content.crud.inc:589;633
-msgid "content"
-msgstr "innehåll"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:11
-#: theme/content-admin-field-overview-form.tpl.php:12
-msgid "Name"
-msgstr "Namn"
-
-#: includes/content.admin.inc:16
-#: modules/content_copy/content_copy_export_form.tpl.php:12
-#: theme/content-admin-field-overview-form.tpl.php:13
-msgid "Type"
-msgstr "Typ"
-
-#: includes/content.admin.inc:16
-#: modules/fieldgroup/fieldgroup.module:152
-msgid "Description"
-msgstr "Beskrivning"
-
-#: includes/content.admin.inc:16
-#: theme/content-admin-field-overview-form.tpl.php:14
-msgid "Operations"
-msgstr "Funktioner"
-
-#: includes/content.admin.inc:171;197;888
-#: modules/fieldgroup/fieldgroup.module:203
-msgid "Remove"
-msgstr "Ta bort"
-
-#: includes/content.admin.inc:244;285;315;797;978
-#: includes/content.panels.inc:49
-#: includes/views/handlers/content_handler_field.inc:56
-#: modules/content_copy/content_copy_export_form.tpl.php:10
-#: modules/fieldgroup/fieldgroup.module:111
-#: theme/content-admin-display-overview-form.tpl.php:13
-#: theme/content-admin-field-overview-form.tpl.php:10
-msgid "Label"
-msgstr "Etikett"
-
-#: includes/content.admin.inc:344;670
-#: modules/fieldgroup/fieldgroup.module:171;335
-msgid "Save"
-msgstr "Spara"
-
-#: includes/content.admin.inc:578;626
-#: includes/content.panels.inc:53
-#: modules/content_multigroup/content_multigroup.module:352
-msgid "Above"
-msgstr "Ovanför"
-
-#: includes/content.admin.inc:580;607;627;635
-#: modules/content_multigroup/content_multigroup.module:353;360
-msgid "<Hidden>"
-msgstr "<Gömd>"
-
-#: includes/content.admin.inc:618;661
-#: theme/content-admin-display-overview-form.tpl.php:17
-msgid "Exclude"
-msgstr "Uteslut"
-
-#: includes/content.admin.inc:888
-#: modules/fieldgroup/fieldgroup.module:203
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: includes/content.admin.inc:1024
-#: modules/fieldgroup/fieldgroup.module:139
-msgid "Help text"
-msgstr "Hjälptext"
-
-#: includes/content.admin.inc:1074
-#: modules/number/number.module:120
-#: modules/text/text.module:85
-msgid "PHP code"
-msgstr "PHP-kod"
-
-#: includes/content.admin.inc:1089;1102
-#: includes/content.rules.inc:99
-#: modules/number/number.module:127;136
-#: modules/text/text.module:92;101
-msgid "Code"
-msgstr "Kod"
-
-#: includes/content.admin.inc:1103
-#: modules/number/number.module:137
-#: modules/text/text.module:102
-msgid "&lt;none&gt;"
-msgstr "&lt;ingen&gt;"
-
-#: includes/content.admin.inc:1104
-#: modules/number/number.module:138
-#: modules/text/text.module:103
-msgid "You're not allowed to input PHP code."
-msgstr "Du har inte tillåtelse att mata in PHP-kod."
-
-#: includes/content.admin.inc:1127
-#: modules/content_multigroup/content_multigroup.module:73
-msgid "Unlimited"
-msgstr "Obegränsad"
-
-#: includes/content.admin.inc:1144
-#: modules/content_copy/content_copy.module:251
-msgid "Save field settings"
-msgstr "Spara inställningar för fält"
-
-#: includes/content.panels.inc:39
-#: modules/fieldgroup/fieldgroup.panels.inc:31
-msgid "Node"
-msgstr "Nod"
-
-#: includes/content.panels.inc:40
-#: modules/fieldgroup/fieldgroup.panels.inc:32
-msgid "Node context"
-msgstr "Sammanhang för nod"
-
-#: includes/content.rules.inc:53;266
-#: modules/nodereference/nodereference.rules.inc:45
-#: modules/userreference/userreference.rules.inc:47
-#: theme/content-admin-display-overview-form.tpl.php:11
-msgid "Field"
-msgstr "Fält"
-
-#: modules/content_multigroup/content_multigroup.module:356
-#: modules/fieldgroup/fieldgroup.module:260
-msgid "none"
-msgstr "ingen"
-
-#: modules/nodereference/nodereference.module:87
-#: modules/userreference/userreference.module:84
-msgid "Default Views"
-msgstr "Förvald vy"
-
-#: modules/nodereference/nodereference.module:90
-#: modules/userreference/userreference.module:87
-msgid "Existing Views"
-msgstr "Existerande vyer"
-
-#: modules/nodereference/nodereference.module:112
-#: modules/userreference/userreference.module:109
-msgid "View arguments"
-msgstr "Argument för vy"
-
-#: modules/nodereference/nodereference.module:115
-#: modules/userreference/userreference.module:112
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr "Tillhandahåll en kommaseparerad lista av argument att skicka till vyn."
-
-#: modules/nodereference/nodereference.module:205
-#: modules/userreference/userreference.module:184
-msgid "%name: invalid input."
-msgstr "%name: ogiltig inmatning."
-
-#: modules/nodereference/nodereference.module:347
-#: modules/optionwidgets/optionwidgets.module:80
-#: modules/userreference/userreference.module:273
-msgid "Select list"
-msgstr "Listval"
-
-#: modules/nodereference/nodereference.module:355
-#: modules/optionwidgets/optionwidgets.module:88
-#: modules/userreference/userreference.module:281
-msgid "Check boxes/radio buttons"
-msgstr "Kryssrutor/radioknappar"
-
-#: modules/nodereference/nodereference.module:363
-#: modules/userreference/userreference.module:289
-msgid "Autocomplete text field"
-msgstr "Automatiskt kompletterande textfält"
-
-#: modules/nodereference/nodereference.module:417
-#: modules/userreference/userreference.module:343
-msgid "Autocomplete matching"
-msgstr "Automatiskt kompletterande som överensstämmer"
-
-#: modules/nodereference/nodereference.module:420
-#: modules/userreference/userreference.module:346
-msgid "Starts with"
-msgstr "Börjar med"
-
-#: modules/nodereference/nodereference.module:421
-#: modules/userreference/userreference.module:347
-msgid "Contains"
-msgstr "Innehåller"
-
-#: modules/number/number.module:106
-#: modules/text/text.module:71
-msgid "Allowed values"
-msgstr "Tillåtna värden"
-
-#: modules/number/number.module:112
-#: modules/text/text.module:77
-msgid "Allowed values list"
-msgstr "Tillåtna listvärden"
-
-#: modules/number/number.module:116
-#: modules/text/text.module:81
-msgid "The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database, and it must match the field storage type (%type). The label is optional, and the key will be used as the label if no label is specified.<br />Allowed HTML tags: @tags"
-msgstr "De möjliga värdena detta fält kan innehålla. Ange ett värde per rad i formatet nyckel|etikett. Nyckeln är värdet som kommer att lagras i databasen och måste överensstämma med typen på fältet (%type). Etiketten är valfri, och om den inte anges kommer nyckeln att anges.<br />Tillåtna HTML-taggar: @tags"
-
-#: modules/number/number.module:130
-#: modules/text/text.module:95
-msgid "Advanced usage only: PHP code that returns a keyed array of allowed values. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the allowed values list above."
-msgstr "Enbart avancerat användande: PHP-kod som skall returnera en spärrad lista av tillåtna värden. Skall inte inkludera avgränsarna &lt;?php ?&gt;. Om detta fält är ifyllt kommer listan som returneras av denna kod att åsidosätta det tillåtna värdet i listan ovan."
-
-#: modules/number/number.module:138
-#: modules/text/text.module:103
-msgid "This PHP code was set by an administrator and will override the allowed values list above."
-msgstr "Denna PHP-kod angavs av en administratör och kommer att åsidosätta det tillåtna värdet ovan."
-
-#: modules/number/number.module:178
-#: modules/text/text.module:132
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - Tillåtna värden"
-
-#: modules/number/number.module:235
-#: modules/text/text.module:156
-msgid "%name: illegal value."
-msgstr "%name: otillåtet värde."
-
-#: modules/number/number.module:353
-#: modules/text/text.module:256
-msgid "Text field"
-msgstr "Textfält"
-
-#: modules/text/text.module:54;201
-#: modules/userreference/userreference.module:226
-msgid "Plain text"
-msgstr "Ren text"
-
-#: modules/text/text.module:196
-#: modules/userreference/userreference.module:221
-msgid "Default"
-msgstr "Standard"
-
diff --git a/translations/help/de/add-existing-field.html b/translations/help/de/add-existing-field.html
deleted file mode 100644
index 0d5c117..0000000
--- a/translations/help/de/add-existing-field.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!-- $Id: add-existing-field.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Die Verwendung eines Feldes über mehrere Inhaltstypen hinweg kann praktisch
-sein, wenn ein Teil der Daten für mehrere Inhaltstypen relevant ist. Ein
-typischer Verwendungszweck ist ein ‚Telefonnummer‘-Feld, das sowohl in den
-Inhaltstypen ‚Restaurant‘ und ‚Hotel‘ verwendet wird, auch wenn Hotels und
-Restaurants unterschiedlich genug sind eine eigene Feldliste zu verdienen und
-damit auch ihren eigenen dedizierten Inhaltstypen.</p>
-
-<p>Sollte ein Feld zu mehr wie einem Inhaltstyp hinzugefügt worden sein, wird
-dieses als „gemeinsam“ bezeichnet und wie „mehrere Instanzen“ betrachtet.</p>
-
-<p>Unten auf der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen
-befindet sich folgendes:</p>
-
-<img src="trans_path:add-existing-field.png">
-
-<p>Damit eine neue Instanz eines vorhandenen Feldes zu einem Inhaltstypen
-hinzugefügt werden kann, muss die folgende Information bereitgestellt
-werden:</p>
-<dl>
- <dt><strong>Beschriftung:</strong></dt>
- <dd>
- Ein Name für das Feld. Diese wird in Eingabeformularen und bei der
- Anzeige von Inhalten verwendet.<br/>
- Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und
- nicht-europäische Zeichen.
- </dd>
-
- <dt><strong>Feld:</strong></dt>
- <dd>
- Das gemeinsame Feld.<br/>
- Ein Feld kann nicht mehr als einmal in jedem Inhaltstypen erscheinen.
- Deshalb werden nur Felder, die im aktuellen Inhaltstyp nicht vorhanden
- sind als „gemeinsam nutzbar“ vorgeschlagen. Sollte keins vorhanden sein,
- erscheint die <strong>Vorhandes Feld hinzufügen</strong>-Option auf der
- <strong>Felder verwalten</strong>-Seite dieses Inhaltstypen nicht.<br/>
- Die Auswahl eines Feldes bestückt automatisch die
- <strong>Beschriftung</strong> und <strong>Steuerelement</strong>-Werte mit
- denen der bisherigen Feldinstanz, ermöglicht aber eine Änderung vor dem
- Speichern des Formulars.
- </dd>
-
- <dt><strong>Steuerelement:</strong></dt>
- <dd>
- Das Formularelement das auf Inhaltsformularen zur Eingabe von Daten in
- dieses Feld verwendet wird: Texteingabe, Auswahlliste, etc...<br/>
- Jeder Feldtyp hat seine eigene Liste von verfügbaren Steuerelementen. Bei
- der Auswahl eines gemeinsamen Feldes, wird die Liste der auszuwählenden
- Steuerelemente automatisch aktualisiert.
- </dd>
-</dl>
\ No newline at end of file
diff --git a/translations/help/de/add-existing-field.png b/translations/help/de/add-existing-field.png
deleted file mode 100644
index 3c5548e..0000000
Binary files a/translations/help/de/add-existing-field.png and /dev/null differ
diff --git a/translations/help/de/add-new-field.html b/translations/help/de/add-new-field.html
deleted file mode 100644
index 9ad3907..0000000
--- a/translations/help/de/add-new-field.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!-- $Id: add-new-field.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Am Ende der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen
-befindet sich folgendes:</p>
-
-<img src="trans_path:add-new-field.png">
-
-<p>Um ein neues Feld zu einem Inhaltstypen hinzuzufügen, müssen die folgenden
-Informationen angegeben werden:</p>
-<dl>
- <dt>Beschriftung:</dt>
- <dd>
- Ein Name für das Feld. Diese wird in Eingabeformularen und bei der
- Anzeige von Inhalten verwendet.<br/>
- Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und
- nicht-europäische Zeichen.
- </dd>
-
- <dt>Feldname:</dt>
- <dd>
- Ein maschinenlesbarer Name für das Feld. Dieser wird intern zur
- Identifizierung des Feldes und Speicherung in der Datenbank verwendet.
- Bei benutzerdefinierten Theming ist dies der zu verwendende Identifikator,
- um sich auf dieses Feld zu beziehen.<br/>
- <strong>Wichtig:</strong> Der Feldname kann nicht mehr geändert werden
- sobald das Feld erstellt wurde.<br/>
- Zulässige Zeichen: a-z (nicht-akzentuiert), 0-9 und der Unterstrich (_).<br/>
- Die Länge des Feldnamen darf 32 Zeichen nicht überschreiten (inklusive dem
- ‚field_‘-Präfix, der automatisch hinzugefügt wird - d.h. 26 verbleibende
- Zeichen.
- </dd>
-
- <dt>Feldtyp:</dt>
- <dd>
- Der Datentyp der in diesem Feld gespeichert werden soll.<br/>
- <strong>Wichtig:</strong> Der Feldtyp kann nicht mehr geändert werden
- sobald das Feld erstellt wurde.<br/>
- Die verfügbaren Feldtypen hängen von den aktivierten Modulen auf der
- Website ab. CCK verfügt über 6 Basis-Feldtypen:
- <ul>
- <li>Text</li>
- <li>Ganzzahl</li>
- <li>Fließkommazahl</li>
- <li>Dezimalzahl</li>
- <li>Beitragsreferenz</li>
- <li>Benutzerreferenz</li>
- </ul>
- Weitere Module können zur Verwendung anderer Feldtypen wie Datum, Dateien,
- Bilder... heruntergeladen werden. Nähere Information befindet sich auf der
- <a href="http://www.drupal.org/project/cck" target="_blank">CCK-Projekt-Seite</a>
- und in der <a href="http://drupal.org/project/Modules/category/88" target="_blank">vollständigen Liste der mit CCK verwandten Module</a>.
- </dd>
-
- <dt>Steuerelement:</dt>
- <dd>
- Das Formularelement das auf Inhaltsformularen zur Eingabe von Daten in
- dieses Feld verwendet wird: Texteingabe, Auswahlliste, etc...<br/>
- Jeder Feldtyp hat seine eigene Liste von verfügbaren Steuerelementen. Bei
- der Auswahl eines Feldtyps, wird die Liste der auszuwählenden Steuerelemente
- automatisch aktualisiert.
- </dd>
-</dl>
\ No newline at end of file
diff --git a/translations/help/de/add-new-field.png b/translations/help/de/add-new-field.png
deleted file mode 100644
index 82d1fa5..0000000
Binary files a/translations/help/de/add-new-field.png and /dev/null differ
diff --git a/translations/help/de/add-new-group.html b/translations/help/de/add-new-group.html
deleted file mode 100644
index 015284b..0000000
--- a/translations/help/de/add-new-group.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!-- $Id: add-new-group.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Feldgruppen werden verwendet, um mehrere logisch zusammenhängende Felder
-visuell zusammenzufassen. Dies können beispielsweise mehrere Textfelder sein,
-die unterschiedliche Teile einer ‚Adresse‘ zusammenfassen. Auf
-Eingabeformularen und bei der Inhaltsanzeige, werden die entsprechenden Felder
-von einem HTML-Fieldset umschlossen.</p>
-
-<img style="vertical-align:top" src="trans_path:group-node-edit-form.png">
-<img style="vertical-align:top" src="trans_path:group-node-display.png">
-
-<p>Am Ende der <strong>Felder verwalten</strong>-Seite eines Inhaltstypen
-befindet sich folgendes:</p>
-
-<img src="trans_path:add-new-group.png">
-
-<p>Um eine neue Gruppe zu einem Inhaltstypen hinzuzufügen, müssen die folgenden
-Informationen angegeben werden:</p>
-<dl>
- <dt><strong>Beschriftung:</strong></dt>
- <dd>
- Ein Name für die Gruppe. Diese wird in Eingabeformularen und bei der
- Anzeige von Inhalten verwendet.<br/>
- Alle Zeichen sind zulässig, inklusive Leerzeichen, akzentuierte und
- nicht-europäische Zeichen.
- </dd>
-
- <dt>Gruppenname:</dt>
- <dd>
- Ein maschinenlesbarer Name für die Gruppe. Dieser wird intern zur
- Identifizierung der Gruppe verwendet. Bei benutzerdefinierten Theming
- ist dies der zu verwendende Identifikator, um sich auf diese Gruppe zu
- beziehen.<br/>
- <strong>Wichtig:</strong> Der Gruppenname kann nicht mehr geändert werden
- sobald die Gruppe erstellt wurde.<br/>
- Zulässige Zeichen: a-z (nicht-akzentuiert), 0-9 und der Unterstrich (_).<br/>
- Die Länge des Gruppennamen darf 32 Zeichen nicht überschreiten (inklusive dem
- ‚group_‘-Präfix, der automatisch hinzugefügt wird - d.h. 26 verbleibende
- Zeichen.
- </dd>
-</dl>
-
-<p>Sobald eine Gruppe erstellt wurde, können die davon umschlossenen Felder durch die
-<a href="topic:content/rearrange">Umordnung der Felder und Gruppen</a>
-festgelegt werden.</p>
\ No newline at end of file
diff --git a/translations/help/de/add-new-group.png b/translations/help/de/add-new-group.png
deleted file mode 100644
index 99ad282..0000000
Binary files a/translations/help/de/add-new-group.png and /dev/null differ
diff --git a/translations/help/de/add-new.png b/translations/help/de/add-new.png
deleted file mode 100644
index fbacfe2..0000000
Binary files a/translations/help/de/add-new.png and /dev/null differ
diff --git a/translations/help/de/add.html b/translations/help/de/add.html
deleted file mode 100644
index c0aacc2..0000000
--- a/translations/help/de/add.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- $Id: add.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Mit den Formularelementen am Ende der <strong>Felder verwalten</strong>-
-Seite können Felder und Gruppen zu Inhaltstypen hinzugefügt werden.</p>
-
-<img src="trans_path:add-new.png">
-
-<p style="font-size:smaller">(Die <strong>Vorhandenes Feld hinzufügen</strong>-
-Zeile wird nur angezeigt, wenn Felder in anderen Inhaltstypen zur Verfügung
-stehen. Die <strong>Neue Gruppe hinzufügen</strong> Zeile wird nur angezeigt,
-wenn das Feldgruppen-Modul aktiviert ist.)</p>
-<p>Die Felder und Gruppen werden durch Anklicken des <strong>Speichern</strong>-
-Buttons am Ende der Seite erstellt. Auf den nachfolgenden Seiten wird das
-Formular mit den Einstellungen jedes hinzugefügten Feldes angezeigt.</p>
-
-<p>Weitere Details zu den erforderlichen Informationen befinden sich auf den
-folgenden Seiten:</p>
\ No newline at end of file
diff --git a/translations/help/de/content.help.ini b/translations/help/de/content.help.ini
deleted file mode 100644
index 7263fac..0000000
--- a/translations/help/de/content.help.ini
+++ /dev/null
@@ -1,56 +0,0 @@
-; $Id: content.help.ini,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $
-
-[advanced help settings]
-name = CCK
-index name = "CCK (Content Construction Kit)"
-
-[manage-fields]
-title = ‚Felder verwalten‘-Reiter
-
-[add]
-title = Felder und Gruppen hinzufügen
-parent = manage-fields
-weight = 1
-
-[add-new-field]
-title = Neues Feld hinzufügen
-parent = add
-weight = 1
-
-[add-existing-field]
-title = Vorhandenes Feld hinzufügen: Ein Feld über Inhaltstypen hinweg gemeinsam nutzen
-parent = add
-weight = 2
-
-[add-new-group]
-title = Neue Gruppe hinzufügen
-parent = add
-weight = 3
-
-[rearrange]
-title = Felder und Gruppen neu anordnen
-parent = manage-fields
-weight = 2
-
-[remove]
-title = Feld aus einem Inhaltstyp entfernen
-parent = manage-fields
-weight = 3
-
-[theme]
-title = Theming von CCK-Daten in Beiträgen
-
-[theme-node-templates]
-title = Beitragsvorlagen
-parent = theme
-weight = 1
-
-[theme-field-templates]
-title = Feldvorlagen
-parent = theme
-weight = 2
-
-[theme-formatters]
-title = Theme-Funktionen für Formatierer
-parent = theme
-weight = 3
diff --git a/translations/help/de/drag-groups.png b/translations/help/de/drag-groups.png
deleted file mode 100644
index c1ba440..0000000
Binary files a/translations/help/de/drag-groups.png and /dev/null differ
diff --git a/translations/help/de/drag-new.png b/translations/help/de/drag-new.png
deleted file mode 100644
index 42e8b61..0000000
Binary files a/translations/help/de/drag-new.png and /dev/null differ
diff --git a/translations/help/de/group-node-display.png b/translations/help/de/group-node-display.png
deleted file mode 100644
index df4eb86..0000000
Binary files a/translations/help/de/group-node-display.png and /dev/null differ
diff --git a/translations/help/de/group-node-edit-form.png b/translations/help/de/group-node-edit-form.png
deleted file mode 100644
index 0cdd2f8..0000000
Binary files a/translations/help/de/group-node-edit-form.png and /dev/null differ
diff --git a/translations/help/de/manage-fields.html b/translations/help/de/manage-fields.html
deleted file mode 100644
index 6501899..0000000
--- a/translations/help/de/manage-fields.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- $Id: manage-fields.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Diese Seite ermöglicht die Verwaltung der CCK-Felder in dem Inhaltstyp:
-Felder und Gruppen hinzufügen, Neuanordnung der Felder, Zugriff auf ihre
-Konfigurationsseiten und das Entfernen aus dem Inhaltstyp.</p>
\ No newline at end of file
diff --git a/translations/help/de/rearrange.html b/translations/help/de/rearrange.html
deleted file mode 100644
index 56ca288..0000000
--- a/translations/help/de/rearrange.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- $Id: rearrange.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Um die Reihenfolge von einem Feld zu ändern, das Drag-and-Drop-Kreuz
-<img src="path:draggable.png"> in der Bezeichnungsspalte anfassen und das Feld
-an einen neuen Ort in der Liste ziehen. (Ein Drag-and-Drop-Kreuz wird
-angefasst, indem das Kreuz-Icon angeklickt und festgehalten wird.) Die
-Änderungen werden nicht gespeichert bis am Ende der Seite der
-<strong>Speichern</strong>-Button gedrückt wird.</p>
-
-<p>Die festgelegte Reihenfolge wird sowohl auf Eingabeformularen (beim
-Erstellen oder Bearbeiten eines Beitrages) als auch bei der Inhaltsanzeige
-(Anrisstext, Inhaltsseite, RSS-Einträge...) verwendet.</p>
-<p>Die Reihenfolge von nicht-CCK ‚Feldern‘ wie <strong>Titel</strong> oder
-<strong>Dateianhängen</strong> kann auch geändert werden. In Abhängigkeit
-des ‚Feldes‘ wird dies das Eingabeformular und/oder die Inhaltsanzeige (einige
-dieser ‚Felder‘ werden nicht in beiden Kontexten angezeigt) beeinflussen.</p>
-<p>Sollten Gruppen in dem Inhaltstyp vorhanden sein (erfordert das Feldgruppen-
-Modul), kann ein Feld in eine Gruppe verschoben werden, indem es unterhalb der
-Zeile dieser Gruppe gezogen wird und dann leicht nach rechts, bevor es
-losgelassen wird. Dabei ist zu beachten, dass auch Gruppen neu angeordnet
-aber derzeit nicht in andere Gruppen verschachtelt werden können.</p>
-
-<img src="trans_path:drag-groups.png">
-
-<p>Beim Hinzufügen eines Feldes oder einer Gruppe, können diese in der
-angezeigten Liste von Feldern und Gruppen schon vor dem
-<strong>Speichern</strong> an den gewünschten Ort im Inhaltstyp gezogen
-werden:</p>
-
-<img src="trans_path:drag-new.png">
\ No newline at end of file
diff --git a/translations/help/de/remove.html b/translations/help/de/remove.html
deleted file mode 100644
index f327029..0000000
--- a/translations/help/de/remove.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id: remove.html,v 1.1.2.2 2008/11/04 16:29:50 yched Exp $ -->
-<p>Sollte ein Feld aus einem Inhaltstyp entfernt werden, werden alle darin
-enthaltenen Daten <strong>permanent</strong> gelöscht. Für diese Aktion
-erscheint eine Rückfrage.</p>
-
-<p>Danach müssen möglicherweise die Ansichten, Pathauto-Einstellungen, etc.
-manuell aktualisiert werden.</p>
-
-<p>Hinweis: Bei gemeinsammer Nutzung des Feldes über mehrere Inhaltstypen
-hinweg, wird das Entfernen aus einem Inhaltstyp die Daten der anderen
-Inhaltstypen <strong>nicht</strong> beeinflussen.</p>
diff --git a/translations/help/de/theme-formatters.html b/translations/help/de/theme-formatters.html
deleted file mode 100644
index c4210e9..0000000
--- a/translations/help/de/theme-formatters.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!-- $Id: theme-formatters.html,v 1.1.2.1 2008/11/04 16:29:50 yched Exp $ -->
-<p>Formatierer werden verwendet, um die Rohdaten eines einzelnen Feldwertes in
-HTML umzuwandeln. Der <strong>Felder anzeigen</strong>-Reiter erlaubt die
-Auswahl eines gewünschten Formatierers für jedes der Felder.</p>
-
-<p>In CCK 2.0 für Drupal 6 durchlaufen alle Formatierer den Theme-Layer.
-Deshalb ist das Übersteuern eines Formatierer-Themes eine weitere Möglichkeit
-zur Anpassung der Anzeige von Werten (wobei die Änderung der
-<span class="code">content-field.tpl.php</span> die Möglichkeit bietet das
-HTML, dass die Werte „umschließt“ zu ändern).</p>
-
-<p>Die meisten Formatierer sind als Theme-Funktion implementiert aber einige
-verwenden stattdessen auch Templates. Auf die eine oder andere Art können
-diese durch die Verwendung der entsprechenden Drupal 6 Theme-Übersteuerungsmethode
-übersteuert werden. Nähere Informationen gibt es auf der Handbuch-Seite zum
-<a href="http://drupal.org/theme-guide">Theme-Guide für Drupal 6</a> und etwas
-spezieller im Bereich zum <a href="http://drupal.org/node/173880">Überschreiben von themebarer Ausgabe</a>.</p>
diff --git a/translations/help/de/theme.html b/translations/help/de/theme.html
deleted file mode 100644
index a4ec2a2..0000000
--- a/translations/help/de/theme.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id: theme.html,v 1.1.2.1 2008/11/04 16:29:50 yched Exp $ -->
-<p><strong>Hinweis:</strong> Diese Anleitungen gehen davon aus, dass eine
-gewisse Vertrautheit mit den Basis-Konzepten des Drupal6-Theming vorhanden ist.
-Nähere Informationen gibt es auf der Handbuch-Seite zum
-<a href="http://drupal.org/theme-guide">Theme-Guide für Drupal 6</a> und etwas spezieller im
-Bereich zum <a href="http://drupal.org/node/173880">Überschreiben von themebarer Ausgabe</a>.</p>
-
-<p>Es gibt 3 Ebenen auf denen die Daten in CCK-Feldern für die Anzeige in
-Beiträgen angepasst werden können:</p>
-
-<img src="path:theme.png" style="border:1px solid #AAA">
diff --git a/translations/hu.po b/translations/hu.po
deleted file mode 100644
index 09ef51a..0000000
--- a/translations/hu.po
+++ /dev/null
@@ -1,1541 +0,0 @@
-# Hungarian translation of Content Construction Kit (CCK) (6.x-2.6)
-# Copyright (c) 2009 by the Hungarian translation team
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Content Construction Kit (CCK) (6.x-2.6)\n"
-"POT-Creation-Date: 2009-11-19 19:52+0000\n"
-"PO-Revision-Date: 2009-11-19 18:53+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 "CCK"
-msgstr "CCK"
-msgid "delete"
-msgstr "törlés"
-msgid "Prefix"
-msgstr "Előtag"
-msgid "Suffix"
-msgstr "Toldalék"
-msgid "Operations"
-msgstr "Műveletek"
-msgid "Content"
-msgstr "Tartalom"
-msgid "content"
-msgstr "tartalom"
-msgid "Type"
-msgstr "Típus"
-msgid "Cancel"
-msgstr "Mégsem"
-msgid "Remove"
-msgstr "Eltávolítás"
-msgid "Description"
-msgstr "Leírás"
-msgid "Language"
-msgstr "Nyelv"
-msgid "Block title"
-msgstr "Blokk címe"
-msgid "Taxonomy"
-msgstr "Taxonómia"
-msgid "Content types"
-msgstr "Tartalomtípusok"
-msgid "Search"
-msgstr "Keresés"
-msgid "None"
-msgstr "Nincs"
-msgid "Display settings"
-msgstr "Megjelenítési beállítások"
-msgid "This action cannot be undone."
-msgstr "A művelet nem vonható vissza."
-msgid "Number"
-msgstr "Szám"
-msgid "- None -"
-msgstr "- Nincs -"
-msgid "Weight"
-msgstr "Súly"
-msgid "Help text"
-msgstr "Súgó szöveg"
-msgid "Types"
-msgstr "Típusok"
-msgid "Required"
-msgstr "Szükséges"
-msgid "none"
-msgstr "nincs"
-msgid "Name"
-msgstr "Név"
-msgid "edit"
-msgstr "szerkesztés"
-msgid "Import"
-msgstr "Import"
-msgid "Book"
-msgstr "Könyv"
-msgid "Export"
-msgstr "Export"
-msgid "Field"
-msgstr "Mező"
-msgid "Label"
-msgstr "Címke"
-msgid "Save"
-msgstr "Mentés"
-msgid "Default"
-msgstr "Alapértelmezés"
-msgid "Add"
-msgstr "Hozzáadás"
-msgid "Format"
-msgstr "Formátum"
-msgid "Teaser"
-msgstr "Bevezető"
-msgid "Text"
-msgstr "Szöveg"
-msgid "Content type"
-msgstr "Tartalomtípus"
-msgid "Continue"
-msgstr "Folytatás"
-msgid "Configure"
-msgstr "Beállítás"
-msgid "Node"
-msgstr "Tartalom"
-msgid "Include"
-msgstr "Befoglalás"
-msgid "Exclude"
-msgstr "Kizárás"
-msgid "All"
-msgstr "Minden"
-msgid "View arguments"
-msgstr "A nézet paraméterei"
-msgid "RSS"
-msgstr "RSS"
-msgid "Inline"
-msgstr "Beágyazó"
-msgid "Delta"
-msgstr "Delta"
-msgid "Custom"
-msgstr "Egyedi"
-msgid "Poll choices"
-msgstr "Poll válaszok"
-msgid "Content field"
-msgstr "Tartalom mező"
-msgid "Field name"
-msgstr "Mező neve"
-msgid "Field type"
-msgstr "Mező típusa"
-msgid "Global settings"
-msgstr "Általános beállítások"
-msgid "Fields"
-msgstr "Mezők"
-msgid "Widget type"
-msgstr "Felületi elem típusa"
-msgid "Contains"
-msgstr "Tartalmazza"
-msgid "N/A"
-msgstr "Nincs adat"
-msgid "This field is required."
-msgstr "Szükséges mező."
-msgid "Maximum"
-msgstr "Maximum"
-msgid "Scale"
-msgstr "Felbontás"
-msgid "Plain text"
-msgstr "Egyszerű szöveg"
-msgid "Unlimited"
-msgstr "Korlátlan"
-msgid "Code"
-msgstr "Kód"
-msgid "Basic"
-msgstr "Alap"
-msgid "Filtered text (user selects input format)"
-msgstr "Formázott szöveg (a felhasználó választja ki a beviteli formát)"
-msgid "Text processing"
-msgstr "Szövegfeldolgozás"
-msgid "Maximum length"
-msgstr "Maximális hossz"
-msgid ""
-"The maximum length of the field in characters. Leave blank for an "
-"unlimited size."
-msgstr ""
-"A mező karakterben mért maximális hossza. Üresen hagyva nincs "
-"korlátozva."
-msgid "Rows"
-msgstr "Sorok"
-msgid "Existing Views"
-msgstr "Létező nézetek"
-msgid "Default Views"
-msgstr "Alapértelmezett nézetek"
-msgid "Empty text"
-msgstr "Üres szöveg"
-msgid "Order"
-msgstr "Sorrend"
-msgid "Integer"
-msgstr "Egész szám"
-msgid "Edit group"
-msgstr "Csoport szerkesztése"
-msgid "Size of textfield"
-msgstr "A szövegmező mérete"
-msgid "File attachments"
-msgstr "Csatolmányok"
-msgid "Token"
-msgstr "Vezérjel"
-msgid "Allowed values list"
-msgstr "Megengedett értékek"
-msgid "Select list"
-msgstr "Legördülő lista"
-msgid "Text field"
-msgstr "Szövegmező"
-msgid "PHP code"
-msgstr "PHP kód"
-msgid "Display fields"
-msgstr "Mezők megjelenítése"
-msgid "Poll settings"
-msgstr "Szavazás beállításai"
-msgid "Style"
-msgstr "Stílus"
-msgid "Your settings have been saved."
-msgstr "A beállítások el lettek mentve."
-msgid "Reversed"
-msgstr "Fordított"
-msgid "%type settings"
-msgstr "%type beállításai"
-msgid "Menu settings"
-msgstr "Menübeállítások"
-msgid "edit "
-msgstr "szerkesztés "
-msgid "<Hidden>"
-msgstr "< Rejtett >"
-msgid "Comment settings"
-msgstr "Hozzászólás-beküldési beállítások"
-msgid "Related content"
-msgstr "Kapcsolódó tartalom"
-msgid "Processing"
-msgstr "Feldolgozás"
-msgid "Default value"
-msgstr "Alapértelmezés szerinti érték"
-msgid "No content types available."
-msgstr "Nincs elérhető tartalomtípus."
-msgid "Simple"
-msgstr "Egyszerű"
-msgid "Above"
-msgstr "Felette"
-msgid "Number of values"
-msgstr "Értékek száma"
-msgid ""
-"Warning! Changing this setting after data has been created could "
-"result in the loss of data!"
-msgstr ""
-"Figyelem! Már létrehozott adatok esetén ezeknek a beállításoknak "
-"a megváltoztatása az adatok elvesztésével jár!"
-msgid ""
-"The content module, a required component of the Content Construction "
-"Kit (CCK), allows administrators to associate custom fields with "
-"content types. In Drupal, content types are used to define the "
-"characteristics of a post, including the title and description of the "
-"fields displayed on its add and edit pages. Using the content module "
-"(and the other helper modules included in CCK), custom fields beyond "
-"the default \"Title\" and \"Body\" may be added. CCK features are "
-"accessible through tabs on the <a href=\"@content-types\">content "
-"types administration page</a>. (See the <a href=\"@node-help\">node "
-"module help page</a> for more information about content types.)"
-msgstr ""
-"A content modul, amely egy szükséges eleme a Content Construction "
-"Kitnek (CCK), lehetővé teszi az adminisztrátorok számára, hogy "
-"egyedi mezőket rendeljenek a tartalomtípusokhoz. A Drupalban a "
-"tartalomtípus határozza meg az oldalak jellemzőit, beleértve a "
-"megjelenített mezők címét és leírását a feltöltő és "
-"szerkesztő oldalakon. A content modult (és az egyéb, CCK-ba "
-"ágyazott segítő modulokat) használva egyedi mezőket lehet adni az "
-"alapértelmezett „Cím” és „Törzs” mezők mellé. A CCK "
-"lehetőségei a <a href=\"@content-types\">tartalomtípusok "
-"adminisztrációja oldalon</a> lévő füleken elérhetők el. "
-"(További információk a tartalomtípusokról a <a "
-"href=\"@node-help\">node modul súgó oldalán</a>.)"
-msgid ""
-"When adding a custom field to a content type, you determine its type "
-"(whether it will contain text, numbers, or references to other "
-"objects) and how it will be displayed (either as a text field or area, "
-"a select box, checkbox, radio button, or autocompleting field). A "
-"field may have multiple values (i.e., a \"person\" may have multiple "
-"e-mail addresses) or a single value (i.e., an \"employee\" has a "
-"single employee identification number). As you add and edit fields, "
-"CCK automatically adjusts the structure of the database as necessary. "
-"CCK also provides a number of other features, including intelligent "
-"caching for your custom data, an import and export facility for "
-"content type definitions, and integration with other contributed "
-"modules."
-msgstr ""
-"Egy egyedi mező tartalomtípushoz adásakor meghatározható annak "
-"típusa (attól függően, hogy mit fog tartalmazni, szöveget, "
-"számot, vagy hivatkozást egyéb objektumokhoz), illetve hogyan fog "
-"megjelenni (szöveges mező vagy terület, legördülő menü, "
-"jelölő vagy kiválasztó négyzet, avagy automatikusan kiegészülő "
-"mező). Egy mezőnek lehet több értéke is (például egy "
-"„személy”-nek lehet több email címe), illetve csak egyetlen "
-"értéke (például egy „dolgozó”-nak csak egy dolgozói "
-"azonosítója van). A mező hozzáadásakor és szerkesztésekor a CCK "
-"automatikusan elkészíti az adat tárolásához szükséges "
-"szerkezetet az adatbázisban. A CCK számos egyéb lehetőséget "
-"biztosít, például az egyedi adatok intelligens gyorstárazását, a "
-"tartalomtípus meghatározások importálását és exportálását, "
-"valamint együttműködést egyéb közösségi modulokkal."
-msgid ""
-"Custom field types are provided by a set of optional modules included "
-"with CCK (each module provides a different type). The <a "
-"href=\"@modules\">modules page</a> allows you to enable or disable CCK "
-"components. A default installation of CCK includes:"
-msgstr ""
-"Az egyedi mező típusokat a CCK-ba ágyazott egyéb, kiegészítő "
-"modulok biztosítják (minden modul más típust tesz elérhetővé). "
-"A <a href=\"@modules\">modulok oldal</a> segítségével lehet be-, "
-"illetve kikapcsolni a CCK összetevőit. Egy alapértelmezett "
-"telepítés esetén a CCK az alábbiakat tartalmazza:"
-msgid ""
-"<em>number</em>, which adds numeric field types, in integer, decimal "
-"or floating point form. You may define a set of allowed inputs, or "
-"specify an allowable range of values. A variety of common formats for "
-"displaying numeric data are available."
-msgstr ""
-"<em>szám</em>, amely egy numerikus mezőtípust ad, egész, "
-"decimális, vagy lebegőpontos formában. Beállítható a megengedett "
-"értékek csoportja, vagy megadható az elfogadott érték "
-"tartományok köre. Elérhető számos közös formátum a számok "
-"megjelenítéséhez."
-msgid ""
-"<em>text</em>, which adds text field types. A text field may contain "
-"plain text only, or optionally, may use Drupal's input format filters "
-"to securely manage rich text input. Text input fields may be either a "
-"single line (text field), multiple lines (text area), or for greater "
-"input control, a select box, checkbox, or radio buttons. If desired, "
-"CCK can validate the input to a set of allowed values."
-msgstr ""
-"<em>szöveg</em>, amely szöveges mezőtípus ad. A szöveges mező "
-"tartalmazhat csak sima szöveget, vagy beállíthatóan lehet "
-"használni a Drupal bemeneti formátum szűrőit is a szövegek "
-"biztonságos kezeléséhez. A szöveges mezők lehetnek egy vagy több "
-"sorosak, illetve nagyobb bemeneti ellenőrzéshez legördülő menü, "
-"jelölő vagy kiválasztó négyzet. Ha szükséges, a CCK tudja "
-"ellenőrizni a bevitelt a megengedett értékek alapján."
-msgid ""
-"<em>nodereference</em>, which creates custom references between Drupal "
-"nodes. By adding a <em>nodereference</em> field and two different "
-"content types, for instance, you can easily create complex "
-"parent/child relationships between data (multiple \"employee\" nodes "
-"may contain a <em>nodereference</em> field linking to an \"employer\" "
-"node)."
-msgstr ""
-"<em>tartalomlhivatkozás</em>, amely egyedi hivatkozásokat hoz létre "
-"a Drupal oldalak között. Két különböző tartalomtípus között "
-"egy <em>tartalomhivatkozás</em> mező hozzáadásával könnyedén "
-"létrehozható összetett szülő-gyermek kapcsolat az adatok között "
-"(több „dolgozó” oldal tartalmaz egy <em>tartalomhivatkozás</em> "
-"mezőt, hivatkozva a „munkaadó” oldalra."
-msgid ""
-"<em>userreference</em>, which creates custom references to your sites' "
-"user accounts. By adding a <em>userreference</em> field, you can "
-"create complex relationships between your site's users and posts. To "
-"track user involvement in a post beyond Drupal's standard <em>Authored "
-"by</em> field, for instance, add a <em>userreference</em> field named "
-"\"Edited by\" to a content type to store a link to an editor's user "
-"account page."
-msgstr ""
-"<em>felhasználó hivatkozás</em>, amely egyedi hivatkozásokat hoz "
-"létre a honlap felhasználóihoz. Egy <em>felhasználó "
-"hivatkozás</em> mező hozzáadásával létrehozható összetett "
-"szülő-gyermek kapcsolat a felhasználók és az oldalak között. A "
-"tartalomtípushoz egy „Szerkesztette” <em>felhasználó "
-"hivatkozás</em> mezőt adva egy hivatkozás keletkezik a szerkesztő "
-"felhasználó profiljához, így követni lehet a felhasználó "
-"részvételét a tartalomban a Drupal alapértelmezett <em>Írta</em> "
-"mezőjén kívül is."
-msgid ""
-"<em>fieldgroup</em>, which creates collapsible fieldsets to hold a "
-"group of related fields. A fieldset may either be open or closed by "
-"default. The order of your fieldsets, and the order of fields within a "
-"fieldset, is managed via a drag-and-drop interface provided by content "
-"module."
-msgstr ""
-"<em>mezőcsoport</em>, amely egy összecsukható mezőkészletet hoz "
-"létre, és egy csoportba foglalja az összetartozó mezőket. A "
-"mezőkészlet alapértelmezése lehet nyitott, vagy zárt is. A "
-"mezőcsoportok sorrendje, valamint a csoportokon belüli mezők "
-"sorrendje fogd-és-vidd módszerrel állítható be a content "
-"modulban."
-msgid ""
-"For more information, see the online handbook entry for <a "
-"href=\"@handbook-cck\">CCK</a> or the <a href=\"@project-cck\">CCK "
-"project page</a>."
-msgstr ""
-"További információ a beállítási és testreszabási kézikönyv "
-"<a href=\"@handbook-cck\">CCK</a> oldalán, vagy a <a "
-"href=\"@project-cck\">CCK projekt oldalán</a> érhető el."
-msgid ""
-"Configure how this content type's fields and field labels should be "
-"displayed when it's viewed in teaser and full-page mode."
-msgstr ""
-"A tartalomtípus mezőinek és címkéinek megjelenítési "
-"beállítása, amikor megtekintik előnézeti és teljes oldal "
-"módban."
-msgid ""
-"Configure how this content type's fields should be displayed when it's "
-"rendered in the following contexts."
-msgstr ""
-"A tartalomtípus mezőinek megjelenítési beállítása, amikor meg "
-"kell jelenniük a következő környezetben."
-msgid "!title: !required"
-msgstr "!title: !required"
-msgid "Add another item"
-msgstr "Újabb elem hozzáadása"
-msgid "Full node"
-msgstr "Teljes tartalom"
-msgid "Search Index"
-msgstr "Keresés index"
-msgid "Search Result"
-msgstr "Keresés eredménye"
-msgid "Updating field type %type with module %module."
-msgstr "%type mezőtípus módosítása %module modulnál."
-msgid "Updating widget type %type with module %module."
-msgstr "%type felületi elemtípus módosítása %module modulnál."
-msgid "Manage fields"
-msgstr "Mezők kezelése"
-msgid "Remove field"
-msgstr "Mező törlése"
-msgid "Allows administrators to define new content types."
-msgstr ""
-"Lehetőséget ad az adminisztrátorok számára új tartalomtípusok "
-"meghatározására."
-msgid ""
-"Advanced usage only: PHP code that returns a keyed array of allowed "
-"values. Should not include &lt;?php ?&gt; delimiters. If this field is "
-"filled out, the array returned by this code will override the allowed "
-"values list above."
-msgstr ""
-"Csak haladóknak: PHP kód, ami visszaadja a megengedett értékek "
-"tömbjét. Nem szükséges &lt;?php ?&gt; elemek közé zárni. Ha ez "
-"a mező ki van töltve, a kód által visszaadott tömb felülír "
-"minden fentebb megadott értéket."
-msgid "Trimmed"
-msgstr "Levágva"
-msgid "Used in"
-msgstr "Ez használja"
-msgid "No fields have been defined for any content type yet."
-msgstr "Egyetlen tartalomtípushoz sincs még mező hozzárendelve."
-msgid "no styling"
-msgstr "formázás nélkül"
-msgid "simple"
-msgstr "egyszerű"
-msgid "fieldset"
-msgstr "mezőcsoport"
-msgid "fieldset - collapsible"
-msgstr "mezőcsoport - összecsukható"
-msgid "fieldset - collapsed"
-msgstr "mezőcsoport - összecsukva"
-msgid "Added field %label."
-msgstr "%label mező hozzáadva."
-msgid "There was a problem adding field %label."
-msgstr "A mező hozzáadásánál hiba történt: %label."
-msgid "There was a problem creating field %label."
-msgstr "Hiba történt a mező létrehozásakor: %label."
-msgid "Are you sure you want to remove the field %field?"
-msgstr "„%field” mező biztosan eltávolítható?"
-msgid ""
-"If you have any content left in this field, it will be lost. This "
-"action cannot be undone."
-msgstr ""
-"Ha bármilyen adatot tartalmaz ez a mező, az el fog veszni. Ezt a "
-"műveletet nem lehet visszavonni."
-msgid "Removed field %field from %type."
-msgstr "A mező törölve lett: %field (%type tartalomtípusból)."
-msgid "There was a problem deleting %field from %type."
-msgstr ""
-"Hiba történt a mező (%label) %type tartalomtípusból való "
-"törlése közben."
-msgid ""
-"These settings apply only to the %field field as it appears in the "
-"%type content type."
-msgstr ""
-"Ezek a mezőn (%field) végzett beállítások csak ebben a "
-"tartalomtípusban jelennek meg: %type."
-msgid ""
-"These settings apply to the %field field in every content type in "
-"which it appears."
-msgstr ""
-"Ezek a mezőn (%field) végzett beállítások minden olyan "
-"tartalomtípusban megjelennek, amelyben a mező megjelenik."
-msgid "Save field settings"
-msgstr "Mező beállításainak mentése"
-msgid ""
-"The default value PHP code returned an incorrect value.<br/>Expected "
-"format: <pre>!sample</pre> Returned value: @value"
-msgstr ""
-"Az alapértelmezett értéket adó PHP kód érvénytelen értéket ad "
-"vissza.<br />Elvárt formátum: <pre>!sample</pre> Visszaadott "
-"érték: @value"
-msgid "The default value is invalid."
-msgstr "Az alapértelmezett érték érvénytelen"
-msgid "Saved field %label."
-msgstr "%label mező el lett mentve."
-msgid "The update has encountered an error."
-msgstr "A frissítés során hiba történt."
-msgid "The database has been altered and data has been migrated or deleted."
-msgstr ""
-"Az adatbázis megváltozott és az adatok átemelve vagy törölve "
-"lettek."
-msgid "An error occurred and database alteration did not complete."
-msgstr ""
-"Hiba történt és az adatbázis megváltoztatása nem fejeződött "
-"be."
-msgid "Processing %title"
-msgstr "%title feldolgozása"
-msgid "1 item successfully processed:"
-msgid_plural "@count items successfully processed:"
-msgstr[0] "1 elem sikeresen fel lett dolgozva:"
-msgstr[1] "@count elem sikeresen fel lett dolgozva:"
-msgid ""
-"Content fields table %old_name has been renamed to %new_name and field "
-"instances have been updated."
-msgstr ""
-"%old_name új neve %new_name a tartalom mezők táblában, és a mező "
-"előfordulási helyei frissítve lettek."
-msgid "The content fields table %name has been deleted."
-msgstr "A tartalom mezők %name táblája törölve lett."
-msgid "Referenced node ID"
-msgstr "Hivatkozott tartalom azonosítója"
-msgid "Referenced node title"
-msgstr "Hivatkozott tartalom cím"
-msgid "Raw number value"
-msgstr "Nyers szám érték"
-msgid "Formatted number value"
-msgstr "Formázott szám"
-msgid "Raw, unfiltered text"
-msgstr "Nyers, formázatlan szöveg"
-msgid "Formatted and filtered text"
-msgstr "Formázott és szűrt szöveg"
-msgid "Referenced user ID"
-msgstr "A hivatkozott felhasználó azonosítója."
-msgid "Referenced user name"
-msgstr "A hivatkozott felhasználó neve."
-msgid "Formatted HTML link to referenced user"
-msgstr "HTML hivatkozás a hivatkozott felhasználóra"
-msgid "Group multiple values"
-msgstr "Többszörös értékek csoportosítása"
-msgid "Select the content type to export."
-msgstr "Tartalomtípus kiválasztása az exporthoz."
-msgid "Export data"
-msgstr "Adatok exportálása"
-msgid ""
-"Copy the export text and paste it into another content type using the "
-"import function."
-msgstr ""
-"Az export által előállított szöveget át lehet másolni egy "
-"másik tartalomtípusba az import művelet segítségével."
-msgid ""
-"This form will import field definitions exported from another content "
-"type or another database.<br/>Note that fields cannot be duplicated "
-"within the same content type, so imported fields will be added only if "
-"they do not already exist in the selected type."
-msgstr ""
-"Ez az űrlap importálja a mező meghatározásokat, melyek egy másik "
-"tartalomtípusból, vagy egy másik adatbázisból lettek "
-"exportálva.<br>Megjegyzés: Egy tartalomtípuson belül a mezőket "
-"nem lehet többszörözni, így csak azok a mezők lesznek hozzáadva, "
-"melyek még nem szerepelnek a kiválasztott tartalomtípusban."
-msgid "<Create>"
-msgstr "< Létrehozás >"
-msgid ""
-"Select the content type to import these fields into.<br/>Select "
-"&lt;Create&gt; to create a new content type to contain the fields."
-msgstr ""
-"Tartalomtípus kiválasztása a mezők importálásához.<br>A "
-"&lt;Létrehozás&gt; segítségével új tartalomtípus jön létre, "
-"mely tartalmazni fogja a mezőket."
-msgid "Import data"
-msgstr "Adatok importálása"
-msgid "Paste the text created by a content export into this field."
-msgstr ""
-"A tartalom exportnál keletkezett szöveget kell ebbe a mezőbe "
-"illeszteni."
-msgid "The import data is not valid import text."
-msgstr "Az adat nem értelmezhető import szövegként."
-msgid ""
-"The following modules must be enabled for this import to work: "
-"%modules."
-msgstr ""
-"A következő modulokat engedélyezni kell, hogy ez az import "
-"működjön: %modules."
-msgid "The content type %type already exists in this database."
-msgstr "%type tartalomtípus már szerepel az adatbázisban."
-msgid "Exiting. No import performed."
-msgstr "Kilépés. Az importálás nem lett végrehajtva."
-msgid ""
-"An error has occurred adding the content type %type.<br/>Please check "
-"the errors displayed for more details."
-msgstr ""
-"Hiba történt a következő tartalomtípus hozzáadása közben: "
-"%type.<br />További részletek a megjelenített hibaüzenetekben."
-msgid ""
-"The imported field %field_label (%field_name) was not added to %type "
-"because that field already exists in %type."
-msgstr ""
-"%field_label (%field_name) mező már létezik, ezért az import "
-"során nem lett hozzáadva a következő tartalomtípushoz: %type."
-msgid ""
-"The field %field_label (%field_name) was added to the content type "
-"%type."
-msgstr ""
-"%field_label (%field_name) mező hozzá lett adva a következő "
-"tartalomtípushoz: %type."
-msgid ""
-"An error occurred when exporting the 'display settings' data for the "
-"field %field_name.<br/>The db error is: '%db_err'."
-msgstr ""
-"%field_name mező „Megjelenítési beállítás” adatainak "
-"exportálása közben egy hiba keletkezett. <br />Az adatbázis hiba: "
-"„%db_err”."
-msgid "Content Copy"
-msgstr "Content Copy"
-msgid "Enables ability to import/export field definitions."
-msgstr ""
-"Lehetővé teszi a meződefiníciók importálását és "
-"exportálását."
-msgid "field_name"
-msgstr "field_name"
-msgid "view "
-msgstr "nézet "
-msgid ""
-"Please <a href=\"!url\">configure your field permissions</a> "
-"immediately. All fields are inaccessible by default."
-msgstr ""
-"Érdemes azonnal <a href=\"!url\">beállítani a mezők "
-"jogosultságait</a>. Alapértelmezés szerint egyik mező sem érhető "
-"el."
-msgid "Content Permissions"
-msgstr "Content Permissions"
-msgid "Set field-level permissions for CCK fields."
-msgstr "Mezőszintű jogosultságok beállítása."
-msgid "These settings apply to the group in the node editing form."
-msgstr ""
-"Ezek a beállítások lesznek értelmezve a csoportra a "
-"tartalomszerkesztő űrlapon."
-msgid "always open"
-msgstr "mindig nyitott"
-msgid "collapsible"
-msgstr "összecsukható"
-msgid "collapsed"
-msgstr "összecsukott"
-msgid "Instructions to present to the user on the editing form."
-msgstr "Az űrlap szerkesztésekor megjelenő útmutató."
-msgid "These settings apply to the group on node display."
-msgstr ""
-"Ezek a beállítások lesznek értelmezve a csoportra a tartalom "
-"megjelenítésekor."
-msgid "A description of the group."
-msgstr "A csoport leírása."
-msgid "Are you sure you want to remove the group %label?"
-msgstr "%label csoport biztosan törölhető?"
-msgid "The group %group_name has been removed."
-msgstr "%group_name csoport törölve lett."
-msgid "Fieldgroup"
-msgstr "Mezőcsoport"
-msgid "Node reference"
-msgstr "Tartalomra hivatkozás"
-msgid "Store the ID of a related node as an integer value."
-msgstr "A hivatkozott tartalom azonosítójának tárolása egész számként."
-msgid "Content types that can be referenced"
-msgstr "Tartalomtípusok, melyekre hivatkozni lehet"
-msgid "Advanced - Nodes that can be referenced (View)"
-msgstr "Haladó - tartalmak, melyekre hivatkozni lehet (Nézet)"
-msgid "Provide a comma separated list of arguments to pass to the view."
-msgstr ""
-"Vesszővel elválasztott lista, amely a nézetnek küldendő "
-"paramétereket tartalmazza."
-msgid "Title (link)"
-msgstr "Cím (hivatkozással)"
-msgid "Title (no link)"
-msgstr "Cím (hivatkozás nélkül)"
-msgid "Autocomplete text field"
-msgstr "Automatikusan kiegészülő szöveges mező"
-msgid "Nodereference autocomplete"
-msgstr "Automatikusan kiegészülő tartalomhivatkozás"
-msgid "Node Reference"
-msgstr "Node Reference"
-msgid "Defines a field type for referencing one node from another."
-msgstr ""
-"Olyan mezőtípust ad, amely a tartalomban egy másik tartalomra "
-"hivatkozik."
-msgid "Store a number in the database as an integer."
-msgstr "Egészként tárol számot az adatbázisban."
-msgid "Decimal"
-msgstr "Decimális"
-msgid "Store a number in the database in a fixed decimal format."
-msgstr "Rögzített tízes számot tárol az adatbázisban"
-msgid "Float"
-msgstr "Lebegőpontos"
-msgid "Store a number in the database in a floating point format."
-msgstr "Lebegőpontos számot tárol az adatbázisban."
-msgid "Minimum"
-msgstr "Minimum"
-msgid "Precision"
-msgstr "Pontosság"
-msgid ""
-"The total number of digits to store in the database, including those "
-"to the right of the decimal."
-msgstr ""
-"Az adatbázisban tárolt számjegyek teljes száma, beleértve a "
-"tizedesponttól jobbra lévő számjegyeket is."
-msgid "The number of digits to the right of the decimal."
-msgstr "A számjegyek száma."
-msgid "Decimal marker"
-msgstr "Decimális jelölő"
-msgid "The character users will input to mark the decimal point in forms."
-msgstr "Az űrlapokon a tizedespont jelölésére használt karakter."
-msgid ""
-"Define a string that should be prefixed to the value, like $ or €. "
-"Leave blank for none. Separate singular and plural values with a pipe "
-"(pound|pounds)."
-msgstr ""
-"Egy karaktersorozat, ami az érték előtagja lehet, mint például a "
-"$ vagy az €. Ha nincs előtag, akkor üresen kell hagyni. "
-"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
-"többes számú alakot (font|fontok)."
-msgid ""
-"Define a string that should suffixed to the value, like m², m/s², "
-"kb/s. Leave blank for none. Separate singular and plural values with a "
-"pipe (pound|pounds)."
-msgstr ""
-"Egy karaktersorozat, ami az érték toldaléka lehet, mint például "
-"m², m/s², kb/s. Ha nincs toldalék, akkor üresen kell hagyni. "
-"Függőleges vonallal lehet elválasztani egymástól az egyes és a "
-"többes számú alakot (font|fontok)."
-msgid "Allowed values"
-msgstr "Megengedett értékek"
-msgid "\"Minimum\" must be a number."
-msgstr "„Minimum”-nak számot kell megadni."
-msgid "\"Maximum\" must be a number."
-msgstr "„Maximum”-nak számot kell megadni."
-msgid "unformatted"
-msgstr "formázatlan"
-msgid "Defines numeric field types."
-msgstr "Numerikus mezőtípusokat határoz meg."
-msgid ""
-"For a 'single on/off checkbox' widget, define the 'off' value first, "
-"then the 'on' value in the <strong>Allowed values</strong> section. "
-"Note that the checkbox will be labeled with the label of the 'on' "
-"value."
-msgstr ""
-"Az „egyszerű jelölőnégyzet” felületi elemnél először a "
-"„ki”, majd a „be” állapothoz tartozó értéket kell megadni "
-"az <strong>Engedélyezett értékek</strong> részben. A "
-"jelölőnégyzet címkéje a „be” állapothoz tartozó érték "
-"címkéje lesz."
-msgid ""
-"The 'checkboxes/radio buttons' widget will display checkboxes if the "
-"multiple values option is selected for this field, otherwise radios "
-"will be displayed."
-msgstr ""
-"A „Jelölőnégyzetek/választógombok” felületi elem "
-"jelölőnégyzeteket jelenít meg, ha a mezőnek több értéke is "
-"lehet, különben választógombok jelennek meg."
-msgid "Check boxes/radio buttons"
-msgstr "Jelölőnégyzetek/választógombok"
-msgid "Single on/off checkbox"
-msgstr "Egyszerű be/ki jelölőnégyzet"
-msgid "Option Widgets"
-msgstr "Option Widgets"
-msgid ""
-"Defines selection, check box and radio button widgets for text and "
-"numeric fields."
-msgstr ""
-"A szöveg és szám mezőtípushoz legördülő lista, "
-"jelölőnégyzet és választógomb típusú felületi elemeket ad."
-msgid "Store text in the database."
-msgstr "Szöveget tárol az adatbázisban."
-msgid "Text area (multiple rows)"
-msgstr "Szövegdoboz (többsoros)"
-msgid "Defines simple text field types."
-msgstr "Egyszerű szöveges mező típusokat határoz meg."
-msgid "User reference"
-msgstr "Hivatkozás felhasználóra"
-msgid "Store the ID of a related user as an integer value."
-msgstr ""
-"A hivatkozott felhasználó azonosítójának tárolása egész "
-"számként."
-msgid "User roles that can be referenced"
-msgstr "Felhasználói csoport, amelyre hivatkozni lehet"
-msgid "User status that can be referenced"
-msgstr "Felhasználói állapot, amelyre hivatkozni lehet"
-msgid "Reverse link"
-msgstr "Visszamutató hivatkozás"
-msgid ""
-"If selected, a reverse link back to the referencing node will "
-"displayed on the referenced user record."
-msgstr ""
-"Ha be van jelölve, akkor a felhasználó adatlapján egy hivatkozás "
-"visszamutat a hivatkozó tartalomra."
-msgid "Userreference autocomplete"
-msgstr "Felhasználóhivatkozás automatikus kiegészítéssel"
-msgid "User Reference"
-msgstr "User Reference"
-msgid "Defines a field type for referencing a user from a node."
-msgstr "Olyan mezőtípus, amely a tartalomban egy felhasználóra hivatkozik."
-msgid "All users"
-msgstr "Minden felhasználó"
-msgid "Active users"
-msgstr "Aktív felhasználók"
-msgid "Print"
-msgstr "Nyomtatás"
-msgid "Locked"
-msgstr "Zárolt"
-msgid ""
-"Instructions to present to the user below this field on the editing "
-"form.<br />Allowed HTML tags: @tags"
-msgstr ""
-"A felhasználók számára az űrlap szerkesztéskor a mező alatt "
-"megjelenő útmutató.<br />Megengedett HTML elemek: @tags"
-msgid "&lt;none&gt;"
-msgstr "&lt;nincs&gt;"
-msgid "You're not allowed to input PHP code."
-msgstr "Nem engedélyezett a PHP kód bevitele."
-msgid ""
-"This PHP code was set by an administrator and will override any value "
-"specified above."
-msgstr ""
-"Ezt a PHP kódot egy adminisztrátor állította be, és ez felül fog "
-"írni minden fentebb megadott értéket."
-msgid "Use PHP input for field settings (dangerous - grant with care)"
-msgstr ""
-"PHP alapú bevitel használata a mező beállításaihoz. (Veszélyes "
-"&ndash; engedélyezésével körültekintően kell eljárni!)"
-msgid "A file has been pre-loaded for import."
-msgstr "A fájl előzetesen be lett töltve az importhoz."
-msgid "Content fieldgroup"
-msgstr "Tartalom mezőcsoport"
-msgid ""
-"Text to display if group has no data. Note that title will not display "
-"unless overridden."
-msgstr ""
-"Megjelenítendő szöveg, ha a csoportnak nincs adata. A cím nem "
-"jelenik meg, ha nincs felülírva."
-msgid "Node from reference"
-msgstr "Tartalom a hivatkozásból"
-msgid ""
-"Adds a node from a node reference in a node context; if multiple nodes "
-"are referenced, this will get the first referenced node only."
-msgstr ""
-"Hozzáad egy tartalmat a tartalom hivatkozásból a tartalom "
-"környezetben. Ha több tartalom van hivatkozva, csak az első "
-"hivatkozott tartalmat fogja venni."
-msgid "Node reference field"
-msgstr "Tartalom hivatkozás mező"
-msgid ""
-"The possible values this field can contain. Enter one value per line, "
-"in the format key|label. The key is the value that will be stored in "
-"the database, and it must match the field storage type (%type). The "
-"label is optional, and the key will be used as the label if no label "
-"is specified.<br />Allowed HTML tags: @tags"
-msgstr ""
-"A mező lehetséges értékei. Egy sorban egy értéket lehet megadni "
-"kulcs|címke formában. A kulcs értéke kerül az adatbázisba, és "
-"ennek meg kell felelnie az adatbázisban tárolt típussal (%type). A "
-"címke megadása nem kötelező, ha nincs megadva, akkor a kulcs lesz "
-"a címke.<br />Az engedélyezett HTML elemek: @tags"
-msgid ""
-"This PHP code was set by an administrator and will override the "
-"allowed values list above."
-msgstr ""
-"Ezt a PHP kódot egy adminisztrátor állította be, és felül fogja "
-"írni a fentebb megadott elfogadható értékek listáját."
-msgid "User from reference"
-msgstr "Felhasználó a hivatkozásból"
-msgid ""
-"Adds a user from a user reference in a node context; if multiple users "
-"are referenced, this will get the first referenced user only."
-msgstr ""
-"Hozzáad egy felhasználót a felhasználó hivatkozásból a tartalom "
-"környezetben. Ha több felhasználó van hivatkozva, csak az első "
-"hivatkozott felhasználót fogja venni."
-msgid "User reference field"
-msgstr "Felhasználó hivatkozás mező"
-msgid "Show @count value(s)"
-msgstr "@count értéket mutat"
-msgid "starting from @count"
-msgstr "@count értékről kezdve"
-msgid "@label (!name) - Allowed values"
-msgstr "@label (!name) - engedélyezett értékek"
-msgid "%name: illegal value."
-msgstr "%name: érvénytelen érték."
-msgid "%name: the value may not be longer than %max characters."
-msgstr "%name: az érték nem lehet hosszabb %max karakternél."
-msgid "Autocomplete matching"
-msgstr "Automatikus kiegészítés módja"
-msgid "Starts with"
-msgstr "Ezzel kezdődik"
-msgid "Load a referenced user"
-msgstr "Egy hivatkozott felhasználó betöltése"
-msgid "Content containing the user reference field"
-msgstr "A felhasználóhivatkozás mező tartalma"
-msgid "Referenced user"
-msgstr "Hivatkozott felhasználó"
-msgid "Load a referenced node"
-msgstr "Egy hivatkozott tartalom betöltése"
-msgid "Content containing the node reference field"
-msgstr "A tartalom, amely a hivatkozó mezőt tartalmazza"
-msgid "Referenced content"
-msgstr "Hivatkozott tartalom"
-msgid "Populate a field"
-msgstr "Egy mező feltöltése"
-msgid "Select the machine-name of the field."
-msgstr "A mező programok által kezelt nevének kiválasztása."
-msgid "Revision information"
-msgstr "Változatinformáció"
-msgid ""
-"Select the method used to collect autocomplete suggestions. Note that "
-"<em>Contains</em> can cause performance issues on sites with thousands "
-"of users."
-msgstr ""
-"Az automatikus kiegészítés ajánlási módjának kiválasztása. "
-"Megjegyzendő, hogy a <em>Tartalmazza</em> lehetőség kiválasztása "
-"teljesítmény problémákat okozhat olyan webhelyeken, melyek sokezer "
-"tartalommal rendelkeznek."
-msgid "View used to select the nodes"
-msgstr "Nézet használata a tartalmak kiválasztásához"
-msgid "%name: this post can't be referenced."
-msgstr "%name: erre a tartalomra nem lehet hivatkozni."
-msgid "Node module form."
-msgstr "<em>Node</em> modul űrlapja."
-msgid "Locale module form."
-msgstr "<em>Locale</em> modul űrlapja."
-msgid "Taxonomy module form."
-msgstr "<em>Taxonomy</em> modul űrlapja."
-msgid "Poll title"
-msgstr "Poll cím"
-msgid "%name: this field cannot hold more than @count values."
-msgstr "%name: ez a mező nem tartalmazhat több, mint @count értéket."
-msgid "'@column' => value for @column"
-msgstr "„@column” => @column értéke"
-msgid ""
-"return array(\n"
-" 0 => array(@columns),\n"
-" // You'll usually want to stop here. Provide more values\n"
-" // if you want your 'default value' to be multi-valued:\n"
-" 1 => array(@columns),\n"
-" 2 => ...\n"
-");"
-msgstr ""
-"return array(\n"
-" 0 => array(@columns),\n"
-" // Itt gyakran vége is van. Több értéket is meg lehet adni\n"
-" // ha az „alapértelmezett értéknek” több értéke is "
-"lehet:\n"
-" 1 => array(@columns),\n"
-" 2 => ...\n"
-");"
-msgid ""
-"Create a list of options as a list in <strong>Allowed values "
-"list</strong> or as an array in PHP code. These values will be the "
-"same for %field in all content types."
-msgstr ""
-"A választható értékek megadása az <strong>Engedélyezett "
-"értékek</strong> mezőben, vagy egy PHP kóddal előállított "
-"tömbben. Erre a mezőre (%field) vonatkozóan ezek az értékek "
-"minden tartalomtípusnál megegyeznek."
-msgid "You need to specify the 'allowed values' for this field."
-msgstr "Ki kell tölteni a „Megengedett értékek”-et ennél a mezőnél."
-msgid "Change basic information"
-msgstr "Alapadatok megváltoztatása"
-msgid "Fieldset"
-msgstr "Mezőcsoport"
-msgid "Translation settings"
-msgstr "Fordítási beállítások"
-msgid ""
-"Select the method used to collect autocomplete suggestions. Note that "
-"<em>Contains</em> can cause performance issues on sites with thousands "
-"of nodes."
-msgstr ""
-"Az automatikus kiegészítés ajánlási módjának kiválasztása. "
-"Megjegyzendő, hogy a <em>Tartalmazza</em> lehetőség kiválasztása "
-"teljesítmény problémákat okozhat olyan webhelyeken, melyek sokezer "
-"tartalommal rendelkeznek."
-msgid "%name: title mismatch. Please check your selection."
-msgstr "%name: a cím nem egyezik."
-msgid "Path settings"
-msgstr "Útvonal beállítások"
-msgid "%name: the value may be no smaller than %min."
-msgstr "%name: az érték nem lehet kisebb ennél: %min."
-msgid "%name: the value may be no larger than %max."
-msgstr "%name: az érték nem lehet nagyobb ennél: %max."
-msgid "%name: found no valid user with that name."
-msgstr "%name: nincs érvényes felhasználó evvel a névvel."
-msgid "Field label"
-msgstr "Mező cimkéje"
-msgid "Form settings"
-msgstr "Űrlap beállításai"
-msgid "Type of group."
-msgstr "A csoport típusa."
-msgid ""
-"If unchecked, each item in the field will create a new row, which may "
-"appear to cause duplicates. This setting is not compatible with "
-"click-sorting in table displays."
-msgstr ""
-"Ha nincs bejelölve, akkor minden elem a mezőben új sort hoz létre, "
-"mely duplikációk megjelenését okozhatja. Ez a beállítás nem "
-"fér össze a kattintásos rendezéssel a táblázatos megjelenésben."
-msgid ""
-"Some updates are still pending. Please return to <a "
-"href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr ""
-"Néhány frissítés még függőben van. Vissza kell térni az <a "
-"href=\"@update-php\">update.php</a> oldalra és a fennmaradó "
-"frissítéseket le kell futtatni."
-msgid "Some updates are still pending.<br/>Please re-run the update script."
-msgstr ""
-"Néhány frissítés még függőben van.<br />A frissítő programot "
-"újra kell futtatni."
-msgid "Comment module form."
-msgstr "<em>Comment</em> modul űrlapja."
-msgid "Translation module form."
-msgstr "<em>Translation</em> modul űrlapja."
-msgid "Menu module form."
-msgstr "<em>Menu</em> modul űrlapja."
-msgid "Book module form."
-msgstr "<em>Book</em> modul űrlapja."
-msgid "Path module form."
-msgstr "<em>Path</em> modul űrlapja."
-msgid "Poll module title."
-msgstr "Poll modul cím."
-msgid "Poll module choices."
-msgstr "Poll modul válaszok"
-msgid "Poll module settings."
-msgstr "Poll modul beállítások"
-msgid "Upload module form."
-msgstr "<em>Upload</em> modul űrlapja."
-msgid ""
-"Updates for CCK-related modules are not run until the modules are "
-"enabled on the <a href=\"@admin-modules-path\">administer modules "
-"page</a>. When you enable them, you'll need to return to <a "
-"href=\"@update-php\">update.php</a> and run the remaining updates."
-msgstr ""
-"A <em>CCK</em> modulokhoz kapcsolódó frissítések addig nem futnak, "
-"amíg a modulok nincsenek engedélyezve a <a "
-"href=\"@admin-modules-path\">modulok adminisztrációs oldalán</a>. "
-"Az engedélyezés után vissza kell térni az <a "
-"href=\"@update-php\">update.php</a> oldalra és a maradék "
-"frissítéseket le kell futtatni."
-msgid ""
-"!module.module has updates but cannot be updated because "
-"content.module is not enabled.<br />If and when content.module is "
-"enabled, you will need to re-run the update script. You will continue "
-"to see this message until the module is enabled and updates are run."
-msgstr ""
-"!module modulnak vannak frissítései, de nem lehet frissíteni mert a "
-"content modul nincs engedélyezve.<br />Ha a content modul "
-"engedélyezetté válik, akkor újra kell futtatni a frissítési "
-"programot. Folyamatosan ez az üzenet fog megjelenni, amíg a modul "
-"nem engedélyezett, és a frissítések futnak."
-msgid ""
-"!module.module has updates and is available in the modules folder but "
-"is not enabled.<br />If and when it is enabled, you will need to "
-"re-run the update script. You will continue to see this message until "
-"the module is enabled and updates are run."
-msgstr ""
-"!module modulnak vannak frissítései, mely elérhető a modul "
-"könytárában, de az nem engedélyezett.<br />Ha a modul "
-"engedélyezetté válik, akkor újra kell futtatni a frissítési "
-"programot. Folyamatosan ez az üzenet fog megjelenni, amíg a modul "
-"nem engedélyezett, és a frissítések futnak."
-msgid "CCK - No Views integration"
-msgstr "CCK - Views-illesztés nélkül"
-msgid ""
-"CCK integration with Views module requires Views 6.x-2.0-rc2 or "
-"greater."
-msgstr ""
-"CCK-Views illesztéssel, mely annak 6.x-2.0-rc2 vagy újabb "
-"változatát igényli."
-msgid "manage fields"
-msgstr "mezők szerkesztése"
-msgid "» Add a new content type"
-msgstr "» Új tartalomtípus hozzáadása"
-msgid "@field_name (Locked)"
-msgstr "@field_name (Zárolt)"
-msgid ""
-"This content type has inactive fields. Inactive fields are not "
-"included in lists of available fields until their modules are enabled."
-msgstr ""
-"Ebben a tartalomtípusban inaktív mezők vannak. Az inaktív mezők "
-"nem lesznek benne az elérhető mezők listájában mindaddig, amíg a "
-"számukra szükséges modulok nincsenek engedélyezve."
-msgid ""
-"!field (!field_name) is an inactive !field_type field that uses a "
-"!widget_type widget."
-msgstr ""
-"!field (!field_name) egy inaktív !field_type mező, ami !widget_type "
-"felületi elemet használ."
-msgid "- Select a field type -"
-msgstr "- Mezőtípus kiválasztása -"
-msgid "- Select a widget -"
-msgstr "- Felületi elem kiválasztása -"
-msgid "Field name (a-z, 0-9, _)"
-msgstr "Mező neve (a-z, 0-9, _)"
-msgid "Type of data to store."
-msgstr "A tárolandó adat típusa."
-msgid "Form element to edit the data."
-msgstr "Ürlap elem az adat szerkesztéséhez."
-msgid "- Select an existing field -"
-msgstr "- Létező mező kiválasztása -"
-msgid "Field to share"
-msgstr "Mező megosztása"
-msgid "Group name (a-z, 0-9, _)"
-msgstr "Csoport neve (a-z, 0-9, _)"
-msgid "Add new field: you need to provide a label."
-msgstr "Új mező hozzáadása: meg kell adni egy címkét."
-msgid "Add new field: you need to provide a field name."
-msgstr "Új mező hozzáadása: meg kell adni egy mezőnevet."
-msgid ""
-"Add new field: the field name %field_name is invalid. The name must "
-"include only lowercase unaccentuated letters, numbers, and "
-"underscores."
-msgstr ""
-"Új mező hozzáadása: %field_name mezőnév érvénytelen. A név "
-"csak ékezet nélküli kisbetűket, számokat és aláhúzásjeleket "
-"tartalmazhat."
-msgid ""
-"Add new field: the field name %field_name is too long. The name is "
-"limited to 32 characters, including the 'field_' prefix."
-msgstr ""
-"Új mező hozzáadása: a %field_name mezőnév túl hosszú. A név "
-"csak 32 karakter hosszú lehet, beleértve a „field_” előtagot "
-"is."
-msgid "Add new field: the name 'field_instance' is a reserved name."
-msgstr "Új mező hozzáadása: a „field_instance” egy fenntartott név."
-msgid "Add new field: the field name %field_name already exists."
-msgstr "Új mező hozzáadása: %field_name nevű mező már létezik."
-msgid "Add new field: you need to select a field type."
-msgstr "Új mező hozzáadása: ki kell választani egy mezőtípust."
-msgid "Add new field: you need to select
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment