Example #1
0
function user_institution_graph($type = null)
{
    // Draw a bar graph showing the number of users in each institution
    require_once get_config('libroot') . 'institution.php';
    $institutions = Institution::count_members(false, true);
    if (count($institutions) > 1) {
        $dataarray = array();
        foreach ($institutions as &$i) {
            $dataarray[$i->displayname][get_string('institution')] = $i->members;
        }
        arsort($dataarray);
        // Truncate to avoid trying to fit too many results onto graph
        $dataarray = array_slice($dataarray, 0, 12, true);
        $data['graph'] = $type ? $type : 'bar';
        $data['graph_function_name'] = 'user_institution_graph';
        $data['title'] = get_string('institutionmembers', 'admin');
        $data['labels'] = array_keys($dataarray[$i->displayname]);
        $data['data'] = $dataarray;
        return $data;
    }
}
function build_institutions_html($filter, $showdefault, $query, $limit, $offset, &$count = null)
{
    global $USER;
    $institutions = Institution::count_members($filter, $showdefault, $query, $limit, $offset, $count);
    $smarty = smarty_core();
    $smarty->assign('institutions', $institutions);
    $smarty->assign('siteadmin', $USER->get('admin'));
    $data['tablerows'] = $smarty->fetch('admin/users/institutionsresults.tpl');
    $pagination = build_pagination(array('id' => 'adminstitutionslist_pagination', 'datatable' => 'adminstitutionslist', 'url' => get_config('wwwroot') . 'admin/users/institutions.php' . (!empty($query) ? '?query=' . urlencode($query) : ''), 'jsonscript' => 'admin/users/institutions.json.php', 'count' => $count, 'limit' => $limit, 'offset' => $offset, 'resultcounttextsingular' => get_string('institution', 'admin'), 'resultcounttextplural' => get_string('institutions', 'admin')));
    $data['pagination'] = $pagination['html'];
    $data['pagination_js'] = $pagination['javascript'];
    return $data;
}
function user_institution_graph()
{
    // Draw a bar graph showing the number of users in each institution
    require_once get_config('libroot') . 'institution.php';
    $institutions = Institution::count_members(false, true);
    if (count($institutions) > 1) {
        $dataarray = array();
        foreach ($institutions as &$i) {
            $dataarray[$i->displayname] = $i->members;
        }
        arsort($dataarray);
        // Truncate to avoid overlapping labels
        $dataarray = array_slice($dataarray, 0, 25, true);
        require_once get_config('libroot') . "pear/Image/Graph.php";
        $Graph =& Image_Graph::factory('graph', array(300, 300));
        $Font =& $Graph->addNew('font', 'Vera');
        $Font->setSize(9);
        $Graph->setFont($Font);
        $Graph->add(Image_Graph::vertical(Image_Graph::vertical(Image_Graph::factory('title', array(get_string('institutionmembers', 'admin'), 9)), $Plotarea = Image_Graph::factory('plotarea'), 5), $Date = Image_Graph::factory('title', array(format_date(time(), 'strftimew3cdate'), 7)), 96));
        $Date->setAlignment(IMAGE_GRAPH_ALIGN_RIGHT);
        $DateFont =& $Graph->addNew('font', 'Vera');
        $DateFont->setColor('gray@0.8');
        $Date->setFont($DateFont);
        $Dataset =& Image_Graph::factory('dataset', array($dataarray));
        $Plot =& $Plotarea->addNew('bar', array(&$Dataset));
        $Plot->setLineColor('gray');
        $Plot->setSpacing(2);
        $FillArray =& Image_Graph::factory('Image_Graph_Fill_Array');
        $Plot->setFillStyle($FillArray);
        $FillArray->addColor('blue@0.6');
        $FillArray->addColor('green@0.6');
        $FillArray->addColor('red@0.6');
        $FillArray->addColor('yellow@0.6');
        $FillArray->addColor('orange@0.6');
        $AxisX =& $Plotarea->getAxis(IMAGE_GRAPH_AXIS_X);
        if (count($dataarray) > 4) {
            $AxisX->setFontAngle('vertical');
        }
        $AxisX->setFontSize(8);
        $Graph->done(array('filename' => stats_graph_path('institutions')));
    }
}