Ejemplo n.º 1
0
 /**
  * Create a new tree
  *
  * @param string $tree_name
  * @param string $tree_title
  *
  * @return Tree
  */
 public static function create($tree_name, $tree_title)
 {
     try {
         // Create a new tree
         Database::prepare("INSERT INTO `##gedcom` (gedcom_name) VALUES (?)")->execute(array($tree_name));
         $tree_id = Database::prepare("SELECT LAST_INSERT_ID()")->fetchOne();
     } catch (PDOException $ex) {
         // A tree with that name already exists?
         return self::findByName($tree_name);
     }
     // Update the list of trees - to include this new one
     self::$trees = null;
     $tree = self::findById($tree_id);
     $tree->setPreference('imported', '0');
     $tree->setPreference('title', $tree_title);
     // Module privacy
     Module::setDefaultAccess($tree_id);
     // Set preferences from default tree
     Database::prepare("INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value)" . " SELECT :tree_id, setting_name, setting_value" . " FROM `##gedcom_setting` WHERE gedcom_id = -1")->execute(array('tree_id' => $tree_id));
     Database::prepare("INSERT INTO `##default_resn` (gedcom_id, tag_type, resn)" . " SELECT :tree_id, tag_type, resn" . " FROM `##default_resn` WHERE gedcom_id = -1")->execute(array('tree_id' => $tree_id));
     Database::prepare("INSERT INTO `##block` (gedcom_id, location, block_order, module_name)" . " SELECT :tree_id, location, block_order, module_name" . " FROM `##block` WHERE gedcom_id = -1")->execute(array('tree_id' => $tree_id));
     // Gedcom and privacy settings
     $tree->setPreference('CONTACT_USER_ID', Auth::id());
     $tree->setPreference('WEBMASTER_USER_ID', Auth::id());
     $tree->setPreference('LANGUAGE', WT_LOCALE);
     // Default to the current admin’s language
     switch (WT_LOCALE) {
         case 'es':
             $tree->setPreference('SURNAME_TRADITION', 'spanish');
             break;
         case 'is':
             $tree->setPreference('SURNAME_TRADITION', 'icelandic');
             break;
         case 'lt':
             $tree->setPreference('SURNAME_TRADITION', 'lithuanian');
             break;
         case 'pl':
             $tree->setPreference('SURNAME_TRADITION', 'polish');
             break;
         case 'pt':
         case 'pt-BR':
             $tree->setPreference('SURNAME_TRADITION', 'portuguese');
             break;
         default:
             $tree->setPreference('SURNAME_TRADITION', 'paternal');
             break;
     }
     // Genealogy data
     // It is simpler to create a temporary/unimported GEDCOM than to populate all the tables...
     $john_doe = I18N::translate('John /DOE/');
     $note = I18N::translate('Edit this individual and replace their details with your own.');
     Database::prepare("INSERT INTO `##gedcom_chunk` (gedcom_id, chunk_data) VALUES (?, ?)")->execute(array($tree_id, "0 HEAD\n1 CHAR UTF-8\n0 @I1@ INDI\n1 NAME {$john_doe}\n1 SEX M\n1 BIRT\n2 DATE 01 JAN 1850\n2 NOTE {$note}\n0 TRLR\n"));
     // Update our cache
     self::$trees[$tree->tree_id] = $tree;
     return $tree;
 }
Ejemplo n.º 2
0
                        $page_name = 'index.php';
                        $page_parameter = 'gedcom:' . $GED_DATA['id'];
                    }
                    try {
                        $statement->execute(array($GED_DATA['id'], $page_name, $page_parameter, $match[3]));
                    } catch (PDOException $ex) {
                        // Primary key violation? Ignore?
                    }
                }
            }
        }
    }
}
////////////////////////////////////////////////////////////////////////////////
foreach ($GEDCOMS as $GED_DATA) {
    Module::setDefaultAccess($GED_DATA['id']);
}
echo '<p>pgv_site_setting => wt_module_setting…</p>';
Database::prepare("REPLACE INTO `##module_setting` (module_name, setting_name, setting_value)" . " SELECT 'googlemap', site_setting_name, site_setting_value FROM `{$DBNAME}`.`{$TBLPREFIX}site_setting`" . " WHERE site_setting_name LIKE 'GM_%'")->execute();
Database::prepare("REPLACE INTO `##module_setting` (module_name, setting_name, setting_value)" . " SELECT 'lightbox', site_setting_name, site_setting_value FROM `{$DBNAME}`.`{$TBLPREFIX}site_setting`" . " WHERE site_setting_name LIKE 'LB_%'")->execute();
////////////////////////////////////////////////////////////////////////////////
echo '<p>pgv_favorites => wt_favorite…</p>';
try {
    Database::prepare("REPLACE INTO `##favorite` (favorite_id, user_id, gedcom_id, xref, favorite_type, url, title, note)" . " SELECT fv_id, u.user_id, g.gedcom_id, fv_gid, fv_type, fv_url, fv_title, fv_note" . " FROM `{$DBNAME}`.`{$TBLPREFIX}favorites` f" . " LEFT JOIN `##gedcom` g ON (f.fv_username=g.gedcom_name)" . " LEFT JOIN `##user`   u ON (f.fv_username=u.user_name)")->execute();
} catch (PDOException $ex) {
    // This table will only exist if the favorites module is installed in WT
}
////////////////////////////////////////////////////////////////////////////////
echo '<p>pgv_news => wt_news…</p>';
try {
    Database::prepare("REPLACE INTO `##news` (news_id, user_id, gedcom_id, subject, body, updated)" . " SELECT n_id, u.user_id, g.gedcom_id, n_title, n_text, FROM_UNIXTIME(n_date)" . " FROM `{$DBNAME}`.`{$TBLPREFIX}news` n" . " LEFT JOIN `##gedcom` g ON (n.n_username=g.gedcom_name)" . " LEFT JOIN `##user` u ON (n.n_username=u.user_name)")->execute();