X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FMobileProfile%2FMobileProfilePlugin.php;h=f788639aed7383d7b7fe1ca2ec9042c2cc257f07;hb=623faf9f2d83b8fd6134e77ad6f5dd1cedc7a5c1;hp=e39edc86c78988cbf4ade4f7b2102c024e67cada;hpb=640bb39891c7e36886ff0cc3b2599e75f9c691be;p=quix0rs-gnu-social.git diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php index e39edc86c7..f788639aed 100644 --- a/plugins/MobileProfile/MobileProfilePlugin.php +++ b/plugins/MobileProfile/MobileProfilePlugin.php @@ -31,7 +31,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -define('PAGE_TYPE_PREFS', +define('PAGE_TYPE_PREFS_MOBILEPROFILE', 'application/vnd.wap.xhtml+xml, application/xhtml+xml, text/html;q=0.9'); require_once INSTALLDIR.'/plugins/Mobile/WAP20Plugin.php'; @@ -63,22 +63,6 @@ class MobileProfilePlugin extends WAP20Plugin function onStartShowHTML($action) { - - if (!$type) { - $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? - $_SERVER['HTTP_ACCEPT'] : null; - - $cp = common_accept_to_prefs($httpaccept); - $sp = common_accept_to_prefs(PAGE_TYPE_PREFS); - - $type = common_negotiate_type($cp, $sp); - - if (!$type) { - throw new ClientException(_('This page is not available in a '. - 'media type you accept'), 406); - } - } - // XXX: This should probably graduate to WAP20Plugin // If they are on the mobile site, serve them MP @@ -175,8 +159,7 @@ class MobileProfilePlugin extends WAP20Plugin common_config('site', 'server'))) { // FIXME: Redirect to equivalent page on mobile site instead - header("Location: ".$this->_common_path('')); - exit(); + common_redirect($this->_common_path(''), 302); } } @@ -184,11 +167,29 @@ class MobileProfilePlugin extends WAP20Plugin return true; } + if (!$type) { + $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? + $_SERVER['HTTP_ACCEPT'] : null; + + $cp = common_accept_to_prefs($httpaccept); + $sp = common_accept_to_prefs(PAGE_TYPE_PREFS_MOBILEPROFILE); + + $type = common_negotiate_type($cp, $sp); + + if (!$type) { + throw new ClientException(_('This page is not available in a '. + 'media type you accept'), 406); + } + } + header('Content-Type: '.$type); $action->extraHeaders(); - - $action->startXML('html', + if (preg_match("/.*\/.*xml/", $type)) { + // Required for XML documents + $action->xw->startDocument('1.0', 'UTF-8'); + } + $action->xw->writeDTD('html', '-//WAPFORUM//DTD XHTML Mobile 1.0//EN', $this->DTD); @@ -239,28 +240,32 @@ class MobileProfilePlugin extends WAP20Plugin return true; } + $action->cssLink('css/display.css'); + if (file_exists(Theme::file('css/mp-screen.css'))) { $action->cssLink('css/mp-screen.css', null, 'screen'); } else { - $action->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => common_path('plugins/MobileProfile/mp-screen.css') . '?version=' . STATUSNET_VERSION, - 'media' => 'screen')); + $action->cssLink('plugins/MobileProfile/mp-screen.css',null,'screen'); } if (file_exists(Theme::file('css/mp-handheld.css'))) { $action->cssLink('css/mp-handheld.css', null, 'handheld'); } else { - $action->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => common_path('plugins/MobileProfile/mp-handheld.css') . '?version=' . STATUSNET_VERSION, - 'media' => 'handheld')); + $action->cssLink('plugins/MobileProfile/mp-handheld.css',null,'handheld'); } return false; } + function onStartShowUAStyles($action) { + if (!$this->serveMobile) { + return true; + } + + return false; + } + function onStartShowHeader($action) { if (!$this->serveMobile) { @@ -286,7 +291,7 @@ class MobileProfilePlugin extends WAP20Plugin 'href' => common_local_url('public'))); if (common_config('site', 'mobilelogo') || file_exists(Theme::file('logo.png')) || - file_exists(Theme::file('mobilelogo.gif'))) { + file_exists(Theme::file('mobilelogo.png'))) { $action->element('img', array('class' => 'photo', 'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') : @@ -307,8 +312,6 @@ class MobileProfilePlugin extends WAP20Plugin $connect = 'imsettings'; } else if (common_config('sms', 'enabled')) { $connect = 'smssettings'; - } else if (common_config('twitter', 'enabled')) { - $connect = 'twittersettings'; } $action->elementStart('ul', array('id' => 'site_nav_global_primary')); @@ -321,6 +324,10 @@ class MobileProfilePlugin extends WAP20Plugin $action->menuItem(common_local_url($connect), _('Connect')); } + if ($user->hasRight(Right::CONFIGURESITE)) { + $action->menuItem(common_local_url('siteadminpanel'), + _('Admin'), _('Change site configuration'), false, 'nav_admin'); + } if (common_config('invite', 'enabled')) { $action->menuItem(common_local_url('invite'), _('Invite')); @@ -357,9 +364,6 @@ class MobileProfilePlugin extends WAP20Plugin $contentLimit = Notice::maxContent(); - $form->out->element('script', array('type' => 'text/javascript'), - 'maxLength = ' . $contentLimit . ';'); - if ($contentLimit > 0) { $form->out->element('div', array('id' => 'notice_text-count'), $contentLimit); @@ -418,7 +422,15 @@ class MobileProfilePlugin extends WAP20Plugin return $proto.'://'.$serverpart.'/'.$pathpart.$relative; } -} - -?> + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'MobileProfile', + 'version' => STATUSNET_VERSION, + 'author' => 'Sarven Capadisli', + 'homepage' => 'http://status.net/wiki/Plugin:MobileProfile', + 'rawdescription' => + _m('XHTML MobileProfile output for supporting user agents.')); + return true; + } +}