View Single Post
  #10  
Old 02-21-2017, 06:38 AM
 
Pop Electronics Pop Electronics is offline
 

Senior Member
  
Join Date: Oct 2006
Posts: 131
 

Default Re: Smart Search and PHP7

Quote:
Originally Posted by mattstyle2
I got alterdcart onepage checkout to work with php 7 and xc4.7.7

remove:
PHP Code:
// Redefine mysql_real_escape_string for PHP 7 (X-Cart 4.7.x)
if (!function_exists('mysql_real_escape_string') AND class_exists('XCDbCommon'))
{
    
// Extend X-Cart DB class to get protected $link value
    
if (!class_exists('SD_XCDbCommon'))
    {
        class 
SD_XCDbCommon extends XCDbCommon {
            public function 
getLink()
            {
                global 
$sql_obj;
                return 
$sql_obj->link;
            }
        }
    }

    
// Overwrite mysql_real_escape_string with mysqli_real_escape_string
    
function mysql_real_escape_string ($string '')
    {
        
$link = new SD_XCDbCommon();
        return 
mysqli_real_escape_string($link->getLink(), $string);
    }


from modules/cdseolinks/cdseo_config.php if you have that installed.. if not just add the code below to init.php

and move it to
/init.php after
PHP Code:
func_set_time_limit(SECONDS_PER_MIN 5); 

and add a mysql_insert_id function so it looks like this

PHP Code:
// smarty3 needs a lot of time to compile all templates_c from scratch
func_set_time_limit(SECONDS_PER_MIN 5);

// Redefine mysql_real_escape_string for PHP 7 (X-Cart 4.7.x)
if (!function_exists('mysql_real_escape_string') AND class_exists('XCDbCommon'))
{
    
// Extend X-Cart DB class to get protected $link value
    
if (!class_exists('SD_XCDbCommon'))
    {
        class 
SD_XCDbCommon extends XCDbCommon {
            public function 
getLink()
            {
                global 
$sql_obj;
                return 
$sql_obj->link;
            }
        }
    }

    
// Overwrite mysql_real_escape_string with mysqli_real_escape_string
    
function mysql_real_escape_string ($string '')
    {
        
$link = new SD_XCDbCommon();
        return 
mysqli_real_escape_string($link->getLink(), $string);
    }
    function 
mysql_insert_id ()
    {
        
$link = new SD_XCDbCommon();
        return 
mysqli_insert_id($link->getLink());
    }
    
}

/**
 * Allow displaying content in functions, registered in register_shutdown_function()
 */
$zlib_oc ini_get('zlib.output_compression'); 

This will bring back the old mysql functions


then mod /modules/Checkout_One/JSON.php (not sure this is required but I had to do it for hhvm to work).

PHP Code:
function encodeUnsafe($var)
    {
        
// see bug #16908 - regarding numeric locale printing
       // $lc = setlocale(LC_NUMERIC, 0);
       // setlocale(LC_NUMERIC, 'C');
        
$ret $this->_encode($var);
        
//setlocale(LC_NUMERIC, $lc);
        
return json_encode($var);
        
//        return $ret;
        
    

change that function to use json_encode

finally change a template file:
/skin/common_files/modules/Checkout_One/checkout_one_payment_methods.tpl
line 29:
PHP Code:
{foreach from=$payment_methods item=v}
                        <
tbody{* matt remvoe if $v.membershipids || $v.is_cod == 'Y'style="display:none;"{/if*} id="radio_trcell_{$v.paymentid}">
                            <
tr class="{cycle values='rowA,rowB'}"

just comment out the code to make things display:none.. The radio buttons for payment were not available.

seems to work.. I did a test order with a bad cc # and it declined it.. Using BSCE's authorize.net's DPM mod.. Still nned to figure out a way to subscribe mail chimp users still.. I'll update this as I work on it.

also, there's a few @mysql_query functions in the Checkout_One code you need to change to @db_query

find those..
cd modules/Checkout_One
grep -r --include="*.php" "@mysql_query"

find all instances and change to "@db_query"
there's not that many.





-Matt

Thanks, whis also works when still on php 5.6 but upgrading to X-Cart 4.7.7, I did not have to change mysql_query though for just 4.7.7 on php 5.5.
__________________
X-Cart 4.7.7
Fashion Walk template
CDSEO pro, remember anoymous carts, checkout one and some mods I've done myself (ideal, froogle, export shipping labels)
@Linux php5.6, mysql5.6, dedicated server
iDeal Advanced v3.3.1 integration
Reply With Quote