webcalendar

Hex Artifact Content
Login

Artifact ea39313ea3e2c1bad6d7cb70701531991daa06269773bfd7e0fdd1bd8a30ec87:


0000: 3c 3f 70 68 70 0a 2f 2a 20 24 49 64 3a 20 63 61  <?php./* $Id: ca
0010: 74 65 67 6f 72 79 5f 68 61 6e 64 6c 65 72 2e 70  tegory_handler.p
0020: 68 70 2c 76 20 31 2e 33 33 2e 32 2e 37 20 32 30  hp,v 1.33.2.7 20
0030: 31 33 2f 30 31 2f 32 34 20 32 31 3a 31 30 3a 31  13/01/24 21:10:1
0040: 38 20 63 6b 6e 75 64 73 65 6e 20 45 78 70 20 24  8 cknudsen Exp $
0050: 20 2a 2f 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65   */.include_once
0060: 20 27 69 6e 63 6c 75 64 65 73 2f 69 6e 69 74 2e   'includes/init.
0070: 70 68 70 27 3b 0a 72 65 71 75 69 72 65 5f 76 61  php';.require_va
0080: 6c 69 64 65 5f 72 65 66 65 72 72 69 6e 67 5f 75  lide_referring_u
0090: 72 6c 20 28 29 3b 0a 0a 24 69 63 6f 6e 5f 6d 61  rl ();..$icon_ma
00a0: 78 5f 73 69 7a 65 20 3d 20 27 33 30 30 30 27 3b  x_size = '3000';
00b0: 0a 24 69 63 6f 6e 5f 70 61 74 68 20 3d 20 27 69  .$icon_path = 'i
00c0: 63 6f 6e 73 2f 27 3b 0a 0a 2f 2a 20 52 65 6e 61  cons/';../* Rena
00d0: 6d 65 20 61 6e 79 20 69 63 6f 6e 73 20 61 73 73  me any icons ass
00e0: 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69  ociated with thi
00f0: 73 20 63 61 74 5f 69 64 2e 20 2a 2f 0a 66 75 6e  s cat_id. */.fun
0100: 63 74 69 6f 6e 20 72 65 6e 61 6d 65 49 63 6f 6e  ction renameIcon
0110: 20 28 20 24 69 64 20 29 20 7b 0a 20 20 67 6c 6f   ( $id ) {.  glo
0120: 62 61 6c 20 24 69 63 6f 6e 5f 70 61 74 68 3b 0a  bal $icon_path;.
0130: 20 20 24 62 61 6b 49 63 6f 6e 20 3d 20 24 63 61    $bakIcon = $ca
0140: 74 49 63 6f 6e 20 3d 20 24 69 63 6f 6e 5f 70 61  tIcon = $icon_pa
0150: 74 68 20 2e 20 27 63 61 74 2d 27 3b 0a 20 20 24  th . 'cat-';.  $
0160: 62 61 6b 49 63 6f 6e 20 2e 3d 20 64 61 74 65 20  bakIcon .= date 
0170: 28 20 27 59 6d 64 48 69 73 27 20 29 20 2e 20 27  ( 'YmdHis' ) . '
0180: 2e 67 69 66 27 3b 0a 20 20 24 63 61 74 49 63 6f  .gif';.  $catIco
0190: 6e 20 2e 3d 20 24 69 64 20 2e 20 27 2e 67 69 66  n .= $id . '.gif
01a0: 27 3b 0a 20 20 69 66 20 28 20 66 69 6c 65 5f 65  ';.  if ( file_e
01b0: 78 69 73 74 73 20 28 20 24 63 61 74 49 63 6f 6e  xists ( $catIcon
01c0: 20 29 20 29 0a 20 20 20 20 72 65 6e 61 6d 65 20   ) ).    rename 
01d0: 28 20 24 63 61 74 49 63 6f 6e 2c 20 24 62 61 6b  ( $catIcon, $bak
01e0: 49 63 6f 6e 20 29 3b 0a 7d 0a 0a 2f 2f 20 44 6f  Icon );.}..// Do
01f0: 65 73 20 74 68 65 20 63 61 74 65 67 6f 72 79 20  es the category 
0200: 62 65 6c 6f 6e 67 20 74 6f 20 74 68 65 20 75 73  belong to the us
0210: 65 72 3f 0a 24 69 73 5f 6d 79 5f 65 76 65 6e 74  er?.$is_my_event
0220: 20 3d 20 66 61 6c 73 65 3b 0a 24 69 64 20 3d 20   = false;.$id = 
0230: 67 65 74 56 61 6c 75 65 20 28 20 27 69 64 27 20  getValue ( 'id' 
0240: 29 3b 0a 24 63 61 74 6e 61 6d 65 20 3d 20 67 65  );.$catname = ge
0250: 74 56 61 6c 75 65 20 28 20 27 63 61 74 6e 61 6d  tValue ( 'catnam
0260: 65 27 20 29 3b 0a 2f 2f 20 70 72 6f 68 69 62 69  e' );.// prohibi
0270: 74 20 61 6e 79 20 68 74 6d 6c 20 69 6e 20 63 61  t any html in ca
0280: 74 65 67 6f 72 79 20 6e 61 6d 65 20 28 69 6e 63  tegory name (inc
0290: 6c 75 64 69 6e 67 20 3c 73 63 72 69 70 74 3e 29  luding <script>)
02a0: 0a 24 63 61 74 6e 61 6d 65 20 3d 20 73 74 72 69  .$catname = stri
02b0: 70 5f 74 61 67 73 20 28 20 24 63 61 74 6e 61 6d  p_tags ( $catnam
02c0: 65 20 29 3b 0a 24 63 61 74 63 6f 6c 6f 72 20 3d  e );.$catcolor =
02d0: 20 67 65 74 56 61 6c 75 65 20 28 20 27 63 61 74   getValue ( 'cat
02e0: 63 6f 6c 6f 72 27 20 29 3b 0a 24 69 73 67 6c 6f  color' );.$isglo
02f0: 62 61 6c 20 3d 20 67 65 74 56 61 6c 75 65 20 28  bal = getValue (
0300: 20 27 69 73 67 6c 6f 62 61 6c 27 20 29 3b 0a 24   'isglobal' );.$
0310: 64 65 6c 49 63 6f 6e 20 3d 20 67 65 74 50 6f 73  delIcon = getPos
0320: 74 56 61 6c 75 65 20 28 20 27 64 65 6c 49 63 6f  tValue ( 'delIco
0330: 6e 27 20 29 3b 0a 69 66 20 28 20 65 6d 70 74 79  n' );.if ( empty
0340: 20 28 20 24 69 64 20 29 20 29 0a 20 20 24 69 73   ( $id ) ).  $is
0350: 5f 6d 79 5f 65 76 65 6e 74 20 3d 20 74 72 75 65  _my_event = true
0360: 3b 20 2f 2f 20 4e 65 77 20 65 76 65 6e 74 2e 0a  ; // New event..
0370: 65 6c 73 65 20 7b 0a 20 20 24 72 65 73 20 3d 20  else {.  $res = 
0380: 64 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 53  dbi_execute ( 'S
0390: 45 4c 45 43 54 20 63 61 74 5f 69 64 2c 20 63 61  ELECT cat_id, ca
03a0: 74 5f 6f 77 6e 65 72 20 46 52 4f 4d 20 77 65 62  t_owner FROM web
03b0: 63 61 6c 5f 63 61 74 65 67 6f 72 69 65 73 0a 20  cal_categories. 
03c0: 20 20 20 57 48 45 52 45 20 63 61 74 5f 69 64 20     WHERE cat_id 
03d0: 3d 20 3f 27 2c 20 61 72 72 61 79 20 28 20 24 69  = ?', array ( $i
03e0: 64 20 29 20 29 3b 0a 20 20 69 66 20 28 20 24 72  d ) );.  if ( $r
03f0: 65 73 20 29 20 7b 0a 20 20 20 20 24 72 6f 77 20  es ) {.    $row 
0400: 3d 20 64 62 69 5f 66 65 74 63 68 5f 72 6f 77 20  = dbi_fetch_row 
0410: 28 20 24 72 65 73 20 29 3b 0a 0a 20 20 20 20 24  ( $res );..    $
0420: 69 73 5f 6d 79 5f 65 76 65 6e 74 20 3d 20 28 20  is_my_event = ( 
0430: 24 72 6f 77 5b 30 5d 20 3d 3d 20 24 69 64 20 26  $row[0] == $id &
0440: 26 20 24 72 6f 77 5b 31 5d 20 3d 3d 20 24 6c 6f  & $row[1] == $lo
0450: 67 69 6e 20 7c 7c 0a 20 20 20 20 20 20 28 20 65  gin ||.      ( e
0460: 6d 70 74 79 20 28 20 24 72 6f 77 5b 31 5d 20 29  mpty ( $row[1] )
0470: 20 26 26 20 24 69 73 5f 61 64 6d 69 6e 20 29 20   && $is_admin ) 
0480: 29 3b 0a 0a 20 20 20 20 64 62 69 5f 66 72 65 65  );..    dbi_free
0490: 5f 72 65 73 75 6c 74 20 28 20 24 72 65 73 20 29  _result ( $res )
04a0: 3b 0a 20 20 7d 20 65 6c 73 65 0a 20 20 20 20 24  ;.  } else.    $
04b0: 65 72 72 6f 72 20 3d 20 64 62 5f 65 72 72 6f 72  error = db_error
04c0: 20 28 29 3b 0a 7d 0a 0a 69 66 20 28 20 21 20 65   ();.}..if ( ! e
04d0: 6d 70 74 79 20 28 20 24 5f 46 49 4c 45 53 5b 27  mpty ( $_FILES['
04e0: 46 69 6c 65 4e 61 6d 65 27 5d 20 29 20 29 0a 20  FileName'] ) ). 
04f0: 20 24 66 69 6c 65 20 3d 20 24 5f 46 49 4c 45 53   $file = $_FILES
0500: 5b 27 46 69 6c 65 4e 61 6d 65 27 5d 3b 0a 0a 2f  ['FileName'];../
0510: 2f 20 4d 61 6b 65 20 73 75 72 65 20 77 65 20 63  / Make sure we c
0520: 6c 65 61 72 20 24 66 69 6c 65 20 69 66 20 6e 6f  lear $file if no
0530: 20 66 69 6c 65 20 77 61 73 20 75 70 6f 61 64 65   file was upoade
0540: 64 2e 0a 69 66 20 28 20 21 20 65 6d 70 74 79 20  d..if ( ! empty 
0550: 28 20 24 66 69 6c 65 5b 27 74 6d 70 5f 6e 61 6d  ( $file['tmp_nam
0560: 65 27 5d 20 29 20 26 26 20 24 66 69 6c 65 5b 27  e'] ) && $file['
0570: 74 6d 70 5f 6e 61 6d 65 27 5d 20 3d 3d 20 27 6e  tmp_name'] == 'n
0580: 6f 6e 65 27 20 29 0a 20 20 24 66 69 6c 65 20 3d  one' ).  $file =
0590: 20 27 27 3b 0a 0a 69 66 20 28 20 21 20 24 69 73   '';..if ( ! $is
05a0: 5f 6d 79 5f 65 76 65 6e 74 20 29 0a 20 20 24 65  _my_event ).  $e
05b0: 72 72 6f 72 20 3d 20 70 72 69 6e 74 5f 6e 6f 74  rror = print_not
05c0: 5f 61 75 74 68 20 28 35 29 3b 0a 0a 24 64 65 6c  _auth (5);..$del
05d0: 65 74 65 20 3d 20 67 65 74 50 6f 73 74 56 61 6c  ete = getPostVal
05e0: 75 65 20 28 20 27 64 65 6c 65 74 65 27 20 29 3b  ue ( 'delete' );
05f0: 0a 69 66 20 28 20 65 6d 70 74 79 20 28 20 24 65  .if ( empty ( $e
0600: 72 72 6f 72 20 29 20 26 26 20 21 20 65 6d 70 74  rror ) && ! empt
0610: 79 20 28 20 24 64 65 6c 65 74 65 20 29 20 29 20  y ( $delete ) ) 
0620: 7b 0a 20 20 2f 2f 20 44 65 6c 65 74 65 20 74 68  {.  // Delete th
0630: 69 73 20 63 61 74 65 67 6f 72 79 2e 0a 20 20 69  is category..  i
0640: 66 20 28 20 21 20 64 62 69 5f 65 78 65 63 75 74  f ( ! dbi_execut
0650: 65 20 28 20 27 44 45 4c 45 54 45 20 46 52 4f 4d  e ( 'DELETE FROM
0660: 20 77 65 62 63 61 6c 5f 63 61 74 65 67 6f 72 69   webcal_categori
0670: 65 73 0a 20 20 20 20 57 48 45 52 45 20 63 61 74  es.    WHERE cat
0680: 5f 69 64 20 3d 20 3f 20 41 4e 44 20 28 20 63 61  _id = ? AND ( ca
0690: 74 5f 6f 77 6e 65 72 20 3d 20 3f 27 0a 20 20 20  t_owner = ?'.   
06a0: 20 20 20 20 2e 20 28 20 24 69 73 5f 61 64 6d 69      . ( $is_admi
06b0: 6e 20 3f 20 27 20 4f 52 20 63 61 74 5f 6f 77 6e  n ? ' OR cat_own
06c0: 65 72 20 49 53 20 4e 55 4c 4c 20 29 27 20 3a 20  er IS NULL )' : 
06d0: 27 20 29 27 20 29 2c 0a 20 20 20 20 20 20 20 20  ' )' ),.        
06e0: 61 72 72 61 79 20 28 20 24 69 64 2c 20 24 6c 6f  array ( $id, $lo
06f0: 67 69 6e 20 29 20 29 20 29 20 7b 0a 20 20 20 20  gin ) ) ) {.    
0700: 24 65 72 72 6f 72 20 3d 20 64 62 5f 65 72 72 6f  $error = db_erro
0710: 72 20 28 29 3b 0a 20 20 7d 0a 0a 20 20 69 66 20  r ();.  }..  if 
0720: 28 20 21 20 64 62 69 5f 65 78 65 63 75 74 65 20  ( ! dbi_execute 
0730: 28 20 27 44 45 4c 45 54 45 20 46 52 4f 4d 20 77  ( 'DELETE FROM w
0740: 65 62 63 61 6c 5f 65 6e 74 72 79 5f 63 61 74 65  ebcal_entry_cate
0750: 67 6f 72 69 65 73 0a 20 20 20 20 57 48 45 52 45  gories.    WHERE
0760: 20 63 61 74 5f 69 64 20 3d 20 3f 20 41 4e 44 20   cat_id = ? AND 
0770: 28 20 63 61 74 5f 6f 77 6e 65 72 20 3d 20 3f 27  ( cat_owner = ?'
0780: 0a 20 20 20 20 20 20 20 2e 20 28 20 24 69 73 5f  .       . ( $is_
0790: 61 64 6d 69 6e 20 3f 20 27 20 4f 52 20 63 61 74  admin ? ' OR cat
07a0: 5f 6f 77 6e 65 72 20 49 53 20 4e 55 4c 4c 20 29  _owner IS NULL )
07b0: 27 20 3a 20 27 20 29 27 20 29 2c 0a 20 20 20 20  ' : ' )' ),.    
07c0: 20 20 20 20 61 72 72 61 79 20 28 20 24 69 64 2c      array ( $id,
07d0: 20 24 6c 6f 67 69 6e 20 29 20 29 20 29 20 7b 0a   $login ) ) ) {.
07e0: 20 20 20 20 24 65 72 72 6f 72 20 3d 20 64 62 5f      $error = db_
07f0: 65 72 72 6f 72 20 28 29 3b 0a 20 20 7d 0a 20 20  error ();.  }.  
0800: 2f 2f 20 52 65 6e 61 6d 65 20 61 6e 79 20 69 63  // Rename any ic
0810: 6f 6e 73 20 61 73 73 6f 63 69 61 74 65 64 20 77  ons associated w
0820: 69 74 68 20 74 68 69 73 20 63 61 74 5f 69 64 2e  ith this cat_id.
0830: 0a 20 20 72 65 6e 61 6d 65 49 63 6f 6e 20 28 20  .  renameIcon ( 
0840: 24 69 64 20 29 3b 0a 7d 20 65 6c 73 65 20 69 66  $id );.} else if
0850: 20 28 20 65 6d 70 74 79 20 28 20 24 65 72 72 6f   ( empty ( $erro
0860: 72 20 29 20 26 26 20 65 6d 70 74 79 20 28 20 24  r ) && empty ( $
0870: 63 61 74 6e 61 6d 65 20 29 20 29 20 7b 0a 20 20  catname ) ) {.  
0880: 24 65 72 72 6f 72 20 3d 20 74 72 61 6e 73 6c 61  $error = transla
0890: 74 65 20 28 20 27 43 61 74 65 67 6f 72 79 20 6e  te ( 'Category n
08a0: 61 6d 65 20 69 73 20 72 65 71 75 69 72 65 64 27  ame is required'
08b0: 20 29 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 20   );.} else if ( 
08c0: 65 6d 70 74 79 20 28 20 24 65 72 72 6f 72 20 29  empty ( $error )
08d0: 20 29 20 7b 0a 20 20 69 66 20 28 20 21 20 65 6d   ) {.  if ( ! em
08e0: 70 74 79 20 28 20 24 69 64 20 29 20 29 20 7b 0a  pty ( $id ) ) {.
08f0: 20 20 20 20 23 20 55 70 64 61 74 65 20 28 64 6f      # Update (do
0900: 6e 27 74 20 6c 65 74 20 74 68 65 6d 20 63 68 61  n't let them cha
0910: 6e 67 65 20 67 6c 6f 62 61 6c 20 73 74 61 74 75  nge global statu
0920: 73 29 2e 0a 20 20 20 20 69 66 20 28 20 21 20 64  s)..    if ( ! d
0930: 62 69 5f 65 78 65 63 75 74 65 20 28 20 27 55 50  bi_execute ( 'UP
0940: 44 41 54 45 20 77 65 62 63 61 6c 5f 63 61 74 65  DATE webcal_cate
0950: 67 6f 72 69 65 73 0a 20 20 20 20 20 20 53 45 54  gories.      SET
0960: 20 63 61 74 5f 6e 61 6d 65 20 3d 20 3f 2c 20 63   cat_name = ?, c
0970: 61 74 5f 63 6f 6c 6f 72 20 3d 20 3f 20 57 48 45  at_color = ? WHE
0980: 52 45 20 63 61 74 5f 69 64 20 3d 20 3f 27 2c 0a  RE cat_id = ?',.
0990: 20 20 20 20 20 20 20 20 61 72 72 61 79 20 28 20          array ( 
09a0: 24 63 61 74 6e 61 6d 65 2c 20 24 63 61 74 63 6f  $catname, $catco
09b0: 6c 6f 72 2c 20 24 69 64 20 29 20 29 20 29 0a 20  lor, $id ) ) ). 
09c0: 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 64 62       $error = db
09d0: 5f 65 72 72 6f 72 20 28 29 3b 0a 0a 20 20 20 20  _error ();..    
09e0: 69 66 20 28 20 21 20 65 6d 70 74 79 20 28 20 24  if ( ! empty ( $
09f0: 64 65 6c 49 63 6f 6e 20 29 20 26 26 20 24 64 65  delIcon ) && $de
0a00: 6c 49 63 6f 6e 20 3d 3d 20 27 59 27 20 29 0a 20  lIcon == 'Y' ). 
0a10: 20 20 20 20 20 72 65 6e 61 6d 65 49 63 6f 6e 20       renameIcon 
0a20: 28 20 24 69 64 20 29 3b 0a 20 20 7d 20 65 6c 73  ( $id );.  } els
0a30: 65 20 7b 0a 20 20 20 20 2f 2f 20 41 64 64 20 6e  e {.    // Add n
0a40: 65 77 20 63 61 74 65 67 6f 72 79 2e 0a 20 20 20  ew category..   
0a50: 20 2f 2f 20 47 65 74 20 6e 65 77 20 69 64 2e 0a   // Get new id..
0a60: 20 20 20 20 24 72 65 73 20 3d 20 64 62 69 5f 65      $res = dbi_e
0a70: 78 65 63 75 74 65 20 28 20 27 53 45 4c 45 43 54  xecute ( 'SELECT
0a80: 20 4d 41 58 28 20 63 61 74 5f 69 64 20 29 20 46   MAX( cat_id ) F
0a90: 52 4f 4d 20 77 65 62 63 61 6c 5f 63 61 74 65 67  ROM webcal_categ
0aa0: 6f 72 69 65 73 27 20 29 3b 0a 20 20 20 20 69 66  ories' );.    if
0ab0: 20 28 20 24 72 65 73 20 29 20 7b 0a 20 20 20 20   ( $res ) {.    
0ac0: 20 20 24 72 6f 77 20 3d 20 64 62 69 5f 66 65 74    $row = dbi_fet
0ad0: 63 68 5f 72 6f 77 20 28 20 24 72 65 73 20 29 3b  ch_row ( $res );
0ae0: 0a 20 20 20 20 20 20 24 69 64 20 3d 20 24 72 6f  .      $id = $ro
0af0: 77 5b 30 5d 20 2b 20 31 3b 0a 20 20 20 20 20 20  w[0] + 1;.      
0b00: 64 62 69 5f 66 72 65 65 5f 72 65 73 75 6c 74 20  dbi_free_result 
0b10: 28 20 24 72 65 73 20 29 3b 0a 20 20 20 20 20 20  ( $res );.      
0b20: 24 63 61 74 6f 77 6e 65 72 20 3d 20 28 20 24 69  $catowner = ( $i
0b30: 73 5f 61 64 6d 69 6e 0a 20 20 20 20 20 20 20 20  s_admin.        
0b40: 3f 20 28 20 24 69 73 67 6c 6f 62 61 6c 20 3d 3d  ? ( $isglobal ==
0b50: 20 27 59 27 20 3f 20 6e 75 6c 6c 20 3a 20 24 6c   'Y' ? null : $l
0b60: 6f 67 69 6e 20 29 0a 20 20 20 20 20 20 20 20 3a  ogin ).        :
0b70: 20 24 6c 6f 67 69 6e 20 29 3b 0a 0a 20 20 20 20   $login );..    
0b80: 20 20 69 66 20 28 20 21 20 64 62 69 5f 65 78 65    if ( ! dbi_exe
0b90: 63 75 74 65 20 28 20 27 49 4e 53 45 52 54 20 49  cute ( 'INSERT I
0ba0: 4e 54 4f 20 77 65 62 63 61 6c 5f 63 61 74 65 67  NTO webcal_categ
0bb0: 6f 72 69 65 73 20 28 20 63 61 74 5f 69 64 2c 20  ories ( cat_id, 
0bc0: 63 61 74 5f 6f 77 6e 65 72 2c 0a 20 20 20 20 20  cat_owner,.     
0bd0: 20 20 20 63 61 74 5f 6e 61 6d 65 2c 20 63 61 74     cat_name, cat
0be0: 5f 63 6f 6c 6f 72 20 29 20 56 41 4c 55 45 53 20  _color ) VALUES 
0bf0: 28 20 3f 2c 20 3f 2c 20 3f 2c 20 3f 20 29 27 2c  ( ?, ?, ?, ? )',
0c00: 0a 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79  .          array
0c10: 20 28 20 24 69 64 2c 20 24 63 61 74 6f 77 6e 65   ( $id, $catowne
0c20: 72 2c 20 24 63 61 74 6e 61 6d 65 2c 20 24 63 61  r, $catname, $ca
0c30: 74 63 6f 6c 6f 72 20 29 20 29 20 29 0a 20 20 20  tcolor ) ) ).   
0c40: 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 64 62       $error = db
0c50: 5f 65 72 72 6f 72 20 28 29 3b 0a 20 20 20 20 7d  _error ();.    }
0c60: 20 65 6c 73 65 0a 20 20 20 20 20 20 24 65 72 72   else.      $err
0c70: 6f 72 20 3d 20 64 62 5f 65 72 72 6f 72 20 28 29  or = db_error ()
0c80: 3b 0a 20 20 7d 0a 20 20 69 66 20 28 20 65 6d 70  ;.  }.  if ( emp
0c90: 74 79 20 28 20 24 64 65 6c 49 63 6f 6e 20 29 20  ty ( $delIcon ) 
0ca0: 26 26 20 69 73 5f 64 69 72 28 20 24 69 63 6f 6e  && is_dir( $icon
0cb0: 5f 70 61 74 68 20 29 20 26 26 20 28 20 21 0a 20  _path ) && ( !. 
0cc0: 20 20 20 20 20 20 20 65 6d 70 74 79 20 28 20 24         empty ( $
0cd0: 45 4e 41 42 4c 45 5f 49 43 4f 4e 5f 55 50 4c 4f  ENABLE_ICON_UPLO
0ce0: 41 44 53 20 29 20 26 26 20 24 45 4e 41 42 4c 45  ADS ) && $ENABLE
0cf0: 5f 49 43 4f 4e 5f 55 50 4c 4f 41 44 53 20 3d 3d  _ICON_UPLOADS ==
0d00: 20 27 59 27 20 7c 7c 0a 20 20 20 20 20 20 20 20   'Y' ||.        
0d10: 24 69 73 5f 61 64 6d 69 6e 20 29 20 29 20 7b 0a  $is_admin ) ) {.
0d20: 20 20 20 20 2f 2f 20 53 61 76 65 20 69 63 6f 6e      // Save icon
0d30: 20 69 66 20 75 70 6c 6f 61 64 65 64 2e 0a 20 20   if uploaded..  
0d40: 20 20 69 66 20 28 20 21 20 65 6d 70 74 79 20 28    if ( ! empty (
0d50: 20 24 66 69 6c 65 5b 27 74 6d 70 5f 6e 61 6d 65   $file['tmp_name
0d60: 27 5d 20 29 20 29 20 7b 0a 20 20 20 20 20 20 69  '] ) ) {.      i
0d70: 66 20 28 20 24 66 69 6c 65 5b 27 74 79 70 65 27  f ( $file['type'
0d80: 5d 20 3d 3d 20 27 69 6d 61 67 65 2f 67 69 66 27  ] == 'image/gif'
0d90: 20 26 26 20 24 66 69 6c 65 5b 27 73 69 7a 65 27   && $file['size'
0da0: 5d 20 3c 3d 20 24 69 63 6f 6e 5f 6d 61 78 5f 73  ] <= $icon_max_s
0db0: 69 7a 65 20 29 20 7b 0a 20 20 20 20 20 20 20 20  ize ) {.        
0dc0: 2f 2f 20 24 69 63 6f 6e 5f 70 72 6f 70 73 20 3d  // $icon_props =
0dd0: 20 67 65 74 69 6d 61 67 65 73 69 7a 65 20 28 20   getimagesize ( 
0de0: 24 66 69 6c 65 5b 27 74 6d 70 5f 6e 61 6d 65 27  $file['tmp_name'
0df0: 5d 20 20 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f  ]  );.        //
0e00: 20 70 72 69 6e 74 5f 72 20 28 24 69 63 6f 6e 5f   print_r ($icon_
0e10: 70 72 6f 70 73 20 29 3b 0a 20 20 20 20 20 20 20  props );.       
0e20: 20 24 70 61 74 68 5f 70 61 72 74 73 20 3d 20 70   $path_parts = p
0e30: 61 74 68 69 6e 66 6f 20 28 20 24 5f 53 45 52 56  athinfo ( $_SERV
0e40: 45 52 5b 27 53 43 52 49 50 54 5f 46 49 4c 45 4e  ER['SCRIPT_FILEN
0e50: 41 4d 45 27 5d 20 29 3b 0a 20 20 20 20 20 20 20  AME'] );.       
0e60: 20 24 66 75 6c 6c 49 63 6f 6e 20 3d 20 24 70 61   $fullIcon = $pa
0e70: 74 68 5f 70 61 72 74 73 5b 27 64 69 72 6e 61 6d  th_parts['dirnam
0e80: 65 27 5d 20 2e 20 27 2f 27 0a 20 20 20 20 20 20  e'] . '/'.      
0e90: 20 20 20 2e 20 24 69 63 6f 6e 5f 70 61 74 68 20     . $icon_path 
0ea0: 2e 20 27 63 61 74 2d 27 20 2e 20 24 69 64 20 2e  . 'cat-' . $id .
0eb0: 20 27 2e 67 69 66 27 3b 0a 20 20 20 20 20 20 20   '.gif';.       
0ec0: 20 72 65 6e 61 6d 65 49 63 6f 6e 20 28 20 24 69   renameIcon ( $i
0ed0: 64 20 29 3b 0a 20 20 20 20 20 20 20 20 24 66 69  d );.        $fi
0ee0: 6c 65 5f 72 65 73 75 6c 74 20 3d 20 6d 6f 76 65  le_result = move
0ef0: 5f 75 70 6c 6f 61 64 65 64 5f 66 69 6c 65 20 28  _uploaded_file (
0f00: 20 24 66 69 6c 65 5b 27 74 6d 70 5f 6e 61 6d 65   $file['tmp_name
0f10: 27 5d 2c 20 24 66 75 6c 6c 49 63 6f 6e 20 29 3b  '], $fullIcon );
0f20: 0a 20 20 20 20 20 20 20 20 2f 2f 20 65 63 68 6f  .        // echo
0f30: 20 22 55 70 6c 6f 61 64 20 52 65 73 75 6c 74 3a   "Upload Result:
0f40: 22 20 2e 20 24 66 69 6c 65 5f 72 65 73 75 6c 74  " . $file_result
0f50: 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20  ;.      } else. 
0f60: 20 20 20 20 20 69 66 20 28 20 24 66 69 6c 65 5b       if ( $file[
0f70: 27 73 69 7a 65 27 5d 20 3e 20 24 69 63 6f 6e 5f  'size'] > $icon_
0f80: 6d 61 78 5f 73 69 7a 65 20 29 0a 20 20 20 20 20  max_size ).     
0f90: 20 20 20 24 65 72 72 6f 72 20 3d 20 74 72 61 6e     $error = tran
0fa0: 73 6c 61 74 65 20 28 20 27 46 69 6c 65 20 73 69  slate ( 'File si
0fb0: 7a 65 20 65 78 63 65 65 64 73 20 6d 61 78 69 6d  ze exceeds maxim
0fc0: 75 6d 2e 27 20 29 3b 0a 20 20 20 20 20 20 65 6c  um.' );.      el
0fd0: 73 65 0a 20 20 20 20 20 20 69 66 20 28 20 24 66  se.      if ( $f
0fe0: 69 6c 65 5b 27 74 79 70 65 27 5d 20 21 3d 20 27  ile['type'] != '
0ff0: 69 6d 61 67 65 2f 67 69 66 27 20 29 0a 20 20 20  image/gif' ).   
1000: 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20 74 72       $error = tr
1010: 61 6e 73 6c 61 74 65 20 28 20 27 46 69 6c 65 20  anslate ( 'File 
1020: 69 73 20 6e 6f 74 20 61 20 67 69 66 20 69 6d 61  is not a gif ima
1030: 67 65 2e 27 20 29 3b 0a 20 20 20 20 7d 0a 20 20  ge.' );.    }.  
1040: 20 20 2f 2f 20 43 6f 70 79 20 69 63 6f 6e 20 69    // Copy icon i
1050: 66 20 6c 6f 63 61 6c 20 66 69 6c 65 20 73 70 65  f local file spe
1060: 63 69 66 69 65 64 2e 0a 20 20 20 20 24 75 72 6c  cified..    $url
1070: 6e 61 6d 65 20 3d 20 67 65 74 50 6f 73 74 76 61  name = getPostva
1080: 6c 75 65 20 28 20 27 75 72 6c 6e 61 6d 65 27 20  lue ( 'urlname' 
1090: 29 3b 0a 20 20 20 20 69 66 20 28 20 21 20 65 6d  );.    if ( ! em
10a0: 70 74 79 20 28 20 24 75 72 6c 6e 61 6d 65 20 29  pty ( $urlname )
10b0: 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 20   && file_exists 
10c0: 28 20 24 69 63 6f 6e 5f 70 61 74 68 20 2e 20 24  ( $icon_path . $
10d0: 75 72 6c 6e 61 6d 65 20 29 20 29 0a 20 20 20 20  urlname ) ).    
10e0: 20 20 63 6f 70 79 20 28 20 24 69 63 6f 6e 5f 70    copy ( $icon_p
10f0: 61 74 68 20 2e 20 24 75 72 6c 6e 61 6d 65 2c 20  ath . $urlname, 
1100: 24 69 63 6f 6e 5f 70 61 74 68 20 2e 20 27 63 61  $icon_path . 'ca
1110: 74 2d 27 20 2e 20 24 69 64 20 2e 20 27 2e 67 69  t-' . $id . '.gi
1120: 66 27 20 29 3b 0a 20 20 7d 0a 7d 0a 0a 69 66 20  f' );.  }.}..if 
1130: 28 20 65 6d 70 74 79 20 28 20 24 65 72 72 6f 72  ( empty ( $error
1140: 20 29 20 29 0a 20 20 64 6f 5f 72 65 64 69 72 65   ) ).  do_redire
1150: 63 74 20 28 20 27 63 61 74 65 67 6f 72 79 2e 70  ct ( 'category.p
1160: 68 70 27 20 29 3b 0a 0a 70 72 69 6e 74 5f 68 65  hp' );..print_he
1170: 61 64 65 72 20 28 29 3b 0a 65 63 68 6f 20 70 72  ader ();.echo pr
1180: 69 6e 74 5f 65 72 72 6f 72 20 28 20 24 65 72 72  int_error ( $err
1190: 6f 72 20 29 20 2e 20 70 72 69 6e 74 5f 74 72 61  or ) . print_tra
11a0: 69 6c 65 72 20 28 29 3b 0a 0a 3f 3e 0a           iler ();..?>.