From 7dfb1fba5001299300736e6b5d95d9400575e3e7 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 18 Sep 2008 14:59:02 -0400
Subject: [PATCH] Set the right number of arguments for setcookie()

---
 program/steps/addressbook/show.inc |   95 ++++++++++++++++++++++-------------------------
 1 files changed, 45 insertions(+), 50 deletions(-)

diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index 960ea1c..96ee5bb 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -5,7 +5,7 @@
  | program/steps/addressbook/show.inc                                    |
  |                                                                       |
  | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -20,61 +20,56 @@
 */
 
 
-if ($_GET['_cid'] || $_POST['_cid'])
-  {
-  $cid = $_POST['_cid'] ? $_POST['_cid'] : $_GET['_cid'];
-  $DB->query("SELECT * FROM ".get_table_name('contacts')."
-              WHERE  contact_id=?
-              AND    user_id=?
-              AND    del<>1",
-              $cid,
-              $_SESSION['user_id']);
-  
-  $CONTACT_RECORD = $DB->fetch_assoc();
-  
-  if (is_array($CONTACT_RECORD))
-    $OUTPUT->add_script(sprintf("%s.set_env('cid', '%s');", $JS_OBJECT_NAME, $CONTACT_RECORD['contact_id']));
-  }
-
-
+// read contact record
+if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && ($record = $CONTACTS->get_record($cid, true))) {
+  $OUTPUT->set_env('cid', $record['ID']);
+}
 
 function rcmail_contact_details($attrib)
-  {
-  global $CONTACT_RECORD, $JS_OBJECT_NAME;
+{
+  global $CONTACTS, $OUTPUT;
 
-  if (!$CONTACT_RECORD)
-    return show_message('contactnotfound');
+  // check if we have a valid result
+  if (!(($result = $CONTACTS->get_result()) && ($record = $result->first()))) {
+    $OUTPUT->show_message('contactnotfound');
+    return false;
+  }
   
   // a specific part is requested
-  if ($attrib['part'])
-    return rep_specialchars_output($CONTACT_RECORD[$attrib['part']]);
-
-
-  // return the complete address record as table
-  $out = "<table>\n\n";
-
-  $a_show_cols = array('name', 'firstname', 'surname', 'email');
-  foreach ($a_show_cols as $col)
-    {
-    if ($col=='email' && $CONTACT_RECORD[$col])
-      $value = sprintf('<a href="#compose" onclick="%s.command(\'compose\', %d)" title="%s">%s</a>',
-                       $JS_OBJECT_NAME,
-                       $CONTACT_RECORD['contact_id'],
-                       rcube_label('composeto'),
-                       $CONTACT_RECORD[$col]);
-    else
-      $value = rep_specialchars_output($CONTACT_RECORD[$col]);
-    
-    $title = rcube_label($col);
-    $out .= sprintf("<tr><td class=\"title\">%s</td><td>%s</td></tr>\n", $title, $value);
-    }
-
-
-  $out .= "\n</table>";
-  
-  return $out;  
+  if ($attrib['part']) {
+    return Q($record[$attrib['part']]);
   }
 
+  // return the complete address record as table
+  $table = new html_table(array('cols' => 2));
 
-parse_template('showcontact');
+  $a_show_cols = array('name', 'firstname', 'surname', 'email');
+  $microformats = array('name' => 'fn', 'email' => 'email');
+
+  foreach ($a_show_cols as $col) {
+    if ($col == 'email' && !empty($record[$col])) {
+      $value = html::a(array(
+        'href' => 'mailto:' . $record[$col],
+        'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($record[$col])),
+        'title' => rcube_label('composeto'),
+        'class' => $microformats[$col],
+      ), Q($record[$col]));
+    }
+    else if (!empty($record[$col])) {
+      $value = html::span($microformats[$col], Q($record[$col]));
+    }
+    else
+      $value = '';
+    
+    $table->add('title', Q(rcube_label($col)));
+    $table->add(null, $value);
+  }
+  
+  return $table->show($attrib + array('class' => 'vcard'));
+}
+
+
+//$OUTPUT->framed = $_framed;
+$OUTPUT->add_handler('contactdetails', 'rcmail_contact_details');
+$OUTPUT->send('showcontact');
 ?>
\ No newline at end of file

--
Gitblit v1.9.1