Jump to content
bumbarash

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

Recommended Posts

Great, I'll have a look for the next update to solve this, but as the banners are normally used for external links your solution can't be used as a generic modification.

 

Yeah, of course… we at the moment only have internal links for the banners… otherwise I would probably create a new tep_display_banner function which redirect with int_banner resp. ext_banner to the redirect.php and there introduce a new case in the switch where internal links have the string replace and session id added and external links are handled "normally".

Share this post


Link to post
Share on other sites

I just noticed that jquery is linked twice in mobile/includes/header.php, once on it's own and once in header_tags. As a result fancybox doesn't work. I reorganized by replacing the first link of jquery with

echo $oscTemplate->getBlocks('header_tags');

basically I moved the code at the top because there are dependencies on jquery in the code that follows and now it's working. I only noticed because I was upgrading the jquery version on the site.

 

I also noticed that the images don't resize and overflow their containers. That's easily fixable by adding another class for product images and using css:

max-width: 100%;
height: auto;

Edited by papalevies

Share this post


Link to post
Share on other sites

Hello Nick @@papalevies,

 

I just noticed that jquery is linked twice in mobile/includes/header.php, once on it's own and once in header_tags. As a result fancybox doesn't work. I reorganized by replacing the first link of jquery with

echo $oscTemplate->getBlocks('header_tags');

basically I moved the code at the top because there are dependencies on jquery in the code that follows and now it's working. I only noticed because I was upgrading the jquery version on the site.

 

Could you please post your modified header? I couldn't find the jquery link in header tags.

I checked this and in the standard osc mobile version 7.3.2. fancybox works fine. Maybe it has something to do with your update?

 

I also noticed that the images don't resize and overflow their containers. That's easily fixable by adding another class for product images and using css:
max-width: 100%;
height: auto;

This is done since version 7.3.0. at least in product_info.php and includes/modules/product_header.php:

  $pi_entry .= '" target="_blank">' . tep_image(DIR_WS_IMAGES . $pi['image'], $product_info['products_name'], MOBILE_PRODUCT_IMAGE_WIDTH, MOBILE_PRODUCT_IMAGE_HEIGHT, 'style="max-width:100%; max-height:100%"') . '</a>';

Together with the admin configuration setting "auto" for MOBILE_PRODUCT_IMAGE_WIDTH and MOBILE_PRODUCT_IMAGE_HEIGHT.

 

Maybe you mean that it is still missing in the product listing (catalog_mb.php-includes/modules/products.php)?

 

Thanks for the clearing up

Kind regards

Rainer

Share this post


Link to post
Share on other sites

just upgraded to 7.3.2 but for some reason I get error loading page when I click a header link. I didn't have a lot of free time to read the forums, so if this has already been answered I apologize.

 

http://www.isorm.com/mobile/

 

Hello Matthew @@mrossi,

 

The links in all mobile site are pointing to the classic site. So it seems that the mods in the tep_href_link funtion in includes/functions/html_output.php need to be added.

Then I found that you are using SEO URLs, so you need to add the support for this to the mobile site.

It is included in the support package:

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

 

Kind regards

Rainer

Share this post


Link to post
Share on other sites

Hi Rainer @@raiwa

 

I just did a small fix to my mobile/login.php file… Changed line89 to:

<?php echo tep_input_jquery('email_address', '', '', 'email'); ?>

 

so entering your email as login on a mobile device gets easier…

 

Regards

Raphael

Share this post


Link to post
Share on other sites

Hi Rainer @@raiwa

 

I just did a small fix to my mobile/login.php file… Changed line89 to:

<?php echo tep_input_jquery('email_address', '', '', 'email'); ?>

 

so entering your email as login on a mobile device gets easier…

 

Regards

Raphael

 

Hello Raphael @@rafhun,

 

Thank you. This is already prepared for the next update. All input fields will be enhanced.

 

regards

Rainer

Share this post


Link to post
Share on other sites

Hello!,

 

Find an issue.

 

In seo.class.php from contribution support, find:

						    case 'manufacturers_id':
								    switch(true){
										    case ($page == FILENAME_DEFAULT && !$this->is_cPath_string($params) && !$this->is_product_string($params) ):
												    $url = $this->make_url($page, $this->get_manufacturer_name($p2[1]), $p2[0], $p2[1], '.html');
												    break;
										    case ($page == FILENAME_PRODUCT_INFO):
												    break;
										    case ($page == FILENAME_CATALOG_MB):
												    $url = $this->make_url($page, $this->get_category_name($p2[1]), 'manufacturers_id_mobile', $p2[1], '.html');
												    $url_category_ids = str_replace('-', '', strrchr ($url , '-mm-'));
												    $url_category_id = str_replace('_', '', strrchr ($url , '_'));
												    if (!empty($url_category_id)) {
													 $url = str_replace($url_category_ids, $url_category_id, $url);
												    }
												    break;
										    default:
												    $container[$p2[0]] = $p2[1];
												    break;									   
										    } # end switch

And replace with:

						    case 'manufacturers_id':
								    switch(true){
										    case ($page == FILENAME_DEFAULT && !$this->is_cPath_string($params) && !$this->is_product_string($params) ):
												    $url = $this->make_url($page, $this->get_manufacturer_name($p2[1]), $p2[0], $p2[1], '.html');
												    break;
										    case ($page == FILENAME_PRODUCT_INFO):
												    break;
										    case ($page == FILENAME_CATALOG_MB):
												    $url = $this->make_url($page, $this->get_manufacturer_name($p2[1]), 'manufacturers_id_mobile', $p2[1], '.html');
												    $url_category_ids = str_replace('-', '', strrchr ($url , '-mm-'));
												    $url_category_id = str_replace('_', '', strrchr ($url , '_'));
												    if (!empty($url_category_id)) {
													 $url = str_replace($url_category_ids, $url_category_id, $url);
												    }
												    break;
										    default:
												    $container[$p2[0]] = $p2[1];
												    break;									   
										    } # end switch

Urls show categories name instead of manufacturers name :)

 

I have several files with change name, for example specials.php to ofertas.php and similar, will be possible to use diferentes filenames to don't rename a lot of files?

Share this post


Link to post
Share on other sites

If you have duplicated products in several categories... open catalog_mb.php and replace this:

$listing_sql = "select p.products_id, 

With this:

$listing_sql = "select distinct p.products_id, 

Bye! :)

Share this post


Link to post
Share on other sites

If you have duplicated products in several categories... open catalog_mb.php and replace this:

$listing_sql = "select p.products_id,

With this:

$listing_sql = "select distinct p.products_id,

Bye! :)

 

Hola Gustavo@@PiLLaO,

 

Thank you I'll include this fix in the next update. You should rename the mobile files, just use the exact same name of the classic files in the mobile filenames.

 

(Incluiré la corrección en la próxima actualización. Lo que se refiere a los nombres de ficheros, usa los mismos nombres que usas en la versión clásica para los ficheros mobile.)

 

Un saludo

Rainer

Share this post


Link to post
Share on other sites

If you have duplicated products in several categories... open catalog_mb.php and replace this:

$listing_sql = "select p.products_id,

With this:

$listing_sql = "select distinct p.products_id,

Bye! :)

 

Hello Gustavo @@PiLLaO,

 

the same should be done in mobile/products_new.php. In specials it is already added.

 

un saludo

Rainer

 

PS.: just checked and found that in the last versions this is done, so sorry forget this post.

Edited by raiwa

Share this post


Link to post
Share on other sites

Hello,

 

I find on the web this code, that I think is very interesting to have installed, show a dialog box for delete confirm in shopping_cart.php

 

In header.php, add this

   <script type="text/javascript">
$(document).ready(function(){
   $('.confirm').click(function(){
    var answer = confirm("Are you sure you want to delete this item?");
    if (answer){
	    return true;
    } else {
	    return false;
    }
   });
});
   </script>

 

In shopping_cart.php replace this:

$products_buttons = '<input value="'.IMAGE_BUTTON_UPDATE.'" type="submit" name="refresh" data-mini="true" data-inline="true" data-role="submit"  data-icon="check" data-theme="b">' . tep_button_jquery( IMAGE_BUTTON_REMOVE,tep_mobile_link(FILENAME_SHOPPING_CART, 'products_id=' . $products[$i]['id'] . '&action=remove_product'), 'b' , 'button' , 'data-icon="delete" data-mini="true" data-inline="true"' );

For this:

$products_buttons = '<input value="'.IMAGE_BUTTON_UPDATE.'" type="submit" name="refresh" data-mini="true" data-inline="true" data-role="submit"  data-icon="check" data-theme="b">' . tep_button_jquery( IMAGE_BUTTON_REMOVE,tep_mobile_link(FILENAME_SHOPPING_CART, 'products_id=' . $products[$i]['id'] . '&action=remove_product'), 'b' , 'button' , 'class="confirm" data-icon="delete" data-mini="true" data-inline="true"' );

I don't know if is a good code, beacuse I don't know about jQuery, but it's works :)

 

(código para mostrar dialogo de confirmación al borrar un producto del carrito).

 

Regards!!

Gustavo

Share this post


Link to post
Share on other sites

Hello,

 

I find on the web this code, that I think is very interesting to have installed, show a dialog box for delete confirm in shopping_cart.php

 

In header.php, add this

<script type="text/javascript">
$(document).ready(function(){
$('.confirm').click(function(){
 var answer = confirm("Are you sure you want to delete this item?");
 if (answer){
	 return true;
 } else {
	 return false;
 }
});
});
</script>

 

In shopping_cart.php replace this:

$products_buttons = '<input value="'.IMAGE_BUTTON_UPDATE.'" type="submit" name="refresh" data-mini="true" data-inline="true" data-role="submit" data-icon="check" data-theme="b">' . tep_button_jquery( IMAGE_BUTTON_REMOVE,tep_mobile_link(FILENAME_SHOPPING_CART, 'products_id=' . $products[$i]['id'] . '&action=remove_product'), 'b' , 'button' , 'data-icon="delete" data-mini="true" data-inline="true"' );

For this:

$products_buttons = '<input value="'.IMAGE_BUTTON_UPDATE.'" type="submit" name="refresh" data-mini="true" data-inline="true" data-role="submit" data-icon="check" data-theme="b">' . tep_button_jquery( IMAGE_BUTTON_REMOVE,tep_mobile_link(FILENAME_SHOPPING_CART, 'products_id=' . $products[$i]['id'] . '&action=remove_product'), 'b' , 'button' , 'class="confirm" data-icon="delete" data-mini="true" data-inline="true"' );

I don't know if is a good code, beacuse I don't know about jQuery, but it's works :)

 

(código para mostrar dialogo de confirmación al borrar un producto del carrito).

 

Regards!!

Gustavo

 

Hello Gustavo @@PiLLaO,

 

It looks like jquery code and if it works it should be ok. The only issue is to use a text constant for the alert message for multilanguage compatibility and add the definitions to the mobile language files:

 

var answer = confirm("<?php echo TEXT_DELETE_CONFIRM;?>");

 

However I'll check it and maybe add it to the next update

 

Thanks and kind regards

Rainer

Share this post


Link to post
Share on other sites

Maybe will be interesting for somebody, dropdown for quantity products in shopping_cart

 

In shopping_cart.php find:

$products_qty = tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2" data-theme="a" data-mini="true"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']);

And change for:

$options = array();
  for ($j=0; $j<10; $j++) {
  $options[] = array('id' => $j+1, 'text' => ($j+1 . ' '));
 }

  $products_qty = tep_draw_pull_down_menu('cart_quantity[]', $options, $products[$i]['quantity'], 'size="1"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']);

It would be interesting to make this auto update when quantity is changed, but... I don't know how to do this :(

 

Best regards!

Share this post


Link to post
Share on other sites

@@raiwa i modified up http://addons.oscommerce.com/info/9052 to work in iOSC. You are welcome to it. Please check it... before adding to your mobile support contribution. I will PM you...

 

Or, it maybe a good idea to improve the core for future updates - mobile user interface with numbers is much more friendly with the full number keypad using type="number" pattern="[0-9]*"

Share this post


Link to post
Share on other sites

@@raiwa i modified up http://addons.oscommerce.com/info/9052 to work in iOSC. You are welcome to it. Please check it... before adding to your mobile support contribution. I will PM you...

 

Or, it maybe a good idea to improve the core for future updates - mobile user interface with numbers is much more friendly with the full number keypad using type="number" pattern="[0-9]*"

 

Hello Scott @@greasemonkey,

 

This is already prepared and much more for the next update, hope it will be released soon.

Thank you anyway.

 

regards

Rainer

Share this post


Link to post
Share on other sites

Hi there,

 

Anyone knows how integrate QTPRO (http://addons.oscommerce.com/info/888) in iOSC?. We use Oscommerce 2.2

 

Regards,

 

Eduardo

 

Hello Eduardo @@egutierrez,

 

Just try to use the original installation instructions of QTPRO and apply all changes for the catalog files, not admin files, to the correspondent mobile files.

The only difference is that the changes in catalog/index.php within the categories section should be applied to mobile/catalog_mb.php instead.

See also the Add-On Support doc which is included in the iosc documents.

regards

Rainer

Edited by raiwa

Share this post


Link to post
Share on other sites

@@ShaGGy Anyone know how to hide empty categories?

 

Don't know if this will help but I changed line 49 from:

while ($categories = tep_db_fetch_array($categories_query)) {

$list[] = $categories;

}

 

to

 

while ($categories = tep_db_fetch_array($categories_query))

{ $products_in_category = tep_count_products_in_category($categories['categories_id']); // DISABLE CATEGORY WITH NO PRODUCT

if ($products_in_category > 0) $list[] = $categories;

}

 

and it seems to work.

Share this post


Link to post
Share on other sites

Hello Matthew @@mrossi,

 

The links in all mobile site are pointing to the classic site. So it seems that the mods in the tep_href_link funtion in includes/functions/html_output.php need to be added.

 

Kind regards

Rainer

 

Hi Rainer,

 

It seems I'm having the same problem. I just installed the iosc add-on and only my HOME and ACCOUNT pages are working. The STORE, SEARCH & INFO links all return 'Error Loading Page' messages.

 

Can you explain exactly how I need to add the mods in the tep_href_link funtion please?

 

<?php

function tep_mobile_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = false) {

return tep_href_link($page, $parameters, $connection, $add_session_id,false);

}

Edited by Subfocal

Share this post


Link to post
Share on other sites

Hi Rainer,

 

It seems I'm having the same problem. I just installed the iosc add-on and only my HOME and ACCOUNT pages are working. The STORE, SEARCH & INFO links all return 'Error Loading Page' messages.

 

Can you explain exactly how I need to add the mods in the tep_href_link funtion please?

 

<?php

function tep_mobile_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = false) {

return tep_href_link($page, $parameters, $connection, $add_session_id,false);

}

 

Hello Cris @@Subfocal,

 

you do not need to change anything in the tep_mobile_link function in catalog/mobile/includes/functions/general.php

 

The changes are in catalog/includes/functions/general.php for the tep_redirect function

and in catalog/includes/functions/html_output.php for the tep_href_link function

 

Please check again the install instructions step 3+4.

 

However maybe you are using SEO URLs then you need to install the additional suport included in the Add-On support package:

 

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

 

Please see the Add-On Support.doc

 

Kind regards

Rainer

Edited by raiwa

Share this post


Link to post
Share on other sites

Hello Cris @@Subfocal,

 

you do not need to change anything in the tep_mobile_link function in catalog/mobile/includes/functions/general.php

 

The changes are in catalog/includes/functions/general.php for the tep_redirect function

and in catalog/includes/functions/html_output.php for the tep_href_link function

 

Please check again the install instructions step 3+4.

 

However maybe you are using SEO URLs then you need to install the additional suport included in the Add-On support package:

 

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

 

Please see the Add-On Support.doc

 

Kind regards

Rainer

 

Thanks for the quick reply.

 

Yes, I definitely completed steps 3 & 4. I just double checked now. So that wouldn't appear to be the problem.

 

I haven't installed the SEO URLs addon. So I don't think I need the additional support package.

 

Any thoughts?

Share this post


Link to post
Share on other sites

Thanks for the quick reply.

 

Yes, I definitely completed steps 3 & 4. I just double checked now. So that wouldn't appear to be the problem.

 

I haven't installed the SEO URLs addon. So I don't think I need the additional support package.

 

Any thoughts?

 

Hello Cris @@Subfocal,

 

I would need access to your store. You can send me the URL in a private message.

 

Rainer

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

×