How To Use ERP5 Mobile skin layer
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).
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> <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 </VirtualHost>
- 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'): context.getPortalObject().changeSkin('Mobile')
Then at the site level in ZMI choose "Set Access Rule" option, and give it the name of the script. That's all.