Partial implementation for ticket #2442: MobileProfile plugin should allow manual switching between regular and mobile rendering modes
http://status.net/open-source/issues/2442 Notes: * Mapstraction causes JavaScript errors in XHTML mode, breaking our code if we're run later so the link doesn't work to get back to Desktop. * not 100% sure how safe feature detection is here? * Currently will be useless but visible links if no JS available; need to fall back to server-side for limited browsers
This commit is contained in:
parent
f3c822cc15
commit
2a42dac72a
@ -854,8 +854,11 @@ class Action extends HTMLOutputter // lawsuit
|
||||
function showFooter()
|
||||
{
|
||||
$this->elementStart('div', array('id' => 'footer'));
|
||||
if (Event::handle('StartShowInsideFooter', array($this))) {
|
||||
$this->showSecondaryNav();
|
||||
$this->showLicenses();
|
||||
Event::handle('EndShowInsideFooter', array($this));
|
||||
}
|
||||
$this->elementEnd('div');
|
||||
}
|
||||
|
||||
|
@ -68,6 +68,9 @@ class MobileProfilePlugin extends WAP20Plugin
|
||||
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) {
|
||||
|
||||
$this->serveMobile = true;
|
||||
} else if (isset($_COOKIE['MobileOverride'])) {
|
||||
// Cookie override is controlled by link at bottom.
|
||||
$this->serveMobile = (bool)$_COOKIE['MobileOverride'];
|
||||
} else {
|
||||
// If they like the WAP 2.0 mimetype, serve them MP
|
||||
// @fixme $type is undefined, making this if case useless and spewing errors.
|
||||
@ -381,9 +384,40 @@ class MobileProfilePlugin extends WAP20Plugin
|
||||
}
|
||||
}
|
||||
|
||||
function onStartShowScripts($action)
|
||||
function onEndShowScripts($action)
|
||||
{
|
||||
$action->inlineScript('
|
||||
$(function() {
|
||||
$("#mobile-toggle-disable").click(function() {
|
||||
$.cookie("MobileOverride", "0", {path: "/"});
|
||||
window.location.reload();
|
||||
return false;
|
||||
});
|
||||
$("#mobile-toggle-enable").click(function() {
|
||||
$.cookie("MobileOverride", "1", {path: "/"});
|
||||
window.location.reload();
|
||||
return false;
|
||||
});
|
||||
});'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function onEndShowInsideFooter($action)
|
||||
{
|
||||
if ($this->serveMobile) {
|
||||
// TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page.
|
||||
$linkText = _m('Switch to desktop site layout.');
|
||||
$key = 'mobile-toggle-disable';
|
||||
} else {
|
||||
// TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page.
|
||||
$linkText = _m('Switch to mobile site layout.');
|
||||
$key = 'mobile-toggle-enable';
|
||||
}
|
||||
$action->elementStart('p');
|
||||
$action->element('a', array('href' => '#', 'id' => $key), $linkText);
|
||||
$action->elementEnd('p');
|
||||
return true;
|
||||
}
|
||||
|
||||
function _common_path($relative, $ssl=false)
|
||||
|
Loading…
Reference in New Issue
Block a user