Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[Contribution] iOSC - mobile version of OSC on your iPhone


bumbarash

Recommended Posts

Hi, i appreciate your work on this! I can't seem to get past an error with my configuration. I'm working with 2.3.3.4 on a linux vm for testing (its not a live environment).

 

Warning: require(/mobile/includes/classes/mobile_redirect.php): failed to open stream: No such file or directory in /var/www/it2334/includes/application_top.php on line 518 Fatal error: require(): Failed opening required '/mobile/includes/classes/mobile_redirect.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/it2334/includes/application_top.php on line 518

 

so line 518 says this:

require(DIR_FS_MOBILE . 'includes/classes/mobile_redirect.php');

 

My DIR_FS_MOBILE IS defined as

define('DIR_FS_MOBILE', DIR_FS_CATALOG . 'mobile/');

 

and DIR_FS_CATALOG is

define('DIR_FS_CATALOG', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/');

 

I dont understand why this code does not point me to the correct path. The file is indeed in the path. What am i missing? Thank you!

Link to comment
Share on other sites

Hi, i appreciate your work on this! I can't seem to get past an error with my configuration. I'm working with 2.3.3.4 on a linux vm for testing (its not a live environment).

 

Warning: require(/mobile/includes/classes/mobile_redirect.php): failed to open stream: No such file or directory in /var/www/it2334/includes/application_top.php on line 518 Fatal error: require(): Failed opening required '/mobile/includes/classes/mobile_redirect.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/it2334/includes/application_top.php on line 518

 

so line 518 says this:

require(DIR_FS_MOBILE . 'includes/classes/mobile_redirect.php');

 

My DIR_FS_MOBILE IS defined as

define('DIR_FS_MOBILE', DIR_FS_CATALOG . 'mobile/');

 

and DIR_FS_CATALOG is

define('DIR_FS_CATALOG', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/');

 

I dont understand why this code does not point me to the correct path. The file is indeed in the path. What am i missing? Thank you!

 

Well, in looking at someone else's configure.php i fixed it so my site loads ok, but after loading the /mobile directory, I'm now getting

 

Warning: require(includes/functions/compatibility.php): failed to open stream: No such file or directory in /var/www/it2334/includes/application_top.php on line 41 Fatal error: require(): Failed opening required 'includes/functions/compatibility.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/it2334/includes/application_top.php on line 41

 

in reviewing this thread raiwa, you mentioned about fixing code in application_top, but the documentation for the most recent version did not reflect that change. you mentioned this is the fix

 

$mobile_site = (($request_type == 'SSL') ? DIR_WS_HTTPS_MOBILE : DIR_WS_HTTP_MOBILE) . $mobile_site . '?' . rtrim (tep_output_string(tep_get_all_get_params()), '&');
 } else {
 $mobile_site = (($request_type == 'SSL') ? DIR_WS_HTTPS_MOBILE : DIR_WS_HTTP_MOBILE) . $mobile_site;

 

but code in the documentation has a different variable,

 

$mobile_url

 

I want to be sure which is correct?? Thank you!

Link to comment
Share on other sites

I finally got the mobile site loading, the problem ended up being trying to use local/configure.php. Despite my change of the code below it wasnt working. Only after i edited includes/configure.php did it work.

 

// load server configuration parameters
if (file_exists('includes/local/configure.php')) { // for developers
require((defined('MOBILE_SESSION') ? '../includes/local/configure.php' : 'includes/local/configure.php'));
} else {
require((defined('MOBILE_SESSION') ? '../includes/configure.php' : 'includes/configure.php'));
}

 

Site loads but now when I click on something, nothing happens, just the little spinner goes round without any page movement.

Link to comment
Share on other sites

I finally got the mobile site loading, the problem ended up being trying to use local/configure.php. Despite my change of the code below it wasnt working. Only after i edited includes/configure.php did it work.

 

// load server configuration parameters
if (file_exists('includes/local/configure.php')) { // for developers
require((defined('MOBILE_SESSION') ? '../includes/local/configure.php' : 'includes/local/configure.php'));
} else {
require((defined('MOBILE_SESSION') ? '../includes/configure.php' : 'includes/configure.php'));
}

 

Site loads but now when I click on something, nothing happens, just the little spinner goes round without any page movement.

 

Hello Steve,@@mcbsolutions,

 

The last change shouldn't be necessary.

The fix for the redirect script you mention is part of the version for windows servers.

 

So if your server is Linux you should use the script included in the Installation doc.

Do you have SEO URLs installed? If yes, do you have the support for SEO URLs added to mobile?

 

Please check the "Add-On Support.doc" and "Troubleshooting.doc"

 

If you still have problems, please post your store URL, includes/configure.php (without database details at the bottom) and relevant parts of includes/application_top.php, if you prefer in a private message.

 

Kind regards

Rainer

Edited by raiwa
Link to comment
Share on other sites

Hello raiwa

 

You have a done a great job. I am wondering if you are working for OSC version 2.3.3.4?

 

Thanks

 

I'm working on this, maybe during the next 2 weeks the update will be done.

 

Thanks and kind regards

Rainer

Link to comment
Share on other sites

  • 2 weeks later...

I'm working though debugging this on my test store and I have run into and issue with the header tags support addon.

 

I have added the code as per the instruction however the results for the canonical are not as expected. In the mobile site everything tests good;

 

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Category</title>
<meta name="Description" content="My Category Description" />
<meta name="Keywords" content="My, keywords" />
<meta name="robots" content="noodp" />
<meta name="robots" content="noydir" />
<link rel="canonical" href="http://www.mysite.com/sandbox/my-category-c-334.html" >

 

However, in the desktop site I have;

 

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Category</title>
<meta name="Description" content="My Category Description" />
<meta name="Keywords" content="My, keywords" />
<meta name="robots" content="noodp" />
<meta name="robots" content="noydir" />
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://www.mysite.com/sandbox/mobile/my-category-mc-334.html">

 

As you can see the canonical is missing from the desktop site.

 

The code I'm working with is in catelog/includes/header_tags.php

 

// MOBILE URLS REPLACEMENTS FOR CANONICAL URL
$str_replace_from = array('-mc-', '-mi-', '-mby-', '-mpr-', '-mpri-', '-mp-', '-mm-', 'catalog_mb.php', 'about.php',  'search.php', 'currencies.php', 'languages.php', 'mobile/', '?redirectCancelled=true', '&redirectCancelled=true');
$str_replace_to = array('-c-', '-i-', '-by-', '-pr-', '-pri-', '-p-', '-m-', 'index.php', 'index.php', 'index.php', 'index.php', 'index.php');
$str_replace_alt_from = array('mobile/', '?redirectCancelled=true', '&redirectCancelled=true');
$str_replace_alt_to = array('mobile/', '', '');

echo (defined('MOBILE_SESSION')? ' <meta http-equiv="Content-Type" content="text/html; charset=' . CHARSET  . '" />'."\n" : '<meta http-equiv="Content-Type" content="text/html; charset=' . CHARSET  . '">'."\n");
echo ' <title>' . $header_tags_array['title'] . '</title>' . "\n";
echo (defined('MOBILE_SESSION')? ' <meta name="Description" content="' . $header_tags_array['desc'] . '" />' . "\n" : ' <meta name="Description" content="' . $header_tags_array['desc'] . '">' . "\n");
echo (defined('MOBILE_SESSION')? ' <meta name="Keywords" content="' . $header_tags_array['keywords'] . '" />' . "\n" : ' <meta name="Keywords" content="' . $header_tags_array['keywords'] . '">' . "\n");

if ($defaultTags['meta_language']) { $langName = explode(",", $_SERVER["HTTP_ACCEPT_LANGUAGE"]); echo (defined('MOBILE_SESSION')? ' <meta http-equiv="Content-Language" content="' . $langName[0] . '" />'."\n" : ' <meta http-equiv="Content-Language" content="' . $langName[0] . '">'."\n"); }
if ($defaultTags['meta_google']) { echo (defined('MOBILE_SESSION')? ' <meta name="googlebot" content="noindex, nofollow" />' . "\n" : ' <meta name="googlebot-mobile" content="noindex, nofollow">' . "\n"); }
if ($defaultTags['meta_google']) { echo (defined('MOBILE_SESSION')? ' <meta name="bingbot" content="noindex, nofollow" />' . "\n" : ' <meta name="MSNBOT_Mobile" content="noindex, nofollow">' . "\n"); }
if ($defaultTags['meta_google']) { echo (defined('MOBILE_SESSION')? ' <meta name="slurp" content="noindex, nofollow" />' . "\n" : ' <meta name="YahooSeeker/M1A1-R2D2" content="noindex, nofollow">' . "\n"); }
if ($defaultTags['meta_noodp']) { echo (defined('MOBILE_SESSION')? ' <meta name="robots" content="noodp" />' . "\n" : ' <meta name="robots" content="noodp">' . "\n"); }
if ($defaultTags['meta_noydir']) { echo (defined('MOBILE_SESSION')? ' <meta name="robots" content="noydir" />' . "\n" : ' <meta name="robots" content="noydir">' . "\n"); }
if ($defaultTags['meta_revisit']) { echo (defined('MOBILE_SESSION')? ' <meta name="revisit-after" content="1 days" />' . "\n" : ' <meta name="revisit-after" content="1 days">' . "\n"); }
if ($defaultTags['meta_robots']) { echo (defined('MOBILE_SESSION')? '' : ' <meta name="robots" content="index, follow">' . "\n"); }
if ($defaultTags['meta_unspam']) { echo (defined('MOBILE_SESSION')? ' <meta name="no-email-collection" content="http://www.unspam.com/noemailcollection" />' . "\n" : ' <meta name="no-email-collection" content="http://www.unspam.com/noemailcollection">' . "\n"); }
if ($defaultTags['meta_replyto']) { echo (defined('MOBILE_SESSION')? ' <meta name="Reply-to" content="' . STORE_OWNER_EMAIL_ADDRESS . '" />' . "\n" : ' <meta name="Reply-to" content="' . STORE_OWNER_EMAIL_ADDRESS . '">' . "\n"); }
if ($defaultTags['meta_canonical']) { echo (defined('MOBILE_SESSION')? html_entity_decode(str_replace($str_replace_from, $str_replace_to, (tep_not_null($canonical_url) ? ' <link rel="canonical" href="'.$canonical_url.'" >'. "\n" : ' <link rel="canonical" href="'.GetCanonicalURL().'" >'. "\n"))) : ''); }
//if ($defaultTags['meta_canonical']) echo (tep_not_null($canonical_url) ? ' <link rel="canonical" href="'.$canonical_url.'" >'. "\n" : ' <link rel="canonical" href="'.GetCanonicalURL().'" >'. "\n");

//echo (defined('MOBILE_SESSION')? '' : ( ' <link rel="alternate" media="only screen and (max-width: 640px)" href="'. HTTP_MOBILE_SERVER . str_replace($str_replace_alt_from, $str_replace_alt_to, $mobile_url) .'">'. "\n")); 
echo (defined('MOBILE_SESSION')? '' : ( ' <link rel="alternate" media="only screen and (max-width: 640px)" href="'. str_replace($str_replace_alt_from, $str_replace_alt_to, $mobile_url) .'">'. "\n")); 

echo '<!-- EOF: Header Tags SEO Generated Meta Tags -->' . "\n"; 

 

I can get the tags to show in the desktop site by reverting back to the org code (you can see it commented out above)

 

if ($defaultTags['meta_canonical']) echo (tep_not_null($canonical_url) ? ' <link rel="canonical" href="'.$canonical_url.'" >'. "\n" : ' <link rel="canonical" href="'.GetCanonicalURL().'" >'. "\n");

However this kills the tag on the mobile site.

 

Am I mis-understanding how the tag should look?

 

Or maybe this is an issue with SEO URL's 5? I have my site NOT redicting to index.php in the URL settings...?

Link to comment
Share on other sites

I think I have fixed "the issue" (it is now working the way I expected) by adding the tag back in when there is no mobile session.

 

if ($defaultTags['meta_canonical']) { echo (defined('MOBILE_SESSION')? '' :(tep_not_null($canonical_url) ? ' <link rel="canonical" href="'.$canonical_url.'" >'. "\n" : ' <link rel="canonical" href="'.GetCanonicalURL().'" >'. "\n")); }

 

After;

 

if ($defaultTags['meta_canonical']) { echo (defined('MOBILE_SESSION')? html_entity_decode(str_replace($str_replace_from, $str_replace_to, (tep_not_null($canonical_url) ? ' <link rel="canonical" href="'.$canonical_url.'" >'. "\n" : ' <link rel="canonical" href="'.GetCanonicalURL().'" >'. "\n"))) : ''); }

 

Can anyone else confirm? Or am I "nuts" (wait... don't answer that).

Edited by greasemonkey
Link to comment
Share on other sites

hi Rainer

 

I just installed the mobile new version 7.2.0 and I find an error.

 

Warning: require(../includes/functions/compatibility.php) [function.require]: failed to open stream: No such file or directory in /home2/*****/public_html/****/includes/application_top.php on line 50

 

Do you know what the problem is or where I did mistake.

Link to comment
Share on other sites

hi Rainer

 

I just installed the mobile new version 7.2.0 and I find an error.

 

Warning: require(../includes/functions/compatibility.php) [function.require]: failed to open stream: No such file or directory in /home2/*****/public_html/****/includes/application_top.php on line 50

 

Do you know what the problem is or where I did mistake.

 

Hello @@razgre,

 

this looks like a configuration error in includes/configure.php

you can post the file without the database details at the end.

 

Please, let me also know if you installed in subdirectory or subdomain.

 

regards

Rainer

Link to comment
Share on other sites

Rainer

 

Thank for quick reply.

 

it is subdomain

 

define('HTTP_SERVER', 'http://www.mysite.com');

define('HTTPS_SERVER', 'https://www.mysite.com');

define('ENABLE_SSL', true);

define('HTTP_COOKIE_DOMAIN', '.mysite.com');

define('HTTPS_COOKIE_DOMAIN', '.mysite.com');

define('HTTP_COOKIE_PATH', '/');

define('HTTPS_COOKIE_PATH', '/');

define('DIR_WS_HTTP_CATALOG', '/');

define('DIR_WS_HTTPS_CATALOG', '/');

 

//BOF Mobile

define('HTTP_MOBILE_SERVER', 'http://m.mysite.com');

define('HTTPS_MOBILE_SERVER', 'https://m.mysite.com');

define('DIR_WS_HTTP_MOBILE', '/');

define('DIR_WS_HTTPS_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

 

// define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');

//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', '/home2/****/public_html/mysite.com/');

define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');

//BOF Mobile

define('DIR_FS_MOBILE', '/home2/****/public_html/m/');

//EOF Mobile

 

define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

Link to comment
Share on other sites

Rainer

 

Thank for quick reply.

 

it is subdomain

 

define('HTTP_SERVER', 'http://www.mysite.com');

define('HTTPS_SERVER', 'https://www.mysite.com');

define('ENABLE_SSL', true);

define('HTTP_COOKIE_DOMAIN', '.mysite.com');

define('HTTPS_COOKIE_DOMAIN', '.mysite.com');

define('HTTP_COOKIE_PATH', '/');

define('HTTPS_COOKIE_PATH', '/');

define('DIR_WS_HTTP_CATALOG', '/');

define('DIR_WS_HTTPS_CATALOG', '/');

 

//BOF Mobile

define('HTTP_MOBILE_SERVER', 'http://m.mysite.com');

define('HTTPS_MOBILE_SERVER', 'https://m.mysite.com');

define('DIR_WS_HTTP_MOBILE', '/');

define('DIR_WS_HTTPS_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

 

// define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');

//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', '/home2/****/public_html/mysite.com/');

define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');

//BOF Mobile

define('DIR_FS_MOBILE', '/home2/****/public_html/m/');

//EOF Mobile

 

define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

 

 

Hello@@razgre

 

Did you do all steps in "Configure_subdomain.doc" ?

 

Then try to change:

 

(defined('MOBILE_SESSION') ? define('DIR_WS_INCLUDES', '../includes/') : define('DIR_WS_INCLUDES', 'includes/'));

 

to

 

(defined('MOBILE_SESSION') ? define('DIR_WS_INCLUDES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/') : define('DIR_WS_INCLUDES', 'includes/'));

 

kind regards

Rainer

Edited by raiwa
Link to comment
Share on other sites

Thanks Rainer

 

Your answer solved the first problem but i have an other problem now.

 

Fatal error: Call to undefined function tep_db_connect() in /home2/****/public_html/****/includes/application_top.php on line 112

 

line 112 is

// make a connection to the database... now

tep_db_connect() or die('Unable to connect to database server!');

Link to comment
Share on other sites

Thanks Rainer

 

Your answer solved the first problem but i have an other problem now.

 

Fatal error: Call to undefined function tep_db_connect() in /home2/****/public_html/****/includes/application_top.php on line 112

 

line 112 is

// make a connection to the database... now

tep_db_connect() or die('Unable to connect to database server!');

 

Hello @@razgre,

 

This sounds strange, but try this mod:

 

in: includes/configure.php

 

change this:

 

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/');

 

to:

 

(defined('MOBILE_SESSION') ? define('DIR_WS_FUNCTIONS', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/functions/') : define('DIR_WS_FUNCTIONS', 'includes/functions/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_CLASSES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/classes/') : define('DIR_WS_CLASSES', 'includes/classes/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_MODULES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/modules/') : define('DIR_WS_MODULES', 'includes/modules/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_LANGUAGES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/languages/') : define('DIR_WS_LANGUAGES', 'includes/languages/'));

 

If this does not help, you can send me your ftp access in a private message and I'll try to fix your mobile installation.

 

Kind regards

Rainer

Edited by raiwa
Link to comment
Share on other sites

Hello @@razgre,

 

This sounds strange, but try this mod:

 

in: includes/configure.php

 

change this:

 

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/');

 

to:

 

(defined('MOBILE_SESSION') ? define('DIR_WS_FUNCTIONS', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/functions/') : define('DIR_WS_FUNCTIONS', 'includes/functions/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_CLASSES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/classes/') : define('DIR_WS_CLASSES', 'includes/classes/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_MODULES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/modules/') : define('DIR_WS_MODULES', 'includes/modules/'));
(defined('MOBILE_SESSION') ? define('DIR_WS_LANGUAGES', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'includes/languages/') : define('DIR_WS_LANGUAGES', 'includes/languages/'));

 

If this does not help, you can send me your ftp access in a private message and I'll try to fix your mobile installation.

 

Kind regards

Rainer

 

 

I changed the above and didnt help. still same error.

Sorry but I don't know how to send you a private message?

Link to comment
Share on other sites

iOSC for OSC 2.3.3

Items with attributes wont update in the mobile shopping cart. Regular items do. All items work as expected in the non-mobile cart.

 

Thanks for any help.

 

Hello @@MountainMan,

 

If you have any add-on installed which affects the attributes, like for ex. QT-pro, you need to add the code also to the correspondant mobile pages.

 

Kind regards

Rainer

Link to comment
Share on other sites

I got reported a non working PayPal link for the PayPal express button in the mobile shopping cart.

 

Please do the following fix:

 

In: catalog/includes/modules/payment/paypal_express.php

 

find line 88:

 

  $string = '<a href="' . tep_href_link('ext/modules/payment/paypal/express.php', '', 'SSL') . '"><img src="' . $image_button . '" alt="" title="' . tep_output_string_protected(MODULE_PAYMENT_PAYPAL_EXPRESS_TEXT_BUTTON) . '"></a>';

 

replace with:

 

  $string = '<a link rel="external" href="' . tep_href_link('ext/modules/payment/paypal/express.php', '', 'SSL') . '"><img src="' . $image_button . '" alt="" title="' . tep_output_string_protected(MODULE_PAYMENT_PAYPAL_EXPRESS_TEXT_BUTTON) . '"></a>';

 

This will switch off the jquery/ajax linking which is necessary for external links to work.

 

If someone uses other payment modules which use a similar button in the mobile shopping cart, do the same modification in the external link.

 

This will not affect the classic site.

 

I'll include this fix in the next update.

 

Rainer

Link to comment
Share on other sites

  • 3 weeks later...

Hi @@raiwa

 

The jquery.validate.min.js dont use localization scripts. I uploaded into /mobile/ext/js/localization/ folder the language scripts from here https://github.com/jzaefferer/jquery-validation

 

and added a little code change in mobile header.php

<script src="ext/js/localization/messages_<?php echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>.js"></script>

 

I hope this help. The default en language need more mod.

 

<?php if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) != 'en') { ?>
<script src="ext/js/localization/messages_<?php echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>.js"></script>
<?php } ?>

 

Regards,

Gergely

Edited by Gergely

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Hi @@raiwa

 

The jquery.validate.min.js dont use localization scripts. I uploaded into /mobile/ext/js/localization/ folder the language scripts from here https://github.com/jzaefferer/jquery-validation

 

and added a little code change in mobile header.php

<script src="ext/js/localization/messages_<?php echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>.js"></script>

 

I hope this help. The default en language need more mod.

 

<?php if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) != 'en') { ?>
<script src="ext/js/localization/messages_<?php echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>.js"></script>
<?php } ?>

 

Regards,

Gergely

 

Hello @@Gergely,

 

Thank you very much.

 

What do you think about this mod to ensure the store language is used:

mobile/includes/header.php

<script src="ext/js/jquery.validate.min.js"></script>
<?php
$languages_query = tep_db_query("select languages_id, code from " . TABLE_LANGUAGES . " order by sort_order");
while ($languages = tep_db_fetch_array($languages_query)) {
if ($languages['languages_id'] == $languages_id)
 $lang = $languages['code'];
}
if ($lang != 'en') { ?>
<script src="ext/js/localization/messages_<?php echo $lang; ?>.js"></script>
<?php } ?>

 

regards

Rainer

Link to comment
Share on other sites

Can anyone think of a way of passing search result straight through to product_info.php

 

I have modified search to auto focus on search box so I scan a barcode, and as the barcode is unique only one result is found.

 

in products.php i have tried tep_redirect with the value tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) but this give error

Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/public_html/showroom/includes/header.php:3) in /xxx/xxxx/public_html/includes/functions/general.php on line 52

I have checked for white spaces but this does not seem to be the issue.

 

If you can point me on how to get the single result from search to open the product_info page for the single result would be a great help.

 

Thanks

 

BTW Rainer (raiwa) V7 is excellent, massive improvement on earlier versions.

Edited by ShaGGy
Link to comment
Share on other sites

Can anyone think of a way of passing search result straight through to product_info.php

 

I have modified search to auto focus on search box so I scan a barcode, and as the barcode is unique only one result is found.

 

in products.php i have tried tep_redirect with the value tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) but this give error

Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/public_html/showroom/includes/header.php:3) in /xxx/xxxx/public_html/includes/functions/general.php on line 52

I have checked for white spaces but this does not seem to be the issue.

 

If you can point me on how to get the single result from search to open the product_info page for the single result would be a great help.

 

Thank

 

BTW Rainer (raiwa) V7 is excellent, massive improvement on earlier versions.

 

Hello @@ShaGGy,

 

I didn't check this in a store, but try to use the same code as for the product URL.

(without the button code)

   echo tep_button_jquery(IMAGE_BUTTON_WEBPAGE, tep_mobile_link(FILENAME_REDIRECT, 'action=url&goto=' . $product_info['products_url'], 'NONSSL', true, false), 'b', 'button', 'data-inline="true" data-ajax="false" data-icon="info" data-mini="true"');

 

For the header alredy sent error, sometimes it gets fixed just erasing your browsers cache.

 

regards

Rainer

Link to comment
Share on other sites

Hello @@ShaGGy,

 

I didn't check this in a store, but try to use the same code as for the product URL.

(without the button code)

echo tep_button_jquery(IMAGE_BUTTON_WEBPAGE, tep_mobile_link(FILENAME_REDIRECT, 'action=url&goto=' . $product_info['products_url'], 'NONSSL', true, false), 'b', 'button', 'data-inline="true" data-ajax="false" data-icon="info" data-mini="true"');

 

For the header alredy sent error, sometimes it gets fixed just erasing your browsers cache.

 

regards

Rainer

 

tried your suggestion but no joy :(

 

I have created a new file called products2.php and changed advanced_search_results.php to point to this instead of products.php

 

my new file is

<?php
$prod_query = tep_db_query("select products_id, products_model, products_barcode from " . TABLE_PRODUCTS . " where (products_barcode like '%" . tep_db_input($keyword) . "%' or products_model like '%" . tep_db_input($keyword) . "%' )");
while ($listing = tep_db_fetch_array($prod_query))


////// test for outputs //////
//$test1 = tep_mobile_link('product_info.php?products_id=' . $listing['products_id'], '', 'NONSSL'); // path displays correctly
//echo $test1. '<br><br>';
//tep_redirect('product_info.php?products_id=' . $listing['products_id'], '', 'NONSSL'); // headers already sent error

$site = ('http://www.mysite.com/showroom/product_info.php?products_id=' . $listing['products_id']);
$test2 = tep_mobile_link(FILENAME_REDIRECT, 'action=url&goto=' . $site, 'NONSSL', true, false); // path displays correctly
echo $test2 . '<br><br>';
tep_redirect(FILENAME_REDIRECT, 'action=url&goto=' . $site, 'NONSSL', true, false); // headers already sent error
?>

 

the error is

 

Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/public_html/showroom/includes/header.php:3) in /xxx/xxx/public_html/includes/functions/general.php on line 52

 

any ideas how to fix this ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...