Blocks: Learning plan

Maintained by Picture of 3i Logic LMS3i Logic LMS
Popular plugin "Learning Plan" has now been upgraded & is compatible with Moodle version 3.3. This plugin serves as a database and plan for all learning activities in the organization for a structured learning program, including management reports.
513 sites
72 fans
Current versions available: 1

This plugin can be used as a database for entering and saving details about the organization's learning inititaives, and it can also be used as a platform for making, organizing and implementing structured learning throughout the organization. Each Learning Plan includes reports highlighting the trainings needed to complete the plan, the start and end date of the training, the learners and the status of the training. All in all, it is a great plugin to manage organizational learning.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9


Picture of 3i Logic LMS
3i Logic LMS (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • MD shot of me from his iphone4
    Wed, Oct 9, 2013, 3:20 PM
    Thanks for taking care of that security fix and the notices smile

    This looks really useful smile I'll approve this now.

    Note, your block's links are broken for me, need to add '=' between 'viewpage' and value.

    You may want to fix the following i noticed with E_STRICT on:
    Strict standards: Declaration of learningplan_form::validation() should be compatible with moodleform::validation($data, $files) in /blocks/learning_plan/learning_plan_form.php on line 29
  • Picture of William Lu
    Wed, Jan 15, 2014, 5:22 AM
    Installed successfully. Add ‘learning plan’ /’Add training’ /’Assign training into learning plan’ successfully. But a message flicked too quick to read.
    When ‘Assign learning plan to users’, it shows ‘Error reading from database”
    Tested on my Moodle2.6 and Moodle2.5.2, same error.
  • Picture of William Lu
    Fri, Jan 17, 2014, 10:02 AM
    No student can access a course with this block in it. Remove the 'learning plan' block, then students can access the course.
  • Picture of 3i Logic LMS
    Fri, Jan 17, 2014, 4:12 PM

    Dear William,

    Thank you very much for sharing your observation. We have tested it but do not see any problem in assigning learning plan to users. In order to fully understand your issue we need Stack Trace Information which would be shown after you select ALL: Show all reasonable PHP debug messages in the Debug Messages option. If you could send us this information, we will investigate further. You can always approach us directly too at for this or any other issue.
  • Picture of 3i Logic LMS
    Fri, Jan 17, 2014, 4:13 PM
    Dear William,

    We appreciate you raising this issue. This block is basically made for the front/home page but earlier it could also be shown on other pages which was apparently causing the problem. Now we have added restrictions for it to show only on the front/home page. You may like to try it by downloading again and it should work fine. You can always approach us directly too at for this or any other issue.
  • Picture of Michael Milette
    Tue, Jan 28, 2014, 12:46 AM
    Hi 3i,

    There are a number of warnings that come up when you use the Training Plan plugin on Moodle 2.5.1 and 2.6. I have created a pull request for the fix I submitted. It addresses the issues and makes the plugin Moodle 2.6 compatible. Please see and

    Here are just a few of the many notices, warnings and errors generated by Moodle and PHP. Unfortunately I didn't track the rest of the issues that have been addressed for Moodle 2.6 compatibility.

    ==> In Moodle 2.5.1

    When displaying the "Add Learning Plan" page, the fix addresses the following Moodle error messages:

    Strict Standards: Declaration of learningplan_form::validation() should be compatible with that of moodleform::validation() in /moodle/blocks/learning_plan/learning_plan_form.php on line 29.

    Strict Standards: Declaration of training_form::validation() should be compatible with that of moodleform::validation() in /moodle/blocks/learning_plan/learning_plan_form.php on line 123.

    ==> In Moodle 2.6.x.

    The following warnings occur when on the plugin’s Search page:

    * Warning: Missing argument 1 for search::display_list(), called in /www/moodle/blocks/learning_plan/view.php on line 241 and defined in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 479
    * Warning: Missing argument 2 for search::display_list(), called in /www/moodle/blocks/learning_plan/view.php on line 241 and defined in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 479
    * Warning: Missing argument 3 for search::display_list(), called in /www/moodle/blocks/learning_plan/view.php on line 241 and defined in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 479
    * Notice: Undefined variable: status in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 491
    * Notice: Undefined variable: lp_id in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 507
    * Notice: Undefined variable: t_id in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 507
    * Notice: Undefined variable: status in /www/moodle/blocks/learning_plan/learning_plan_form.php on line 507

    In addition, upon performing a search, the following errors are displayed:

    Coding problem: $PAGE->context was not set. You may have forgotten to call require_login() or $PAGE->set_context(). The page may not display correctly as a result

    * line 41 of /blocks/learning_plan/ajax_bridge.php: call to moodleform->moodleform()

    Doing a search with the Status field set to “All Status”, you also get the following errors:

    * Notice: Undefined variable: status_value in /www/moodle/blocks/learning_plan/lib.php on line 75

    I would appreciate it if you would be so kind as to give me an idea of when these fixes might be integrated into the official distrubution on

    Best regards,

    Michael Milette
  • Picture of 3i Logic LMS
    Tue, Jan 28, 2014, 12:49 PM
    Dear Michael,

    We greatly appreciate your interest and valuable input. The plugin was launched for Moodle 2.1 to 2.5 and we are currently undergoing testing for 2.6. As such, your input is of great assistance. We are aiming to update the Plugin for 2.6 within this week. We will keep you posted.

    We are also pleased to share that we are planning addition of new features to this Plugin, for which we have received great suggestions from several community members, which we hope to launch before the quarter end, while several other Plugins are in the pipeline.

    Thank you once again for your input. You may always reach us directly too on


    3i Logic LMS team
  • Picture of José Ricardo Silva
    Fri, Jan 31, 2014, 9:03 PM
    Hi, I'm testing the plugin on 2.5.2 ver. and when a non admin user tries to login into the site, They got the error message:

    Notice: Undefined variable: DB in /var/www/XXXXXX/httpdocs/ead/blocks/learning_plan/block_learning_plan.php on line 62 Fatal error: Call to a member function get_recordset_sql() on a non-object in /var/www/XXXXXX/httpdocs/ead/blocks/learning_plan/block_learning_plan.php on line 62

    Can you help me with this?

  • Picture of Michael Milette
    Fri, Feb 7, 2014, 4:43 AM
    Hi 3i,

    I was wondering, is there a way to automate the change the status from "Not yet started" to "In progress" to "completed" without having to manually change this?

    Best regards,

    Michael Milette
  • Picture of Michael Milette
    Fri, Feb 7, 2014, 4:48 AM
    Hi 3i,

    I just wanted to let you know that I submitted a pull request which includes the following list of changes:

    * Added security to ajax_bridge.php.
    * Added security to student/view.php.
    * All text appearing in the Learning Plan plugin uses text from the plugins language file to support additional languages. There is no longer any hard coded text in the source code.
    * All user entered data now supports entry of multilang markup, accented characters and is filtered through filters before it is displayed. (tested with a French language file).
    * A French language file is now included. Translation has started but is incomplete. The parts which are yet to be translated only affects administrative tasks.
    * Upgrading the plugin triggers a clean-up of unused records in the learning_user_trainingplan table that were left behind when training plans were deleted. Change is in db/upgrade.php.
    * The learning_user_trainingplan table is now getting cleaned-up when removing a student from a learning plan. This issue resulted in many rows in the table that were no longer of use. Change is in the delete_learningplan_record() function, learning_user_learningplan section, the second use of the $DB->delete_records() function.
    * Adding a Learning Plan to a student now automatically sets the status to Not Yet Started by default. It was doing this before but storing it as text instead of a numeric value causing incorrect display of information.
    * Sometimes status was stored in database as string and other times as a numeric value. It is now always stored as a numeric value. All, not just some, of the statuses now appear in the status column of the search results
    * The 3 statuses levels are now defined in the language file for easy translation and modification instead of being hard coded throughout the source code.
    * Upgrading the plugin triggers fixing inconsistencies of existing table records in learning_user_trainingplan table where text had been stored instead of numeric values for status. The mix of text and numbers resulted in some inconsistent operations.
    * When viewing a training plan as a student, a Moodle warning was displayed indicating that the context was not set. Require_login() and $PAGE->set_context() have now both been added to student/view.php to fix the issue.
    * Removed grey header table/box and re-formatted header in student/view.php so that it conforms to Moodle theme colour and formatting. The header is now also WCAG 2.0 level AA compliant.
    * Added viewpage parameter to $PAGE->seturl() in view.php so that toggling of page language now works properly.
    * Added id parameter to $PAGE->seturl() in student/view.php so that toggling of page language now works properly.
    * Added link to breadcrumb in student/view.php so that the page's H1 heading appears correctly instead of just "My Page" or “Home”, depending on how you’ve configured Moodle.
    * Applied Moodle's userdate() function everywhere date/time is displayed to format these in user local time and format defined in core_langconfig language file. The result is consistent date formats used throughout the Moodle site. You can customise these by modifying the Moodle language strings and resetting the cache. The original values are left in source code comments in case someone wants to know what the original values used to be.
    * Removed duplicate string definitions in the language file which were leading to confusion (changes to a string and it wouldn't change because it was defined a second time elsewhere)
    * Course names in the Student Status Report (student view.php) are now links if a URL is available.
    * Some minor code cleanup including: corrections to source code indentations, replacement of tabs with spaces, removal of trailing spaces.
    * Corrected typo in readme.txt file.

    I would really appreciate it if you would be so kind as to integrate these changes into the next version of the Learning Plan plugin.

    Let me know if you have any questions or concerns.

    Best regards,

  • Picture of karla castañeda
    Sat, Mar 22, 2014, 7:50 AM
    When i assigned a learning plan to a student, they can not access the course from the block. Can you help me how to do it?
  • Picture of 3i Logic LMS
    Mon, Mar 24, 2014, 2:42 PM
    Dear Karla,

    Thanks you for using this plugin, Can you provide message which shown after student access on any Learning Plan.

    You may always reach us directly too on


    3i Logic LMS team
  • Picture of Mateusz Szuter
    Fri, Apr 18, 2014, 6:06 PM
    I got error when I'd like to add training plan to a student.
    Debug info: ERROR: column " " does not exist
    LINE 1: SELECT id, CONCAT(firstname," ", lastname)FROM mdl_user wher...
    SELECT id, CONCAT(firstname," ", lastname)FROM mdl_user where username!="guest"
    [array (
    Error code: dmlreadexception
    Stack trace:
    line 441 of /lib/dml/moodle_database.php: dml_read_exception thrown
    line 239 of /lib/dml/pgsql_native_moodle_database.php: call to moodle_database->query_end()
    line 744 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->query_end()
    line 1339 of /lib/dml/moodle_database.php: call to pgsql_native_moodle_database->get_records_sql()
    line 400 of /blocks/learning_plan/learning_plan_form.php: call to moodle_database->get_records_sql_menu()
    line 191 of /lib/formslib.php: call to assignlerningplan_user_form->definition()
    line 193 of /blocks/learning_plan/view.php: call to moodleform->moodleform()

    Could you help with this? smile
  • Picture of 3i Logic LMS
    Fri, Apr 18, 2014, 8:33 PM
    Dear Mateusz,
    Thanks for using this plugin. Kindly provide a version number of plugin which you are using.

    You may always reach us directly too on

    3i Logic LMS team
  • Picture of Shahid Ismail
    Tue, Apr 29, 2014, 10:09 AM

    Thank you so much for the plugin, this is exactly what we were looking for in the organisation.

    However when i assign the learning plan with added course to a student is there a way that the learning plan can auto update the status itself rather then me having to go to every individual profile and update their status manually?

    As, if i have about 10 courses and 100 people assigned to the courses then it would be a nightmare for me to update every individual record, therefore if the student access a course and the status in the learning plan updates automatically to in progress/completed that would be of so much help.

Please login to post comments