webcalendar

Hex Artifact Content
Login

Artifact a18f3e6354ddf9c7b2af694791d698367eb8aece5bd9d49cc5105fb12c33e46f:


0000: 3c 3f 70 68 70 0a 2f 2a 20 24 49 64 3a 20 65 64  <?php./* $Id: ed
0010: 69 74 5f 72 65 6d 6f 74 65 73 5f 68 61 6e 64 6c  it_remotes_handl
0020: 65 72 2e 70 68 70 2c 76 20 31 2e 31 36 2e 32 2e  er.php,v 1.16.2.
0030: 36 20 32 30 31 32 2f 30 32 2f 32 38 20 30 32 3a  6 2012/02/28 02:
0040: 30 37 3a 34 35 20 63 6b 6e 75 64 73 65 6e 20 45  07:45 cknudsen E
0050: 78 70 20 24 20 2a 2f 0a 69 6e 63 6c 75 64 65 5f  xp $ */.include_
0060: 6f 6e 63 65 20 27 69 6e 63 6c 75 64 65 73 2f 69  once 'includes/i
0070: 6e 69 74 2e 70 68 70 27 3b 0a 69 6e 63 6c 75 64  nit.php';.includ
0080: 65 5f 6f 6e 63 65 20 27 69 6e 63 6c 75 64 65 73  e_once 'includes
0090: 2f 78 63 61 6c 2e 70 68 70 27 3b 0a 72 65 71 75  /xcal.php';.requ
00a0: 69 72 65 5f 76 61 6c 69 64 65 5f 72 65 66 65 72  ire_valide_refer
00b0: 72 69 6e 67 5f 75 72 6c 20 28 29 3b 0a 0a 2f 2f  ring_url ();..//
00c0: 20 4f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20   Only available 
00d0: 69 6e 20 70 68 70 20 35 2e 78 20 55 73 65 64 20  in php 5.x Used 
00e0: 66 6f 72 20 68 43 61 6c 65 6e 64 61 72 20 70 61  for hCalendar pa
00f0: 72 73 69 6e 67 2e 0a 69 66 20 28 20 66 75 6e 63  rsing..if ( func
0100: 74 69 6f 6e 5f 65 78 69 73 74 73 20 28 20 27 73  tion_exists ( 's
0110: 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 74  implexml_load_st
0120: 72 69 6e 67 27 20 29 20 29 0a 20 20 72 65 71 75  ring' ) ).  requ
0130: 69 72 65 5f 6f 6e 63 65 20 27 69 6e 63 6c 75 64  ire_once 'includ
0140: 65 73 2f 63 6c 61 73 73 65 73 2f 68 4b 69 74 2f  es/classes/hKit/
0150: 68 6b 69 74 2e 63 6c 61 73 73 2e 70 68 70 27 3b  hkit.class.php';
0160: 0a 0a 24 65 72 72 6f 72 20 3d 20 27 27 3b 0a 24  ..$error = '';.$
0170: 6c 61 79 65 72 5f 66 6f 75 6e 64 20 3d 20 66 61  layer_found = fa
0180: 6c 73 65 3b 0a 0a 24 73 61 76 65 20 3d 20 67 65  lse;..$save = ge
0190: 74 50 6f 73 74 56 61 6c 75 65 20 28 20 27 53 61  tPostValue ( 'Sa
01a0: 76 65 27 20 29 3b 0a 24 61 64 64 20 3d 20 67 65  ve' );.$add = ge
01b0: 74 50 6f 73 74 56 61 6c 75 65 20 28 20 27 41 64  tPostValue ( 'Ad
01c0: 64 27 20 29 3b 0a 24 64 65 6c 65 74 65 20 3d 20  d' );.$delete = 
01d0: 67 65 74 50 6f 73 74 56 61 6c 75 65 20 28 20 27  getPostValue ( '
01e0: 64 65 6c 65 74 65 27 20 29 3b 0a 24 72 65 6c 6f  delete' );.$relo
01f0: 61 64 20 3d 20 67 65 74 50 6f 73 74 56 61 6c 75  ad = getPostValu
0200: 65 20 28 20 27 72 65 6c 6f 61 64 27 20 29 3b 0a  e ( 'reload' );.
0210: 24 6e 69 64 20 3d 20 67 65 74 50 6f 73 74 56 61  $nid = getPostVa
0220: 6c 75 65 20 28 20 27 6e 69 64 27 20 29 3b 0a 24  lue ( 'nid' );.$
0230: 6e 66 69 72 73 74 6e 61 6d 65 20 3d 20 67 65 74  nfirstname = get
0240: 50 6f 73 74 56 61 6c 75 65 20 28 20 27 6e 66 69  PostValue ( 'nfi
0250: 72 73 74 6e 61 6d 65 27 20 29 3b 0a 24 6e 6c 61  rstname' );.$nla
0260: 73 74 6e 61 6d 65 20 3d 20 67 65 74 50 6f 73 74  stname = getPost
0270: 56 61 6c 75 65 20 28 20 27 6e 6c 61 73 74 6e 61  Value ( 'nlastna
0280: 6d 65 27 20 29 3b 0a 24 6e 61 64 6d 69 6e 20 3d  me' );.$nadmin =
0290: 20 67 65 74 50 6f 73 74 56 61 6c 75 65 20 28 20   getPostValue ( 
02a0: 27 6e 61 64 6d 69 6e 27 20 29 3b 0a 24 6e 75 72  'nadmin' );.$nur
02b0: 6c 20 3d 20 67 65 74 50 6f 73 74 56 61 6c 75 65  l = getPostValue
02c0: 20 28 20 27 6e 75 72 6c 27 20 29 3b 0a 24 72 65   ( 'nurl' );.$re
02d0: 6c 6f 61 64 20 3d 20 67 65 74 50 6f 73 74 56 61  load = getPostVa
02e0: 6c 75 65 20 28 20 27 72 65 6c 6f 61 64 27 20 29  lue ( 'reload' )
02f0: 3b 0a 24 6e 6c 61 79 65 72 20 3d 20 67 65 74 50  ;.$nlayer = getP
0300: 6f 73 74 56 61 6c 75 65 20 28 20 27 6e 6c 61 79  ostValue ( 'nlay
0310: 65 72 27 20 29 3b 0a 24 6e 6c 61 79 65 72 63 6f  er' );.$nlayerco
0320: 6c 6f 72 20 3d 20 67 65 74 50 6f 73 74 56 61 6c  lor = getPostVal
0330: 75 65 20 28 20 27 6c 61 79 65 72 63 6f 6c 6f 72  ue ( 'layercolor
0340: 27 20 29 3b 0a 0a 69 66 20 28 20 21 20 65 6d 70  ' );..if ( ! emp
0350: 74 79 20 28 20 24 64 65 6c 65 74 65 20 29 20 29  ty ( $delete ) )
0360: 20 7b 0a 20 20 2f 2f 20 44 65 6c 65 74 65 20 65   {.  // Delete e
0370: 76 65 6e 74 73 20 66 72 6f 6d 20 74 68 69 73 20  vents from this 
0380: 72 65 6d 6f 74 65 20 63 61 6c 65 6e 64 61 72 2e  remote calendar.
0390: 0a 20 20 64 65 6c 65 74 65 5f 65 76 65 6e 74 73  .  delete_events
03a0: 20 28 20 24 6e 69 64 20 29 3b 0a 0a 20 20 2f 2f   ( $nid );..  //
03b0: 20 44 65 6c 65 74 65 20 61 6e 79 20 6c 61 79 65   Delete any laye
03c0: 72 73 20 6f 74 68 65 72 20 75 73 65 72 73 20 6d  rs other users m
03d0: 61 79 20 68 61 76 65 20 74 68 61 74 20 70 6f 69  ay have that poi
03e0: 6e 74 20 74 6f 20 74 68 69 73 20 75 73 65 72 2e  nt to this user.
03f0: 0a 20 20 64 62 69 5f 65 78 65 63 75 74 65 20 28  .  dbi_execute (
0400: 20 27 44 45 4c 45 54 45 20 46 52 4f 4d 20 77 65   'DELETE FROM we
0410: 62 63 61 6c 5f 75 73 65 72 5f 6c 61 79 65 72 73  bcal_user_layers
0420: 20 57 48 45 52 45 20 63 61 6c 5f 6c 61 79 65 72   WHERE cal_layer
0430: 75 73 65 72 20 3d 20 3f 27 2c 0a 20 20 20 20 61  user = ?',.    a
0440: 72 72 61 79 20 28 20 24 6e 69 64 20 29 20 29 3b  rray ( $nid ) );
0450: 0a 0a 20 20 2f 2f 20 44 65 6c 65 74 65 20 61 6e  ..  // Delete an
0460: 79 20 55 41 43 20 63 61 6c 65 6e 64 61 72 20 61  y UAC calendar a
0470: 63 63 65 73 73 20 65 6e 74 72 69 65 73 20 66 6f  ccess entries fo
0480: 72 20 74 68 69 73 20 20 75 73 65 72 2e 0a 20 20  r this  user..  
0490: 64 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 44  dbi_execute ( 'D
04a0: 45 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61  ELETE FROM webca
04b0: 6c 5f 61 63 63 65 73 73 5f 75 73 65 72 20 57 48  l_access_user WH
04c0: 45 52 45 20 63 61 6c 5f 6c 6f 67 69 6e 20 3d 20  ERE cal_login = 
04d0: 3f 0a 20 20 20 20 4f 52 20 63 61 6c 5f 6f 74 68  ?.    OR cal_oth
04e0: 65 72 5f 75 73 65 72 20 3d 20 3f 27 2c 20 61 72  er_user = ?', ar
04f0: 72 61 79 20 28 20 24 6e 69 64 2c 20 24 6e 69 64  ray ( $nid, $nid
0500: 20 29 20 29 3b 0a 0a 20 20 2f 2f 20 44 65 6c 65   ) );..  // Dele
0510: 74 65 20 61 6e 79 20 55 41 43 20 66 75 6e 63 74  te any UAC funct
0520: 69 6f 6e 20 61 63 63 65 73 73 20 65 6e 74 72 69  ion access entri
0530: 65 73 20 66 6f 72 20 74 68 69 73 20 20 75 73 65  es for this  use
0540: 72 2e 0a 20 20 64 62 69 5f 65 78 65 63 75 74 65  r..  dbi_execute
0550: 20 28 20 27 44 45 4c 45 54 45 20 46 52 4f 4d 20   ( 'DELETE FROM 
0560: 77 65 62 63 61 6c 5f 61 63 63 65 73 73 5f 66 75  webcal_access_fu
0570: 6e 63 74 69 6f 6e 20 57 48 45 52 45 20 63 61 6c  nction WHERE cal
0580: 5f 6c 6f 67 69 6e 20 3d 20 3f 27 2c 0a 20 20 20  _login = ?',.   
0590: 20 61 72 72 61 79 20 28 20 24 6e 69 64 20 29 20   array ( $nid ) 
05a0: 29 3b 0a 0a 20 20 2f 2f 20 44 65 6c 65 74 65 20  );..  // Delete 
05b0: 75 73 65 72 2e 0a 20 20 69 66 20 28 20 21 20 64  user..  if ( ! d
05c0: 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 44 45  bi_execute ( 'DE
05d0: 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61 6c  LETE FROM webcal
05e0: 5f 6e 6f 6e 75 73 65 72 5f 63 61 6c 73 20 57 48  _nonuser_cals WH
05f0: 45 52 45 20 63 61 6c 5f 6c 6f 67 69 6e 20 3d 20  ERE cal_login = 
0600: 3f 27 2c 0a 20 20 20 20 20 20 61 72 72 61 79 20  ?',.      array 
0610: 28 20 24 6e 69 64 20 29 20 29 20 29 0a 20 20 20  ( $nid ) ) ).   
0620: 20 24 65 72 72 6f 72 20 3d 20 64 62 5f 65 72 72   $error = db_err
0630: 6f 72 20 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a  or ();.} else {.
0640: 20 20 69 66 20 28 20 21 20 65 6d 70 74 79 20 28    if ( ! empty (
0650: 20 24 6e 69 64 20 29 20 26 26 20 21 20 65 6d 70   $nid ) && ! emp
0660: 74 79 20 28 20 24 73 61 76 65 20 29 20 29 20 7b  ty ( $save ) ) {
0670: 0a 20 20 20 20 2f 2f 20 55 70 64 61 74 69 6e 67  .    // Updating
0680: 0a 20 20 20 20 24 71 75 65 72 79 5f 70 61 72 61  .    $query_para
0690: 6d 73 20 3d 20 61 72 72 61 79 20 28 29 3b 0a 20  ms = array ();. 
06a0: 20 20 20 24 73 71 6c 20 3d 20 27 55 50 44 41 54     $sql = 'UPDAT
06b0: 45 20 77 65 62 63 61 6c 5f 6e 6f 6e 75 73 65 72  E webcal_nonuser
06c0: 5f 63 61 6c 73 20 53 45 54 20 27 3b 0a 20 20 20  _cals SET ';.   
06d0: 20 69 66 20 28 20 24 6e 6c 61 73 74 6e 61 6d 65   if ( $nlastname
06e0: 20 29 20 7b 0a 20 20 20 20 20 20 24 73 71 6c 20   ) {.      $sql 
06f0: 2e 3d 20 27 20 63 61 6c 5f 6c 61 73 74 6e 61 6d  .= ' cal_lastnam
0700: 65 20 3d 20 3f 2c 20 27 3b 0a 20 20 20 20 20 20  e = ?, ';.      
0710: 24 71 75 65 72 79 5f 70 61 72 61 6d 73 5b 5d 20  $query_params[] 
0720: 3d 20 24 6e 6c 61 73 74 6e 61 6d 65 3b 0a 20 20  = $nlastname;.  
0730: 20 20 7d 0a 20 20 20 20 69 66 20 28 20 24 6e 66    }.    if ( $nf
0740: 69 72 73 74 6e 61 6d 65 20 29 20 7b 0a 20 20 20  irstname ) {.   
0750: 20 20 20 24 73 71 6c 20 2e 3d 20 27 20 63 61 6c     $sql .= ' cal
0760: 5f 66 69 72 73 74 6e 61 6d 65 20 3d 20 3f 2c 20  _firstname = ?, 
0770: 27 3b 0a 20 20 20 20 20 20 24 71 75 65 72 79 5f  ';.      $query_
0780: 70 61 72 61 6d 73 5b 5d 20 3d 20 24 6e 66 69 72  params[] = $nfir
0790: 73 74 6e 61 6d 65 3b 0a 20 20 20 20 7d 0a 20 20  stname;.    }.  
07a0: 20 20 24 73 71 6c 20 2e 3d 20 27 20 63 61 6c 5f    $sql .= ' cal_
07b0: 75 72 6c 20 3d 20 3f 2c 20 63 61 6c 5f 69 73 5f  url = ?, cal_is_
07c0: 70 75 62 6c 69 63 20 3d 20 3f 2c 20 63 61 6c 5f  public = ?, cal_
07d0: 61 64 6d 69 6e 20 3d 20 3f 0a 20 20 20 20 20 20  admin = ?.      
07e0: 57 48 45 52 45 20 63 61 6c 5f 6c 6f 67 69 6e 20  WHERE cal_login 
07f0: 3d 20 3f 27 3b 0a 20 20 20 20 24 71 75 65 72 79  = ?';.    $query
0800: 5f 70 61 72 61 6d 73 5b 5d 20 3d 20 24 6e 75 72  _params[] = $nur
0810: 6c 3b 0a 20 20 20 20 24 71 75 65 72 79 5f 70 61  l;.    $query_pa
0820: 72 61 6d 73 5b 5d 20 3d 20 27 4e 27 3b 0a 20 20  rams[] = 'N';.  
0830: 20 20 24 71 75 65 72 79 5f 70 61 72 61 6d 73 5b    $query_params[
0840: 5d 20 3d 20 24 6e 61 64 6d 69 6e 3b 0a 20 20 20  ] = $nadmin;.   
0850: 20 24 71 75 65 72 79 5f 70 61 72 61 6d 73 5b 5d   $query_params[]
0860: 20 3d 20 24 6e 69 64 3b 0a 0a 20 20 20 20 69 66   = $nid;..    if
0870: 20 28 20 21 20 64 62 69 5f 65 78 65 63 75 74 65   ( ! dbi_execute
0880: 20 28 20 24 73 71 6c 2c 20 24 71 75 65 72 79 5f   ( $sql, $query_
0890: 70 61 72 61 6d 73 20 29 20 29 0a 20 20 20 20 20  params ) ).     
08a0: 20 24 65 72 72 6f 72 20 3d 20 64 62 5f 65 72 72   $error = db_err
08b0: 6f 72 20 28 29 3b 0a 20 20 7d 20 65 6c 73 65 0a  or ();.  } else.
08c0: 20 20 69 66 20 28 20 21 20 65 6d 70 74 79 20 28    if ( ! empty (
08d0: 20 24 61 64 64 20 29 20 29 20 7b 0a 20 20 20 20   $add ) ) {.    
08e0: 2f 2f 20 41 64 64 69 6e 67 0a 20 20 20 20 69 66  // Adding.    if
08f0: 20 28 20 70 72 65 67 5f 6d 61 74 63 68 20 28 20   ( preg_match ( 
0900: 27 2f 5e 5b 5c 77 5d 2b 24 2f 27 2c 20 24 6e 69  '/^[\w]+$/', $ni
0910: 64 20 29 20 29 20 7b 0a 20 20 20 20 20 20 24 6e  d ) ) {.      $n
0920: 69 64 20 3d 20 24 4e 4f 4e 55 53 45 52 5f 50 52  id = $NONUSER_PR
0930: 45 46 49 58 20 2e 20 24 6e 69 64 3b 0a 20 20 20  EFIX . $nid;.   
0940: 20 20 20 69 66 20 28 20 21 20 64 62 69 5f 65 78     if ( ! dbi_ex
0950: 65 63 75 74 65 20 28 20 27 49 4e 53 45 52 54 20  ecute ( 'INSERT 
0960: 49 4e 54 4f 20 77 65 62 63 61 6c 5f 6e 6f 6e 75  INTO webcal_nonu
0970: 73 65 72 5f 63 61 6c 73 20 28 20 63 61 6c 5f 6c  ser_cals ( cal_l
0980: 6f 67 69 6e 2c 0a 20 20 20 20 20 20 20 20 63 61  ogin,.        ca
0990: 6c 5f 66 69 72 73 74 6e 61 6d 65 2c 20 63 61 6c  l_firstname, cal
09a0: 5f 6c 61 73 74 6e 61 6d 65 2c 20 63 61 6c 5f 61  _lastname, cal_a
09b0: 64 6d 69 6e 2c 20 63 61 6c 5f 69 73 5f 70 75 62  dmin, cal_is_pub
09c0: 6c 69 63 2c 20 63 61 6c 5f 75 72 6c 20 29 0a 20  lic, cal_url ). 
09d0: 20 20 20 20 20 20 20 56 41 4c 55 45 53 20 28 20         VALUES ( 
09e0: 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f  ?, ?, ?, ?, ?, ?
09f0: 20 29 27 2c 0a 20 20 20 20 20 20 20 20 20 20 61   )',.          a
0a00: 72 72 61 79 20 28 20 24 6e 69 64 2c 20 24 6e 66  rray ( $nid, $nf
0a10: 69 72 73 74 6e 61 6d 65 2c 20 24 6e 6c 61 73 74  irstname, $nlast
0a20: 6e 61 6d 65 2c 20 24 6e 61 64 6d 69 6e 2c 20 27  name, $nadmin, '
0a30: 4e 27 2c 20 24 6e 75 72 6c 20 29 20 29 20 29 0a  N', $nurl ) ) ).
0a40: 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d          $error =
0a50: 20 64 62 5f 65 72 72 6f 72 20 28 29 3b 0a 20 20   db_error ();.  
0a60: 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 20 20 24    } else.      $
0a70: 65 72 72 6f 72 20 3d 20 74 72 61 6e 73 6c 61 74  error = translat
0a80: 65 20 28 20 27 43 61 6c 65 6e 64 61 72 20 49 44  e ( 'Calendar ID
0a90: 27 20 29 20 2e 20 27 20 27 0a 20 20 20 20 20 20  ' ) . ' '.      
0aa0: 20 2e 20 74 72 61 6e 73 6c 61 74 65 20 28 20 27   . translate ( '
0ab0: 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 20  word characters 
0ac0: 6f 6e 6c 79 27 20 29 20 2e 20 27 2e 27 3b 0a 0a  only' ) . '.';..
0ad0: 20 20 20 20 2f 2f 20 41 64 64 20 6e 65 77 20 6c      // Add new l
0ae0: 61 79 65 72 20 69 66 20 72 65 71 75 65 73 74 65  ayer if requeste
0af0: 64 2e 0a 20 20 20 20 69 66 20 28 20 21 20 65 6d  d..    if ( ! em
0b00: 70 74 79 20 28 20 24 6e 6c 61 79 65 72 20 29 20  pty ( $nlayer ) 
0b10: 26 26 20 24 6e 6c 61 79 65 72 20 3d 3d 20 27 59  && $nlayer == 'Y
0b20: 27 20 29 20 7b 0a 20 20 20 20 20 20 24 72 65 73  ' ) {.      $res
0b30: 20 3d 20 64 62 69 5f 65 78 65 63 75 74 65 20 28   = dbi_execute (
0b40: 20 27 53 45 4c 45 43 54 20 4d 41 58 28 20 63 61   'SELECT MAX( ca
0b50: 6c 5f 6c 61 79 65 72 69 64 20 29 20 46 52 4f 4d  l_layerid ) FROM
0b60: 20 77 65 62 63 61 6c 5f 75 73 65 72 5f 6c 61 79   webcal_user_lay
0b70: 65 72 73 27 20 29 3b 0a 20 20 20 20 20 20 24 6c  ers' );.      $l
0b80: 61 79 65 72 69 64 20 3d 20 31 3b 0a 20 20 20 20  ayerid = 1;.    
0b90: 20 20 69 66 20 28 20 24 72 65 73 20 29 20 7b 0a    if ( $res ) {.
0ba0: 20 20 20 20 20 20 20 20 24 72 6f 77 20 3d 20 64          $row = d
0bb0: 62 69 5f 66 65 74 63 68 5f 72 6f 77 20 28 20 24  bi_fetch_row ( $
0bc0: 72 65 73 20 29 3b 0a 20 20 20 20 20 20 20 20 24  res );.        $
0bd0: 6c 61 79 65 72 69 64 20 2b 3d 20 24 72 6f 77 5b  layerid += $row[
0be0: 30 5d 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20  0];.      }..   
0bf0: 20 20 20 64 62 69 5f 65 78 65 63 75 74 65 20 28     dbi_execute (
0c00: 20 27 49 4e 53 45 52 54 20 49 4e 54 4f 20 77 65   'INSERT INTO we
0c10: 62 63 61 6c 5f 75 73 65 72 5f 6c 61 79 65 72 73  bcal_user_layers
0c20: 20 28 20 63 61 6c 5f 6c 61 79 65 72 69 64 2c 20   ( cal_layerid, 
0c30: 63 61 6c 5f 6c 6f 67 69 6e 2c 0a 20 20 20 20 20  cal_login,.     
0c40: 20 20 20 63 61 6c 5f 6c 61 79 65 72 75 73 65 72     cal_layeruser
0c50: 2c 20 63 61 6c 5f 63 6f 6c 6f 72 2c 20 63 61 6c  , cal_color, cal
0c60: 5f 64 75 70 73 20 29 20 56 41 4c 55 45 53 20 28  _dups ) VALUES (
0c70: 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 20 29   ?, ?, ?, ?, ? )
0c80: 27 2c 0a 20 20 20 20 20 20 20 20 61 72 72 61 79  ',.        array
0c90: 20 28 20 24 6c 61 79 65 72 69 64 2c 20 24 6c 6f   ( $layerid, $lo
0ca0: 67 69 6e 2c 20 24 6e 69 64 2c 20 24 6c 61 79 65  gin, $nid, $laye
0cb0: 72 63 6f 6c 6f 72 2c 20 27 4e 27 20 29 20 29 3b  rcolor, 'N' ) );
0cc0: 0a 20 20 20 20 20 20 24 6c 61 79 65 72 5f 66 6f  .      $layer_fo
0cd0: 75 6e 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20  und = true;.    
0ce0: 7d 0a 20 20 7d 0a 20 20 2f 2f 20 41 64 64 20 65  }.  }.  // Add e
0cf0: 6e 74 72 79 20 69 6e 20 55 41 43 20 61 63 63 65  ntry in UAC acce
0d00: 73 73 20 74 61 62 6c 65 20 66 6f 72 20 6e 65 77  ss table for new
0d10: 20 61 64 6d 69 6e 20 61 6e 64 20 72 65 6d 6f 76   admin and remov
0d20: 65 20 66 6f 72 20 6f 6c 64 20 61 64 6d 69 6e 2e  e for old admin.
0d30: 0a 20 20 2f 2f 20 46 69 72 73 74 20 64 65 6c 65  .  // First dele
0d40: 74 65 20 61 6e 79 20 72 65 63 6f 72 64 20 66 6f  te any record fo
0d50: 72 20 74 68 69 73 20 75 73 65 72 2f 6e 75 63 20  r this user/nuc 
0d60: 63 6f 6d 62 6f 2e 0a 20 20 64 62 69 5f 65 78 65  combo..  dbi_exe
0d70: 63 75 74 65 20 28 20 27 44 45 4c 45 54 45 20 46  cute ( 'DELETE F
0d80: 52 4f 4d 20 77 65 62 63 61 6c 5f 61 63 63 65 73  ROM webcal_acces
0d90: 73 5f 75 73 65 72 20 57 48 45 52 45 20 63 61 6c  s_user WHERE cal
0da0: 5f 6c 6f 67 69 6e 20 3d 20 3f 0a 20 20 20 20 41  _login = ?.    A
0db0: 4e 44 20 63 61 6c 5f 6f 74 68 65 72 5f 75 73 65  ND cal_other_use
0dc0: 72 20 3d 20 3f 27 2c 20 61 72 72 61 79 20 28 20  r = ?', array ( 
0dd0: 24 6e 61 64 6d 69 6e 2c 20 24 6e 69 64 20 29 20  $nadmin, $nid ) 
0de0: 29 3b 0a 20 20 69 66 20 28 20 21 20 64 62 69 5f  );.  if ( ! dbi_
0df0: 65 78 65 63 75 74 65 20 28 20 27 49 4e 53 45 52  execute ( 'INSER
0e00: 54 20 49 4e 54 4f 20 77 65 62 63 61 6c 5f 61 63  T INTO webcal_ac
0e10: 63 65 73 73 5f 75 73 65 72 20 28 20 63 61 6c 5f  cess_user ( cal_
0e20: 6c 6f 67 69 6e 2c 0a 20 20 20 20 63 61 6c 5f 6f  login,.    cal_o
0e30: 74 68 65 72 5f 75 73 65 72 2c 20 63 61 6c 5f 63  ther_user, cal_c
0e40: 61 6e 5f 76 69 65 77 2c 20 63 61 6c 5f 63 61 6e  an_view, cal_can
0e50: 5f 65 64 69 74 2c 20 63 61 6c 5f 63 61 6e 5f 61  _edit, cal_can_a
0e60: 70 70 72 6f 76 65 2c 20 63 61 6c 5f 63 61 6e 5f  pprove, cal_can_
0e70: 69 6e 76 69 74 65 2c 0a 20 20 20 20 63 61 6c 5f  invite,.    cal_
0e80: 63 61 6e 5f 65 6d 61 69 6c 2c 20 63 61 6c 5f 73  can_email, cal_s
0e90: 65 65 5f 74 69 6d 65 5f 6f 6e 6c 79 20 29 20 56  ee_time_only ) V
0ea0: 41 4c 55 45 53 20 28 20 3f 2c 20 3f 2c 20 3f 2c  ALUES ( ?, ?, ?,
0eb0: 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 20 29   ?, ?, ?, ?, ? )
0ec0: 27 2c 0a 20 20 20 20 20 20 61 72 72 61 79 20 28  ',.      array (
0ed0: 20 24 6e 61 64 6d 69 6e 2c 20 24 6e 69 64 2c 20   $nadmin, $nid, 
0ee0: 35 31 31 2c 20 35 31 31 2c 20 35 31 31 2c 20 27  511, 511, 511, '
0ef0: 59 27 2c 20 27 59 27 2c 20 27 4e 27 20 29 20 29  Y', 'Y', 'N' ) )
0f00: 20 29 0a 20 20 20 20 64 69 65 5f 6d 69 73 65 72   ).    die_miser
0f10: 61 62 6c 65 5f 64 65 61 74 68 20 28 20 74 72 61  able_death ( tra
0f20: 6e 73 6c 61 74 65 20 28 20 27 44 61 74 61 62 61  nslate ( 'Databa
0f30: 73 65 20 65 72 72 6f 72 27 20 29 20 2e 20 27 3a  se error' ) . ':
0f40: 20 27 0a 20 20 20 20 20 20 20 2e 20 64 62 69 5f   '.       . dbi_
0f50: 65 72 72 6f 72 20 28 29 20 29 3b 0a 7d 0a 0a 69  error () );.}..i
0f60: 66 20 28 20 21 20 65 6d 70 74 79 20 28 20 24 72  f ( ! empty ( $r
0f70: 65 6c 6f 61 64 20 29 20 29 20 7b 0a 20 20 24 64  eload ) ) {.  $d
0f80: 61 74 61 20 3d 20 61 72 72 61 79 20 28 29 3b 0a  ata = array ();.
0f90: 20 20 24 63 61 6c 55 73 65 72 20 3d 20 24 6e 69    $calUser = $ni
0fa0: 64 3b 0a 20 20 24 6f 76 65 72 77 72 69 74 65 20  d;.  $overwrite 
0fb0: 3d 20 74 72 75 65 3b 0a 20 20 24 74 79 70 65 20  = true;.  $type 
0fc0: 3d 20 27 72 65 6d 6f 74 65 69 63 73 27 3b 0a 20  = 'remoteics';. 
0fd0: 20 2f 2f 20 57 65 20 77 69 6c 6c 20 63 68 65 63   // We will chec
0fe0: 6b 20 69 63 73 20 66 69 72 73 74 2e 0a 20 20 24  k ics first..  $
0ff0: 64 61 74 61 20 3d 20 70 61 72 73 65 5f 69 63 61  data = parse_ica
1000: 6c 20 28 20 24 6e 75 72 6c 2c 20 24 74 79 70 65  l ( $nurl, $type
1010: 20 29 3b 0a 20 20 2f 2f 20 54 4f 44 4f 20 69 74   );.  // TODO it
1020: 20 6d 61 79 20 62 65 20 61 20 76 63 73 20 66 69   may be a vcs fi
1030: 6c 65 2e 0a 20 20 2f 2f 20 69 66 20 28 20 63 6f  le..  // if ( co
1040: 75 6e 74 20 28 20 24 64 61 74 61 20 29 20 3d 3d  unt ( $data ) ==
1050: 20 30 20 29 20 7b 0a 20 20 2f 2f 20 24 64 61 74   0 ) {.  // $dat
1060: 61 20 3d 20 70 61 72 73 65 5f 76 63 61 6c 20 28  a = parse_vcal (
1070: 20 24 6e 75 72 6c 20 29 3b 0a 20 20 2f 2f 20 7d   $nurl );.  // }
1080: 0a 20 20 2f 2f 20 57 65 20 6d 61 79 20 62 65 20  .  // We may be 
1090: 70 72 6f 63 65 73 73 69 6e 67 20 61 6e 20 68 43  processing an hC
10a0: 61 6c 65 6e 64 61 72 2e 0a 20 20 2f 2f 20 24 64  alendar..  // $d
10b0: 61 74 61 20 73 6f 6d 65 74 69 6d 65 73 20 68 61  ata sometimes ha
10c0: 73 20 61 20 63 6f 75 6e 74 20 6f 66 20 31 20 62  s a count of 1 b
10d0: 75 74 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69  ut is not a vali
10e0: 64 20 61 72 72 61 79 2e 0a 20 20 69 66 20 28 20  d array..  if ( 
10f0: 28 20 63 6f 75 6e 74 20 28 20 24 64 61 74 61 20  ( count ( $data 
1100: 29 20 3d 3d 20 30 20 7c 7c 20 21 20 69 73 73 65  ) == 0 || ! isse
1110: 74 20 28 20 24 64 61 74 61 5b 30 5d 20 29 20 29  t ( $data[0] ) )
1120: 20 26 26 0a 20 20 20 20 20 20 66 75 6e 63 74 69   &&.      functi
1130: 6f 6e 5f 65 78 69 73 74 73 20 28 20 27 73 69 6d  on_exists ( 'sim
1140: 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 74 72 69  plexml_load_stri
1150: 6e 67 27 20 29 20 29 20 7b 0a 20 20 20 20 24 68  ng' ) ) {.    $h
1160: 20 3d 20 6e 65 77 20 68 4b 69 74 3b 0a 20 20 20   = new hKit;.   
1170: 20 24 68 2d 3e 74 69 64 79 5f 6d 6f 64 65 20 3d   $h->tidy_mode =
1180: 20 27 70 72 6f 78 79 27 3b 0a 20 20 20 20 24 72   'proxy';.    $r
1190: 65 73 75 6c 74 20 3d 20 24 68 2d 3e 67 65 74 42  esult = $h->getB
11a0: 79 55 52 4c 20 28 20 27 68 63 61 6c 27 2c 20 24  yURL ( 'hcal', $
11b0: 6e 75 72 6c 20 29 3b 0a 20 20 20 20 24 74 79 70  nurl );.    $typ
11c0: 65 20 3d 20 27 68 63 61 6c 27 3b 0a 20 20 20 20  e = 'hcal';.    
11d0: 24 64 61 74 61 20 3d 20 70 61 72 73 65 5f 68 63  $data = parse_hc
11e0: 61 6c 20 28 20 24 72 65 73 75 6c 74 2c 20 24 74  al ( $result, $t
11f0: 79 70 65 20 29 3b 0a 20 20 7d 0a 0a 20 20 24 65  ype );.  }..  $e
1200: 72 72 6f 72 53 74 72 20 3d 20 27 3c 62 72 20 2f  rrorStr = '<br /
1210: 3e 3c 62 72 20 2f 3e 0a 20 20 20 20 3c 62 3e 27  ><br />.    <b>'
1220: 20 2e 20 74 72 61 6e 73 6c 61 74 65 20 28 20 27   . translate ( '
1230: 45 72 72 6f 72 27 20 29 20 2e 20 27 3a 3c 2f 62  Error' ) . ':</b
1240: 3e 20 27 3b 0a 0a 20 20 70 72 69 6e 74 5f 68 65  > ';..  print_he
1250: 61 64 65 72 20 28 20 27 27 2c 20 27 27 2c 20 27  ader ( '', '', '
1260: 27 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 2c 20  ', true, false, 
1270: 74 72 75 65 20 29 3b 0a 20 20 69 66 20 28 20 63  true );.  if ( c
1280: 6f 75 6e 74 20 28 20 24 64 61 74 61 20 29 20 26  ount ( $data ) &
1290: 26 20 65 6d 70 74 79 20 28 20 24 65 72 72 6f 72  & empty ( $error
12a0: 6d 73 67 20 29 20 29 20 7b 0a 20 20 20 20 2f 2f  msg ) ) {.    //
12b0: 20 44 65 6c 65 74 65 20 65 78 69 73 74 69 6e 67   Delete existing
12c0: 20 65 76 65 6e 74 73 2e 0a 20 20 20 20 64 65 6c   events..    del
12d0: 65 74 65 5f 65 76 65 6e 74 73 20 28 20 24 6e 69  ete_events ( $ni
12e0: 64 20 29 3b 0a 20 20 20 20 2f 2f 20 49 6d 70 6f  d );.    // Impo
12f0: 72 74 20 6e 65 77 20 65 76 65 6e 74 73 2e 0a 20  rt new events.. 
1300: 20 20 20 69 6d 70 6f 72 74 5f 64 61 74 61 20 28     import_data (
1310: 20 24 64 61 74 61 2c 20 24 6f 76 65 72 77 72 69   $data, $overwri
1320: 74 65 2c 20 24 74 79 70 65 20 29 3b 0a 20 20 20  te, $type );.   
1330: 20 65 63 68 6f 20 27 0a 20 20 20 20 3c 70 3e 27   echo '.    <p>'
1340: 20 2e 20 74 72 61 6e 73 6c 61 74 65 20 28 20 27   . translate ( '
1350: 49 6d 70 6f 72 74 20 52 65 73 75 6c 74 73 27 20  Import Results' 
1360: 29 20 2e 20 27 3c 2f 70 3e 3c 62 72 20 2f 3e 3c  ) . '</p><br /><
1370: 62 72 20 2f 3e 0a 20 20 20 20 27 20 2e 20 74 72  br />.    ' . tr
1380: 61 6e 73 6c 61 74 65 20 28 20 27 45 76 65 6e 74  anslate ( 'Event
1390: 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 69  s successfully i
13a0: 6d 70 6f 72 74 65 64 27 20 29 20 2e 20 27 3a 20  mported' ) . ': 
13b0: 27 20 2e 20 24 63 6f 75 6e 74 5f 73 75 63 0a 20  ' . $count_suc. 
13c0: 20 20 20 20 2e 20 27 3c 62 72 20 2f 3e 27 3b 0a      . '<br />';.
13d0: 20 20 20 20 69 66 20 28 20 24 6c 61 79 65 72 5f      if ( $layer_
13e0: 66 6f 75 6e 64 20 3d 3d 20 66 61 6c 73 65 20 29  found == false )
13f0: 20 7b 20 2f 2f 20 57 65 20 6d 61 79 20 68 61 76   { // We may hav
1400: 65 20 6a 75 73 74 20 61 64 64 65 64 20 6c 61 79  e just added lay
1410: 65 72 2e 0a 20 20 20 20 20 20 6c 6f 61 64 5f 75  er..      load_u
1420: 73 65 72 5f 6c 61 79 65 72 73 20 28 29 3b 0a 20  ser_layers ();. 
1430: 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 20 24       foreach ( $
1440: 6c 61 79 65 72 73 20 61 73 20 24 6c 61 79 65 72  layers as $layer
1450: 20 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20   ) {.        if 
1460: 28 20 24 6c 61 79 65 72 5b 27 63 61 6c 5f 6c 61  ( $layer['cal_la
1470: 79 65 72 75 73 65 72 27 5d 20 3d 3d 20 24 6e 69  yeruser'] == $ni
1480: 64 20 29 0a 20 20 20 20 20 20 20 20 20 20 24 6c  d ).          $l
1490: 61 79 65 72 5f 66 6f 75 6e 64 20 3d 20 74 72 75  ayer_found = tru
14a0: 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d  e;.      }.    }
14b0: 0a 20 20 20 20 69 66 20 28 20 24 6c 61 79 65 72  .    if ( $layer
14c0: 5f 66 6f 75 6e 64 20 3d 3d 20 66 61 6c 73 65 20  _found == false 
14d0: 29 0a 20 20 20 20 20 20 65 63 68 6f 20 27 0a 20  ).      echo '. 
14e0: 20 20 20 3c 70 3e 27 20 2e 20 74 72 61 6e 73 6c     <p>' . transl
14f0: 61 74 65 20 28 20 27 43 72 65 61 74 65 20 61 20  ate ( 'Create a 
1500: 6e 65 77 20 6c 61 79 65 72 20 74 6f 20 76 69 65  new layer to vie
1510: 77 20 74 68 69 73 20 63 61 6c 65 6e 64 61 72 27  w this calendar'
1520: 20 29 20 2e 20 27 2e 3c 2f 70 3e 27 3b 0a 20 20   ) . '.</p>';.  
1530: 7d 20 65 6c 73 65 69 66 20 28 20 21 20 65 6d 70  } elseif ( ! emp
1540: 74 79 20 28 20 24 65 72 72 6f 72 6d 73 67 20 29  ty ( $errormsg )
1550: 20 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 0a   ) {.    echo '.
1560: 20 20 20 20 27 20 2e 20 74 72 61 6e 73 6c 61 74      ' . translat
1570: 65 20 28 20 27 45 72 72 6f 72 73 27 20 29 20 2e  e ( 'Errors' ) .
1580: 20 27 3a 20 27 20 2e 20 24 65 72 72 6f 72 5f 6e   ': ' . $error_n
1590: 75 6d 20 2e 20 27 3c 62 72 20 2f 3e 3c 62 72 20  um . '<br /><br 
15a0: 2f 3e 0a 20 20 20 20 27 20 2e 20 24 65 72 72 6f  />.    ' . $erro
15b0: 72 53 74 72 20 2e 20 24 65 72 72 6f 72 6d 73 67  rStr . $errormsg
15c0: 20 2e 20 27 3c 62 72 20 2f 3e 27 3b 0a 20 20 7d   . '<br />';.  }
15d0: 20 65 6c 73 65 20 7b 0a 20 20 20 20 65 63 68 6f   else {.    echo
15e0: 20 24 65 72 72 6f 72 53 74 72 20 2e 0a 20 20 20   $errorStr ..   
15f0: 20 74 72 61 6e 73 6c 61 74 65 20 28 20 27 54 68   translate ( 'Th
1600: 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72  ere was an error
1610: 20 70 61 72 73 69 6e 67 20 74 68 65 20 69 6d 70   parsing the imp
1620: 6f 72 74 20 66 69 6c 65 20 6f 72 20 6e 6f 20 65  ort file or no e
1630: 76 65 6e 74 73 20 77 65 72 65 20 72 65 74 75 72  vents were retur
1640: 6e 65 64 27 20 29 0a 20 20 20 20 20 2e 20 27 2e  ned' ).     . '.
1650: 3c 62 72 20 2f 3e 27 3b 0a 20 20 7d 0a 20 20 65  <br />';.  }.  e
1660: 63 68 6f 20 70 72 69 6e 74 5f 74 72 61 69 6c 65  cho print_traile
1670: 72 20 28 20 66 61 6c 73 65 2c 20 74 72 75 65 2c  r ( false, true,
1680: 20 74 72 75 65 20 29 3b 0a 7d 0a 0a 66 75 6e 63   true );.}..func
1690: 74 69 6f 6e 20 64 65 6c 65 74 65 5f 65 76 65 6e  tion delete_even
16a0: 74 73 20 28 20 24 6e 69 64 20 29 20 7b 0a 20 20  ts ( $nid ) {.  
16b0: 2f 2f 20 47 65 74 20 65 76 65 6e 74 20 69 64 73  // Get event ids
16c0: 20 66 6f 72 20 61 6c 6c 20 65 76 65 6e 74 73 20   for all events 
16d0: 74 68 69 73 20 75 73 65 72 20 69 73 20 61 20 70  this user is a p
16e0: 61 72 74 69 63 69 70 61 6e 74 2e 0a 20 20 24 65  articipant..  $e
16f0: 76 65 6e 74 73 20 3d 20 67 65 74 5f 75 73 65 72  vents = get_user
1700: 73 5f 65 76 65 6e 74 5f 69 64 73 20 28 20 24 6e  s_event_ids ( $n
1710: 69 64 20 29 3b 0a 0a 20 20 2f 2f 20 4e 6f 77 20  id );..  // Now 
1720: 63 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20  count number of 
1730: 70 61 72 74 69 63 69 70 61 6e 74 73 20 69 6e 20  participants in 
1740: 65 61 63 68 20 65 76 65 6e 74 2e 2e 2e 0a 20 20  each event....  
1750: 2f 2f 20 49 66 20 6a 75 73 74 20 31 2c 20 74 68  // If just 1, th
1760: 65 6e 20 73 61 76 65 20 69 64 20 74 6f 20 62 65  en save id to be
1770: 20 64 65 6c 65 74 65 64 2e 0a 20 20 24 64 65 6c   deleted..  $del
1780: 65 74 65 5f 65 6d 20 3d 20 61 72 72 61 79 20 28  ete_em = array (
1790: 29 3b 0a 20 20 66 6f 72 20 28 20 24 69 20 3d 20  );.  for ( $i = 
17a0: 30 2c 20 24 63 6e 74 20 3d 20 63 6f 75 6e 74 20  0, $cnt = count 
17b0: 28 20 24 65 76 65 6e 74 73 20 29 3b 20 24 69 20  ( $events ); $i 
17c0: 3c 20 24 63 6e 74 3b 20 24 69 2b 2b 20 29 20 7b  < $cnt; $i++ ) {
17d0: 0a 20 20 20 20 24 72 65 73 20 3d 20 64 62 69 5f  .    $res = dbi_
17e0: 65 78 65 63 75 74 65 20 28 20 27 53 45 4c 45 43  execute ( 'SELEC
17f0: 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  T COUNT( * ) FRO
1800: 4d 20 77 65 62 63 61 6c 5f 65 6e 74 72 79 5f 75  M webcal_entry_u
1810: 73 65 72 0a 20 20 20 20 20 20 57 48 45 52 45 20  ser.      WHERE 
1820: 63 61 6c 5f 69 64 20 3d 20 3f 27 2c 20 61 72 72  cal_id = ?', arr
1830: 61 79 20 28 20 24 65 76 65 6e 74 73 5b 24 69 5d  ay ( $events[$i]
1840: 20 29 20 29 3b 0a 20 20 20 20 69 66 20 28 20 24   ) );.    if ( $
1850: 72 65 73 20 29 20 7b 0a 09 20 20 24 72 6f 77 20  res ) {..  $row 
1860: 3d 20 64 62 69 5f 66 65 74 63 68 5f 72 6f 77 20  = dbi_fetch_row 
1870: 28 20 24 72 65 73 20 29 3b 0a 20 20 20 20 20 20  ( $res );.      
1880: 69 66 20 28 20 21 20 65 6d 70 74 79 20 28 20 24  if ( ! empty ( $
1890: 72 6f 77 20 29 20 26 26 20 24 72 6f 77 5b 30 5d  row ) && $row[0]
18a0: 20 3d 3d 20 31 20 29 0a 20 20 20 20 20 20 20 20   == 1 ).        
18b0: 24 64 65 6c 65 74 65 5f 65 6d 5b 5d 20 3d 20 24  $delete_em[] = $
18c0: 65 76 65 6e 74 73 5b 24 69 5d 3b 0a 0a 20 20 20  events[$i];..   
18d0: 20 20 20 64 62 69 5f 66 72 65 65 5f 72 65 73 75     dbi_free_resu
18e0: 6c 74 20 28 20 24 72 65 73 20 29 3b 0a 20 20 20  lt ( $res );.   
18f0: 20 7d 0a 20 20 7d 0a 20 20 2f 2f 20 4e 6f 77 20   }.  }.  // Now 
1900: 64 65 6c 65 74 65 20 65 76 65 6e 74 73 20 74 68  delete events th
1910: 61 74 20 77 65 72 65 20 6a 75 73 74 20 66 6f 72  at were just for
1920: 20 74 68 69 73 20 75 73 65 72 2e 0a 20 20 66 6f   this user..  fo
1930: 72 20 28 20 24 69 20 3d 20 30 2c 20 24 63 6e 74  r ( $i = 0, $cnt
1940: 20 3d 20 63 6f 75 6e 74 20 28 20 24 64 65 6c 65   = count ( $dele
1950: 74 65 5f 65 6d 20 29 3b 20 24 69 20 3c 20 24 63  te_em ); $i < $c
1960: 6e 74 3b 20 24 69 2b 2b 20 29 20 7b 0a 20 20 20  nt; $i++ ) {.   
1970: 20 64 62 69 5f 65 78 65 63 75 74 65 20 28 20 27   dbi_execute ( '
1980: 44 45 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63  DELETE FROM webc
1990: 61 6c 5f 65 6e 74 72 79 5f 72 65 70 65 61 74 73  al_entry_repeats
19a0: 20 57 48 45 52 45 20 63 61 6c 5f 69 64 20 3d 20   WHERE cal_id = 
19b0: 3f 27 2c 0a 20 20 20 20 20 20 61 72 72 61 79 20  ?',.      array 
19c0: 28 20 24 64 65 6c 65 74 65 5f 65 6d 5b 24 69 5d  ( $delete_em[$i]
19d0: 20 29 20 29 3b 0a 20 20 20 20 64 62 69 5f 65 78   ) );.    dbi_ex
19e0: 65 63 75 74 65 20 28 20 27 44 45 4c 45 54 45 20  ecute ( 'DELETE 
19f0: 46 52 4f 4d 20 77 65 62 63 61 6c 5f 65 6e 74 72  FROM webcal_entr
1a00: 79 5f 72 65 70 65 61 74 73 5f 6e 6f 74 20 57 48  y_repeats_not WH
1a10: 45 52 45 20 63 61 6c 5f 69 64 20 3d 20 3f 27 2c  ERE cal_id = ?',
1a20: 0a 20 20 20 20 20 20 61 72 72 61 79 20 28 20 24  .      array ( $
1a30: 64 65 6c 65 74 65 5f 65 6d 5b 24 69 5d 20 29 20  delete_em[$i] ) 
1a40: 29 3b 0a 20 20 20 20 64 62 69 5f 65 78 65 63 75  );.    dbi_execu
1a50: 74 65 20 28 20 27 44 45 4c 45 54 45 20 46 52 4f  te ( 'DELETE FRO
1a60: 4d 20 77 65 62 63 61 6c 5f 65 6e 74 72 79 5f 6c  M webcal_entry_l
1a70: 6f 67 20 57 48 45 52 45 20 63 61 6c 5f 65 6e 74  og WHERE cal_ent
1a80: 72 79 5f 69 64 20 3d 20 3f 27 2c 0a 20 20 20 20  ry_id = ?',.    
1a90: 20 20 61 72 72 61 79 20 28 20 24 64 65 6c 65 74    array ( $delet
1aa0: 65 5f 65 6d 5b 24 69 5d 20 29 20 29 3b 0a 20 20  e_em[$i] ) );.  
1ab0: 20 20 64 62 69 5f 65 78 65 63 75 74 65 20 28 20    dbi_execute ( 
1ac0: 27 44 45 4c 45 54 45 20 46 52 4f 4d 20 77 65 62  'DELETE FROM web
1ad0: 63 61 6c 5f 69 6d 70 6f 72 74 5f 64 61 74 61 20  cal_import_data 
1ae0: 57 48 45 52 45 20 63 61 6c 5f 69 64 20 3d 20 3f  WHERE cal_id = ?
1af0: 27 2c 0a 20 20 20 20 20 20 61 72 72 61 79 20 28  ',.      array (
1b00: 20 24 64 65 6c 65 74 65 5f 65 6d 5b 24 69 5d 20   $delete_em[$i] 
1b10: 29 20 29 3b 0a 20 20 20 20 64 62 69 5f 65 78 65  ) );.    dbi_exe
1b20: 63 75 74 65 20 28 20 27 44 45 4c 45 54 45 20 46  cute ( 'DELETE F
1b30: 52 4f 4d 20 77 65 62 63 61 6c 5f 73 69 74 65 5f  ROM webcal_site_
1b40: 65 78 74 72 61 73 20 57 48 45 52 45 20 63 61 6c  extras WHERE cal
1b50: 5f 69 64 20 3d 20 3f 27 2c 0a 20 20 20 20 20 20  _id = ?',.      
1b60: 61 72 72 61 79 20 28 20 24 64 65 6c 65 74 65 5f  array ( $delete_
1b70: 65 6d 5b 24 69 5d 20 29 20 29 3b 0a 20 20 20 20  em[$i] ) );.    
1b80: 64 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 44  dbi_execute ( 'D
1b90: 45 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61  ELETE FROM webca
1ba0: 6c 5f 65 6e 74 72 79 5f 65 78 74 5f 75 73 65 72  l_entry_ext_user
1bb0: 20 57 48 45 52 45 20 63 61 6c 5f 69 64 20 3d 20   WHERE cal_id = 
1bc0: 3f 27 2c 0a 20 20 20 20 20 20 61 72 72 61 79 20  ?',.      array 
1bd0: 28 20 24 64 65 6c 65 74 65 5f 65 6d 5b 24 69 5d  ( $delete_em[$i]
1be0: 20 29 20 29 3b 0a 20 20 20 20 64 62 69 5f 65 78   ) );.    dbi_ex
1bf0: 65 63 75 74 65 20 28 20 27 44 45 4c 45 54 45 20  ecute ( 'DELETE 
1c00: 46 52 4f 4d 20 77 65 62 63 61 6c 5f 72 65 6d 69  FROM webcal_remi
1c10: 6e 64 65 72 73 20 57 48 45 52 45 20 63 61 6c 5f  nders WHERE cal_
1c20: 69 64 20 3d 3f 20 27 2c 0a 20 20 20 20 20 20 61  id =? ',.      a
1c30: 72 72 61 79 20 28 20 24 64 65 6c 65 74 65 5f 65  rray ( $delete_e
1c40: 6d 5b 24 69 5d 20 29 20 29 3b 0a 20 20 20 20 64  m[$i] ) );.    d
1c50: 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 44 45  bi_execute ( 'DE
1c60: 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61 6c  LETE FROM webcal
1c70: 5f 62 6c 6f 62 20 57 48 45 52 45 20 63 61 6c 5f  _blob WHERE cal_
1c80: 69 64 20 3d 20 3f 27 2c 0a 20 20 20 20 20 20 61  id = ?',.      a
1c90: 72 72 61 79 20 28 20 24 64 65 6c 65 74 65 5f 65  rray ( $delete_e
1ca0: 6d 5b 24 69 5d 20 29 20 29 3b 0a 20 20 20 20 64  m[$i] ) );.    d
1cb0: 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 44 45  bi_execute ( 'DE
1cc0: 4c 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61 6c  LETE FROM webcal
1cd0: 5f 65 6e 74 72 79 20 57 48 45 52 45 20 63 61 6c  _entry WHERE cal
1ce0: 5f 69 64 20 3d 20 3f 27 2c 0a 20 20 20 20 20 20  _id = ?',.      
1cf0: 61 72 72 61 79 20 28 20 24 64 65 6c 65 74 65 5f  array ( $delete_
1d00: 65 6d 5b 24 69 5d 20 29 20 29 3b 0a 20 20 7d 0a  em[$i] ) );.  }.
1d10: 20 20 2f 2f 20 44 65 6c 65 74 65 20 75 73 65 72    // Delete user
1d20: 20 70 61 72 74 69 63 69 70 61 74 69 6f 6e 20 66   participation f
1d30: 72 6f 6d 20 65 76 65 6e 74 73 2e 0a 20 20 64 62  rom events..  db
1d40: 69 5f 65 78 65 63 75 74 65 20 28 20 27 44 45 4c  i_execute ( 'DEL
1d50: 45 54 45 20 46 52 4f 4d 20 77 65 62 63 61 6c 5f  ETE FROM webcal_
1d60: 65 6e 74 72 79 5f 75 73 65 72 20 57 48 45 52 45  entry_user WHERE
1d70: 20 63 61 6c 5f 6c 6f 67 69 6e 20 3d 20 3f 27 2c   cal_login = ?',
1d80: 0a 20 20 20 20 61 72 72 61 79 20 28 20 24 6e 69  .    array ( $ni
1d90: 64 20 29 20 29 3b 0a 7d 0a 0a 65 63 68 6f 20 65  d ) );.}..echo e
1da0: 72 72 6f 72 5f 63 68 65 63 6b 20 28 20 27 75 73  rror_check ( 'us
1db0: 65 72 73 2e 70 68 70 3f 74 61 62 3d 72 65 6d 6f  ers.php?tab=remo
1dc0: 74 65 73 27 2c 20 66 61 6c 73 65 20 29 3b 0a 0a  tes', false );..
1dd0: 3f 3e 0a                                         ?>.