Custom certificate
Versions
Current version
5.2.3 (2026042004)
5.2.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2026042004
Version release name: 5.2.3
Maturity: Stable
Supported Moodle versions: 5.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.2.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.2.3] - 2026-07-06
Added
- Added new Group name element that displays the name of the group(s) a student belongs to in the course (#155).
Fixed
- Fixed
dml_missing_record_exceptionwhen previewing a site-level template that has no associated certificate activity (#840).
[5.2.2] - 2026-06-10
Security
- Hardened element and page ownership validation across edit, move, AJAX, external API, and fragment handlers to prevent cross-template access using mismatched request IDs (#818).
[5.2.1] - 2026-06-08
Fixed
- Fixed
TypeErrorcaused by$instanceidnot being cast tointin thecoursefieldelement (#804). - Fixed
TypeErrorin thedateandgradeelements whereget_mod_grade_info,get_grade_item_info, andget_course_grade_inforequire integer arguments. - Fixed
TypeErrorin thedateandexpiryelements caused by legacy integerdateformatvalues not being cast tostring.
[5.2.0] - 2026-05-24
Requirements
- Minimum supported version is Moodle 5.2 (PHP 8.3+).
Added
Major element API changes
Custom Certificate elements now separate element payload, layout, and rendering concerns.
Element data that was previously stored in dedicated columns (font, fontsize, colour, width) is now stored inside the element JSON payload in customcert_elements.data. Layout values (posx, posy, refpoint, alignment) are managed by the element repository/layout service rather than by individual element implementations.
Third-party elements should migrate to the new element interfaces under mod_customcert\element.
The legacy mod_customcert\element base class remains available for compatibility during this major release, but legacy hooks with replacement interfaces are deprecated and will be removed in a future major version.
Important: Third-party element plugins that extend
mod_customcert\elementand overriderender()orrender_html()must update their method signatures to match the new typed signatures before upgrading to 5.2. Plugins with old untyped signatures for these two methods will fail at class-load time. The deprecated legacy hooks (render_form_elements,definition_after_data,validate_form_elements,save_form_elements,save_unique_data,after_restore,copy_element) retain untyped base signatures and are intended to remain compatible with old-style untyped overrides.can_add()retains its typedboolreturn and is not deprecated; third-party overrides must declarepublic static function can_add(): bool. See the "Element rendering signatures" section below for the requiredrender/render_htmlsignatures.
New elements should use:
element_interface— for the core element contract (identity, payload, type)form_element_interface— required for registered certificate elements (along withrenderable_element_interface); provides edit-form lifecycle hooks includingbuild_form(). Note:form_buildable_interfacewas never released and has been fully replaced byform_element_interface.stylable_element_interface— only when the element supports standard visual styling (font,fontsize,colour,width)layout_element_interface— exposes repository-managed layout values (posx,posy,refpoint,alignment) for common PDF/HTML rendering helperspersistable_element_interface— normalises submitted form data into the JSON payloadvalidatable_element_interface— validates submitted form datapreparable_form_interface— populates edit-form fields from stored payloadrestorable_element_interface— remaps internal references after backup restorecopyable_element_interface— implementcopy_from(\stdClass $source): boolwhen an element needs custom logic during copy operations (e.g. copying associated files to a new context); the repository/service layer calls this instead of the deprecatedcopy_element()hook- Repository/service APIs for persistence and layout changes
Elements using the common renderer helpers (element_helper::render_content() / render_html_content()) must also implement both stylable_element_interface and layout_element_interface. Elements with fully custom rendering may implement renderable_element_interface directly without these.
An unknown_element fallback is used when a requested element type is not registered; it renders gracefully rather than throwing.
No deprecated bundled element implementations are shipped in this release. Deprecated element hooks remain only on the legacy mod_customcert\element base class to support third-party plugin migration.
Legacy internal state removed: Third-party elements that accessed protected internal state directly will need to update. In particular, direct access to
$this->element,$this->font,$this->fontsize,$this->colour,$this->width, or magic property fallback (__get()) must be replaced with the new getters, payload helpers, and repository-managed layout APIs. Visual values now live incustomcert_elements.data; layout values are managed separately by the repository/layout services.
Template export and import
- Templates can now be exported as a ZIP archive and imported on any Moodle site running this plugin.
- Export: from the Manage templates page, click the download icon next to any template to download a
.zipfile containing the template structure (pages and elements) and any associated files (e.g. images used by elements). - Import: from the Manage templates page, click Import template to upload a previously exported
.zipand recreate the template in the current context. - New export/import service layer under
mod_customcert\export:
template_file_manager— orchestrates ZIP creation and extraction, delegates totemplatefor DB writes, and rolls back copied files on failure.template/page/element— transactional DB import of template structure; each level delegates to the next.template_appendix_manager— handles copying element-associated files in and out of the ZIP (manifest-driven, with path-traversal and size-limit guards).template_import_logger_interface/template_logger— collects warnings produced during import (e.g. unknown element types) and surfaces them as Moodle notifications.
Service layer
- New service-layer APIs for template/page/element CRUD:
mod_customcert\service\template_service— orchestrates template/page/element create, update, delete, and move operations (plus DTOs such aspage_update)mod_customcert\service\template_repository— low-level DB access forcustomcert_templatesmod_customcert\service\page_repository— low-level DB access forcustomcert_pagesmod_customcert\service\element_repository— low-level DB access forcustomcert_elementsmod_customcert\service\template_duplication_service— transactional copy of a template with all its pages and elementsmod_customcert\service\template_load_service— replaces an existing template's pages/elements with content from another templatemod_customcert\service\item_move_service— handles moving pages and elements by swapping sequencesmod_customcert\service\pdf_generation_service— PDF generation, preview, and filename computation
- New certificate issuance and delivery services:
mod_customcert\service\certificate_issue_service— issues certificates and generates unique codesmod_customcert\service\certificate_download_service— handles bulk certificate download for instances and site-widemod_customcert\service\certificate_time_service— computes course time for certificate conditionsmod_customcert\service\certificate_email_service— sends certificate emails to students and teachersmod_customcert\service\certificate_issuer_service— orchestrates the scheduled issuance and email pipeline
- New repository classes:
mod_customcert\service\issue_repository— queriescustomcert_issuesmod_customcert\service\certificate_repository— queries certificates per usermod_customcert\service\issue_email_repository— tracks email send state per issue
- New rendering infrastructure:
mod_customcert\service\element_renderer— interface for the v2 element rendering pipeline (PDF and HTML surfaces)mod_customcert\service\pdf_renderer—element_rendererimplementation for PDF outputmod_customcert\service\html_renderer—element_rendererimplementation for the designer preview
Other additions
mod_customcert\template::from_record(\stdClass $record)is now the preferred entry point for instantiating a template from a database record;mod_customcert\template::create(string $name, int $contextid)is the preferred entry point for creating a new template. The constructor signature has changed to acceptint $id, string $name, int $contextidindividually (previously it accepted a raw\stdClass $record) — new code should usefrom_record()rather than callingnew template(...)directly, though the constructor remains functional.mod_customcert\element\legacy_element_adapter— internal compatibility adapter used by the factory to expose legacy elements extendingmod_customcert\elementthrough the new element interfaces. Plugin authors should migrate elements to the new interfaces directly rather than depending on the adapter.- Static utility methods on
certificatehave been moved to dedicated service/repository classes:
certificate::get_issues()/certificate::get_number_of_issues()/certificate::get_conditional_issues_sql()'issue_repositorycertificate::get_number_of_certificates_for_user()/certificate::get_certificates_for_user()'certificate_repositorycertificate::get_fonts()/certificate::get_font_sizes()'element_helpercertificate::set_protection()'form_servicecertificate::upload_files()'form_service
- Expanded automated tests covering element API behaviour and upgrade/restore data migration paths.
Changed
Element storage and data format
customcert_elementsno longer hasfont,fontsize,colour, orwidthcolumns; these values are now stored inside the JSON payload incustomcert_elements.data.customcert_elements.datais now treated as a JSON payload:
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
"Hello"'{ "value": "Hello" }). - Upgrade and restore routines automatically migrate existing data.
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
Migration impact for element plugins:
- Do NOT read/write
$element->font,$element->fontsize,$element->colour,$element->widthfrom DB fields (they no longer exist). - Use element getters (
get_font(),get_fontsize(),get_colour(),get_width()) which now read from the JSON payload. - Element plugins should return all relevant keys from
persistable_element_interface::normalise_data(), including the standard visual keys (font,fontsize,colour,width) where applicable; they are no longer merged centrally.
Reserved JSON keys (visuals):
- The following keys are used by core as standard visual fields in
customcert_elements.data:
width,font,fontsize,colour
- Element plugins that expose these visual attributes should return them from
normalise_data()explicitly. Plugins should not use these keys for unrelated element-specific payload data.
Editing + persistence flow
- Element edit handlers normalise element-specific data into a JSON payload via
normalise_data(); visual fields (font,fontsize,colour,width) must be returned explicitly by the element's ownnormalise_data()implementation so the stored payload is self-contained. - Saving elements is hardened to avoid corrupting stored JSON payloads when a caller provides a JSON list/array.
Element construction + adapters
- Registered element classes are constructed by the element factory using
new Class(stdClass $record). The removed experimentalconstructable_element_interface::from_record()path was never released and is no longer part of the API. - Factory returns
mod_customcert\element\element_interface; legacy elements may be wrapped bymod_customcert\element\legacy_element_adapter.
- Avoid
instanceofchecks against legacy concrete classes; prefer$element->get_type()and/or$element->get_inner().
- Avoid
Element rendering signatures
Breaking change for third-party element plugins: The
render()andrender_html()abstract methods onmod_customcert\elementnow have strict typed signatures and return types. Third-party element plugins that override these methods with the old untyped signatures will fail at class-load time with a PHP fatal error, even before the adapter layer can help. Plugins must update their method signatures before upgrading to 5.2. See the before/after signatures below.
- Element render methods are now typed and accept an optional renderer.
Before (legacy):
public function render($pdf, $preview, $user) { /* ... */ }
public function render_html() { /* ... */ }
After (5.2+):
use mod_customcert\service\element_renderer;
public function render(
pdf $pdf,
bool $preview,
\stdClass $user,
?element_renderer $renderer = null
): void {}
public function render_html(?element_renderer $renderer = null): string {}
element_helper::render_content()remains unchanged for backward compatibility, but element plugins must update their method signatures as shown above.
Restore / backup compatibility
- Restoring backups created on older versions is supported: legacy
font/fontsize/colour/widthvalues are merged into the JSON payload during restore. - Backups created on 5.2+ store visual fields inside JSON and are not guaranteed to restore correctly on older plugin versions (no backwards compatibility guarantee).
Fixed
- Improved robustness of upgrade/restore migrations:
- Better handling of missing/partial legacy fields.
- Safer normalisation of element payloads during restore.
- Legacy border elements that stored thickness as a scalar
datavalue are now migrated so width is preserved correctly.
certificate_issue_service::generate_code()now throws amoodle_exceptionafter 10 failed attempts to generate a unique code, preventing an infinite loop in systems with a very large number of issued certificates.- Web service hardening:
external::save_element()ignores JSON list payloads fordatato prevent numeric-key pollution of stored element JSON.
- Fixed issuing certificates to suspended users (#781).
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
Deprecated
Template methods
The following template methods are now shims that emit developer debugging and delegate to service classes. Third-party developers should swap legacy calls for the service methods; the shims will be removed in a future release.
template::save()'template_service::update()template::add_page()/template::save_page()'template_service::add_page()/template_service::save_pages()template::delete()/template::delete_page()/template::delete_element()'template_service::delete()/template_service::delete_page()/template_service::delete_element()template::copy_to_template()'template_service::copy_to_template()template::move_item()'template_service::move_item()(service constants are available; raw strings remain supported)template::generate_pdf()'pdf_generation_service::generate_pdf()
5.2.2 (2026042003)
5.2.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2026042003
Version release name: 5.2.2
Maturity: Stable
Supported Moodle versions: 5.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.2.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.2.2] - 2026-06-10
Security
- Hardened element and page ownership validation across edit, move, AJAX, external API, and fragment handlers to prevent cross-template access using mismatched request IDs (#818).
[5.2.1] - 2026-06-08
Fixed
- Fixed
TypeErrorcaused by$instanceidnot being cast tointin thecoursefieldelement (#804). - Fixed
TypeErrorin thedateandgradeelements whereget_mod_grade_info,get_grade_item_info, andget_course_grade_inforequire integer arguments. - Fixed
TypeErrorin thedateandexpiryelements caused by legacy integerdateformatvalues not being cast tostring.
[5.2.0] - 2026-05-24
Requirements
- Minimum supported version is Moodle 5.2 (PHP 8.3+).
Added
Major element API changes
Custom Certificate elements now separate element payload, layout, and rendering concerns.
Element data that was previously stored in dedicated columns (font, fontsize, colour, width) is now stored inside the element JSON payload in customcert_elements.data. Layout values (posx, posy, refpoint, alignment) are managed by the element repository/layout service rather than by individual element implementations.
Third-party elements should migrate to the new element interfaces under mod_customcert\element.
The legacy mod_customcert\element base class remains available for compatibility during this major release, but legacy hooks with replacement interfaces are deprecated and will be removed in a future major version.
Important: Third-party element plugins that extend
mod_customcert\elementand overriderender()orrender_html()must update their method signatures to match the new typed signatures before upgrading to 5.2. Plugins with old untyped signatures for these two methods will fail at class-load time. The deprecated legacy hooks (render_form_elements,definition_after_data,validate_form_elements,save_form_elements,save_unique_data,after_restore,copy_element) retain untyped base signatures and are intended to remain compatible with old-style untyped overrides.can_add()retains its typedboolreturn and is not deprecated; third-party overrides must declarepublic static function can_add(): bool. See the "Element rendering signatures" section below for the requiredrender/render_htmlsignatures.
New elements should use:
element_interface— for the core element contract (identity, payload, type)form_element_interface— required for registered certificate elements (along withrenderable_element_interface); provides edit-form lifecycle hooks includingbuild_form(). Note:form_buildable_interfacewas never released and has been fully replaced byform_element_interface.stylable_element_interface— only when the element supports standard visual styling (font,fontsize,colour,width)layout_element_interface— exposes repository-managed layout values (posx,posy,refpoint,alignment) for common PDF/HTML rendering helperspersistable_element_interface— normalises submitted form data into the JSON payloadvalidatable_element_interface— validates submitted form datapreparable_form_interface— populates edit-form fields from stored payloadrestorable_element_interface— remaps internal references after backup restorecopyable_element_interface— implementcopy_from(\stdClass $source): boolwhen an element needs custom logic during copy operations (e.g. copying associated files to a new context); the repository/service layer calls this instead of the deprecatedcopy_element()hook- Repository/service APIs for persistence and layout changes
Elements using the common renderer helpers (element_helper::render_content() / render_html_content()) must also implement both stylable_element_interface and layout_element_interface. Elements with fully custom rendering may implement renderable_element_interface directly without these.
An unknown_element fallback is used when a requested element type is not registered; it renders gracefully rather than throwing.
No deprecated bundled element implementations are shipped in this release. Deprecated element hooks remain only on the legacy mod_customcert\element base class to support third-party plugin migration.
Legacy internal state removed: Third-party elements that accessed protected internal state directly will need to update. In particular, direct access to
$this->element,$this->font,$this->fontsize,$this->colour,$this->width, or magic property fallback (__get()) must be replaced with the new getters, payload helpers, and repository-managed layout APIs. Visual values now live incustomcert_elements.data; layout values are managed separately by the repository/layout services.
Template export and import
- Templates can now be exported as a ZIP archive and imported on any Moodle site running this plugin.
- Export: from the Manage templates page, click the download icon next to any template to download a
.zipfile containing the template structure (pages and elements) and any associated files (e.g. images used by elements). - Import: from the Manage templates page, click Import template to upload a previously exported
.zipand recreate the template in the current context. - New export/import service layer under
mod_customcert\export:
template_file_manager— orchestrates ZIP creation and extraction, delegates totemplatefor DB writes, and rolls back copied files on failure.template/page/element— transactional DB import of template structure; each level delegates to the next.template_appendix_manager— handles copying element-associated files in and out of the ZIP (manifest-driven, with path-traversal and size-limit guards).template_import_logger_interface/template_logger— collects warnings produced during import (e.g. unknown element types) and surfaces them as Moodle notifications.
Service layer
- New service-layer APIs for template/page/element CRUD:
mod_customcert\service\template_service— orchestrates template/page/element create, update, delete, and move operations (plus DTOs such aspage_update)mod_customcert\service\template_repository— low-level DB access forcustomcert_templatesmod_customcert\service\page_repository— low-level DB access forcustomcert_pagesmod_customcert\service\element_repository— low-level DB access forcustomcert_elementsmod_customcert\service\template_duplication_service— transactional copy of a template with all its pages and elementsmod_customcert\service\template_load_service— replaces an existing template's pages/elements with content from another templatemod_customcert\service\item_move_service— handles moving pages and elements by swapping sequencesmod_customcert\service\pdf_generation_service— PDF generation, preview, and filename computation
- New certificate issuance and delivery services:
mod_customcert\service\certificate_issue_service— issues certificates and generates unique codesmod_customcert\service\certificate_download_service— handles bulk certificate download for instances and site-widemod_customcert\service\certificate_time_service— computes course time for certificate conditionsmod_customcert\service\certificate_email_service— sends certificate emails to students and teachersmod_customcert\service\certificate_issuer_service— orchestrates the scheduled issuance and email pipeline
- New repository classes:
mod_customcert\service\issue_repository— queriescustomcert_issuesmod_customcert\service\certificate_repository— queries certificates per usermod_customcert\service\issue_email_repository— tracks email send state per issue
- New rendering infrastructure:
mod_customcert\service\element_renderer— interface for the v2 element rendering pipeline (PDF and HTML surfaces)mod_customcert\service\pdf_renderer—element_rendererimplementation for PDF outputmod_customcert\service\html_renderer—element_rendererimplementation for the designer preview
Other additions
mod_customcert\template::from_record(\stdClass $record)is now the preferred entry point for instantiating a template from a database record;mod_customcert\template::create(string $name, int $contextid)is the preferred entry point for creating a new template. The constructor signature has changed to acceptint $id, string $name, int $contextidindividually (previously it accepted a raw\stdClass $record) — new code should usefrom_record()rather than callingnew template(...)directly, though the constructor remains functional.mod_customcert\element\legacy_element_adapter— internal compatibility adapter used by the factory to expose legacy elements extendingmod_customcert\elementthrough the new element interfaces. Plugin authors should migrate elements to the new interfaces directly rather than depending on the adapter.- Static utility methods on
certificatehave been moved to dedicated service/repository classes:
certificate::get_issues()/certificate::get_number_of_issues()/certificate::get_conditional_issues_sql()'issue_repositorycertificate::get_number_of_certificates_for_user()/certificate::get_certificates_for_user()'certificate_repositorycertificate::get_fonts()/certificate::get_font_sizes()'element_helpercertificate::set_protection()'form_servicecertificate::upload_files()'form_service
- Expanded automated tests covering element API behaviour and upgrade/restore data migration paths.
Changed
Element storage and data format
customcert_elementsno longer hasfont,fontsize,colour, orwidthcolumns; these values are now stored inside the JSON payload incustomcert_elements.data.customcert_elements.datais now treated as a JSON payload:
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
"Hello"'{ "value": "Hello" }). - Upgrade and restore routines automatically migrate existing data.
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
Migration impact for element plugins:
- Do NOT read/write
$element->font,$element->fontsize,$element->colour,$element->widthfrom DB fields (they no longer exist). - Use element getters (
get_font(),get_fontsize(),get_colour(),get_width()) which now read from the JSON payload. - Element plugins should return all relevant keys from
persistable_element_interface::normalise_data(), including the standard visual keys (font,fontsize,colour,width) where applicable; they are no longer merged centrally.
Reserved JSON keys (visuals):
- The following keys are used by core as standard visual fields in
customcert_elements.data:
width,font,fontsize,colour
- Element plugins that expose these visual attributes should return them from
normalise_data()explicitly. Plugins should not use these keys for unrelated element-specific payload data.
Editing + persistence flow
- Element edit handlers normalise element-specific data into a JSON payload via
normalise_data(); visual fields (font,fontsize,colour,width) must be returned explicitly by the element's ownnormalise_data()implementation so the stored payload is self-contained. - Saving elements is hardened to avoid corrupting stored JSON payloads when a caller provides a JSON list/array.
Element construction + adapters
- Registered element classes are constructed by the element factory using
new Class(stdClass $record). The removed experimentalconstructable_element_interface::from_record()path was never released and is no longer part of the API. - Factory returns
mod_customcert\element\element_interface; legacy elements may be wrapped bymod_customcert\element\legacy_element_adapter.
- Avoid
instanceofchecks against legacy concrete classes; prefer$element->get_type()and/or$element->get_inner().
- Avoid
Element rendering signatures
Breaking change for third-party element plugins: The
render()andrender_html()abstract methods onmod_customcert\elementnow have strict typed signatures and return types. Third-party element plugins that override these methods with the old untyped signatures will fail at class-load time with a PHP fatal error, even before the adapter layer can help. Plugins must update their method signatures before upgrading to 5.2. See the before/after signatures below.
- Element render methods are now typed and accept an optional renderer.
Before (legacy):
public function render($pdf, $preview, $user) { /* ... */ }
public function render_html() { /* ... */ }
After (5.2+):
use mod_customcert\service\element_renderer;
public function render(
pdf $pdf,
bool $preview,
\stdClass $user,
?element_renderer $renderer = null
): void {}
public function render_html(?element_renderer $renderer = null): string {}
element_helper::render_content()remains unchanged for backward compatibility, but element plugins must update their method signatures as shown above.
Restore / backup compatibility
- Restoring backups created on older versions is supported: legacy
font/fontsize/colour/widthvalues are merged into the JSON payload during restore. - Backups created on 5.2+ store visual fields inside JSON and are not guaranteed to restore correctly on older plugin versions (no backwards compatibility guarantee).
Fixed
- Improved robustness of upgrade/restore migrations:
- Better handling of missing/partial legacy fields.
- Safer normalisation of element payloads during restore.
- Legacy border elements that stored thickness as a scalar
datavalue are now migrated so width is preserved correctly.
certificate_issue_service::generate_code()now throws amoodle_exceptionafter 10 failed attempts to generate a unique code, preventing an infinite loop in systems with a very large number of issued certificates.- Web service hardening:
external::save_element()ignores JSON list payloads fordatato prevent numeric-key pollution of stored element JSON.
- Fixed issuing certificates to suspended users (#781).
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
Deprecated
Template methods
The following template methods are now shims that emit developer debugging and delegate to service classes. Third-party developers should swap legacy calls for the service methods; the shims will be removed in a future release.
template::save()'template_service::update()template::add_page()/template::save_page()'template_service::add_page()/template_service::save_pages()template::delete()/template::delete_page()/template::delete_element()'template_service::delete()/template_service::delete_page()/template_service::delete_element()template::copy_to_template()'template_service::copy_to_template()template::move_item()'template_service::move_item()(service constants are available; raw strings remain supported)template::generate_pdf()'pdf_generation_service::generate_pdf()
Certificate methods
The following certificate methods are now shims that emit developer debugging and should be replaced with service calls:
certificate::issue_certificate()/certificate::generate_code()'certificate_issue_service::issue_certificate()/::generate_code()
5.0.4 (2025041406)
5.0.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2025041406
Version release name: 5.0.4
Maturity: Stable
Supported Moodle versions: 5.0, 5.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.0.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.0.4] - 2026-06-10
Fixed
- Fixed issuing certificates to suspended users (#781).
Security
- Hardened element and page ownership validation across edit, move, AJAX, external API, and fragment handlers to prevent cross-template access using mismatched request IDs (#818).
[5.0.3] - 2026-03-15
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
[5.0.2] - 2025-12-18
Fixed
- Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue'
capability (#732).
[5.0.1] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[5.0.0] - 2025-06-07
Fixed
- Updated subplugins.json file to match Moodle 5.0 format (#688).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion
4.4.10 (2024042218)
4.4.10
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042218
Version release name: 4.4.10
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.10
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.10] - 2026-06-10
Fixed
- Fixed issuing certificates to suspended users (#781).
Security
- Hardened element and page ownership validation across edit, move, AJAX, external API, and fragment handlers to prevent cross-template access using mismatched request IDs (#818).
[4.4.9] - 2026-03-15
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
[4.4.8] - 2025-12-18
Fixed
- Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue'
capability (#732).
[4.4.7] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
5.2.1 (2026042002)
5.2.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2026042002
Version release name: 5.2.1
Maturity: Stable
Supported Moodle versions: 5.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.2.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.2.1] - 2026-06-08
Fixed
- Fixed
TypeErrorcaused by$instanceidnot being cast tointin thecoursefieldelement (#804). - Fixed
TypeErrorin thedateandgradeelements whereget_mod_grade_info,get_grade_item_info, andget_course_grade_inforequire integer arguments. - Fixed
TypeErrorin thedateandexpiryelements caused by legacy integerdateformatvalues not being cast tostring.
[5.2.0] - 2026-05-24
Requirements
- Minimum supported version is Moodle 5.2 (PHP 8.3+).
Added
Major element API changes
Custom Certificate elements now separate element payload, layout, and rendering concerns.
Element data that was previously stored in dedicated columns (font, fontsize, colour, width) is now stored inside the element JSON payload in customcert_elements.data. Layout values (posx, posy, refpoint, alignment) are managed by the element repository/layout service rather than by individual element implementations.
Third-party elements should migrate to the new element interfaces under mod_customcert\element.
The legacy mod_customcert\element base class remains available for compatibility during this major release, but legacy hooks with replacement interfaces are deprecated and will be removed in a future major version.
Important: Third-party element plugins that extend
mod_customcert\elementand overriderender()orrender_html()must update their method signatures to match the new typed signatures before upgrading to 5.2. Plugins with old untyped signatures for these two methods will fail at class-load time. The deprecated legacy hooks (render_form_elements,definition_after_data,validate_form_elements,save_form_elements,save_unique_data,after_restore,copy_element) retain untyped base signatures and are intended to remain compatible with old-style untyped overrides.can_add()retains its typedboolreturn and is not deprecated; third-party overrides must declarepublic static function can_add(): bool. See the "Element rendering signatures" section below for the requiredrender/render_htmlsignatures.
New elements should use:
element_interface— for the core element contract (identity, payload, type)form_element_interface— required for registered certificate elements (along withrenderable_element_interface); provides edit-form lifecycle hooks includingbuild_form(). Note:form_buildable_interfacewas never released and has been fully replaced byform_element_interface.stylable_element_interface— only when the element supports standard visual styling (font,fontsize,colour,width)layout_element_interface— exposes repository-managed layout values (posx,posy,refpoint,alignment) for common PDF/HTML rendering helperspersistable_element_interface— normalises submitted form data into the JSON payloadvalidatable_element_interface— validates submitted form datapreparable_form_interface— populates edit-form fields from stored payloadrestorable_element_interface— remaps internal references after backup restorecopyable_element_interface— implementcopy_from(\stdClass $source): boolwhen an element needs custom logic during copy operations (e.g. copying associated files to a new context); the repository/service layer calls this instead of the deprecatedcopy_element()hook- Repository/service APIs for persistence and layout changes
Elements using the common renderer helpers (element_helper::render_content() / render_html_content()) must also implement both stylable_element_interface and layout_element_interface. Elements with fully custom rendering may implement renderable_element_interface directly without these.
An unknown_element fallback is used when a requested element type is not registered; it renders gracefully rather than throwing.
No deprecated bundled element implementations are shipped in this release. Deprecated element hooks remain only on the legacy mod_customcert\element base class to support third-party plugin migration.
Legacy internal state removed: Third-party elements that accessed protected internal state directly will need to update. In particular, direct access to
$this->element,$this->font,$this->fontsize,$this->colour,$this->width, or magic property fallback (__get()) must be replaced with the new getters, payload helpers, and repository-managed layout APIs. Visual values now live incustomcert_elements.data; layout values are managed separately by the repository/layout services.
Template export and import
- Templates can now be exported as a ZIP archive and imported on any Moodle site running this plugin.
- Export: from the Manage templates page, click the download icon next to any template to download a
.zipfile containing the template structure (pages and elements) and any associated files (e.g. images used by elements). - Import: from the Manage templates page, click Import template to upload a previously exported
.zipand recreate the template in the current context. - New export/import service layer under
mod_customcert\export:
template_file_manager— orchestrates ZIP creation and extraction, delegates totemplatefor DB writes, and rolls back copied files on failure.template/page/element— transactional DB import of template structure; each level delegates to the next.template_appendix_manager— handles copying element-associated files in and out of the ZIP (manifest-driven, with path-traversal and size-limit guards).template_import_logger_interface/template_logger— collects warnings produced during import (e.g. unknown element types) and surfaces them as Moodle notifications.
Service layer
- New service-layer APIs for template/page/element CRUD:
mod_customcert\service\template_service— orchestrates template/page/element create, update, delete, and move operations (plus DTOs such aspage_update)mod_customcert\service\template_repository— low-level DB access forcustomcert_templatesmod_customcert\service\page_repository— low-level DB access forcustomcert_pagesmod_customcert\service\element_repository— low-level DB access forcustomcert_elementsmod_customcert\service\template_duplication_service— transactional copy of a template with all its pages and elementsmod_customcert\service\template_load_service— replaces an existing template's pages/elements with content from another templatemod_customcert\service\item_move_service— handles moving pages and elements by swapping sequencesmod_customcert\service\pdf_generation_service— PDF generation, preview, and filename computation
- New certificate issuance and delivery services:
mod_customcert\service\certificate_issue_service— issues certificates and generates unique codesmod_customcert\service\certificate_download_service— handles bulk certificate download for instances and site-widemod_customcert\service\certificate_time_service— computes course time for certificate conditionsmod_customcert\service\certificate_email_service— sends certificate emails to students and teachersmod_customcert\service\certificate_issuer_service— orchestrates the scheduled issuance and email pipeline
- New repository classes:
mod_customcert\service\issue_repository— queriescustomcert_issuesmod_customcert\service\certificate_repository— queries certificates per usermod_customcert\service\issue_email_repository— tracks email send state per issue
- New rendering infrastructure:
mod_customcert\service\element_renderer— interface for the v2 element rendering pipeline (PDF and HTML surfaces)mod_customcert\service\pdf_renderer—element_rendererimplementation for PDF outputmod_customcert\service\html_renderer—element_rendererimplementation for the designer preview
Other additions
mod_customcert\template::from_record(\stdClass $record)is now the preferred entry point for instantiating a template from a database record;mod_customcert\template::create(string $name, int $contextid)is the preferred entry point for creating a new template. The constructor signature has changed to acceptint $id, string $name, int $contextidindividually (previously it accepted a raw\stdClass $record) — new code should usefrom_record()rather than callingnew template(...)directly, though the constructor remains functional.mod_customcert\element\legacy_element_adapter— internal compatibility adapter used by the factory to expose legacy elements extendingmod_customcert\elementthrough the new element interfaces. Plugin authors should migrate elements to the new interfaces directly rather than depending on the adapter.- Static utility methods on
certificatehave been moved to dedicated service/repository classes:
certificate::get_issues()/certificate::get_number_of_issues()/certificate::get_conditional_issues_sql()'issue_repositorycertificate::get_number_of_certificates_for_user()/certificate::get_certificates_for_user()'certificate_repositorycertificate::get_fonts()/certificate::get_font_sizes()'element_helpercertificate::set_protection()'form_servicecertificate::upload_files()'form_service
- Expanded automated tests covering element API behaviour and upgrade/restore data migration paths.
Changed
Element storage and data format
customcert_elementsno longer hasfont,fontsize,colour, orwidthcolumns; these values are now stored inside the JSON payload incustomcert_elements.data.customcert_elements.datais now treated as a JSON payload:
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
"Hello"'{ "value": "Hello" }). - Upgrade and restore routines automatically migrate existing data.
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
Migration impact for element plugins:
- Do NOT read/write
$element->font,$element->fontsize,$element->colour,$element->widthfrom DB fields (they no longer exist). - Use element getters (
get_font(),get_fontsize(),get_colour(),get_width()) which now read from the JSON payload. - Element plugins should return all relevant keys from
persistable_element_interface::normalise_data(), including the standard visual keys (font,fontsize,colour,width) where applicable; they are no longer merged centrally.
Reserved JSON keys (visuals):
- The following keys are used by core as standard visual fields in
customcert_elements.data:
width,font,fontsize,colour
- Element plugins that expose these visual attributes should return them from
normalise_data()explicitly. Plugins should not use these keys for unrelated element-specific payload data.
Editing + persistence flow
- Element edit handlers normalise element-specific data into a JSON payload via
normalise_data(); visual fields (font,fontsize,colour,width) must be returned explicitly by the element's ownnormalise_data()implementation so the stored payload is self-contained. - Saving elements is hardened to avoid corrupting stored JSON payloads when a caller provides a JSON list/array.
Element construction + adapters
- Registered element classes are constructed by the element factory using
new Class(stdClass $record). The removed experimentalconstructable_element_interface::from_record()path was never released and is no longer part of the API. - Factory returns
mod_customcert\element\element_interface; legacy elements may be wrapped bymod_customcert\element\legacy_element_adapter.
- Avoid
instanceofchecks against legacy concrete classes; prefer$element->get_type()and/or$element->get_inner().
- Avoid
Element rendering signatures
Breaking change for third-party element plugins: The
render()andrender_html()abstract methods onmod_customcert\elementnow have strict typed signatures and return types. Third-party element plugins that override these methods with the old untyped signatures will fail at class-load time with a PHP fatal error, even before the adapter layer can help. Plugins must update their method signatures before upgrading to 5.2. See the before/after signatures below.
- Element render methods are now typed and accept an optional renderer.
Before (legacy):
public function render($pdf, $preview, $user) { /* ... */ }
public function render_html() { /* ... */ }
After (5.2+):
use mod_customcert\service\element_renderer;
public function render(
pdf $pdf,
bool $preview,
\stdClass $user,
?element_renderer $renderer = null
): void {}
public function render_html(?element_renderer $renderer = null): string {}
element_helper::render_content()remains unchanged for backward compatibility, but element plugins must update their method signatures as shown above.
Restore / backup compatibility
- Restoring backups created on older versions is supported: legacy
font/fontsize/colour/widthvalues are merged into the JSON payload during restore. - Backups created on 5.2+ store visual fields inside JSON and are not guaranteed to restore correctly on older plugin versions (no backwards compatibility guarantee).
Fixed
- Improved robustness of upgrade/restore migrations:
- Better handling of missing/partial legacy fields.
- Safer normalisation of element payloads during restore.
- Legacy border elements that stored thickness as a scalar
datavalue are now migrated so width is preserved correctly.
certificate_issue_service::generate_code()now throws amoodle_exceptionafter 10 failed attempts to generate a unique code, preventing an infinite loop in systems with a very large number of issued certificates.- Web service hardening:
external::save_element()ignores JSON list payloads fordatato prevent numeric-key pollution of stored element JSON.
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
Deprecated
Template methods
The following template methods are now shims that emit developer debugging and delegate to service classes. Third-party developers should swap legacy calls for the service methods; the shims will be removed in a future release.
template::save()'template_service::update()template::add_page()/template::save_page()'template_service::add_page()/template_service::save_pages()template::delete()/template::delete_page()/template::delete_element()'template_service::delete()/template_service::delete_page()/template_service::delete_element()template::copy_to_template()'template_service::copy_to_template()template::move_item()'template_service::move_item()(service constants are available; raw strings remain supported)template::generate_pdf()'pdf_generation_service::generate_pdf()
Certificate methods
The following certificate methods are now shims that emit developer debugging and should be replaced with service calls:
certificate::issue_certificate()/certificate::generate_code()'certificate_issue_service::issue_certificate()/::generate_code()certificate::download_all_issues_for_instance()/certificate::download_all_for_site()'certificate_download_serviceequivalentscertificate::get_course_time()'certificate_time_service::get_course_time()c
5.2 (2026042001)
5.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2026042001
Version release name: 5.2
Maturity: Stable
Supported Moodle versions: 5.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.2.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.2.0] - 2026-05-24
Requirements
- Minimum supported version is Moodle 5.2 (PHP 8.3+).
Added
Major element API changes
Custom Certificate elements now separate element payload, layout, and rendering concerns.
Element data that was previously stored in dedicated columns (font, fontsize, colour, width) is now stored inside the element JSON payload in customcert_elements.data. Layout values (posx, posy, refpoint, alignment) are managed by the element repository/layout service rather than by individual element implementations.
Third-party elements should migrate to the new element interfaces under mod_customcert\element.
The legacy mod_customcert\element base class remains available for compatibility during this major release, but legacy hooks with replacement interfaces are deprecated and will be removed in a future major version.
Important: Third-party element plugins that extend
mod_customcert\elementand overriderender()orrender_html()must update their method signatures to match the new typed signatures before upgrading to 5.2. Plugins with old untyped signatures for these two methods will fail at class-load time. The deprecated legacy hooks (render_form_elements,definition_after_data,validate_form_elements,save_form_elements,save_unique_data,after_restore,copy_element) retain untyped base signatures and are intended to remain compatible with old-style untyped overrides.can_add()retains its typedboolreturn and is not deprecated; third-party overrides must declarepublic static function can_add(): bool. See the "Element rendering signatures" section below for the requiredrender/render_htmlsignatures.
New elements should use:
element_interface— for the core element contract (identity, payload, type)form_element_interface— required for registered certificate elements (along withrenderable_element_interface); provides edit-form lifecycle hooks includingbuild_form(). Note:form_buildable_interfacewas never released and has been fully replaced byform_element_interface.stylable_element_interface— only when the element supports standard visual styling (font,fontsize,colour,width)layout_element_interface— exposes repository-managed layout values (posx,posy,refpoint,alignment) for common PDF/HTML rendering helperspersistable_element_interface— normalises submitted form data into the JSON payloadvalidatable_element_interface— validates submitted form datapreparable_form_interface— populates edit-form fields from stored payloadrestorable_element_interface— remaps internal references after backup restorecopyable_element_interface— implementcopy_from(\stdClass $source): boolwhen an element needs custom logic during copy operations (e.g. copying associated files to a new context); the repository/service layer calls this instead of the deprecatedcopy_element()hook- Repository/service APIs for persistence and layout changes
Elements using the common renderer helpers (element_helper::render_content() / render_html_content()) must also implement both stylable_element_interface and layout_element_interface. Elements with fully custom rendering may implement renderable_element_interface directly without these.
An unknown_element fallback is used when a requested element type is not registered; it renders gracefully rather than throwing.
No deprecated bundled element implementations are shipped in this release. Deprecated element hooks remain only on the legacy mod_customcert\element base class to support third-party plugin migration.
Legacy internal state removed: Third-party elements that accessed protected internal state directly will need to update. In particular, direct access to
$this->element,$this->font,$this->fontsize,$this->colour,$this->width, or magic property fallback (__get()) must be replaced with the new getters, payload helpers, and repository-managed layout APIs. Visual values now live incustomcert_elements.data; layout values are managed separately by the repository/layout services.
Template export and import
- Templates can now be exported as a ZIP archive and imported on any Moodle site running this plugin.
- Export: from the Manage templates page, click the download icon next to any template to download a
.zipfile containing the template structure (pages and elements) and any associated files (e.g. images used by elements). - Import: from the Manage templates page, click Import template to upload a previously exported
.zipand recreate the template in the current context. - New export/import service layer under
mod_customcert\export:
template_file_manager— orchestrates ZIP creation and extraction, delegates totemplatefor DB writes, and rolls back copied files on failure.template/page/element— transactional DB import of template structure; each level delegates to the next.template_appendix_manager— handles copying element-associated files in and out of the ZIP (manifest-driven, with path-traversal and size-limit guards).template_import_logger_interface/template_logger— collects warnings produced during import (e.g. unknown element types) and surfaces them as Moodle notifications.
Service layer
- New service-layer APIs for template/page/element CRUD:
mod_customcert\service\template_service— orchestrates template/page/element create, update, delete, and move operations (plus DTOs such aspage_update)mod_customcert\service\template_repository— low-level DB access forcustomcert_templatesmod_customcert\service\page_repository— low-level DB access forcustomcert_pagesmod_customcert\service\element_repository— low-level DB access forcustomcert_elementsmod_customcert\service\template_duplication_service— transactional copy of a template with all its pages and elementsmod_customcert\service\template_load_service— replaces an existing template's pages/elements with content from another templatemod_customcert\service\item_move_service— handles moving pages and elements by swapping sequencesmod_customcert\service\pdf_generation_service— PDF generation, preview, and filename computation
- New certificate issuance and delivery services:
mod_customcert\service\certificate_issue_service— issues certificates and generates unique codesmod_customcert\service\certificate_download_service— handles bulk certificate download for instances and site-widemod_customcert\service\certificate_time_service— computes course time for certificate conditionsmod_customcert\service\certificate_email_service— sends certificate emails to students and teachersmod_customcert\service\certificate_issuer_service— orchestrates the scheduled issuance and email pipeline
- New repository classes:
mod_customcert\service\issue_repository— queriescustomcert_issuesmod_customcert\service\certificate_repository— queries certificates per usermod_customcert\service\issue_email_repository— tracks email send state per issue
- New rendering infrastructure:
mod_customcert\service\element_renderer— interface for the v2 element rendering pipeline (PDF and HTML surfaces)mod_customcert\service\pdf_renderer—element_rendererimplementation for PDF outputmod_customcert\service\html_renderer—element_rendererimplementation for the designer preview
Other additions
mod_customcert\template::from_record(\stdClass $record)is now the preferred entry point for instantiating a template from a database record;mod_customcert\template::create(string $name, int $contextid)is the preferred entry point for creating a new template. The constructor signature has changed to acceptint $id, string $name, int $contextidindividually (previously it accepted a raw\stdClass $record) — new code should usefrom_record()rather than callingnew template(...)directly, though the constructor remains functional.mod_customcert\element\legacy_element_adapter— internal compatibility adapter used by the factory to expose legacy elements extendingmod_customcert\elementthrough the new element interfaces. Plugin authors should migrate elements to the new interfaces directly rather than depending on the adapter.- Static utility methods on
certificatehave been moved to dedicated service/repository classes:
certificate::get_issues()/certificate::get_number_of_issues()/certificate::get_conditional_issues_sql()'issue_repositorycertificate::get_number_of_certificates_for_user()/certificate::get_certificates_for_user()'certificate_repositorycertificate::get_fonts()/certificate::get_font_sizes()'element_helpercertificate::set_protection()'form_servicecertificate::upload_files()'form_service
- Expanded automated tests covering element API behaviour and upgrade/restore data migration paths.
Changed
Element storage and data format
customcert_elementsno longer hasfont,fontsize,colour, orwidthcolumns; these values are now stored inside the JSON payload incustomcert_elements.data.customcert_elements.datais now treated as a JSON payload:
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
"Hello"'{ "value": "Hello" }). - Upgrade and restore routines automatically migrate existing data.
- Legacy scalar values are migrated into a JSON envelope (e.g. legacy
Migration impact for element plugins:
- Do NOT read/write
$element->font,$element->fontsize,$element->colour,$element->widthfrom DB fields (they no longer exist). - Use element getters (
get_font(),get_fontsize(),get_colour(),get_width()) which now read from the JSON payload. - Element plugins should return all relevant keys from
persistable_element_interface::normalise_data(), including the standard visual keys (font,fontsize,colour,width) where applicable; they are no longer merged centrally.
Reserved JSON keys (visuals):
- The following keys are used by core as standard visual fields in
customcert_elements.data:
width,font,fontsize,colour
- Element plugins that expose these visual attributes should return them from
normalise_data()explicitly. Plugins should not use these keys for unrelated element-specific payload data.
Editing + persistence flow
- Element edit handlers normalise element-specific data into a JSON payload via
normalise_data(); visual fields (font,fontsize,colour,width) must be returned explicitly by the element's ownnormalise_data()implementation so the stored payload is self-contained. - Saving elements is hardened to avoid corrupting stored JSON payloads when a caller provides a JSON list/array.
Element construction + adapters
- Registered element classes are constructed by the element factory using
new Class(stdClass $record). The removed experimentalconstructable_element_interface::from_record()path was never released and is no longer part of the API. - Factory returns
mod_customcert\element\element_interface; legacy elements may be wrapped bymod_customcert\element\legacy_element_adapter.
- Avoid
instanceofchecks against legacy concrete classes; prefer$element->get_type()and/or$element->get_inner().
- Avoid
Element rendering signatures
Breaking change for third-party element plugins: The
render()andrender_html()abstract methods onmod_customcert\elementnow have strict typed signatures and return types. Third-party element plugins that override these methods with the old untyped signatures will fail at class-load time with a PHP fatal error, even before the adapter layer can help. Plugins must update their method signatures before upgrading to 5.2. See the before/after signatures below.
- Element render methods are now typed and accept an optional renderer.
Before (legacy):
public function render($pdf, $preview, $user) { /* ... */ }
public function render_html() { /* ... */ }
After (5.2+):
use mod_customcert\service\element_renderer;
public function render(
pdf $pdf,
bool $preview,
\stdClass $user,
?element_renderer $renderer = null
): void {}
public function render_html(?element_renderer $renderer = null): string {}
element_helper::render_content()remains unchanged for backward compatibility, but element plugins must update their method signatures as shown above.
Restore / backup compatibility
- Restoring backups created on older versions is supported: legacy
font/fontsize/colour/widthvalues are merged into the JSON payload during restore. - Backups created on 5.2+ store visual fields inside JSON and are not guaranteed to restore correctly on older plugin versions (no backwards compatibility guarantee).
Fixed
- Improved robustness of upgrade/restore migrations:
- Better handling of missing/partial legacy fields.
- Safer normalisation of element payloads during restore.
- Legacy border elements that stored thickness as a scalar
datavalue are now migrated so width is preserved correctly.
certificate_issue_service::generate_code()now throws amoodle_exceptionafter 10 failed attempts to generate a unique code, preventing an infinite loop in systems with a very large number of issued certificates.- Web service hardening:
external::save_element()ignores JSON list payloads fordatato prevent numeric-key pollution of stored element JSON.
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
Deprecated
Template methods
The following template methods are now shims that emit developer debugging and delegate to service classes. Third-party developers should swap legacy calls for the service methods; the shims will be removed in a future release.
template::save()'template_service::update()template::add_page()/template::save_page()'template_service::add_page()/template_service::save_pages()template::delete()/template::delete_page()/template::delete_element()'template_service::delete()/template_service::delete_page()/template_service::delete_element()template::copy_to_template()'template_service::copy_to_template()template::move_item()'template_service::move_item()(service constants are available; raw strings remain supported)template::generate_pdf()'pdf_generation_service::generate_pdf()
Certificate methods
The following certificate methods are now shims that emit developer debugging and should be replaced with service calls:
certificate::issue_certificate()/certificate::generate_code()'certificate_issue_service::issue_certificate()/::generate_code()certificate::download_all_issues_for_instance()/certificate::download_all_for_site()'certificate_download_serviceequivalentscertificate::get_course_time()'certificate_time_service::get_course_time()certificate::get_issues()/certificate::get_number_of_issues()/certificate::get_conditional_issues_sql()'issue_repositorycertificate::get_number_of_certificates_for_user()/certificate::get_certificates_for_user()'certificate_repositorycertificate::get_fonts()/certificate::get_font_sizes()'element_helpercertificate::set_protection()'form_servicecertificate::upload_files()'form_service
Ele
4.4.9 (2024042217)
4.4.9
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042217
Version release name: 4.4.9
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.9
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.9] - 2026-03-15
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
[4.4.8] - 2025-12-18
Fixed
- Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue'
capability (#732).
[4.4.7] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued cer
5.0.3 (2025041405)
5.0.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2025041405
Version release name: 5.0.3
Maturity: Stable
Supported Moodle versions: 5.0, 5.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.0.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.0.3] - 2026-03-15
Security
- Fixed authorization bypass (CVE-2026-30884, CWE-639) where a user with mod/customcert:manage in any
single course could read and overwrite certificate elements belonging to other courses by supplying
an arbitrary elementid. Element ownership is now validated against the authorised context/template
before any read or write operation is performed.
[5.0.2] - 2025-12-18
Fixed
- Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue'
capability (#732).
[5.0.1] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[5.0.0] - 2025-06-07
Fixed
- Updated subplugins.json file to match Moodle 5.0 format (#688).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the
4.4.8 (2024042216)
4.4.8
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042216
Version release name: 4.4.8
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.8
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.8] - 2025-12-18
Fixed
Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue' capability (#732)
[4.4.7] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefiniti
5.0.2 (2025041404)
5.0.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2025041404
Version release name: 5.0.2
Maturity: Stable
Supported Moodle versions: 5.0, 5.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.0.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.0.2] - 2025-12-18
Fixed
Ensure certificates are only emailed to users who can view the certificate and have the 'mod/customcert:receiveissue' capability (#732)
[5.0.1] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[5.0.0] - 2025-06-07
Fixed
- Updated subplugins.json file to match Moodle 5.0 format (#688).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged
4.4.7 (2024042215)
4.4.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042215
Version release name: 4.4.7
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.7] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesske
5.0.1 (2025041403)
5.0.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2025041403
Version release name: 5.0.1
Maturity: Stable
Supported Moodle versions: 5.0, 5.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.0.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.0.1] - 2025-11-30
Fixed
- Fixed emails not being sent for certificates on the site home page (#693).
- Added customisable filename options for certificates (#684).
- Added missing fields to backups (#705).
- Ensure certificates are issued and emailed only once when emailing is enabled (#671).
- Fixed "grade_item" not found error due to missing required file.
- Fixed language handling for certificates and emails (#717).
- Fixed issue with code dashes being stripped on verification page (#727).
- Allow teachers enrolled as students to receive certificates (#690).
- Standardization of spacing in HTML as in the plain text version of emails (#724).
Changed
- Hard-coded URL in email is now stored as language string allowing it to be modified/moved (#724).
Added
- Add setting that adds a button to return to course from the certificate page (#655).
- Added awarded on date to verification page (#566).
- Added webservice to retrieve a list of issued certificates (#644).
[5.0.0] - 2025-06-07
Fixed
- Updated subplugins.json file to match Moodle 5.0 format (#688).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicit
5.0.0 (2025041400)
5.0.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2025041400
Version release name: 5.0.0
Maturity: Stable
Supported Moodle versions: 5.0, 5.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v5.0.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[5.0.0] - 2025-06-07
Fixed
- Updated subplugins.json file to match Moodle 5.0 format (#688).
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.6 (2024042212)
4.4.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042212
Version release name: 4.4.6
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.6] - 2025-06-07
Added
- Added choice for code format (#668).
- Added events for adding and deleting certificate issues (#675).
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.5 (2024042211)
4.4.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042211
Version release name: 4.4.5
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.3.5 (2023100911)
4.3.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023100911
Version release name: 4.3.5
Maturity: Stable
Supported Moodle versions: 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.3.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.3.5] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.3.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.3.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.3.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.3.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.3.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.10 (2023042419)
4.2.10
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042419
Version release name: 4.2.10
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.10
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.10] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.2.9] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.2.8] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.2.7] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.2.6] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.9 (2022112818)
4.1.9
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112818
Version release name: 4.1.9
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.9
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.9] - 2025-05-25
Fixed
- Fixed enrol start date not showing (#410).
- Pass the user's mailformat preference when emailing certificates (#665).
Added
- Added index to the 'code' column in 'customcert_issues' table (#666).
[4.1.8] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.1.7] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.1.6] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.1.5] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.8 (2022112815)
4.1.8
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112815
Version release name: 4.1.8
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.8
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.8] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.1.7] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.1.6] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.1.5] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.9 (2023042416)
4.2.9
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042416
Version release name: 4.2.9
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.9
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.9] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.2.8] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.2.7] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.2.6] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.3.4 (2023100908)
4.3.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023100908
Version release name: 4.3.4
Maturity: Stable
Supported Moodle versions: 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.3.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.3.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.3.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.3.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.3.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.3.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.4 (2024042208)
4.4.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042208
Version release name: 4.4.4
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.4] - 2025-02-23
Fixed
- A SQL error in the issue certificate task on MSSQL and Oracle (#646).
- Issuing a certificate when there are no issues yet (#659).
- Issue in rearrange JS with Modal not closing (#648).
Added
- ISO 8601 date format (#638).
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is present (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.7 (2022112814)
4.1.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112814
Version release name: 4.1.7
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.7] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is presnet (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.1.6] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.1.5] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.8 (2023042415)
4.2.8
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042415
Version release name: 4.2.8
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.8
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.8] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is presnet (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.2.7] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.2.6] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.3.3 (2023100907)
4.3.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023100907
Version release name: 4.3.3
Maturity: Stable
Supported Moodle versions: 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.3.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.3.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is presnet (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.3.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.3.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.3.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.3 (2024042207)
4.4.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042207
Version release name: 4.4.3
Maturity: Stable
Supported Moodle versions: 4.4, 4.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.3] - 2024-10-12
Fixed
- A SQL error in the issue certificate task on Oracle (#646).
- Verification error when expiry date element is presnet (#647).
Added
- Only fetch teachers during the email process when necessary, reducing the number of SQL queries if they are not included (#531).
- Filter users before process to speed up certificate task (#634).
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.3.2 (2023100906)
4.3.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023100906
Version release name: 4.3.2
Maturity: Stable
Supported Moodle versions: 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.3.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.3.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.3.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.3.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.7 (2023042414)
4.2.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042414
Version release name: 4.2.7
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.7] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.2.6] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.6 (2022112813)
4.1.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112813
Version release name: 4.1.6
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.6] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.1.5] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.2 (2024042206)
4.4.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042206
Version release name: 4.4.2
Maturity: Stable
Supported Moodle versions: 4.4
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.2] - 2024-09-28
Fixed
- Mobile app: Stop using deprecated module-description.
- Fixed auto-linking filters moving text element positions if reference point is center (#629).
Changed
- Mobile app: Update Mobile template to Ionic 7.
- Mobile app: Remove Ionic 3 template.
Added
- Optimise email certificate task by reducing database reads/writes and introducing
configurable settings for task efficiency (#531). - New element
expirywhich when used will display the expiry date on the list of issued certificates
and the verification pages.
Any Custom Certificates that are using thedateelement and selected the expiry dates will
automatically be upgraded to use this new element (#499).
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.5 (2022112808)
4.1.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112808
Version release name: 4.1.5
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.5] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.6 (2023042409)
4.2.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042409
Version release name: 4.2.6
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.6] - 2024-05-28
Fixed
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
- Major issue with the pop-up window not working in the reposition element page (#483).
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.3.1 (2023100901)
4.3.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023100901
Version release name: 4.3.1
Maturity: Stable
Supported Moodle versions: 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.3.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.3.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.3.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo images (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.4.1 (2024042201)
4.4.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2024042201
Version release name: 4.4.1
Maturity: Stable
Supported Moodle versions: 4.4
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.4.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.4.1] - 2024-05-28
Fixed
- Major issue with the pop-up window not working in the reposition element page (#483).
- Non-editing teachers being able to see the download certificate link for a user which took them to a blank page (#620).
[4.4.0] - 2024-05-28
Added
- Added 'Save and Continue' option when editing image elements (#613).
This means you can add an image to the filemanager, click 'Save and Continue'
and then select it in the drop-down avoiding renavigating to the edit element page. - Added monologo image (#568).
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.4 (2022112807)
4.1.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112807
Version release name: 4.1.4
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.4] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.5 (2023042408)
4.2.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042408
Version release name: 4.2.5
Maturity: Stable
Supported Moodle versions: 4.2, 4.3, 4.4
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.5] - 2024-04-23
Fixed
- Fixed issue when restoring
date,daterange,gradeitemnameandgradethat have been linked to a manual grade item (#582). - Removed unnecessary set_context() call causing a PHP notice to be shown (#443).
- Ensure we use $CFG->emailfromvia setting (#471).
Changed
- The downloaded issue report can now be ordered by date sanely (#602).
Added
- Added ability to download all certificates in the report as a teacher and bulk download all site certificates as an administrator (#205).
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.7 (2022041910)
4.0.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041910
Version release name: 4.0.7
Maturity: Stable
Supported Moodle versions: 4.0
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.7] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.0.6] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.0.5] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.3 (2022112806)
4.1.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112806
Version release name: 4.1.3
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.3] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.4 (2023042407)
4.2.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042407
Version release name: 4.2.4
Maturity: Stable
Supported Moodle versions: 4.2, 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.4] - 2024-02-08
Fixed
- Do not make index unique (#601).
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.6 (2022041909)
4.0.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041909
Version release name: 4.0.6
Maturity: Stable
Supported Moodle versions: 4.0
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.6] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.0.5] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.2 (2022112805)
4.1.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112805
Version release name: 4.1.2
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.2] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.3 (2023042406)
4.2.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042406
Version release name: 4.2.3
Maturity: Stable
Supported Moodle versions: 4.2, 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.3] - 2024-01-31
Fixed
- Stopped PHP notice caused by the email certificate task (#443).
- Fixed undefined external_format_error in the mobile app (#565).
- Fixed being unable to reposition the course field element if it is empty (#579).
- Fixed incorrect name of mustache variable in email_certificate_html.mustache (#574).
- Fixed passing incorrect course module id value to \mod_customcert\output\email_certificate (#574).
- Delete the pages after deleting the elements otherwise it was breaking in element_deleted::create_from_element() (#571).
- Do not also show the 'My certificates' profile link when the user can not view the content of that page (#585).
- Added missing foreign key relationship for 'userid' in the 'customcert_issues' table (#537).
- Handle missing gradeitems as gracefully as possible, so we don't break the email task (#592).
- Fixed logic breaking the generation of the QR code URL (#545).
- Do not allow non-editing teachers to manage the certificate (#515).
- Ensure the 'verifyany' column length is valid on all sites (#597).
- Fixed events being triggered incorrectly (#570).
Added
- Added the unique index 'userid-customcertid' to the 'customcert_issues' table (#537).
- Added events on the reposition element page (#599).
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.5 (2022041905)
4.0.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041905
Version release name: 4.0.5
Maturity: Stable
Supported Moodle versions: 4.0
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.5] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.1 (2022112801)
4.1.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112801
Version release name: 4.1.1
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.1.1] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.2 (2023042402)
4.2.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042402
Version release name: 4.2.2
Maturity: Stable
Supported Moodle versions: 4.2, 4.3
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.2.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.2] - 2023-06-08
Fixed
- Fix TCPDF error when viewing an example PDF from the manage templates page (#558).
- Fix images not displaying on the reposition element page (#562).
Added
- Added new events (#518).
- An event for when an element is created.
- An event for when an element is updated.
- An event for when an element is deleted.
- An event for when a page is created.
- An event for when a page is updated.
- An event for when a page is deleted.
- An event for when a template is created.
- An event for when a template is updated.
- An event for when a template is deleted.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Remove debugging message caused by the user field element listing the Skype field (#478).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.4 (2022041904)
4.0.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041904
Version release name: 4.0.4
Maturity: Stable
Supported Moodle versions: 4.0
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.1.0 (2022112800)
4.1.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022112800
Version release name: 4.1.0
Maturity: Stable
Supported Moodle versions: 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.1.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.4] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.2.1 (2023042401)
4.2.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2023042401
Version release name: 4.2.1
Maturity: Stable
Supported Moodle versions: 4.2
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_402_STABLE
Repository tag: v4.2.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.2.1] - 2023-05-30
Fixed
- Fix course settings error on single activity format (#544).
- Fix deprecated usage of rendering primary buttons (#555).
- Fix usage of deprecated
cron_setup_userfunction (#547). - Fix broken webservice functions used by the mobile app.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
Fixed
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.11.3 (2021051704)
3.11.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2021051704
Version release name: 3.11.3
Maturity: Stable
Supported Moodle versions: 3.11
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.11.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.11.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.3 (2022041903)
4.0.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041903
Version release name: 4.0.3
Maturity: Stable
Supported Moodle versions: 4.0, 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.3] - 2023-02-07
Added
- You can now optionally force the language of a certificate (#532).
[4.0.2] - 2023-01-26
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.2 (2022041902)
4.0.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041902
Version release name: 4.0.2
Maturity: Stable
Supported Moodle versions: 4.0, 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_400_STABLE
Repository tag: v4.0.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.2] - 2023-01-26
- Fix problem repositioning elements (#500).
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
4.0.1 (2022041901)
4.0.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2022041901
Version release name: 4.0.1
Maturity: Stable
Supported Moodle versions: 4.0, 4.1
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v4.0.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[4.0.1] - 2022-11-07
Fixed
- Fix problem repositioning elements (#513).
- Fixed title and description shown twice (#521).
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.10.2 (2020110904)
3.10.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2020110904
Version release name: 3.10.2
Maturity: Stable
Supported Moodle versions: 3.10
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.10.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.10.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.11.2 (2021051703)
3.11.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2021051703
Version release name: 3.11.2
Maturity: Stable
Supported Moodle versions: 3.11
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.11.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.11.2] - 2022-11-07
Fixed
- Fix places not using the multi-language filter (#433).
- Fix user IDs in the issue table not being mapped during restore (#449).
- Fix emails displaying HTML entities encoded (#457).
- Fix error message when we have custom profile fields (#465).
- Respect multiple languages in manage template page title (#467).
- Add field exist check for alignment field in upgrade script to prevent upgrades from dying.
- Stop using deprecated pipe coreToLocaleString.
Changed
- User breadcrumbs on the my_certificates.php page changes when a course is specified (#469).
Added
- You can now choose the course short or full name to display (#415).
- You can now select the alignment for all text elements (#121).
- Ability to add a relative date (#389).
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.8.6 (2019111807)
3.8.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019111807
Version release name: 3.8.6
Maturity: Stable
Supported Moodle versions: 3.8
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_38_STABLE
Repository tag: v3.8.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.6] - 2021-06-13
Added
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.9.1 (2020061502)
3.9.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2020061502
Version release name: 3.9.1
Maturity: Stable
Supported Moodle versions: 3.9
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_39_STABLE
Repository tag: v3.9.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.9.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.10.1 (2020110902)
3.10.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2020110902
Version release name: 3.10.1
Maturity: Stable
Supported Moodle versions: 3.10
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_310_STABLE
Repository tag: v3.10.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.11.1 (2021051701)
3.11.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2021051701
Version release name: 3.11.1
Maturity: Stable
Supported Moodle versions: 3.11
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_311_STABLE
Repository tag: v3.11.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.11.1] - 2021-06-13
Fixed
- Usage of deprecated functions (#423)
[3.10.1] - 2021-06-13
Added
- Usage of github actions (#407).
- The ability to show the description on the course page (#406).
- The ability to choose how to deliver the certificate (#401).
Fixed
- Managers are now able to download their students' certificates (#412).
- Users being able to view the certificate before the required time set (#403).
- Fixed the issue with displaying PDF when debugging is ON (#420).
- Using incorrect context when sending emails (#402).
- Use
cron_setup_userwhen sending emails (#414).
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.10.0 (2020110900)
3.10.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2020110900
Version release name: 3.10.0
Maturity: Stable
Supported Moodle versions: 3.10
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_310_STABLE
Repository tag: v3.10.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.9.0 (2020061500)
3.9.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2020061500
Version release name: 3.9.0
Maturity: Stable
Supported Moodle versions: 3.9
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_39_STABLE
Repository tag: v3.9.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.9 (2018051710)
3.5.9
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051710
Version release name: 3.5.9
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_35_STABLE
Repository tag: v3.5.9
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.5.9] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.5.8] - 2020-04-19
Added
- Added extra Behat steps for new elements (#309).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
- Added ability to specify the current date for date related elements (#289).
- Added QR code element (#146).
- Added Date range element (#185).
- Added new capability to control who can be issued a certificate (#270).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Fixed foreign key violation (#331).
- Do not fail if multiple certificate issues (#304) and (#295).
[3.5.7] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added the number of certificates issued above the report (#266).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is issued before downloading on 'My certificates' page (#269).
[3.5.6] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.7 (2018120307)
3.6.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120307
Version release name: 3.6.7
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_36_STABLE
Repository tag: v3.6.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.6.7] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.6.6] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.6.5] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.6.4] - 2020-02-01
Added
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.6.3] - 2019-06-17
Added
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.7.5 (2019052005)
3.7.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019052005
Version release name: 3.7.5
Maturity: Stable
Supported Moodle versions: 3.7
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_37_STABLE
Repository tag: v3.7.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.7.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.7.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.7.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.7.2] - 2020-02-01
Added
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.8.5 (2019111805)
3.8.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019111805
Version release name: 3.8.5
Maturity: Stable
Supported Moodle versions: 3.8
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_38_STABLE
Repository tag: v3.8.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.5] - 2020-11-26
Added
- Added ability to select outcomes in the Grade element (#329).
- The Grade Item Name element now works with all grade items, whereas before it was just activities (#346).
- Added enrolment start and end dates to the date element (#328).
- Added username to userfield form element (#390).
Changed
- Removed unnecessary and confusing 'exampledata' string.
- Do not email those who can manage the certificate (#376).
- Do not force the PDF to be downloaded, instead send the file inline to the browser (#153).
- Updated the 'emailstudents_help', 'emailteachers_help' and 'emailothers_help' strings to warn users about prematurely emailing the certificate (#276).
- Do not email out certificates that contain no elements (#276).
Fixed
- Certificates now get marked as viewed via the mobile app (#342).
- Custom fields not displaying properly (#359).
- Fix repositioning elements page when resizing the browser (#343).
- Prevent error when duplicate issues exist when using the code element (#363).
- Implemented get_objectid_mapping for the course_module_viewed.php event to avoid warning (#374).
- Fixed exception being thrown when loading a template that has an image element but no image selected (#369).
- Fixed issue with PDF being generated without a name (#333).
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.8 (2018051709)
3.5.8
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051709
Version release name: 3.5.8
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch: MOODLE_35_STABLE
Repository tag: v3.5.8
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.5.8] - 2020-04-19
Added
- Added extra Behat steps for new elements (#309).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
- Added ability to specify the current date for date related elements (#289).
- Added QR code element (#146).
- Added Date range element (#185).
- Added new capability to control who can be issued a certificate (#270).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Fixed foreign key violation (#331).
- Do not fail if multiple certificate issues (#304) and (#295).
[3.5.7] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added the number of certificates issued above the report (#266).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is issued before downloading on 'My certificates' page (#269).
[3.5.6] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.6 (2018120306)
3.6.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120306
Version release name: 3.6.6
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.6.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.6.6] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.6.5] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.6.4] - 2020-02-01
Added
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.6.3] - 2019-06-17
Added
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.7.4 (2019052004)
3.7.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019052004
Version release name: 3.7.4
Maturity: Stable
Supported Moodle versions: 3.7
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.7.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.7.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.7.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.7.2] - 2020-02-01
Added
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.8.4 (2019111804)
3.8.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019111804
Version release name: 3.8.4
Maturity: Stable
Supported Moodle versions: 3.8
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.8.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.4] - 2020-03-12
Added
- Added extra Behat steps for new elements (#309).
Changed
- When copying a site template the site images are also copied to the course context and then those copied images are used.
Before, the elements would simply point to the site images. However, this meant when performing a backup/restore the
images were not stored in the backup file (#298).
Fixed
- Fixed the displaying of names of a custom user field (#326).
- Do not allow '0' as a value for width or height in QR code (#321).
[3.8.3] - 2020-03-09
Fixed
- Fixed foreign key violation (#331).
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316).
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.8.2 (2019111802)
3.8.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019111802
Version release name: 3.8.2
Maturity: Stable
Supported Moodle versions: 3.8
Repository URL (Git): https://github.com/mdjnelson/moodle-mod_customcert
Repository branch:
Repository tag: v3.8.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/mdjnelson/moodle-mod_customcert/issues/169.
[3.8.2] - 2019-12-16
Added
- Added subplugins.json file (#312).
- Re-added 'code' column to user report (#264).
- Add 'userfullname' variable for email subject (#316)
Fixed
- Do not fail if multiple certificate issues (#304) and (#295).
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.3 (2018120303)
3.6.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120303
Version release name: 3.6.3
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.6.3] - 2019-06-17
Added
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.7.1 (2019052001)
3.7.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019052001
Version release name: 3.7.1
Maturity: Stable
Supported Moodle versions: 3.7
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.7.1] - 2019-06-17
Added
- Added new custom course field element (#274).
- Added ability to specify the current date for date related elements (#289).
Changed
- String improvements for the 'Date range' element.
Fixed
- Use negative numbers for constants in the 'Date range' element. The reason being that we may have a module
that has an id matching one of these positive values. Sites which are using the 'Date range' element (sites
which are not using this element do not have to do anything) will need to re-edit each element, select
the date item again and save. An upgrade step was not created because it is impossible to tell if the site does
actually want the constant or if they actually want the date for the module.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.7.0 (2019052000)
3.7.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2019052000
Version release name: 3.7.0
Maturity: Stable
Supported Moodle versions: 3.7
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.2 (2018120302)
3.6.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120302
Version release name: 3.6.2
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.6.2] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added QR code element (#146).
- Added Date range element (#185).
- Added the number of certificates issued above the report (#266).
- Added new capability to control who can be issued a certificate (#270).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is valid before downloading on 'My certificates' page (#269).
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.7 (2018051708)
3.5.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051708
Version release name: 3.5.7
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.7] - 2019-05-28
Changed
- Always send emails from the 'noreplyuser' (#165).
Added
- Added the number of certificates issued above the report (#266).
Fixed
- Failures when running unit tests for multiple activities (#282).
- Check that a certificate is issued before downloading on 'My certificates' page (#269).
[3.5.6] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.17 (2017050518)
3.3.17
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050518
Version release name: 3.3.17
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.17
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.17] - 2019-02-04
Fixed
- Fixed invalid syntax for PHP 5.6 as it is still supported in 3.3.
[3.3.16] - 2019-02-04
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.3.15] - 2018-12-20
Added
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.3.14] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.3.13] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.16 (2017050517)
3.3.16
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050517
Version release name: 3.3.16
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.16
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.16] - 2019-02-04
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.3.15] - 2018-12-20
Added
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.3.14] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.3.13] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.1 (2018120301)
3.6.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120301
Version release name: 3.6.1
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.6.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.6.1] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.6 (2018051707)
3.5.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051707
Version release name: 3.5.6
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.5.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.6] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.7 (2017111308)
3.4.7
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111308
Version release name: 3.4.7
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.7
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.7] - 2018-12-31
Changed
- Make it clear what element values are just an example when previewing the PDF (#144).
Fixed
- Missing implementation for privacy provider (#260).
- Use course module context when calling format_string/text (#200).
- Exception being thrown when adding the 'teachername' element to site template (#261).
[3.4.6] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
- Instead of assuming 2 decimal points for percentages, we now make use of the decimal value setting, which the
functiongrade_format_gradevaluedoes by default if no decimal value is passed.
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
- Description strings referring to the wrong setting (#254).
[3.4.5] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.4.4] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.4.3] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.4.2] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.6.0 (2018120300)
3.6.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018120300
Version release name: 3.6.0
Maturity: Stable
Supported Moodle versions: 3.6
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.6.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.15 (2017050516)
3.3.15
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050516
Version release name: 3.3.15
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.15
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.15] - 2018-12-20
Added
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
[3.3.14] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.3.13] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.6 (2017111307)
3.4.6
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111307
Version release name: 3.4.6
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.6
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.6] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
[3.4.5] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.4.4] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.4.3] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.4.2] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.5 (2018051706)
3.5.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051706
Version release name: 3.5.5
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch: MOODLE_35_STABLE
Repository tag: v3.5.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.5] - 2018-12-20
Added
- GDPR: Add support for removal of users from a context (see MDL-62560) (#252).
- Images can be made transparent (#186).
- Set default values of activity instance settings (#180).
- Allow element plugins to control if they can be added to a certificate (#225).
- Allow element plugins to have their own admin settings (#213).
- Added plaintext language variants for email bodies (#231).
- Added possibility to selectively disable activity instance settings (#179).
Changed
- Allow verification of deleted users (#159).
- The 'element' field in the 'customcert_elements' table has been changed from a Text field to varchar(255) (#241).
- The 'Completion date' option in the 'date' element is only displayed when completion is enabled (#160).
Fixed
- Issue with scales not displaying correctly (#242).
- The report now respects the setting 'Show user identity' (#224).
- Removed incorrect course reset logic (#223).
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.14 (2017050514)
3.3.14
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050514
Version release name: 3.3.14
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.14
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.14] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.3.13] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.5 (2017111305)
3.4.5
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111305
Version release name: 3.4.5
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.5
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.5] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.4.4] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the local_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.4.3] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.4.2] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.4 (2018051704)
3.5.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051704
Version release name: 3.5.4
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.5.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.4] - 2018-07-13
Fixed
- Use custom fonts if present (#211).
- Fix broken SQL on Oracle in the email certificate task (#187).
- Fixed exception when clicking 'Add page' when template has not been saved (#154).
- Only email teachers who are enrolled within the course (#176).
- Only display teachers who are enrolled within the course in the dropdown (#171).
Changed
- Multiple UX improvements to both the browser and mobile views (#207).
- One big change here is combining the report and activity view page into one.
- Allow short dates with leading zeros (#210).
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.13 (2017050513)
3.3.13
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050513
Version release name: 3.3.13
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.13
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.13] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the tool_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.4 (2017111304)
3.4.4
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111304
Version release name: 3.4.4
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.4
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.4] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
- Provided access to necessary web services for mobile functionality to the tool_mobile plugin (#202).
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.4.3] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.4.2] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.3 (2018051703)
3.5.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051703
Version release name: 3.5.3
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.5.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.3] - 2018-06-26
Fixed
- Respect filters in the 'My certificates' and 'Verify certificate' pages (#197).
- Fixed reference to 'mod/certificate' capability.
Changed
- Multiple UX improvements to both the browser and mobile views (#203).
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.12 (2017050512)
3.3.12
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050512
Version release name: 3.3.12
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.12
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.12] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.3.11] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.3 (2017111303)
3.4.3
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111303
Version release name: 3.4.3
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.3
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.3] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.4.2] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.2 (2018051702)
3.5.2
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051702
Version release name: 3.5.2
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch: MOODLE_35_STABLE
Repository tag: v3.5.2
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.5.2] - 2018-06-07
Fixed
- Hotfix to prevent misalignment of 'text' elements after last release (#196).
[3.5.1] - 2018-06-06
Added
- Mobile app support (#70).
This allows students to view the activity and download
their certificate. It also allows teachers to view the
list of issued certificates, with the ability to revoke
any.
This is for the soon-to-be released Moodle Mobile v3.5.0
(not to be confused with your Moodle site version) and
will not work on Mobile versions earlier than this.
If you are running a Moodle site on version 3.4 or below
you will need to install the local_mobile plugin in order
for this to work.
If you are running a Moodle site on version 3.0 or below
then you will need to upgrade.
- More font sizes (#148).
- Added new download icon.
This was done because the core 'import' icon was mapped
to the Font Awesome icon 'fa-level-up' which did not look
appropriate. So, a new icon was added and that was mapped
to the 'fa-download' icon.
Fixed
- No longer display the 'action' column and user picture URL when downloading the user report (#192).
- Elements no longer ignore filters (#170).
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.5.0 (2018051700)
3.5.0
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2018051700
Version release name: 3.5.0
Maturity: Stable
Supported Moodle versions: 3.5
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.5.0
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.2.16 (2016120516)
3.2.16
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2016120516
Version release name: 3.2.16
Maturity: Stable
Supported Moodle versions: 3.2
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.2.16
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.2.16] - 2018-05-17
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.2.15] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.2.14] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.2.13] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.2.12] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.1.21 (2016052321)
3.1.21
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2016052321
Version release name: 3.1.21
Maturity: Stable
Supported Moodle versions: 3.1
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.1.21
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.1.21] - 2018-05-17
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.1.20] - 2018-01-23
Fixed
- The fatal error
Can't use method return value in write contextwould occur in PHP < 5.5 . Note - this fix does not need
to be applied to newer branches as the Moodle versions require PHP > 5.5.
[3.1.17] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.1.16] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.1.15] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.1.14] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.3.10 (2017050510)
3.3.10
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017050510
Version release name: 3.3.10
Maturity: Stable
Supported Moodle versions: 3.3
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.3.10
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.3.10] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.4.1 (2017111301)
3.4.1
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2017111301
Version release name: 3.4.1
Maturity: Stable
Supported Moodle versions: 3.4
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag: v3.4.1
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
Note - All hash comments refer to the issue number. Eg. #169 refers to https://github.com/markn86/moodle-mod_customcert/issues/169.
[3.4.1] - 2018-05-17
Added
- GDPR Compliance (#189).
Fixed
- Race condition on certificate issues in scheduled task (#173).
- Ensure we backup the 'verifyany' setting (#169).
- Fixed encoding content links used by restore (#166).
[3.3.9] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.3.8] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.3.7] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.3.6] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
3.1.20 (2016052320)
3.1.20
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2016052320
Version release name: 3.1.20
Maturity: Stable
Supported Moodle versions: 3.1
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch: MOODLE_31_STABLE
Repository tag: v3.1.20
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
Changelog
All notable changes to this project will be documented in this file.
[3.1.20] - 2018-01-23
Fixed
- The fatal error
Can't use method return value in write contextwould occur in PHP < 5.5 . Note - this fix does not need
to be applied to newer branches as the Moodle versions require PHP > 5.5.
[3.1.17] - 2017-11-13
Added
- Added capability
mod/customcert:verifyallcertificatesthat provides a user with the ability to verify any certificate
on the site by simply visiting themod/customcert/verify_certificate.phppage, rather than having to go to the
verification link for each certificate. - Added site setting
customcert/verifyallcertificateswhich when enabled allows any person (including users not logged in)
to be able to verify any certificate on the site, rather than having to go to the verification link for each certificate.
However, this only applies to certificates whereAllow anyone to verify a certificatehas been set toYesin the
certificate settings. - You can now display the grade and date of all grade items, not just the course and course activities.
- Text has been added above the
My certificateslist to explain that it contains certificates that have been issued to
avoid confusion as to why certificates may not be appearing.
Changed
- The course full name is now used in emails.
Fixed
- Added missing string used in course reset.
[3.1.16] - 2017-09-04
Added
- New digital signature element (uses existing functionality in the TCPDF library).
- Ability to duplicate site templates via the manage templates page.
- Ability to delete issued certificates for individual users on the course report page.
Changed
- Removed usage of magic getter and abuse of
$this->element. The variable$this->elementwill still be
accessible by any third-party element plugins, though this is discouraged and the appropriateget_xxx()
method should be used instead. Using$this->elementindefinition_after_data()will no longer work.
Please explicitly set the value of any custom fields you have in the form.
Fixed
- Added missing
confirm_sesskey()checks. - Minor bug fixes.
[3.1.15] - 2017-08-11
Added
- Added much needed Behat test coverage.
Changed
- Minor language string changes.
- Made changes to the UI when editing a certificate.
- Moved the 'Add element' submit button below the list of elements.
- Added icon next to the 'Delete page' link.
- Changed the 'Add page' button to a link, added an icon and moved it's location to the right.
- Do not make all submit buttons primary. MDL-59740 needs to be applied to your Moodle install in order to notice the change.
Fixed
- Issue where the date an activity was graded was not displaying at all.
[3.1.14] - 2017-08-05
Changed
- Renamed the column 'size' in the table 'customcert_elements' to 'fontsize' due to 'size' being a reserved word in Oracle.
2.9/3.0 release (Build: 2016032202) (2016032202)
2.9/3.0 release (Build: 2016032202)
Plugin type: Activities
Frankenstyle component name: mod_customcert
Version build number: 2016032202
Version release name: 2.9/3.0 release (Build: 2016032202)
Maturity: Stable
Supported Moodle versions: 2.9, 3.0
Repository URL (Git): https://github.com/markn86/moodle-mod_customcert
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues
QUICK INSTALL
There are two installation methods that are available. Follow one of these, then log into your Moodle site as an administrator and visit the notifications page to complete the install.
==================== MOST RECOMMENDED METHOD - Git ====================
If you do not have git installed, please see the below link. Please note, it is not necessary to set up the SSH Keys. This is only needed if you are going to create a repository of your own on github.com.
Information on installing git - http://help.github.com/set-up-git-redirect/
Once you have git installed, simply visit the Moodle mod directory and clone git://github.com/markn86/moodle-mod_customcert.git, remember to rename the folder to customcert if you do not specify this in the clone command
Eg. Linux command line would be as follow -
git clone git://github.com/markn86/moodle-mod_customcert.git customcert
Use git pull to update this repository periodically to ensure you have the latest version.
==================== Download the customcert module. ====================
Visit https://github.com/markn86/moodle-mod_customcert and download the zip, uncompress this zip and extract the folder. The folder will have a name similar to markn86-moodle-mod_customcert-c9fbadb, you MUST rename this to customcert. Place this folder in your mod folder in your Moodle directory.
nb. The reason this is not the recommended method is due to the fact you have to over-write the contents of this folder to apply any future updates to the customcert module. In the above method there is a simple command to update the files.
Customisation
========================= Add Fonts to TCPDF. =========================
For customization, you have a couple of options in the Custom Certificate module. One of the most common customizations is, adding fonts to the Certificate creator.
Custom Certificate uses a pdf creator called TCPDF, which embeds fonts into the PDF file, so that you can view fonts, even though they are not installed on the target machine. This requires you to tell TCPDF which fonts to take.
Importing Fonts into TCPDF is quite simple:
Convert the font you want embedded into the tcpdf format (for example using http://fonts.snm-portal.com or http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf)
Put the converted files into the folder:
/path/to/moodle/lib/tcpdf/fonts
Use the font in your certificate builder
Enjoy
> Please note that inserting a file into the tcpdf folder is considered a "core hack" and might not be available on some commercially hosted systems. Please check your providers agreement on the topic to make sure this is something you're allowed to do.