public function OgMigrateAddFields::import in Organic groups 7.2
Create group, group-audience and group description fields.
File
- includes/
migrate/ 7000/ og_add_fields.inc, line 23 - Add OG related fields to group and group-content node-types.
Class
- OgMigrateAddFields
- @file Add OG related fields to group and group-content node-types.
Code
public function import() {
og_create_field(OG_AUDIENCE_FIELD, 'user', 'user');
foreach (node_type_get_types() as $type) {
// Check if the variable exists.
if ($type_usage = variable_get('og_content_type_usage_' . $type->type)) {
switch ($type_usage) {
case 'group':
$content_type['group'][] = $type->type;
break;
case 'group_post_standard':
case 'group_post_wiki':
// The type of the group content is now determined via the
// group permissions. We only care about adding the group content
// fields to the node.
$content_type['group content'][] = $type->type;
break;
}
}
}
if ($content_type) {
// Add group and group content fields to content types.
$field_names = array(
'group' => OG_GROUP_FIELD,
'group content' => OG_AUDIENCE_FIELD,
);
foreach ($field_names as $key => $field_name) {
$content_type += array(
$key => array(),
);
foreach ($content_type[$key] as $type) {
og_create_field($field_name, 'node', $type);
if ($key == 'group') {
if (!field_info_field('og_description')) {
$field = array(
'field_name' => 'og_description',
'type' => 'text',
'entity_types' => array(
'node',
),
'cardinality' => 1,
);
$field = field_create_field($field);
}
if (!field_info_instance('node', 'og_description', $type)) {
// Create the "description" field for the bundle.
$instance = array(
'field_name' => 'og_description',
'bundle' => $type,
'entity_type' => 'node',
'label' => t('Group description'),
'description' => t('This is description of the group.'),
);
field_create_instance($instance);
// Delete the OG6 variable.
variable_del('og_content_type_usage_' . $type);
}
}
}
}
}
// Delete the field that indicates we still need to add fields.
variable_del('og_7000_add_field');
return MigrationBase::RESULT_COMPLETED;
}