User details form populates!
authorBen Klang <ben@alkaloid.net>
Sun, 17 Jul 2005 05:36:36 +0000 (05:36 +0000)
committerBen Klang <ben@alkaloid.net>
Sun, 17 Jul 2005 05:36:36 +0000 (05:36 +0000)
Various visual bugs fixed.

git-svn-id: https://svn.alkaloid.net/gpl/shout/trunk@62 06cd67b6-e706-0410-b29e-9de616bca6e9

14 files changed:
lib/Driver/ldap.php
lib/Shout.php
lib/User.php
shout.webprj
templates/dialplan/dialplanlist.inc
templates/table-limiter-begin.inc [new file with mode: 0644]
templates/table-limiter-begin.inc~ [new file with mode: 0644]
templates/table-limiter-end.inc [new file with mode: 0644]
templates/table-limiter-end.inc~ [new file with mode: 0644]
templates/users/userlist.inc
themes/screen.css [new file with mode: 0644]
users.php
users/add.php [deleted file]
users/edit.php [new file with mode: 0644]

index d0a1d90..842eef6 100644 (file)
@@ -203,21 +203,37 @@ type");
             $extension = $res[$i]['voicemailbox'][0];
             $entries[$context][$extension] = array();
 
-            @$entries[$context][$extension]['dialopts'] =
-                $res[$i]['asteriskuserdialoptions'];
+            $j = 0;
+            $entries[$context][$extension]['dialopts'] = array();
+            while ($j < @$res[$i]['asteriskuserdialoptions']['count']) {
+                $entries[$context][$extension]['dialopts'][] =
+                    $res[$i]['asteriskuserdialoptions'][$j];
+                $j++;
+            }
 
-            @$entries[$context][$extension]['mailboxopts'] =
-                $res[$i]['asteriskvoicemailboxoptions'];
+            $j = 0;
+            $entries[$context][$extension]['mailboxopts'] = array();
+            while ($j < @$res[$i]['asteriskvoicemailboxoptions']['count']) {
+                $entries[$context][$extension]['mailboxopts'][] =
+                    $res[$i]['asteriskvoicemailboxoptions'][$j];
+                $j++;
+            }
 
-            @$entries[$context][$extension]['mailboxpin'] =
+            $entries[$context][$extension]['mailboxpin'] =
                 $res[$i]['voicemailboxpin'][0];
 
             @$entries[$context][$extension]['name'] =
                 $res[$i]['cn'][0];
 
-            @$entries[$context][$extension]['phonenumbers'] =
-                $res[$i]['telephonenumber'];
+            $j = 0;
+            $entries[$context][$extension]['phonenumbers'] = array();
+            while ($j < @$res[$i]['telephonenumber']['count']) {
+                $entries[$context][$extension]['phonenumbers'][] =
+                    $res[$i]['telephonenumber'][$j];
+                $j++;
+            }
 
+            # FIXME Do some sanity checking here.  Also set a default?
             @$entries[$context][$extension]['dialtimeout'] =
                 $res[$i]['asteriskuserdialtimeout'][0];
 
index 1c97641..c771824 100644 (file)
@@ -22,7 +22,7 @@ class Shout
      */
     function getMenu($returnType = 'object')
     {
-        global $conf, $context, $section;
+        global $conf, $context, $section, $action;
 
         require_once 'Horde/Menu.php';
 
@@ -31,11 +31,22 @@ class Shout
         if (isset($context) && isset($section) && $section == "users" &&
             Shout::checkRights("shout:contexts:$context:users",
                 PERMS_EDIT, 1)) {
-            $url = Horde::applicationUrl("users/index.php");
+            $url = Horde::applicationUrl("users.php");
             $url = Util::addParameter($url, array('context' => $context,
                                                   'section' => $section,
                                                   'action' => 'add'));
-            $menu->add($url, _("Add User"), "add-user.gif");
+            
+            # Goofy hack to make the icon make a little sense
+            # when editing/deleting users
+            if (!isset($action)) {
+                $icontitle = "Add";
+            } else {
+                $icontitle = $action;
+                $icontitle[0] = strtoupper($action[0]);
+            }
+            # End goofy hack
+
+            $menu->add($url, _("$icontitle User"), "add-user.gif");
         }
 
         if ($returnType == 'object') {
index ea2514a..27d6d04 100644 (file)
@@ -1,6 +1,13 @@
 <?php
 /**
- * @package Whups
+ * $Horde: shout/lib/User.php,v 0.1 2005/07/16 11:06:48 ben Exp $
+ *
+ * Copyright 2005 Ben Klang <ben@alkaloid.net>
+ *
+ * See the enclosed file LICENSE for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @package Shout
  */
 // {{{
 class UserDetailsForm extends Horde_Form {
@@ -9,12 +16,24 @@ class UserDetailsForm extends Horde_Form {
     {
         global $shout;
         $context = $vars->get("context");
-
-        parent::Horde_Form($vars, _("Add User - Context: $context"));
+        $extension = $vars->get("extension");
+        
+        $users = $shout->getUsers($context);
+        if (array_key_exists($extension, $users)) {
+            # We must be editing an existing user
+            $this->fillUserForm(&$vars, $users[$extension]);
+            $formtitle = "Edit User";
+        } else {
+            $formtitle = "Add User";
+        }
+       
+        parent::Horde_Form($vars, _("$formtitle - Context: $context"));
 
         $users = $shout->getUsers($context);
         
         $this->addHidden('', 'context', 'text', true);
+        $this->addHidden('', 'oldextension', 'text', true);
+        $vars->set('oldextension', $extension);
         $this->addHidden('', 'action', 'text', true);
         $vars->set('action', 'save');
         $this->addVariable(_("Full Name"), 'name', 'text', true);
@@ -34,6 +53,50 @@ class UserDetailsForm extends Horde_Form {
         $this->addVariable(_("Music on Hold while transferring"), 'moh',
             'radio', true, false, null,
             array('values' => array(true => 'Yes', false => 'No')));
+        $this->addVariable(_("Allow Call Transfers"), 'transfer',
+            'radio', true, false, null,
+            array('values' => array(true => 'Yes', false => 'No')));
+    }
+    
+    // {{{ fillUserForm method
+    /**
+     * Fill in the blanks for the UserDetailsForm
+     *
+     * @param object Reference to a Variables object to fill in
+     *
+     * @param array User details
+     *
+     * @return boolean True if successful, Pear::raiseError object on failure
+     */
+    function fillUserForm(&$vars, $userdetails)
+    {
+    #Array ( [dialopts] => Array ( [0] => m [1] => t ) [mailboxopts] => Array (
+    #) [mailboxpin] => 1234 [name] => Ricardo Paul [phonenumbers] => Array ( )
+    #[dialtimeout] => 30 [email] => ricardo.paul@v-office.biz [pageremail] => ) 
+        $vars->set('name', $userdetails['name']);
+        $vars->set('email', @$userdetails['email']);
+        $vars->set('pin', $userdetails['mailboxpin']);
+        
+        $i = 1;
+        foreach($userdetails['phonenumbers'] as $number) {
+            $vars->set("telephone$i", $number);
+            $i++;
+        }
+        
+        if (in_array('m', $userdetails['dialopts'])) {
+            $vars->set('moh', true);
+        } else {
+            $vars->set('moh', false);
+        }
+        
+        if (in_array('t', $userdetails['dialopts'])) {
+            $vars->set('transfer', true);
+        } else {
+            $vars->set('transfer', false);
+        }
+        
+        return true;
     }
+    // }}}
 }
 // }}}
\ No newline at end of file
index 9b650ad..92f4188 100644 (file)
@@ -9,57 +9,61 @@
     <item url="templates/" uploadstatus="2" />
     <item url="lib/" uploadstatus="2" />
     <item url="lib/Driver/" uploadstatus="2" />
-    <item modified_time="1121374073" url="lib/Driver/ldap.php" uploadstatus="2" />
-    <item modified_time="1120792108" url="lib/base.php" uploadstatus="2" />
-    <item modified_time="1120815592" url="lib/Driver.php" uploadstatus="2" />
-    <item modified_time="1121439895" url="index.php" uploadstatus="2" />
+    <item modified_time="1121576093" url="lib/Driver/ldap.php" uploadstatus="2" />
+    <item modified_time="1120589135" url="lib/base.php" uploadstatus="2" />
+    <item modified_time="1121306551" url="lib/Driver.php" uploadstatus="2" />
+    <item modified_time="1121401934" url="index.php" uploadstatus="2" />
     <uploadprofiles showtreeviews="true" defaultProfile="Shout" >
       <profile remote_host="picasso.v-office.biz" remote_port="" remote_path="/srv/vhost/users/aklang/sites/intranet.v-office.biz/shout" remote_protocol="sftp" user="aklang" name="Shout" >
         <uploadeditem upload_time="0" url="config/" />
         <uploadeditem upload_time="1120073766" url="config/conf.xml" />
         <uploadeditem upload_time="1120183942" url="contexts.php" />
         <uploadeditem upload_time="1120355053" url="dialplan.php" />
-        <uploadeditem upload_time="1121439895" url="index.php" />
+        <uploadeditem upload_time="1121401934" url="index.php" />
         <uploadeditem upload_time="1120021874" url="index.php~" />
         <uploadeditem upload_time="0" url="lib/" />
-        <uploadeditem upload_time="1120815592" url="lib/Driver.php" />
+        <uploadeditem upload_time="1121306551" url="lib/Driver.php" />
         <uploadeditem upload_time="1120022560" url="lib/Driver.php~" />
         <uploadeditem upload_time="0" url="lib/Driver/" />
-        <uploadeditem upload_time="1121374073" url="lib/Driver/ldap.php" />
+        <uploadeditem upload_time="1121576093" url="lib/Driver/ldap.php" />
         <uploadeditem upload_time="1120026921" url="lib/Driver/ldap.php~" />
         <uploadeditem upload_time="1120288491" url="lib/SelectContext.php" />
-        <uploadeditem upload_time="1121374073" url="lib/Shout.php" />
-        <uploadeditem upload_time="1120812245" url="lib/System.php" />
-        <uploadeditem upload_time="1121439895" url="lib/User.php" />
+        <uploadeditem upload_time="1121576654" url="lib/Shout.php" />
+        <uploadeditem upload_time="1120815615" url="lib/System.php" />
+        <uploadeditem upload_time="1121578306" url="lib/User.php" />
         <uploadeditem upload_time="1120279975" url="lib/Users.php" />
-        <uploadeditem upload_time="1120792108" url="lib/base.php" />
+        <uploadeditem upload_time="1120589135" url="lib/base.php" />
         <uploadeditem upload_time="1120073766" url="lib/defines.php" />
         <uploadeditem upload_time="0" url="main/" />
-        <uploadeditem upload_time="1121401845" url="main/dialplan.php" />
-        <uploadeditem upload_time="1121401845" url="main/moh.php" />
-        <uploadeditem upload_time="1121401845" url="main/system.php" />
-        <uploadeditem upload_time="1121401845" url="main/users.php" />
+        <uploadeditem upload_time="1120355053" url="main/dialplan.php" />
+        <uploadeditem upload_time="1120287842" url="main/moh.php" />
+        <uploadeditem upload_time="1120815615" url="main/system.php" />
+        <uploadeditem upload_time="1121306550" url="main/users.php" />
         <uploadeditem upload_time="1120287842" url="moh.php" />
         <uploadeditem upload_time="1120027019" url="shout.webprj" />
         <uploadeditem upload_time="1120815615" url="system.php" />
         <uploadeditem upload_time="0" url="templates/" />
-        <uploadeditem upload_time="1120158044" url="templates/common-header.inc" />
+        <uploadeditem upload_time="1120174958" url="templates/common-header.inc" />
         <uploadeditem upload_time="1120073766" url="templates/content_page" />
         <uploadeditem upload_time="0" url="templates/context/" />
-        <uploadeditem upload_time="1120169761" url="templates/context/contextline.inc" />
+        <uploadeditem upload_time="1120175005" url="templates/context/contextline.inc" />
         <uploadeditem upload_time="0" url="templates/dialplan/" />
-        <uploadeditem upload_time="1121458889" url="templates/dialplan/dialplanlist.inc" />
-        <uploadeditem upload_time="1121449266" url="templates/menu.inc" />
+        <uploadeditem upload_time="1121573859" url="templates/dialplan/dialplanlist.inc" />
+        <uploadeditem upload_time="1121486161" url="templates/menu.inc" />
+        <uploadeditem upload_time="1121575269" url="templates/table-limiter-begin.inc" />
+        <uploadeditem upload_time="1121575075" url="templates/table-limiter-end.inc" />
         <uploadeditem upload_time="0" url="templates/users/" />
-        <uploadeditem upload_time="1121440395" url="templates/users/userlist.inc" />
+        <uploadeditem upload_time="1121576381" url="templates/users/userlist.inc" />
         <uploadeditem upload_time="0" url="themes/" />
         <uploadeditem upload_time="0" url="themes/graphics/" />
-        <uploadeditem upload_time="1121295816" url="themes/graphics/add-user.gif" />
-        <uploadeditem upload_time="1121439895" url="users.php" />
+        <uploadeditem upload_time="1121300828" url="themes/graphics/add-user.gif" />
+        <uploadeditem upload_time="1121574328" url="themes/screen.css" />
+        <uploadeditem upload_time="1121574626" url="users.php" />
         <uploadeditem upload_time="0" url="users/" />
-        <uploadeditem upload_time="1121439895" url="users/add.php" />
+        <uploadeditem upload_time="1121404120" url="users/add.php" />
+        <uploadeditem upload_time="1121575287" url="users/edit.php" />
         <uploadeditem upload_time="1121396278" url="users/index.php" />
-        <uploadeditem upload_time="1121405057" url="users/save.php" />
+        <uploadeditem upload_time="1121402549" url="users/save.php" />
       </profile>
     </uploadprofiles>
     <debuggers>
     <defaultDTD>-//w3c//dtd xhtml 1.0 strict//en</defaultDTD>
     <item modified_time="1120073766" url="config/conf.xml" uploadstatus="1" />
     <item url="config/" uploadstatus="1" />
-    <item modified_time="1121374073" url="lib/Shout.php" uploadstatus="1" />
-    <item modified_time="1120158044" url="templates/common-header.inc" uploadstatus="1" />
-    <item modified_time="1121449266" url="templates/menu.inc" uploadstatus="1" />
+    <item modified_time="1121576654" url="lib/Shout.php" uploadstatus="1" />
+    <item modified_time="1120174958" url="templates/common-header.inc" uploadstatus="1" />
+    <item modified_time="1121486161" url="templates/menu.inc" uploadstatus="1" />
     <item url="templates/context/" uploadstatus="1" />
-    <item modified_time="1120169761" url="templates/context/contextline.inc" uploadstatus="1" />
+    <item modified_time="1120175005" url="templates/context/contextline.inc" uploadstatus="1" />
     <item url="templates/users/" uploadstatus="1" />
-    <item modified_time="1121440395" url="templates/users/userlist.inc" uploadstatus="1" />
-    <item modified_time="1121458889" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
+    <item modified_time="1121576381" url="templates/users/userlist.inc" uploadstatus="1" />
+    <item modified_time="1121573859" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
     <item url="templates/dialplan/" uploadstatus="1" />
-    <item modified_time="1120812245" url="lib/System.php" uploadstatus="1" />
+    <item modified_time="1120815615" url="lib/System.php" uploadstatus="1" />
     <author>Ben Klang</author>
     <email>ben@alkaloid.net</email>
     <debuggerclient>Gubed</debuggerclient>
     <events/>
     <item url="themes/" uploadstatus="1" />
     <item url="themes/graphics/" uploadstatus="1" />
-    <item modified_time="1121295816" url="themes/graphics/add-user.gif" uploadstatus="1" />
+    <item modified_time="1121300828" url="themes/graphics/add-user.gif" uploadstatus="1" />
     <item url="users/" uploadstatus="1" />
-    <item modified_time="1121439895" url="lib/User.php" uploadstatus="1" />
-    <item modified_time="1121439895" url="users/add.php" uploadstatus="1" />
+    <item modified_time="1121578306" url="lib/User.php" uploadstatus="1" />
     <item url="main/" uploadstatus="1" />
-    <item modified_time="1121401845" url="main/dialplan.php" uploadstatus="1" />
-    <item modified_time="1121401845" url="main/moh.php" uploadstatus="1" />
-    <item modified_time="1121401845" url="main/system.php" uploadstatus="1" />
-    <item modified_time="1121401845" url="main/users.php" uploadstatus="1" />
-    <item modified_time="1121439895" url="users.php" uploadstatus="1" />
-    <item modified_time="1121405057" url="users/save.php" uploadstatus="1" />
+    <item modified_time="1120355053" url="main/dialplan.php" uploadstatus="1" />
+    <item modified_time="1120287842" url="main/moh.php" uploadstatus="1" />
+    <item modified_time="1120815615" url="main/system.php" uploadstatus="1" />
+    <item modified_time="1121306550" url="main/users.php" uploadstatus="1" />
+    <item modified_time="1121574626" url="users.php" uploadstatus="1" />
+    <item modified_time="1121402549" url="users/save.php" uploadstatus="1" />
+    <item modified_time="1121574328" url="themes/screen.css" />
+    <item modified_time="1121575287" url="users/edit.php" />
+    <item modified_time="1121575269" url="templates/table-limiter-begin.inc" />
+    <item modified_time="1121575075" url="templates/table-limiter-end.inc" />
     <treestatus>
       <openfolder url="config" />
       <openfolder url="lib" />
index d5756cb..ed09b0c 100644 (file)
                 } else {
                     echo "Extension $extension";
                 }
-                ?>
+                $editurl = Horde::applicationUrl("dialplan.php");
+                $editurl = Util::addParameter($editurl, "context=$context");
+                $editurl = Util::addParameter($editurl, "action=edit");
+                $editurl = Util::addParameter($editurl, "section=dialplan");
+                $editurl = Util::addParameter($editurl, "extension=$extension");
+                ?>&nbsp;<a class="lighthint" href="<?php
+                    echo editurl;
+                ?>">edit</a>
               </th>
             </tr>
             <tr class="smallheader">
diff --git a/templates/table-limiter-begin.inc b/templates/table-limiter-begin.inc
new file mode 100644 (file)
index 0000000..91da037
--- /dev/null
@@ -0,0 +1 @@
+<table width="95%" border="0" cellpadding="0" cellspacing="0"><tr><td>
\ No newline at end of file
diff --git a/templates/table-limiter-begin.inc~ b/templates/table-limiter-begin.inc~
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/templates/table-limiter-end.inc b/templates/table-limiter-end.inc
new file mode 100644 (file)
index 0000000..2c0bb58
--- /dev/null
@@ -0,0 +1,3 @@
+    </td>
+  </tr>
+</table>
\ No newline at end of file
diff --git a/templates/table-limiter-end.inc~ b/templates/table-limiter-end.inc~
new file mode 100644 (file)
index 0000000..e69de29
index 9c09397..bc1a70c 100644 (file)
         foreach ($users as $extension => $user) {
             $rowcolor = $line % 2;
             $line++;
+            $url = Horde::applicationUrl("users.php");
+            $url = Util::addParameter($url, array('context' => $context,
+                                                  'extension' => $extension));
+            $editurl = Util::addParameter($url, "action=edit");
+            $deleteurl = Util::addParameter($url, "action=delete");
     ?>
     <tr class="item<?php echo $rowcolor; ?>">
-        <td width="7%"><?php
-                $url = Horde::applicationUrl("users/edit.php");
-                $url = Util::addParameter($url, "context=$context");
-                $url = Util::addParameter($url, "extension=$extension");
-                echo Horde::link($url);
-            ?>
-            <?php echo $extension; ?></a>
+        <td width="7%"><?php echo Horde::link($editurl); echo $extension; ?></a>
         </td>
-        <td><?php
-                $url = Horde::applicationUrl("users/edit.php");
-                $url = Util::addParameter($url, "context=$context");
-                $url = Util::addParameter($url, "extension=$extension");
-                echo Horde::link($url);?>
-            <?php echo $user['name'];?></a>
+        <td><?php echo Horde::link($editurl); echo $user['name']; ?></a>
         </td>
         <td width="100">
             <div align="center">
-                <?php
-                $url = Horde::applicationUrl("users/edit.php");
-                $url = Util::addParameter($url, "context=$context");
-                $url = Util::addParameter($url, "extension=$extension");
-                echo Horde::link($url); ?>
-                <font size="1">edit</font></a>
-                &nbsp;&nbsp;|&nbsp;&nbsp;
-                <?php
-$url = Horde::applicationUrl("users/delete.php");
-                $url = Util::addParameter($url, "context=$context");
-                $url = Util::addParameter($url, "extension=$extension");
-                echo Horde::link($url); ?>
-                <font size="1">delete</font></a>
+                <?php echo Horde::link($editurl, '', 'darkhint'); ?>edit</a>
+                &nbsp;|&nbsp;
+                <?php echo Horde::link($deleteurl, '', 'darkhint'); ?>delete</a>
             </div>
             <div align="center"></div>
         </td>
diff --git a/themes/screen.css b/themes/screen.css
new file mode 100644 (file)
index 0000000..7cb3ae4
--- /dev/null
@@ -0,0 +1,9 @@
+.lighthint {
+    color: #ffffff;
+    font-size: 10px;
+}
+
+.darkhint {
+    color: #770000;
+    font-size: 10px;
+}
\ No newline at end of file
index 605c696..d746f46 100644 (file)
--- a/users.php
+++ b/users.php
@@ -1,6 +1,6 @@
 <?php
 /**
- * $Horde: shout/users/index.php,v 0.1 2005/07/13 10:01:01 ben Exp $
+ * $Horde: shout/users.php,v 0.1 2005/07/13 10:01:01 ben Exp $
  *
  * Copyright 2005 Ben Klang <ben@alkaloid.net>
  *
@@ -44,6 +44,9 @@ echo $tabs->render($section);
 
 switch ($action) {
     case "add":
+        # Treat adds just like an empty edit
+        unset($extension);
+        $action = 'edit';
     case "edit":
     case "save":
     case "delete":
diff --git a/users/add.php b/users/add.php
deleted file mode 100644 (file)
index 2c362b9..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * $Horde: shout/users/add.php,v 1.0 2005/07/14 01:06:48 ben Exp $
- *
- * Copyright 2005 Ben Klang <ben@alkaloid.net>
- *
- * See the enclosed file LICENSE for license information (GPL). If you
- * did not receive this file, see http://www.horde.org/licenses/gpl.php.
- */
-@define('SHOUT_BASE', dirname(__FILE__) . '/..');
-require_once SHOUT_BASE . '/lib/User.php';
-require_once 'Horde/Variables.php';
-
-$RENDERER = &new Horde_Form_Renderer();
-
-$empty = '';
-$wereerrors = 0;
-
-$vars = &Variables::getDefaultVariables($empty);
-$formname = $vars->get('formname');
-
-$title = _("System Settings");
-
-$UserDetailsForm = &Horde_Form::singleton('UserDetailsForm', $vars);
-$UserDetailsFormValid = $UserDetailsForm->validate($vars, true);
-
-$UserDetailsForm->open($RENDERER, $vars, 'users.php', 'post');
-$UserDetailsForm->preserveVarByPost($vars, "section");
-$UserDetailsForm->preserve($vars);
-$RENDERER->beginActive($UserDetailsForm->getTitle());
-$RENDERER->renderFormActive($UserDetailsForm, $vars);
-$RENDERER->submit();
-$RENDERER->end();
-$UserDetailsForm->close($RENDERER);
\ No newline at end of file
diff --git a/users/edit.php b/users/edit.php
new file mode 100644 (file)
index 0000000..5df2c7e
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * $Horde: shout/users/edit.php,v 1.0 2005/07/14 01:06:48 ben Exp $
+ *
+ * Copyright 2005 Ben Klang <ben@alkaloid.net>
+ *
+ * See the enclosed file LICENSE for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ */
+@define('SHOUT_BASE', dirname(__FILE__) . '/..');
+require_once SHOUT_BASE . '/lib/User.php';
+require_once 'Horde/Variables.php';
+
+$RENDERER = &new Horde_Form_Renderer();
+
+$empty = '';
+$wereerrors = 0;
+
+$vars = &Variables::getDefaultVariables($empty);
+$formname = $vars->get('formname');
+
+$title = _("System Settings");
+
+$UserDetailsForm = &Horde_Form::singleton('UserDetailsForm', $vars);
+$UserDetailsFormValid = $UserDetailsForm->validate($vars, true);
+
+$UserDetailsForm->open($RENDERER, $vars, 'users.php', 'post');
+$UserDetailsForm->preserveVarByPost($vars, "section");
+$UserDetailsForm->preserve($vars);
+require SHOUT_TEMPLATES . '/table-limiter-begin.inc';
+$RENDERER->beginActive($UserDetailsForm->getTitle());
+$RENDERER->renderFormActive($UserDetailsForm, $vars);
+$RENDERER->submit();
+$RENDERER->end();
+$UserDetailsForm->close($RENDERER);
+require SHOUT_TEMPLATES . '/table-limiter-end.inc';
\ No newline at end of file