Plugin Directory


Ignore:
Timestamp:
03/20/2024 02:22:12 PM (13 months ago)
Author:
stylemix
Message:

prepare release 3.3.1

Location:
masterstudy-lms-learning-management-system/trunk
Files:
1 added
27 edited

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  
    99      e.preventDefault();
    1010      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);
    1213      modalContainer.addClass('masterstudy-authorization-modal_open');
    1314      $('body').addClass('masterstudy-authorization-body-hidden');
     
    3132          authorization_settings.register_mode ? open_register_form(modalContainer) : open_login_form(modalContainer);
    3233        }
    33       }, 1000);
     34      }, 100);
    3435    });
    3536    $('.masterstudy-authorization').each(function () {
  • masterstudy-lms-learning-management-system/trunk/_core/assets/js/course-player/content/quiz.js

    r3021970 r3055398  
    116116        },
    117117        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          }
    119129        }
    120130      });
  • masterstudy-lms-learning-management-system/trunk/_core/assets/js/courses.js

    r3000655 r3055398  
    154154      }
    155155    }
     156    if ($('#ms-lms-multi-instructors-zero-co-courses-found').length) {
     157      $('.masterstudy-lms-public-account-courses-tabs .tabs').css('display', 'none');
     158    }
    156159    /** 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    }
    157175  });
    158176})(jQuery);
  • masterstudy-lms-learning-management-system/trunk/_core/includes/elementor/helpers/ajax_actions.php

    r2991510 r3055398  
    88    $current_page      = ( isset( $_POST['current_page'] ) ) ? intval( $_POST['current_page'] ) : false;
    99    $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'] ) ) : '';
    1212    $course_image_size = ( isset( $_POST['course_image_size'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['course_image_size'] ) ) : '';
    1313    $meta_slots        = ( isset( $_POST['meta_slots'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['meta_slots'] ) ) : array();
     
    9797    $current_page      = ( isset( $_POST['current_page'] ) ) ? intval( $_POST['current_page'] ) : false;
    9898    $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'] ) ) : '';
    101101    $course_image_size = ( isset( $_POST['course_image_size'] ) ) ? STM_LMS_Helpers::array_sanitize( wp_unslash( $_POST['course_image_size'] ) ) : '';
    102102    $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  
    44define( 'STM_LMS_PATH', dirname( STM_LMS_FILE ) );
    55define( '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' );
     6define( 'STM_LMS_VERSION', '3.3.1' );
     7define( 'STM_LMS_DB_VERSION', '3.3.1' );
    88define( 'STM_LMS_BASE_API_URL', '/wp-json/lms' );
    99define( 'STM_LMS_LIBRARY', STM_LMS_PATH . '/libraries' );
  • masterstudy-lms-learning-management-system/trunk/_core/libraries/db/helpers/user_answers.php

    r2936574 r3055398  
    99    $table_name = stm_lms_user_answers_name( $wpdb );
    1010
    11     $wpdb->insert(
     11    $result = $wpdb->insert(
    1212        $table_name,
    1313        $user_answer
    1414    );
     15    return ! is_wp_error( $result ) ? $wpdb->insert_id : 0;
    1516}
    1617
  • masterstudy-lms-learning-management-system/trunk/_core/libraries/db/tables/user_courses.table.php

    r2795646 r3055398  
    3030        start_time INT NOT NULL,
    3131        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)
    3337    ) $charset_collate;";
    3438
  • masterstudy-lms-learning-management-system/trunk/_core/lms/classes/helpers.php

    r3026171 r3055398  
    3737        $r = array();
    3838
    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();
    4141        $r['params'] = $params;
    4242        $r['modal']  = STM_LMS_Templates::load_lms_template( $modal, $params );
     
    275275        }
    276276
    277         $tpl = sanitize_text_field( $_GET['template'] );
     277        $tpl = stripslashes( $_GET['template'] );
     278        $tpl = sanitize_text_field( $tpl );
     279        $tpl = addslashes( $tpl );
    278280
    279281        $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  
    163163        $cutting_rate                  = ( ! empty( $quiz_info['re_take_cut'] ) ) ? ( 100 - $quiz_info['re_take_cut'] ) / 100 : 1;
    164164        $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();
    169169
    170170        foreach ( $_POST as $question_id => $value ) {
     
    175175                if ( 'fill_the_gap' === $type || 'item_match' === $type || 'single_choice' === $type || 'multi_choice' === $type || 'keywords' === $type ) {
    176176                    $answer = self::deslash( $value );
     177                } elseif ( is_array( $value ) ) {
     178                        $answer = self::sanitize_answers( $value );
    177179                } 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 ) );
    183181                }
    184182
     
    192190                }
    193191
    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 );
    196194            }
    197195        }
     
    225223        }
    226224
    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 );
    231230
    232231        do_action( 'stm_lms_quiz_' . $status, $user_id, $quiz_id, $user_quiz['progress'], $course_id );
     
    534533        return STM_LMS_Options::get_option( 'quiz_style', 'default' );
    535534    }
    536 
    537535}
  • masterstudy-lms-learning-management-system/trunk/_core/lms/classes/subscriptions.php

    r3026171 r3055398  
    77        add_action( 'pmpro_membership_level_after_other_settings', 'STM_LMS_Subscriptions::stm_lms_pmpro_settings' );
    88        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' );
    129
    1310        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  
    120120        $lms_template  = apply_filters( 'stm_lms_template_file', STM_LMS_PATH, $template_name ) . $template_name;
    121121
    122         if ( ! empty( $_GET['dev_lms_template'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
    123             $tpl = ( locate_template( $template_name ) ) ? locate_template( $template_name ) : $lms_template;
    124             stm_pa( $tpl );
    125         }
    126122        return ( locate_template( $template_name ) ) ? locate_template( $template_name ) : $lms_template;
    127 
    128123    }
    129124
     
    139134        ob_start();
    140135        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 );
    143138        if ( file_exists( $tpl ) ) {
    144 
    145139            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 );
    149143    }
    150144
  • masterstudy-lms-learning-management-system/trunk/_core/lms/classes/user.php

    r3040106 r3055398  
    476476        $result    = array();
    477477
    478         if ( $get_forms && $get_forms['forms'] && ! empty( $get_forms['forms'] ) ) {
     478        if ( ! empty( $get_forms['forms'] ) ) {
    479479            foreach ( $get_forms['forms'] as $form ) {
    480480                if ( $form && ! empty( $form['fields'] ) ) {
    481481                    foreach ( $form['fields'] as $field ) {
    482                         array_push( $result, $field );
     482                        $result[] = $field;
    483483                    }
    484484                }
    485485            }
    486486        }
    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'] ) ) {
    488488            foreach ( $get_forms['required_fields']['profile_form'] as $item ) {
    489                 array_push( $result, $item );
     489                $result[] = $item;
    490490            }
    491491        }
     
    509509        STM_LMS_Instructor::become_instructor( $data, $user );
    510510
    511         if ( ! empty( $data['profile_default_fields_for_register'] ) ) {
     511        if ( ! empty( $default_fields ) && ! empty( $data['profile_default_fields_for_register'] ) ) {
    512512            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.MissingTrueStrict
     513                if ( isset( $field['value'] ) && in_array( $field['label'], array_column( $default_fields, 'label' ), true ) ) {
    514514                    update_user_meta( $user, $index, $field['value'] );
    515515                }
     
    14441444            }
    14451445        } 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'] ?? '' );
    14481448        }
    14491449
     
    15491549            }
    15501550
    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'];
    15541554            $subject = esc_html__( 'Enterprise Request', 'masterstudy-lms-learning-management-system' );
    15551555            $message = sprintf(
  • masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdateCallbacks.php

    r3050967 r3055398  
    350350    }
    351351
     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
    352361    public static function lms_move_student_assignment_attachments() {
    353362        $assignments = get_posts(
  • masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdates.php

    r3050967 r3055398  
    3232        '3.2.2'  => array( 'lms_replaced_auth_settings_values' ), // Profile Authorization settings changed
    3333        '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
    3435    );
    3536
  • masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/account/public/instructor.php

    r2799747 r3055398  
    3030    <?php STM_LMS_Templates::show_lms_template( 'account/public/instructor_parts/info', array( 'current_user' => $current_user ) ); ?>
    3131
    32     <div class="multiseparator"></div>
    33 
    3432    <?php STM_LMS_Templates::show_lms_template( 'account/public/instructor_parts/courses', array( 'current_user' => $current_user ) ); ?>
    3533
  • masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/account/public/instructor_parts/courses.php

    r3038486 r3055398  
    55stm_lms_register_style( 'courses' );
    66stm_lms_register_script( 'courses' );
     7stm_lms_register_style( 'instructor_courses' );
    78
    89$args = array(
     
    1011    'class'  => 'vue_is_disabled',
    1112);
    12 
    1313?>
    1414
    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>
    1632
    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">
    2034
    2135    <?php STM_LMS_Templates::show_lms_template( 'courses/grid', array( 'args' => $args ) ); ?>
     
    3650        ?>
    3751</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
     2if ( ! defined( 'ABSPATH' ) ) {
     3    exit;
     4} // Exit if accessed directly
     5?>
    26
    37<?php
     
    711 */
    812
    9 stm_lms_register_style('user');
     13stm_lms_register_style( 'user' );
     14stm_lms_register_style( 'account/v1/user' );
     15stm_lms_register_script( 'account/v1/user' );
    1016
    11 stm_lms_register_style('account/v1/user');
    12 stm_lms_register_script('account/v1/user');
     17if ( empty( $current_user ) ) {
     18    $current_user = STM_LMS_User::get_current_user();
     19}
    1320
    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';
    1523
    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));
     24STM_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  
    33 * @var int $post_id
    44 * @var int $item_id
    5  * @var string @lesson_type
     5 * @var bool $is_single_quiz
     6 * @var string $lesson_type
    67 * @var array $data
    78 * @var boolean $dark_mode
    89 */
     10
     11$is_single_quiz = $is_single_quiz ?? false;
    912
    1013wp_enqueue_style( 'masterstudy-course-player-quiz' );
     
    1518    'quiz_data',
    1619    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' ),
    2529    )
    2630);
     
    147151                <?php
    148152            }
    149             if ( ! $data['passed'] ) {
     153            if ( ! $data['passed'] || $is_single_quiz ) {
    150154                ?>
    151155                <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  
    11<?php if ( ! defined( 'ABSPATH' ) ) {
    2     exit;
    3 } //Exit if accessed directly
     2    exit; // Exit if accessed directly
     3}
     4
     5STM_LMS_Course::course_views( get_the_ID() );
     6
     7get_header();
     8
     9STM_LMS_Templates::show_lms_template( 'modals/preloader' );
    410// 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        ?>
    1622    </div>
    17 
    18 <?php get_footer(); ?>
    19 
     23</div>
     24<?php
     25get_footer();
  • masterstudy-lms-learning-management-system/trunk/masterstudy-lms-learning-management-system.php

    r3050967 r3055398  
    88Author URI: https://stylemixthemes.com/
    99Text Domain: masterstudy-lms-learning-management-system
    10 Version: 3.3.0
     10Version: 3.3.1
    1111Masterstudy LMS Pro tested up to: 4.4
    1212*/
     
    1616}
    1717
    18 define( 'MS_LMS_VERSION', '3.3.0' );
     18define( 'MS_LMS_VERSION', '3.3.1' );
    1919define( 'MS_LMS_FILE', __FILE__ );
    2020define( 'MS_LMS_PATH', dirname( MS_LMS_FILE ) );
  • masterstudy-lms-learning-management-system/trunk/readme.txt

    r3050967 r3055398  
    44Tags: lms, course, elearning, education, learning management system
    55Requires at least: 4.6
    6 Tested up to: 6.4
     6Tested up to: 6.5
    77Requires PHP: 7.4
    8 Stable tag: 3.3.0
     8Stable tag: 3.3.1
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    303303== Changelog ==
    304304
     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
    305318= 3.3.0 - 2024-03-14 =
    306319- **Enhancements:** Added a new Certificate builder (Pro).
  • masterstudy-lms-learning-management-system/trunk/vendor/autoload.php

    r3050967 r3055398  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInitcc65098f623362089d290a574b55910e::getLoader();
     25return ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0::getLoader();
  • masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_real.php

    r3050967 r3055398  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitcc65098f623362089d290a574b55910e
     5class ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInitcc65098f623362089d290a574b55910e', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    27         spl_autoload_unregister(array('ComposerAutoloaderInitcc65098f623362089d290a574b55910e', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInit3699b21e6b6d0112cbf76e788cef5bb0', 'loadClassLoader'));
    2828
    2929        require __DIR__ . '/autoload_static.php';
    30         call_user_func(\Composer\Autoload\ComposerStaticInitcc65098f623362089d290a574b55910e::getInitializer($loader));
     30        call_user_func(\Composer\Autoload\ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::getInitializer($loader));
    3131
    3232        $loader->register(true);
  • masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_static.php

    r3050967 r3055398  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitcc65098f623362089d290a574b55910e
     7class ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    230230    {
    231231        return \Closure::bind(function () use ($loader) {
    232             $loader->prefixLengthsPsr4 = ComposerStaticInitcc65098f623362089d290a574b55910e::$prefixLengthsPsr4;
    233             $loader->prefixDirsPsr4 = ComposerStaticInitcc65098f623362089d290a574b55910e::$prefixDirsPsr4;
    234             $loader->classMap = ComposerStaticInitcc65098f623362089d290a574b55910e::$classMap;
     232            $loader->prefixLengthsPsr4 = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$prefixLengthsPsr4;
     233            $loader->prefixDirsPsr4 = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$prefixDirsPsr4;
     234            $loader->classMap = ComposerStaticInit3699b21e6b6d0112cbf76e788cef5bb0::$classMap;
    235235
    236236        }, null, ClassLoader::class);
Note: See TracChangeset for help on using the changeset viewer.