diff --git a/classes/helper.php b/classes/helper.php new file mode 100644 index 0000000..1b089ce --- /dev/null +++ b/classes/helper.php @@ -0,0 +1,64 @@ +. + +/** + * Provides helper functionality. + * + * @package mod_customcert + * @copyright 2021 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_customcert; + +use core_user\fields; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Class helper. + * + * Helper functionality for this module. + * + * @package mod_customcert + * @copyright 2021 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class helper { + + /** + * A centralised location for the all name fields. + * + * Returns a sql string snippet. + * + * @param string $tableprefix table query prefix to use in front of each field. + * @return string All name fields. + */ + public static function get_all_user_name_fields($tableprefix = '') { + $alternatenames = []; + foreach (fields::get_name_fields() as $field) { + $alternatenames[$field] = $field; + } + + if ($tableprefix) { + foreach ($alternatenames as $key => $altname) { + $alternatenames[$key] = $tableprefix . '.' . $altname; + } + } + + return implode(',', $alternatenames); + } +} \ No newline at end of file diff --git a/classes/task/email_certificate_task.php b/classes/task/email_certificate_task.php index fb27769..1c5878a 100644 --- a/classes/task/email_certificate_task.php +++ b/classes/task/email_certificate_task.php @@ -23,6 +23,8 @@ */ namespace mod_customcert\task; +use mod_customcert\helper; + defined('MOODLE_INTERNAL') || die(); /** @@ -102,7 +104,7 @@ class email_certificate_task extends \core\task\scheduled_task { $info->certificatename = $certificatename; // Get a list of all the issues. - $userfields = get_all_user_name_fields(true, 'u'); + $userfields = helper::get_all_user_name_fields('u'); $sql = "SELECT u.id, u.username, $userfields, u.email, ci.id as issueid, ci.emailed FROM {customcert_issues} ci JOIN {user} u diff --git a/verify_certificate.php b/verify_certificate.php index 9ed0018..dead636 100644 --- a/verify_certificate.php +++ b/verify_certificate.php @@ -93,7 +93,7 @@ if ($code) { $result->issues = array(); // Ok, now check if the code is valid. - $userfields = get_all_user_name_fields(true, 'u'); + $userfields = \mod_customcert\helper::get_all_user_name_fields('u'); $sql = "SELECT ci.id, u.id as userid, $userfields, co.id as courseid, co.fullname as coursefullname, c.id as certificateid, c.name as certificatename, c.verifyany