Пример #1
0
 /**
  * This function should be used then value can be override by siteAccess
  * or user language has influence to returned value
  *
  * */
 public function getDirLanguage($attribute = 'dir_language')
 {
     $value = null;
     if ($this->hasSetting('site', $attribute)) {
         $value = $this->getSetting('site', $attribute);
     }
     $siteAccess = erLhcoreClassSystem::instance()->SiteAccess;
     if ($siteAccess == 'site_admin') {
         $valueOverride = $this->getSetting('site_access_options', $siteAccess);
         if (key_exists($attribute, $valueOverride)) {
             // User has not changed default site access language. So just return current value.
             if (erLhcoreClassModelUserSetting::getSetting('user_language', $valueOverride['locale']) == $valueOverride['locale']) {
                 return $valueOverride[$attribute];
             } else {
                 // User has changed default siteaccess language, we need to check does ltr or rtl matches
                 foreach ($this->getSetting('site', 'available_site_access') as $siteaccess) {
                     // Loop untill we find our locate siteaccess and check it's language direction
                     $siteAccessOptions = $this->getSetting('site_access_options', $siteaccess);
                     if ($siteAccessOptions['locale'] == erLhcoreClassModelUserSetting::getSetting('user_language', $valueOverride['locale'])) {
                         return $siteAccessOptions[$attribute];
                     }
                 }
             }
         }
     } else {
         $value = $this->getOverrideValue('site', $attribute);
     }
     return $value;
 }
Пример #2
0
 public static function getSpeechInstance(erLhcoreClassModelChat $chat)
 {
     $chatLanguageSession = null;
     $chatSpeech = erLhcoreClassModelSpeechChatLanguage::getList(array('filter' => array('chat_id' => $chat->id)));
     if (empty($chatSpeech)) {
         $chatLanguageSession = new erLhcoreClassModelSpeechChatLanguage();
         $chatLanguageSession->chat_id = $chat->id;
         $speechUserLanguage = erLhcoreClassModelUserSetting::getSetting('speech_language', '');
         $speechUserDialect = erLhcoreClassModelUserSetting::getSetting('speech_dialect', '');
         if ($speechUserLanguage != '' && $speechUserDialect != '') {
             $chatLanguageSession->dialect = $speechUserDialect;
             $chatLanguageSession->language_id = $speechUserLanguage;
         } else {
             $speechData = erLhcoreClassModelChatConfig::fetch('speech_data');
             $data = (array) $speechData->data;
             $chatLanguageSession->language_id = $data['language'];
             $chatLanguageSession->dialect = $data['dialect'];
         }
     } else {
         $chatLanguageSession = array_pop($chatSpeech);
     }
     return $chatLanguageSession;
 }
Пример #3
0
    <div class="columns large-<?php 
$canUseChat == true ? print '9' : (print '12');
?>
">
    	<?php 
echo $Result['content'];
?>
    </div>

    <?php 
if ($canUseChat == true) {
    $pendingTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
    $activeTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
    $closedTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
    $unreadTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
    ?>
    <div class="columns large-3" id="right-column-page" ng-cloak>
			<div class="section-container auto" data-section="auto">
			  <section>
			    <p class="title" data-section-title><a title="<?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('pagelayout/pagelayout', 'Chats transferred to you directly');
    ?>
" href="#panel1"><i class="icon-user"></i><span class="tru-cnt"></span></a></p>
			    <div class="content" data-section-content>
			      <div id="right-transfer-chats">
			      		<?php 
    include erLhcoreClassDesign::designtpl('lhchat/lists/angular_transfer_chats.tpl.php');
    ?>
		            </div>
			    </div>
$currentUser = erLhcoreClassUser::instance();
$onlineTimeout = (int) erLhcoreClassModelChatConfig::fetchCache('sync_sound_settings')->data['online_timeout'];
$canListOnlineUsers = false;
$canListOnlineUsersAll = false;
if (erLhcoreClassModelChatConfig::fetchCache('list_online_operators')->current_value == 1) {
    $canListOnlineUsers = $currentUser->hasAccessTo('lhuser', 'userlistonline');
    $canListOnlineUsersAll = $currentUser->hasAccessTo('lhuser', 'userlistonlineall');
}
// We do not need a session anymore
session_write_close();
$ReturnMessages = array();
$pendingTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
$activeTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
$closedTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
$unreadTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
$showAllPending = erLhcoreClassModelUserSetting::getSetting('show_all_pending', 1);
$showDepartmentsStats = $currentUser->hasAccessTo('lhuser', 'canseedepartmentstats');
if ($showDepartmentsStats == true) {
    /**
     * Departments stats
     * */
    $limitList = is_numeric($Params['user_parameters_unordered']['limitd']) ? (int) $Params['user_parameters_unordered']['limitd'] : 10;
    $filter = array('ignore_fields' => erLhcoreClassChat::$chatListIgnoreField);
    $filter['limit'] = $limitList;
    if (is_array($Params['user_parameters_unordered']['departmentd']) && !empty($Params['user_parameters_unordered']['departmentd'])) {
        erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['departmentd']);
        $filter['filterin']['id'] = $Params['user_parameters_unordered']['departmentd'];
    }
    $filter['sort'] = 'pending_chats_counter DESC';
    $departments = erLhcoreClassModelDepartament::getList($filter);
    erLhcoreClassChat::prefillGetAttributes($departments, array('id', 'name', 'pending_chats_counter', 'active_chats_counter'), array(), array('remove_all' => true));
$soundData = array(0 => false, 'repeat_sound' => 1, 'repeat_sound_delay' => 5, 'show_alert' => false, 'new_chat_sound_enabled' => true, 'new_message_sound_admin_enabled' => true, 'new_message_sound_user_enabled' => true, 'online_timeout' => 300, 'check_for_operator_msg' => 10, 'back_office_sinterval' => 10, 'chat_message_sinterval' => 3.5, 'long_polling_enabled' => false, 'polling_chat_message_sinterval' => 1.5, 'polling_back_office_sinterval' => 5, 'connection_timeout' => 30, 'browser_notification_message' => false);
?>
confLH.back_office_sinterval = <?php 
echo (int) ($soundData['back_office_sinterval'] * 1000);
?>
;confLH.chat_message_sinterval = <?php 
echo (int) ($soundData['chat_message_sinterval'] * 1000);
?>
;confLH.new_chat_sound_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('new_chat_sound', (int) $soundData['new_chat_sound_enabled']);
?>
;confLH.new_message_sound_admin_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_admin_enabled']);
?>
;confLH.new_message_sound_user_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_user_enabled']);
?>
;confLH.new_message_browser_notification = <?php 
echo isset($soundData['browser_notification_message']) ? (int) $soundData['browser_notification_message'] : 0;
?>
;confLH.transLation = {'new_chat':'New chat request'};confLH.csrf_token = '<?php 
echo erLhcoreClassUser::instance()->getCSFRToken();
?>
';confLH.repeat_sound = <?php 
echo (int) $soundData['repeat_sound'];
?>
;confLH.repeat_sound_delay = <?php 
echo (int) $soundData['repeat_sound_delay'];
?>
;confLH.show_alert = <?php 
echo (int) $soundData['show_alert'];
Пример #6
0
<?php

$departmentNames = array();
$departmentList = array();
$departments = erLhcoreClassModelDepartament::getList($departmentParams);
foreach ($departments as $department) {
    $departmentNames[$department->id] = $department->name;
    $departmentList[] = array('id' => $department->id, 'name' => $department->name);
}
$dashboardOrder = (string) erLhcoreClassModelUserSetting::getSetting('dwo', '');
if ($dashboardOrder == '') {
    $dashboardOrder = erLhcoreClassModelChatConfig::fetch('dashboard_order')->current_value;
}
$dashboardOrder = explode('|', $dashboardOrder);
$columnsTotal = count($dashboardOrder);
$columnSize = 12 / $columnsTotal;
?>
<div class="row" id="dashboard-body" ng-init='lhc.userDepartments=<?php 
echo json_encode($departmentList, JSON_HEX_APOS);
?>
;lhc.userDepartmentsNames=<?php 
echo json_encode($departmentNames, JSON_HEX_APOS);
?>
;lhc.setUpListNames(["actived","closedd","unreadd","pendingd","operatord","departmentd"])'>
     <a class="dashboard-configuration" onclick="return lhc.revealModal({'url':WWW_DIR_JAVASCRIPT +'chat/dashboardwidgets'})" title="<?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('chat/syncadmininterface', 'Configure dashboard');
?>
"><i class="material-icons mr-0">&#xE871;</i></a>
     <?php 
for ($i = 0; $i < $columnsTotal; $i++) {
    $widgets = array_filter(explode(',', $dashboardOrder[$i]));
        $canListOnlineUsersAll = $currentUser->hasAccessTo('lhuser', 'userlistonlineall');
    }
    $pendingTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
    $activeTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
    $closedTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
    $unreadTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
    $frontTabsOrder = explode(',', 'dashboard,online_users,online_map');
    $browserNotification = (int) erLhcoreClassModelUserSetting::getSetting('new_user_bn', (int) 0);
    $soundUserNotification = (int) erLhcoreClassModelUserSetting::getSetting('new_user_sound', (int) 0);
    $onlineDepartment = (int) erLhcoreClassModelUserSetting::getSetting('o_department', (int) 0);
    $ouserTimeout = (int) erLhcoreClassModelUserSetting::getSetting('ouser_timeout', (int) 3600);
    $oupdTimeout = (int) erLhcoreClassModelUserSetting::getSetting('oupdate_timeout', (int) 10);
    $omaxRows = (int) erLhcoreClassModelUserSetting::getSetting('omax_rows', (int) 50);
    $ogroupBy = (string) erLhcoreClassModelUserSetting::getSetting('ogroup_by', 'none');
    $omapDepartment = (int) erLhcoreClassModelUserSetting::getSetting('omap_depid', 0);
    $omapMarkerTimeout = (int) erLhcoreClassModelUserSetting::getSetting('omap_mtimeout', 30);
    $onlineCheck = (int) '0';
    if ($onlineCheck > 0) {
        $onlineCheck = ",online_user:(ou.last_check_time_ago < " . ($onlineCheck + 3) . ")";
    } else {
        $onlineCheck = '';
    }
    ?>
<div ng-controller="OnlineCtrl as online" ng-init='groupByField = <?php 
    echo json_encode($ogroupBy);
    ?>
;online.maxRows=<?php 
    echo (int) $omaxRows;
    ?>
;online.updateTimeout=<?php 
    echo (int) $oupdTimeout;
?>
" id="pending">
	   <form action="<?php 
echo erLhcoreClassDesign::baseurl('user/edit');
?>
/<?php 
echo $user->id;
?>
#pending" method="post">

	  	<?php 
include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
?>

		<label><input type="checkbox" name="showAllPendingEnabled" value="1" <?php 
erLhcoreClassModelUserSetting::getSetting('show_all_pending', 1, $user->id) == 1 ? print 'checked="checked"' : '';
?>
 /> <?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'User can see all pending chats, not only assigned to him');
?>
</label><br>
		
		<input type="submit" class="btn btn-default" name="UpdatePending_account" value="<?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'Update');
?>
"/>
	   </form>
    </div>
    <?php 
if (erLhcoreClassUser::instance()->hasAccessTo('lhpermission', 'see_permissions_users')) {
    ?>
<?php

$soundData = erLhcoreClassModelChatConfig::fetch('sync_sound_settings')->data;
$soundMessageEnabled = erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_admin_enabled']);
$soundNewChatEnabled = erLhcoreClassModelUserSetting::getSetting('new_chat_sound', (int) $soundData['new_chat_sound_enabled']);
$canChangeOnlineStatus = false;
$currentUser = erLhcoreClassUser::instance();
if ($currentUser->hasAccessTo('lhuser', 'changeonlinestatus')) {
    $canChangeOnlineStatus = true;
    if (!isset($UserData)) {
        $UserData = $currentUser->getUserData(true);
    }
}
$canChangeVisibilityMode = false;
if ($currentUser->hasAccessTo('lhuser', 'changevisibility')) {
    $canChangeVisibilityMode = true;
    if (!isset($UserData)) {
        $UserData = $currentUser->getUserData(true);
    }
}
?>

<?php 
if ($currentUser->hasAccessTo('lhchat', 'use')) {
    ?>

<?php 
    if (!isset($hideULSetting)) {
        ?>
<ul class="list-inline user-settings-list pull-right">
<?php 
			<form action="<?php 
    echo erLhcoreClassDesign::baseurl('system/languages');
    ?>
" method="post">
    				<?php 
    include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
    ?>
    				
    				<div class="form-group">
        				<label><?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('system/languages', 'Language');
    ?>
</label> 
        				<select name="language" class="form-control">
        					<?php 
    $userLanguage = erLhcoreClassModelUserSetting::getSetting('user_language', erLhcoreClassSystem::instance()->Language);
    foreach (erLhcoreClassSiteaccessGenerator::getLanguages() as $language) {
        ?>
        						<option value="<?php 
        echo $language['locale'];
        ?>
" <?php 
        $userLanguage == $language['locale'] ? print 'selected="selected"' : '';
        ?>
><?php 
        echo $language['locale'];
        ?>
</option>
        					<?php 
    }
    ?>
Пример #11
0
active<?php 
    }
    ?>
" id="speech">

		<form action="<?php 
    echo erLhcoreClassDesign::baseurl('user/account');
    ?>
" method="post">

	  	<?php 
    include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
    ?>

	  	<?php 
    $dataSpeech = array('language' => (int) erLhcoreClassModelUserSetting::getSetting('speech_language', ''), 'dialect' => (int) erLhcoreClassModelUserSetting::getSetting('speech_dialect', ''), 'optional' => true);
    ?>
	  	
		<?php 
    include erLhcoreClassDesign::designtpl('lhspeech/speech_form_fields.tpl.php');
    ?>
		
		<input type="submit" class="btn btn-default" name="UpdateSpeech_account" value="<?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'Update');
    ?>
" />

		</form>
	</div>
  <?php 
}
Пример #12
0
 public static function getInstance()
 {
     if (is_null(self::$instance)) {
         $sysConfiguration = erLhcoreClassSystem::instance();
         $urlCfgDefault = ezcUrlConfiguration::getInstance();
         $urlCfgDefault->basedir = $sysConfiguration->WWWDir;
         $urlCfgDefault->script = $sysConfiguration->IndexFile;
         $urlCfgDefault->unorderedDelimiters = array('(', ')');
         $urlCfgDefault->orderedParameters = array();
         $urlCfgDefault->unorderedParameters = array();
         $urlCfgDefault->addOrderedParameter('siteaccess');
         $urlCfgDefault->addOrderedParameter('module');
         $urlCfgDefault->addOrderedParameter('function');
         $cfgSite = erConfigClassLhConfig::getInstance();
         $urlInstance = new erLhcoreClassURL(($cfgSite->getSetting('site', 'force_virtual_host', false) === false ? 'index.php' : '') . $sysConfiguration->RequestURI, $urlCfgDefault);
         $siteaccess = $urlInstance->getParam('siteaccess');
         $availableSiteaccess = $cfgSite->getSetting('site', 'available_site_access');
         $defaultSiteAccess = $cfgSite->getSetting('site', 'default_site_access');
         if ($defaultSiteAccess != $siteaccess && in_array($siteaccess, $availableSiteaccess)) {
             $optionsSiteAccess = $cfgSite->getSetting('site_access_options', $siteaccess);
             $sysConfiguration->Language = $siteaccess == 'site_admin' ? erLhcoreClassModelUserSetting::getSetting('user_language', $optionsSiteAccess['locale'], false, true) : $optionsSiteAccess['locale'];
             $sysConfiguration->ThemeSite = $optionsSiteAccess['theme'];
             $sysConfiguration->ContentLanguage = $optionsSiteAccess['content_language'];
             $sysConfiguration->WWWDirLang = '/' . $siteaccess;
             $sysConfiguration->SiteAccess = $siteaccess;
             if ($optionsSiteAccess['locale'] != 'en_EN') {
                 $urlInstance->setParam('module', $urlInstance->getParam('module'));
                 $urlInstance->setParam('function', $urlInstance->getParam('function'));
             }
             if (isset($_POST['switchLang']) && in_array($_POST['switchLang'], $availableSiteaccess)) {
                 $optionsSiteAccessOverride = $cfgSite->getSetting('site_access_options', $_POST['switchLang']);
                 $sysConfiguration->Language = $optionsSiteAccessOverride['locale'];
                 $sysConfiguration->SiteAccess = $_POST['switchLang'];
                 if ($defaultSiteAccess != $sysConfiguration->SiteAccess) {
                     $sysConfiguration->WWWDirLang = '/' . $sysConfiguration->SiteAccess;
                 } else {
                     $sysConfiguration->WWWDirLang = '';
                 }
             }
         } else {
             $optionsSiteAccess = $cfgSite->getSetting('site_access_options', $defaultSiteAccess);
             // Falling back
             $sysConfiguration->SiteAccess = $defaultSiteAccess;
             $sysConfiguration->Language = $siteaccess == 'site_admin' ? erLhcoreClassModelUserSetting::getSetting('user_language', $optionsSiteAccess['locale'], false, true) : $optionsSiteAccess['locale'];
             $sysConfiguration->ThemeSite = $optionsSiteAccess['theme'];
             $sysConfiguration->ContentLanguage = $optionsSiteAccess['content_language'];
             if (isset($_POST['switchLang']) && in_array($_POST['switchLang'], $availableSiteaccess)) {
                 $optionsSiteAccessOverride = $cfgSite->getSetting('site_access_options', $_POST['switchLang']);
                 $sysConfiguration->Language = $optionsSiteAccessOverride['locale'];
                 $sysConfiguration->SiteAccess = $_POST['switchLang'];
                 if ($defaultSiteAccess != $sysConfiguration->SiteAccess) {
                     $sysConfiguration->WWWDirLang = '/' . $sysConfiguration->SiteAccess;
                 }
             }
             // To reset possition counter
             $urlCfgDefault->removeOrderedParameter('siteaccess');
             $urlCfgDefault->removeOrderedParameter('module');
             $urlCfgDefault->removeOrderedParameter('function');
             // Reinit parameters
             $urlCfgDefault->addOrderedParameter('module');
             $urlCfgDefault->addOrderedParameter('function');
             //Apply default configuration
             $urlInstance->applyConfiguration($urlCfgDefault);
             if ($optionsSiteAccess['locale'] != 'en_EN') {
                 $urlInstance->setParam('module', $urlInstance->getParam('module'));
                 $urlInstance->setParam('function', $urlInstance->getParam('function'));
             }
         }
         self::$instance = $urlInstance;
     }
     return self::$instance;
 }