Jump to content
Latest News: (loading..)
bumbarash

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

Recommended Posts

Raiwa

 

That change actually breaks SEO URLS 5.

 

I've noticed that now the .htaccess rewrites are incorrect as they reference "catalog_mb.php" that no longer exists if I get rid of that file.  I changed the .htaccess to "index.php" instead, but it appears there are still more changes needed.

 

Can you help?

 

 

Ok I fixed it.

 

1) Change all instances of "catalog_mb" to "index" in .htaccess

2) Create a new file in includes\modules\ultimate_seo_urls5\page_modules\mobile called "index.php"

3) Make it a copy of "catalog_mb.php" and change 

  class Catalog_Mb_Page_Module extends aPage_Modules {

To:

  class Index_Page_Module extends aPage_Modules {

and

 

Change

     if ( !self::$_singleton instanceof Catalog_Mb_Page_Module ) {

to

     if ( !self::$_singleton instanceof Index_Page_Module ) {

Share this post


Link to post
Share on other sites

Raiwa

 

The only other error I'm aware of at this time is when ajax is enabled in the mobile configuration.

 

When this is active, I noticed my images don't appear with any consistency.  Especially on first page loads there is no image present.  If I refresh the browser the image appears.

 

Turning Ajax off remedies this problem as a quick fix.  I am using KISS image thumbnailers as well (in case that is related).

 

Thanks again for the awesome contribution!  :)

Share this post


Link to post
Share on other sites

hello Bill @@phi148,

 

You can exclude any  individual page from ajax page load if needed. There are sometimes incompatibilities.

Please see point 11 of the Add-On support.doc. You may also need to add "data-ajax="false" to all links to that page.

Share this post


Link to post
Share on other sites

Hi Raiwa, I hope you can provide some help please. I have installed Mobile_OsC_7.5.8r2 and the site is working fine without Ultimate_SEO_URLSv22d_14a installed. The desktop website functions correctly after Ultimate_SEO_URLSv22d_14a installed. After installation of Ultimate_SEO_URLSv22d_14a and making the changes as indicated on Support. 4.4. MOsC 7.5.x I still receive errors on mobile site when clicking on any products from mobile main page under new products or specials. The link on the mobile site on product does point to e.g http://mobile.hdcabling.co.za/transmitter-hdmi-receiver.html but it states an "Error Loading Page" which I assume it cannot find. Also when I click on Store from mobile main page the categories / manufacturers show but when clicking on a category the same error message appear "Error Loading Page". I unfortunately have very limited programming knowledge and basically follow install instructions and did all changed as suggested after Ultimate_SEO_URLSv22d_14a install in .htaccess file. The subdomain mobile.hdcabling.co.za is located under desktop website root /mobile and I also ensured that all rewrites in .htaccess has the mobile/ for each .php file. Can you please help 

Share this post


Link to post
Share on other sites

@@thiartj,

 

can you please post you .htacces file of the mobile subdomain. Did you place the mobile copy of .htaccess in the mobile subdomain directory??

 

However, as stated in the instructions, the subdomain directory support for Ultimate_SEO_URLSv22d_14a has not been tested, so I can't give you further support.

If you can't get it to work, try the installation in subdirectory or use SEO URLs USU5 which is tested for subdomain.

 

kind regards

Rainer

Share this post


Link to post
Share on other sites

@@raiwa,

 

Thank you the SEO part works fine now:-) I placed the .htaccess file in mobile site root and removed /mobile from entries.  However when clicking on a product the product title, description  / add to cart and all items are shown except product image. I did not install any image add-ons. Any suggestions ?

Share this post


Link to post
Share on other sites

@@raiwa,

 

update on above. When clicking on product as explained above image does not show, however when on product page and pressing F5 to refresh page the image then shows. Any suggestions please why it will not show on first page load and only after refresh ? Same when on mobile product page and image does not show on load, swopping to desktop view and back to mobile view then image does show. After a single page refresh or swopping from Mobile to Desktop and back to Mobile all products display with images without a page refresh. When the browser tab is closed and site opened again the Page refresh is needed again for any products to show image.

Share this post


Link to post
Share on other sites

Hello Johan @@thiartj,

 

I tried and found that the image path is correct in the source code and the image shows when reloading the page. From that point on images show all correct for the first load of all other products.

So it seems to be a problem of the colorbox script/css.

 

Could you please try to temporary switch off ajax page load in the mobile configuration. If it works then, you could add data-ajax="false" to the product_info.php link in the listings.

In: mobile/includes/modules/products.php:

    $path = '<a data-ajax="false" href="' . tep_mobile_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) . '">';

If this doesn't help, you could try to place a copy of the colorbox and photoset-grid folders (in: catalog/ext/..) to the correspondent mobile folder (mobile-directory/ext/....

Then change in the mobile header the links to relative links:

<script type="text/javascript" src="ext/photoset-grid/jquery.photoset-grid.min.js"></script>
<link rel="stylesheet" type="text/css" href="ext/colorbox/colorbox.css" />
<script type="text/javascript" src="ext/colorbox/jquery.colorbox-min.js"></script><?php

so they will be loaded from the mobile folder.

 

regards

Rainer

Share this post


Link to post
Share on other sites

In case these have not been mentioned, this text in the mobile/includes/languages/english.php (and probably others)

define('TEXT_WELCOME', 'Welcome at our mobile shop!');

should be

define('TEXT_WELCOME', 'Welcome to our mobile shop!'); 

and this line

define('MOBILE_FOOTER_TEXT_BODY', 'Copyright © 2011 <a href="http://[YOUR SITE URL]" target="_blank">' . TITLE . '</a>');

should be

 
define('FOOTER_TEXT_BODY_MOBILE', 'Copyright © ' . date("Y") . ' <a href="' . tep_mobile_link(FILENAME_DEFAULT) . '">' . TITLE . '</a>');

Share this post


Link to post
Share on other sites

@@raiwa

 

Switching off Ajax did the trick but when I add $path = '<a data-ajax="false" href="' . tep_mobile_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) . '">'; to mobile/includes/modules/products.php the ajax is still enabled I assume since then image does not show on first load. Is their a specific line I should insert it into. A bit clueless, tried it at beginning of file. A bit clueless on the .php editing side. The 2nd seems a bit complex for my skills but will give it a try if above needs to be inserted at a specific line. products.php is stock standard Mobile_OsC_7.5.8r2. Is there any benefit to Ajax page loads (not sure what this is) or can I just switch it off in Admin panel for all pages ?

Share this post


Link to post
Share on other sites

@@thiartj,

 

It's supposed to be somewhat faster with ajax.

 

For more information please see the Add-On Support doc Point 11.

 

You could add product_info.php to the ajax excluded list:

In mobile/includes/header.php:

if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || basename($PHP_SELF) == FILENAME_CATALOG_MB || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book' || basename($PHP_SELF) == FILENAME_LOGIN || basename($PHP_SELF) == FILENAME_CREATE_ACCOUNT)

add:

|| basename($PHP_SELF) == FILENAME_PRODUCT_INFO

so it should be:

if (AJAX_ENABLED != 'true' || substr(basename($PHP_SELF), 0, 8) == 'checkout' || basename($PHP_SELF) == FILENAME_CATALOG_MB || substr(basename($PHP_SELF), 0, 7) == 'account' || substr(basename($PHP_SELF), 0, 12) == 'address_book' || basename($PHP_SELF) == FILENAME_LOGIN || basename($PHP_SELF) == FILENAME_CREATE_ACCOUNT || basename($PHP_SELF) == FILENAME_PRODUCT_INFO)

See also:

http://view.jquerymobile.com/1.3.2/dist/demos/widgets/links/

Share this post


Link to post
Share on other sites

@@raiwa, I Added the code as above to mobile/includes/header.php but somehow ajax still active since image only appear after page reload. For now I will disable Ajax page loads since we have a small website and I did not notice any performace issues after change. I really appreciate your help and I will watch this thread for any other suggestions.

Share this post


Link to post
Share on other sites

@@Jack_mcs,

 

Had a look now and found that "MOBILE_FOOTER_TEXT_BODY" is not in use any more.

It should be removed from the language files.

FOOTER_TEXT_BODY from the main language file is used in the actual mobile footer.

 

TEXT_WELCOME it's supposed to be customized in any case for each store.

Share this post


Link to post
Share on other sites

Hello @@raiwa

 

I just noticed, the site being online, the link is at the bottom in the footer "Site mobile",

that on iPhone some products, not all,  are redirected to "HTTP error, 0 unknown error" when I clic on "Classic View" .

 

I cleared the seo url cache and also applied the 7.5.8r2 redirect patch btw,

but still the problem remains. Would you have an idea why ?

 

Best regards


david

Share this post


Link to post
Share on other sites

Hello David@@Eim2,

 

Does this happen only from mobile or also from desktop.

If it only happens with some products I should have the URL of an example product. Could you PM some examples.

 

regards

Rainer

 

 Actually I tested on both Desktop and mobile Online and local :( Same thing but only some products !

 

It say on IE HTTP 410, for example  you can try product ID 3749

Edited by Eim2

david

Share this post


Link to post
Share on other sites

Hello David @@Eim2,

 

The problem seems for me the name of the products which include "-mp-" which is used for the mobile product number delimiter.

You should avoid using the letter combinations which are used in the rewrite rules to mark up the product numbering.

 

You could for example remove in the character conversion list "mp" and other problematic combinations or replace them by something else.

 

regards

Rainer

Share this post


Link to post
Share on other sites

Hello @@raiwa

 

You are right, I ll have to change those "MP" in the product names.

 

Thanks  a lot

 

Good night & kind regards


david

Share this post


Link to post
Share on other sites

Hi Rainer,

 

In light of Google's recent decision to penalize sites that aren't mobile friendly (https://www.google.com/webmasters/tools/mobile-friendly/), this contribution is going to be a site life saver!!

 

I have set up on a version 2.3.3 system.  When selecting the menu choices across the top they point to a file which may or may not be present in the root of my store. -- catalog_mb.php, account.php, search.php, about.php.  When the file is present, I am taken back to the classic version; when not present, it says the file is not found.

 

Out of desperation, I edited FILENAME_CATALOG_MB, FILENAME_SEARCH and FILENAME_ABOUT in /includes/filenames.php to include "mobile/".  Since then, when I select one of them, the proper page is displayed (i.e. the Store categories list).  However, subsequent selections want to revert to back to the root file name (/catalog_mb.php), which causes the file not to be found like at first.

 

Also, since there isn't a filename definition set for Account, I did not change anything, causing the classic account.php page to be displayed.  Like with the other links, they end with "?redirectCancelled=true"  Even for account.php?redirectCancelled=true, is that supposed to cause the program to automatically execute the file in the /mobile folder?

 

 

I must be missing something, and will be very grateful if you will tell me what it is!.

 

Thanks,

 

 

Russ

Share this post


Link to post
Share on other sites

Hello Russ @@rsthomas,

 

You do not need to modify the filename definitions, leave it like given in the installation instructions.

 

Please check the following in that order:

- if you are using SEO URLs, check if you added the appropiate SEU URL support (and correct SEO URL version) and check all modifications.

  Mobile SEO URL support is included in the iosc Mobile Contribution support package:

http://addons.oscommerce.com/info/8578

- check the modifications in tep_href_link function in includes/funktions/html_output.php

- check the modifications in tep_redirect function in includes/functions/general.php

- check the modifications in includes/configure.php

 

If you still have troubles, you can post all the relevant parts of these files here or in a private message

and I'll have a look.

 

 

Kindest regards

Rainer

Edited by raiwa

Share this post


Link to post
Share on other sites

For me it is important to know if a client is in the PC version or mobile version.

 

Search the file footer.php Mobile version

  require(DIR_WS_INCLUDES . 'counter.php');

Add below

  require(DIR_WS_FUNCTIONS . 'whos_online.php');
  tep_update_whos_online();

Thus will on whos_online admin who is viewing the products and that version. Just look at the difference between product-p-123.html and product-mp-123.html for instance.

 

 

Share this post


Link to post
Share on other sites

@@raiwa Comments not meant for the customer can be seen by the customer. To fix that, in mobile/account_history_info.php, this line

  $statuses_query = tep_db_query("select os.orders_status_name, osh.date_added, osh.comments from " . TABLE_ORDERS_STATUS . " os, " . TABLE_ORDERS_STATUS_HISTORY . " osh where osh.orders_id = '" . (int)$HTTP_GET_VARS['order_id'] . "' and osh.orders_status_id = os.orders_status_id and os.language_id = '" . (int)$languages_id . "' order by osh.date_added");


should be changed to

  $statuses_query = tep_db_query("select os.orders_status_name, osh.date_added, osh.comments from " . TABLE_ORDERS_STATUS . " os, " . TABLE_ORDERS_STATUS_HISTORY . " osh where osh.customer_notified = '1' and osh.orders_id = '" . (int)$HTTP_GET_VARS['order_id'] . "' and osh.orders_status_id = os.orders_status_id and os.language_id = '" . (int)$languages_id . "' order by osh.date_added");

Share this post


Link to post
Share on other sites

 

@@raiwa Comments not meant for the customer can be seen by the customer. To fix that, in mobile/account_history_info.php, this line

  $statuses_query = tep_db_query("select os.orders_status_name, osh.date_added, osh.comments from " . TABLE_ORDERS_STATUS . " os, " . TABLE_ORDERS_STATUS_HISTORY . " osh where osh.orders_id = '" . (int)$HTTP_GET_VARS['order_id'] . "' and osh.orders_status_id = os.orders_status_id and os.language_id = '" . (int)$languages_id . "' order by osh.date_added");


should be changed to

  $statuses_query = tep_db_query("select os.orders_status_name, osh.date_added, osh.comments from " . TABLE_ORDERS_STATUS . " os, " . TABLE_ORDERS_STATUS_HISTORY . " osh where osh.customer_notified = '1' and osh.orders_id = '" . (int)$HTTP_GET_VARS['order_id'] . "' and osh.orders_status_id = os.orders_status_id and os.language_id = '" . (int)$languages_id . "' order by osh.date_added");

 

 

This worked better for me, so it doesn't show the "Authorize.net" status (or whatever payment module you use) for example to the customer:

$statuses_query = tep_db_query("select os.orders_status_name, osh.date_added, osh.comments from " . TABLE_ORDERS_STATUS . " os, " . TABLE_ORDERS_STATUS_HISTORY . " osh where osh.orders_id = '" . (int)$HTTP_GET_VARS['order_id'] . "' and osh.orders_status_id = os.orders_status_id and os.language_id = '" . (int)$languages_id . "' and os.public_flag = '1' order by osh.date_added");

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×