Last Active
Preferred Name
  • Rollover SQL error

    Great to hear! :smiley:
  • Rollover SQL error

    Ah, In that case, I think it sounds like a PHP resources error. You may need to check and increase settings like max_input_vars and post_max_size to ensure that your server isn't exceeding it's built-in maximums for submitting form data. There's a couple ways to change these values. If you have access to the php.ini file on your server, this is the most guaranteed way to change these values. Otherwise, you can add them to an htaccess file or even at the bottom of Gibbon's config.php, examples below, but it depends on your server configuration whether it honours these settings:

    .htaccess example:
    php_value max_input_time         10800
    php_value max_execution_time     10800
    php_value max_input_vars         7000
    php_value post_max_size          128M
    Bottom of config.php:
    ini_set('max_input_time', 10800);
    ini_set('max_execution_time', 10800);
    ini_set('max_input_vars', 7000);
    ini_set('post_max_size', '128M');
  • Reporting Term total from Markbook

    Hi anteneh, looks like you're off to a great start. If you check out the MarkbookView class in the moudles/Markbook/src directory, this may help you with the term calculations you're looking for. You can see the MarkbookView in action on the Markbook page, however the code for that page is massive, so here's a snippet of how it's being used. In your script, you'd likely want to fetch your data, then loop over and process it using this class, and return the resulting array of data:
    // Build the markbook object for this class
    $markbook = new MarkbookView($gibbon, $pdo, $gibbonCourseClassID);
    // You don't necessarily need to use the below query, which is for a whole class. Just ensure your data has the same columns and names, and create a new DataSet() before passing it into the loadColumnsFromDataSet() method.
    $columns = $markbookGateway->queryMarkbookColumnsByClass($criteria, $gibbonCourseClassID);
    // Load the columns for the current page
    // Cache all weighting data for efficient use below
    if ($markbook->getSetting('enableColumnWeighting') == 'Y') {
        $markbook->cacheWeightings( );
    // Once the data is loaded into the $markbook object, you can get the calculated term and overall averages with methods like:
    $markbook->getTermAverage($rowStudents['gibbonPersonID'], $term['gibbonSchoolYearTermID']);
  • Student Attendance History Bug

    Hi Kelvin,

    I've fixed this issue for v22, you can see the change in the code here and apply it to your system if you'd like:

  • Manage Invoices & Manage Invoicees Status and Records

    Hi englandyow, welcome to the community and thanks for your kind words :smiley:

    For invoices, the status changes based on the actions you perform on the invoice. When you first create it, it is still pending. When you use the Issue action, it will become issued. Then, once issues, you can click the Edit action to enter a full or partial payment, and this will update the status.

    The status of the invoicee in the list is based on their enrolment status in the school (Students > Student Enrolment). A student only ever has one invoicee record, which determines who pays their invoices, but they can have as may invoices as needed.