Problems with locallib.php file

Problems with locallib.php file

by Saúl Chacón Grimaldo -
Number of replies: 1

Hello everyone.

I am in the development of a module and i try to use the file locallib.php to create functions of my module, it happens that when i reach the line where i import the file or when i call the function that i created, i get a message Error or simply the page is left blank.

I call a function after checking for a button

/*code*/
require(dirname(FILE).'/locallib.php'); //i have also tried require_once, include and include_once
/*code*/
if (isset($formdata->button)) {
    /*code*/
    if (validation) {
        newmodule_function_name($var1, $var2, $var3);
        /*code*/
    }
}

The locallib file is very basic

defined('MOODLE_INTERNAL') || die();
require(dirname(FILE).'/file.php'); //I use a class
/**
 * Function description
 *
 * @param string $var1
 * @param string $var2
 * @param array $var3
 */
function newmodule_function_name($var1, $var2, $var3) {
    // code
}

The function inside the file does not return anything, and so i leave it empty without any code, it still does not work. i do not know what i'm doing wrong, if someone could tell me how i could use that file i would appreciate it.

Average of ratings: -
In reply to Saúl Chacón Grimaldo

Re: Problems with locallib.php file

by Karen Holland -
Picture of Core developers Picture of Plugin developers Picture of Testers

Hi Saúl, good luck with your plugin development!

I'd suggest including your files with the following:

$ require_once(__DIR__.'/nameoffile.php');

This is a standard Moodle way of defining the current directory's relative pathway, used in many areas (you can grep the core code for examples).

Also check out https://docs.moodle.org/dev/Coding_style at the "Require / include" section for more details.

https://docs.moodle.org/dev/Blocks and https://docs.moodle.org/dev/Activity_modules is also excellent for an introduction to moodle plugin development

Also I'd highly recommend Moodle 3.1 LTS modules development by Tomasz Muras, very comprehensive clear explanations and very readable.