/** * Called to update the cached reading data for given reading plan * * @param integer $post_id * @return object Reading Data (@see bfox_plan_reading_data() for description) */ function bfox_plan_update_reading_data($post_id = 0, $scheduler = null) { $post = get_post($post_id); if (!$scheduler) { $scheduler = bfox_plan_scheduler_for_post($post_id); } $reading_data = new stdClass(); $reading_data->dates = array(); $reading_data->latest_reading_id = -1; $parser = new BfoxPlanParser(); $parser->parseContent($post->post_content, "\n"); $reading_data->refs = $parser->readingRefs; $reading_data->leftovers = $parser->readingLeftovers; if ($scheduler->startTime()) { $scheduler->pushNumDates(count($reading_data->refs)); $reading_data->dates = $scheduler->dates(); $reading_data->latest_reading_id = $scheduler->latestDateIndex(); } wp_cache_set($post_id, $reading_data, 'bfox_plan_reading_data'); return $reading_data; }
require_once 'bfox_plan_scheduler.php'; global $showSuccess; $showSuccess = true; function assertArrays($a1, $a2) { if (!assert($a1 == $a2)) { print_r($a1); print_r($a2); exit; } } /* Test BfoxPlanParser */ $content = "Reading 1: Gen 1-10; Exo 1-2;\nReading 2 - 1 Sam 5 (good); 2 sam 6 (great)\nHello\nReading 3 -\n\n1 sam 7\n\n"; $parser = new BfoxPlanParser(); $parser->parseContent($content, "\n"); assertArrays($parser->readingRefStrings(), array('Genesis 1-10; Exodus 1-2', '1 Samuel 5; 2 Samuel 6', '1 Samuel 7')); /* Test BfoxPlanScheduler */ date_default_timezone_set('America/New_York'); // Suppress silly php date warnings by setting time zone manually function outputSchedulerDates($scheduler, $numDates) { print_r($scheduler->dates($numDates)); echo "Latest Date Index: " . $scheduler->latestDateIndex . "\n"; } function assertLatest($scheduler, $date, $targetDate, $message) { global $showSuccess;