Alternatives to Reporting Module

I’m looking to use SQL queries to get some more flexible output, to then put into transcript forms, report card forms, progress reports, and other documents.

I currently cannot use Query Builder (which I posted about separately). My shared hosting provider appears to have a tool that will make it easy for me to query my Gibbon SQL database. I also found the list of database tables and columns.

I think will be able to piece through this on my own (mostly), so I don’t want to ask a whole lot of questions about how to accomplish what I’m trying to do. The part that has me stymied for now is where I could get the course cumulative averages for the current term and for a given past term (during the current academic year). Is there a way to pull those, or are they not recorded data in the database that I can pull?


Hi Ernest,

No problem, questions are always welcome :smiley: The markbook cumulative marks are currently live-calculated and not recorded in the database, any addition or change in the assignments will cause the mark to fluctuate.

For a report card or transcript mark, my school’s solution has been to have a tool to copy over the live markbook averages into a separate table that become posted grades. This is done during reporting time, and these are then fixed historical values that can be accessed and looked up for students. The exact way this is coded is relative to our current setup (based initially on a commercial version of the Reporting module, with quite a few modifications to fit our school’s needs).

If you go this route I can give you some idea of where to start. Here’s some info on the markbookView class:

// Add this to the top of your script (not currently in the auto-loader)
require_once $_SESSION[$guid]['absolutePath']."/modules/Markbook/src/markbookView.php";

// Build the markbook object for a class
// The $gibbon and $pdo objects already exist in v13, just pass them in
$markbook = new Module\\Markbook\\markbookView($gibbon, $pdo, $gibbonCourseClassID);

// Use this method to calculate and cache all weighting data.
// This method can optionally be passed a $gibbonPersonID of a
// student to only calculate & cache numbers for one student.

// The calculated values can be retrieved per student with the
// following methods:

// Get the cumulative average of all terms

// Get the average for a single term
$markbook->getTermAverage($gibbonPersonID, $gibbonSchoolYearTermID);

// Get the final grade, which includes year-end weighted values
// depending on the setup of a courses weightings

Hope this helps! It's a custom solution that requires some coding, but this may get you started. Ideally there will be some more built-in reporting options in the future too.

I’m afraid I don’t know how to implement this. You say to add this on top of my script, but I have no idea what script you are referring to. The idea of creating fixed historical values is basically what I am looking for. I understand that I am looking at comment and commands, but I do not know where I would enter any of these, or how I would execute them once entered.

@ross - Thank you for your direction here I believe our school will need to follow your lead here. I’m very new to Gibbon.

I am attempting to implement your code above. I first tried to implement it in a Custom Code Handler in a “index_custom.php” file. That crashed the site with internal 500 error.

Naturally, then I downloaded the stater module and began to copy it in the moduleFunctions.php… this produced the "Oh No… " message. When I delete the code ans write some basic php functions the page loads fine.

Am I missing something you have installed in your system, namely “based initially on a commercial version of the Reporting module”? I fear I may also be of a different version… do your functions have dependencies or have they been deprecated in v17?


The easiest for you will probably be to have a closer look at how Sandra is using these functions in the code of Gibbon.

There are plenty of examples, e.g.

  • modules\Markbook\markbook_viewExportAllContents.php
  • modules\Markbook\markbook_view_allClassesAllData.php