У меня есть сайт, разработанный с использованием OPENCMS. Теперь мы создали мобильный сайт. Как добавить код или модуль в opencms, чтобы при посещении пользователем с мобильного телефона он был перенаправлен на мобильный сайт.Перенаправление на мобильный сайт с использованием opencms
ответ
Вставить в начале одной из страниц в редакторе.
<?php
function detect_mobile()
{
if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT']))
return true;
else
return false;
}
$mobile = detect_mobile();
if($mobile === true)
header('Location: /mobile');
?>
Извинения: OpenCMS является Java на основе ... – Scott
да на основе его Java , SO, мне было интересно, если в OpenCMS уже есть модули для этого. – Hacker
Для этого нет модулей, так как на самом деле это всего лишь однострочный, так же, как Скотт пробовал выше. Просто преобразуйте логику в Java и поместите ее в основной шаблон jsp в OpenCms. Это все. Либо это (с переадресацией заголовка), либо если оно вам подходит, просто включите разные css. Я думаю, это действительно зависит от каждого случая. –
<script type="text/javascript">
var url=***'http://yourmobilesite.com/***';
var host_name=document.location.hostname;
var request_uri=document.location.pathname;
var no_mobile=location.search;
var cookie=document.cookie;
function detect()
{
var ua=navigator.userAgent.toLowerCase();
var devices=['vnd.wap.xhtml+xml','sony','symbian','nokia','samsung','mobile',
'windows ce','epoc','opera mini','nitro','j2me','midp-','cldc-',
'netfront','mot','up.browser','up.link','audiovox','blackberry',
'ericsson','panasonic','philips','sanyo','sharp','sie-',
'portalmmm','blazer','avantgo','danger','palm','series60',
'palmsource','pocketpc','smartphone','rover','ipaq','au-mic',
'alcatel','ericy','vodafone','wap1','wap2','teleca',
'playstation','lge','lg-','iphone','android','htc','dream',
'webos','bolt','nintendo'];
for (var i in devices)
{
if (ua.indexOf(devices[i]) != -1)
{
return true
}
}
}
if (no_mobile!='?nomobile=1' && cookie.indexOf('no_mobile')==-1)
{
is_mobile=detect();
if (is_mobile)
{
window.location = url
}
}
else
{
if (cookie.indexOf('no_mobile') != -1)
{}
else
{
cookie_expires = new Date();
cookie_expires.setTime(cookie_expires.getTime()+60*60*24);
document.cookie = "no_mobile=1; expires="
+ cookie_expires.toGMTString()
+ "; path=/;"
}
}
</script>
Это не дает ответа на вопрос, но может помочь: http://www.opencms-wiki.org/wiki/Creating_Mobile_Templates_with_OpenCms_8 –