forked from GNUsocial/gnu-social
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()
|
function showFooter()
|
||||||
{
|
{
|
||||||
$this->elementStart('div', array('id' => 'footer'));
|
$this->elementStart('div', array('id' => 'footer'));
|
||||||
$this->showSecondaryNav();
|
if (Event::handle('StartShowInsideFooter', array($this))) {
|
||||||
$this->showLicenses();
|
$this->showSecondaryNav();
|
||||||
|
$this->showLicenses();
|
||||||
|
Event::handle('EndShowInsideFooter', array($this));
|
||||||
|
}
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +68,9 @@ class MobileProfilePlugin extends WAP20Plugin
|
|||||||
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) {
|
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) {
|
||||||
|
|
||||||
$this->serveMobile = true;
|
$this->serveMobile = true;
|
||||||
|
} else if (isset($_COOKIE['MobileOverride'])) {
|
||||||
|
// Cookie override is controlled by link at bottom.
|
||||||
|
$this->serveMobile = (bool)$_COOKIE['MobileOverride'];
|
||||||
} else {
|
} else {
|
||||||
// If they like the WAP 2.0 mimetype, serve them MP
|
// If they like the WAP 2.0 mimetype, serve them MP
|
||||||
// @fixme $type is undefined, making this if case useless and spewing errors.
|
// @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)
|
function _common_path($relative, $ssl=false)
|
||||||
|
Loading…
Reference in New Issue
Block a user