Changeset 3055398 for masterstudy-lms-learning-management-system
- Timestamp:
- 03/20/2024 02:22:12 PM (13 months ago)
- Location:
- masterstudy-lms-learning-management-system/trunk
- Files:
-
- 1 added
- 27 edited
-
_core/assets/css/parts/enterprise_group.css (modified) (1 diff)
-
_core/assets/css/parts/instructor/account.css (modified) (1 diff)
-
_core/assets/css/parts/online-testing.css (modified) (1 diff)
-
_core/assets/js/components/authorization/main.js (modified) (2 diffs)
-
_core/assets/js/course-player/content/quiz.js (modified) (1 diff)
-
_core/assets/js/courses.js (modified) (1 diff)
-
_core/includes/elementor/helpers/ajax_actions.php (modified) (2 diffs)
-
_core/init.php (modified) (1 diff)
-
_core/libraries/db/helpers/user_answers.php (modified) (1 diff)
-
_core/libraries/db/tables/user_courses.table.php (modified) (1 diff)
-
_core/lms/classes/helpers.php (modified) (2 diffs)
-
_core/lms/classes/quiz.php (modified) (5 diffs)
-
_core/lms/classes/subscriptions.php (modified) (1 diff)
-
_core/lms/classes/templates.php (modified) (2 diffs)
-
_core/lms/classes/user.php (modified) (4 diffs)
-
_core/lms/classes/vendor/LmsUpdateCallbacks.php (modified) (1 diff)
-
_core/lms/classes/vendor/LmsUpdates.php (modified) (1 diff)
-
_core/stm-lms-templates/account/public/instructor.php (modified) (1 diff)
-
_core/stm-lms-templates/account/public/instructor_parts/courses.php (modified) (3 diffs)
-
_core/stm-lms-templates/account/public/main.php (modified) (2 diffs)
-
_core/stm-lms-templates/course-player/content/quiz/main.php (modified) (3 diffs)
-
_core/stm-lms-templates/dashboard/components/user_data_transfer.php (added)
-
_core/stm-lms-templates/masterstudy-lms-learning-management-system.php (modified) (1 diff)
-
masterstudy-lms-learning-management-system.php (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
-
vendor/autoload.php (modified) (1 diff)
-
vendor/composer/autoload_real.php (modified) (2 diffs)
-
vendor/composer/autoload_static.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
masterstudy-lms-learning-management-system/trunk/_core/assets/css/parts/enterprise_group.css
r2795646 r3055398 1 #stm_lms_enterprise_group .stm_lms_enterprise_group__single.active,#stm_lms_enterprise_group .stm_lms_enterprise_group__single:hover{background-color:#f6f6f6}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading,#stm_lms_enterprise_group .stm_lms_user_ent_course.loading{min-height:auto}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading>*,#stm_lms_enterprise_group.loading>*{opacity:.5}.stm-lms-wrapper--group h2{margin:40px 0}#stm_lms_enterprise_group{margin:50px 0}#stm_lms_enterprise_group .stm_lms_enterprise_group__single{display:flex;align-items:center;flex-wrap:wrap;border:1px solid #f1f1f1;border-bottom:0;cursor:pointer}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading:before{top:50%;margin-top:-12px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single:last-child{border-bottom:1px solid #f1f1f1}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_avatar{padding:12px 0 12px 12px;max-width:42px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_title{line-height:54px;margin:0 15px;flex-grow:1}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions{padding-right:12px;margin-left:auto}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions .expand{display:inline-block;vertical-align:top;width:30px;height:30px;line-height:30px;text-align:center;cursor:pointer}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions .expand:before{display:inline-block;content:"";width:0;height:0;border-style:solid;border-width:8px 5px 0;border-color:#ccc transparent transparent}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a{display:inline-block;vertical-align:top;font-size:13px;color:#bbb;margin:4px 10px 0;opacity:0;visibility:hidden}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a i{margin-right:4px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a span{border-bottom:1px dashed #bbb}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a:hover{color:#385bce}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a:hover span{border-color:#385bce}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a.deleteFromGroup:hover{color:#f00909}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a.deleteFromGroup:hover span{border-color:#f00909}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_courses{padding:0 15px;width:100%}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.active .actions a{opacity:1;visibility:visible}#stm_lms_enterprise_group .stm_lms_user_ent_courses{padding:30px 0 0}#stm_lms_enterprise_group .stm_lms_user_ent_course{display:flex;align-items:center;margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid #eee}#stm_lms_enterprise_group .stm_lms_user_ent_course.loading>*{opacity:.7}#stm_lms_enterprise_group .stm_lms_user_ent_course.loading:before{top:50%;margin-top:-15px}#stm_lms_enterprise_group .stm_lms_user_ent_course:last-child{padding-bottom:0;border-bottom:0}#stm_lms_enterprise_group .stm_lms_user_ent_course__title{margin-right:30px}#stm_lms_enterprise_group .stm_lms_user_ent_course__title h4{margin-bottom:7px;font-weight:400}#stm_lms_enterprise_group .stm_lms_user_ent_course__progress{ max-width:200px;height:10px;border-radius:5px;overflow:hidden;background-color:#eee}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions{margin-left:auto}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn{min-width:150px;padding:10px 15px;font-size:14px;text-transform:none;font-weight:400;letter-spacing:0;border-radius:5px}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn.remove{background-color:#ddd}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn.remove:hover{background-color:#f00909}1 #stm_lms_enterprise_group .stm_lms_enterprise_group__single.active,#stm_lms_enterprise_group .stm_lms_enterprise_group__single:hover{background-color:#f6f6f6}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading,#stm_lms_enterprise_group .stm_lms_user_ent_course.loading{min-height:auto}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading>*,#stm_lms_enterprise_group.loading>*{opacity:.5}.stm-lms-wrapper--group h2{margin:40px 0}#stm_lms_enterprise_group{margin:50px 0}#stm_lms_enterprise_group .stm_lms_enterprise_group__single{display:flex;align-items:center;flex-wrap:wrap;border:1px solid #f1f1f1;border-bottom:0;cursor:pointer}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.loading:before{top:50%;margin-top:-12px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single:last-child{border-bottom:1px solid #f1f1f1}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_avatar{padding:12px 0 12px 12px;max-width:42px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_title{line-height:54px;margin:0 15px;flex-grow:1}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions{padding-right:12px;margin-left:auto}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions .expand{display:inline-block;vertical-align:top;width:30px;height:30px;line-height:30px;text-align:center;cursor:pointer}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions .expand:before{display:inline-block;content:"";width:0;height:0;border-style:solid;border-width:8px 5px 0;border-color:#ccc transparent transparent}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a{display:inline-block;vertical-align:top;font-size:13px;color:#bbb;margin:4px 10px 0;opacity:0;visibility:hidden}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a i{margin-right:4px}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a span{border-bottom:1px dashed #bbb}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a:hover{color:#385bce}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a:hover span{border-color:#385bce}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a.deleteFromGroup:hover{color:#f00909}#stm_lms_enterprise_group .stm_lms_enterprise_group__single .actions a.deleteFromGroup:hover span{border-color:#f00909}#stm_lms_enterprise_group .stm_lms_enterprise_group__single_courses{padding:0 15px;width:100%}#stm_lms_enterprise_group .stm_lms_enterprise_group__single.active .actions a{opacity:1;visibility:visible}#stm_lms_enterprise_group .stm_lms_user_ent_courses{padding:30px 0 0}#stm_lms_enterprise_group .stm_lms_user_ent_course{display:flex;align-items:center;margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid #eee}#stm_lms_enterprise_group .stm_lms_user_ent_course.loading>*{opacity:.7}#stm_lms_enterprise_group .stm_lms_user_ent_course.loading:before{top:50%;margin-top:-15px}#stm_lms_enterprise_group .stm_lms_user_ent_course:last-child{padding-bottom:0;border-bottom:0}#stm_lms_enterprise_group .stm_lms_user_ent_course__title{margin-right:30px}#stm_lms_enterprise_group .stm_lms_user_ent_course__title h4{margin-bottom:7px;font-weight:400}#stm_lms_enterprise_group .stm_lms_user_ent_course__progress{position:relative;max-width:200px;height:10px;border-radius:5px;overflow:hidden;background-color:#eee}#stm_lms_enterprise_group .stm_lms_user_ent_course__progress .progress-bar-success{position:absolute;display:block;content:"";left:0;top:0;height:10px;width:0}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions{margin-left:auto}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn{min-width:150px;padding:10px 15px;font-size:14px;text-transform:none;font-weight:400;letter-spacing:0;border-radius:5px}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn.remove{background-color:#ddd}#stm_lms_enterprise_group .stm_lms_user_ent_course__actions .btn.remove:hover{background-color:#f00909} -
masterstudy-lms-learning-management-system/trunk/_core/assets/css/parts/instructor/account.css
r2951519 r3055398 1 .stm _lms_user_info_top__info{display:flex;justify-content:flex-end;flex-grow:1}.stm_lms_user_info_top__info>div{margin-left:30px}.stm_lms_user_info_top__info .stm-lms-user_rating{margin-bottom:0}.stm_lms_user_info_top h3.student_name{max-width:100%;margin:0 0 15px}.stm_lms_user_info_top h5.student_name_pos{margin-bottom:0;color:#2a3045;font-size:16px;font-weight:400}.stm_lms_user_info_top__socials{display:flex;align-items:center;margin-left:15px}.stm_lms_user_info_top .stm-lms-my-points i,.stm_lms_user_info_top .stm-lms-my-points img{margin-top:-21px}.stm_lms_instructor_info{display:flex}.stm_lms_instructor_info .stm-lms-user-avatar-edit .stm-lms-user_avatar img,.stm_lms_instructor_info .stm-lms-user-avatar-edit .stm-lms-user_avatar:before{border-radius:10px}.stm_lms_instructor_info .stm_lms_user_bio{margin-left:30px}.stm_lms_instructor_info .stm_lms_user_bio h3{margin-bottom:25px;font-size:18px;line-height:1.2;font-weight:400}.stm_lms_instructor_edit_avatar{text-align:center;min-width:215px}.stm_lms_instructor_edit_avatar .stm_lms_instructor_profile_settings{display:inline-block;margin:20px auto 40px;padding:8px 13px 9px;border-radius:20px;border:1px solid #c5c9d1;background-color:#fff;font-size:14px;font-weight:400;color:#273044}.stm_lms_instructor_edit_avatar .stm_lms_instructor_profile_settings i{margin-right:5px;color:#385bce}.stm_lms_instructor_edit_settings{flex-grow:1}.stm_lms_instructor_edit_settings .stm_lms_edit_name{margin:5px 0 0}#stm-lms-course-no-result{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;flex-direction:column;position:relative;margin-top:50px;margin-bottom:20px;width:100%}#stm-lms-course-no-result .no-found{position:relative}#stm-lms-course-no-result .no-found .no-result-icon{display:flex;justify-content:center;align-items:center;background-color:#385bce;opacity:.1;width:120px;height:120px;border-radius:50%}#stm-lms-course-no-result .no-found .no-found-icon{position:absolute;top:50%;right:50%;font-size:60px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);color:#385bce}#stm-lms-course-no-result a.btn{padding:15px 20px;background-color:#eef1f7;color:#273044;text-transform:none;letter-spacing:0}#stm-lms-course-no-result a.btn:hover{background-color:#385bce;color:#fff}#stm-lms-course-no-result a.btn:hover i{color:#fff}#stm-lms-course-no-result a.btn i{color:#385bce;margin-right:5px}#stm-lms-course-no-result p{color:#263145;font-size:24px;font-weight:400;font-style:normal;letter-spacing:normal;text-align:center;margin:0;padding:20px 0}#stm-lms-course-no-result .no-result-icon{display:flex;justify-content:center;align-items:center;background-color:RGBA(57,91,206,.1);width:120px;height:120px;border-radius:50%}#stm-lms-course-no-result .no-result-icon i{position:relative;display:block;width:60px;height:60px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Cpath fill='%23395bce' d='M35.23 18.149c9.43.01 17.07 7.652 17.081 17.081 0 9.434-7.647 17.081-17.08 17.081-9.435 0-17.082-7.647-17.082-17.08 0-9.435 7.647-17.082 17.081-17.082zM54.446 35.23c0-10.613-8.603-19.216-19.216-19.216-10.613 0-19.216 8.603-19.216 19.216 0 10.613 8.603 19.216 19.216 19.216 10.608-.012 19.204-8.608 19.216-19.216z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M49.738 50.806a1.068 1.068 0 0 0 .755-1.823l-1.676-1.676a1.067 1.067 0 0 0-1.51 1.51l1.676 1.676c.2.2.472.313.755.313zM35.23 22.419c7.07.01 12.803 5.74 12.81 12.811 0 7.075-5.735 12.81-12.81 12.81s-12.81-5.735-12.81-12.81 5.735-12.81 12.81-12.81zm.004 0h-.004.004zM50.176 35.23c0-8.254-6.691-14.946-14.946-14.946-8.254 0-14.946 6.692-14.946 14.946 0 8.255 6.692 14.946 14.946 14.946 8.25-.01 14.937-6.695 14.946-14.946z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M29.646 12.437a1.068 1.068 0 0 1 0-2.135h.492a1.068 1.068 0 1 1 0 2.135zm26.498 31.9a1.068 1.068 0 0 1-.302-2.093 2.51 2.51 0 0 0 1.807-2.38v-27.31a.124.124 0 0 0-.128-.117h-3.608a1.068 1.068 0 0 1 0-2.135h3.608a2.26 2.26 0 0 1 2.263 2.252v27.31a4.657 4.657 0 0 1-3.339 4.429 1.08 1.08 0 0 1-.301.044zm-51.479.149A4.65 4.65 0 0 1 0 39.863V12.554a2.26 2.26 0 0 1 2.263-2.252h3.609a1.068 1.068 0 1 1 0 2.135H2.263a.124.124 0 0 0-.128.117v27.31a2.512 2.512 0 0 0 2.53 2.487h9.705a1.068 1.068 0 1 1 0 2.135zM50.297 50.8c-.209.446-.141.974.174 1.353l4.111 4.936a1.857 1.857 0 1 0 2.615-2.615l-4.936-4.111a1.271 1.271 0 0 0-.814-.297 1.273 1.273 0 0 0-1.15.734zm5.71 9.092a4.003 4.003 0 0 1-3.066-1.437l-4.11-4.935a3.406 3.406 0 0 1 4.797-4.798l4.934 4.111a3.99 3.99 0 0 1 .268 5.89 4.002 4.002 0 0 1-2.823 1.17z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M53.913 23.925c.59 0 1.067-.478 1.067-1.068V9.032a2.248 2.248 0 0 0-2.19-2.252 64.549 64.549 0 0 0-7.369.195 1.068 1.068 0 0 0 .18 2.128c2.368-.2 4.747-.263 7.123-.19a.115.115 0 0 1 .121.119v13.825c0 .59.478 1.068 1.067 1.068zM13.1 39.885a1.068 1.068 0 0 0 .079-2.133 54.98 54.98 0 0 0-3.708-.141 2.537 2.537 0 0 1-2.532-2.498V9.032a.115.115 0 0 1 .12-.118 59.87 59.87 0 0 1 21.766 3.295v1.253a1.068 1.068 0 1 0 2.135 0v-2.007c0-.45-.282-.851-.705-1.004A62.012 62.012 0 0 0 6.989 6.78a2.247 2.247 0 0 0-2.185 2.252v26.08a4.68 4.68 0 0 0 4.645 4.634c1.403.013 2.503.055 3.57.135l.08.003z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M29.892 14.53c-.59 0-1.067-.478-1.067-1.068v-2.007a1.068 1.068 0 1 1 2.135 0v2.007c0 .59-.478 1.068-1.068 1.068z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M45.51 16.387c-.589 0-1.067-.478-1.067-1.067V2.263a.122.122 0 0 0-.062-.107.117.117 0 0 0-.121-.011 41.542 41.542 0 0 0-8.239 5.161 55.969 55.969 0 0 0-5.061 4.583v1.573a1.068 1.068 0 1 1-2.135 0v-2.007c0-.277.107-.543.3-.742a58.465 58.465 0 0 1 5.568-5.079 43.733 43.733 0 0 1 8.67-5.428 2.27 2.27 0 0 1 3.215 2.057V15.32c0 .59-.478 1.068-1.067 1.067z'/%3E%3C/g%3E%3Cg transform='rotate(45 35.625 35.49)'%3E%3Cg%3E%3Cpath fill='%23395bce' d='M35.5 44.865a1 1 0 0 1-1-1v-16.75a1 1 0 0 1 1-1h.25a1 1 0 0 1 1 1v16.75a1 1 0 0 1-1 1z'/%3E%3C/g%3E%3Cg transform='rotate(90 35.625 35.49)'%3E%3Cpath fill='%23395bce' d='M35.5 44.865a1 1 0 0 1-1-1v-16.75a1 1 0 0 1 1-1h.25a1 1 0 0 1 1 1v16.75a1 1 0 0 1-1 1z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat}.stm-lms-course-spinner-container{display:flex;width:100%;justify-content:center;margin-bottom:50px}.stm-lms-spinner{display:inline-block;position:relative;width:64px;height:64px}.stm-lms-spinner div{box-sizing:border-box;display:block;position:absolute;width:40px;height:40px;margin:8px;border:5px solid #385bce;border-radius:50%;-webkit-animation:stm-lms-spinner-animation 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:stm-lms-spinner-animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#385bce transparent transparent}.stm-lms-spinner div:nth-child(1){-webkit-animation-delay:-.45s;animation-delay:-.45s}.stm-lms-spinner div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}.stm-lms-spinner div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}@-webkit-keyframes stm-lms-spinner-animation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes stm-lms-spinner-animation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@media (max-width:700px){.stm_lms_instructor_info{flex-direction:column}.stm_lms_instructor_info .stm_lms_instructor_edit_avatar{margin-bottom:20px}.stm-lms-user-avatar-edit i.lnricons-pencil,.stm-lms-user-avatar-edit:hover .stm-lms-user_avatar:before{opacity:1;visibility:visible}}1 .stm-lms-public-instructor .inactive{display:none}.user-account-page .stm-lms-co-courses-editable{display:block}.stm-lms-co-courses-editable,.user-account-page .stm-lms-co-courses-non-editable-grid{display:none}.stm_lms_user_info_top__info{display:flex;justify-content:flex-end;flex-grow:1}.stm_lms_user_info_top__info>div{margin-left:30px}.stm_lms_user_info_top__info .stm-lms-user_rating{margin-bottom:0}.stm_lms_user_info_top h3.student_name{max-width:100%;margin:0 0 15px}.stm_lms_user_info_top h5.student_name_pos{margin-bottom:0;color:#2a3045;font-size:16px;font-weight:400}.stm_lms_user_info_top__socials{display:flex;align-items:center;margin-left:15px}.stm_lms_user_info_top .stm-lms-my-points i,.stm_lms_user_info_top .stm-lms-my-points img{margin-top:-21px}@media (max-width:400px){.stm-lms-public-instructor .masterstudy-lms-public-account-courses-tabs{border-top:none}}.masterstudy-lms-public-account-courses-tabs{display:flex;align-items:center;margin:10px 0 30px;padding:0;border-top:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;list-style:none}.masterstudy-lms-public-account-courses-tabs .tabs{display:flex}@media (max-width:420px){.masterstudy-lms-public-account-courses-tabs{flex-wrap:wrap}.masterstudy-lms-public-account-courses-tabs .tabs{margin-top:0}}.masterstudy-lms-public-account-courses-tabs h3{margin:0 90px 0 0;line-height:50px}@media (max-width:820px){.masterstudy-lms-public-account-courses-tabs h3{font-size:18px}}@media (max-width:600px){.masterstudy-lms-public-account-courses-tabs h3{margin-right:75px}}@media (max-width:500px){.masterstudy-lms-public-account-courses-tabs h3{margin-right:30px;line-height:50px}}.masterstudy-lms-public-account-courses-tabs li{list-style:none;margin-bottom:0;cursor:pointer;margin-right:30px;padding:25px 0;position:relative;font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;line-height:14px;font-size:14px}@media (max-width:500px){.masterstudy-lms-public-account-courses-tabs li{margin-right:10px}}.masterstudy-lms-public-account-courses-tabs li.active{color:var(--accent-100)}.masterstudy-lms-public-account-courses-tabs li.active:after{display:block}.masterstudy-lms-public-account-courses-tabs li:after{content:"";width:100%;height:2px;background-color:var(--accent-100);position:absolute;bottom:0;top:auto;left:0;display:none}.pages-template .masterstudy-lms-public-account-courses-tabs li:after{bottom:-8px}.stm_lms_instructor_co_courses .stm_lms_instructor_courses__top h3{padding-top:0}.stm_lms_instructor_info{display:flex}.stm_lms_instructor_info .stm-lms-user-avatar-edit .stm-lms-user_avatar img,.stm_lms_instructor_info .stm-lms-user-avatar-edit .stm-lms-user_avatar:before{border-radius:10px}.stm_lms_instructor_info .stm_lms_user_bio{margin-left:30px}.stm_lms_instructor_info .stm_lms_user_bio h3{margin-bottom:25px;font-size:18px;line-height:1.2;font-weight:400}.stm_lms_instructor_edit_avatar{text-align:center;min-width:215px}.stm_lms_instructor_edit_avatar .stm_lms_instructor_profile_settings{display:inline-block;margin:20px auto 40px;padding:8px 13px 9px;border-radius:20px;border:1px solid #c5c9d1;background-color:#fff;font-size:14px;font-weight:400;color:#273044}.stm_lms_instructor_edit_avatar .stm_lms_instructor_profile_settings i{margin-right:5px;color:#385bce}.stm_lms_instructor_edit_settings{flex-grow:1}.stm_lms_instructor_edit_settings .stm_lms_edit_name{margin:5px 0 0}#stm-lms-course-no-result{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;flex-direction:column;position:relative;margin-top:50px;margin-bottom:20px;width:100%}#stm-lms-course-no-result .no-found{position:relative}#stm-lms-course-no-result .no-found .no-result-icon{display:flex;justify-content:center;align-items:center;background-color:#385bce;opacity:.1;width:120px;height:120px;border-radius:50%}#stm-lms-course-no-result .no-found .no-found-icon{position:absolute;top:50%;right:50%;font-size:60px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);color:#385bce}#stm-lms-course-no-result a.btn{padding:15px 20px;background-color:#eef1f7;color:#273044;text-transform:none;letter-spacing:0}#stm-lms-course-no-result a.btn:hover{background-color:#385bce;color:#fff}#stm-lms-course-no-result a.btn:hover i{color:#fff}#stm-lms-course-no-result a.btn i{color:#385bce;margin-right:5px}#stm-lms-course-no-result p{color:#263145;font-size:24px;font-weight:400;font-style:normal;letter-spacing:normal;text-align:center;margin:0;padding:20px 0}#stm-lms-course-no-result .no-result-icon{display:flex;justify-content:center;align-items:center;background-color:RGBA(57,91,206,.1);width:120px;height:120px;border-radius:50%}#stm-lms-course-no-result .no-result-icon i{position:relative;display:block;width:60px;height:60px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Cpath fill='%23395bce' d='M35.23 18.149c9.43.01 17.07 7.652 17.081 17.081 0 9.434-7.647 17.081-17.08 17.081-9.435 0-17.082-7.647-17.082-17.08 0-9.435 7.647-17.082 17.081-17.082zM54.446 35.23c0-10.613-8.603-19.216-19.216-19.216-10.613 0-19.216 8.603-19.216 19.216 0 10.613 8.603 19.216 19.216 19.216 10.608-.012 19.204-8.608 19.216-19.216z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M49.738 50.806a1.068 1.068 0 0 0 .755-1.823l-1.676-1.676a1.067 1.067 0 0 0-1.51 1.51l1.676 1.676c.2.2.472.313.755.313zM35.23 22.419c7.07.01 12.803 5.74 12.81 12.811 0 7.075-5.735 12.81-12.81 12.81s-12.81-5.735-12.81-12.81 5.735-12.81 12.81-12.81zm.004 0h-.004.004zM50.176 35.23c0-8.254-6.691-14.946-14.946-14.946-8.254 0-14.946 6.692-14.946 14.946 0 8.255 6.692 14.946 14.946 14.946 8.25-.01 14.937-6.695 14.946-14.946z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M29.646 12.437a1.068 1.068 0 0 1 0-2.135h.492a1.068 1.068 0 1 1 0 2.135zm26.498 31.9a1.068 1.068 0 0 1-.302-2.093 2.51 2.51 0 0 0 1.807-2.38v-27.31a.124.124 0 0 0-.128-.117h-3.608a1.068 1.068 0 0 1 0-2.135h3.608a2.26 2.26 0 0 1 2.263 2.252v27.31a4.657 4.657 0 0 1-3.339 4.429 1.08 1.08 0 0 1-.301.044zm-51.479.149A4.65 4.65 0 0 1 0 39.863V12.554a2.26 2.26 0 0 1 2.263-2.252h3.609a1.068 1.068 0 1 1 0 2.135H2.263a.124.124 0 0 0-.128.117v27.31a2.512 2.512 0 0 0 2.53 2.487h9.705a1.068 1.068 0 1 1 0 2.135zM50.297 50.8c-.209.446-.141.974.174 1.353l4.111 4.936a1.857 1.857 0 1 0 2.615-2.615l-4.936-4.111a1.271 1.271 0 0 0-.814-.297 1.273 1.273 0 0 0-1.15.734zm5.71 9.092a4.003 4.003 0 0 1-3.066-1.437l-4.11-4.935a3.406 3.406 0 0 1 4.797-4.798l4.934 4.111a3.99 3.99 0 0 1 .268 5.89 4.002 4.002 0 0 1-2.823 1.17z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M53.913 23.925c.59 0 1.067-.478 1.067-1.068V9.032a2.248 2.248 0 0 0-2.19-2.252 64.549 64.549 0 0 0-7.369.195 1.068 1.068 0 0 0 .18 2.128c2.368-.2 4.747-.263 7.123-.19a.115.115 0 0 1 .121.119v13.825c0 .59.478 1.068 1.067 1.068zM13.1 39.885a1.068 1.068 0 0 0 .079-2.133 54.98 54.98 0 0 0-3.708-.141 2.537 2.537 0 0 1-2.532-2.498V9.032a.115.115 0 0 1 .12-.118 59.87 59.87 0 0 1 21.766 3.295v1.253a1.068 1.068 0 1 0 2.135 0v-2.007c0-.45-.282-.851-.705-1.004A62.012 62.012 0 0 0 6.989 6.78a2.247 2.247 0 0 0-2.185 2.252v26.08a4.68 4.68 0 0 0 4.645 4.634c1.403.013 2.503.055 3.57.135l.08.003z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M29.892 14.53c-.59 0-1.067-.478-1.067-1.068v-2.007a1.068 1.068 0 1 1 2.135 0v2.007c0 .59-.478 1.068-1.068 1.068z'/%3E%3C/g%3E%3Cg%3E%3Cpath fill='%23395bce' d='M45.51 16.387c-.589 0-1.067-.478-1.067-1.067V2.263a.122.122 0 0 0-.062-.107.117.117 0 0 0-.121-.011 41.542 41.542 0 0 0-8.239 5.161 55.969 55.969 0 0 0-5.061 4.583v1.573a1.068 1.068 0 1 1-2.135 0v-2.007c0-.277.107-.543.3-.742a58.465 58.465 0 0 1 5.568-5.079 43.733 43.733 0 0 1 8.67-5.428 2.27 2.27 0 0 1 3.215 2.057V15.32c0 .59-.478 1.068-1.067 1.067z'/%3E%3C/g%3E%3Cg transform='rotate(45 35.625 35.49)'%3E%3Cg%3E%3Cpath fill='%23395bce' d='M35.5 44.865a1 1 0 0 1-1-1v-16.75a1 1 0 0 1 1-1h.25a1 1 0 0 1 1 1v16.75a1 1 0 0 1-1 1z'/%3E%3C/g%3E%3Cg transform='rotate(90 35.625 35.49)'%3E%3Cpath fill='%23395bce' d='M35.5 44.865a1 1 0 0 1-1-1v-16.75a1 1 0 0 1 1-1h.25a1 1 0 0 1 1 1v16.75a1 1 0 0 1-1 1z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat}.stm-lms-course-spinner-container{display:flex;width:100%;justify-content:center;margin-bottom:50px}.stm-lms-spinner{display:inline-block;position:relative;width:64px;height:64px}.stm-lms-spinner div{box-sizing:border-box;display:block;position:absolute;width:40px;height:40px;margin:8px;border:5px solid #385bce;border-radius:50%;-webkit-animation:stm-lms-spinner-animation 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:stm-lms-spinner-animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#385bce transparent transparent}.stm-lms-spinner div:nth-child(1){-webkit-animation-delay:-.45s;animation-delay:-.45s}.stm-lms-spinner div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}.stm-lms-spinner div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}@-webkit-keyframes stm-lms-spinner-animation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes stm-lms-spinner-animation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@media (max-width:700px){.stm_lms_instructor_info{flex-direction:column}.stm_lms_instructor_info .stm_lms_instructor_edit_avatar{margin-bottom:20px}.stm-lms-user-avatar-edit i.lnricons-pencil,.stm-lms-user-avatar-edit:hover .stm-lms-user_avatar:before{opacity:1;visibility:visible}} -
masterstudy-lms-learning-management-system/trunk/_core/assets/css/parts/online-testing.css
r2795646 r3055398 1 . stm_lms_online-testing{line-height:36px;min-height:500px}.stm_lms_online-testing:after{content:"";display:table;clear:both}.stm_lms_online-testing .stm-lms-course__lesson-content{padding:0 0 50px}.stm_lms_online-testing .btn-back{display:none}.stm-online-testing #main{padding:80px 0;background:url(../../img/quiz_bg.png) 100% 0 no-repeat #f6f8fb}1 .masterstudy-online-testing .masterstudy-course-player-quiz__content-meta-item,.masterstudy-online-testing .masterstudy-pagination__list,.masterstudy-online-testing ul,.masterstudy-online-testing-quiz__navigation-tab ul{padding-left:0}.masterstudy-online-testing{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;position:relative}.masterstudy-online-testing h2,.masterstudy-online-testing p,.masterstudy-online-testing ul li{margin-top:0;margin-bottom:0;margin-right:30px}.masterstudy-online-testing-quiz__navigation-tab{position:fixed;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.masterstudy-online-testing-quiz__navigation-tab ul li{margin-right:0}.masterstudy-online-testing .masterstudy-pagination__item{margin-bottom:0;padding:0 5px;margin-right:0}.masterstudy-online-testing .masterstudy-tabs-pagination_vertical .masterstudy-tabs-pagination__list{margin-top:0;margin-bottom:0}.masterstudy-online-testing .masterstudy-course-player-quiz__emoji{margin:0 10px 0 0}.masterstudy-online-testing .masterstudy-course-player-navigation__submit-quiz{max-width:120px;margin-bottom:40px;text-align:center}.masterstudy-online-testing .masterstudy-course-player-quiz__content,.masterstudy-online-testing .masterstudy-course-player-quiz__result-container,.masterstudy-online-testing .masterstudy-course-player-quiz__start-quiz{padding:0}.masterstudy-online-testing .masterstudy-course-player-quiz-timer{display:none;min-width:75px;flex-direction:column;align-items:center;justify-content:center;padding:6px 10px;height:50px;background:#eef1f7;position:sticky;border-radius:4px;top:0;z-index:10;margin-bottom:calc(50px - .3em)}.masterstudy-online-testing .masterstudy-course-player-quiz-timer.masterstudy-course-player-quiz-timer_started{display:flex}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__title{display:flex;width:100%;font-size:12px;font-style:normal;font-weight:500;line-height:normal;margin-bottom:2px;color:#001931;justify-content:center}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__content{display:flex;width:100%;flex-wrap:nowrap;justify-content:center}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__days{display:flex;justify-content:center;font-size:16px;font-style:normal;font-weight:700;line-height:normal;color:#001931}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__hours,.masterstudy-online-testing .masterstudy-course-player-quiz-timer__minutes,.masterstudy-online-testing .masterstudy-course-player-quiz-timer__seconds{display:flex;justify-content:center;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__separator{display:none;width:9px;flex-shrink:0;justify-content:center;padding:0 2px;margin:0;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931}.masterstudy-online-testing .masterstudy-course-player-quiz-timer__separator.masterstudy-course-player-quiz-timer__separator_show{display:flex}.masterstudy-online-testing .masterstudy-course-player-navigation__submit-quiz_hide{display:none}@media (max-width:1366px){.masterstudy-online-testing .masterstudy-course-player-quiz,.masterstudy-online-testing h1{padding:0 60px}.masterstudy-online-testing .masterstudy-course-player-navigation__submit-quiz{margin-left:60px}}@media (max-width:992px){.masterstudy-online-testing .masterstudy-course-player-quiz-timer{margin-left:-35px;margin-right:-35px}}@media (min-width:845px) and (max-width:992px){.masterstudy-online-testing{padding:0 40px}.masterstudy-online-testing .masterstudy-course-player-quiz-timer{margin-left:60px;margin-right:60px}}@media (min-width:768px){.masterstudy-online-testing__wrapper{min-width:740px}}@media (max-width:576px){.masterstudy-online-testing,.masterstudy-online-testing .col-md-8,.masterstudy-online-testing .masterstudy-course-player-quiz,.masterstudy-online-testing .masterstudy-course-player-quiz__content-meta,.masterstudy-online-testing .masterstudy-course-player-quiz__start-quiz{padding:0}.masterstudy-online-testing h1{padding:0;font-size:36px}.masterstudy-online-testing .masterstudy-course-player-navigation__submit-quiz{margin:40px auto}}.logged-in .masterstudy-online-testing .masterstudy-course-player-quiz-timer{top:40px}.text_block .masterstudy-online-testing .masterstudy-course-player-quiz__content-meta-item:before{top:0;width:0;background:0 0}.text_block .masterstudy-online-testing .masterstudy-tabs-pagination__item:before{background-color:transparent}.masterstudy-theme,.masterstudy-theme #wrapper #main{overflow:unset} -
masterstudy-lms-learning-management-system/trunk/_core/assets/js/components/authorization/main.js
r3043137 r3055398 9 9 e.preventDefault(); 10 10 var modalContainer = $('.masterstudy-authorization-modal'); 11 $(this).attr('data-authorization-modal') === 'register' ? open_register_form(modalContainer) : open_login_form(modalContainer); 11 var formContainer = modalContainer.find('.masterstudy-authorization'); 12 $(this).attr('data-authorization-modal') === 'register' ? open_register_form(formContainer) : open_login_form(formContainer); 12 13 modalContainer.addClass('masterstudy-authorization-modal_open'); 13 14 $('body').addClass('masterstudy-authorization-body-hidden'); … … 31 32 authorization_settings.register_mode ? open_register_form(modalContainer) : open_login_form(modalContainer); 32 33 } 33 }, 100 0);34 }, 100); 34 35 }); 35 36 $('.masterstudy-authorization').each(function () { -
masterstudy-lms-learning-management-system/trunk/_core/assets/js/course-player/content/quiz.js
r3021970 r3055398 116 116 }, 117 117 success: function success(data) { 118 location.reload(); 118 if (quiz_data.is_single_quiz) { 119 var date = new Date(); 120 date.setTime(date.getTime() + 60 * 60 * 1000); 121 document.cookie = "quiz_user_answer_id=".concat(data.user_answer_id, ";expires=").concat(date.toUTCString(), ";path=/"); 122 var currentUrl = currentUrl = new URL(window.location.href); 123 currentUrl.searchParams.set('show_answers', data.user_answer_id); 124 currentUrl.searchParams.set('progress', data.progress); 125 window.location.href = currentUrl; 126 } else { 127 location.reload(); 128 } 119 129 } 120 130 }); -
masterstudy-lms-learning-management-system/trunk/_core/assets/js/courses.js
r3000655 r3055398 154 154 } 155 155 } 156 if ($('#ms-lms-multi-instructors-zero-co-courses-found').length) { 157 $('.masterstudy-lms-public-account-courses-tabs .tabs').css('display', 'none'); 158 } 156 159 /** search part | End **/ 160 $('.masterstudy-lms-public-account-courses-tabs li').click(function () { 161 $('.masterstudy-lms-public-account-courses-tabs li').removeClass('active'); 162 $(this).addClass('active'); 163 var tabId = $(this).attr('id'); 164 if (tabId === 'tab_co_courses') { 165 $('#stm_lms_instructor_co_courses').removeClass('inactive'); 166 $('#stm_lms_instructor_courses').addClass('inactive'); 167 } else if (tabId === 'tab_courses') { 168 $('#stm_lms_instructor_co_courses').addClass('inactive'); 169 $('#stm_lms_instructor_courses').removeClass('inactive'); 170 } 171 }); 172 if ($('.stm-lms-public-instructor').length > 0) { 173 $('.stm_lms_instructor_co_courses .stm_lms_instructor_courses__top').css('display', 'none'); 174 } 157 175 }); 158 176 })(jQuery); -
masterstudy-lms-learning-management-system/trunk/_core/includes/elementor/helpers/ajax_actions.php
r2991510 r3055398 8 8 $current_page = ( isset( $_POST['current_page'] ) ) ? intval( $_POST['current_page'] ) : false; 9 9 $offset = ( isset( $_POST['offset'] ) ) ? intval( $_POST['offset'] ) : false; 10 $card_style = ( isset( $_POST['card_template'] ) ) ? sanitize_ text_field( wp_unslash( $_POST['card_template'] ) ) : 'card_style_1';11 $pagination_style = ( isset( $_POST['pagination_template'] ) ) ? sanitize_ text_field( wp_unslash( $_POST['pagination_template'] ) ) : '';10 $card_style = ( isset( $_POST['card_template'] ) ) ? sanitize_file_name( wp_unslash( $_POST['card_template'] ) ) : 'card_style_1'; 11 $pagination_style = ( isset( $_POST['pagination_template'] ) ) ? sanitize_file_name( wp_unslash( $_POST['pagination_template'] ) ) : ''; 12 12 $course_image_size = ( isset( $_POST['course_image_size'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['course_image_size'] ) ) : ''; 13 13 $meta_slots = ( isset( $_POST['meta_slots'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['meta_slots'] ) ) : array(); … … 97 97 $current_page = ( isset( $_POST['current_page'] ) ) ? intval( $_POST['current_page'] ) : false; 98 98 $offset = ( isset( $_POST['offset'] ) ) ? intval( $_POST['offset'] ) : false; 99 $card_style = ( isset( $_POST['card_template'] ) ) ? sanitize_ text_field( wp_unslash( $_POST['card_template'] ) ) : 'card_style_1';100 $pagination_style = ( isset( $_POST['pagination_template'] ) ) ? sanitize_ text_field( wp_unslash( $_POST['pagination_template'] ) ) : '';99 $card_style = ( isset( $_POST['card_template'] ) ) ? sanitize_file_name( wp_unslash( $_POST['card_template'] ) ) : 'card_style_1'; 100 $pagination_style = ( isset( $_POST['pagination_template'] ) ) ? sanitize_file_name( wp_unslash( $_POST['pagination_template'] ) ) : ''; 101 101 $course_image_size = ( isset( $_POST['course_image_size'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['course_image_size'] ) ) : ''; 102 102 $meta_slots = ( isset( $_POST['meta_slots'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['meta_slots'] ) ) : array(); -
masterstudy-lms-learning-management-system/trunk/_core/init.php
r3050967 r3055398 4 4 define( 'STM_LMS_PATH', dirname( STM_LMS_FILE ) ); 5 5 define( 'STM_LMS_URL', plugin_dir_url( STM_LMS_FILE ) ); 6 define( 'STM_LMS_VERSION', '3.3. 0' );7 define( 'STM_LMS_DB_VERSION', '3.3. 0' );6 define( 'STM_LMS_VERSION', '3.3.1' ); 7 define( 'STM_LMS_DB_VERSION', '3.3.1' ); 8 8 define( 'STM_LMS_BASE_API_URL', '/wp-json/lms' ); 9 9 define( 'STM_LMS_LIBRARY', STM_LMS_PATH . '/libraries' ); -
masterstudy-lms-learning-management-system/trunk/_core/libraries/db/helpers/user_answers.php
r2936574 r3055398 9 9 $table_name = stm_lms_user_answers_name( $wpdb ); 10 10 11 $ wpdb->insert(11 $result = $wpdb->insert( 12 12 $table_name, 13 13 $user_answer 14 14 ); 15 return ! is_wp_error( $result ) ? $wpdb->insert_id : 0; 15 16 } 16 17 -
masterstudy-lms-learning-management-system/trunk/_core/libraries/db/tables/user_courses.table.php
r2795646 r3055398 30 30 start_time INT NOT NULL, 31 31 end_time INT DEFAULT 0, 32 PRIMARY KEY (user_course_id) 32 PRIMARY KEY (user_course_id), 33 INDEX ix_user_course_current (user_id, course_id, current_lesson_id), 34 INDEX ix_user_course_enterprice (user_id, course_id, enterprise_id), 35 INDEX ix_user_course_bundle (user_id, course_id, bundle_id), 36 INDEX ix_user_course_start_time (user_id, course_id, start_time) 33 37 ) $charset_collate;"; 34 38 -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/helpers.php
r3026171 r3055398 37 37 $r = array(); 38 38 39 $modal = 'modals/' . sanitize_ text_field( $_GET['modal'] );40 $params = ( ! empty( $_GET['params'] )) ? json_decode( stripslashes_deep( $_GET['params'] ), true ) : array();39 $modal = 'modals/' . sanitize_file_name( $_GET['modal'] ); 40 $params = ! empty( $_GET['params'] ) ? json_decode( stripslashes_deep( $_GET['params'] ), true ) : array(); 41 41 $r['params'] = $params; 42 42 $r['modal'] = STM_LMS_Templates::load_lms_template( $modal, $params ); … … 275 275 } 276 276 277 $tpl = sanitize_text_field( $_GET['template'] ); 277 $tpl = stripslashes( $_GET['template'] ); 278 $tpl = sanitize_text_field( $tpl ); 279 $tpl = addslashes( $tpl ); 278 280 279 281 $args = ( ! empty( $_GET['args'] ) ) ? json_decode( stripslashes( sanitize_text_field( $_GET['args'] ) ), true ) : array(); -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/quiz.php
r3040106 r3055398 163 163 $cutting_rate = ( ! empty( $quiz_info['re_take_cut'] ) ) ? ( 100 - $quiz_info['re_take_cut'] ) / 100 : 1; 164 164 $passing_grade = ( ! empty( $quiz_info['passing_grade'] ) ) ? intval( $quiz_info['passing_grade'] ) : 0; 165 166 $user_quizzes = stm_lms_get_user_quizzes( $user_id, $quiz_id, array( 'user_quiz_id', 'progress' ) );167 $attempt_number = count( $user_quizzes ) + 1;168 $prev_answers = ( 1 !== $attempt_number ) ? stm_lms_get_user_answers( $user_id, $quiz_id, $attempt_number - 1, true, array( 'question_id' ) ) : array();165 $user_answer_id = 0; 166 $user_quizzes = stm_lms_get_user_quizzes( $user_id, $quiz_id, array( 'user_quiz_id', 'progress' ) ); 167 $attempt_number = count( $user_quizzes ) + 1; 168 $prev_answers = ( 1 !== $attempt_number ) ? stm_lms_get_user_answers( $user_id, $quiz_id, $attempt_number - 1, true, array( 'question_id' ) ) : array(); 169 169 170 170 foreach ( $_POST as $question_id => $value ) { … … 175 175 if ( 'fill_the_gap' === $type || 'item_match' === $type || 'single_choice' === $type || 'multi_choice' === $type || 'keywords' === $type ) { 176 176 $answer = self::deslash( $value ); 177 } elseif ( is_array( $value ) ) { 178 $answer = self::sanitize_answers( $value ); 177 179 } else { 178 if ( is_array( $value ) ) { 179 $answer = self::sanitize_answers( $value ); 180 } else { 181 $answer = sanitize_text_field( self::deslash( $value ) ); 182 } 180 $answer = sanitize_text_field( self::deslash( $value ) ); 183 181 } 184 182 … … 192 190 } 193 191 194 $add_answer = compact( 'user_id', 'course_id', 'quiz_id', 'question_id', 'attempt_number', 'user_answer', 'correct_answer' );195 stm_lms_add_user_answer( $add_answer );192 $add_answer = compact( 'user_id', 'course_id', 'quiz_id', 'question_id', 'attempt_number', 'user_answer', 'correct_answer' ); 193 $user_answer_id = stm_lms_add_user_answer( $add_answer ); 196 194 } 197 195 } … … 225 223 } 226 224 227 $user_quiz['passed'] = $progress >= $passing_grade; 228 $user_quiz['progress'] = round( $user_quiz['progress'] ); 229 $user_quiz['url'] = '<a class="btn btn-default btn-close-quiz-modal-results" href="' . apply_filters( 'stm_lms_item_url_quiz_ended', STM_LMS_Course::item_url( $course_id, $quiz_id ) ) . '">' . esc_html__( 'Close', 'masterstudy-lms-learning-management-system' ) . '</a>'; 230 $user_quiz['url'] = apply_filters( 'user_answers__course_url', $user_quiz['url'], $source ); 225 $user_quiz['user_answer_id'] = $user_answer_id; 226 $user_quiz['passed'] = $progress >= $passing_grade; 227 $user_quiz['progress'] = round( $user_quiz['progress'] ); 228 $user_quiz['url'] = '<a class="btn btn-default btn-close-quiz-modal-results" href="' . apply_filters( 'stm_lms_item_url_quiz_ended', STM_LMS_Course::item_url( $course_id, $quiz_id ) ) . '">' . esc_html__( 'Close', 'masterstudy-lms-learning-management-system' ) . '</a>'; 229 $user_quiz['url'] = apply_filters( 'user_answers__course_url', $user_quiz['url'], $source ); 231 230 232 231 do_action( 'stm_lms_quiz_' . $status, $user_id, $quiz_id, $user_quiz['progress'], $course_id ); … … 534 533 return STM_LMS_Options::get_option( 'quiz_style', 'default' ); 535 534 } 536 537 535 } -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/subscriptions.php
r3026171 r3055398 7 7 add_action( 'pmpro_membership_level_after_other_settings', 'STM_LMS_Subscriptions::stm_lms_pmpro_settings' ); 8 8 add_action( 'pmpro_save_membership_level', 'STM_LMS_Subscriptions::stm_lms_pmpro_save_settings' ); 9 10 add_action( 'wp_ajax_stm_lms_load_modal', 'STM_LMS_Helpers::load_modal' );11 add_action( 'wp_ajax_nopriv_stm_lms_load_modal', 'STM_LMS_Helpers::load_modal' );12 9 13 10 add_action( 'wp_ajax_stm_lms_use_membership', 'STM_LMS_Subscriptions::use_membership' ); -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/templates.php
r3028708 r3055398 120 120 $lms_template = apply_filters( 'stm_lms_template_file', STM_LMS_PATH, $template_name ) . $template_name; 121 121 122 if ( ! empty( $_GET['dev_lms_template'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended123 $tpl = ( locate_template( $template_name ) ) ? locate_template( $template_name ) : $lms_template;124 stm_pa( $tpl );125 }126 122 return ( locate_template( $template_name ) ) ? locate_template( $template_name ) : $lms_template; 127 128 123 } 129 124 … … 139 134 ob_start(); 140 135 extract( $stm_lms_vars ); // phpcs:ignore WordPress.PHP.DontExtract 141 $tpl = self::locate_template( $template_name, $stm_lms_vars ); 142 136 137 $tpl = self::locate_template( $template_name, $stm_lms_vars ); 143 138 if ( file_exists( $tpl ) ) { 144 145 139 include $tpl; 146 147 } 148 return apply_filters( "stm_lms_{$template_name}", ob_get_clean(), $stm_lms_vars );140 } 141 142 return apply_filters( "stm_lms_{$template_name}", ob_get_clean(), $stm_lms_vars ); 149 143 } 150 144 -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/user.php
r3040106 r3055398 476 476 $result = array(); 477 477 478 if ( $get_forms && $get_forms['forms'] &&! empty( $get_forms['forms'] ) ) {478 if ( ! empty( $get_forms['forms'] ) ) { 479 479 foreach ( $get_forms['forms'] as $form ) { 480 480 if ( $form && ! empty( $form['fields'] ) ) { 481 481 foreach ( $form['fields'] as $field ) { 482 array_push( $result, $field );482 $result[] = $field; 483 483 } 484 484 } 485 485 } 486 486 } 487 if ( $get_forms && $get_forms['required_fields'] && $get_forms['required_fields']['profile_form'] &&! empty( $get_forms['required_fields']['profile_form'] ) ) {487 if ( ! empty( $get_forms['required_fields']['profile_form'] ) ) { 488 488 foreach ( $get_forms['required_fields']['profile_form'] as $item ) { 489 array_push( $result, $item );489 $result[] = $item; 490 490 } 491 491 } … … 509 509 STM_LMS_Instructor::become_instructor( $data, $user ); 510 510 511 if ( ! empty( $d ata['profile_default_fields_for_register'] ) ) {511 if ( ! empty( $default_fields ) && ! empty( $data['profile_default_fields_for_register'] ) ) { 512 512 foreach ( $data['profile_default_fields_for_register'] as $index => $field ) { 513 if ( isset( $field['value'] ) && in_array( $field['label'], array_column( $default_fields, 'label' ) ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict513 if ( isset( $field['value'] ) && in_array( $field['label'], array_column( $default_fields, 'label' ), true ) ) { 514 514 update_user_meta( $user, $index, $field['value'] ); 515 515 } … … 1444 1444 } 1445 1445 } else { 1446 $data['degree'] = ( ! empty( $get['degree'] ) ) ? sanitize_text_field( $get['degree'] ) : '';1447 $data['expertize'] = ( ! empty( $get['expertize'] ) ) ? sanitize_text_field( $get['expertize'] ) : '';1446 $data['degree'] = sanitize_text_field( $_POST['fields']['degree'] ?? '' ); 1447 $data['expertize'] = sanitize_text_field( $_POST['fields']['expertize'] ?? '' ); 1448 1448 } 1449 1449 … … 1549 1549 } 1550 1550 1551 $name = $data[' enterprise_name'];1552 $email = $data[' enterprise_email'];1553 $text = $data[' enterprise_text'];1551 $name = $data['fields']['enterprise_name']; 1552 $email = $data['fields']['enterprise_email']; 1553 $text = $data['fields']['enterprise_text']; 1554 1554 $subject = esc_html__( 'Enterprise Request', 'masterstudy-lms-learning-management-system' ); 1555 1555 $message = sprintf( -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdateCallbacks.php
r3050967 r3055398 350 350 } 351 351 352 public static function lms_composite_index_to_user_courses_table() { 353 global $wpdb; 354 // Create the composite indexes ( ix_user_course_current, ix_user_course_enterprice, ix_user_course_bundle, ix_user_course_start_time ) 355 $wpdb->query( 'CREATE INDEX ix_user_course_current ON ' . stm_lms_user_courses_name( $wpdb ) . ' (user_id, course_id, current_lesson_id)' ); // phpcs:ignore 356 $wpdb->query( 'CREATE INDEX ix_user_course_enterprice ON ' . stm_lms_user_courses_name( $wpdb ) . ' (user_id, course_id, enterprise_id)' ); // phpcs:ignore 357 $wpdb->query( 'CREATE INDEX ix_user_course_bundle ON ' . stm_lms_user_courses_name( $wpdb ) . ' (user_id, course_id, bundle_id)' ); // phpcs:ignore 358 $wpdb->query( 'CREATE INDEX ix_user_course_start_time ON ' . stm_lms_user_courses_name( $wpdb ) . ' (user_id, course_id, start_time)' ); // phpcs:ignore 359 } 360 352 361 public static function lms_move_student_assignment_attachments() { 353 362 $assignments = get_posts( -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdates.php
r3050967 r3055398 32 32 '3.2.2' => array( 'lms_replaced_auth_settings_values' ), // Profile Authorization settings changed 33 33 '3.3.0' => array( 'lms_set_default_certificate' ), // Find default certificate and set its ID to wp_option 34 '3.3.1' => array( 'lms_composite_index_to_user_courses_table' ), // Added indexing to user courses table 34 35 ); 35 36 -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/account/public/instructor.php
r2799747 r3055398 30 30 <?php STM_LMS_Templates::show_lms_template( 'account/public/instructor_parts/info', array( 'current_user' => $current_user ) ); ?> 31 31 32 <div class="multiseparator"></div>33 34 32 <?php STM_LMS_Templates::show_lms_template( 'account/public/instructor_parts/courses', array( 'current_user' => $current_user ) ); ?> 35 33 -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/account/public/instructor_parts/courses.php
r3038486 r3055398 5 5 stm_lms_register_style( 'courses' ); 6 6 stm_lms_register_script( 'courses' ); 7 stm_lms_register_style( 'instructor_courses' ); 7 8 8 9 $args = array( … … 10 11 'class' => 'vue_is_disabled', 11 12 ); 12 13 13 ?> 14 14 15 <div class="stm_lms_courses"> 15 <ul class="masterstudy-lms-public-account-courses-tabs"> 16 <?php 17 if ( is_ms_lms_addon_enabled( 'multi_instructors' ) ) { 18 ?> 19 <h3><?php esc_html_e( 'Teacher Courses', 'masterstudy-lms-learning-management-system' ); ?></h3> 20 <div class="tabs"> 21 <li class="active" id="tab_courses"><?php esc_html_e( 'Courses', 'masterstudy-lms-learning-management-system' ); ?></li> 22 <li class="" id="tab_co_courses"><?php esc_html_e( 'Co-Owned Courses', 'masterstudy-lms-learning-management-system' ); ?></li> 23 </div> 24 <?php 25 } else { 26 ?> 27 <h3><?php esc_html_e( 'Courses', 'masterstudy-lms-learning-management-system' ); ?></h3> 28 <?php 29 } 30 ?> 31 </ul> 16 32 17 <div class="stm_lms_courses__top"> 18 <h3><?php esc_html_e( 'Teacher Courses', 'masterstudy-lms-learning-management-system' ); ?></h3> 19 </div> 33 <div class="stm_lms_courses" id="stm_lms_instructor_courses"> 20 34 21 35 <?php STM_LMS_Templates::show_lms_template( 'courses/grid', array( 'args' => $args ) ); ?> … … 36 50 ?> 37 51 </div> 52 <?php do_action( 'stm_lms_instructor_courses_end' ); ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/account/public/main.php
r2795646 r3055398 1 <?php if ( ! defined( 'ABSPATH' ) ) exit; //Exit if accessed directly ?> 1 <?php 2 if ( ! defined( 'ABSPATH' ) ) { 3 exit; 4 } // Exit if accessed directly 5 ?> 2 6 3 7 <?php … … 7 11 */ 8 12 9 stm_lms_register_style('user'); 13 stm_lms_register_style( 'user' ); 14 stm_lms_register_style( 'account/v1/user' ); 15 stm_lms_register_script( 'account/v1/user' ); 10 16 11 stm_lms_register_style('account/v1/user'); 12 stm_lms_register_script('account/v1/user'); 17 if ( empty( $current_user ) ) { 18 $current_user = STM_LMS_User::get_current_user(); 19 } 13 20 14 if(empty($current_user)) $current_user = STM_LMS_User::get_current_user(); 21 $is_instructor = STM_LMS_Instructor::is_instructor( $current_user['id'] ); 22 $tpl = ( $is_instructor ) ? 'instructor' : 'student'; 15 23 16 $is_instructor = STM_LMS_Instructor::is_instructor($current_user['id']); 17 $tpl = ($is_instructor) ? 'instructor' : 'student'; 18 19 STM_LMS_Templates::show_lms_template("account/public/{$tpl}", array('current_user' => $current_user)); 24 STM_LMS_Templates::show_lms_template( "account/public/{$tpl}", array( 'current_user' => $current_user ) ); -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/course-player/content/quiz/main.php
r3040106 r3055398 3 3 * @var int $post_id 4 4 * @var int $item_id 5 * @var string @lesson_type 5 * @var bool $is_single_quiz 6 * @var string $lesson_type 6 7 * @var array $data 7 8 * @var boolean $dark_mode 8 9 */ 10 11 $is_single_quiz = $is_single_quiz ?? false; 9 12 10 13 wp_enqueue_style( 'masterstudy-course-player-quiz' ); … … 15 18 'quiz_data', 16 19 array( 17 'start_nonce' => wp_create_nonce( 'start_quiz' ), 18 'submit_nonce' => wp_create_nonce( 'user_answers' ), 19 'h5p_nonce' => wp_create_nonce( 'stm_lms_add_h5p_result' ), 20 'ajax_url' => admin_url( 'admin-ajax.php' ), 21 'duration' => intval( $data['duration'] ), 22 'quiz_id' => intval( $item_id ), 23 'course_id' => intval( $post_id ), 24 'confirmation' => esc_html__( 'Once you submit, you will no longer be able to change your answers. Are you sure you want to submit the quiz?', 'masterstudy-lms-learning-management-system' ), 20 'start_nonce' => wp_create_nonce( 'start_quiz' ), 21 'submit_nonce' => wp_create_nonce( 'user_answers' ), 22 'h5p_nonce' => wp_create_nonce( 'stm_lms_add_h5p_result' ), 23 'ajax_url' => admin_url( 'admin-ajax.php' ), 24 'duration' => intval( $data['duration'] ), 25 'is_single_quiz' => $is_single_quiz, 26 'quiz_id' => intval( $item_id ), 27 'course_id' => intval( $post_id ), 28 'confirmation' => esc_html__( 'Once you submit, you will no longer be able to change your answers. Are you sure you want to submit the quiz?', 'masterstudy-lms-learning-management-system' ), 25 29 ) 26 30 ); … … 147 151 <?php 148 152 } 149 if ( ! $data['passed'] ) {153 if ( ! $data['passed'] || $is_single_quiz ) { 150 154 ?> 151 155 <input type="hidden" name="question_ids" value="<?php echo esc_attr( implode( ',', array_column( $data['questions'], 'id' ) ) ); ?>"/> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/masterstudy-lms-learning-management-system.php
r2799747 r3055398 1 1 <?php if ( ! defined( 'ABSPATH' ) ) { 2 exit; 3 } //Exit if accessed directly 2 exit; // Exit if accessed directly 3 } 4 5 STM_LMS_Course::course_views( get_the_ID() ); 6 7 get_header(); 8 9 STM_LMS_Templates::show_lms_template( 'modals/preloader' ); 4 10 // phpcs:ignoreFile 5 STM_LMS_Course::course_views( get_the_ID() );?>6 < ?php get_header(); ?>7 <?php STM_LMS_Templates::show_lms_template( 'modals/preloader' ); ?>8 <div class="<?php echo apply_filters( 'stm_lms_wrapper_classes', 'stm-lms-wrapper' ); ?>">9 <div class="container">10 <?php if ( have_posts() ) : ?>11 <?php while ( have_posts() ) : the_post(); ?>12 <?php do_action( 'stm-lms-content-' . get_post_type() ); ?>13 <?php endwhile; ?>14 <?php endif; ?>15 </div>11 ?> 12 <div class="<?php echo apply_filters( 'stm_lms_wrapper_classes', 'stm-lms-wrapper' ); ?>"> 13 <div class="container"> 14 <?php 15 if ( have_posts() ) : 16 while ( have_posts() ) : 17 the_post(); 18 do_action( 'stm-lms-content-' . get_post_type() ); 19 endwhile; 20 endif; 21 ?> 16 22 </div> 17 18 <?php get_footer(); ?>19 23 </div> 24 <?php 25 get_footer(); -
masterstudy-lms-learning-management-system/trunk/masterstudy-lms-learning-management-system.php
r3050967 r3055398 8 8 Author URI: https://stylemixthemes.com/ 9 9 Text Domain: masterstudy-lms-learning-management-system 10 Version: 3.3. 010 Version: 3.3.1 11 11 Masterstudy LMS Pro tested up to: 4.4 12 12 */ … … 16 16 } 17 17 18 define( 'MS_LMS_VERSION', '3.3. 0' );18 define( 'MS_LMS_VERSION', '3.3.1' ); 19 19 define( 'MS_LMS_FILE', __FILE__ ); 20 20 define( 'MS_LMS_PATH', dirname( MS_LMS_FILE ) ); -
masterstudy-lms-learning-management-system/trunk/readme.txt
r3050967 r3055398 4 4 Tags: lms, course, elearning, education, learning management system 5 5 Requires at least: 4.6 6 Tested up to: 6. 46 Tested up to: 6.5 7 7 Requires PHP: 7.4 8 Stable tag: 3.3. 08 Stable tag: 3.3.1 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 303 303 == Changelog == 304 304 305 = 3.3.1 - 2024-03-20 = 306 - **Enhancements:** Added an option to display coowned courses in the instructor's public profile. 307 - **Enhancements:** Updated the view on the page of quizzes created with the Online Testing addon (Pro). 308 - **Enhancements:** Database tables are now indexed to increase speed during query processing. 309 - **Fix:** The new page where the shortcode from the Online Testing addon is added is not published. 310 - **Fix:** Registration form is incorrectly displayed when a guest tries to enroll in a course twice. 311 - **Fix:** The login form opens when clicking on Registration via the side profile menu. 312 - **Fix:** Email shortcodes sent from "Become instructor" and "Have a question" forms are not working. 313 - **Fix:** Student progress is not displayed for the group creator (Pro). 314 - **Fix:** Student files from Assignments are displayed in the admin's media library (Pro). 315 - **Dev:** File path checks have been added to the Modal Loader for better protection. 316 - **Dev:** Form Fields additional checks have been added to Authorization Forms for better protection. 317 305 318 = 3.3.0 - 2024-03-14 = 306 319 - **Enhancements:** Added a new Certificate builder (Pro). -
masterstudy-lms-learning-management-system/trunk/vendor/autoload.php
r3050967 r3055398 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit cc65098f623362089d290a574b55910e::getLoader();25 return ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0::getLoader(); -
masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_real.php
r3050967 r3055398 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit cc65098f623362089d290a574b55910e5 class ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit cc65098f623362089d290a574b55910e', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit cc65098f623362089d290a574b55910e', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit cc65098f623362089d290a574b55910e::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::getInitializer($loader)); 31 31 32 32 $loader->register(true); -
masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_static.php
r3050967 r3055398 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit cc65098f623362089d290a574b55910e7 class ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 230 230 { 231 231 return \Closure::bind(function () use ($loader) { 232 $loader->prefixLengthsPsr4 = ComposerStaticInit cc65098f623362089d290a574b55910e::$prefixLengthsPsr4;233 $loader->prefixDirsPsr4 = ComposerStaticInit cc65098f623362089d290a574b55910e::$prefixDirsPsr4;234 $loader->classMap = ComposerStaticInit cc65098f623362089d290a574b55910e::$classMap;232 $loader->prefixLengthsPsr4 = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$prefixLengthsPsr4; 233 $loader->prefixDirsPsr4 = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$prefixDirsPsr4; 234 $loader->classMap = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$classMap; 235 235 236 236 }, null, ClassLoader::class);
Note: See TracChangeset
for help on using the changeset viewer.