webcalendar

Hex Artifact Content
Login

Artifact 1ae366481e813404356988898d9cdd72a4ced9104d024d0282c446472ff10cc7:


0000: 3c 3f 70 68 70 0a 2f 2a 20 24 49 64 3a 20 64 6f  <?php./* $Id: do
0010: 63 61 64 64 2e 70 68 70 2c 76 20 31 2e 32 30 2e  cadd.php,v 1.20.
0020: 32 2e 33 20 32 30 30 37 2f 31 31 2f 31 32 20 31  2.3 2007/11/12 1
0030: 35 3a 34 30 3a 33 30 20 75 6d 63 65 73 72 6a 6f  5:40:30 umcesrjo
0040: 6e 65 73 20 45 78 70 20 24 0a 20 2a 0a 20 2a 20  nes Exp $. *. * 
0050: 50 61 67 65 20 44 65 73 63 72 69 70 74 69 6f 6e  Page Description
0060: 3a 0a 20 2a 20 20 54 68 69 73 20 70 61 67 65 20  :. *  This page 
0070: 77 69 6c 6c 20 68 61 6e 64 6c 65 20 61 64 64 69  will handle addi
0080: 6e 67 20 62 6c 6f 62 73 20 69 6e 74 6f 20 74 68  ng blobs into th
0090: 65 20 64 61 74 61 62 61 73 65 2e 20 49 74 20 77  e database. It w
00a0: 69 6c 6c 0a 20 2a 20 20 70 72 65 73 65 6e 74 20  ill. *  present 
00b0: 74 68 65 20 66 6f 72 6d 20 70 61 67 65 20 6f 6e  the form page on
00c0: 20 61 20 47 45 54 20 61 6e 64 20 68 61 6e 64 6c   a GET and handl
00d0: 65 20 75 70 64 61 74 69 6e 67 20 74 68 65 20 64  e updating the d
00e0: 61 74 61 62 61 73 65 0a 20 2a 20 20 6f 6e 20 61  atabase. *  on a
00f0: 20 50 4f 53 54 2e 0a 20 2a 20 20 54 68 69 73 20   POST.. *  This 
0100: 69 6e 63 6c 75 64 65 73 3a 0a 20 2a 20 20 20 20  includes:. *    
0110: 41 64 64 20 63 6f 6d 6d 65 6e 74 20 74 6f 20 61  Add comment to a
0120: 6e 20 65 76 65 6e 74 0a 20 2a 20 20 20 20 41 64  n event. *    Ad
0130: 64 20 61 74 74 61 63 68 6d 65 6e 74 20 74 6f 20  d attachment to 
0140: 61 6e 20 65 76 65 6e 74 0a 20 2a 0a 20 2a 20 49  an event. *. * I
0150: 6e 70 75 74 20 50 61 72 61 6d 65 74 65 72 73 3a  nput Parameters:
0160: 0a 20 2a 20 20 46 6f 72 20 47 45 54 3a 0a 20 2a  . *  For GET:. *
0170: 20 20 20 20 69 64 20 2d 20 65 76 65 6e 74 20 69      id - event i
0180: 64 20 28 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 20  d (optional for 
0190: 73 6f 6d 65 20 74 79 70 65 73 29 0a 20 2a 20 20  some types). *  
01a0: 20 20 74 79 70 65 20 2d 20 43 3d 63 6f 6d 6d 65    type - C=comme
01b0: 6e 74 2c 20 41 3d 61 74 74 61 63 68 6d 65 6e 74  nt, A=attachment
01c0: 0a 20 2a 20 20 46 6f 72 20 50 4f 53 54 3a 0a 20  . *  For POST:. 
01d0: 2a 20 20 20 20 69 64 20 2d 20 65 76 65 6e 74 20  *    id - event 
01e0: 69 64 20 28 6f 70 74 69 6f 6e 61 6c 20 66 6f 72  id (optional for
01f0: 20 73 6f 6d 65 20 74 79 70 65 73 29 0a 20 2a 20   some types). * 
0200: 20 20 20 74 79 70 65 20 2d 20 43 3d 63 6f 6d 6d     type - C=comm
0210: 65 6e 74 2c 20 41 3d 61 74 74 61 63 68 6d 65 6e  ent, A=attachmen
0220: 74 0a 20 2a 20 20 20 20 64 65 73 63 72 69 70 74  t. *    descript
0230: 69 6f 6e 20 2d 20 28 66 6f 72 20 74 79 70 65 3d  ion - (for type=
0240: 43 20 61 6e 64 20 41 29 0a 20 2a 20 20 20 20 63  C and A). *    c
0250: 6f 6d 6d 65 6e 74 20 2d 20 28 66 6f 72 20 74 79  omment - (for ty
0260: 70 65 3d 43 29 0a 20 2a 20 20 20 20 46 69 6c 65  pe=C). *    File
0270: 4e 61 6d 65 20 2d 20 28 66 6f 72 20 74 79 70 65  Name - (for type
0280: 3d 41 29 0a 20 2a 0a 20 2a 20 43 6f 6d 6d 65 6e  =A). *. * Commen
0290: 74 73 3a 0a 20 2a 20 20 54 4f 44 4f 3a 20 61 64  ts:. *  TODO: ad
02a0: 64 20 65 6d 61 69 6c 20 6e 6f 74 69 66 69 63 61  d email notifica
02b0: 74 69 6f 6e 20 77 68 65 6e 20 61 74 74 61 63 68  tion when attach
02c0: 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 65 6e 74 20  ment or comment 
02d0: 69 73 20 61 64 64 65 64 0a 20 2a 2f 0a 69 6e 63  is added. */.inc
02e0: 6c 75 64 65 5f 6f 6e 63 65 20 27 69 6e 63 6c 75  lude_once 'inclu
02f0: 64 65 73 2f 69 6e 69 74 2e 70 68 70 27 3b 0a 0a  des/init.php';..
0300: 24 69 64 20 3d 20 67 65 74 56 61 6c 75 65 20 28  $id = getValue (
0310: 20 27 69 64 27 2c 20 27 2d 3f 5b 30 2d 39 5d 2b   'id', '-?[0-9]+
0320: 27 20 29 3b 0a 24 74 79 70 65 20 3d 20 67 65 74  ' );.$type = get
0330: 56 61 6c 75 65 20 28 20 27 74 79 70 65 27 20 29  Value ( 'type' )
0340: 3b 0a 24 75 73 65 72 20 3d 20 67 65 74 56 61 6c  ;.$user = getVal
0350: 75 65 20 28 20 27 75 73 65 72 27 20 29 3b 0a 24  ue ( 'user' );.$
0360: 65 72 72 6f 72 20 3d 20 27 27 3b 0a 0a 73 77 69  error = '';..swi
0370: 74 63 68 20 28 20 24 74 79 70 65 20 29 20 7b 0a  tch ( $type ) {.
0380: 20 20 63 61 73 65 20 27 43 27 3a 0a 20 20 20 20    case 'C':.    
0390: 69 66 20 28 20 65 6d 70 74 79 20 28 20 24 69 64  if ( empty ( $id
03a0: 20 29 20 29 0a 20 20 20 20 20 20 24 65 72 72 6f   ) ).      $erro
03b0: 72 20 3d 20 27 4e 6f 20 69 64 20 73 70 65 63 69  r = 'No id speci
03c0: 66 69 65 64 27 3b 0a 20 20 20 20 24 74 69 74 6c  fied';.    $titl
03d0: 65 20 3d 20 74 72 61 6e 73 6c 61 74 65 20 28 20  e = translate ( 
03e0: 27 41 64 64 20 43 6f 6d 6d 65 6e 74 27 20 29 3b  'Add Comment' );
03f0: 0a 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 63 61  .    break;.  ca
0400: 73 65 20 27 41 27 3a 0a 20 20 20 20 69 66 20 28  se 'A':.    if (
0410: 20 65 6d 70 74 79 20 28 20 24 69 64 20 29 20 29   empty ( $id ) )
0420: 0a 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20  .      $error = 
0430: 27 4e 6f 20 69 64 20 73 70 65 63 69 66 69 65 64  'No id specified
0440: 27 3b 0a 20 20 20 20 24 74 69 74 6c 65 20 3d 20  ';.    $title = 
0450: 74 72 61 6e 73 6c 61 74 65 20 28 20 27 41 64 64  translate ( 'Add
0460: 20 41 74 74 61 63 68 6d 65 6e 74 27 20 29 3b 0a   Attachment' );.
0470: 20 20 20 20 24 75 70 6c 6f 61 64 20 3d 20 69 6e      $upload = in
0480: 69 5f 67 65 74 20 28 20 27 66 69 6c 65 5f 75 70  i_get ( 'file_up
0490: 6c 6f 61 64 73 27 20 29 3b 0a 20 20 20 20 24 75  loads' );.    $u
04a0: 70 6c 6f 61 64 5f 65 6e 61 62 6c 65 64 20 3d 20  pload_enabled = 
04b0: 21 20 65 6d 70 74 79 20 28 20 24 75 70 6c 6f 61  ! empty ( $uploa
04c0: 64 20 29 20 26 26 0a 20 20 20 20 20 20 70 72 65  d ) &&.      pre
04d0: 67 5f 6d 61 74 63 68 20 28 20 22 2f 28 4f 6e 7c  g_match ( "/(On|
04e0: 31 7c 74 72 75 65 7c 79 65 73 29 2f 69 22 2c 20  1|true|yes)/i", 
04f0: 24 75 70 6c 6f 61 64 20 29 3b 0a 20 20 20 20 69  $upload );.    i
0500: 66 20 28 20 21 20 24 75 70 6c 6f 61 64 5f 65 6e  f ( ! $upload_en
0510: 61 62 6c 65 64 20 29 20 7b 0a 20 20 20 20 20 20  abled ) {.      
0520: 24 65 72 72 6f 72 20 3d 20 27 59 6f 75 20 6d 75  $error = 'You mu
0530: 73 74 20 65 6e 61 62 6c 65 20 66 69 6c 65 5f 75  st enable file_u
0540: 70 6c 6f 61 64 73 20 69 6e 20 70 68 70 2e 69 6e  ploads in php.in
0550: 69 27 3b 0a 20 20 20 20 7d 0a 20 20 20 20 62 72  i';.    }.    br
0560: 65 61 6b 3b 0a 20 20 64 65 66 61 75 6c 74 3a 0a  eak;.  default:.
0570: 20 20 20 20 24 65 72 72 6f 72 20 3d 20 27 49 6e      $error = 'In
0580: 76 61 6c 69 64 20 74 79 70 65 27 3b 0a 20 20 20  valid type';.   
0590: 20 62 72 65 61 6b 3b 0a 7d 0a 0a 24 63 61 6e 5f   break;.}..$can_
05a0: 61 64 64 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20  add = false;.if 
05b0: 28 20 24 69 73 5f 61 64 6d 69 6e 20 29 0a 20 20  ( $is_admin ).  
05c0: 24 63 61 6e 5f 61 64 64 20 3d 20 74 72 75 65 3b  $can_add = true;
05d0: 0a 0a 2f 2f 20 47 65 74 20 65 76 65 6e 74 20 64  ..// Get event d
05e0: 65 74 61 69 6c 73 20 69 66 20 74 68 69 73 20 69  etails if this i
05f0: 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74  s associated wit
0600: 68 20 61 6e 20 65 76 65 6e 74 0a 69 66 20 28 20  h an event.if ( 
0610: 65 6d 70 74 79 20 28 20 24 65 72 72 6f 72 20 29  empty ( $error )
0620: 20 26 26 20 21 20 65 6d 70 74 79 20 28 20 24 69   && ! empty ( $i
0630: 64 20 29 20 29 20 7b 0a 20 20 2f 2f 20 69 73 20  d ) ) {.  // is 
0640: 74 68 69 73 20 75 73 65 72 20 61 20 70 61 72 74  this user a part
0650: 69 63 69 70 61 6e 74 20 6f 72 20 74 68 65 20 63  icipant or the c
0660: 72 65 61 74 6f 72 20 6f 66 20 74 68 65 20 65 76  reator of the ev
0670: 65 6e 74 3f 0a 20 20 24 72 65 73 20 3d 20 64 62  ent?.  $res = db
0680: 69 5f 65 78 65 63 75 74 65 20 28 20 27 53 45 4c  i_execute ( 'SEL
0690: 45 43 54 20 77 65 2e 63 61 6c 5f 69 64 0a 20 20  ECT we.cal_id.  
06a0: 20 20 46 52 4f 4d 20 77 65 62 63 61 6c 5f 65 6e    FROM webcal_en
06b0: 74 72 79 20 77 65 2c 20 77 65 62 63 61 6c 5f 65  try we, webcal_e
06c0: 6e 74 72 79 5f 75 73 65 72 20 77 65 75 0a 20 20  ntry_user weu.  
06d0: 20 20 57 48 45 52 45 20 77 65 2e 63 61 6c 5f 69    WHERE we.cal_i
06e0: 64 20 3d 20 77 65 75 2e 63 61 6c 5f 69 64 20 41  d = weu.cal_id A
06f0: 4e 44 20 77 65 2e 63 61 6c 5f 69 64 20 3d 20 3f  ND we.cal_id = ?
0700: 0a 20 20 20 20 41 4e 44 20 28 20 77 65 2e 63 61  .    AND ( we.ca
0710: 6c 5f 63 72 65 61 74 65 5f 62 79 20 3d 20 3f 20  l_create_by = ? 
0720: 4f 52 20 77 65 75 2e 63 61 6c 5f 6c 6f 67 69 6e  OR weu.cal_login
0730: 20 3d 20 3f 20 29 27 2c 0a 20 20 20 20 61 72 72   = ? )',.    arr
0740: 61 79 20 28 20 24 69 64 2c 20 24 6c 6f 67 69 6e  ay ( $id, $login
0750: 2c 20 24 6c 6f 67 69 6e 20 29 20 29 3b 0a 20 20  , $login ) );.  
0760: 69 66 20 28 20 24 72 65 73 20 29 20 7b 0a 20 20  if ( $res ) {.  
0770: 20 20 24 72 6f 77 20 3d 20 64 62 69 5f 66 65 74    $row = dbi_fet
0780: 63 68 5f 72 6f 77 20 28 20 24 72 65 73 20 29 3b  ch_row ( $res );
0790: 0a 20 20 20 20 69 66 20 28 20 24 72 6f 77 20 26  .    if ( $row &
07a0: 26 20 24 72 6f 77 5b 30 5d 20 3e 20 30 20 29 0a  & $row[0] > 0 ).
07b0: 20 20 20 20 20 20 24 69 73 5f 6d 79 5f 65 76 65        $is_my_eve
07c0: 6e 74 20 3d 20 74 72 75 65 3b 20 2f 2f 20 75 73  nt = true; // us
07d0: 65 72 20 69 73 20 70 61 72 74 69 63 69 70 61 6e  er is participan
07e0: 74 0a 0a 20 20 20 20 64 62 69 5f 66 72 65 65 5f  t..    dbi_free_
07f0: 72 65 73 75 6c 74 20 28 20 24 72 65 73 20 29 3b  result ( $res );
0800: 0a 20 20 7d 0a 7d 0a 0a 69 66 20 28 20 24 74 79  .  }.}..if ( $ty
0810: 70 65 20 3d 3d 20 27 41 27 20 29 20 7b 0a 20 20  pe == 'A' ) {.  
0820: 69 66 20 28 20 65 6d 70 74 79 20 28 20 24 41 4c  if ( empty ( $AL
0830: 4c 4f 57 5f 41 54 54 41 43 48 20 29 20 7c 7c 20  LOW_ATTACH ) || 
0840: 24 41 4c 4c 4f 57 5f 41 54 54 41 43 48 20 21 3d  $ALLOW_ATTACH !=
0850: 20 27 59 27 20 29 0a 20 20 20 20 24 65 72 72 6f   'Y' ).    $erro
0860: 72 20 3d 20 70 72 69 6e 74 5f 6e 6f 74 5f 61 75  r = print_not_au
0870: 74 68 20 28 39 29 3b 0a 20 20 65 6c 73 65 20 69  th (9);.  else i
0880: 66 20 28 20 65 6d 70 74 79 20 28 20 24 65 72 72  f ( empty ( $err
0890: 6f 72 20 29 20 26 26 20 24 41 4c 4c 4f 57 5f 41  or ) && $ALLOW_A
08a0: 54 54 41 43 48 5f 50 41 52 54 20 3d 3d 20 27 59  TTACH_PART == 'Y
08b0: 27 20 26 26 20 24 69 73 5f 6d 79 5f 65 76 65 6e  ' && $is_my_even
08c0: 74 20 29 0a 20 20 20 20 24 63 61 6e 5f 61 64 64  t ).    $can_add
08d0: 20 3d 20 74 72 75 65 3b 0a 20 20 65 6c 73 65 20   = true;.  else 
08e0: 69 66 20 28 20 24 41 4c 4c 4f 57 5f 41 54 54 41  if ( $ALLOW_ATTA
08f0: 43 48 5f 41 4e 59 20 3d 3d 20 27 59 27 20 29 0a  CH_ANY == 'Y' ).
0900: 20 20 20 20 24 63 61 6e 5f 61 64 64 20 3d 20 74      $can_add = t
0910: 72 75 65 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28  rue;.} else if (
0920: 20 24 74 79 70 65 20 3d 3d 20 27 43 27 20 29 20   $type == 'C' ) 
0930: 7b 0a 20 20 69 66 20 28 20 65 6d 70 74 79 20 28  {.  if ( empty (
0940: 20 24 41 4c 4c 4f 57 5f 43 4f 4d 4d 45 4e 54 53   $ALLOW_COMMENTS
0950: 20 29 20 7c 7c 20 24 41 4c 4c 4f 57 5f 43 4f 4d   ) || $ALLOW_COM
0960: 4d 45 4e 54 53 20 21 3d 20 27 59 27 20 29 0a 20  MENTS != 'Y' ). 
0970: 20 20 20 24 65 72 72 6f 72 20 3d 20 70 72 69 6e     $error = prin
0980: 74 5f 6e 6f 74 5f 61 75 74 68 20 28 31 30 29 3b  t_not_auth (10);
0990: 0a 20 20 65 6c 73 65 20 69 66 20 28 20 65 6d 70  .  else if ( emp
09a0: 74 79 20 28 20 24 65 72 72 6f 72 20 29 20 26 26  ty ( $error ) &&
09b0: 20 24 41 4c 4c 4f 57 5f 43 4f 4d 4d 45 4e 54 53   $ALLOW_COMMENTS
09c0: 5f 50 41 52 54 20 3d 3d 20 27 59 27 20 26 26 20  _PART == 'Y' && 
09d0: 24 69 73 5f 6d 79 5f 65 76 65 6e 74 20 29 0a 20  $is_my_event ). 
09e0: 20 20 20 24 63 61 6e 5f 61 64 64 20 3d 20 74 72     $can_add = tr
09f0: 75 65 3b 0a 20 20 65 6c 73 65 20 69 66 20 28 20  ue;.  else if ( 
0a00: 24 41 4c 4c 4f 57 5f 43 4f 4d 4d 45 4e 54 53 5f  $ALLOW_COMMENTS_
0a10: 41 4e 59 20 3d 3d 20 27 59 27 20 29 0a 20 20 20  ANY == 'Y' ).   
0a20: 20 24 63 61 6e 5f 61 64 64 20 3d 20 74 72 75 65   $can_add = true
0a30: 3b 0a 7d 0a 2f 2f 63 68 65 63 6b 20 55 41 43 0a  ;.}.//check UAC.
0a40: 69 66 20 28 20 61 63 63 65 73 73 5f 69 73 5f 65  if ( access_is_e
0a50: 6e 61 62 6c 65 64 20 28 29 20 29 20 7b 0a 20 20  nabled () ) {.  
0a60: 24 63 61 6e 5f 61 64 64 20 3d 20 24 63 61 6e 5f  $can_add = $can_
0a70: 61 64 64 20 7c 7c 20 61 63 63 65 73 73 5f 75 73  add || access_us
0a80: 65 72 5f 63 61 6c 65 6e 64 61 72 20 28 20 27 65  er_calendar ( 'e
0a90: 64 69 74 27 2c 20 24 75 73 65 72 20 29 3b 0a 7d  dit', $user );.}
0aa0: 0a 0a 69 66 20 28 20 21 20 24 63 61 6e 5f 61 64  ..if ( ! $can_ad
0ab0: 64 20 29 0a 20 20 24 65 72 72 6f 72 20 3d 20 70  d ).  $error = p
0ac0: 72 69 6e 74 5f 6e 6f 74 5f 61 75 74 68 20 28 36  rint_not_auth (6
0ad0: 29 3b 0a 0a 69 66 20 28 20 21 20 65 6d 70 74 79  );..if ( ! empty
0ae0: 20 28 20 24 65 72 72 6f 72 20 29 20 29 20 7b 0a   ( $error ) ) {.
0af0: 20 20 70 72 69 6e 74 5f 68 65 61 64 65 72 20 28    print_header (
0b00: 29 3b 0a 20 20 65 63 68 6f 20 70 72 69 6e 74 5f  );.  echo print_
0b10: 65 72 72 6f 72 20 28 20 24 65 72 72 6f 72 20 29  error ( $error )
0b20: 3b 0a 20 20 65 63 68 6f 20 70 72 69 6e 74 5f 74  ;.  echo print_t
0b30: 72 61 69 6c 65 72 20 28 29 3b 0a 20 20 65 78 69  railer ();.  exi
0b40: 74 3b 0a 7d 0a 0a 2f 2f 20 48 61 6e 64 6c 65 20  t;.}..// Handle 
0b50: 70 6f 73 73 69 62 6c 65 20 50 4f 53 54 20 66 69  possible POST fi
0b60: 72 73 74 0a 69 66 20 28 20 65 6d 70 74 79 20 28  rst.if ( empty (
0b70: 20 24 52 45 51 55 45 53 54 5f 4d 45 54 48 4f 44   $REQUEST_METHOD
0b80: 20 29 20 29 0a 20 20 24 52 45 51 55 45 53 54 5f   ) ).  $REQUEST_
0b90: 4d 45 54 48 4f 44 20 3d 20 24 5f 53 45 52 56 45  METHOD = $_SERVE
0ba0: 52 5b 27 52 45 51 55 45 53 54 5f 4d 45 54 48 4f  R['REQUEST_METHO
0bb0: 44 27 5d 3b 0a 69 66 20 28 20 24 52 45 51 55 45  D'];.if ( $REQUE
0bc0: 53 54 5f 4d 45 54 48 4f 44 20 3d 3d 20 27 50 4f  ST_METHOD == 'PO
0bd0: 53 54 27 20 29 20 7b 0a 0a 20 20 2f 2f 20 67 65  ST' ) {..  // ge
0be0: 74 20 6e 65 78 74 20 69 64 20 66 69 72 73 74 0a  t next id first.
0bf0: 20 20 24 72 65 73 20 3d 20 64 62 69 5f 65 78 65    $res = dbi_exe
0c00: 63 75 74 65 20 28 20 27 53 45 4c 45 43 54 20 4d  cute ( 'SELECT M
0c10: 41 58 28 20 63 61 6c 5f 62 6c 6f 62 5f 69 64 20  AX( cal_blob_id 
0c20: 29 20 46 52 4f 4d 20 77 65 62 63 61 6c 5f 62 6c  ) FROM webcal_bl
0c30: 6f 62 27 20 29 3b 0a 20 20 69 66 20 28 20 21 20  ob' );.  if ( ! 
0c40: 24 72 65 73 20 29 0a 20 20 20 20 64 69 65 5f 6d  $res ).    die_m
0c50: 69 73 65 72 61 62 6c 65 5f 64 65 61 74 68 20 28  iserable_death (
0c60: 20 73 74 72 5f 72 65 70 6c 61 63 65 20 28 20 27   str_replace ( '
0c70: 58 58 58 27 2c 20 64 62 69 5f 65 72 72 6f 72 20  XXX', dbi_error 
0c80: 28 29 2c 0a 20 20 20 20 20 20 74 72 61 6e 73 6c  (),.      transl
0c90: 61 74 65 20 28 20 27 44 61 74 61 62 61 73 65 20  ate ( 'Database 
0ca0: 65 72 72 6f 72 20 58 58 58 2e 27 20 29 20 29 20  error XXX.' ) ) 
0cb0: 29 3b 0a 20 20 20 20 20 20 20 24 72 6f 77 20 3d  );.       $row =
0cc0: 20 64 62 69 5f 66 65 74 63 68 5f 72 6f 77 20 28   dbi_fetch_row (
0cd0: 20 24 72 65 73 20 29 3b 0a 20 20 24 6e 65 78 74   $res );.  $next
0ce0: 69 64 20 3d 20 28 20 21 20 65 6d 70 74 79 20 28  id = ( ! empty (
0cf0: 20 24 72 6f 77 20 29 20 3f 20 24 72 6f 77 5b 30   $row ) ? $row[0
0d00: 5d 20 2b 20 31 20 3a 20 20 31 20 29 3b 0a 20 20  ] + 1 :  1 );.  
0d10: 64 62 69 5f 66 72 65 65 5f 72 65 73 75 6c 74 20  dbi_free_result 
0d20: 28 20 24 72 65 73 20 29 3b 0a 0a 20 20 69 66 20  ( $res );..  if 
0d30: 28 20 24 74 79 70 65 20 3d 3d 20 27 43 27 20 29  ( $type == 'C' )
0d40: 20 7b 0a 20 20 20 20 2f 2f 20 43 6f 6d 6d 65 6e   {.    // Commen
0d50: 74 0a 20 20 20 20 24 64 65 73 63 72 69 70 74 69  t.    $descripti
0d60: 6f 6e 20 3d 20 67 65 74 56 61 6c 75 65 20 28 20  on = getValue ( 
0d70: 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 29 3b  'description' );
0d80: 0a 20 20 20 20 24 63 6f 6d 6d 65 6e 74 20 3d 20  .    $comment = 
0d90: 67 65 74 56 61 6c 75 65 20 28 20 27 63 6f 6d 6d  getValue ( 'comm
0da0: 65 6e 74 27 20 29 3b 0a 20 20 20 20 69 66 20 28  ent' );.    if (
0db0: 20 21 20 64 62 69 5f 65 78 65 63 75 74 65 20 28   ! dbi_execute (
0dc0: 20 27 49 4e 53 45 52 54 20 49 4e 54 4f 20 77 65   'INSERT INTO we
0dd0: 62 63 61 6c 5f 62 6c 6f 62 20 28 20 63 61 6c 5f  bcal_blob ( cal_
0de0: 62 6c 6f 62 5f 69 64 2c 20 63 61 6c 5f 69 64 2c  blob_id, cal_id,
0df0: 0a 20 20 20 20 20 20 63 61 6c 5f 6c 6f 67 69 6e  .      cal_login
0e00: 2c 20 63 61 6c 5f 6e 61 6d 65 2c 20 63 61 6c 5f  , cal_name, cal_
0e10: 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 63 61 6c  description, cal
0e20: 5f 73 69 7a 65 2c 20 63 61 6c 5f 6d 69 6d 65 5f  _size, cal_mime_
0e30: 74 79 70 65 2c 20 63 61 6c 5f 74 79 70 65 2c 0a  type, cal_type,.
0e40: 20 20 20 20 20 20 63 61 6c 5f 6d 6f 64 5f 64 61        cal_mod_da
0e50: 74 65 2c 20 63 61 6c 5f 6d 6f 64 5f 74 69 6d 65  te, cal_mod_time
0e60: 2c 20 63 61 6c 5f 62 6c 6f 62 20 29 0a 20 20 20  , cal_blob ).   
0e70: 20 20 20 56 41 4c 55 45 53 20 28 20 3f 2c 20 3f     VALUES ( ?, ?
0e80: 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c  , ?, ?, ?, ?, ?,
0e90: 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 20 29 27 2c 20   ?, ?, ?, ? )', 
0ea0: 61 72 72 61 79 20 28 20 24 6e 65 78 74 69 64 2c  array ( $nextid,
0eb0: 20 24 69 64 2c 20 24 6c 6f 67 69 6e 2c 0a 20 20   $id, $login,.  
0ec0: 20 20 20 20 20 20 4e 55 4c 4c 2c 20 24 64 65 73        NULL, $des
0ed0: 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 27 74 65  cription, 0, 'te
0ee0: 78 74 2f 70 6c 61 69 6e 27 2c 20 27 43 27 2c 20  xt/plain', 'C', 
0ef0: 64 61 74 65 20 28 20 27 59 6d 64 27 20 29 2c 20  date ( 'Ymd' ), 
0f00: 64 61 74 65 20 28 20 27 48 69 73 27 20 29 2c 0a  date ( 'His' ),.
0f10: 20 20 20 20 20 20 20 20 4e 55 4c 4c 20 29 20 29          NULL ) )
0f20: 20 29 0a 20 20 20 20 20 20 24 65 72 72 6f 72 20   ).      $error 
0f30: 3d 20 64 62 5f 65 72 72 6f 72 20 28 29 3b 0a 20  = db_error ();. 
0f40: 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20     else {.      
0f50: 69 66 20 28 20 21 20 64 62 69 5f 75 70 64 61 74  if ( ! dbi_updat
0f60: 65 5f 62 6c 6f 62 20 28 20 27 77 65 62 63 61 6c  e_blob ( 'webcal
0f70: 5f 62 6c 6f 62 27 2c 20 27 63 61 6c 5f 62 6c 6f  _blob', 'cal_blo
0f80: 62 27 2c 0a 20 20 20 20 20 20 20 20 22 63 61 6c  b',.        "cal
0f90: 5f 62 6c 6f 62 5f 69 64 20 3d 20 24 6e 65 78 74  _blob_id = $next
0fa0: 69 64 22 2c 20 24 63 6f 6d 6d 65 6e 74 20 29 20  id", $comment ) 
0fb0: 29 0a 20 20 20 20 20 20 20 20 24 65 72 72 6f 72  ).        $error
0fc0: 20 3d 20 64 62 5f 65 72 72 6f 72 20 28 29 3b 0a   = db_error ();.
0fd0: 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20        else {.   
0fe0: 20 20 20 20 20 2f 2f 20 73 75 63 63 65 73 73 21       // success!
0ff0: 20 20 72 65 64 69 72 65 63 74 20 74 6f 20 76 69    redirect to vi
1000: 65 77 20 65 76 65 6e 74 20 70 61 67 65 0a 20 20  ew event page.  
1010: 20 20 20 20 20 20 61 63 74 69 76 69 74 79 5f 6c        activity_l
1020: 6f 67 20 28 20 24 69 64 2c 20 24 6c 6f 67 69 6e  og ( $id, $login
1030: 2c 20 24 6c 6f 67 69 6e 2c 20 4c 4f 47 5f 43 4f  , $login, LOG_CO
1040: 4d 4d 45 4e 54 2c 20 27 27 20 29 3b 0a 20 20 20  MMENT, '' );.   
1050: 20 20 20 20 20 64 6f 5f 72 65 64 69 72 65 63 74       do_redirect
1060: 20 28 20 22 76 69 65 77 5f 65 6e 74 72 79 2e 70   ( "view_entry.p
1070: 68 70 3f 69 64 3d 24 69 64 22 20 29 3b 0a 20 20  hp?id=$id" );.  
1080: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 20      }.    }.  } 
1090: 65 6c 73 65 20 69 66 20 28 20 24 74 79 70 65 20  else if ( $type 
10a0: 3d 3d 20 27 41 27 20 29 20 7b 0a 20 20 20 20 2f  == 'A' ) {.    /
10b0: 2f 20 41 74 74 61 63 68 6d 65 6e 74 0a 20 20 20  / Attachment.   
10c0: 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20   $description = 
10d0: 67 65 74 56 61 6c 75 65 20 28 20 27 64 65 73 63  getValue ( 'desc
10e0: 72 69 70 74 69 6f 6e 27 20 29 3b 0a 20 20 20 20  ription' );.    
10f0: 69 66 20 28 20 21 20 65 6d 70 74 79 20 28 20 24  if ( ! empty ( $
1100: 5f 46 49 4c 45 53 5b 27 46 69 6c 65 4e 61 6d 65  _FILES['FileName
1110: 27 5d 20 29 20 29 0a 20 20 20 20 20 20 24 66 69  '] ) ).      $fi
1120: 6c 65 20 3d 20 24 5f 46 49 4c 45 53 5b 27 46 69  le = $_FILES['Fi
1130: 6c 65 4e 61 6d 65 27 5d 3b 0a 20 20 20 20 69 66  leName'];.    if
1140: 20 28 20 65 6d 70 74 79 20 28 20 24 66 69 6c 65   ( empty ( $file
1150: 5b 27 66 69 6c 65 27 5d 20 29 20 29 0a 20 20 20  ['file'] ) ).   
1160: 20 20 20 24 65 72 72 6f 72 20 3d 20 27 46 69 6c     $error = 'Fil
1170: 65 20 55 70 6c 6f 61 64 20 65 72 72 6f 72 21 3c  e Upload error!<
1180: 62 72 20 2f 3e 27 3b 0a 0a 20 20 20 20 2f 2f 70  br />';..    //p
1190: 72 69 6e 74 5f 72 20 28 20 24 66 69 6c 65 20 29  rint_r ( $file )
11a0: 3b 20 65 78 69 74 3b 0a 20 20 20 20 24 6d 69 6d  ; exit;.    $mim
11b0: 65 74 79 70 65 20 3d 20 24 66 69 6c 65 5b 27 74  etype = $file['t
11c0: 79 70 65 27 5d 3b 0a 20 20 20 20 24 66 69 6c 65  ype'];.    $file
11d0: 73 69 7a 65 20 3d 20 24 66 69 6c 65 5b 27 73 69  size = $file['si
11e0: 7a 65 27 5d 3b 0a 20 20 20 20 24 66 69 6c 65 6e  ze'];.    $filen
11f0: 61 6d 65 20 3d 20 24 66 69 6c 65 5b 27 6e 61 6d  ame = $file['nam
1200: 65 27 5d 3b 0a 20 20 20 20 24 74 6d 70 66 69 6c  e'];.    $tmpfil
1210: 65 20 3d 20 24 66 69 6c 65 5b 27 74 6d 70 5f 6e  e = $file['tmp_n
1220: 61 6d 65 27 5d 3b 0a 20 20 20 20 69 66 20 28 20  ame'];.    if ( 
1230: 65 6d 70 74 79 20 28 20 24 64 65 73 63 72 69 70  empty ( $descrip
1240: 74 69 6f 6e 20 29 20 29 0a 20 20 20 20 20 20 24  tion ) ).      $
1250: 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 66  description = $f
1260: 69 6c 65 6e 61 6d 65 3b 0a 0a 20 20 20 20 24 64  ilename;..    $d
1270: 61 74 61 20 3d 20 27 27 3b 0a 20 20 20 20 24 66  ata = '';.    $f
1280: 64 20 3d 20 40 66 6f 70 65 6e 20 28 20 24 74 6d  d = @fopen ( $tm
1290: 70 66 69 6c 65 2c 20 27 72 27 20 29 3b 0a 20 20  pfile, 'r' );.  
12a0: 20 20 69 66 20 28 20 21 20 24 66 64 20 29 0a 20    if ( ! $fd ). 
12b0: 20 20 20 20 20 64 69 65 5f 6d 69 73 65 72 61 62       die_miserab
12c0: 6c 65 5f 64 65 61 74 68 20 28 20 22 45 72 72 6f  le_death ( "Erro
12d0: 72 20 72 65 61 64 69 6e 67 20 74 65 6d 70 20 66  r reading temp f
12e0: 69 6c 65 3a 20 24 74 6d 70 66 69 6c 65 22 20 29  ile: $tmpfile" )
12f0: 3b 0a 20 20 20 20 69 66 20 28 20 21 20 65 6d 70  ;.    if ( ! emp
1300: 74 79 20 28 20 24 65 72 72 6f 72 20 29 20 29 20  ty ( $error ) ) 
1310: 7b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 28 20  {.      while ( 
1320: 21 20 66 65 6f 66 20 28 20 24 66 64 20 29 20 29  ! feof ( $fd ) )
1330: 20 7b 0a 20 20 20 20 20 20 20 20 24 64 61 74 61   {.        $data
1340: 20 2e 3d 20 66 67 65 74 73 20 28 20 24 66 64 2c   .= fgets ( $fd,
1350: 20 34 30 39 36 20 29 3b 0a 20 20 20 20 20 20 7d   4096 );.      }
1360: 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73  .    }.    fclos
1370: 65 20 28 20 24 66 64 20 29 3b 0a 0a 20 20 20 20  e ( $fd );..    
1380: 24 63 6f 6d 6d 65 6e 74 20 3d 20 67 65 74 56 61  $comment = getVa
1390: 6c 75 65 20 28 20 27 64 65 73 63 72 69 70 74 69  lue ( 'descripti
13a0: 6f 6e 27 20 29 3b 0a 20 20 20 20 69 66 20 28 20  on' );.    if ( 
13b0: 21 20 64 62 69 5f 65 78 65 63 75 74 65 20 28 20  ! dbi_execute ( 
13c0: 27 49 4e 53 45 52 54 20 49 4e 54 4f 20 77 65 62  'INSERT INTO web
13d0: 63 61 6c 5f 62 6c 6f 62 20 28 20 63 61 6c 5f 62  cal_blob ( cal_b
13e0: 6c 6f 62 5f 69 64 2c 20 63 61 6c 5f 69 64 2c 0a  lob_id, cal_id,.
13f0: 20 20 20 20 20 20 63 61 6c 5f 6c 6f 67 69 6e 2c        cal_login,
1400: 20 63 61 6c 5f 6e 61 6d 65 2c 20 63 61 6c 5f 64   cal_name, cal_d
1410: 65 73 63 72 69 70 74 69 6f 6e 2c 20 63 61 6c 5f  escription, cal_
1420: 73 69 7a 65 2c 20 63 61 6c 5f 6d 69 6d 65 5f 74  size, cal_mime_t
1430: 79 70 65 2c 20 63 61 6c 5f 74 79 70 65 2c 0a 20  ype, cal_type,. 
1440: 20 20 20 20 20 63 61 6c 5f 6d 6f 64 5f 64 61 74       cal_mod_dat
1450: 65 2c 20 63 61 6c 5f 6d 6f 64 5f 74 69 6d 65 2c  e, cal_mod_time,
1460: 20 63 61 6c 5f 62 6c 6f 62 20 29 0a 20 20 20 20   cal_blob ).    
1470: 20 20 56 41 4c 55 45 53 20 28 20 3f 2c 20 3f 2c    VALUES ( ?, ?,
1480: 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 2c 20   ?, ?, ?, ?, ?, 
1490: 3f 2c 20 3f 2c 20 3f 2c 20 3f 20 29 27 2c 20 61  ?, ?, ?, ? )', a
14a0: 72 72 61 79 20 28 20 24 6e 65 78 74 69 64 2c 20  rray ( $nextid, 
14b0: 24 69 64 2c 20 24 6c 6f 67 69 6e 2c 0a 20 20 20  $id, $login,.   
14c0: 20 20 20 20 20 24 66 69 6c 65 6e 61 6d 65 2c 20       $filename, 
14d0: 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 66  $description, $f
14e0: 69 6c 65 73 69 7a 65 2c 20 24 6d 69 6d 65 74 79  ilesize, $mimety
14f0: 70 65 2c 20 27 41 27 2c 20 64 61 74 65 20 28 20  pe, 'A', date ( 
1500: 27 59 6d 64 27 20 29 2c 0a 20 20 20 20 20 20 20  'Ymd' ),.       
1510: 20 64 61 74 65 20 28 20 27 48 69 73 27 20 29 2c   date ( 'His' ),
1520: 20 4e 55 4c 4c 20 29 20 29 20 29 0a 20 20 20 20   NULL ) ) ).    
1530: 20 20 24 65 72 72 6f 72 20 3d 20 64 62 5f 65 72    $error = db_er
1540: 72 6f 72 20 28 29 3b 0a 20 20 20 20 65 6c 73 65  ror ();.    else
1550: 20 7b 0a 20 20 20 20 20 20 69 66 20 28 20 21 20   {.      if ( ! 
1560: 64 62 69 5f 75 70 64 61 74 65 5f 62 6c 6f 62 20  dbi_update_blob 
1570: 28 20 27 77 65 62 63 61 6c 5f 62 6c 6f 62 27 2c  ( 'webcal_blob',
1580: 20 27 63 61 6c 5f 62 6c 6f 62 27 2c 0a 20 20 20   'cal_blob',.   
1590: 20 20 20 20 20 22 63 61 6c 5f 62 6c 6f 62 5f 69       "cal_blob_i
15a0: 64 20 3d 20 24 6e 65 78 74 69 64 22 2c 20 24 64  d = $nextid", $d
15b0: 61 74 61 20 29 20 29 20 7b 0a 20 20 20 20 20 20  ata ) ) {.      
15c0: 20 20 24 65 72 72 6f 72 20 3d 20 64 62 5f 65 72    $error = db_er
15d0: 72 6f 72 20 28 29 3b 0a 20 20 20 20 20 20 7d 20  ror ();.      } 
15e0: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 2f  else {.        /
15f0: 2f 20 73 75 63 63 65 73 73 21 20 20 72 65 64 69  / success!  redi
1600: 72 65 63 74 20 74 6f 20 76 69 65 77 20 65 76 65  rect to view eve
1610: 6e 74 20 70 61 67 65 0a 20 20 20 20 20 20 20 20  nt page.        
1620: 61 63 74 69 76 69 74 79 5f 6c 6f 67 20 28 20 24  activity_log ( $
1630: 69 64 2c 20 24 6c 6f 67 69 6e 2c 20 24 6c 6f 67  id, $login, $log
1640: 69 6e 2c 20 4c 4f 47 5f 41 54 54 41 43 48 4d 45  in, LOG_ATTACHME
1650: 4e 54 2c 20 24 66 69 6c 65 6e 61 6d 65 20 29 3b  NT, $filename );
1660: 0a 20 20 20 20 20 20 20 20 64 6f 5f 72 65 64 69  .        do_redi
1670: 72 65 63 74 20 28 20 22 76 69 65 77 5f 65 6e 74  rect ( "view_ent
1680: 72 79 2e 70 68 70 3f 69 64 3d 24 69 64 22 20 29  ry.php?id=$id" )
1690: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a  ;.      }.    }.
16a0: 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 64    } else {.    d
16b0: 69 65 5f 6d 69 73 65 72 61 62 6c 65 5f 64 65 61  ie_miserable_dea
16c0: 74 68 20 28 20 27 55 6e 73 75 70 70 6f 72 74 65  th ( 'Unsupporte
16d0: 64 20 74 79 70 65 27 20 29 3b 20 2f 2f 20 70 72  d type' ); // pr
16e0: 6f 67 72 61 6d 6d 65 72 20 65 72 72 6f 72 0a 20  ogrammer error. 
16f0: 20 7d 0a 0a 20 20 69 66 20 28 20 21 20 65 6d 70   }..  if ( ! emp
1700: 74 79 20 28 20 24 65 72 72 6f 72 20 29 20 29 20  ty ( $error ) ) 
1710: 7b 0a 20 20 20 20 70 72 69 6e 74 5f 68 65 61 64  {.    print_head
1720: 65 72 20 28 29 3b 0a 20 20 20 20 65 63 68 6f 20  er ();.    echo 
1730: 70 72 69 6e 74 5f 65 72 72 6f 72 20 28 20 24 65  print_error ( $e
1740: 72 72 6f 72 20 29 3b 0a 20 20 20 20 65 63 68 6f  rror );.    echo
1750: 20 70 72 69 6e 74 5f 74 72 61 69 6c 65 72 20 28   print_trailer (
1760: 29 3b 0a 20 20 20 20 65 78 69 74 3b 0a 20 20 7d  );.    exit;.  }
1770: 0a 7d 0a 0a 70 72 69 6e 74 5f 68 65 61 64 65 72  .}..print_header
1780: 20 28 29 3b 0a 3f 3e 0a 3c 68 32 3e 3c 3f 70 68   ();.?>.<h2><?ph
1790: 70 20 65 63 68 6f 20 24 74 69 74 6c 65 3b 3f 3e  p echo $title;?>
17a0: 3c 2f 68 32 3e 0a 0a 3c 3f 70 68 70 20 69 66 20  </h2>..<?php if 
17b0: 28 20 24 74 79 70 65 20 3d 3d 20 27 43 27 20 29  ( $type == 'C' )
17c0: 20 7b 0a 20 20 2f 2f 20 43 6f 6d 6d 65 6e 74 0a   {.  // Comment.
17d0: 3f 3e 0a 3c 66 6f 72 6d 20 61 63 74 69 6f 6e 3d  ?>.<form action=
17e0: 22 64 6f 63 61 64 64 2e 70 68 70 22 20 6d 65 74  "docadd.php" met
17f0: 68 6f 64 3d 22 70 6f 73 74 22 20 6e 61 6d 65 3d  hod="post" name=
1800: 22 64 6f 63 66 6f 72 6d 22 3e 0a 3c 69 6e 70 75  "docform">.<inpu
1810: 74 20 74 79 70 65 3d 22 68 69 64 64 65 6e 22 20  t type="hidden" 
1820: 6e 61 6d 65 3d 22 69 64 22 20 76 61 6c 75 65 3d  name="id" value=
1830: 22 3c 3f 70 68 70 20 65 63 68 6f 20 24 69 64 3f  "<?php echo $id?
1840: 3e 22 20 2f 3e 0a 3c 69 6e 70 75 74 20 74 79 70  >" />.<input typ
1850: 65 3d 22 68 69 64 64 65 6e 22 20 6e 61 6d 65 3d  e="hidden" name=
1860: 22 74 79 70 65 22 20 76 61 6c 75 65 3d 22 43 22  "type" value="C"
1870: 20 2f 3e 0a 0a 3c 74 61 62 6c 65 3e 0a 0a 3c 74   />..<table>..<t
1880: 72 3e 3c 74 64 20 63 6c 61 73 73 3d 22 61 6c 69  r><td class="ali
1890: 67 6e 74 6f 70 22 3e 3c 6c 61 62 65 6c 20 66 6f  gntop"><label fo
18a0: 72 3d 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3e  r="description">
18b0: 0a 20 20 3c 3f 70 68 70 20 65 74 72 61 6e 73 6c  .  <?php etransl
18c0: 61 74 65 20 28 20 27 53 75 62 6a 65 63 74 27 20  ate ( 'Subject' 
18d0: 29 3f 3e 3a 3c 2f 6c 61 62 65 6c 3e 3c 2f 74 64  )?>:</label></td
18e0: 3e 0a 20 20 3c 74 64 3e 3c 69 6e 70 75 74 20 74  >.  <td><input t
18f0: 79 70 65 3d 22 74 65 78 74 22 20 6e 61 6d 65 3d  ype="text" name=
1900: 22 64 65 73 63 72 69 70 74 69 6f 6e 22 20 73 69  "description" si
1910: 7a 65 3d 22 35 30 22 20 6d 61 78 6c 65 6e 67 74  ze="50" maxlengt
1920: 68 3d 22 31 32 37 22 20 2f 3e 3c 2f 74 64 3e 3c  h="127" /></td><
1930: 2f 74 72 3e 0a 3c 21 2d 2d 20 54 4f 44 4f 3a 20  /tr>.<!-- TODO: 
1940: 68 74 6d 6c 61 72 65 61 20 6f 72 20 66 63 6b 65  htmlarea or fcke
1950: 64 69 74 6f 72 20 73 75 70 70 6f 72 74 20 2d 2d  ditor support --
1960: 3e 0a 3c 74 72 3e 3c 74 64 20 63 6c 61 73 73 3d  >.<tr><td class=
1970: 22 61 6c 69 67 6e 74 6f 70 22 3e 3c 6c 61 62 65  "aligntop"><labe
1980: 6c 20 66 6f 72 3d 22 63 6f 6d 6d 65 6e 74 22 3e  l for="comment">
1990: 0a 20 20 3c 3f 70 68 70 20 65 74 72 61 6e 73 6c  .  <?php etransl
19a0: 61 74 65 20 28 20 27 43 6f 6d 6d 65 6e 74 27 20  ate ( 'Comment' 
19b0: 29 3f 3e 3a 3c 2f 6c 61 62 65 6c 3e 3c 2f 74 64  )?>:</label></td
19c0: 3e 0a 20 20 3c 74 64 3e 3c 74 65 78 74 61 72 65  >.  <td><textare
19d0: 61 20 6e 61 6d 65 3d 22 63 6f 6d 6d 65 6e 74 22  a name="comment"
19e0: 20 72 6f 77 73 3d 22 31 35 22 20 63 6f 6c 73 3d   rows="15" cols=
19f0: 22 36 30 22 20 77 72 61 70 3d 22 61 75 74 6f 22  "60" wrap="auto"
1a00: 3e 3c 2f 74 65 78 74 61 72 65 61 3e 3c 2f 74 64  ></textarea></td
1a10: 3e 3c 2f 74 72 3e 0a 3c 74 72 3e 3c 74 64 20 63  ></tr>.<tr><td c
1a20: 6f 6c 73 70 61 6e 3d 22 32 22 3e 0a 3c 69 6e 70  olspan="2">.<inp
1a30: 75 74 20 74 79 70 65 3d 22 73 75 62 6d 69 74 22  ut type="submit"
1a40: 20 76 61 6c 75 65 3d 22 3c 3f 70 68 70 20 65 74   value="<?php et
1a50: 72 61 6e 73 6c 61 74 65 20 28 20 27 41 64 64 20  ranslate ( 'Add 
1a60: 43 6f 6d 6d 65 6e 74 27 20 29 3f 3e 22 20 2f 3e  Comment' )?>" />
1a70: 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 3c 2f 74 61 62  </td></tr>.</tab
1a80: 6c 65 3e 0a 3c 2f 66 6f 72 6d 3e 0a 0a 3c 3f 70  le>.</form>..<?p
1a90: 68 70 20 7d 20 65 6c 73 65 20 69 66 20 28 20 24  hp } else if ( $
1aa0: 74 79 70 65 20 3d 3d 20 27 41 27 20 29 20 7b 0a  type == 'A' ) {.
1ab0: 20 20 2f 2f 20 41 74 74 61 63 68 6d 65 6e 74 0a    // Attachment.
1ac0: 3f 3e 0a 3c 66 6f 72 6d 20 61 63 74 69 6f 6e 3d  ?>.<form action=
1ad0: 22 64 6f 63 61 64 64 2e 70 68 70 22 20 6d 65 74  "docadd.php" met
1ae0: 68 6f 64 3d 22 70 6f 73 74 22 20 6e 61 6d 65 3d  hod="post" name=
1af0: 22 64 6f 63 66 6f 72 6d 22 20 65 6e 63 74 79 70  "docform" enctyp
1b00: 65 3d 22 6d 75 6c 74 69 70 61 72 74 2f 66 6f 72  e="multipart/for
1b10: 6d 2d 64 61 74 61 22 3e 0a 3c 69 6e 70 75 74 20  m-data">.<input 
1b20: 74 79 70 65 3d 22 68 69 64 64 65 6e 22 20 6e 61  type="hidden" na
1b30: 6d 65 3d 22 69 64 22 20 76 61 6c 75 65 3d 22 3c  me="id" value="<
1b40: 3f 70 68 70 20 65 63 68 6f 20 24 69 64 3f 3e 22  ?php echo $id?>"
1b50: 20 2f 3e 0a 3c 69 6e 70 75 74 20 74 79 70 65 3d   />.<input type=
1b60: 22 68 69 64 64 65 6e 22 20 6e 61 6d 65 3d 22 74  "hidden" name="t
1b70: 79 70 65 22 20 76 61 6c 75 65 3d 22 41 22 20 2f  ype" value="A" /
1b80: 3e 0a 3c 74 61 62 6c 65 3e 0a 3c 74 72 20 63 6c  >.<table>.<tr cl
1b90: 61 73 73 3d 22 62 72 6f 77 73 65 22 3e 3c 74 64  ass="browse"><td
1ba0: 3e 0a 20 3c 6c 61 62 65 6c 20 66 6f 72 3d 22 66  >. <label for="f
1bb0: 69 6c 65 75 70 6c 6f 61 64 22 3e 3c 3f 70 68 70  ileupload"><?php
1bc0: 20 65 74 72 61 6e 73 6c 61 74 65 20 28 20 27 55   etranslate ( 'U
1bd0: 70 6c 6f 61 64 20 66 69 6c 65 27 20 29 3b 3f 3e  pload file' );?>
1be0: 3a 3c 2f 6c 61 62 65 6c 3e 3c 2f 74 64 3e 3c 74  :</label></td><t
1bf0: 64 3e 0a 20 3c 69 6e 70 75 74 20 74 79 70 65 3d  d>. <input type=
1c00: 22 66 69 6c 65 22 20 6e 61 6d 65 3d 22 46 69 6c  "file" name="Fil
1c10: 65 4e 61 6d 65 22 20 69 64 3d 22 66 69 6c 65 75  eName" id="fileu
1c20: 70 6c 6f 61 64 22 20 73 69 7a 65 3d 22 34 35 22  pload" size="45"
1c30: 20 6d 61 78 6c 65 6e 67 74 68 3d 22 35 30 22 20   maxlength="50" 
1c40: 2f 3e 0a 3c 74 72 3e 3c 74 64 20 63 6c 61 73 73  />.<tr><td class
1c50: 3d 22 61 6c 69 67 6e 74 6f 70 22 3e 3c 6c 61 62  ="aligntop"><lab
1c60: 65 6c 20 66 6f 72 3d 22 64 65 73 63 72 69 70 74  el for="descript
1c70: 69 6f 6e 22 3e 0a 20 20 3c 3f 70 68 70 20 65 74  ion">.  <?php et
1c80: 72 61 6e 73 6c 61 74 65 20 28 20 27 44 65 73 63  ranslate ( 'Desc
1c90: 72 69 70 74 69 6f 6e 27 20 29 3f 3e 3a 3c 2f 6c  ription' )?>:</l
1ca0: 61 62 65 6c 3e 3c 2f 74 64 3e 0a 20 20 3c 74 64  abel></td>.  <td
1cb0: 3e 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 74 65  ><input type="te
1cc0: 78 74 22 20 6e 61 6d 65 3d 22 64 65 73 63 72 69  xt" name="descri
1cd0: 70 74 69 6f 6e 22 20 73 69 7a 65 3d 22 35 30 22  ption" size="50"
1ce0: 20 6d 61 78 6c 65 6e 67 74 68 3d 22 31 32 37 22   maxlength="127"
1cf0: 20 2f 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 0a 3c   /></td></tr>..<
1d00: 74 72 3e 3c 74 64 20 63 6f 6c 73 70 61 6e 3d 22  tr><td colspan="
1d10: 32 22 3e 0a 3c 69 6e 70 75 74 20 74 79 70 65 3d  2">.<input type=
1d20: 22 73 75 62 6d 69 74 22 20 76 61 6c 75 65 3d 22  "submit" value="
1d30: 3c 3f 70 68 70 20 65 74 72 61 6e 73 6c 61 74 65  <?php etranslate
1d40: 20 28 20 27 41 64 64 20 41 74 74 61 63 68 6d 65   ( 'Add Attachme
1d50: 6e 74 27 20 29 3f 3e 22 20 2f 3e 3c 2f 74 64 3e  nt' )?>" /></td>
1d60: 3c 2f 74 72 3e 0a 0a 3c 2f 74 61 62 6c 65 3e 0a  </tr>..</table>.
1d70: 3c 2f 66 6f 72 6d 3e 0a 0a 3c 3f 70 68 70 20 7d  </form>..<?php }
1d80: 0a 65 63 68 6f 20 70 72 69 6e 74 5f 74 72 61 69  .echo print_trai
1d90: 6c 65 72 20 28 29 3b 20 3f 3e 0a 0a              ler (); ?>..