'Path', 'name' => 'path', 'type' => 'text', 'default' => str_replace('\\', '/', dirname(__FILE__)) . '/data', 'size' => '50' ); $theme['config'][] = Array( 'title' => 'Images path', 'name' => 'images', 'type' => 'text', 'default' => str_replace('\\', '/', dirname(__FILE__)) . '/images', 'size' => '50' ); $__boards = listBoards(); $__default_boards = Array(); foreach($__boards as $__board) $__default_boards[] = $__board['uri']; $theme['config'][] = Array( 'title' => 'Boards', 'name' => 'boards', 'type' => 'text', 'comment' => '(boards to graph; space seperated)', 'size' => 24, 'default' => implode(' ', $__default_boards) ); $theme['config'][] = Array( 'title' => 'Excluded Boards', 'name' => 'boards_exclude', 'type' => 'text', 'comment' => '(above boards to exclude from the "combined" graph)', 'size' => 24 ); $theme['config'][] = Array( 'title' => 'Interval', 'name' => 'interval', 'type' => 'text', 'comment' => '(minutes between updates; max: 86400)', 'size' => 3, 'default' => '2' ); $theme['config'][] = Array( 'title' => 'Graph Width', 'name' => 'width', 'type' => 'text', 'size' => 3, 'default' => '700' ); $theme['config'][] = Array( 'title' => 'Graph Height', 'name' => 'height', 'type' => 'text', 'size' => 3, 'default' => '150' ); $theme['config'][] = Array( 'title' => 'Graph Rate', 'name' => 'rate', 'type' => 'text', 'comment' => 'Graph posts per X? ("minute", "day", "year", etc.)', 'size' => 3, 'default' => 'hour' ); $theme['install_callback'] = 'rrdtool_install'; if(!function_exists('rrdtool_install')) { function rrdtool_install($settings) { global $config; if(!is_numeric($settings['interval']) || $settings['interval'] < 1 || $settings['interval'] > 86400) return Array(false, 'Invalid interval: ' . $settings['interval'] . '. Must be an integer greater than 1 and less than 86400.'); if(!is_numeric($settings['width']) || $settings['width'] < 1) return Array(false, 'Invalid width: ' . $settings['width'] . '!'); if(!is_numeric($settings['height']) || $settings['height'] < 1) return Array(false, 'Invalid height: ' . $settings['height'] . '!'); if(!in_array($settings['rate'], Array('second', 'minute', 'day', 'hour', 'week', 'month', 'year'))) return Array(false, 'Invalid rate: ' . $settings['rate'] . '!'); $job = '*/' . $settings['interval'] . ' * * * * php -q ' . str_replace('\\', '/', dirname(__FILE__)) . '/cron.php' . PHP_EOL; if(function_exists('system')) { $crontab = tempnam($config['tmp'], 'tinyboard-rrdtool'); file_write($crontab, $job); @system('crontab ' . escapeshellarg($crontab), $ret); unlink($crontab); if($ret === 0) return ''; // it seems to install okay? } return Array(true, '
' . $job . ''); } } // Unique function name for building everything $theme['build_function'] = 'rrdtool_build'; ?>