Example #1
0
function doImportWP($b2dblogin, $b2db, $b2dbpass, $b2dbhost, $wpdbprefix, $insert_into_section, $insert_with_status, $default_comment_invite, $wpdbcharset)
{
    global $txpcfg;
    $b2link = mysql_connect($b2dbhost, $b2dblogin, $b2dbpass, true);
    if (!$b2link) {
        return 'WordPress database values don’t work. Go back, replace them and try again.';
    }
    mysql_select_db($b2db, $b2link);
    if (!mysql_query('SET NAMES ' . doslash($wpdbcharset), $b2link)) {
        return 'WordPress database does not support the requested character set. Aborting.';
    }
    // Keep some response on some part
    $results = array();
    $errors = array();
    $results[] = hed('Connected to WordPress database. Importing Data…', 1);
    /*
    export users
    */
    $users = array();
    $user_query = mysql_query("\n\t\t\tselect\n\t\t\t\tID as user_id,\n\t\t\t\tuser_login as name,\n\t\t\t\tuser_email as email,\n\t\t\t\tdisplay_name as RealName\n\t\t\tfrom " . $wpdbprefix . "users\n\t\t", $b2link) or $errors[] = mysql_error();
    while ($user = mysql_fetch_array($user_query)) {
        $user_privs_query = mysql_query("\n\t\t\t\tselect\n\t\t\t\t\tmeta_value\n\t\t\t\tfrom " . $wpdbprefix . "usermeta\n\t\t\t\twhere user_id = " . $user['user_id'] . " and meta_key = '" . $wpdbprefix . "capabilities'\n\t\t\t", $b2link) or $errors[] = mysql_error();
        $privs = unserialize(mysql_result($user_privs_query, 0));
        foreach ($privs as $key => $val) {
            // convert the built-in WordPress roles
            // to their Txp equivalent
            switch ($key) {
                // publisher
                case 'administrator':
                    $user['privs'] = 1;
                    break;
                    // managing editor
                // managing editor
                case 'editor':
                    $user['privs'] = 2;
                    break;
                    // staff writer
                // staff writer
                case 'author':
                    $user['privs'] = 4;
                    break;
                    // freelancer
                // freelancer
                case 'contributor':
                    $user['privs'] = 5;
                    break;
                    // none
                // none
                case 'subscriber':
                default:
                    $user['privs'] = 0;
                    break;
            }
        }
        $users[] = $user;
    }
    /*
    export article and link categories
    */
    $categories = array();
    $category_query = mysql_query("\n\t\t\tselect\n\t\t\t\tt.slug as name,\n\t\t\t\tt.name as title,\n\t\t\t\ttt.taxonomy as type,\n\t\t\t\ttt.parent as parent\n\t\t\tfrom " . $wpdbprefix . "terms as t inner join " . $wpdbprefix . "term_taxonomy as tt\n\t\t\t\ton(t.term_id = tt.term_id)\n\t\t\torder by field(tt.taxonomy, 'category','post_tag','link_category'), tt.parent asc, t.name asc\n\t\t", $b2link) or $errors[] = mysql_error();
    while ($category = mysql_fetch_array($category_query)) {
        if ($category['parent'] != 0) {
            $category_parent_query = mysql_query("\n\t\t\t\t\tselect\n\t\t\t\t\t\tslug as name\n\t\t\t\t\tfrom " . $wpdbprefix . "terms\n\t\t\t\t\twhere term_id = '" . doSlash($category['parent']) . "'\n\t\t\t\t", $b2link) or $errors[] = mysql_error();
            while ($parent = mysql_fetch_array($category_parent_query)) {
                $category['parent'] = $parent['name'];
            }
        } else {
            $category['parent'] = 'root';
        }
        switch ($category['type']) {
            case 'post_tag':
            case 'category':
                $category['type'] = 'article';
                break;
            case 'link_category':
                $category['type'] = 'link';
                break;
        }
        $categories[] = $category;
    }
    /*
    export articles - do not export post revisions from WP 2.6+
    */
    $article_query = mysql_query("\n\t\t\tselect\n\t\t\t\tp.ID as ID,\n\t\t\t\tp.post_status as Status,\n\t\t\t\tp.post_date as Posted,\n\t\t\t\tp.post_modified as LastMod,\n\t\t\t\tp.post_title as Title,\n\t\t\t\tp.post_content as Body,\n\t\t\t\tp.comment_status as Annotate,\n\t\t\t\tp.comment_count as comments_count,\n\t\t\t\tp.post_name as url_title,\n\t\t\t\tu.user_login as AuthorID\n\t\t\tfrom " . $wpdbprefix . "posts as p left join " . $wpdbprefix . "users as u\n\t\t\t\ton u.ID = p.post_author\n\t\t\twhere p.post_type = 'post'\n\t\t\torder by p.ID asc\n\t\t", $b2link) or $errors[] = mysql_error();
    while ($article = mysql_fetch_array($article_query)) {
        // convert WP article status to Txp equivalent
        switch ($article['Status']) {
            case 'draft':
                $article['Status'] = 1;
                break;
                // hidden
            // hidden
            case 'private':
                $article['Status'] = 2;
                break;
            case 'pending':
                $article['Status'] = 3;
                break;
                // live
            // live
            case 'publish':
                $article['Status'] = 4;
                break;
            default:
                $article['Status'] = $insert_with_status;
                break;
        }
        // convert WP comment status to Txp equivalent
        switch ($article['Annotate']) {
            // on
            case 'open':
                $article['Annotate'] = 1;
                break;
                // off
            // off
            case 'closed':
            case 'registered_only':
                $article['Annotate'] = 0;
                break;
        }
        // article commments
        $comments = array();
        $comment_query = mysql_query("\n\t\t\t\tselect\n\t\t\t\t\tcomment_author_IP as ip,\n\t\t\t\t\tcomment_author as name,\n\t\t\t\t\tcomment_author_email as email,\n\t\t\t\t\tcomment_author_url as web,\n\t\t\t\t\tcomment_content as message,\n\t\t\t\t\tcomment_date as posted\n\t\t\t\tfrom " . $wpdbprefix . "comments\n\t\t\t\twhere comment_post_ID = '" . $article['ID'] . "'\n\t\t\t\torder by comment_ID asc\n\t\t\t", $b2link) or $errors[] = mysql_error();
        while ($comment = mysql_fetch_assoc($comment_query)) {
            $comments[] = $comment;
        }
        $article['comments'] = $comments;
        // article categories
        $article_categories = array();
        $article_category_query = mysql_query("\n\t\t\t\tselect\n\t\t\t\t\tt.name as title,\n\t\t\t\t\tt.slug as name\n\t\t\t\tfrom " . $wpdbprefix . "terms as t inner join " . $wpdbprefix . "term_taxonomy as tt\n\t\t\t\t\ton(t.term_id = tt.term_id)\n\t\t\t\tinner join " . $wpdbprefix . "term_relationships as tr\n\t\t\t\t\ton(tt.term_taxonomy_id = tr.term_taxonomy_id)\n\t\t\t\twhere tr.object_id = '" . $article['ID'] . "' and tt.taxonomy in('post_tag', 'category')\n\t\t\t\torder by tr.object_id asc, t.name asc\n\t\t\t\tlimit 2;\n\t\t\t", $b2link) or $errors[] = mysql_error();
        while ($category = mysql_fetch_array($article_category_query)) {
            $article_categories[] = $category;
        }
        $article['Category1'] = !empty($article_categories[0]) ? $article_categories[0]['name'] : '';
        $article['Category2'] = !empty($article_categories[1]) ? $article_categories[1]['name'] : '';
        // article images
        $article_images = array();
        $article_image_query = mysql_query("\n\t\t\tselect\n\t\t\t\tguid\n\t\t\tfrom " . $wpdbprefix . "posts\n\t\t\twhere post_type = 'attachment' and post_mime_type like 'image/%' and post_parent=" . $article['ID'], $b2link) or $errors[] = mysql_error();
        while ($image = mysql_fetch_array($article_image_query)) {
            $article_images[] = $image['guid'];
        }
        // Comma-separated image urls preserve multiple attachments.
        // Attn: If more than one image is attached, <txp:article_image /> will not work out of the box.
        $article['Image'] = join(',', $article_images);
        $articles[] = $article;
    }
    /*
    export links
    */
    $links = array();
    $link_query = mysql_query("\n\t\t\tselect\n\t\t\t\tlink_id as id,\n\t\t\t\tlink_name as linkname,\n\t\t\t\tlink_description as description,\n\t\t\t\tlink_updated as date,\n\t\t\t\tlink_url as url\n\t\t\tfrom " . $wpdbprefix . "links\n\t\t\torder by link_id asc\n\t\t", $b2link) or $errors[] = mysql_error();
    while ($link = mysql_fetch_array($link_query)) {
        // link categories
        $link_categories = array();
        $link_category_query = mysql_query("\n\t\t\t\tselect\n\t\t\t\t\tt.name as title,\n\t\t\t\t\tt.slug as name\n\t\t\t\tfrom " . $wpdbprefix . "terms as t inner join " . $wpdbprefix . "term_taxonomy as tt\n\t\t\t\t\ton(t.term_id = tt.term_id)\n\t\t\t\tinner join " . $wpdbprefix . "term_relationships as tr\n\t\t\t\t\ton(tt.term_taxonomy_id = tr.term_taxonomy_id)\n\t\t\t\twhere tr.object_id = '" . $link['id'] . "' and tt.taxonomy = 'link_category'\n\t\t\t\torder by tr.object_id asc, t.name asc\n\t\t\t", $b2link) or $errors[] = mysql_error();
        while ($category = mysql_fetch_array($link_category_query)) {
            $link['category'] = $category['name'];
        }
        $links[] = $link;
    }
    mysql_close($b2link);
    /*
    begin import
    */
    // keep a handy copy of txpdb values, and do not alter Dean code
    // for now! ;-)
    $txpdb = $txpcfg['db'];
    $txpdblogin = $txpcfg['user'];
    $txpdbpass = $txpcfg['pass'];
    $txpdbhost = $txpcfg['host'];
    // Yes, we have to make a new connection
    // otherwise doArray complains
    $DB = new DB();
    $txplink =& $DB->link;
    mysql_select_db($txpdb, $txplink);
    /*
    import users
    */
    if ($users) {
        include_once txpath . '/lib/txplib_admin.php';
        $results[] = hed('Imported Users:', 2) . n . graf('Because WordPress uses a different password mechanism than Textpattern, you will need to reset each user&#8217;s password from <a href="index.php?event=admin">the Users tab</a>.') . n . '<ul>';
        foreach ($users as $user) {
            extract($user);
            if (!safe_row('user_id', 'txp_users', "name = '" . doSlash($name) . "'")) {
                $pass = doSlash(generate_password(6));
                $nonce = doSlash(md5(uniqid(mt_rand(), TRUE)));
                $rs = mysql_query("\n\t\t\t\t\t\tinsert into " . safe_pfx('txp_users') . " set\n\t\t\t\t\t\t\tname     = '" . doSlash($name) . "',\n\t\t\t\t\t\t\tpass     = '******',\n\t\t\t\t\t\t\temail    = '" . doSlash($email) . "',\n\t\t\t\t\t\t\tRealName = '" . doSlash($RealName) . "',\n\t\t\t\t\t\t\tprivs    = " . $privs . ",\n\t\t\t\t\t\t\tnonce    = '" . doSlash($nonce) . "'\n\t\t\t\t\t", $txplink) or $errors[] = mysql_error();
                if (mysql_insert_id()) {
                    $results[] = '<li>' . $name . ' (' . $RealName . ')</li>';
                }
            }
        }
        $results[] = '</ul>';
    }
    /*
    import categories
    */
    if ($categories) {
        $results[] = hed('Imported Categories:', 2) . n . '<ul>';
        foreach ($categories as $category) {
            extract($category);
            if (!safe_row('id', 'txp_category', "name = '" . doSlash($name) . "' and type = '" . doSlash($type) . "' and parent = '" . doSlash($parent) . "'")) {
                $rs = mysql_query("\n\t\t\t\t\t\tinsert into " . safe_pfx('txp_category') . " set\n\t\t\t\t\t\t\tname   = '" . doSlash($name) . "',\n\t\t\t\t\t\t\ttitle  = '" . doSlash($title) . "',\n\t\t\t\t\t\t\ttype   = '" . doSlash($type) . "',\n\t\t\t\t\t\t\tparent = '" . doSlash($parent) . "'\n\t\t\t\t\t", $txplink) or $errors[] = mysql_error();
                if (mysql_insert_id()) {
                    $results[] = '<li>' . $title . ' (' . $type . ')</li>';
                }
            }
        }
        rebuild_tree_full('article');
        rebuild_tree_full('link');
        $results[] = '</ul>';
    }
    /*
    import articles
    */
    if ($articles) {
        $results[] = hed('Imported Articles and Comments:', 2) . n . '<ul>';
        include txpath . '/lib/classTextile.php';
        $textile = new Textile();
        foreach ($articles as $article) {
            extract($article);
            // Ugly, really ugly way to workaround the slashes WP gotcha
            $Body = str_replace('<!--more-->', '', $Body);
            $Body_html = $textile->textileThis($Body);
            // can not use array slash due to way on which comments are selected
            $rs = mysql_query("\n\t\t\t\t\tinsert into " . safe_pfx('textpattern') . " set\n\t\t\t\t\t\tPosted         = '" . doSlash($Posted) . "',\n\t\t\t\t\t\tLastMod        = '" . doSlash($LastMod) . "',\n\t\t\t\t\t\tTitle          = '" . doSlash($textile->TextileThis($Title, 1)) . "',\n\t\t\t\t\t\turl_title      = '" . doSlash($url_title) . "',\n\t\t\t\t\t\tBody           = '" . doSlash($Body) . "',\n\t\t\t\t\t\tBody_html      = '" . doSlash($Body_html) . "',\n\t\t\t\t\t\tImage          = '" . doSlash($Image) . "',\n\t\t\t\t\t\tAuthorID       = '" . doSlash($AuthorID) . "',\n\t\t\t\t\t\tCategory1      = '" . doSlash($Category1) . "',\n\t\t\t\t\t\tCategory2      = '" . doSlash($Category2) . "',\n\t\t\t\t\t\tSection        = '{$insert_into_section}',\n\t\t\t\t\t\tuid            = '" . md5(uniqid(rand(), true)) . "',\n\t\t\t\t\t\tfeed_time      = '" . substr($Posted, 0, 10) . "',\n\t\t\t\t\t\tAnnotate       = '" . doSlash($Annotate) . "',\n\t\t\t\t\t\tAnnotateInvite = '{$default_comment_invite}',\n\t\t\t\t\t\tStatus         = '" . doSlash($Status) . "'\n\t\t\t\t", $txplink) or $errors[] = mysql_error();
            if ((int) ($insert_id = mysql_insert_id($txplink))) {
                $results[] = '<li>' . $Title . '</li>';
                if (!empty($comments)) {
                    $inserted_comments = 0;
                    foreach ($comments as $comment) {
                        extract(array_slash($comment));
                        // The ugly workaroud again
                        $message = nl2br($message);
                        $rs = mysql_query("\n\t\t\t\t\t\t\t\tinsert into " . safe_pfx('txp_discuss') . " set\n\t\t\t\t\t\t\t\t\tparentid = '{$insert_id}',\n\t\t\t\t\t\t\t\t\tname     = '" . doSlash($name) . "',\n\t\t\t\t\t\t\t\t\temail    = '" . doSlash($email) . "',\n\t\t\t\t\t\t\t\t\tweb      = '" . doSlash($web) . "',\n\t\t\t\t\t\t\t\t\tip       = '" . doSlash($ip) . "',\n\t\t\t\t\t\t\t\t\tposted   = '" . doSlash($posted) . "',\n\t\t\t\t\t\t\t\t\tmessage  = '" . doSlash($message) . "',\n\t\t\t\t\t\t\t\t\tvisible  = 1\n\t\t\t\t\t\t\t", $txplink) or $results[] = mysql_error();
                        if (mysql_insert_id()) {
                            $inserted_comments++;
                        }
                    }
                    $results[] = '<li>- ' . $inserted_comments . ' of ' . $comments_count . ' comment(s)</li>';
                }
            }
        }
        $results[] = '</ul>';
    }
    /*
    import links
    */
    if ($links) {
        $results[] = hed('Imported Links:', 2) . n . '<ul>';
        foreach ($links as $link) {
            extract($link);
            $rs = mysql_query("\n\t\t\t\t\tinsert into " . safe_pfx('txp_link') . " set\n\t\t\t\t\t\tlinkname    = '" . doSlash($linkname) . "',\n\t\t\t\t\t\tlinksort    = '" . doSlash($linkname) . "',\n\t\t\t\t\t\tdescription = '" . doSlash($description) . "',\n\t\t\t\t\t\tcategory    = '" . doSlash($category) . "',\n\t\t\t\t\t\tdate        = '" . doSlash($date) . "',\n\t\t\t\t\t\turl         = '" . doSlash($url) . "'\n\t\t\t\t", $txplink) or $errors[] = mysql_error();
            if (mysql_insert_id()) {
                $results[] = '<li>' . $linkname . '</li>';
            }
        }
        $results[] = '</ul>';
    }
    /*
    show any errors we encountered
    */
    if ($errors) {
        $results[] = hed('Errors Encountered:', 2) . n . '<ul>';
        foreach ($errors as $error) {
            $results[] = '<li>' . $error . '</li>';
        }
        $results[] = '</ul>';
    }
    return join(n, $results);
}
Example #2
0
function cat_event_category_save($event, $table_name)
{
    global $txpcfg;
    extract(doSlash(psa(array('id', 'name', 'old_name', 'parent', 'title'))));
    $id = assert_int($id);
    $name = sanitizeForUrl($name);
    // make sure the name is valid
    if (!$name) {
        $message = array(gTxt($event . '_category_invalid', array('{name}' => $name)), E_ERROR);
        return cat_category_list($message);
    }
    // don't allow rename to clobber an existing category
    $existing_id = safe_field('id', 'txp_category', "name = '{$name}' and type = '{$event}'");
    if ($existing_id and $existing_id != $id) {
        $message = array(gTxt($event . '_category_already_exists', array('{name}' => $name)), E_ERROR);
        return cat_category_list($message);
    }
    $parent = $parent ? $parent : 'root';
    if (safe_update('txp_category', "name = '{$name}', parent = '{$parent}', title = '{$title}'", "id = {$id}")) {
        safe_update('txp_category', "parent = '{$name}'", "parent = '{$old_name}'");
    }
    rebuild_tree_full($event);
    if ($event == 'article') {
        safe_update('textpattern', "Category1 = '{$name}'", "Category1 = '{$old_name}'");
        safe_update('textpattern', "Category2 = '{$name}'", "Category2 = '{$old_name}'");
    } else {
        safe_update($table_name, "category = '{$name}'", "category = '{$old_name}'");
    }
    $message = gTxt($event . '_category_updated', array('{name}' => doStrip($name)));
    cat_category_list($message);
}
/**
 * Saves a category from HTTP POST data.
 *
 * @param string $event Type of category
 * @param string $table Affected database table
 */
function cat_event_category_save($event, $table_name)
{
    extract(doSlash(array_map('assert_string', psa(array('id', 'name', 'description', 'old_name', 'parent', 'title')))));
    $id = assert_int($id);
    $rawname = $name;
    $name = sanitizeForUrl($rawname);
    // Make sure the name is valid.
    if (!$name) {
        $message = array(gTxt($event . '_category_invalid', array('{name}' => $rawname)), E_ERROR);
        return cat_event_category_edit($event, $message);
    }
    // Don't allow rename to clobber an existing category.
    $existing_id = safe_field("id", 'txp_category', "name = '{$name}' AND type = '{$event}'");
    if ($existing_id and $existing_id != $id) {
        $message = array(gTxt($event . '_category_already_exists', array('{name}' => $name)), E_ERROR);
        return cat_event_category_edit($event, $message);
    }
    // TODO: validate parent?
    $parent = $parent ? $parent : 'root';
    $message = array(gTxt('category_save_failed'), E_ERROR);
    if (safe_update('txp_category', "name = '{$name}', parent = '{$parent}', title = '{$title}', description = '{$description}'", "id = {$id}") && safe_update('txp_category', "parent = '{$name}'", "parent = '{$old_name}' AND type = '{$event}'")) {
        rebuild_tree_full($event);
        if ($event == 'article') {
            if (safe_update('textpattern', "Category1 = '{$name}'", "Category1 = '{$old_name}'") && safe_update('textpattern', "Category2 = '{$name}'", "Category2 = '{$old_name}'")) {
                $message = gTxt($event . '_category_updated', array('{name}' => doStrip($name)));
            }
        } else {
            if (safe_update($table_name, "category = '{$name}'", "category = '{$old_name}'")) {
                $message = gTxt($event . '_category_updated', array('{name}' => doStrip($name)));
            }
        }
    }
    cat_category_list($message);
}
 /**
  * Create category
  * @param  string $title The title used for the category
  * @return string        name field of the created category
  */
 private function create_category($title)
 {
     $name = strtolower(sanitizeForUrl($title));
     if (!$name) {
         return '';
     }
     $exists = safe_field('name', 'txp_category', "name = '" . doSlash($name) . "' and type = 'image'");
     if ($exists) {
         return $name;
     }
     $q = safe_insert('txp_category', "name = '" . doSlash($name) . "', title = '" . doSlash($title) . "', type = 'image', parent = 'root'");
     if ($q) {
         rebuild_tree_full('image');
         return $name;
     }
     return '';
 }
function ln_txp_commerce_install()
{
    global $prefs;
    $sql_query = '';
    // initializing...
    // if we don't have the orders table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "orders'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE `" . PFX . "orders` (\r\n\t\t\t\r\n\t\t\t\t`id` int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t\t`subtotal` double default NULL,\r\n\r\n\t\t\t\t`user_id` int(11) default NULL,\r\n\r\n\t\t\t\t`tax` double default NULL,\r\n\r\n\t\t\t\t`transaction_id` varchar(200) default NULL,\r\n\r\n\t\t\t\t`tracking_number` varchar(200) default NULL,\r\n\r\n\t\t\t\t`last_updated` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,\r\n\r\n\t\t\t\t`order_status` varchar(80) NOT NULL default '',\r\n\r\n\t\t\t\t`ship_date` date NOT NULL default '0000-00-00',\r\n\r\n\t\t\t\t`ship_method` varchar(80) NOT NULL default '',\r\n\r\n\t\t\t\t`memo` varchar(250) NOT NULL default '',\r\n\r\n\t\t\t\t`note` text NOT NULL,\r\n\r\n\t\t\t\t`shipping_handling` double NOT NULL default '0',\r\n\r\n\t\t\t\t`discount` double NOT NULL default '0',\r\n\r\n\t\t\t\t`total` double NOT NULL default '0',\r\n\r\n\t\t\t\t`date_created` datetime NOT NULL default '0000-00-00 00:00:00',\r\n\r\n\t\t\t\tPRIMARY KEY  (`id`)\r\n\t\t\t\t\r\n\t\t\t)";
    }
    // if we don't have the orders_articles table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "orders_articles'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE `" . PFX . "orders_articles` (\r\n\t\t\t\r\n\t\t\t\t`order_id` int(11) default NULL,\r\n\r\n\t\t\t\t`article_id` int(11) default NULL\r\n\t\t\t\t\r\n\t\t\t)";
    }
    // if txp_users doesn't have the columns we need, let's create them.
    if (!getRows("SELECT billing_company FROM `txp_users`")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tALTER TABLE `txp_users` \r\n\r\n\t\t\t\tADD `billing_company` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_address1` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_address2` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_city` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_state` varchar(50) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_zip` varchar(14) NOT NULL default '',\r\n\t\t\t\t\t\r\n\t\t\t\tADD `billing_country` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_fax` varchar(14) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_phone` varchar(14) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_same_as_billing` tinyint(1) NOT NULL default '0',\r\n\r\n\t\t\t\tADD `shipping_company` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_address1` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_address2` varchar(200) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_city` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_state` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_zip` varchar(14) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_country` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_fax` varchar(20) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_phone` varchar(20) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_firstname` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `shipping_lastname` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_firstname` varchar(100) NOT NULL default '',\r\n\r\n\t\t\t\tADD `billing_lastname` varchar(100) NOT NULL default '';";
    }
    //DEBUG
    //let's have countries nicely ordered...
    //dmp(getRows("SELECT * FROM countries ORDER BY name",1));
    /*
    foreach ( getRows("SELECT * FROM countries ORDER BY name",1) as $result )
    {
    	echo "\$sql_query[] = \"INSERT INTO countries VALUES ('', '".$result['name']."', '".$result['country_code']."')\";<br /><br />";
    }
    */
    // if we don't have the countries table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "countries'")) {
        $sql_query[] = "\r\n\t\t\t\r\n\t\t\tCREATE TABLE countries (\r\n\r\n\t\t\t  id int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t  name varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  country_code varchar(10) NOT NULL default '',\r\n\r\n\t\t\t  PRIMARY KEY  (id)\r\n\r\n\t\t\t)";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Afghanistan', 'AF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Albania', 'AL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Algeria', 'DZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'American Samoa', 'AS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Andorra', 'AD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Angola', 'AO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Anguilla', 'AI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Antarctica', 'AQ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Antigua and Barbuda', 'AG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Argentina', 'AR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Armenia', 'AM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Aruba', 'AW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Australia', 'AU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Austria', 'AT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Azerbaijan', 'AZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bahamas', 'BS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bahrain', 'BH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bangladesh', 'BD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Barbados', 'BB')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Belarus', 'BY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Belgium', 'BE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Belize', 'BZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Benin', 'BJ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bermuda', 'BM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bhutan', 'BT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bolivia', 'BO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bosnia and Herzegowina', 'BA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Botswana', 'BW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bouvet Island', 'BV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Brazil', 'BR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'British Indian Ocean Territory', 'IO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Brunei Darussalam', 'BN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Bulgaria', 'BG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Burkina Faso', 'BF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Burundi', 'BI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cambodia', 'KH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cameroon', 'CM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Canada', 'CA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cape Verde', 'CV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cayman Islands', 'KY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Central African Republic', 'CF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Chad', 'TD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Chile', 'CL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'China', 'CN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Christmas Island', 'CX')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cocos (Keeling) Islands', 'CC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Colombia', 'CO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Comoros', 'KM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Congo', 'CG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cook Islands', 'CK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Costa Rica', 'CR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cote D\\'Ivoire', 'CI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Croatia', 'HR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cuba', 'CU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Cyprus', 'CY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Czech Republic', 'CZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Denmark', 'DK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Djibouti', 'DJ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Dominica', 'DM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Dominican Republic', 'DO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'East Timor', 'TP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Ecuador', 'EC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Egypt', 'EG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'El Salvador', 'SV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Equatorial Guinea', 'GQ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Eritrea', 'ER')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Estonia', 'EE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Ethiopia', 'ET')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Falkland Islands (Malvinas)', 'FK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Faroe Islands', 'FO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Fiji', 'FJ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Finland', 'FI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'France', 'FR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'France, Metropolitan', 'FX')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'French Guiana', 'GF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'French Polynesia', 'PF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'French Southern Territories', 'TF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Gabon', 'GA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Gambia', 'GM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Georgia', 'GE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Germany', 'DE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Ghana', 'GH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Gibraltar', 'GI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Greece', 'GR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Greenland', 'GL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Grenada', 'GD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guadeloupe', 'GP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guam', 'GU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guatemala', 'GT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guinea', 'GN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guinea-bissau', 'GW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Guyana', 'GY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Haiti', 'HT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Heard and Mc Donald Islands', 'HM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Honduras', 'HN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Hong Kong', 'HK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Hungary', 'HU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Iceland', 'IS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'India', 'IN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Indonesia', 'ID')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Iran (Islamic Republic of)', 'IR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Iraq', 'IQ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Ireland', 'IE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Israel', 'IL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Italy', 'IT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Jamaica', 'JM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Japan', 'JP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Jordan', 'JO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Kazakhstan', 'KZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Kenya', 'KE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Kiribati', 'KI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Korea, Democratic People\\'s Republic of', 'KP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Korea, Republic of', 'KR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Kuwait', 'KW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Kyrgyzstan', 'KG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Lao People\\'s Democratic Republic', 'LA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Latvia', 'LV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Lebanon', 'LB')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Lesotho', 'LS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Liberia', 'LR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Libyan Arab Jamahiriya', 'LY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Liechtenstein', 'LI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Lithuania', 'LT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Luxembourg', 'LU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Macau', 'MO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Macedonia, The Former Yugoslav Republic of', 'MK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Madagascar', 'MG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Malawi', 'MW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Malaysia', 'MY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Maldives', 'MV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mali', 'ML')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Malta', 'MT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Marshall Islands', 'MH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Martinique', 'MQ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mauritania', 'MR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mauritius', 'MU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mayotte', 'YT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mexico', 'MX')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Micronesia, Federated States of', 'FM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Moldova, Republic of', 'MD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Monaco', 'MC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mongolia', 'MN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Montserrat', 'MS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Morocco', 'MA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Mozambique', 'MZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Myanmar', 'MM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Namibia', 'NA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Nauru', 'NR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Nepal', 'NP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Netherlands', 'NL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Netherlands Antilles', 'AN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'New Caledonia', 'NC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'New Zealand', 'NZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Nicaragua', 'NI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Niger', 'NE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Nigeria', 'NG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Niue', 'NU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Norfolk Island', 'NF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Northern Mariana Islands', 'MP')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Norway', 'NO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Oman', 'OM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Pakistan', 'PK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Palau', 'PW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Panama', 'PA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Papua New Guinea', 'PG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Paraguay', 'PY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Peru', 'PE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Philippines', 'PH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Pitcairn', 'PN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Poland', 'PL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Portugal', 'PT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Puerto Rico', 'PR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Qatar', 'QA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Reunion', 'RE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Romania', 'RO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Russian Federation', 'RU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Rwanda', 'RW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Saint Kitts and Nevis', 'KN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Saint Lucia', 'LC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Saint Vincent and the Grenadines', 'VC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Samoa', 'WS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'San Marino', 'SM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Sao Tome and Principe', 'ST')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Saudi Arabia', 'SA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Senegal', 'SN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Seychelles', 'SC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Sierra Leone', 'SL')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Singapore', 'SG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Slovakia (Slovak Republic)', 'SK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Slovenia', 'SI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Solomon Islands', 'SB')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Somalia', 'SO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'South Africa', 'ZA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'South Georgia and the South Sandwich Islands', 'GS')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Spain', 'ES')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Sri Lanka', 'LK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'St. Helena', 'SH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'St. Pierre and Miquelon', 'PM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Sudan', 'SD')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Suriname', 'SR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Svalbard and Jan Mayen Islands', 'SJ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Swaziland', 'SZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Sweden', 'SE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Switzerland', 'CH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Syrian Arab Republic', 'SY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Taiwan', 'TW')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tajikistan', 'TJ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tanzania, United Republic of', 'TZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Thailand', 'TH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Togo', 'TG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tokelau', 'TK')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tonga', 'TO')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Trinidad and Tobago', 'TT')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tunisia', 'TN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Turkey', 'TR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Turkmenistan', 'TM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Turks and Caicos Islands', 'TC')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Tuvalu', 'TV')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Uganda', 'UG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Ukraine', 'UA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'United Arab Emirates', 'AE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'United Kingdom', 'GB')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'United States', 'USA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'United States Minor Outlying Islands', 'UM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Uruguay', 'UY')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Uzbekistan', 'UZ')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Vanuatu', 'VU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Vatican City State (Holy See)', 'VA')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Venezuela', 'VE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Viet Nam', 'VN')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Virgin Islands (British)', 'VG')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Virgin Islands (U.S.)', 'VI')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Wallis and Futuna Islands', 'WF')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Western Sahara', 'EH')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Yemen', 'YE')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Yugoslavia', 'YU')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Zaire', 'ZR')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Zambia', 'ZM')";
        $sql_query[] = "INSERT INTO countries VALUES ('', 'Zimbabwe', 'ZW')";
    }
    // if we don't have the currencies table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "currencies'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE currencies (\r\n\r\n\t\t\t  id int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t  currency_name varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  currency_code varchar(5) NOT NULL default '',\r\n\r\n\t\t\t  currency_symbol varchar(20) NOT NULL default '',\r\n\r\n\t\t\t  PRIMARY KEY  (id)\r\n\r\n\t\t\t)";
        $sql_query[] = "INSERT INTO currencies VALUES (1, 'United States Dollars (USD)', 'USD', '\$')";
        $sql_query[] = "INSERT INTO currencies VALUES (2, 'Euro (EUR)', 'EUR', '&euro;')";
        $sql_query[] = "INSERT INTO currencies VALUES (3, 'United Kingdom Pounds (GBP)', 'GBP', '&pound;')";
        $sql_query[] = "INSERT INTO currencies VALUES (4, 'Canada Dollars (CAD)', 'CAD', '\$')";
        $sql_query[] = "INSERT INTO currencies VALUES (5, '----------------', '', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (6, 'Argentina Pesos (ARS)', 'ARS', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (7, 'Australia Dollars (AUD)', 'AUD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (8, 'Bahamas (BSD)', 'BSD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (9, 'Brazil Reais (BRL)', 'BRL', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (10, 'Chile Pesos (CLP)', 'CLP', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (11, 'China Yuan Renminbi (CNY)', 'CNY', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (12, 'Costa Rica Colones (CRC)', 'CRC', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (13, 'Cyprus Pounds (CYP)', 'CYP', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (14, 'Czech Republic Koruny (CZK)', 'CZK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (15, 'Denmark Kroner (DKK)', 'DKK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (16, 'Estonia (EEK)', 'EEK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (17, 'Hong Kong Dollars (HKD)', 'HKD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (18, 'Hungary Forint (HUF)', 'HUF', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (19, 'Iceland Krona (ISK)', 'ISK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (20, 'India Rupees (INR)', 'INR', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (21, 'Jamaica Dollars (JMD)', 'JMD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (22, 'Japan Yen (JPY)', 'JPY', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (23, 'Latvia Lati (LVL)', 'LVL', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (24, 'Lithuania Litai (LTL)', 'LTL', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (25, 'Malta Liri (MTL)', 'MTL', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (26, 'Mexico Pesos (MXN)', 'MXN', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (27, 'Malaysia (MYR)', 'MYR', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (28, 'New Zealand Dollars (NZD)', 'NZD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (29, 'Norway Kroner (NOK)', 'NOK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (30, 'Philippine Peso (PHP)', 'PHP', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (31, 'Poland Zlotych (PLN)', 'PLN', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (32, 'Romania New Leu (RON)', 'RON', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (33, 'Singapore Dollars (SGD)', 'SGD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (34, 'Slovakia Koruny (SKK)', 'SKK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (35, 'Slovenia Tolars (SIT)', 'SIT', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (36, 'South Africa Rand (ZAR)', 'ZAR', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (37, 'South Korea Won (KRW)', 'KRW', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (38, 'Sweden Kronor (SEK)', 'SEK', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (39, 'Switzerland Francs (CHF)', 'CHF', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (40, 'Taiwan New Dollars (TWD)', 'TWD', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (41, 'United Arab Emirates Dirham (AED)', 'AED', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (42, 'Uruguay Pesos (UYU)', 'UYU', '')";
        $sql_query[] = "INSERT INTO currencies VALUES (43, 'Venezuela Bolivar (VEB)', 'VEB', '')";
    }
    // if we don't have the shipping_rates table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "shipping_rates'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE shipping_rates (\r\n\r\n\t\t\t  id int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t  title varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  rate decimal(10,0) NOT NULL default '0',\r\n\r\n\t\t\t  start_weight decimal(10,0) NOT NULL default '0',\r\n\r\n\t\t\t  end_weight decimal(10,0) NOT NULL default '0',\r\n\r\n\t\t\t  PRIMARY KEY  (id)\r\n\r\n\t\t\t)";
        $sql_query[] = "INSERT INTO shipping_rates VALUES (1, 'Light Product Weight', 10, 0, 5)";
        $sql_query[] = "INSERT INTO shipping_rates VALUES (2, 'Heavy Product Weight', 20, 5, 10)";
    }
    // if we don't have the shipping_zones table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "shipping_zones'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE shipping_zones (\r\n\r\n\t\t\t  id int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t  name varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  country_id int(11) NOT NULL default '0',\r\n\r\n\t\t\t  parent_zone varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  tax_rate decimal(10,0) NOT NULL default '0',\r\n\r\n\t\t\t  shipping_rate_id int(11) NULL default '0',\r\n\r\n\t\t\t  PRIMARY KEY  (id)\r\n\r\n\t\t\t)";
        $sql_query[] = "INSERT INTO shipping_zones VALUES (1, 'United States', 1, '', 0, 1)";
    }
    // if we don't have the store_settings table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "store_settings'")) {
        $sql_query[] = "\r\n\t\t\t\r\n\t\t\tCREATE TABLE store_settings (\r\n\r\n\t\t\t  ssl_url int(11) default NULL,\r\n\r\n\t\t\t  add_to_cart_behavior int(11) default NULL,\r\n\r\n\t\t\t  add_to_cart_section varchar(200) default NULL,\r\n\r\n\t\t\t  cutomer_login_required tinyint(4) default NULL,\r\n\r\n\t\t\t  inventory_management_on tinyint(4) default NULL,\r\n\r\n\t\t\t  hide_inventory_when_depleted tinyint(4) default NULL,\r\n\r\n\t\t\t  show_message_when_depleted tinyint(4) default NULL,\r\n\r\n\t\t\t  depleted_inventory_message varchar(250) default NULL,\r\n\r\n\t\t\t  send_low_inventory_email_notification tinyint(4) default NULL,\r\n\r\n\t\t\t  store_address varchar(150) NOT NULL default '',\r\n\r\n\t\t\t  store_city varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  store_state varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  store_zip varchar(50) NOT NULL default '',\r\n\r\n\t\t\t  store_country varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  owner_email varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  unit_system varchar(100) NOT NULL default '',\r\n\r\n\t\t\t  store_currency varchar(5) NOT NULL default ''\r\n\r\n\t\t\t)";
    }
    // if we don't have the zones_rates table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "zones_rates'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE zones_rates (\r\n\r\n\t\t\t  shipping_rate_id int(11) NOT NULL default '0',\r\n\r\n\t\t\t  shipping_zone_id int(11) NOT NULL default '0'\r\n\r\n\t\t\t)";
        $sql_query[] = "INSERT INTO zones_rates VALUES (1, 1)";
        $sql_query[] = "INSERT INTO zones_rates VALUES (2, 1)";
    }
    // if we don't have the product_custom_fields table, let's create it
    if (!getRows("SHOW TABLES LIKE '" . PFX . "product_custom_fields'")) {
        $sql_query[] = "\r\n\t\t\r\n\t\t\tCREATE TABLE product_custom_fields (\r\n\r\n\t\t\t  id int(11) NOT NULL auto_increment,\r\n\r\n\t\t\t  article_id int(11) NOT NULL default '0',\r\n\r\n\t\t\t  field_label varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  field_value varchar(200) NOT NULL default '',\r\n\r\n\t\t\t  PRIMARY KEY  (id)\r\n\r\n\t\t\t)";
    }
    // create the category vendors upon install
    if (!getRows("select * from " . PFX . "txp_category WHERE name = 'vendors'")) {
        $sql_query[] = "INSERT INTO txp_category(name,`type` ,parent,lft,rgt,title)\r\nVALUES ('vendors', 'article', 'root', '0', '0', 'vendors')";
    }
    // create the category products upon install
    if (!getRows("select * from " . PFX . "txp_category WHERE name = 'products'")) {
        $sql_query[] = "INSERT INTO txp_category(name,`type` ,parent,lft,rgt,title)\r\nVALUES ('products', 'article', 'root', '0', '0', 'products')";
    }
    // if txp_lang doesn't hold the values we need, let's update/create them
    if (!getRows("SELECT * FROM `" . PFX . "txp_lang` WHERE `data` LIKE '%Stock%'")) {
        $arr_modifications = array('category1' => "Category", 'category2' => "Vendor");
        while (list($key, $value) = each($arr_modifications)) {
            $sql_query[] = "UPDATE `txp_lang` SET `data`='{$value}' WHERE `name`='{$key}'";
        }
        $sql_query[] = "INSERT INTO `txp_lang` (`id`,`lang`,`name`,`event`,`data`,`lastmod`) VALUES\r\n\t\t\t\t\t\t(NULL,'en-gb','price','common','Price',CURRENT_TIMESTAMP)";
        $sql_query[] = "INSERT INTO `txp_lang` (`id`,`lang`,`name`,`event`,`data`,`lastmod`) VALUES\r\n\t\t\t\t\t\t(NULL,'en-gb','stock','common','Stock',CURRENT_TIMESTAMP)";
    }
    //DEBUG
    //if ( $sql_query ) dmp($sql_query);
    // if we have any queries, let's run them
    if (is_array($sql_query)) {
        foreach ($sql_query as $query) {
            $result = safe_query($query);
            if (!$result) {
                echo "<h3>There was an error with ln_txp_commerce install. Please check the log for more details.</h3>";
            }
        }
    }
    rebuild_tree_full("article");
}
Example #6
0
function zem_event_cat_tab_multiedit()
{
    $method = ps('edit_method');
    $things = ps('selected');
    if ($things) {
        foreach ($things as $catid) {
            $catid = assert_int($catid);
            if ($method == 'delete') {
                $catname = safe_field('name', 'txp_category', "id = {$catid}");
                if (safe_delete('txp_category', "id = {$catid}")) {
                    if ($catname) {
                        safe_update('txp_category', "parent = 'root'", "type = 'event' and parent = '" . doSlash($catname) . "'");
                    }
                    $categories[] = $catid;
                }
            }
        }
        if (function_exists('rebuild_tree_full')) {
            rebuild_tree_full('event');
        } else {
            rebuild_tree('root', 1, 'event');
        }
        $message = zem_event_gTxt('categories_deleted', array('{list}' => join(', ', $categories)));
        zem_event_cat_tab_list($message);
    }
}