thomascube
2008-02-28 112c54ffbbfd65d2d76ce2526b77407f7fb067b8
Fix imap host selection in install script

3 files modified
41 ■■■■ changed files
installer/config.php 6 ●●●● patch | view | raw | blame | history
installer/rcube_install.php 22 ●●●●● patch | view | raw | blame | history
installer/test.php 13 ●●●●● patch | view | raw | blame | history
installer/config.php
@@ -250,14 +250,10 @@
<div id="defaulthostlist">
<?php
$default_hosts = (array)$RCI->getprop('default_host');
$text_imaphost = new textfield(array('name' => '_default_host[]', 'size' => 30));
$i = 0;
foreach ($default_hosts as $key => $name) {
  if (empty($name))
    continue;
  $host = is_numeric($key) ? $name : $key;
foreach ($RCI->get_hostlist() as $host) {
  echo '<div id="defaulthostentry'.$i.'">' . $text_imaphost->show($host);
  if ($i++ > 0)
    echo '<a href="#" onclick="removehostfield(this.parentNode);return false" class="removelink" title="Remove this entry">remove</a>';
installer/rcube_install.php
@@ -98,7 +98,8 @@
   */
  function getprop($name, $default = '')
  {
    $value = $_SERVER['REQUEST_METHOD'] == 'POST' ? $_POST["_$name"] : $this->config[$name];
    $value = $_SERVER['REQUEST_METHOD'] == 'POST' &&
              (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name];
    
    if ($name == 'des_key' && !isset($_REQUEST["_$name"]))
      $value = self::random_key(24);
@@ -182,6 +183,25 @@
  
  
  /**
   * Return a list with all imap hosts configured
   *
   * @return array Clean list with imap hosts
   */
  function get_hostlist()
  {
    $default_hosts = (array)$this->getprop('default_host');
    $out = array();
    foreach ($default_hosts as $key => $name) {
      if (!empty($name))
        $out[] = is_numeric($key) ? $name : $key;
    }
    return $out;
  }
  /**
   * Display OK status
   *
   * @param string Test name
installer/test.php
@@ -238,9 +238,14 @@
<?php
$default_hosts = (array)$RCI->getprop('default_host');
$select_imaphost = new select(array('name' => '_host', 'id' => 'imaphost'));
$select_imaphost->add(array_values($default_hosts));
$default_hosts = $RCI->get_hostlist();
if (!empty($default_hosts)) {
  $host_field = new select(array('name' => '_host', 'id' => 'imaphost'));
  $host_field->add($default_hosts);
}
else {
  $host_field = new textfield(array('name' => '_host', 'id' => 'imaphost'));
}
$user_field = new textfield(array('name' => '_user', 'id' => 'imapuser'));
$pass_field = new passwordfield(array('name' => '_pass', 'id' => 'imappass'));
@@ -251,7 +256,7 @@
<tbody>
  <tr>
    <td><label for="imaphost">Server</label></td>
    <td><?php echo $select_imaphost->show($_POST['_host'] ? $_POST['_host'] : '0'); ?></td>
    <td><?php echo $host_field->show($_POST['_host']); ?></td>
  </tr>
  <tr>
    <td>Port</td>