mysite_create_account

Definition

mysite_create_account($owner)
mysite.module, line 2821

Description

Create a MySite record for a new user without submitting a form.

Parameters

$owner The user object of the person who owns the page

Return value

$mysite an array created by mysite_get()

Code

function mysite_create_account($owner) {
  $check = mysite_get($owner->uid, TRUE);
  $status = variable_get('mysite_private_status', 1);

  // mysite_get() returns -1 if no account exists.
  if ($check == -1) {
    if ($owner->uid == 0) {
      $owner->name = t('My Homepage');
      $status = 1;
    }

    $sql = "INSERT INTO {mysite} (uid, created, status, title) VALUES (%d, %d, %d, '%s')";
    db_query($sql, $owner->uid, time(), $status, $owner->name);

    // Add default content to the user page if it has been set.
    $get = mysite_get(0);
    if (isset($get->uid)) {
      $default = db_fetch_object(db_query("SELECT layout, style, format, theme FROM {mysite} WHERE uid = 0"));
      $sql = "UPDATE {mysite} SET layout = '%s', style = '%s', format = '%s', theme = '%s' WHERE uid = %d";
      db_query($sql, $default->layout, $default->style, $default->format, $default->theme, $owner->uid);
      // Insert the page data.
      $pages = mysite_get_pages(0);
      if (!empty($pages)) {
        foreach ($pages as $page) {
          $sql = "INSERT INTO {mysite_page} (page, uid, created, status, title, layout, style, format, theme)
            VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')"
;
          db_query($sql, $page['page'], $owner->uid, time(), $status, $page['title'], $page['layout'], $page['style'], $page['format'], $page['theme']);
        }
      }
      // Insert the page contents.
      // Note that we don't load locked content here, since it is placed by default.
      $content = db_query("SELECT title, page, type, type_id, sort, format, position, settings FROM {mysite_data} WHERE uid = 0 AND locked = 0");
      while ($data = db_fetch_object($content)) {
        $mid = db_next_id('{mysite_data}_mid');
        $sql = "INSERT INTO {mysite_data} (mid, uid, page, title, type, type_id, sort, format, position, settings) VALUES (%d, %d, %d, '%s', '%s', %d, %d, '%s', %d, '%s')";
        db_query($sql, $mid, $owner->uid, $data->page, $data->title, $data->type, $data->type_id, $data->sort, $data->format, $data->position, $data->settings);
      }
    }
    // There is no default content configured, create a blank page.
    else {
      mysite_create_page($owner->uid, 0);
    }
    mysite_updated($owner->uid);
    return mysite_get($owner->uid);
  }
}