| 1 | <?php |
| 2 | if(preg_match('/36$/', $event) || (!empty($_POST['event']) && preg_match('/36$/', $_POST['event']))) { |
| 3 | $event = preg_replace('/36$/', '', $event); |
| 4 | $_POST['event'] = preg_replace('/36$/', '', $_POST['event']); |
| 5 | $_POST['nodeshell_id'] = base_convert($_POST['nodeshell_id'], 36, 10); //put36 |
| 6 | $_POST['new_parent'] = base_convert($_POST['new_parent'], 36, 10); //set_parent36 |
| 7 | } |
| 8 | |
| 9 | if($event=='delete' || (!empty($_POST['event']) && $_POST['event']=='delete')) { |
| 10 | //XXX TODO FIXME UglyFuckingHack - should go to delete.inc (but something is broken) |
| 11 | $event='set_parent'; |
| 12 | $_POST['event']=$event; |
| 13 | $_POST['new_parent']=123456; //XXX TODO FIXME Hardcoded |
| 14 | } |
| 15 | |
| 16 | //do not make a permission check if an event was executed before |
| 17 | if ($_SESSION['eventz'][$event]) { |
| 18 | include_once(INCLUDE_DIR."eventz/$event.inc"); |
| 19 | $status=$event(); |
| 20 | } |
| 21 | |
| 22 | elseif (is_file(INCLUDE_DIR."eventz/$event.inc")) { |
| 23 | $event_id=nodes::getNodeIdByName($event,"event://$event"); |
| 24 | $event_node=nodes::getNodeById($event_id,$_SESSION['user_id']); |
| 25 | if ( |
| 26 | ($event_node['node_system_access']=='public') |
| 27 | || ($event_node['node_creator']==$_SESSION['user_id']) |
| 28 | || ($event_node['node_permission']=='op') |
| 29 | || ($event_node['node_permission']=='execute') |
| 30 | || ($event_node['node_permission']=='master') |
| 31 | || ($event=='display') |
| 32 | ) { |
| 33 | require_once(INCLUDE_DIR."eventz/$event.inc"); |
| 34 | $status=$event(); |
| 35 | $_SESSION['eventz'][$event]=true; |
| 36 | |
| 37 | } else { |
| 38 | $error=$error_messages['EVENT_NOT_PERMITTED']; |
| 39 | } |
| 40 | |
| 41 | } |
| 42 | |
| 43 | else { |
| 44 | $error=$error_messages['EVENT_NOT_EXISTENT']; |
| 45 | $status=false; |
| 46 | } |
| 47 | |
| 48 | if (!$status) { |
| 49 | require_once(INCLUDE_DIR."eventz/display.inc"); |
| 50 | display(); |
| 51 | } |
| 52 | |
| 53 | elseif ($status>1) { |
| 54 | Header("Location: /id/".$status."/"); |
| 55 | } |
| 56 | |
| 57 | elseif ($status && $event!='display') { |
| 58 | Header("Location: /id/".$node['node_id']."/"); |
| 59 | } |
| 60 | |
| 61 | |
| 62 | ?> |