home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / groupoffice-com-2.01 / modules / addressbook / addressbooks.php < prev    next >
PHP Script  |  2004-03-08  |  6KB  |  172 lines

  1. <?php
  2. /*
  3. Copyright Intermesh 2003
  4. Author: Merijn Schering <mschering@intermesh.nl>
  5. Version: 1.0 Release date: 08 July 2003
  6.  
  7. This program is free software; you can redistribute it and/or modify it
  8. under the terms of the GNU General Public License as published by the
  9. Free Software Foundation; either version 2 of the License, or (at your
  10. option) any later version.
  11. */
  12.  
  13. require("../../Group-Office.php");
  14. $GO_SECURITY->authenticate();
  15. $GO_MODULES->authenticate('addressbook');
  16. require($GO_LANGUAGE->get_language_file('contacts'));
  17.  
  18. $link_back = (isset($_REQUEST['link_back']) && $_REQUEST['link_back'] != '') ? $_REQUEST['link_back'] : $_SERVER['REQUEST_URI'];
  19. $task = isset($_REQUEST['task']) ? $_REQUEST['task'] : '';
  20. $return_to = (isset($_REQUEST['return_to']) && $_REQUEST['return_to'] != '') ? $_REQUEST['return_to'] : $_SERVER['HTTP_REFERER'];
  21.  
  22. //load contact management class
  23. require($GO_CONFIG->class_path."addressbook.class.inc");
  24. $ab = new addressbook();
  25.  
  26. switch($task)
  27. {
  28.     case 'delete_addressbook':
  29.         $delete_ab = $ab->get_addressbook($_POST['delete_addressbook_id']);
  30.  
  31.         if($GO_SECURITY->has_permission($GO_SECURITY->user_id, $delete_ab['acl_write']))
  32.         {
  33.             $default_id = $ab->get_default_addressbook($GO_SECURITY->user_id);
  34.             if ($ab->delete_addressbook($_POST['delete_addressbook_id']))
  35.             {
  36.                 $GO_SECURITY->delete_acl($delete_ab['acl_write']);
  37.                 $GO_SECURITY->delete_acl($delete_ab['acl_read']);
  38.             }
  39.  
  40.             $ab->get_subscribed_addressbooks($GO_SECURITY->user_id);
  41.             if ($ab->next_record())
  42.             {
  43.                 $next_id = $ab->f('id');
  44.                 if ($_POST['delete_addressbook_id'] == $default_id)
  45.                 {
  46.                     $ab->set_default_addressbook($GO_SECURITY->user_id, $next_id);
  47.                 }
  48.                 if ($_POST['addressbook_id'] = $_POST['delete_addressbook_id'])
  49.                 {
  50.                     $_POST['addressbook_id'] = $next_id;
  51.                 }
  52.             }else
  53.             {
  54.                 unset($addressbook_id);
  55.             }
  56.  
  57.         }
  58.         $post_action = 'addressbooks';
  59.     break;
  60.  
  61.     case 'subscribe':
  62.         $ab->unsubscribe_all($GO_SECURITY->user_id);
  63.         if(isset($_POST['subscribed']))
  64.         {
  65.             for ($i=0;$i<sizeof($_POST['subscribed']);$i++)
  66.             {
  67.                 $ab->subscribe($GO_SECURITY->user_id, $_POST['subscribed'][$i]);
  68.             }
  69.         }
  70.  
  71.         if (!$ab->is_subscribed($GO_SECURITY->user_id, $_POST['default_addressbook_id']))
  72.         {
  73.             $ab->subscribe($GO_SECURITY->user_id, $_POST['default_addressbook_id']);
  74.         }
  75.         $ab->set_default_addressbook($GO_SECURITY->user_id, $_POST['default_addressbook_id']);
  76.         if ($_POST['close'] == 'true')
  77.         {
  78.             header('Location: '.$return_to);
  79.             exit();
  80.         }
  81.     break;
  82. }
  83.  
  84. require($GO_THEME->theme_path."header.inc");
  85. ?>
  86. <form name="contacts" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  87. <input type="hidden" name="delete_addressbook_id" />
  88. <input type="hidden" name="task" />
  89. <input type="hidden" name="close" value="false" />
  90. <input type="hidden" name="return_to" value="<?php echo $return_to; ?>" />
  91. <input type="hidden" name="link_back" value="<?php echo $link_back; ?>" />
  92.  
  93. <?php
  94. $tabtable = new tabtable('addressbooks', $ab_addressbooks, '600', '400', '100');
  95. $tabtable->print_head();
  96. ?>
  97.  
  98. <table border="0" cellpadding="10">
  99. <tr>
  100.     <td>
  101.     <table border="0" cellpadding="3" cellspacing="0">
  102.     <?php
  103.     if (isset($feedback))
  104.     {
  105.         echo '<tr><td colspan="6" height="25">'.$feedback.'</td></tr>';
  106.     }
  107.  
  108.     $default_ab = $ab->get_default_addressbook($GO_SECURITY->user_id);
  109.     echo '<tr height="30"><td colspan="6"><a href="addressbook.php?return_to='.urlencode($link_back).'" class="normal">'.$ab_new_ab.'</a></td></tr>';
  110.     echo '<tr><td><h3>'.$ab_default.'</h3></td><td><h3>'.$strName.'</h3></td><td><h3>'.$ab_owner.'</h3></td><td><h3>'.$ab_subscribed.'</h3></td><td> </td><td> </td></tr>';
  111.     $ab_count = $ab->get_user_addressbooks($GO_SECURITY->user_id);
  112.     $ab1 = new addressbook();
  113.  
  114.     if ($ab_count > 0)
  115.     {
  116.         while ($ab->next_record())
  117.         {
  118.             if($ab1->is_subscribed($GO_SECURITY->user_id, $ab->f("id")))
  119.             {
  120.                 $checked = 'checked';
  121.             }else
  122.             {
  123.                 $checked = '';
  124.             }
  125.  
  126.             $check = ($ab->f('id') == $default_ab) ? 'checked' : '';
  127.  
  128.             echo '<tr><td><input type="radio" name="default_addressbook_id" value="'.$ab->f("id").'" '.$check.' /></td>';
  129.             echo '<td nowrap><a href="index.php?post_action=browse&addressbook_id='.$ab->f("id").'" class="normal">'.$ab->f("name").'</a> </td>';
  130.             echo '<td nowrap>'.show_profile($ab->f("user_id")).' </td>';
  131.             echo '<td align="center"> <input type="checkbox" name="subscribed[]" value="'.$ab->f("id").'" '.$checked.' /></td>';
  132.             echo '<td> <a href="addressbook.php?addressbook_id='.$ab->f("id").'&return_to='.urlencode($link_back).'" title="'.$strEdit.' \''.$ab->f("name").'\'"><img src="'.$GO_THEME->images['edit'].'" border="0" /></a></td>';
  133.             echo "<td> <a href='javascript:delete_addressbook(\"".$ab->f("id")."\",\"".rawurlencode($strDeletePrefix."'".$ab->f("name")."'".$strDeleteSuffix)."\")' title=\"".$strDeleteItem." '".$ab->f("name")."'\"><img src=\"".$GO_THEME->images['delete']."\" border=\"0\"></a></td></tr>\n";
  134.         }
  135.     }
  136.     echo '</table><br />';
  137.     $button = new button($cmdOk, "javascript:_save('subscribe', 'true')");
  138.     echo '  ';
  139.     $button = new button($cmdApply, "javascript:_save('subscribe', 'false')");
  140.     echo '  ';
  141.     $button = new button($cmdClose, "javascript:document.location='".$return_to."'");
  142.     ?>
  143.     </td>
  144. </tr>
  145. </table>
  146. <?php
  147. $tabtable->print_foot();
  148. ?>
  149. </form>
  150. <script type="text/javascript" language="javascript">
  151. function delete_addressbook(addressbook_id, message)
  152. {
  153.     if (confirm(unescape(message)))
  154.     {
  155.         document.forms[0].delete_addressbook_id.value = addressbook_id;
  156.         document.forms[0].task.value='delete_addressbook';
  157.         document.forms[0].submit();
  158.     }
  159. }
  160.  
  161. function _save(task, close)
  162. {
  163.     document.forms[0].task.value = task;
  164.     document.forms[0].close.value = close;
  165.     document.forms[0].submit();
  166. }
  167.  
  168. </script>
  169.  
  170. <?php
  171. require($GO_THEME->theme_path."footer.inc");
  172. ?>