Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
schedule_development [2016/12/06 12:43] textstorm created |
schedule_development [2016/12/08 22:10] (current) textstorm |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Schedule Development ====== | ====== Schedule Development ====== | ||
This page will cover the requirements for developing SchedMan schedules and activating them. | This page will cover the requirements for developing SchedMan schedules and activating them. | ||
+ | |||
+ | ===== Important Notes ===== | ||
+ | Please make sure you have set up your Cron Job as specified when you first installed the game engine, if you have not set up a Cron Job, SchedMan and some other features such as Auctions may not work correctly. | ||
+ | |||
+ | The //$db// database object **is** available to use in all schedules. | ||
+ | |||
+ | You **will not** be able to instantiate the //User class// or //use any functions// with schedules. | ||
+ | ===== Schedule Structure ===== | ||
+ | Start with the below code structure and add your own code underneath the "Put your schedule code here" comment: | ||
+ | <file php ScheduleStructure.php> | ||
+ | <?php | ||
+ | if($caller) { | ||
+ | //change this to your schedule reference (set-up in SchedMan GUI) | ||
+ | $schedref = "AUC1"; | ||
+ | | ||
+ | //Put your schedule code here | ||
+ | | ||
+ | //This tells SchedMan the schedule has finished running | ||
+ | //set $count to the number of rows you have updated ($queryresult->rowCount();) it will store how many rows were affected the last time the schedule ran | ||
+ | $db->query("UPDATE scheduler SET rowsaff = '$count', running = '0' WHERE schedref = '$schedref'"); | ||
+ | } | ||
+ | ?> | ||
+ | </file> | ||
+ | |||
+ | The below code is an example of a simple schedule to clear down old Administration Panel logs: | ||
+ | <file php ClearAdminLogsSchedule.php> | ||
+ | <?php | ||
+ | if($caller) { | ||
+ | $schedref = "LOG1"; | ||
+ | $date = date("Y-m-d"); | ||
+ | $dategen = new DateTime($date); | ||
+ | $dategen->modify('-30 day'); | ||
+ | $deldate = $dategen->format('Y-m-d'); | ||
+ | $del = $db->query("DELETE FROM panel_logs WHERE logdate < '$deldate'"); | ||
+ | $count = $del->rowCount(); | ||
+ | $db->query("UPDATE scheduler SET rowsaff = '$count' WHERE schedref = '$schedref'"); | ||
+ | } | ||
+ | ?> | ||
+ | </file> | ||
+ | ===== Adding a Schedule to SchedMan ===== | ||
+ | Navigate to SchedMan and go to the "Create" page. You should see something similar to below. | ||
+ | |||
+ | {{:schedman.png?200|}} | ||
+ | |||
+ | To add the schedule fill the boxes in with the following values: | ||
+ | |||
+ | **SchedRef:** The schedule reference you assigned to $schedref in the code | ||
+ | |||
+ | **Description:** A description of what the schedule does | ||
+ | |||
+ | **File:** Put the PHP file for the schedule you've developed in the following location - http://www.yourgame.com/AdMiN/includes/schedules/ - put the name of the file in the box (**example.php**) | ||
+ | |||
+ | **Time To Add:** Enter how often you would like the schedule to run in **Minutes** | ||
+ | |||
+ |