From d8a8dd920ab344b1f1dda0cfcff06e90689dcd0a Mon Sep 17 00:00:00 2001 From: veselcraft Date: Tue, 11 Oct 2022 13:42:29 +0300 Subject: [PATCH] Global: add mobile theme support for dumbphones By setting defaultFeaturePhoneTheme, you can enable very basic html theme for old phones, like Nokia 6680 or iPhone 3GS. I'm currently making this theme, but it would take a time to make it ofc --- Web/Presenters/OpenVKPresenter.php | 37 ++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/Web/Presenters/OpenVKPresenter.php b/Web/Presenters/OpenVKPresenter.php index 5b7908a8..1505df92 100755 --- a/Web/Presenters/OpenVKPresenter.php +++ b/Web/Presenters/OpenVKPresenter.php @@ -284,10 +284,14 @@ abstract class OpenVKPresenter extends SimplePresenter parent::onBeforeRender(); $whichbrowser = new WhichBrowser\Parser(getallheaders()); + $featurephonetheme = OPENVK_ROOT_CONF["openvk"]["preferences"]["defaultFeaturePhoneTheme"]; $mobiletheme = OPENVK_ROOT_CONF["openvk"]["preferences"]["defaultMobileTheme"]; - if($mobiletheme && $whichbrowser->isType('mobile') && Session::i()->get("_tempTheme") == NULL) + + if($featurephonetheme && $this->isOldThing($whichbrowser) && Session::i()->get("_tempTheme") == NULL) { + $this->setSessionTheme($featurephonetheme); + } elseif($mobiletheme && $whichbrowser->isType('mobile') && Session::i()->get("_tempTheme") == NULL) $this->setSessionTheme($mobiletheme); - + $theme = NULL; if(Session::i()->get("_tempTheme")) { $theme = Themepacks::i()[Session::i()->get("_tempTheme", "ovk")]; @@ -318,4 +322,33 @@ abstract class OpenVKPresenter extends SimplePresenter header("Content-Length: $size"); exit($payload); } + + protected function isOldThing($whichbrowser) { + if($whichbrowser->isOs('Series60') || + $whichbrowser->isOs('Series40') || + $whichbrowser->isOs('Series80') || + $whichbrowser->isOs('Windows CE') || + $whichbrowser->isOs('Windows Mobile') || + $whichbrowser->isOs('Nokia Asha Platform') || + $whichbrowser->isOs('UIQ') || + $whichbrowser->isEngine('NetFront') || // PSP and other japanese portable systems + $whichbrowser->isOs('Android') || + $whichbrowser->isOs('iOS') || + $whichbrowser->isBrowser('Internet Explorer', '<=', '8')) { + // yeah, it's old, but ios and android are? + if($whichbrowser->isOs('iOS') && $whichbrowser->isOs('iOS', '<=', '9')) + return true; + elseif($whichbrowser->isOs('iOS') && $whichbrowser->isOs('iOS', '>', '9')) + return false; + + if($whichbrowser->isOs('Android') && $whichbrowser->isOs('Android', '<=', '5')) + return true; + elseif($whichbrowser->isOs('Android') && $whichbrowser->isOs('Android', '>', '5')) + return false; + + return true; + } else { + return false; + } + } }