diff -urp includes/og.rules.inc includes/og.rules.inc
--- includes/og.rules.inc 2008-10-29 21:57:56.000000000 +0200
+++ includes/og.rules.inc 2008-11-29 12:49:21.000000000 +0200
@@ -105,6 +105,17 @@ function og_rules_action_info() {
),
'module' => 'Organic groups',
),
+ 'og_rules_action_add_group_node' => array(
+ 'label' => t('Add group node settings to content'),
+ 'arguments' => array(
+ 'node' => array(
+ 'type' => 'node',
+ 'label' => t('Content that will become a group node'),
+ ),
+ ),
+ 'help' => t("When creating a group node organic groups module requires some group settings. This action should be used after 'Add new content' action, that adds a group node type content, and will result with a new group node.", array('@group-node-type' => url('admin/og/og'))),
+ 'module' => 'Organic groups',
+ ),
);
}
@@ -131,7 +142,6 @@ function og_rules_action_subscribe_user_
);
}
-
/**
* Action: Unsubscribe user from group.
*/
@@ -140,6 +150,32 @@ function og_rules_action_remove_user($us
}
/**
+ * Action:Add group node settings to content.
+ */
+function og_rules_action_add_group_node($node, $settings) {
+ if (og_is_group_type($node->type)) {
+ // Add og keys to the node.
+ foreach ($settings['og_fieldset']['og_settings'] as $key => $value){
+ $node->$key = $value;
+ }
+ return array('node' => $node);
+ }
+}
+
+/**
+ * Action:Add group node settings to content form.
+ */
+function og_rules_action_add_group_node_form($settings, &$form) {
+ $node = !empty($settings['og_fieldset']['og_settings']) ? $settings['og_fieldset']['og_settings'] : array();
+ $og_form = og_group_form($node, array());
+ $form['settings']['og_fieldset'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Organic groups form settings'),
+ );
+ $form['settings']['og_fieldset']['og_settings'] = $og_form;
+}
+
+/**
* Implementation of hook_rules_condition_info().
*/
function og_rules_condition_info() {
diff -urp og.module og.module
--- og.module 2008-11-21 19:09:31.000000000 +0200
+++ og.module 2008-11-29 12:47:15.000000000 +0200
@@ -1311,7 +1311,7 @@ function og_group_form($node, $form_stat
'#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'og_description') : -4,
);
- $default = isset($node->nid) ? $node->og_selective : OG_OPEN;
+ $default = isset($node->og_selective) ? $node->og_selective : OG_OPEN;
$options = array(
t('Open - membership requests are accepted immediately.'),
t('Moderated - membership requests must be approved.'),
@@ -1352,7 +1352,7 @@ function og_group_form($node, $form_stat
$form['og_register'] = array(
'#type' => 'checkbox',
'#title' => t('Registration form'),
- '#default_value' => $node->nid ? $node->og_register : $default,
+ '#default_value' => isset($node->og_register) ? $node->og_register : $default,
'#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'og_register') : 0,
'#description' =>t('May users join this group during registration? If checked, a corresponding checkbox will be added to the registration form.'),
);
@@ -1383,7 +1383,7 @@ function og_group_form($node, $form_stat
$form['og_directory'] = array(
'#type' => 'checkbox',
'#title' => t('List in groups directory'),
- '#default_value' => $node->nid ? $node->og_directory : $default,
+ '#default_value' => isset($node->og_directory) ? $node->og_directory : $default,
'#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'og_directory') : 0,
'#description' => t('Should this group appear on the list of groups page (requires OG Views module)? Disabled if the group is set to private group.', array('@url' => url('og'))));
break;