* * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. * * @author Ben Klang */ @define('ISKBOARD_BASE', dirname(__FILE__)); require_once ISKBOARD_BASE . '/lib/base.php'; // Form libraries. require_once 'Horde/Form.php'; require_once 'Horde/Form/Renderer.php'; require_once 'Horde/Variables.php'; require_once ISKBOARD_BASE . '/lib/Form/SearchPilots.php'; $renderer = new Horde_Form_Renderer(); $vars = Variables::getDefaultVariables(); $form = new SearchPilotsForm(_("Graph Pilot Contributions"), $vars); if ($form->isSubmitted() && $form->validate($vars, true)) { $corporation = $vars->get('corporation'); $pilots = $vars->get('pilots'); $start = new Horde_Date($vars->get('startdate')); $end = new Horde_Date($vars->get('enddate')); if (is_a($start, 'PEAR_Error') || is_a($end, 'PEAR_Error')) { $notification->push(_("Invalid date requested.")); } else { // See if we have cached data $cachekey = md5(serialize(array('getMonthlyISKStats', $start, $end, $corporation, $pilots))); // Use 0 lifetime to allow cache lifetime to be set when storing // the object. $stats = $cache->get($cachekey, 1); if ($stats === false) { $stats['monthlyincome'] = array('Total Income (ISK)' => $iskboard_driver->getMonthlyISKStats($start, $end, $corporation, $pilots)); if (is_a($stats['monthlyincome'], 'PEAR_Error')) { $notification->push($stats['monthlyincome']); $stats['monthlyincome'] = array(); } $stats['amountbyactivity'] = array('Total Income (ISK)' => $iskboard_driver->getActivityISKStats($start, $end, $corporation, $pilots)); if (is_a($stats['amountbyactivity'], 'PEAR_Error')) { $notification->push($stats['amountbyactivity']); $stats['amountbyactivity'] = array(); } $stats['amountbypilot'] = array('Total Income (ISK)' => $iskboard_driver->getPilotISKStats($start, $end, $corporation, $pilots)); if (is_a($stats['amountbypilot'], 'PEAR_Error')) { $notification->push($stats['amountbypilot']); $stats['amountbypilot'] = array(); } $res = $cache->set($cachekey, serialize($stats), 600); if ($res === false) { Horde::logMessage('The cache system has experienced an error. Unable to continue.', __FILE__, __LINE__, PEAR_LOG_ERR); $notification->push(_("Internal error. Details have been logged for the administrator.")); unset($stats); } } else { // Cached data is stored serialized $stats = unserialize($stats); } unset($_SESSION['iskboard']['lastsearch']['params']); $_SESSION['iskboard']['lastsearch']['params'] = array( 'corporation' => $vars->get('corporation'), 'pilots' => $vars->get('pilots'), 'startdate' => $vars->get('startdate'), 'enddate' => $vars->get('enddate')); } } else { if (isset($_SESSION['iskboard']['lastsearch']['params'])) { foreach($_SESSION['iskboard']['lastsearch']['params'] as $var => $val) { $vars->set($var, $val); } } if (isset($_SESSION['iskboard']['lastsearch']['data'])) { $data = $_SESSION['iskboard']['lastsearch']['data']; } } $title = _("ISK Generation Graphs"); require ISKBOARD_TEMPLATES . '/common-header.inc'; require ISKBOARD_TEMPLATES . '/menu.inc'; if (!empty($form)) { $form->renderActive($renderer, $vars, Horde::selfUrl(), 'post'); } if (!empty($stats['monthlyincome'])) { $monthlyincome_graph = Horde::applicationUrl('graphgen.php'); $monthlyincome_graph = Util::addParameter($monthlyincome_graph, array( 'graph' => 'monthlyincome', 'key' => $cachekey)); echo '
'; echo '
'; } if (!empty($stats['amountbyactivity'])) { $amountbyactivity_graph = Horde::applicationUrl('graphgen.php'); $amountbyactivity_graph = Util::addParameter($amountbyactivity_graph, array( 'graph' => 'amountbyactivity', 'key' => $cachekey)); echo '
'; echo '
'; } if (!empty($stats['amountbypilot'])) { $amountbypilot_graph = Horde::applicationUrl('graphgen.php'); $amountbypilot_graph = Util::addParameter($amountbypilot_graph, array( 'graph' => 'amountbypilot', 'key' => $cachekey)); echo '
'; echo '
'; } require $registry->get('templates', 'horde') . '/common-footer.inc'; // Don't leave stale stats lying about unset($_SESSION['iskboard']['stats']);