$new_id) { $new_id = $event['id']; } } $new_id++; # if a picture has been uploaded, then take of that file if(!empty($_FILES['picture']['name'])) { $data['picture'] = events_save_picture($new_id); } # create the new event's xml array $events[] = array( 'id' => $new_id, 'title' => $data['title'], 'date' => $data['date'], 'starttime' => $data['starttime'], 'endtime' => $data['endtime'], 'location' => $data['location'], 'description' => $data['description'], 'picture' => $data['picture'] ); # opening and closing tags for the new events file $opening_tags = "\n"; $closing_tags = "\n"; # open the old file and truncate it to write the new one $handle = fopen($_CONFIG['events_file'],'w'); fwrite($handle,$opening_tags); # now, write an entry for each event, including the new one foreach($events as $event) { $xml = events_create_xml($event); fwrite($handle,$xml); } fwrite($handle,$closing_tags); fclose($handle); # make a message to the user to let him know the event # was added successfully if(!err_exist()) { mesg_make("Event '{$data['title']}' successfully added."); } } ################################################# FUNCTION: events_save_picture # function events_save_picture($event_id) { global $_CONFIG; # we want to get the extension of this file to save it with the # right extension again $ext = explode('.',$_FILES['picture']['name']); $ext = '.'.$ext[count($ext)-1]; # the name and location where I'm saving this file to # note that the name of the file is the id number of the event $save_file_to = $_CONFIG['events_pics_dir'].'/event_'.$event_id.$ext; if(move_uploaded_file($_FILES['picture']['tmp_name'],$save_file_to)) { # change the permissions on the pictures so that they can # be displayed. Was always uploading to 600 chmod($save_file_to, 0644); # return the name of the picture file return('event_'.$event_id.$ext); } else { err_make('Could not upload the event picture. Event has still been added.','pub'); return(NULL); } } ####################################################### FUNCTION: events_delete # function events_delete($data) { global $_CONFIG; # gather all the current events from xml file $events = xml_parse_file($_CONFIG['events_file']); $events = xml_force_array($events['events']['event']); $deleted_event = ''; # opening and closing tags for the new events file $opening_tags = "\n"; $closing_tags = "\n"; # open the old file and truncate it to write the new one $handle = fopen($_CONFIG['events_file'],'w'); fwrite($handle,$opening_tags); # now, write an entry for each event, including the new one foreach($events as $event) { # skip adding this event to the new file if it is # the event we are looking to delete if($event['id'] == $data['delete_id']) { # get title of this deleted event so show it in the # message to the user $deleted_event = $event['title']; continue; } $xml = events_create_xml($event); fwrite($handle,$xml); } fwrite($handle,$closing_tags); fclose($handle); # make a message to the user to let him know the event # was added successfully if(!err_exist()) { mesg_make("Event '$deleted_event' successfully deleted."); } } ######################################################### FUNCTION: events_edit # function events_edit($data) { global $_CONFIG; # gather all the current events from xml file $events = xml_parse_file($_CONFIG['events_file']); $events = xml_force_array($events['events']['event']); # opening and closing tags for the new events file $opening_tags = "\n"; $closing_tags = "\n"; # open the old file and truncate it to write the new one $handle = fopen($_CONFIG['events_file'],'w'); fwrite($handle,$opening_tags); # now, write an entry for each event, including the new one foreach($events as $event) { # pause for a moment when we come across the event # that we are editing so that we can update it's data if($event['id'] == $data['edit_id']) { # the picture needs to be specially done if(!empty($_FILES['picture']['name'])) { $data['picture'] = events_save_picture($data['edit_id']); } # step through all the form data and update # the event array with the edited data foreach($data as $key => $value) { # there are form elements that aren't part of the # xml document, so only update the event array # with the form elements that are also xml elements if(array_key_exists($key,$event)) { $event[$key] = $value; } } } $xml = events_create_xml($event); fwrite($handle,$xml); } fwrite($handle,$closing_tags); fclose($handle); # make a message to the user to let him know the event # was added successfully if(!err_exist()) { mesg_make("Event '{$data['title']}' successfully edited."); } } ########################################################## FUNCTION: events_get # function events_get($event_id) { global $_CONFIG; # gather all the current events from xml file $events = xml_parse_file($_CONFIG['events_file']); $events = xml_force_array($events['events']['event']); # look for the event with the id we are looking for # if we find it, return the event array foreach($events as $event) { if($event['id'] == $event_id) { return($event); } } } ################################################### FUNCTION: events_create_xml # function events_create_xml($data) { # I think slashes are being automatically added by php to # the stuff passed via a post request. This will make # sure any text that the user entered are stripped before # we add them to the xml document foreach($data as $key => $value) { $data[$key] = stripslashes($value); } $xml = " {$data['title']} {$data['date']} {$data['starttime']} {$data['endtime']} {$data['location']} {$data['description']} {$data['picture']} "; return($xml); }