Most Powerful Open Source ERP

How To Use ERP5 Mobile Skin

How To showing how to use ERP5 mobile skin to display erp5 on a mobile phone.
  • Last Update:2016-02-11
  • Version:001
  • Language:en

A business template "erp5_mobile" provides a skin layer so that you can use ERP5 from a mobile phone (depending on the model, it is not compatible with every phone, so you have to try yours).

Table of Contents


To install and configure it, do the following:

  • install business template "erp5_mobile"
  • check and fix skin layers

The installation process adds a "Mobile" layer, but sometimes it messes up order - the safest course then is to copy the "View" layer, paste it into the "Mobile" and add "erp5_mobile_ui" on the very top of it.

  • devise a url for mobile access and configure your server

You need a different url for mobile access so that ERP5 can chose the right skin. So, you need to be able to access the same site under different urls, like:


To do this, refer to DNS and Apache VirtualHost configuration docs. It is easy when you've done it once. Sample pair of vhost definitions can look like this:

<VirtualHost *:80>
#  setup for normal access
DocumentRoot /var/www/html/test
ServerName yoursite.yourdomain
RewriteEngine On
RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/yoursite.yourdomain:80/VirtualHostRoot$1 [L,P]
ProxyPassReverse ^/(.*) http://yoursite.yourdomain/$1

<VirtualHost *:80>
#  setup for mobile phone access
DocumentRoot /var/www/html/test
ServerName mobile.yoursite.yourdomain
RewriteEngine On
RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/mobile.yoursite.yourdomain:80/VirtualHostRoot$1 [L,P]
ProxyPassReverse ^/(.*) http://mobile.yoursite.yourdomain/$1

Set access rule for automatic skin selection

First write a script which will analyze the requested url and set skin layer accordingly - something along these lines:

request = context.REQUEST

if request.get('portal_skin', None) is not None:
  return context.getPortalObject().changeSkin(request.get('portal_skin'))

url = request.get('URL')
if url.startswith('http://mobile'):

Then at the site level in ZMI choose "Set Access Rule" option, and give it the name of the script. That's all.

Related Articles