mrossi Posted October 9, 2013 Share Posted October 9, 2013 Upgraded to v7 from v5.4, all I can say is nice work! One problem I am having is my product images have vanished in mobile view. I tried changing the new settings in configure.php with no luck. I have TiM image cache installed. in case anyone has any clue any help much appreciated http://www.isorm.com/mobile/ Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 9, 2013 Share Posted October 9, 2013 Version 7 is looking so improved, great work. Has anyone figured out how to make it work with SEO URL 5 pro? Hello Nick @@papalevies, Thank you. You need to add the support for SEO URL 5 which is included here: Contribution support for iOSC 5.x http://addons.oscommerce.com/info/8578 See also: Add-On Support.doc kind regards Rainer Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
♥raiwa Posted October 9, 2013 Share Posted October 9, 2013 (edited) Upgraded to v7 from v5.4, all I can say is nice work! One problem I am having is my product images have vanished in mobile view. I tried changing the new settings in configure.php with no luck. I have TiM image cache installed. in case anyone has any clue any help much appreciated http://www.isorm.com/mobile/ Hello Matthew @@mrossi, Thank you. If your image thumbnail add-on is this one: [TiM's osC Solutions] - Cached image thumbnails: http://addons.oscommerce.com/info/6867 it should work without any additional modifications. Please post your includes/configure.php (without the database details at the bottom) and I'll check it. You can send me a private message if you prefer. You can also try to switch Ajax page loading off in Admin : Configuration : Mobile Site See also Add-On Support.doc Step 11 regards Rainer Edited October 9, 2013 by raiwa Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 Minor issue with my mobile shop www.lyonsperformance.com/mobile The store logo no longer appears at the top of the page. I'm sure this is a minor glitch but if you could direct me on how to fix it I would appreciate it. Thanks! osc 2.2rc2 Quote Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 Also, just a suggestion, but a cheatsheet on how and where to change colors, fonts and text alignment would be nice. Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 (edited) Minor issue with my mobile shop www.lyonsperformance.com/mobile The store logo no longer appears at the top of the page. I'm sure this is a minor glitch but if you could direct me on how to fix it I would appreciate it. Thanks! osc 2.2rc2 Looks like there is something wrong with the header tags installation it also looks like you have the old header_title.php from version 6 please post your mobile/includes/header.php mobile/includes/header_with_htseo.php mobile/includes/header_with_products_htseo.php For the colors etc: The mobile_stylesheet is commented, ok it can be improved There are some instructions inluded in the install doc step 3 Edited October 13, 2013 by raiwa Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 mobile/includes/header.php <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <?php if (strpos($PHP_SELF,'checkout') || strpos($PHP_SELF,'shopping_cart') || strpos($PHP_SELF,'account') || strpos($PHP_SELF,'log') ) { ?> <meta name="googlebot" content="noindex, nofollow"> <meta name="robots" content="noindex, nofollow"> <?php } ?> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book' || substr(basename($PHP_SELF), 0, 5) == 'login') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> mobile/includes/header_with_htseo.php <?php if(isset($HTTP_GET_VARS['ajax']) == false) { ?> <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <?php if (strpos($PHP_SELF,'checkout') || strpos($PHP_SELF,'shopping_cart') || strpos($PHP_SELF,'account') || strpos($PHP_SELF,'log') ) { ?> <meta name="googlebot" content="noindex, nofollow"> <meta name="robots" content="noindex, nofollow"> <?php } ?> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> mobile/includes/header_with_products_htseo.php <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 mobile/includes/header.php <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <?php if (strpos($PHP_SELF,'checkout') || strpos($PHP_SELF,'shopping_cart') || strpos($PHP_SELF,'account') || strpos($PHP_SELF,'log') ) { ?> <meta name="googlebot" content="noindex, nofollow"> <meta name="robots" content="noindex, nofollow"> <?php } ?> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book' || substr(basename($PHP_SELF), 0, 5) == 'login') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> mobile/includes/header_with_htseo.php <?php if(isset($HTTP_GET_VARS['ajax']) == false) { ?> <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <?php if (strpos($PHP_SELF,'checkout') || strpos($PHP_SELF,'shopping_cart') || strpos($PHP_SELF,'account') || strpos($PHP_SELF,'log') ) { ?> <meta name="googlebot" content="noindex, nofollow"> <meta name="robots" content="noindex, nofollow"> <?php } ?> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> mobile/includes/header_with_products_htseo.php <!DOCTYPE html> <head> <?php /*** Begin Header Tags SEO ***/ if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <meta charset="<?php echo ((CHARSET == 'utf-8')? CHARSET : MOBILE_CHARSET); ?>" /> <?php if (HEADER_TAGS_DISPLAY_PAGE_TOP_TITLE == 'true') { echo '<title>' . $header_tags_array['title'] . '</title>'; } else { echo '<title>' . $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title'] . '</title>'; } } /*** End Header Tags SEO ***/ ?> <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); ?>" /> <style type="text/css" media="screen"> @[member='import'] "<?php echo (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . DIR_MOBILE_INCLUDES; ?>mobile_stylesheet.css?<?php echo time()?>"; </style> <!--Include JQM--> <link rel="stylesheet" href="ext/css/theme-<?php echo CSS;?>-min.css?time=<?php echo time()?>" /> <link rel="stylesheet" href="ext/jquery/mobile/jquery.mobile.structure-1.3.2.min.css" /> <link rel="stylesheet" href="ext/css/custom-bar.css" /> <script src="ext/jquery/jquery-1.10.2.min.js"></script> <link rel="stylesheet" type="text/css" href="ext/jquery/fancybox/jquery.fancybox-2.1.5.css"> <script type="text/javascript" src="ext/jquery/fancybox/jquery.fancybox.pack-2.1.5.js"></script> <?php /* Desactivate Ajax for the checkout and catalog_mb pages !*/ if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || substr(basename($PHP_SELF), 0, 10) == 'catalog_mb' || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book') echo '<script type="text/javascript"> $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; }); </script>'; ?> <script src="ext/jquery/mobile/jquery.mobile-1.3.2.min.js"></script> <script src="ext/js/jquery.validate.js"></script> </head> <body> <!-- header //--> <div data-role="page" class="ui-page" data-dom-cache="false"> <div id="errorMsg"> <?php if ($messageStack->size('header') > 0) { echo $messageStack->output('header'); } ?> </div> <!-- error msg --> <?php echo '<div data-role="header" class="nav-glyphish-example" data-tap-toggle="false" data-hide-during-focus=""> <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> <div data-role="navbar" class="nav-glyphish-example" data-grid="d" data-hide-during-focus=""> <ul> <li>'.tep_button_jquery( TEXT_HOME, tep_mobile_link(FILENAME_DEFAULT), 'a' , '' , 'id="homes" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_SHOP, tep_mobile_link(FILENAME_CATALOG_MB), 'a' , '' , 'id="boutique" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ACCOUNT, tep_mobile_link(FILENAME_ACCOUNT, '', 'SSL'), 'a' , '' , 'id="compte" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( IMAGE_BUTTON_SEARCH, tep_mobile_link(FILENAME_SEARCH), 'a' , '' , 'id="search" data-icon="custom"' ).'</li> <li>'.tep_button_jquery( TEXT_ABOUT, tep_mobile_link(FILENAME_ABOUT), 'a' , '' , 'id="about" data-icon="custom"' ).'</li> </ul> </div> </div>'; ?> <div id="header"> <?php if(sizeof($breadcrumb->_trail) > 0) $headerTitleText = $breadcrumb->_trail[sizeof($breadcrumb->_trail) - 1]['title']; if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) echo htmlspecialchars(stripslashes(urldecode($HTTP_GET_VARS['error_message']))); ?> </div> THis looks all correct. What you could try is to change this line: <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_WS_HTTP_MOBILE . DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> to this: <div id="headerLogo"><a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . tep_image(DIR_MOBILE_IMAGES . 'homepage_02.jpg', STORE_NAME, 0,30) . '</a></div> make also sure your logo is in the right place: mobile/images/ another thing is, I insist, it looks like your mobile/includes/classes/header_title.php is the old one from version 6. If it is like this, check your other files too. Then when you say "The store logo no longer appears at the top of the page." does this mean that it was there before? What did you change when it disappeared. Or did it disappear when you changed the generic logo to your logo? Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 I added the mobile/includes/classes/header_title.php from the latest version 7.1.0 which was loacted in the common file folder. It is dated 9/12/13. I have my logo loaded in the mobile/images folder. The logo used to appear before I upgraded to version 7. After that, there is no logo showing. Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 I added the mobile/includes/classes/header_title.php from the latest version 7.1.0 which was loacted in the common file folder. It is dated 9/12/13. I have my logo loaded in the mobile/images folder. The logo used to appear before I upgraded to version 7. After that, there is no logo showing. When I visit your store, I suppose it is this: http://www.lyonsperformance.com I can see at the upper left the text "CLASSIC View" in the header_titel, which is version 6, version 7 shows "options" there. For the logo: did you try the modification I explained? The line where the logo is defined is identical in version 6 and 7 except the modification to remove "DIR_WS_HTTP_MOBILE" You can just open your old header.php file from version 6 and copy the line with the logo to the new header.php Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 I just changed the code as suggested in all the header files and it works. Thank you! As for the classic tag, I went through each file of the new version 7.1.0 and did a compare. I made the required changes where necessary. Maybe some of the 2.2 files didn't get updated? Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 I just changed the code as suggested in all the header files and it works. Thank you! As for the classic tag, I went through each file of the new version 7.1.0 and did a compare. I made the required changes where necessary. Maybe some of the 2.2 files didn't get updated? I checked again and the file of the package is correct. Just try again to replace it, it is mobile/includes/classes/header_title.php You can also check the update doc "Update_osc_2_2_MOsC_7.0.0..doc" step 48 Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 Here is what I replaced mobile/includes/classes/header_title.php with: <?php class headerTitle { function headerTitle() { } function write($title = '') { global $cart, $classic_site, $language, $currencies; $this->title = (strlen($title) > 0)? $title : HEADING_TITLE; if (substr(basename($_SERVER['REQUEST_URI']), 0, 8) != 'checkout') { if (!isset($lng) || (isset($lng) && !is_object($lng))) { include_once(DIR_WS_CLASSES . 'language.php'); $lng = new language; } reset($lng->catalog_languages); if ( ((count($lng->catalog_languages) > 1) || (count($currencies->currencies) > 1) || MOBILE_THEME_ENABLE == 'True') && ((preg_match('/options/', basename($_SERVER['REQUEST_URI'])) != true) && (preg_match('/checkout/', basename($_SERVER['REQUEST_URI'])) != true)) ) { $leftButton = tep_button_jquery( TEXT_OPTIONS, tep_mobile_link(FILENAME_OPTIONS), 'a' , 'button' , 'data-icon="gear" data-mini="true" ' ); } else { $leftButton = '<a style="visibility:hidden;" href="options.php">' . TEXT_OPTIONS . '</a>'; } if(sizeof($cart->contents) > 0) { $rightButton = '<a id="shopping_cart" data-role="button" data-icon="custom" href="' . tep_mobile_link(FILENAME_SHOPPING_CART) . '">' . TEXT_SHOPPING_CART . '</a>'; } } echo '<div data-role="header" data-add-back-btn="true" data-theme="a" data-tap-toggle="false">' . $leftButton . '<h1>' . $this->title . '</h1>' . $rightButton . '</div>'; } } ?> And it now shows the options tab. I believe the file in the latest version is the old code. Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 (edited) Here is what I replaced mobile/includes/classes/header_title.php with: <?php class headerTitle { function headerTitle() { } function write($title = '') { global $cart, $classic_site, $language, $currencies; $this->title = (strlen($title) > 0)? $title : HEADING_TITLE; if (substr(basename($_SERVER['REQUEST_URI']), 0, 8) != 'checkout') { if (!isset($lng) || (isset($lng) && !is_object($lng))) { include_once(DIR_WS_CLASSES . 'language.php'); $lng = new language; } reset($lng->catalog_languages); if ( ((count($lng->catalog_languages) > 1) || (count($currencies->currencies) > 1) || MOBILE_THEME_ENABLE == 'True') && ((preg_match('/options/', basename($_SERVER['REQUEST_URI'])) != true) && (preg_match('/checkout/', basename($_SERVER['REQUEST_URI'])) != true)) ) { $leftButton = tep_button_jquery( TEXT_OPTIONS, tep_mobile_link(FILENAME_OPTIONS), 'a' , 'button' , 'data-icon="gear" data-mini="true" ' ); } else { $leftButton = '<a style="visibility:hidden;" href="options.php">' . TEXT_OPTIONS . '</a>'; } if(sizeof($cart->contents) > 0) { $rightButton = '<a id="shopping_cart" data-role="button" data-icon="custom" href="' . tep_mobile_link(FILENAME_SHOPPING_CART) . '">' . TEXT_SHOPPING_CART . '</a>'; } } echo '<div data-role="header" data-add-back-btn="true" data-theme="a" data-tap-toggle="false">' . $leftButton . '<h1>' . $this->title . '</h1>' . $rightButton . '</div>'; } } ?> And it now shows the options tab. I believe the file in the latest version is the old code. As I told you, I checked and it is the correct file in all version 7 packages. It hasn't been changed through Version 7.0.0. to 7.1.0. Edited October 13, 2013 by raiwa Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Guest Posted October 13, 2013 Share Posted October 13, 2013 BTW, those css files are difficult to modify because they are minified. Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 13, 2013 Share Posted October 13, 2013 BTW, those css files are difficult to modify because they are minified. this is to optimize page loading. you can create your theme here instead to modify: http://jquerymobile.com/themeroller/ Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
beezer26164 Posted October 17, 2013 Share Posted October 17, 2013 I just installed the latest version and when I hover over the links for the mobile version it shows http://rubartsgifts-n-electronics.com/HTTP_MOBILE_SERVERDIR_WS_HTTP_MOBILE and of course this shows an error of page not found. What did I Do Wrong? Please Help! Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 17, 2013 Share Posted October 17, 2013 (edited) I just installed the latest version and when I hover over the links for the mobile version it shows http://rubartsgifts-n-electronics.com/HTTP_MOBILE_SERVERDIR_WS_HTTP_MOBILE and of course this shows an error of page not found. What did I Do Wrong? Please Help! Hello @@beezer26164, Looks like your includes/configure.php is not configured for mobile. Please check if you did the installation step 12 of the install doc. If you can't figure out the error please post this file without the database details at the bottom or send me a private message. regards Rainer Edited October 17, 2013 by raiwa Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
beezer26164 Posted October 17, 2013 Share Posted October 17, 2013 <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ // Define the webserver and path parameters // * DIR_FS_* = Filesystem directories (local/physical) // * DIR_WS_* = Webserver directories (virtual/URL) define('HTTP_SERVER', 'http://rubartsgifts-n-electronics.com'); // eg, http://localhost - should not be empty for productive servers define('HTTPS_SERVER', ''); // eg, https://localhost - should not be empty for productive servers define('ENABLE_SSL', false); // secure webserver for checkout procedure? define('HTTP_COOKIE_DOMAIN', ''); define('HTTPS_COOKIE_DOMAIN', ''); define('HTTP_COOKIE_PATH', ''); define('HTTPS_COOKIE_PATH', ''); define('DIR_WS_HTTP_CATALOG', 'home/souther2/public_html/'); define('DIR_WS_HTTPS_CATALOG', ''); //BOF Mobile define('HTTP_MOBILE_SERVER', HTTP_SERVER); define('HTTPS_MOBILE_SERVER', HTTPS_SERVER); define('DIR_WS_HTTP_MOBILE', DIR_WS_HTTP_CATALOG . 'mobile/'); define('DIR_WS_HTTPS_MOBILE', DIR_WS_HTTPS_CATALOG . 'mobile/'); (defined('MOBILE_SESSION') ? define('DIR_WS_IMAGES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'images/') : define('DIR_WS_IMAGES', 'images/')); define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/'); (defined('MOBILE_SESSION') ? define('DIR_WS_INCLUDES', '../includes/') : define('DIR_WS_INCLUDES', 'includes/')); //EOF Mobile define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/'); define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/'); define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/'); define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/'); //BOF Mobile define('DIR_MOBILE_IMAGES', 'images/'); define('DIR_MOBILE_INCLUDES','includes/'); define('DIR_MOBILE_MODULES', DIR_MOBILE_INCLUDES . 'modules/'); define('DIR_MOBILE_CLASSES', DIR_MOBILE_INCLUDES . 'classes/'); define('DIR_MOBILE_HEADERS', DIR_MOBILE_INCLUDES . 'headers/'); define('DIR_MOBILE_LANGUAGES', DIR_MOBILE_INCLUDES . 'languages/'); //EOF Mobile //BOF Mobile (defined('MOBILE_SESSION') ? define('DIR_WS_DOWNLOAD_PUBLIC', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'pub/') : define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/')); //EOF Mobile; define('DIR_FS_CATALOG', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/'); //BOF Mobile define('DIR_FS_MOBILE', DIR_FS_CATALOG . 'mobile/'); //EOF Mobile define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); // define our database connection define('DB_SERVER', ''); // eg, localhost - should not be empty for productive servers define('DB_SERVER_USERNAME', ''); define('DB_SERVER_PASSWORD', ''); define('DB_DATABASE', 'osCommerce'); define('USE_PCONNECT', 'false'); // use persistent connections? define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'mysql' ?> Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 17, 2013 Share Posted October 17, 2013 (edited) <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ // Define the webserver and path parameters // * DIR_FS_* = Filesystem directories (local/physical) // * DIR_WS_* = Webserver directories (virtual/URL) define('HTTP_SERVER', 'http://rubartsgifts-n-electronics.com'); // eg, http://localhost - should not be empty for productive servers define('HTTPS_SERVER', ''); // eg, https://localhost - should not be empty for productive servers define('ENABLE_SSL', false); // secure webserver for checkout procedure? define('HTTP_COOKIE_DOMAIN', ''); define('HTTPS_COOKIE_DOMAIN', ''); define('HTTP_COOKIE_PATH', ''); define('HTTPS_COOKIE_PATH', ''); define('DIR_WS_HTTP_CATALOG', 'home/souther2/public_html/'); define('DIR_WS_HTTPS_CATALOG', ''); //BOF Mobile define('HTTP_MOBILE_SERVER', HTTP_SERVER); define('HTTPS_MOBILE_SERVER', HTTPS_SERVER); define('DIR_WS_HTTP_MOBILE', DIR_WS_HTTP_CATALOG . 'mobile/'); define('DIR_WS_HTTPS_MOBILE', DIR_WS_HTTPS_CATALOG . 'mobile/'); (defined('MOBILE_SESSION') ? define('DIR_WS_IMAGES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'images/') : define('DIR_WS_IMAGES', 'images/')); define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/'); (defined('MOBILE_SESSION') ? define('DIR_WS_INCLUDES', '../includes/') : define('DIR_WS_INCLUDES', 'includes/')); //EOF Mobile define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/'); define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/'); define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/'); define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/'); //BOF Mobile define('DIR_MOBILE_IMAGES', 'images/'); define('DIR_MOBILE_INCLUDES','includes/'); define('DIR_MOBILE_MODULES', DIR_MOBILE_INCLUDES . 'modules/'); define('DIR_MOBILE_CLASSES', DIR_MOBILE_INCLUDES . 'classes/'); define('DIR_MOBILE_HEADERS', DIR_MOBILE_INCLUDES . 'headers/'); define('DIR_MOBILE_LANGUAGES', DIR_MOBILE_INCLUDES . 'languages/'); //EOF Mobile //BOF Mobile (defined('MOBILE_SESSION') ? define('DIR_WS_DOWNLOAD_PUBLIC', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'pub/') : define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/')); //EOF Mobile; define('DIR_FS_CATALOG', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/'); //BOF Mobile define('DIR_FS_MOBILE', DIR_FS_CATALOG . 'mobile/'); //EOF Mobile define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); // define our database connection define('DB_SERVER', ''); // eg, localhost - should not be empty for productive servers define('DB_SERVER_USERNAME', ''); define('DB_SERVER_PASSWORD', ''); define('DB_DATABASE', 'osCommerce'); define('USE_PCONNECT', 'false'); // use persistent connections? define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'mysql' ?> Hello@@beezer26164, This line looks very strange, sure that this is correct?: define('DIR_WS_HTTP_CATALOG', 'home/souther2/public_html/'); if you need this there, then you should change the folowing: define('DIR_WS_HTTP_MOBILE', DIR_WS_HTTP_CATALOG . 'mobile/'); define('DIR_WS_HTTPS_MOBILE', DIR_WS_HTTPS_CATALOG . 'mobile/'); to: define('DIR_WS_HTTP_MOBILE', 'mobile/'); define('DIR_WS_HTTPS_MOBILE', 'mobile/'); supposing that the mobile files are in: mobile/ Please check also the changes in includes/functions/general.php and html_output.php and application_top.php regards Rainer Edited October 17, 2013 by raiwa Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
beezer26164 Posted October 17, 2013 Share Posted October 17, 2013 Hello, I can't find anything wrong with the files...I've included them for you to take a look. As for 'home/souther2/public_html/' I didn't need it for my regular store...I added it hoping it would make the mobile version work. Thanks, Bill html_output: <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2010 osCommerce Released under the GNU General Public License */ //// // The HTML href link wrapper function function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) { global $request_type, $session_started, $SID; $page = tep_output_string($page); if (!tep_not_null($page)) { die('</td></tr></table></td></tr></table><br /><br /><font color="#ff0000"><strong>Error!</strong></font><br /><br /><strong>Unable to determine the page link!<br /><br />'); } defined('MOBILE_SESSION') ? $mobile_directory = HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE : $mobile_directory = HTTP_SERVER . DIR_WS_HTTP_CATALOG; defined('MOBILE_SESSION') ? $mobile_secure_directory = HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : $mobile_secure_directory = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG; if ($connection == 'NONSSL') { $link = $mobile_directory; } elseif ($connection == 'SSL') { if (ENABLE_SSL == true) { $link = $mobile_secure_directory; } else { $link = $mobile_directory; } } else { die('</td></tr></table></td></tr></table><br /><br /><font color="#ff0000"><strong>Error!</strong></font><br /><br /><strong>Unable to determine connection method on a link!<br /><br />Known methods: NONSSL SSL</strong><br /><br />'); } if (tep_not_null($parameters)) { $link .= $page . '?' . tep_output_string($parameters); $separator = '&'; } else { $link .= $page; $separator = '?'; } while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1); // Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) { if (tep_not_null($SID)) { $_sid = $SID; } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) { if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) { $_sid = tep_session_name() . '=' . tep_session_id(); } } } if (isset($_sid)) { $link .= $separator . tep_output_string($_sid); } while (strstr($link, '&&')) $link = str_replace('&&', '&', $link); if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) { $link = str_replace('?', '/', $link); $link = str_replace('&', '/', $link); $link = str_replace('=', '/', $link); } else { $link = str_replace('&', '&', $link); } return $link; } //// // The HTML image wrapper function function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') { if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) { return false; } // alt is added to the img tag even if it is null to prevent browsers from outputting // the image filename as default $image = '<img src="' . tep_output_string($src) . '" alt="' . tep_output_string($alt) . '"'; if (tep_not_null($alt)) { $image .= ' title="' . tep_output_string($alt) . '"'; } if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) { if ($image_size = @getimagesize($src)) { if (empty($width) && tep_not_null($height)) { $ratio = $height / $image_size[1]; $width = intval($image_size[0] * $ratio); } elseif (tep_not_null($width) && empty($height)) { $ratio = $width / $image_size[0]; $height = intval($image_size[1] * $ratio); } elseif (empty($width) && empty($height)) { $width = $image_size[0]; $height = $image_size[1]; } } elseif (IMAGE_REQUIRED == 'false') { return false; } } if (tep_not_null($width) && tep_not_null($height)) { $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"'; } if (tep_not_null($parameters)) $image .= ' ' . $parameters; $image .= ' />'; return $image; } //// // The HTML form submit button wrapper function // Outputs a button in the selected language function tep_image_submit($image, $alt = '', $parameters = '') { global $language; $image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" alt="' . tep_output_string($alt) . '"'; if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "'; if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters; $image_submit .= ' />'; return $image_submit; } //// // Output a function button in the selected language function tep_image_button($image, $alt = '', $parameters = '') { global $language; return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters); } //// // Output a separator either through whitespace, or with an image function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') { return tep_image(DIR_WS_IMAGES . $image, '', $width, $height); } //// // Output a form function tep_draw_form($name, $action, $method = 'post', $parameters = '', $tokenize = false) { global $sessiontoken; $form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"'; if (tep_not_null($parameters)) $form .= ' ' . $parameters; $form .= '>'; if ( ($tokenize == true) && isset($sessiontoken) ) { $form .= '<input type="hidden" name="formid" value="' . tep_output_string($sessiontoken) . '" />'; } return $form; } //// // Output a form input field function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"'; if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $value = stripslashes($HTTP_GET_VARS[$name]); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $value = stripslashes($HTTP_POST_VARS[$name]); } } if (tep_not_null($value)) { $field .= ' value="' . tep_output_string($value) . '"'; } if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= ' />'; return $field; } //// // Output a form password field function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') { return tep_draw_input_field($name, $value, $parameters, 'password', false); } //// // Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field() function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') { global $HTTP_GET_VARS, $HTTP_POST_VARS; $selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"'; if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"'; if ( ($checked == true) || (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name]) && (($HTTP_GET_VARS[$name] == 'on') || (stripslashes($HTTP_GET_VARS[$name]) == $value))) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name]) && (($HTTP_POST_VARS[$name] == 'on') || (stripslashes($HTTP_POST_VARS[$name]) == $value))) ) { $selection .= ' checked="checked"'; } if (tep_not_null($parameters)) $selection .= ' ' . $parameters; $selection .= ' />'; return $selection; } //// // Output a form checkbox field function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') { return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters); } //// // Output a form radio field function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') { return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters); } //// // Output a form textarea field // The $wrap parameter is no longer used in the core xhtml template function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<textarea name="' . tep_output_string($name) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= '>'; if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name])); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name])); } } elseif (tep_not_null($text)) { $field .= tep_output_string_protected($text); } $field .= '</textarea>'; return $field; } //// // Output a form hidden field function tep_draw_hidden_field($name, $value = '', $parameters = '') { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<input type="hidden" name="' . tep_output_string($name) . '"'; if (tep_not_null($value)) { $field .= ' value="' . tep_output_string($value) . '"'; } elseif ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) { if ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) ) { $field .= ' value="' . tep_output_string(stripslashes($HTTP_GET_VARS[$name])) . '"'; } elseif ( (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) { $field .= ' value="' . tep_output_string(stripslashes($HTTP_POST_VARS[$name])) . '"'; } } if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= ' />'; return $field; } //// // Hide form elements function tep_hide_session_id() { global $session_started, $SID; if (($session_started == true) && tep_not_null($SID)) { return tep_draw_hidden_field(tep_session_name(), tep_session_id()); } } //// // Output a form pull down menu function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<select name="' . tep_output_string($name) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= '>'; if (empty($default) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $default = stripslashes($HTTP_GET_VARS[$name]); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $default = stripslashes($HTTP_POST_VARS[$name]); } } for ($i=0, $n=sizeof($values); $i<$n; $i++) { $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"'; if ($default == $values[$i]['id']) { $field .= ' selected="selected"'; } $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>'; } $field .= '</select>'; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } //// // Creates a pull-down list of countries function tep_get_country_list($name, $selected = '', $parameters = '') { $countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT)); $countries = tep_get_countries(); for ($i=0, $n=sizeof($countries); $i<$n; $i++) { $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']); } return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters); } //// // Output a jQuery UI Button function tep_draw_button($title = null, $icon = null, $link = null, $priority = null, $params = null) { static $button_counter = 1; $types = array('submit', 'button', 'reset'); if ( !isset($params['type']) ) { $params['type'] = 'submit'; } if ( !in_array($params['type'], $types) ) { $params['type'] = 'submit'; } if ( ($params['type'] == 'submit') && isset($link) ) { $params['type'] = 'button'; } if (!isset($priority)) { $priority = 'secondary'; } $button = '<span class="tdbLink">'; if ( ($params['type'] == 'button') && isset($link) ) { $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"'; if ( isset($params['newwindow']) ) { $button .= ' target="_blank"'; } } else { $button .= '<button id="tdb' . $button_counter . '" type="' . tep_output_string($params['type']) . '"'; } if ( isset($params['params']) ) { $button .= ' ' . $params['params']; } $button .= '>' . $title; if ( ($params['type'] == 'button') && isset($link) ) { $button .= '</a>'; } else { $button .= '</button>'; } $button .= '</span><script type="text/javascript">$("#tdb' . $button_counter . '").button('; $args = array(); if ( isset($icon) ) { if ( !isset($params['iconpos']) ) { $params['iconpos'] = 'left'; } if ( $params['iconpos'] == 'left' ) { $args[] = 'icons:{primary:"ui-icon-' . $icon . '"}'; } else { $args[] = 'icons:{secondary:"ui-icon-' . $icon . '"}'; } } if (empty($title)) { $args[] = 'text:false'; } if (!empty($args)) { $button .= '{' . implode(',', $args) . '}'; } $button .= ').addClass("ui-priority-' . $priority . '").parent().removeClass("tdbLink");</script>'; $button_counter++; return $button; } ?> general.php: <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2012 osCommerce Released under the GNU General Public License */ //// // Get the installed version number function tep_get_version() { static $v; if (!isset($v)) { $v = trim(implode('', file(DIR_FS_CATALOG . 'includes/version.php'))); } return $v; } //// // Stop from parsing any further PHP code function tep_exit() { tep_session_close(); exit(); } //// // Redirect to another page or site function tep_redirect($url) { if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) { tep_redirect(defined('MOBILE_SESSION') ? tep_mobile_link(FILENAME_DEFAULT, '', 'NONSSL', false) : tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); } if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on') ) { // We are loading an SSL page if (defined('MOBILE_SESSION')) { // Mobile Side if (substr($url, 0, strlen(HTTP_MOBILE_SERVER)) == HTTP_MOBILE_SERVER) { // NONSSL url $url = HTTPS_MOBILE_SERVER . substr($url, strlen(HTTP_MOBILE_SERVER)); // Change it to SSL } } else { // Desktop Side if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url $url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL } } } if ( strpos($url, '&') !== false ) { $url = str_replace('&', '&', $url); } header('Location: ' . $url); tep_exit(); } //// // Parse the data used in the html tags to ensure the tags will not break function tep_parse_input_field_data($data, $parse) { return strtr(trim($data), $parse); } function tep_output_string($string, $translate = false, $protected = false) { if ($protected == true) { return htmlspecialchars($string); } else { if ($translate == false) { return tep_parse_input_field_data($string, array('"' => '"')); } else { return tep_parse_input_field_data($string, $translate); } } } function tep_output_string_protected($string) { return tep_output_string($string, false, true); } function tep_sanitize_string($string) { $patterns = array ('/ +/','/[<>]/'); $replace = array (' ', '_'); return preg_replace($patterns, $replace, trim($string)); } //// // Return a random row from a database query function tep_random_select($query) { $random_product = ''; $random_query = tep_db_query($query); $num_rows = tep_db_num_rows($random_query); if ($num_rows > 0) { $random_row = tep_rand(0, ($num_rows - 1)); tep_db_data_seek($random_query, $random_row); $random_product = tep_db_fetch_array($random_query); } return $random_product; } //// // Return a product's name // TABLES: products function tep_get_products_name($product_id, $language = '') { global $languages_id; if (empty($language)) $language = $languages_id; $product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language . "'"); $product = tep_db_fetch_array($product_query); return $product['products_name']; } //// // Return a product's special price (returns nothing if there is no offer) // TABLES: products function tep_get_products_special_price($product_id) { $product_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "' and status = 1"); $product = tep_db_fetch_array($product_query); return $product['specials_new_products_price']; } //// // Return a product's stock // TABLES: products function tep_get_products_stock($products_id) { $products_id = tep_get_prid($products_id); $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'"); $stock_values = tep_db_fetch_array($stock_query); return $stock_values['products_quantity']; } //// // Check if the required stock is available // If insufficent stock is available return an out of stock message function tep_check_stock($products_id, $products_quantity) { $stock_left = tep_get_products_stock($products_id) - $products_quantity; $out_of_stock = ''; if ($stock_left < 0) { $out_of_stock = '<span class="markProductOutOfStock">' . STOCK_MARK_PRODUCT_OUT_OF_STOCK . '</span>'; } return $out_of_stock; } //// // Break a word in a string if it is longer than a specified length ($len) function tep_break_string($string, $len, $break_char = '-') { $l = 0; $output = ''; for ($i=0, $n=strlen($string); $i<$n; $i++) { $char = substr($string, $i, 1); if ($char != ' ') { $l++; } else { $l = 0; } if ($l > $len) { $l = 1; $output .= $break_char; } $output .= $char; } return $output; } //// // Return all HTTP GET variables, except those passed as a parameter function tep_get_all_get_params($exclude_array = '') { global $HTTP_GET_VARS; if (!is_array($exclude_array)) $exclude_array = array(); $get_url = ''; if (is_array($HTTP_GET_VARS) && (sizeof($HTTP_GET_VARS) > 0)) { reset($HTTP_GET_VARS); while (list($key, $value) = each($HTTP_GET_VARS)) { if ( is_string($value) && (strlen($value) > 0) && ($key != tep_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array)) && ($key != 'x') && ($key != 'y') ) { $get_url .= $key . '=' . rawurlencode(stripslashes($value)) . '&'; } } } return $get_url; } //// // Returns an array with countries // TABLES: countries function tep_get_countries($countries_id = '', $with_iso_codes = false) { $countries_array = array(); if (tep_not_null($countries_id)) { if ($with_iso_codes == true) { $countries = tep_db_query("select countries_name, countries_iso_code_2, countries_iso_code_3 from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$countries_id . "' order by countries_name"); $countries_values = tep_db_fetch_array($countries); $countries_array = array('countries_name' => $countries_values['countries_name'], 'countries_iso_code_2' => $countries_values['countries_iso_code_2'], 'countries_iso_code_3' => $countries_values['countries_iso_code_3']); } else { $countries = tep_db_query("select countries_name from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$countries_id . "'"); $countries_values = tep_db_fetch_array($countries); $countries_array = array('countries_name' => $countries_values['countries_name']); } } else { $countries = tep_db_query("select countries_id, countries_name from " . TABLE_COUNTRIES . " order by countries_name"); while ($countries_values = tep_db_fetch_array($countries)) { $countries_array[] = array('countries_id' => $countries_values['countries_id'], 'countries_name' => $countries_values['countries_name']); } } return $countries_array; } //// // Alias function to tep_get_countries, which also returns the countries iso codes function tep_get_countries_with_iso_codes($countries_id) { return tep_get_countries($countries_id, true); } //// // Generate a path to categories function tep_get_path($current_category_id = '') { global $cPath_array; if (tep_not_null($current_category_id)) { $cp_size = sizeof($cPath_array); if ($cp_size == 0) { $cPath_new = $current_category_id; } else { $cPath_new = ''; $last_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$cPath_array[($cp_size-1)] . "'"); $last_category = tep_db_fetch_array($last_category_query); $current_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $current_category = tep_db_fetch_array($current_category_query); if ($last_category['parent_id'] == $current_category['parent_id']) { for ($i=0; $i<($cp_size-1); $i++) { $cPath_new .= '_' . $cPath_array[$i]; } } else { for ($i=0; $i<$cp_size; $i++) { $cPath_new .= '_' . $cPath_array[$i]; } } $cPath_new .= '_' . $current_category_id; if (substr($cPath_new, 0, 1) == '_') { $cPath_new = substr($cPath_new, 1); } } } else { $cPath_new = implode('_', $cPath_array); } return 'cPath=' . $cPath_new; } //// // Returns the clients browser function tep_browser_detect($component) { global $HTTP_USER_AGENT; return stristr($HTTP_USER_AGENT, $component); } //// // Alias function to tep_get_countries() function tep_get_country_name($country_id) { $country_array = tep_get_countries($country_id); return $country_array['countries_name']; } //// // Returns the zone (State/Province) name // TABLES: zones function tep_get_zone_name($country_id, $zone_id, $default_zone) { $zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'"); if (tep_db_num_rows($zone_query)) { $zone = tep_db_fetch_array($zone_query); return $zone['zone_name']; } else { return $default_zone; } } //// // Returns the zone (State/Province) code // TABLES: zones function tep_get_zone_code($country_id, $zone_id, $default_zone) { $zone_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'"); if (tep_db_num_rows($zone_query)) { $zone = tep_db_fetch_array($zone_query); return $zone['zone_code']; } else { return $default_zone; } } //// // Wrapper function for round() function tep_round($number, $precision) { if (strpos($number, '.') && (strlen(substr($number, strpos($number, '.')+1)) > $precision)) { $number = substr($number, 0, strpos($number, '.') + 1 + $precision + 1); if (substr($number, -1) >= 5) { if ($precision > 1) { $number = substr($number, 0, -1) + ('0.' . str_repeat(0, $precision-1) . '1'); } elseif ($precision == 1) { $number = substr($number, 0, -1) + 0.1; } else { $number = substr($number, 0, -1) + 1; } } else { $number = substr($number, 0, -1); } } return $number; } //// // Returns the tax rate for a zone / class // TABLES: tax_rates, zones_to_geo_zones function tep_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) { global $customer_zone_id, $customer_country_id; static $tax_rates = array(); if ( ($country_id == -1) && ($zone_id == -1) ) { if (!tep_session_is_registered('customer_id')) { $country_id = STORE_COUNTRY; $zone_id = STORE_ZONE; } else { $country_id = $customer_country_id; $zone_id = $customer_zone_id; } } if (!isset($tax_rates[$class_id][$country_id][$zone_id]['rate'])) { $tax_query = tep_db_query("select sum(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za on (tr.tax_zone_id = za.geo_zone_id) left join " . TABLE_GEO_ZONES . " tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '" . (int)$country_id . "') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '" . (int)$zone_id . "') and tr.tax_class_id = '" . (int)$class_id . "' group by tr.tax_priority"); if (tep_db_num_rows($tax_query)) { $tax_multiplier = 1.0; while ($tax = tep_db_fetch_array($tax_query)) { $tax_multiplier *= 1.0 + ($tax['tax_rate'] / 100); } $tax_rates[$class_id][$country_id][$zone_id]['rate'] = ($tax_multiplier - 1.0) * 100; } else { $tax_rates[$class_id][$country_id][$zone_id]['rate'] = 0; } } return $tax_rates[$class_id][$country_id][$zone_id]['rate']; } //// // Return the tax description for a zone / class // TABLES: tax_rates; function tep_get_tax_description($class_id, $country_id, $zone_id) { static $tax_rates = array(); if (!isset($tax_rates[$class_id][$country_id][$zone_id]['description'])) { $tax_query = tep_db_query("select tax_description from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za on (tr.tax_zone_id = za.geo_zone_id) left join " . TABLE_GEO_ZONES . " tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '" . (int)$country_id . "') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '" . (int)$zone_id . "') and tr.tax_class_id = '" . (int)$class_id . "' order by tr.tax_priority"); if (tep_db_num_rows($tax_query)) { $tax_description = ''; while ($tax = tep_db_fetch_array($tax_query)) { $tax_description .= $tax['tax_description'] . ' + '; } $tax_description = substr($tax_description, 0, -3); $tax_rates[$class_id][$country_id][$zone_id]['description'] = $tax_description; } else { $tax_rates[$class_id][$country_id][$zone_id]['description'] = TEXT_UNKNOWN_TAX_RATE; } } return $tax_rates[$class_id][$country_id][$zone_id]['description']; } //// // Add tax to a products price function tep_add_tax($price, $tax) { if ( (DISPLAY_PRICE_WITH_TAX == 'true') && ($tax > 0) ) { return $price + tep_calculate_tax($price, $tax); } else { return $price; } } // Calculates Tax rounding the result function tep_calculate_tax($price, $tax) { return $price * $tax / 100; } //// // Return the number of products in a category // TABLES: products, products_to_categories, categories function tep_count_products_in_category($category_id, $include_inactive = false) { $products_count = 0; if ($include_inactive == true) { $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$category_id . "'"); } else { $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '" . (int)$category_id . "'"); } $products = tep_db_fetch_array($products_query); $products_count += $products['total']; $child_categories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$category_id . "'"); if (tep_db_num_rows($child_categories_query)) { while ($child_categories = tep_db_fetch_array($child_categories_query)) { $products_count += tep_count_products_in_category($child_categories['categories_id'], $include_inactive); } } return $products_count; } //// // Return true if the category has subcategories // TABLES: categories function tep_has_category_subcategories($category_id) { $child_category_query = tep_db_query("select count(*) as count from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$category_id . "'"); $child_category = tep_db_fetch_array($child_category_query); if ($child_category['count'] > 0) { return true; } else { return false; } } //// // Returns the address_format_id for the given country // TABLES: countries; function tep_get_address_format_id($country_id) { $address_format_query = tep_db_query("select address_format_id as format_id from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'"); if (tep_db_num_rows($address_format_query)) { $address_format = tep_db_fetch_array($address_format_query); return $address_format['format_id']; } else { return '1'; } } //// // Return a formatted address // TABLES: address_format function tep_address_format($address_format_id, $address, $html, $boln, $eoln) { $address_format_query = tep_db_query("select address_format as format from " . TABLE_ADDRESS_FORMAT . " where address_format_id = '" . (int)$address_format_id . "'"); $address_format = tep_db_fetch_array($address_format_query); $company = tep_output_string_protected($address['company']); if (isset($address['firstname']) && tep_not_null($address['firstname'])) { $firstname = tep_output_string_protected($address['firstname']); $lastname = tep_output_string_protected($address['lastname']); } elseif (isset($address['name']) && tep_not_null($address['name'])) { $firstname = tep_output_string_protected($address['name']); $lastname = ''; } else { $firstname = ''; $lastname = ''; } $street = tep_output_string_protected($address['street_address']); $suburb = tep_output_string_protected($address['suburb']); $city = tep_output_string_protected($address['city']); $state = tep_output_string_protected($address['state']); if (isset($address['country_id']) && tep_not_null($address['country_id'])) { $country = tep_get_country_name($address['country_id']); if (isset($address['zone_id']) && tep_not_null($address['zone_id'])) { $state = tep_get_zone_code($address['country_id'], $address['zone_id'], $state); } } elseif (isset($address['country']) && tep_not_null($address['country'])) { $country = tep_output_string_protected($address['country']['title']); } else { $country = ''; } $postcode = tep_output_string_protected($address['postcode']); $zip = $postcode; if ($html) { // HTML Mode $HR = '<hr />'; $hr = '<hr />'; if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults $CR = '<br />'; $cr = '<br />'; $eoln = $cr; } else { // Use values supplied $CR = $eoln . $boln; $cr = $CR; } } else { // Text Mode $CR = $eoln; $cr = $CR; $HR = '----------------------------------------'; $hr = '----------------------------------------'; } $statecomma = ''; $streets = $street; if ($suburb != '') $streets = $street . $cr . $suburb; if ($state != '') $statecomma = $state . ', '; $fmt = $address_format['format']; eval("\$address = \"$fmt\";"); if ( (ACCOUNT_COMPANY == 'true') && (tep_not_null($company)) ) { $address = $company . $cr . $address; } return $address; } //// // Return a formatted address // TABLES: customers, address_book function tep_address_label($customers_id, $address_id = 1, $html = false, $boln = '', $eoln = "\n") { if (is_array($address_id) && !empty($address_id)) { return tep_address_format($address_id['address_format_id'], $address_id, $html, $boln, $eoln); } $address_query = tep_db_query("select entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customers_id . "' and address_book_id = '" . (int)$address_id . "'"); $address = tep_db_fetch_array($address_query); $format_id = tep_get_address_format_id($address['country_id']); return tep_address_format($format_id, $address, $html, $boln, $eoln); } function tep_row_number_format($number) { if ( ($number < 10) && (substr($number, 0, 1) != '0') ) $number = '0' . $number; return $number; } function tep_get_categories($categories_array = '', $parent_id = '0', $indent = '') { global $languages_id; if (!is_array($categories_array)) $categories_array = array(); $categories_query = tep_db_query("select c.categories_id, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where parent_id = '" . (int)$parent_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name"); while ($categories = tep_db_fetch_array($categories_query)) { $categories_array[] = array('id' => $categories['categories_id'], 'text' => $indent . $categories['categories_name']); if ($categories['categories_id'] != $parent_id) { $categories_array = tep_get_categories($categories_array, $categories['categories_id'], $indent . ' '); } } return $categories_array; } function tep_get_manufacturers($manufacturers_array = '') { if (!is_array($manufacturers_array)) $manufacturers_array = array(); $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name"); while ($manufacturers = tep_db_fetch_array($manufacturers_query)) { $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'], 'text' => $manufacturers['manufacturers_name']); } return $manufacturers_array; } //// // Return all subcategory IDs // TABLES: categories function tep_get_subcategories(&$subcategories_array, $parent_id = 0) { $subcategories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$parent_id . "'"); while ($subcategories = tep_db_fetch_array($subcategories_query)) { $subcategories_array[sizeof($subcategories_array)] = $subcategories['categories_id']; if ($subcategories['categories_id'] != $parent_id) { tep_get_subcategories($subcategories_array, $subcategories['categories_id']); } } } // Output a raw date string in the selected locale date format // $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS function tep_date_long($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = (int)substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); return strftime(DATE_FORMAT_LONG, mktime($hour,$minute,$second,$month,$day,$year)); } //// // Output a raw date string in the selected locale date format // $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS // NOTE: Includes a workaround for dates before 01/01/1970 that fail on windows servers function tep_date_short($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || empty($raw_date) ) return false; $year = substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); if (@@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) { return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } else { return preg_replace('/2037$/', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037))); } } //// // Parse search string into indivual objects function tep_parse_search_string($search_str = '', &$objects) { $search_str = trim(strtolower($search_str)); // Break up $search_str on whitespace; quoted string will be reconstructed later $pieces = preg_split('/[[:space:]]+/', $search_str); $objects = array(); $tmpstring = ''; $flag = ''; for ($k=0; $k<count($pieces); $k++) { while (substr($pieces[$k], 0, 1) == '(') { $objects[] = '('; if (strlen($pieces[$k]) > 1) { $pieces[$k] = substr($pieces[$k], 1); } else { $pieces[$k] = ''; } } $post_objects = array(); while (substr($pieces[$k], -1) == ')') { $post_objects[] = ')'; if (strlen($pieces[$k]) > 1) { $pieces[$k] = substr($pieces[$k], 0, -1); } else { $pieces[$k] = ''; } } // Check individual words if ( (substr($pieces[$k], -1) != '"') && (substr($pieces[$k], 0, 1) != '"') ) { $objects[] = trim($pieces[$k]); for ($j=0; $j<count($post_objects); $j++) { $objects[] = $post_objects[$j]; } } else { /* This means that the $piece is either the beginning or the end of a string. So, we'll slurp up the $pieces and stick them together until we get to the end of the string or run out of pieces. */ // Add this word to the $tmpstring, starting the $tmpstring $tmpstring = trim(preg_replace('/"/', ' ', $pieces[$k])); // Check for one possible exception to the rule. That there is a single quoted word. if (substr($pieces[$k], -1 ) == '"') { // Turn the flag off for future iterations $flag = 'off'; $objects[] = trim(preg_replace('/"/', ' ', $pieces[$k])); for ($j=0; $j<count($post_objects); $j++) { $objects[] = $post_objects[$j]; } unset($tmpstring); // Stop looking for the end of the string and move onto the next word. continue; } // Otherwise, turn on the flag to indicate no quotes have been found attached to this word in the string. $flag = 'on'; // Move on to the next word $k++; // Keep reading until the end of the string as long as the $flag is on while ( ($flag == 'on') && ($k < count($pieces)) ) { while (substr($pieces[$k], -1) == ')') { $post_objects[] = ')'; if (strlen($pieces[$k]) > 1) { $pieces[$k] = substr($pieces[$k], 0, -1); } else { $pieces[$k] = ''; } } // If the word doesn't end in double quotes, append it to the $tmpstring. if (substr($pieces[$k], -1) != '"') { // Tack this word onto the current string entity $tmpstring .= ' ' . $pieces[$k]; // Move on to the next word $k++; continue; } else { /* If the $piece ends in double quotes, strip the double quotes, tack the $piece onto the tail of the string, push the $tmpstring onto the $haves, kill the $tmpstring, turn the $flag "off", and return. */ $tmpstring .= ' ' . trim(preg_replace('/"/', ' ', $pieces[$k])); // Push the $tmpstring onto the array of stuff to search for $objects[] = trim($tmpstring); for ($j=0; $j<count($post_objects); $j++) { $objects[] = $post_objects[$j]; } unset($tmpstring); // Turn off the flag to exit the loop $flag = 'off'; } } } } // add default logical operators if needed $temp = array(); for($i=0; $i<(count($objects)-1); $i++) { $temp[] = $objects[$i]; if ( ($objects[$i] != 'and') && ($objects[$i] != 'or') && ($objects[$i] != '(') && ($objects[$i+1] != 'and') && ($objects[$i+1] != 'or') && ($objects[$i+1] != ')') ) { $temp[] = ADVANCED_SEARCH_DEFAULT_OPERATOR; } } $temp[] = $objects[$i]; $objects = $temp; $keyword_count = 0; $operator_count = 0; $balance = 0; for($i=0; $i<count($objects); $i++) { if ($objects[$i] == '(') $balance --; if ($objects[$i] == ')') $balance ++; if ( ($objects[$i] == 'and') || ($objects[$i] == 'or') ) { $operator_count ++; } elseif ( ($objects[$i]) && ($objects[$i] != '(') && ($objects[$i] != ')') ) { $keyword_count ++; } } if ( ($operator_count < $keyword_count) && ($balance == 0) ) { return true; } else { return false; } } //// // Check date function tep_checkdate($date_to_check, $format_string, &$date_array) { $separator_idx = -1; $separators = array('-', ' ', '/', '.'); $month_abbr = array('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'); $no_of_days = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $format_string = strtolower($format_string); if (strlen($date_to_check) != strlen($format_string)) { return false; } $size = sizeof($separators); for ($i=0; $i<$size; $i++) { $pos_separator = strpos($date_to_check, $separators[$i]); if ($pos_separator != false) { $date_separator_idx = $i; break; } } for ($i=0; $i<$size; $i++) { $pos_separator = strpos($format_string, $separators[$i]); if ($pos_separator != false) { $format_separator_idx = $i; break; } } if ($date_separator_idx != $format_separator_idx) { return false; } if ($date_separator_idx != -1) { $format_string_array = explode( $separators[$date_separator_idx], $format_string ); if (sizeof($format_string_array) != 3) { return false; } $date_to_check_array = explode( $separators[$date_separator_idx], $date_to_check ); if (sizeof($date_to_check_array) != 3) { return false; } $size = sizeof($format_string_array); for ($i=0; $i<$size; $i++) { if ($format_string_array[$i] == 'mm' || $format_string_array[$i] == 'mmm') $month = $date_to_check_array[$i]; if ($format_string_array[$i] == 'dd') $day = $date_to_check_array[$i]; if ( ($format_string_array[$i] == 'yyyy') || ($format_string_array[$i] == 'aaaa') ) $year = $date_to_check_array[$i]; } } else { if (strlen($format_string) == 8 || strlen($format_string) == 9) { $pos_month = strpos($format_string, 'mmm'); if ($pos_month != false) { $month = substr( $date_to_check, $pos_month, 3 ); $size = sizeof($month_abbr); for ($i=0; $i<$size; $i++) { if ($month == $month_abbr[$i]) { $month = $i; break; } } } else { $month = substr($date_to_check, strpos($format_string, 'mm'), 2); } } else { return false; } $day = substr($date_to_check, strpos($format_string, 'dd'), 2); $year = substr($date_to_check, strpos($format_string, 'yyyy'), 4); } if (strlen($year) != 4) { return false; } if (!settype($year, 'integer') || !settype($month, 'integer') || !settype($day, 'integer')) { return false; } if ($month > 12 || $month < 1) { return false; } if ($day < 1) { return false; } if (tep_is_leap_year($year)) { $no_of_days[1] = 29; } if ($day > $no_of_days[$month - 1]) { return false; } $date_array = array($year, $month, $day); return true; } //// // Check if year is a leap year function tep_is_leap_year($year) { if ($year % 100 == 0) { if ($year % 400 == 0) return true; } else { if (($year % 4) == 0) return true; } return false; } //// // Return table heading with sorting capabilities function tep_create_sort_heading($sortby, $colnum, $heading) { global $PHP_SELF; $sort_prefix = ''; $sort_suffix = ''; if ($sortby) { $sort_prefix = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('page', 'info', 'sort')) . 'page=1&sort=' . $colnum . ($sortby == $colnum . 'a' ? 'd' : 'a')) . '" title="' . tep_output_string(TEXT_SORT_PRODUCTS . ($sortby == $colnum . 'd' || substr($sortby, 0, 1) != $colnum ? TEXT_ASCENDINGLY : TEXT_DESCENDINGLY) . TEXT_BY . $heading) . '" class="productListing-heading">' ; $sort_suffix = (substr($sortby, 0, 1) == $colnum ? (substr($sortby, 1, 1) == 'a' ? '+' : '-') : '') . '</a>'; } return $sort_prefix . $heading . $sort_suffix; } //// // Recursively go through the categories and retreive all parent categories IDs // TABLES: categories function tep_get_parent_categories(&$categories, $categories_id) { $parent_categories_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$categories_id . "'"); while ($parent_categories = tep_db_fetch_array($parent_categories_query)) { if ($parent_categories['parent_id'] == 0) return true; $categories[sizeof($categories)] = $parent_categories['parent_id']; if ($parent_categories['parent_id'] != $categories_id) { tep_get_parent_categories($categories, $parent_categories['parent_id']); } } } //// // Construct a category path to the product // TABLES: products_to_categories function tep_get_product_path($products_id) { $cPath = ''; $category_query = tep_db_query("select p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = '" . (int)$products_id . "' and p.products_status = '1' and p.products_id = p2c.products_id limit 1"); if (tep_db_num_rows($category_query)) { $category = tep_db_fetch_array($category_query); $categories = array(); tep_get_parent_categories($categories, $category['categories_id']); $categories = array_reverse($categories); $cPath = implode('_', $categories); if (tep_not_null($cPath)) $cPath .= '_'; $cPath .= $category['categories_id']; } return $cPath; } //// // Return a product ID with attributes function tep_get_uprid($prid, $params) { if (is_numeric($prid)) { $uprid = (int)$prid; if (is_array($params) && (sizeof($params) > 0)) { $attributes_check = true; $attributes_ids = ''; reset($params); while (list($option, $value) = each($params)) { if (is_numeric($option) && is_numeric($value)) { $attributes_ids .= '{' . (int)$option . '}' . (int)$value; } else { $attributes_check = false; break; } } if ($attributes_check == true) { $uprid .= $attributes_ids; } } } else { $uprid = tep_get_prid($prid); if (is_numeric($uprid)) { if (strpos($prid, '{') !== false) { $attributes_check = true; $attributes_ids = ''; // strpos()+1 to remove up to and including the first { which would create an empty array element in explode() $attributes = explode('{', substr($prid, strpos($prid, '{')+1)); for ($i=0, $n=sizeof($attributes); $i<$n; $i++) { $pair = explode('}', $attributes[$i]); if (is_numeric($pair[0]) && is_numeric($pair[1])) { $attributes_ids .= '{' . (int)$pair[0] . '}' . (int)$pair[1]; } else { $attributes_check = false; break; } } if ($attributes_check == true) { $uprid .= $attributes_ids; } } } else { return false; } } return $uprid; } //// // Return a product ID from a product ID with attributes function tep_get_prid($uprid) { $pieces = explode('{', $uprid); if (is_numeric($pieces[0])) { return (int)$pieces[0]; } else { return false; } } //// // Return a customer greeting function tep_customer_greeting() { global $customer_id, $customer_first_name; if (tep_session_is_registered('customer_first_name') && tep_session_is_registered('customer_id')) { $greeting_string = sprintf(TEXT_GREETING_PERSONAL, tep_output_string_protected($customer_first_name), tep_href_link(FILENAME_PRODUCTS_NEW)); } else { $greeting_string = sprintf(TEXT_GREETING_GUEST, tep_href_link(FILENAME_LOGIN, '', 'SSL'), tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL')); } return $greeting_string; } //// //! Send email (text/html) using MIME // This is the central mail function. The SMTP Server should be configured // correct in php.ini // Parameters: // $to_name The name of the recipient, e.g. "Jan Wildeboer" // $to_email_address The eMail address of the recipient, // e.g. jan.wildeboer@@gmx526.de // $email_subject The subject of the eMail // $email_text The text of the eMail, may contain HTML entities // $from_email_name The name of the sender, e.g. Shop Administration // $from_email_adress The eMail address of the sender, // e.g. [email protected] function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) { if (SEND_EMAILS != 'true') return false; // Instantiate a new mail object $message = new email(array('X-Mailer: osCommerce')); // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $message->add_html($email_text, $text); } else { $message->add_text($text); } // Send message $message->build_message(); $message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject); } //// // Check if product has attributes function tep_has_product_attributes($products_id) { $attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'"); $attributes = tep_db_fetch_array($attributes_query); if ($attributes['count'] > 0) { return true; } else { return false; } } //// // Get the number of times a word/character is present in a string function tep_word_count($string, $needle) { $temp_array = preg_split('/' . $needle . '/', $string); return sizeof($temp_array); } function tep_count_modules($modules = '') { $count = 0; if (empty($modules)) return $count; $modules_array = explode(';', $modules); for ($i=0, $n=sizeof($modules_array); $i<$n; $i++) { $class = substr($modules_array[$i], 0, strrpos($modules_array[$i], '.')); if (isset($GLOBALS[$class]) && is_object($GLOBALS[$class])) { if ($GLOBALS[$class]->enabled) { $count++; } } } return $count; } function tep_count_payment_modules() { return tep_count_modules(MODULE_PAYMENT_INSTALLED); } function tep_count_shipping_modules() { return tep_count_modules(MODULE_SHIPPING_INSTALLED); } function tep_create_random_value($length, $type = 'mixed') { if ( ($type != 'mixed') && ($type != 'chars') && ($type != 'digits')) $type = 'mixed'; $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $digits = '0123456789'; $base = ''; if ( ($type == 'mixed') || ($type == 'chars') ) { $base .= $chars; } if ( ($type == 'mixed') || ($type == 'digits') ) { $base .= $digits; } $value = ''; if (!class_exists('PasswordHash')) { include(DIR_WS_CLASSES . 'passwordhash.php'); } $hasher = new PasswordHash(10, true); do { $random = base64_encode($hasher->get_random_bytes($length)); for ($i = 0, $n = strlen($random); $i < $n; $i++) { $char = substr($random, $i, 1); if ( strpos($base, $char) !== false ) { $value .= $char; } } } while ( strlen($value) < $length ); if ( strlen($value) > $length ) { $value = substr($value, 0, $length); } return $value; } function tep_array_to_string($array, $exclude = '', $equals = '=', $separator = '&') { if (!is_array($exclude)) $exclude = array(); $get_string = ''; if (sizeof($array) > 0) { while (list($key, $value) = each($array)) { if ( (!in_array($key, $exclude)) && ($key != 'x') && ($key != 'y') ) { $get_string .= $key . $equals . $value . $separator; } } $remove_chars = strlen($separator); $get_string = substr($get_string, 0, -$remove_chars); } return $get_string; } function tep_not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } //// // Output the tax percentage with optional padded decimals function tep_display_tax_value($value, $padding = TAX_DECIMAL_PLACES) { if (strpos($value, '.')) { $loop = true; while ($loop) { if (substr($value, -1) == '0') { $value = substr($value, 0, -1); } else { $loop = false; if (substr($value, -1) == '.') { $value = substr($value, 0, -1); } } } } if ($padding > 0) { if ($decimal_pos = strpos($value, '.')) { $decimals = strlen(substr($value, ($decimal_pos+1))); for ($i=$decimals; $i<$padding; $i++) { $value .= '0'; } } else { $value .= '.'; for ($i=0; $i<$padding; $i++) { $value .= '0'; } } } return $value; } //// // Checks to see if the currency code exists as a currency // TABLES: currencies function tep_currency_exists($code) { $code = tep_db_prepare_input($code); $currency_query = tep_db_query("select code from " . TABLE_CURRENCIES . " where code = '" . tep_db_input($code) . "' limit 1"); if (tep_db_num_rows($currency_query)) { $currency = tep_db_fetch_array($currency_query); return $currency['code']; } else { return false; } } function tep_string_to_int($string) { return (int)$string; } //// // Parse and secure the cPath parameter values function tep_parse_category_path($cPath) { // make sure the category IDs are integers $cPath_array = array_map('tep_string_to_int', explode('_', $cPath)); // make sure no duplicate category IDs exist which could lock the server in a loop $tmp_array = array(); $n = sizeof($cPath_array); for ($i=0; $i<$n; $i++) { if (!in_array($cPath_array[$i], $tmp_array)) { $tmp_array[] = $cPath_array[$i]; } } return $tmp_array; } //// // Return a random value function tep_rand($min = null, $max = null) { static $seeded; if (!isset($seeded)) { $seeded = true; if ( (PHP_VERSION < '4.2.0') ) { mt_srand((double)microtime()*1000000); } } if (isset($min) && isset($max)) { if ($min >= $max) { return $min; } else { return mt_rand($min, $max); } } else { return mt_rand(); } } function tep_setcookie($name, $value = '', $expire = 0, $path = '/', $domain = '', $secure = 0) { setcookie($name, $value, $expire, $path, (tep_not_null($domain) ? $domain : ''), $secure); } function tep_validate_ip_address($ip_address) { if (function_exists('filter_var') && defined('FILTER_VALIDATE_IP')) { return filter_var($ip_address, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)); } if (preg_match('/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/', $ip_address)) { $parts = explode('.', $ip_address); foreach ($parts as $ip_parts) { if ( (intval($ip_parts) > 255) || (intval($ip_parts) < 0) ) { return false; // number is not within 0-255 } } return true; } return false; } function tep_get_ip_address() { global $HTTP_SERVER_VARS; $ip_address = null; $ip_addresses = array(); if (isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) && !empty($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'])) { foreach ( array_reverse(explode(',', $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'])) as $x_ip ) { $x_ip = trim($x_ip); if (tep_validate_ip_address($x_ip)) { $ip_addresses[] = $x_ip; } } } if (isset($HTTP_SERVER_VARS['HTTP_CLIENT_IP']) && !empty($HTTP_SERVER_VARS['HTTP_CLIENT_IP'])) { $ip_addresses[] = $HTTP_SERVER_VARS['HTTP_CLIENT_IP']; } if (isset($HTTP_SERVER_VARS['HTTP_X_CLUSTER_CLIENT_IP']) && !empty($HTTP_SERVER_VARS['HTTP_X_CLUSTER_CLIENT_IP'])) { $ip_addresses[] = $HTTP_SERVER_VARS['HTTP_X_CLUSTER_CLIENT_IP']; } if (isset($HTTP_SERVER_VARS['HTTP_PROXY_USER']) && !empty($HTTP_SERVER_VARS['HTTP_PROXY_USER'])) { $ip_addresses[] = $HTTP_SERVER_VARS['HTTP_PROXY_USER']; } $ip_addresses[] = $HTTP_SERVER_VARS['REMOTE_ADDR']; foreach ( $ip_addresses as $ip ) { if (!empty($ip) && tep_validate_ip_address($ip)) { $ip_address = $ip; break; } } return $ip_address; } function tep_count_customer_orders($id = '', $check_session = true) { global $customer_id, $languages_id; if (is_numeric($id) == false) { if (tep_session_is_registered('customer_id')) { $id = $customer_id; } else { return 0; } } if ($check_session == true) { if ( (tep_session_is_registered('customer_id') == false) || ($id != $customer_id) ) { return 0; } } $orders_check_query = tep_db_query("select count(*) as total from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$id . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1'"); $orders_check = tep_db_fetch_array($orders_check_query); return $orders_check['total']; } function tep_count_customer_address_book_entries($id = '', $check_session = true) { global $customer_id; if (is_numeric($id) == false) { if (tep_session_is_registered('customer_id')) { $id = $customer_id; } else { return 0; } } if ($check_session == true) { if ( (tep_session_is_registered('customer_id') == false) || ($id != $customer_id) ) { return 0; } } $addresses_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$id . "'"); $addresses = tep_db_fetch_array($addresses_query); return $addresses['total']; } // nl2br() prior PHP 4.2.0 did not convert linefeeds on all OSs (it only converted \n) function tep_convert_linefeeds($from, $to, $string) { if ((PHP_VERSION < "4.0.5") && is_array($from)) { return preg_replace('/(' . implode('|', $from) . ')/', $to, $string); } else { return str_replace($from, $to, $string); } } ?> Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 17, 2013 Share Posted October 17, 2013 @@beezer26164 this looks correct. please post your includes/application_top.php, but please only the changed parts. Dont't forget to revert the changes you tried, there is no need to modify anything, it should work just doing the mods indicated in the install doc. Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
beezer26164 Posted October 17, 2013 Share Posted October 17, 2013 // load server configuration parameters if (file_exists('includes/local/configure.php')) { // for developers include('includes/local/configure.php'); } else { require((defined('MOBILE_SESSION') ? '../includes/configure.php' : 'includes/configure.php')); } if (strlen(DB_SERVER) < 1) { if (is_dir('install')) { header('Location: install/index.php'); } } // set php_self in the local scope $PHP_SELF = (((strlen(ini_get('cgi.fix_pathinfo')) > 0) && ((bool)ini_get('cgi.fix_pathinfo') == false)) || !isset($HTTP_SERVER_VARS['SCRIPT_NAME'])) ? basename($HTTP_SERVER_VARS['PHP_SELF']) : basename($HTTP_SERVER_VARS['SCRIPT_NAME']); if ($request_type == 'NONSSL') { defined('MOBILE_SESSION') ? define('DIR_WS_CATALOG', DIR_WS_HTTP_MOBILE) : define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); } else { defined('MOBILE_SESSION') ? define('DIR_WS_CATALOG', DIR_WS_HTTPS_MOBILE) : define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); } // include the list of project filenames require(DIR_WS_INCLUDES . 'filenames.php'); $navigation->add_current_page(); // action recorder include(DIR_WS_CLASSES . 'action_recorder.php'); // initialize the message stack for output messages require(DIR_WS_CLASSES . 'message_stack.php'); $messageStack = new messageStack; //BEGIN : MOBILE REDIRECT_SCRIPT if (MOBILE_SITE=='True'){ if (USU5_ENABLED == 'true' || SEO_ENABLED == 'true'){ $marker_replace_from = array('%' . DIR_WS_HTTP_CATALOG . '%', '/-p-/', '/-c-/', '/-m-/', '/-pr-/', '/-pri-/', '/-pi-/', '/-a-/', '/-au-/', '/-by-/', '/-f-/', '/-fc-/', '/-fri-/', '/-fra-/', '/-i-/', '/-links-/', '/-n-/', '/-nc-/', '/-nri-/', '/-nra-/', '/-pm-/', '/-po-/', '/-t-/'); $marker_replace_to = array('', '-mp-', '-mc-', '-mm-', '-mpr-', '-mpri-', '-mpi-', '-ma-', '-mau-', '-mby-', '-mf-', '-mfc-', '-mfri-', '-mfra-', '-mi-', '-mlinks-', '-mn-', '-mnc-', '-mnri-', '-mnra-', '-mpm-', '-mpo-', '-mt-'); $mobile_site = preg_replace($marker_replace_from, $marker_replace_to, $_SERVER['REQUEST_URI']); if (strpos($mobile_site, '-mc-') || strpos($mobile_site, '-mm-')) { $mobile_site = str_replace('index.php', 'catalog_mb.php', $mobile_site); } if($mobile_site != $_SERVER['REQUEST_URI']) { $mobile_url = (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WSS_HTTP_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . $mobile_site; } else { $mobile_url = (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WSS_HTTP_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . $_SERVER['REQUEST_URI']; } } else { $mobile_site = basename($PHP_SELF); if (strpos($_SERVER['REQUEST_URI'], 'index.php') && (strpos($_SERVER['REQUEST_URI'], 'manufacturers_id=') || strpos($_SERVER['REQUEST_URI'], 'cPath='))) { $mobile_site = str_replace('index.php', 'catalog_mb.php', $mobile_site); } if (tep_not_null(tep_get_all_get_params())) { $mobile_url = (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE) . '?' . rtrim (tep_output_string(tep_get_all_get_params()), '&'); } else { $mobile_url = (($request_type == 'SSL') ? HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE); } } require(DIR_FS_MOBILE . 'includes/classes/mobile_redirect.php'); $mobileRedirect = new mobileRedirect; } //END : MOBILE REDIRECT_SCRIPT ?> Here it is. Thanks, Bill Quote Link to comment Share on other sites More sharing options...
beezer26164 Posted October 17, 2013 Share Posted October 17, 2013 When i first installed the addon I was unable to connect to my regular store so I contacted my host support dept. and asked them if they could do anything. Well I just checked back with them and they said the following: We could see that there is some PHP coding problem with your website. Earlier, we disabled the line 539 of the file /home/..../public_html/includes/application_top.php to fix the issue. And that has caused http://rubartsgifts-n-electronics.com/mobile/index.php show a blank page. Now, its showing below error logs: ================ [16-Oct-2013 20:20:55 America/New_York] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required 'includes/functions/compatibility.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/..../public_html/includes/application_top.php on line 43 ================ I'm Lost....Your Help is Greatly Appreciated!! Quote Link to comment Share on other sites More sharing options...
♥raiwa Posted October 17, 2013 Share Posted October 17, 2013 When i first installed the addon I was unable to connect to my regular store so I contacted my host support dept. and asked them if they could do anything. Well I just checked back with them and they said the following: We could see that there is some PHP coding problem with your website. Earlier, we disabled the line 539 of the file /home/..../public_html/includes/application_top.php to fix the issue. And that has caused http://rubartsgifts-n-electronics.com/mobile/index.php show a blank page. Now, its showing below error logs: ================ [16-Oct-2013 20:20:55 America/New_York] PHP Fatal error: require() [<a href='function.require'>function.require</a>]: Failed opening required 'includes/functions/compatibility.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/..../public_html/includes/application_top.php on line 43 ================ I'm Lost....Your Help is Greatly Appreciated!! @@beezer26164 I sent you a private message with contact info Quote About Me: http://www.oscommerce.com/forums/user/249059-raiwa/ Need help? How To Get The Help You Need Is your version of osC up to date? You'll find the latest osC community version CE Phoenix here. Public Phoenix Change Log Cheat Set on Google Sheets Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.