if (typeof module === 'object') {window.module = module; module = undefined;}";
}
return $s;
}
/**
* Get injection code required for Nexus apps
* @return string with Styles and JS code
*/
public function serviceInjectionHead()
{
if (!isset($_SERVER['HTTP_USER_AGENT']) || false === strpos($_SERVER['HTTP_USER_AGENT'], 'UNAMobileApp'))
return '';
$this->redirects();
$aBubbles = array();
$iBubbles = BxDolPush::getNotificationsCount(0, $aBubbles);
$s = $this->_oTemplate->parseHtmlByName('styles.html', array());
if ($sCustomStyles = getParam('bx_nexus_option_styles'))
$s .= "";
$oProfile = BxDolProfile::getInstance();
$s .= $this->_oTemplate->parseHtmlByName('js.html', array(
'msg' => json_encode(array(
'loggedin' => isLogged(),
'user_info' => isLogged() && $oProfile ? array (
'displayName' => $oProfile->getDisplayName(),
'email' => $oProfile->getAccountObject()->getEmail(),
'avatar' => $oProfile->getAvatar(),
'id' => $oProfile->id(),
'module' => $oProfile->getModule(),
) : false,
'bubbles_num' => $iBubbles ? $iBubbles : '',
'bubbles' => $aBubbles,
'push_tags' => BxDolPush::getTags(),
)),
'txt_pull_to_refresh' => bx_js_string(_t('_bx_nexus_pull_to_refresh')),
'txt_release_to_refresh' => bx_js_string(_t('_bx_nexus_release_to_refresh')),
'txt_refreshing' => bx_js_string(_t('_bx_nexus_refreshing')),
'main_menu' => getParam('bx_nexus_option_main_menu'),
));
// TODO: enable it back when it will work correctly on Android
// $this->_oTemplate->addJs('pulltorefresh.min.js');
if (false !== strpos($_SERVER['HTTP_USER_AGENT'], 'Desktop')) {
$s .= "";
}
return $s;
}
public function serviceGetMenusList()
{
$a = BxDolMenuQuery::getMenuObjects();
array_unshift($a, array('object' => 'default', 'title' => '_sys_page_type_default', 'module' => '', 'uri' => ''));
$aRes = array();
foreach($a as $r) {
$aRes[] = array('key' => $r['object'], 'value' => $r['uri'] ? _t('_bx_nexus_option_main_menu_value', BxDolModule::getTitle($r['uri']), _t($r['title'])) : _t($r['title']));
}
return $aRes;
}
protected function redirects()
{
$bLoggedIn = isLogged() ? 1 : 0;
$i = bx_get('i');
// only several pages are available for guest, for other pages user is redirected to login page
$aURIs = explode(',', getParam('bx_nexus_option_guest_pages'));
array_walk($aURIs, function (&$sVal) {
$sVal = trim($sVal);
});
$aI = array_combine($aURIs, array_fill(0, count($aURIs), 1));
if (!$bLoggedIn && !preg_match('/\/oauth2\//', $_SERVER['REQUEST_URI']) && !preg_match('/searchKeyword.php$/', $_SERVER['PHP_SELF']) && !preg_match('/member.php$/', $_SERVER['PHP_SELF']) && !isset($aI[$i])) {
header("Location: " . BX_DOL_URL_ROOT);
exit;
}
if ($bLoggedIn) {
if (false !== strpos($_SERVER['HTTP_USER_AGENT'], 'Desktop')) {
// desktop: for logged in members show messenger only
$aI = array('messenger' => 1);
if (!preg_match('/member.php$/', $_SERVER['PHP_SELF']) && !isset($aI[$i])) {
header("Location: " . BX_DOL_URL_ROOT . 'page.php?i=messenger');
exit;
}
}
else {
// mobile: for logged in members some pages aren't available as well
$aI = array('forgot-password' => 1, 'create-account' => 1, 'login' => 1);
if (isset($aI[$i])) {
header("Location: " . BX_DOL_URL_ROOT);
exit;
}
}
}
}
}
/** @} */