[turba] Adding Contact Help

Rob Wiltbank chade at hopi.dtcc.edu
Tue Aug 12 08:04:22 PDT 2003


I had sent some code last night before I left work, came in this morning 
and did a bit of cleaning up and put it into a patch form.  As it stands, 
the patch adds an "Add" link to a global contact which calls on 
addobject.php passing it the data contained within.  The data is accepted 
and populates the form fields, however here's where my problem occurs...

When you actually click the Add button, it resolves out to a blank horde 
page.  I think the issue is in the addobjectaction.php where it attempts 
to create the $key:

/* Create Object */
$key = $driver->addObject($object);


However, I'm not sure why.  Any input is appreciated.  Patch is attached.

-- 

*******************************************************************
*    Rob Wiltbank        * Delaware Technical & Community College *
* Application Specialist *      Computer Services Department      * 
*  chade at hopi.dtcc.edu   *          Wilmington Campus             *
*     302.571.5398       *            Lackey @ Large              *
*******************************************************************
-------------- next part --------------
diff -urabB ../../horde.orig/turba/addobject.php ./addobject.php
--- ../../horde.orig/turba/addobject.php	2003-05-26 14:36:03.000000000 -0400
+++ ./addobject.php	2003-08-12 10:11:52.000000000 -0400
@@ -16,6 +16,25 @@
 require_once TURBA_BASE . '/lib/ObjectView.php';
 require_once TURBA_BASE . '/lib/AbstractObject.php';
 
+//
+// Added 8/11/03 by Rob
+// Add contact from global list.
+//
+// As long as we're at *least* sent and
+// email address we can build an entry.
+if (isset($_GET['incEmail'])) {
+   $incoming['Name']       = $_GET['incName'];
+   $incoming['Fullname']   = $_GET['incFullname'];
+   $incoming['Department'] = $_GET['incDepartment'];
+   $incoming['Givenname']  = $_GET['incGivenname'];
+   $incoming['Surname']    = $_GET['incSurname'];
+   $temparray = preg_split("/\?key=/", $_GET['incEmail']);
+   $incoming['Email'] = $temparray[0];
+   $key = htmlspecialchars($temparray[1]);
+}
+else
+   $incoming = NULL;
+
 $title = _("Add a new contact");
 $js_onLoad = null;
 require TURBA_TEMPLATES . '/common-header.inc';
@@ -46,7 +65,7 @@
     } else {
         $object = new Turba_AbstractObject($driver);
         $view = new Turba_ObjectView($object, TURBA_TEMPLATES . '/add/add.inc');
-        $view->display();
+        $view->display($incoming); //Pass query string array.
     }
 } else {
     include TURBA_TEMPLATES . '/add/select.inc';




diff -urabB ../../horde.orig/turba/displayobject.php ./displayobject.php
--- ../../horde.orig/turba/displayobject.php	2003-05-26 14:36:03.000000000 -0400
+++ ./displayobject.php	2003-08-12 09:55:37.000000000 -0400
@@ -31,7 +31,7 @@
 require TURBA_BASE . '/status.php';
 
 if (isset($view) && is_object($view)) {
-    $view->display();
+    $view->display(NULL); //Pass NULL since view accepts argument.
 }
 
 require TURBA_TEMPLATES . '/common-footer.inc';



diff -urabB ../../horde.orig/turba/editobject.php ./editobject.php
--- ../../horde.orig/turba/editobject.php	2003-05-26 14:36:03.000000000 -0400
+++ ./editobject.php	2003-08-12 09:29:33.000000000 -0400
@@ -40,7 +40,7 @@
 require TURBA_BASE . '/status.php';
 
 if (isset($view) && is_object($view)) {
-    $view->display();
+    $view->display(NULL);
 }
 
 require TURBA_TEMPLATES . '/common-footer.inc';



diff -urabB ../../horde.orig/turba/lib/ObjectView.php ./lib/ObjectView.php
--- ../../horde.orig/turba/lib/ObjectView.php	2002-04-12 12:10:07.000000000 -0400
+++ ./lib/ObjectView.php	2003-08-12 09:56:03.000000000 -0400
@@ -41,7 +41,12 @@
     /**
      * Renders the object into an HTML view.
      */
-    function display()
+    //
+    // Added 8/11/03 by Rob
+    // Add contact from global list.
+    //
+    // @param $incoming Array containing query string information.
+    function display($incoming)
     {
         include TURBA_BASE . '/config/attributes.php';
 
diff -urabB ../../horde.orig/turba/templates/add/add.inc ./templates/add/add.inc
--- ../../horde.orig/turba/templates/add/add.inc	2003-05-26 14:36:03.000000000 -0400
+++ ./templates/add/add.inc	2003-08-12 10:13:28.000000000 -0400
@@ -41,7 +42,35 @@
 </tr>
 <?php
     else:
+// (commented)       $value = htmlspecialchars($this->object->getValue($key));
+// Added 8/11/03 by Rob
+// Add contact from global list.
+//
+// Populate form with global addressbook data.
+//
+       switch($key) {
+          case "fullname":
+             $value = $incoming['Fullname'];
+             break;
+          case "email":
+             $value = $incoming['Email'];
+             break;
+          case "name":
+             $value = $incoming['Name'];
+             break;
+          case "department":
+             $value = $incoming['Department'];
+             break;
+          case "surname":
+             $value = $incoming['Surname'];
+             break;
+          case "givenname":
+             $value = $incoming['Givenname'];
+             break;
+          default:
         $value = htmlspecialchars($this->object->getValue($key));
+              break;
+       }
 ?>
 <tr>
     <td class="light" align="right"><b><?php echo $field['desc'] ?>&nbsp;</b></td>



diff -urabB ../../horde.orig/turba/templates/display/display.inc ./templates/display/display.inc
--- ../../horde.orig/turba/templates/display/display.inc	2003-05-26 14:36:03.000000000 -0400
+++ ./templates/display/display.inc	2003-08-12 10:44:02.000000000 -0400
@@ -88,6 +88,29 @@
             }
         }
         $value = htmlspecialchars($this->object->getValue($key));
+
+        //
+        // Added 8/11/03 by Rob
+        // Add contact from global list.
+        //
+        // Grab contact information.
+        switch($key) {
+           case "name":
+              $incName = $value;
+              break;
+           case "fullname":
+              $incFullname = $value;
+              break;
+           case "department":
+              $incDepartment = $value;
+              break;
+           case "surname":
+              $incSurname = $value;
+              break;
+           case "givenname":
+              $incGivenname = $value;
+              break;
+        }                         
     }
 ?>
 <tr>
@@ -105,5 +128,22 @@
 </tr>
 <?php endif; ?>
 
+<?php if (!($this->object->isEditable())): 
+   //
+   // Added 8/11/03 by Rob
+   // Add contact from global list.
+   //
+   // Assemble email address and build href link.  Then,
+   // create the link.
+   $incEmail = $mailbox_host[0] . "@" . $mailbox_host[1];
+   $strLink = "addobject.php?incName=$incName&incFullname=$incFullname&incDepartment=$incDepartment&incSurname=$incSurname&incGivenname=$incGivenname&incEmail=$incEmail";
+?>
+<tr>
+    <td colspan="2" class="header" align="right"><span class="smallheader">
+       <?php echo Horde::link(Horde::applicationUrl($strLink . $url), _("Add"), 'menuitem') . _("Add") ?></a>
+    </span></td>
+</tr>
+
+<?php endif; ?>
 </table>
 </form>


More information about the turba mailing list