Настроить список серверов веб-почты Rouncube

У меня есть roundcube -последняя версия 1.2.0- веб-почта работает с hmail-сервером. Я размещаю несколько доменов на этом сервере и использую IIS в качестве веб-сервера для Roundcube. Веб-почта доступна https://mail.xxxx.tld где xxxx - это доменное имя, которое я размещаю.

Все домены указывают только на один сайт в IIS, используя bindings из настроек веб-сайта IIS.

В config.inc.php круглого куба:

$ config ['default_host'] = массив ('mail.x1.net', 'mail.x2.net', 'mail.x3.org', 'mail.x4.net');

Итак, на странице входа есть список серверов, подобный следующему снимку экрана:

Первый сервер в списке серверов всегда выбран по умолчанию. Что мне нужно, это сделать выбранный сервер или даже сделать доступным один сервер на основе URL-адреса, с которого осуществляется доступ к странице входа.

Теперь, я не имел в виду, как реализовать это, на стороне клиента с использованием JavaScript или на стороне сервера с помощью PHP, я просто имел в виду, где я мог бы применить любую реализацию для этого требования?

Я пытался изменить skins/larry/templates/login.html но я не смог найти никаких деталей для формы входа, кроме следующих:

<roundcube:form name="form" method="post">
<roundcube:object name="loginform" form="form" size="40" submit=true />
</form> 

Другими словами, все три элемента формы, имя пользователя, пароль и сервер создаются из <roundcube:object name="loginform" form="form" size="40" submit=true />Так где же я мог изменить этот объект?

1 ответ

Решение

Я обнаружил, что есть два пути:

  1. Долгий путь, изучите Roundcube API и создайте плагин.
  2. Короткий путь, добавив небольшой скрипт jquery в конце skins/larry/templates/login.html

Ниже приведен скрипт, который я добавил:

<script>
/* By: Said Bakr
 Making only one select list server item equals to the current host.
*/
$(document).ready(function() {
    my_host = $(location).attr('hostname');
    $("#rcmloginhost option").each(function(){
      if ($(this).val().replace(/^(.*)\:\/\//i, "") != my_host){
        $(this).remove();
      } 
    })
});
</script>
</body>
Другие вопросы по тегам