Example #1
0
function paypal_upgrade()
{
    global $_CONF, $_TABLES, $_USER, $_DB_dbms, $LANG_PAYPAL_1, $_PAY_CONF;
    $currentVersion = DB_getItem($_TABLES['plugins'], 'pi_version', "pi_name = 'paypal'");
    $code_version = plugin_chkVersion_paypal();
    if ($currentVersion == $code_version) {
        // nothing to do
        return true;
    }
    require_once $_CONF['path'] . 'plugins/paypal/autoinstall.php';
    require_once $_CONF['path'] . 'plugins/paypal/install_defaults.php';
    require_once $_CONF['path_system'] . 'classes/config.class.php';
    if (!plugin_compatible_with_this_version_paypal('paypal')) {
        return 3002;
    }
    // other update code goes here
    switch ($currentVersion) {
        case '0.1rc1':
        case '0.1':
        case '0.1.1':
        case '0.2':
            DB_query("UPDATE {$_TABLES['plugins']} SET pi_homepage='http://geeklog.fr' WHERE pi_name='paypal", 1);
        case '1.0':
            $c = config::get_instance();
            //This is main subgroup #0
            $c->add('sg_main', NULL, 'subgroup', 0, 0, NULL, 0, true, 'paypal');
            //Main settings
            $c->add('fs_main', NULL, 'fieldset', 0, 0, NULL, 0, true, 'paypal');
            $c->add('paypal_folder', $_PAY_DEFAULT['paypal_folder'], 'text', 0, 0, 0, 1, true, 'paypal');
            $c->add('menulabel', $_PAY_DEFAULT['menulabel'], 'text', 0, 0, 0, 2, true, 'paypal');
            $c->add('paypal_login_required', $_PAY_DEFAULT['paypal_login_required'], 'select', 0, 0, 3, 12, true, 'paypal');
            $c->add('hide_paypal_menu', $_PAY_DEFAULT['hide_paypal_menu'], 'select', 0, 0, 3, 13, true, 'paypal');
            $c->add('paypalURL', $_PAY_DEFAULT['paypalURL'], 'text', 0, 0, 0, 23, true, 'paypal');
            $c->add('receiverEmailAddr', $_PAY_DEFAULT['receiverEmailAddr'], 'text', 0, 0, 0, 24, true, 'paypal');
            $c->add('currency', $_PAY_DEFAULT['currency'], 'select', 0, 0, 20, 33, true, 'paypal');
            $c->add('anonymous_buy', $_PAY_DEFAULT['anonymous_buy'], 'select', 0, 0, 3, 35, true, 'paypal');
            $c->add('purchase_email_user', $_PAY_DEFAULT['purchase_email_user'], 'select', 0, 0, 3, 47, true, 'paypal');
            $c->add('purchase_email_user_attach', $_PAY_DEFAULT['purchase_email_user_attach'], 'select', 0, 0, 3, 49, true, 'paypal');
            $c->add('purchase_email_anon', $_PAY_DEFAULT['purchase_email_anon'], 'select', 0, 0, 3, 51, true, 'paypal');
            $c->add('purchase_email_anon_attach', $_PAY_DEFAULT['purchase_email_anon_attach'], 'select', 0, 0, 3, 53, true, 'paypal');
            $c->add('maxPerPage', $_PAY_DEFAULT['maxPerPage'], 'text', 0, 0, 0, 63, true, 'paypal');
            $c->add('categoryColumns', $_PAY_DEFAULT['categoryColumns'], 'text', 0, 0, 0, 65, true, 'paypal');
            //images
            $c->add('fs_images', NULL, 'fieldset', 0, 1, NULL, 0, true, 'paypal');
            $c->add('max_images_per_products', $_PAY_DEFAULT['max_images_per_products'], 'text', 0, 1, 0, 1, true, 'paypal');
            $c->add('max_image_width', $_PAY_DEFAULT['max_image_width'], 'text', 0, 1, 0, 2, true, 'paypal');
            $c->add('max_image_height', $_PAY_DEFAULT['max_image_height'], 'text', 0, 1, 0, 3, true, 'paypal');
            $c->add('max_image_size', $_PAY_DEFAULT['max_image_size'], 'text', 0, 1, 0, 4, true, 'paypal');
            $c->add('max_thumbnail_size', $_PAY_DEFAULT['max_thumbnail_size'], 'text', 0, 1, 0, 5, true, 'paypal');
            //This is display subgroup #1
            $c->add('sg_display', NULL, 'subgroup', 1, 0, NULL, 0, true, 'paypal');
            // Display settings
            $c->add('fs_display', NULL, 'fieldset', 1, 8, NULL, 0, true, 'paypal');
            $c->add('paypal_main_header', NULL, 'text', 1, 8, 0, 2, true, 'paypal');
            $c->add('paypal_main_footer', NULL, 'text', 1, 8, 0, 4, true, 'paypal');
            DB_query("CREATE TABLE {$_TABLES['paypal_downloads']} (\n            id int auto_increment,\n            product_id int NOT NULL,\n            file varchar(255),\n            PRIMARY KEY (id)\n\t        ) ENGINE=MyISAM\n\t        ", 1);
            DB_query("CREATE TABLE {$_TABLES['paypal_images']} (\n            pi_pid varchar(40) NOT NULL,\n            pi_img_num tinyint(2) unsigned NOT NULL,\n            pi_filename varchar(128) NOT NULL,\n            PRIMARY KEY (pi_pid,pi_img_num)\n\t        ) ENGINE=MyISAM\n\t        ", 1);
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n            DROP small_pic, \n            DROP picture, \n\t\t    ADD logged tinyint(1) default '0'\n\t\t    ", 1);
            DB_query("INSERT INTO {$_TABLES['blocks']} (is_enabled, name, type, title, tid, blockorder, content, onleft, phpblockfn, owner_id, group_id, perm_owner, perm_group) VALUES (1,'cart_block','phpblock','Cart','all',1,'',0,'phpblock_paypal_cart',{$_USER['uid']},4,3,3)", 1);
        case '1.1':
        case '1.1.1':
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n\t\t    ADD hits mediumint(8) unsigned NOT NULL default '0', \n\t\t    ADD hidden tinyint(1) default '0'\n\t\t    ", 1);
        case '1.1.2':
            $c = config::get_instance();
            $c->add('thumb_width', $_PAY_DEFAULT['thumb_width'], 'text', 0, 1, 0, 10, true, 'paypal');
            $c->add('thumb_height', $_PAY_DEFAULT['thumb_height'], 'text', 0, 1, 0, 11, true, 'paypal');
            $c->add('products_col', $_PAY_DEFAULT['products_col'], 'select', 1, 8, 21, 10, true, 'paypal');
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n\t\t    ADD active tinyint(1) default '1'\n\t\t    ", 1);
        case '1.1.3':
            DB_query("ALTER TABLE {$_TABLES['paypal_downloads']}\n\t\t    ADD dl_date datetime,\n\t\t    ADD user_id int NOT NULL\n\t\t    ", 1);
        case '1.1.4':
            DB_query("CREATE TABLE {$_TABLES['paypal_subscriptions']} (\n            id int(11) auto_increment,\n            product_id int NOT NULL,\n            user_id int NOT NULL,\n            txn_id varchar(255),\n            purchase_date datetime,\n            expiration datetime,\n            price decimal(12,2) unsigned,\n            status varchar(12),\n            add_to_group int(5) default NULL,\n            notification tinyint(1) unsigned NOT NULL default '0',\n            PRIMARY KEY  (id)\n\t        ) ENGINE=MyISAM\n\t        ");
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n\t\t    ADD type varchar(15) default 'product' AFTER id,\n\t\t\tADD item_id varchar(40) NOT NULL AFTER type,\n\t\t\tADD show_in_blocks tinyint(1) unsigned default '1',\n\t\t\tADD duration int(5) default NULL,\n            ADD duration_type varchar(10) NOT NULL default 'month',\n            ADD add_to_group int(5) default NULL\n\t\t    ");
            DB_query("INSERT INTO {$_TABLES['blocks']} (is_enabled, name, type, title, tid, blockorder, content, onleft, phpblockfn, owner_id, group_id, perm_owner, perm_group) VALUES (1,'paypal_randomBlock','phpblock','Random product','all',1,'',0,'phpblock_paypal_randomBlock',{$_USER['uid']},#group#,3,3)");
            $c->add('sg_myshop', NULL, 'subgroup', 2, 0, NULL, 0, true, 'paypal');
            $c->add('fs_shopdetails', NULL, 'fieldset', 2, 20, NULL, 0, true, 'paypal');
            $c->add('shop_name', NULL, 'text', 2, 20, 0, 2, true, 'paypal');
            $c->add('shop_street1', NULL, 'text', 2, 20, 0, 4, true, 'paypal');
            $c->add('shop_street2', NULL, 'text', 2, 20, 0, 5, true, 'paypal');
            $c->add('shop_postal', NULL, 'text', 2, 20, 0, 6, true, 'paypal');
            $c->add('shop_city', NULL, 'text', 2, 20, 0, 8, true, 'paypal');
            $c->add('shop_country', NULL, 'text', 2, 20, 0, 9, true, 'paypal');
            $c->add('shop_siret', NULL, 'text', 2, 20, 0, 10, true, 'paypal');
            $c->add('shop_phone1', NULL, 'text', 2, 20, 0, 12, true, 'paypal');
            $c->add('shop_phone2', NULL, 'text', 2, 20, 0, 14, true, 'paypal');
            $c->add('shop_fax', NULL, 'text', 2, 20, 0, 16, true, 'paypal');
            DB_query("CREATE TABLE {$_TABLES['paypal_users']} (\n            user_id mediumint(8) unsigned NOT NULL,\n            user_name VARCHAR(80) default NULL,\n\t        user_contact VARCHAR(80) default NULL,\n\t        user_proid VARCHAR(20) default NULL,\n\t        user_street1 VARCHAR(50) default NULL,\n\t        user_street2 VARCHAR(50) default NULL,\n            user_postal VARCHAR(20) default NULL,\n            user_city VARCHAR(30) default NULL,\n\t        user_country VARCHAR(30) default NULL,\n\t        user_phone1 varchar(20) default NULL,\n\t        user_phone2 varchar(20) default NULL,\n\t        user_fax varchar(20) default NULL,\n            status tinyint(1) DEFAULT '0',\n            PRIMARY KEY (user_id)\n            ) ENGINE=MyISAM\n            ");
            $c->add('fs_checkoutpage', NULL, 'fieldset', 1, 10, NULL, 0, true, 'paypal');
            $c->add('image_url', NULL, 'text', 1, 10, 0, 2, true, 'paypal');
            $c->add('cpp_header_image', NULL, 'text', 1, 10, 0, 4, true, 'paypal');
            $c->add('cpp_headerback_color', NULL, 'text', 1, 10, 0, 6, true, 'paypal');
            $c->add('cpp_headerborder_color', NULL, 'text', 1, 10, 0, 8, true, 'paypal');
            $c->add('cpp_payflow_color', NULL, 'text', 1, 10, 0, 10, true, 'paypal');
            $c->add('cs', 0, 'select', 1, 10, 22, 12, true, 'paypal');
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n            ADD owner_id mediumint(8) unsigned NOT NULL default '2',\n            ADD group_id mediumint(8) unsigned NOT NULL default '1',\n            ADD perm_owner tinyint(1) unsigned NOT NULL default '3',\n            ADD perm_group tinyint(1) unsigned NOT NULL default '2',\n            ADD perm_members tinyint(1) unsigned NOT NULL default '2',\n            ADD perm_anon tinyint(1) unsigned NOT NULL default '2'\n            ");
            $c->add('fs_permissions', NULL, 'fieldset', 0, 2, NULL, 0, true, 'paypal');
            $c->add('default_permissions', $_PAY_DEFAULT['default_permissions'], '@select', 0, 2, 12, 10, true, 'paypal');
            $c->add('site_name', $_PAY_DEFAULT['site_name'], 'text', 0, 0, 0, 7, true, 'paypal');
            $c->add('order', $_PAY_DEFAULT['order'], 'select', 1, 8, 23, 15, true, 'paypal');
            $c->add('view_membership', $_PAY_DEFAULT['view_membership'], 'select', 1, 8, 3, 20, true, 'paypal');
            $c->add('view_review', $_PAY_DEFAULT['view_review'], 'select', 1, 8, 3, 25, true, 'paypal');
            $c->add('display_2nd_buttons', $_PAY_DEFAULT['display_2nd_buttons'], 'select', 1, 8, 3, 35, true, 'paypal');
        case '1.2.1':
            $c = config::get_instance();
            $c->add('display_blocks', '3', 'select', 1, 8, 24, 45, true, 'paypal');
            $c->add('display_item_id', '0', 'select', 1, 8, 3, 55, true, 'paypal');
            $c->add('display_complete_memberships', '0', 'select', 1, 8, 3, 22, true, 'paypal');
            $c->add('enable_pay_by_ckeck', 0, 'select', 0, 0, 3, 70, true, 'paypal');
            $c->add('enable_buy_now', 1, 'select', 0, 0, 3, 80, true, 'paypal');
            $c->del('site_name', 'paypal');
            $_PAY_CONF_OLD = $c->get_config('paypal');
            //move images settings
            $c->del('fs_images', 'paypal');
            $c->del('max_images_per_products', 'paypal');
            $c->del('max_image_width', 'paypal');
            $c->del('max_image_height', 'paypal');
            $c->del('max_image_size', 'paypal');
            $c->del('max_thumbnail_size', 'paypal');
            $c->del('thumb_width', 'paypal');
            $c->del('thumb_height', 'paypal');
            $c->del('maxPerPage', 'paypal');
            $c->del('categoryColumns', 'paypal');
            $c->add('fs_images', NULL, 'fieldset', 1, 9, NULL, 0, true, 'paypal');
            $c->add('max_images_per_products', $_PAY_CONF_OLD['max_images_per_products'], 'text', 1, 9, 0, 1, true, 'paypal');
            $c->add('max_image_width', $_PAY_CONF_OLD['max_image_width'], 'text', 1, 9, 0, 2, true, 'paypal');
            $c->add('max_image_height', $_PAY_CONF_OLD['max_image_height'], 'text', 1, 9, 0, 3, true, 'paypal');
            $c->add('max_image_size', $_PAY_CONF_OLD['max_image_size'], 'text', 1, 9, 0, 4, true, 'paypal');
            $c->add('max_thumbnail_size', $_PAY_CONF_OLD['max_thumbnail_size'], 'text', 1, 9, 0, 5, true, 'paypal');
            $c->add('thumb_width', $_PAY_CONF_OLD['thumb_width'], 'text', 1, 9, 0, 10, true, 'paypal');
            $c->add('thumb_height', $_PAY_CONF_OLD['thumb_height'], 'text', 1, 9, 0, 11, true, 'paypal');
            $c->add('maxPerPage', $_PAY_CONF_OLD['maxPerPage'], 'text', 1, 9, 0, 20, true, 'paypal');
            $c->add('categoryColumns', $_PAY_CONF_OLD['categoryColumns'], 'text', 1, 9, 0, 22, true, 'paypal');
        case '1.3':
            $c = config::get_instance();
            $c->add('enable_pay_by_paypal', 1, 'select', 0, 0, 3, 65, true, 'paypal');
        case '1.3.1':
            DB_query("CREATE TABLE {$_TABLES['paypal_categories']} (\n\t\t\tcat_id smallint(5) unsigned NOT NULL auto_increment,\n\t\t\tparent_id smallint(5) unsigned default '0',\n\t\t\tcat_name varchar(255) default '',\n\t\t\tdescription text default '',\n\t\t\timage varchar(255) default '',\n\t\t\tenabled tinyint(1) unsigned default '1',\n\t\t\tgroup_id mediumint(8) unsigned NOT NULL default '1',\n\t\t\towner_id mediumint(8) unsigned NOT NULL default '1',\n\t\t\tperm_owner tinyint(1) unsigned NOT NULL default '3',\n\t\t\tperm_group tinyint(1) unsigned NOT NULL default '3',\n\t\t\tperm_members tinyint(1) unsigned NOT NULL default '2',\n\t\t\tperm_anon tinyint(1) unsigned NOT NULL default '2',\n\t\t\tPRIMARY KEY  (cat_id)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_products']} \n            ADD cat_id int(11) unsigned NOT NULL default '0' AFTER name\n            ");
            // Migrate existing categories to the new category table - Lee Garner glfusion.org
            $res = DB_query("SELECT DISTINCT category\n\t\t\t\t\tFROM {$_TABLES['paypal_products']}\n\t\t\t\t\tWHERE category <> '' and category IS NOT NULL");
            if (DB_error()) {
                COM_errorLog("Could not retrieve old categories");
                return 1;
            }
            $admin_group = addslashes(DB_getItem($_TABLES['groups'], 'grp_id', "grp_name = 'Paypal Admin'"));
            if (DB_numRows($res) > 0) {
                while ($A = DB_fetchArray($res, false)) {
                    $category = addslashes($A['category']);
                    DB_query("INSERT INTO {$_TABLES['paypal_categories']}\n\t\t\t\t\t\t\t(cat_name, group_id, owner_id)\n\t\t\t\t\t\tVALUES ('{$category}','{$admin_group}',{$_USER['uid']})");
                    if (DB_error()) {
                        COM_errorLog("Could not add new category {$A['category']}");
                        return 1;
                    }
                    $cats[$A['category']] = DB_insertID();
                }
                // Now populate the cross-reference table
                $res = DB_query("SELECT id, category\n\t\t\t\t\t\tFROM {$_TABLES['paypal_products']}");
                if (DB_error()) {
                    COM_errorLog("Error retrieving category data from products");
                    return 1;
                }
                if (DB_numRows($res) > 0) {
                    while ($A = DB_fetchArray($res, false)) {
                        DB_query("UPDATE {$_TABLES['paypal_products']}\n\t\t\t\t\t\t\tSET cat_id = '{$cats[$A['category']]}'\n\t\t\t\t\t\t\tWHERE id = '{$A['id']}'");
                        if (DB_error()) {
                            COM_errorLog("Error updating prodXcat table");
                            return 1;
                        }
                    }
                }
                DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n\t\t\t\t\t\tDROP category");
            }
        case '1.3.2':
            $c = config::get_instance();
            $c->add('categoryHeading', $LANG_PAYPAL_1['category_heading'], 'text', 1, 9, 0, 21, true, 'paypal');
            $c->add('displayCatImage', 1, 'select', 1, 9, 3, 30, true, 'paypal');
            $c->add('catImageWidth', '100', 'text', 1, 9, 0, 40, true, 'paypal');
            $c->add('seo_shop_title', NULL, 'text', 2, 20, 0, 100, true, 'paypal');
            $c->add('displayCatDescription', 1, 'select', 1, 9, 3, 50, true, 'paypal');
        case '1.3.3':
            DB_query("ALTER TABLE {$_TABLES['paypal_products']} \n            ADD created datetime DEFAULT NULL AFTER description,\n\t\t\tADD customisable tinyint(1) AFTER price,\n\t\t\tADD discount_a  decimal(12,2) unsigned AFTER price,\n\t\t\tADD discount_p tinyint(2) AFTER price,\n\t\t\tADD price_ref  decimal(12,2) unsigned AFTER price,\n\t\t\tADD prov_id mediumint(8) default NULL AFTER show_in_blocks\n            ");
            $created = date("YmdHis");
            DB_query("UPDATE {$_TABLES['paypal_products']}\n\t\t\tSET created='{$created}' \n\t\t\tWHERE 1=1\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_purchases']} \n            ADD product_name varchar(255) AFTER product_id\n            ");
            DB_query("CREATE TABLE {$_TABLES['paypal_attributes']} (\n\t\t\tat_id int(11) NOT NULL auto_increment,\n\t\t\tat_type int(11) NOT NULL default '0',\n\t\t\tat_name varchar(255),\n\t\t\tat_code varchar(30),\n\t\t\tat_enabled tinyint(1) default '1',\n\t\t\tat_price decimal(12,2) default '0',\n\t\t\tat_image varchar(255) default NULL,\n\t\t\tPRIMARY KEY (at_id)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_attribute_type']} (\n\t\t\tat_tid int(11) NOT NULL auto_increment,\n\t\t\tat_tname varchar(255),\n\t\t\tat_torder tinyint(3) default NULL,\n\t\t\tPRIMARY KEY (at_tid)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_product_attribute']} (\n\t\t\tpa_id int(11) NOT NULL auto_increment,\n\t\t\tpa_pid int(11),\n\t\t\tpa_aid int(11),\n\t\t\tPRIMARY KEY (pa_id)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_stock']} (\n\t\t\tst_id varchar(255) NOT NULL,\n\t\t\tst_pid int(11) NOT NULL,\n\t\t\tst_qty int(6) default '0',\n\t\t\tqmax int(6) default NULL,\n\t\t\tqmin int(6) default NULL,\n\t\t\tPRIMARY KEY (st_id)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_delivery']} (\n\t\t\tdid int(11) NOT NULL auto_increment,\n\t\t\tdeli_date datetime DEFAULT NULL,\n\t\t\tuser_id mediumint(8),\n\t\t\tprovider_id mediumint(8),\n\t\t\tPRIMARY KEY  (did)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_stock_movements']} (\n\t\t\tmid int(11) NOT NULL auto_increment,\n\t\t\tmove_date datetime DEFAULT NULL,\n\t\t\tstock_id varchar(255) NOT NULL,\n\t\t\tdeli_id mediumint(8) NOT NULL,\n\t\t\tPRIMARY KEY (mid)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_providers']} (\n\t\t\tprov_id mediumint(8) NOT NULL auto_increment,\n\t\t\tprov_name VARCHAR(80)  NOT NULL,\n\t\t\tPRIMARY KEY (prov_id)\n\t\t\t) ENGINE=MyISAM\n\t\t\t");
        case '1.3.4':
            DB_query("ALTER TABLE {$_TABLES['paypal_attributes']} \n            ADD at_order tinyint(3) default '1'\n\t\t\t");
        case '1.3.5':
            $c = config::get_instance();
            $c->add('attribute_thumbnail_size', $_PAY_DEFAULT['attribute_thumbnail_size'], 'text', 1, 9, 0, 7, true, 'paypal');
        case '1.3.6':
            DB_query("ALTER TABLE {$_TABLES['paypal_stock_movements']} \n            ADD move_qty int(6) DEFAULT '0'\n\t\t\t");
        case '1.3.7':
            // Set default item_id
            $res = DB_query("SELECT id, item_id\n\t\t\t\t\tFROM {$_TABLES['paypal_products']}");
            if (DB_error()) {
                COM_errorLog("Error retrieving item_id data from products");
                return 1;
            }
            if (DB_numRows($res) > 0) {
                while ($A = DB_fetchArray($res, false)) {
                    if ($A['item_id'] == '') {
                        DB_query("UPDATE {$_TABLES['paypal_products']}\n\t\t\t\t\t\t\tSET item_id = '{$A['id']}'\n\t\t\t\t\t\t\tWHERE id = '{$A['id']}'");
                        if (DB_error()) {
                            COM_errorLog("Error updating default item_id");
                            return 1;
                        }
                    }
                }
            }
        case '1.3.12':
            DB_query("ALTER TABLE {$_TABLES['paypal_stock_movements']} \n            ADD move_cpid varchar(30) NOT NULL AFTER move_qty\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_stock']} \n            ADD st_cpid varchar(30) NOT NULL AFTER st_pid\n\t\t\t");
        case '1.3.13':
            // Set stock
            set_time_limit(120);
            $sql = "SELECT * FROM {$_TABLES['paypal_purchases']} " . "WHERE status='complete'";
            $res = DB_query($sql);
            $nrows = DB_numRows($res);
            COM_errorLog('Initial stock movement: *** Number of movements= ' . $nrows);
            for ($i = 0; $i < $nrows; $i++) {
                $A = DB_fetchArray($res);
                $sql_ipn = "SELECT * FROM {$_TABLES['paypal_ipnlog']} WHERE txn_id = '{$A['txn_id']}'";
                $res_ipn = DB_query($sql_ipn);
                $B = DB_fetchArray($res_ipn);
                COM_errorLog('Initial stock movement: txn_id=' . $A['txn_id']);
                // Allow all serialized data to be available to the template
                $ipn = '';
                if ($B['ipn_data'] != '') {
                    $out = preg_replace('!s:(\\d+):"(.*?)";!se', "'s:'.strlen('\$2').':\"\$2\";'", $B['ipn_data']);
                    $ipn = unserialize($out);
                    if ($ipn['quantity1'] != '') {
                        //multi products
                        $i2 = 1;
                        for (;;) {
                            if ($ipn['quantity' . $i2] == '') {
                                break;
                            }
                            // stock movement
                            $stock_id = PAYPAL_getStockId($ipn['item_number' . $i2]);
                            $qty = $ipn['quantity' . $i2];
                            PAYPAL_stockMovement($stock_id, $ipn['item_number' . $i2], -$qty);
                            COM_errorLog('Initial stock movement: -- stock_id=' . $stock_id . ' | qty= ' . -$qty);
                            $i2++;
                        }
                    } else {
                        // stock movement
                        $stock_id = PAYPAL_getStockId($ipn['item_number']);
                        $qty = $ipn['quantity1'];
                        PAYPAL_stockMovement($stock_id, $ipn['item_number'], -$qty);
                        COM_errorLog('Initial stock movement: -- stock_id= ' . $stock_id . ' | qty= ' . -$qty);
                    }
                }
            }
        case '1.3.14':
            DB_query("ALTER TABLE {$_TABLES['paypal_products']} \n            CHANGE download product_type TINYINT(1) NOT NULL default '0' AFTER customisable,\n\t\t\tADD shipping_type TINYINT(1) NOT NULL default '0' AFTER physical,\n\t\t\tADD taxable tinyint(1) AFTER physical,\n\t\t\tADD weight FLOAT(6,3) DEFAULT '0.000' AFTER physical\n            ");
            DB_query("ALTER TABLE {$_TABLES['paypal_products']} \n\t\t\tDROP physical\n            ");
        case '1.3.15':
            DB_query("CREATE TABLE {$_TABLES['paypal_shipper_service']} (\n\t\t\t\tshipper_service_id int(11) NOT NULL auto_increment,\n\t\t\t\tshipper_service_name varchar(100) NOT NULL,\n\t\t\t\tshipper_service_service varchar(255) NOT NULL,\n\t\t\t\tshipper_service_description text,\n\t\t\t\tPRIMARY KEY  (shipper_service_id) \n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_shipping_to']} (\n\t\t\t\tshipping_to_id int(11) NOT NULL auto_increment,\n\t\t\t\tshipping_to_name varchar(255) NOT NULL,\n\t\t\t\tPRIMARY KEY  (shipping_to_id) \n\t\t\t) ENGINE=MyISAM\n\t\t\t");
            DB_query("CREATE TABLE {$_TABLES['paypal_shipping_cost']} (\n\t\t\t\tshipping_id int(11) NOT NULL auto_increment,\n\t\t\t\tshipping_shipper_id int(11) NOT NULL,\n\t\t\t\tshipping_min FLOAT(6,2)  NOT NULL DEFAULT '0.00',\n\t\t\t\tshipping_max FLOAT(6,2) NOT NULL DEFAULT '0.00',\n\t\t\t\tshipping_destination_id int(11) NOT NULL,\n\t\t\t\tshipping_amt FLOAT (6,2) NOT NULL DEFAULT '0.00',\n\t\t\t\tPRIMARY KEY  (shipping_id) \n\t\t\t) ENGINE=MyISAM\n\t\t\t");
        case '1.3.16':
            $c = config::get_instance();
            $c->del('enable_buy_now', 'paypal');
        case '1.3.17':
            DB_query("ALTER TABLE {$_TABLES['paypal_shipping_to']} \n\t\t\tADD shipping_to_order tinyint(3) default '1'\n\t\t\t");
        case '1.3.18':
            DB_query("ALTER TABLE {$_TABLES['paypal_shipping_cost']} \n\t\t\t    MODIFY shipping_min FLOAT(6,3) NOT NULL DEFAULT '0.000',\n\t\t\t    MODIFY shipping_max FLOAT(6,3) NOT NULL DEFAULT '0.000'\n\t\t\t");
        case '1.3.19':
            DB_query("ALTER TABLE {$_TABLES['paypal_attributes']} \n\t\t\t    MODIFY at_order smallint(5) unsigned NOT NULL default '1'\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_attribute_type']}\n\t\t\t    MODIFY at_torder smallint(5) unsigned NOT NULL default '1'\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_shipping_to']}\n\t\t\t    MODIFY shipping_to_order smallint(5) unsigned NOT NULL default '1'\n\t\t\t");
        case '1.3.20':
            DB_query("ALTER TABLE {$_TABLES['paypal_shipper_service']}\n\t\t        ADD shipper_service_exclude_cat smallint(5) unsigned NOT NULL default '0'\n\t\t\t");
        case '1.3.21':
        case '1.4.0':
        case '1.4.1':
        case '1.4.2':
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n            DROP taxable \n\t\t    ", 1);
        case '1.4.3':
        case '1.4.4':
        case '1.5.0':
            DB_query("ALTER TABLE {$_TABLES['paypal_products']}\n\t\t        ADD billingamt decimal(12,2) unsigned AFTER duration_type\n\t\t\t");
        case '1.5.1':
            DB_query("CREATE TABLE {$_TABLES['paypal_recurrent']} (\n                rid int auto_increment,\n                profileid varchar(30) NOT NULL,\n                recdate datetime NOT NULL,\n                status varchar(20),\n                PRIMARY KEY (rid) \n            ) ENGINE=MyISAM\n            ");
        case '1.5.2':
            DB_query("ALTER TABLE {$_TABLES['paypal_recurrent']}\n\t\t        ADD user_id mediumint(8) unsigned NOT NULL\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_recurrent']}\n\t\t        ADD product_id mediumint(8) unsigned NOT NULL\n\t\t\t");
            DB_query("ALTER TABLE {$_TABLES['paypal_recurrent']}\n\t\t        ADD group_id mediumint(8) unsigned NOT NULL\n\t\t\t");
            $c = config::get_instance();
            $c->add('API_UserName', 0, 'text', 0, 0, 0, 100, true, 'paypal');
            $c->add('API_Password', 0, 'text', 0, 0, 0, 110, true, 'paypal');
            $c->add('API_Signature', 0, 'text', 0, 0, 0, 120, true, 'paypal');
        case '1.6.0':
        case '1.6.1':
        case '1.6.2':
        default:
            // update plugin version number
            $inst_parms = plugin_autoinstall_paypal('paypal');
            $pi_gl_version = $inst_parms['info']['pi_gl_version'];
            DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '{$code_version}', pi_gl_version = '{$pi_gl_version}' WHERE pi_name = 'paypal'");
            COM_errorLog("Updated paypal plugin from v{$currentVersion} to v{$code_version}", 1);
            //move public_html/paypal to custom folder if needed
            if ($_PAY_CONF['paypal_folder'] != 'paypal' && $_PAY_CONF['paypal_folder'] != '') {
                if (rename($_CONF['path_html'] . $_PAY_CONF['paypal_folder'], $_CONF['path_html'] . $_PAY_CONF['paypal_folder'] . '_old')) {
                    COM_errorLog("PAYPAL - Renamed {$_PAY_CONF['paypal_folder']} folder.");
                } else {
                    COM_errorLog("PAYPAL - Can't rename {$_PAY_CONF['paypal_folder']} folder.");
                }
                sleep(5);
                if (rename($_CONF['path_html'] . 'paypal', $_CONF['path_html'] . $_PAY_CONF['paypal_folder'])) {
                    COM_errorLog("PAYPAL - Moved paypal files to {$_PAY_CONF['paypal_folder']} folder.");
                } else {
                    COM_errorLog("PAYPAL - Can't move paypal files to {$_PAY_CONF['paypal_folder']} folder.");
                }
                PAYPAL_delTree($_CONF['path_html'] . $_PAY_CONF['paypal_folder'] . '_old');
            }
            /* This code is for statistics ONLY */
            $message = 'Completed paypal plugin upgrade: ' . date('m d Y', time()) . "   AT " . date('H:i', time()) . "\n";
            $message .= 'Site: ' . $_CONF['site_url'] . ' and Sitename: ' . $_CONF['site_name'] . "\n";
            if (function_exists('PAYPALPRO_notifyExpiration')) {
                $message .= 'Proversion' . "\n";
            }
            COM_mail("*****@*****.**", "Updated paypal plugin from v{$currentVersion} to v{$code_version}", $message);
    }
    return true;
}
Example #2
0
function PAYPAL_requiredSettings()
{
    $retval = '<style type="text/css">
			.success { color:green; }
			.error { color:red; }
		</style>';
    $code_version = plugin_chkVersion_paypal();
    $retval .= '<small><table border="0" cellspacing="10" cellpadding="20" width="100%"><tr><td width="50%"><h3>Paypal plugin v' . $code_version . ' Required settings</h3>' . LB;
    $retval .= "<ul>";
    $phpVersion = phpversion();
    $class = 'error';
    if ($phpVersion >= 5.2) {
        $class = 'success';
    }
    $retval .= "<li class='{$class}'><strong>PHP version:</strong> Requires version 5.2 or newer, this server is using version {$phpVersion}</li>\n";
    $_SESSION['support'] = true;
    if ($_SESSION['support'] === true) {
        $retval .= "<li class='success'><strong>Session support:</strong> Enabled</li>\n";
    } else {
        $retval .= "<li class='error'><strong>Session support:</strong> Not enabled</li>\n";
    }
    $retval .= "</ul>";
    $retval .= "</td><td><h3>Recommended settings</h3>\n";
    $retval .= "<ul>";
    $registerGlobals = ini_get('register_globals');
    if ($registerGlobals) {
        $retval .= "<li class='error'><strong>Register globals:</strong> On</li>\n";
    } else {
        $retval .= "<li class='success'><strong>Register globals:</strong> Off</li>\n";
    }
    $errorReporting = ini_get('error_reporting');
    if ($errorReporting) {
        $retval .= "<li class='error'><strong>Display errors:</strong> On</li>\n";
    } else {
        $retval .= "<li class='success'><strong>Display errors:</strong> Off</li>\n";
    }
    $retval .= "</ul></td></tr></table></small>";
    return $retval;
}