Last updated August 12, 2010. Created by scarer on August 12, 2010.
Log in to edit this page.

I just entered this on a page. Depending on what content type you've created for a group you'll have to change the community node type. This was quite quickly put together. I just turned on the php input filter and created a new page and inserted the script. I received a blank screen but all the data seemed to copy across ok.

<?php
/*
* Description: This script enters all the civicrm groups into Drupal and the organic groups tables.
* This script was written to help map pre-entered data from civicrm that cannot be synched through
* the og groups to civicrm groups module.
* Author: scarer
* Date: 12-08-2010
*
*/
$titles = array();
$timestamp = strtotime("now");
//drupal_set_message($timestamp);
$result = db_query("SELECT title from {civicrm_group}");
while(
$rows = db_fetch_object($result))
{
 
$cur_title = $rows->title;
 
//drupal_set_message($cur_title);
  //call function to save to node table
 
$nid = savetonode($cur_title, $timestamp);
 
drupal_set_message($nid);
 
//call function to save to node_revisions table
 
savetonoderevisions($nid, $cur_title, $timestamp);
 
//call function to save to og table
 
savetoog($nid, $cur_title);
 
//call function to save to og_uid table
 
savetooguid($nid, $timestamp);
}
//This function saves the group to the Drupal node table
function savetonode($cur_title, $timestamp)
{
   
//stores the group nid
   
$groupnid = '';
   
//get nid value of last node and increment it by 1 to insert group node
   
$result = db_query("SELECT nid FROM {node} ORDER BY nid DESC LIMIT 1");
     while(
$rows = db_fetch_object($result))
     {
       
$groupnid = $rows->nid + 2;
     }
   
//insert group node into node table
   
db_query("INSERT INTO {node} (vid, type, language, title, uid, status, created, changed,
    comment, promote, moderate, sticky, tnid, translate) VALUES (
$groupnid, 'community', 'en',
    '
$cur_title', 1, 1, $timestamp, $timestamp, 2, 1, 0, 0, 0, 0)");
   
//Return groupnid value for use in other functions
   
return $groupnid;
}
 
//This function saves the group to the Drupal node revisions table
function savetonoderevisions($nid, $cur_title, $timestamp)
{
   
db_query("INSERT INTO {node_revisions} (nid, vid, uid, title, timestamp, format) VALUES ($nid,
   
$nid, 1, '$cur_title', $timestamp, 1)");
}
//This function saves the group to the Drupal og table
function savetoog($nid, $cur_title)
{
    
db_query("INSERT INTO {og} (nid, og_selective, og_description, og_theme, og_register,
     og_directory, og_private) VALUES (
$nid, 0, '$cur_title', NULL, 1, 1, 0)");
}
//This function saves the group to the Drupal og table
function savetooguid($nid, $timestamp)
{
     
db_query("INSERT INTO {og_uid} (nid, og_role, is_active, is_admin, uid, created, changed) VALUES ($nid,
      0, 1, 1, 1,
$timestamp, $timestamp)");
}
?>

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.