Version Description
~ Improved: ui/ux when adding/removing course items ~ Improved: ui/ux when adding/removing questions of a quiz ~ Improved: auto focus mouse to input when changing type of new course item ~ Improved: show confirm message before removing course item to trash ~ Improved: move item to trash when delete instead of delete it permanently ~ Improved: changed icon to turn on/off an item is preview and add tooltip ~ Improved: removed green effect when updating via ajax ~ Improved: focus mouse on search input when searching items ~ Improved: show button for closing popup ~ Improved: flush Hard Cache when updating post ~ Improved: updated metabox to latest version and changed textdomain ~ Fixed: pending course does not show for instructor ~ Fixed: filter lessons/quizzes by course does not work properly ~ Fixed: wrong currency symbol for Turkish lira ~ Fixed: division by zero when calculating course results ~ Fixed: get default thumbnail image for archive course if it option is turn of ~ Removed: option thumbnail size for single course ~ Improved somethings...
Release Info
Developer | leehld |
Plugin | LearnPress – WordPress LMS Plugin |
Version | 3.0.7 |
Comparing to | |
See all releases |
Code changes from version 3.0.6 to 3.0.7
- assets/css/admin/admin.css +472 -138
- assets/js/admin/admin.js +2 -0
- assets/js/admin/course-editor.js +737 -633
- assets/js/admin/question-editor.js +20 -2
- assets/js/admin/quiz-editor.js +85 -14
- assets/js/frontend/quiz.js +1 -1
- assets/js/global.js +29 -10
- assets/scss/_mixin.scss +18 -0
- assets/scss/admin/_admin-editor.scss +159 -585
- assets/scss/admin/_order.scss +12 -8
- assets/scss/admin/_post-types.scss +2 -0
- assets/scss/admin/_question-editor.scss +242 -0
- assets/scss/admin/_quiz-editor.scss +587 -0
- assets/scss/admin/_settings.scss +16 -4
- assets/scss/admin/admin.scss +13 -0
- inc/abstract-settings.php +21 -16
- inc/admin/class-lp-admin-ajax.php +27 -2
- inc/admin/class-lp-admin-dashboard.php +1 -1
- inc/admin/editor/class-lp-admin-editor-course.php +6 -1
- inc/admin/editor/class-lp-admin-editor-question.php +9 -3
- inc/admin/editor/class-lp-admin-editor-quiz.php +19 -1
- inc/admin/lp-admin-actions.php +6 -1
- inc/admin/meta-box/class-lp-meta-box-helper.php +3 -0
- inc/admin/meta-box/fields/color-schema.php +1 -1
- inc/admin/settings/class-lp-settings-courses.php +23 -23
- inc/admin/settings/class-lp-settings-profile.php +5 -4
- inc/admin/views/course/added-items-preview.php +19 -17
- inc/admin/views/course/curriculum.php +33 -19
- inc/admin/views/course/editor.php +18 -28
- inc/admin/views/course/modal-choose-items.php +179 -155
- inc/admin/views/course/new-section-item.php +97 -84
- inc/admin/views/course/new-section.php +34 -30
- inc/admin/views/course/pagination.php +37 -35
- inc/admin/views/course/section-item.php +98 -75
- inc/admin/views/course/section.php +198 -134
- inc/admin/views/course/sections.php +40 -37
- inc/admin/views/editor-wrapper.php +1 -12
- inc/admin/views/meta-boxes/order/actions.php +1 -1
- inc/admin/views/meta-boxes/order/order-item.php +6 -3
- inc/admin/views/placeholder-animation.php +23 -0
- inc/admin/views/question/actions.php +8 -1
- inc/admin/views/question/answer.php +22 -4
- inc/admin/views/question/option.php +6 -3
- inc/admin/views/quiz/editor.php +18 -17
- inc/admin/views/quiz/modal-choose-items.php +19 -5
- inc/admin/views/quiz/question-actions.php +5 -4
- inc/admin/views/quiz/question-answer-option.php +7 -3
- inc/admin/views/quiz/question-answer.php +19 -5
- inc/admin/views/quiz/question-meta.php +68 -52
- inc/admin/views/quiz/question-settings.php +7 -2
- inc/admin/views/quiz/question.php +5 -1
- inc/admin/views/svg-icon.php +16 -0
- inc/class-lp-hard-cache.php +3 -0
- inc/class-lp-install.php +4 -0
- inc/class-lp-settings.php +18 -28
- inc/course/abstract-course.php +7 -2
- inc/course/class-lp-course-item.php +6 -2
- inc/course/lp-course-functions.php +11 -5
- inc/curds/class-lp-quiz-curd.php +7 -4
- inc/curds/class-lp-section-curd.php +16 -6
- inc/custom-post-types/abstract.php +197 -0
- inc/custom-post-types/course.php +79 -41
- inc/custom-post-types/lesson.php +34 -25
- inc/custom-post-types/question.php +9 -3
- inc/custom-post-types/quiz.php +31 -35
- inc/libraries/meta-box/css/datepicker.css +1 -1
- inc/libraries/meta-box/css/file.css +40 -25
- inc/libraries/meta-box/css/image-advanced.css +0 -52
- inc/libraries/meta-box/css/image-select.css +2 -2
- inc/libraries/meta-box/css/image.css +50 -47
- inc/libraries/meta-box/css/input-list.css +2 -1
- inc/libraries/meta-box/css/media.css +22 -44
- inc/libraries/meta-box/css/range.css +5 -9
- inc/libraries/meta-box/css/select-advanced.css +3 -0
- inc/libraries/meta-box/css/select.css +3 -2
- inc/libraries/meta-box/css/style.css +39 -17
- inc/libraries/meta-box/css/video.css +0 -22
- inc/libraries/meta-box/img/loader.gif +0 -0
- inc/libraries/meta-box/inc/about/about.php +3 -3
- inc/libraries/meta-box/inc/about/sections/getting-started.php +15 -15
- inc/libraries/meta-box/inc/about/sections/tabs.php +1 -1
- inc/libraries/meta-box/inc/about/sections/welcome.php +2 -2
- inc/libraries/meta-box/inc/autoloader.php +6 -2
- inc/libraries/meta-box/inc/clone.php +9 -2
- inc/libraries/meta-box/inc/core.php +39 -6
- inc/libraries/meta-box/inc/field-registry.php +11 -13
- inc/libraries/meta-box/inc/field.php +79 -28
- inc/libraries/meta-box/inc/fields/autocomplete.php +3 -3
- inc/libraries/meta-box/inc/fields/button.php +1 -1
- inc/libraries/meta-box/inc/fields/checkbox-list.php +0 -1
- inc/libraries/meta-box/inc/fields/checkbox.php +8 -5
- inc/libraries/meta-box/inc/fields/choice.php +7 -4
- inc/libraries/meta-box/inc/fields/color.php +26 -11
- inc/libraries/meta-box/inc/fields/datetime.php +20 -0
- inc/libraries/meta-box/inc/fields/fieldset-text.php +26 -11
- inc/libraries/meta-box/inc/fields/file-input.php +5 -4
- inc/libraries/meta-box/inc/fields/file.php +122 -110
- inc/libraries/meta-box/inc/fields/image-advanced.php +8 -16
- inc/libraries/meta-box/inc/fields/image-select.php +8 -5
- inc/libraries/meta-box/inc/fields/image.php +55 -26
- inc/libraries/meta-box/inc/fields/input-list.php +2 -4
- inc/libraries/meta-box/inc/fields/input.php +11 -9
- inc/libraries/meta-box/inc/fields/key-value.php +17 -13
- inc/libraries/meta-box/inc/fields/map.php +49 -30
- inc/libraries/meta-box/inc/fields/media.php +15 -15
- inc/libraries/meta-box/inc/fields/multiple-values.php +7 -4
- inc/libraries/meta-box/inc/fields/oembed.php +10 -9
- inc/libraries/meta-box/inc/fields/post.php +7 -34
- inc/libraries/meta-box/inc/fields/select-advanced.php +1 -1
- inc/libraries/meta-box/inc/fields/select.php +1 -1
- inc/libraries/meta-box/inc/fields/slider.php +1 -1
- inc/libraries/meta-box/inc/fields/taxonomy-advanced.php +36 -20
- inc/libraries/meta-box/inc/fields/taxonomy.php +12 -11
- inc/libraries/meta-box/inc/fields/text-list.php +30 -21
- inc/libraries/meta-box/inc/fields/textarea.php +13 -11
- inc/libraries/meta-box/inc/fields/thickbox-image.php +0 -80
- inc/libraries/meta-box/inc/fields/user.php +1 -1
- inc/libraries/meta-box/inc/fields/video.php +19 -6
- inc/libraries/meta-box/inc/fields/wysiwyg.php +1 -1
- inc/libraries/meta-box/inc/functions.php +32 -10
- inc/libraries/meta-box/inc/loader.php +12 -8
- inc/libraries/meta-box/inc/media-modal.php +3 -1
- inc/libraries/meta-box/inc/meta-box-registry.php +22 -0
- inc/libraries/meta-box/inc/meta-box.php +104 -23
- inc/libraries/meta-box/inc/storage-registry.php +4 -0
- inc/libraries/meta-box/inc/storages/post.php +4 -10
- inc/libraries/meta-box/inc/templates/image-advanced.php +6 -6
- inc/libraries/meta-box/inc/templates/media.php +11 -11
- inc/libraries/meta-box/inc/templates/video.php +9 -9
- inc/libraries/meta-box/inc/validation.php +1 -1
- inc/libraries/meta-box/inc/walkers/select.php +1 -1
- inc/libraries/meta-box/inc/wpml.php +2 -2
- inc/libraries/meta-box/js/autocomplete.js +7 -7
- inc/libraries/meta-box/js/autosave.js +12 -10
- inc/libraries/meta-box/js/clone.js +89 -32
- inc/libraries/meta-box/js/date.js +6 -2
- inc/libraries/meta-box/js/datetime.js +2 -2
- inc/libraries/meta-box/js/file-input.js +9 -3
- inc/libraries/meta-box/js/file-upload.js +9 -13
- inc/libraries/meta-box/js/file.js +33 -31
- inc/libraries/meta-box/js/image-advanced.js +14 -4
- inc/libraries/meta-box/js/image-upload.js +7 -4
- inc/libraries/meta-box/js/input-list.js +2 -2
- inc/libraries/meta-box/js/jquery-validation/additional-methods.min.js +4 -4
- inc/libraries/meta-box/js/jquery-validation/jquery.validate.min.js +4 -4
- inc/libraries/meta-box/js/map-frontend.js +5 -0
- inc/libraries/meta-box/js/map.js +47 -35
- inc/libraries/meta-box/js/media.js +135 -41
- inc/libraries/meta-box/js/oembed.js +6 -8
- inc/libraries/meta-box/js/range.js +2 -2
- inc/libraries/meta-box/js/select-advanced.js +2 -2
- inc/libraries/meta-box/js/select.js +2 -2
- inc/libraries/meta-box/js/select2/i18n/en.js +1 -1
- inc/libraries/meta-box/js/select2/select2.min.js +1 -1
- inc/libraries/meta-box/js/slider.js +2 -2
- inc/libraries/meta-box/js/thickbox-image.js +0 -34
- inc/libraries/meta-box/js/validate.js +7 -2
- inc/libraries/meta-box/js/video.js +7 -4
- inc/libraries/meta-box/js/wysiwyg.js +5 -5
- inc/libraries/meta-box/meta-box.php +3 -3
- inc/libraries/meta-box/readme.txt +74 -672
- inc/lp-constants.php +1 -1
- inc/lp-core-functions.php +7 -7
- inc/user-item/class-lp-user-item-course.php +69 -45
- inc/user-item/class-lp-user-item-quiz.php +12 -8
- inc/user/class-lp-profile.php +3 -3
- languages/learnpress-pl_PL.mo +0 -0
- languages/learnpress-pl_PL.po +7099 -1619
@@ -1731,15 +1731,26 @@
|
|
1731 |
.post-type-lp_order #order_details .order-items table .remove-order-item {
|
1732 |
text-decoration: none;
|
1733 |
outline: none;
|
1734 |
-
color: #
|
1735 |
-
|
1736 |
-
|
|
|
|
|
1737 |
.post-type-lp_order #order_details .order-items table .order-item-row:hover .remove-order-item {
|
1738 |
display: inline-block; }
|
1739 |
|
1740 |
.color-schemas {
|
1741 |
margin: 0 20px 20px 0;
|
1742 |
float: left; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1743 |
.color-schemas table {
|
1744 |
border-collapse: collapse;
|
1745 |
position: relative; }
|
@@ -1769,9 +1780,6 @@
|
|
1769 |
color: #FF0000; }
|
1770 |
.color-schemas .wp-color-result {
|
1771 |
margin: 0; }
|
1772 |
-
.color-schemas .color-selector input {
|
1773 |
-
width: 0 !important;
|
1774 |
-
opacity: 0; }
|
1775 |
.color-schemas .clone-schema {
|
1776 |
display: none; }
|
1777 |
.color-schemas:first-child .remove-schema,
|
@@ -1793,6 +1801,30 @@
|
|
1793 |
/**
|
1794 |
* General style for admin editor.
|
1795 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1796 |
.lp-admin-editor {
|
1797 |
background-color: #fff;
|
1798 |
border: 1px solid #ddd;
|
@@ -1809,7 +1841,7 @@
|
|
1809 |
* Course admin editor.
|
1810 |
*/
|
1811 |
#admin-editor-lp_course .lp-course-curriculum .heading {
|
1812 |
-
padding:
|
1813 |
position: relative; }
|
1814 |
#admin-editor-lp_course .lp-course-curriculum .heading h4 {
|
1815 |
margin: 0;
|
@@ -1847,16 +1879,19 @@
|
|
1847 |
|
1848 |
#admin-editor-lp_course .lp-course-curriculum .curriculum-sections {
|
1849 |
margin: 0;
|
1850 |
-
padding: 10px;
|
1851 |
border-top: 1px solid #ddd; }
|
1852 |
|
1853 |
#admin-editor-lp_course .lp-course-curriculum .section {
|
1854 |
border: 1px solid #e5e5e5;
|
1855 |
-
margin-bottom: 10px;
|
1856 |
opacity: 1;
|
1857 |
-
background: #FFF;
|
|
|
|
|
|
|
|
|
|
|
1858 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section {
|
1859 |
-
margin-
|
1860 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section form {
|
1861 |
margin: 0; }
|
1862 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section .section-head {
|
@@ -1866,19 +1901,37 @@
|
|
1866 |
top: 1px; }
|
1867 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section .section-head .creatable:before {
|
1868 |
content: "\f132"; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1869 |
#admin-editor-lp_course .lp-course-curriculum .section:hover .section-actions .remove {
|
1870 |
display: inline-block; }
|
1871 |
-
#admin-editor-lp_course .lp-course-curriculum .section.sortable-ghost {
|
1872 |
-
opacity: 0.5; }
|
1873 |
-
#admin-editor-lp_course .lp-course-curriculum .section.updating .section-head {
|
1874 |
-
background-color: #e6f2d0; }
|
1875 |
#admin-editor-lp_course .lp-course-curriculum .section input {
|
1876 |
background-color: transparent;
|
1877 |
box-shadow: none; }
|
1878 |
#admin-editor-lp_course .lp-course-curriculum .section input:focus {
|
1879 |
box-shadow: none; }
|
1880 |
#admin-editor-lp_course .lp-course-curriculum .section .section-head {
|
1881 |
-
background-color: #
|
1882 |
padding: 3px;
|
1883 |
position: relative;
|
1884 |
transition: background 500ms ease-out; }
|
@@ -1941,13 +1994,15 @@
|
|
1941 |
font-size: 1.2em;
|
1942 |
border: none;
|
1943 |
line-height: 30px;
|
1944 |
-
width: calc(100% -
|
1945 |
padding-left: 0; }
|
1946 |
#admin-editor-lp_course .lp-course-curriculum .section .description-input {
|
1947 |
border: none;
|
1948 |
width: 100%;
|
1949 |
color: #999;
|
1950 |
-
font-style: italic;
|
|
|
|
|
1951 |
#admin-editor-lp_course .lp-course-curriculum .section .description-input:focus {
|
1952 |
color: #444; }
|
1953 |
|
@@ -1965,31 +2020,29 @@
|
|
1965 |
transition: background 200ms ease-out;
|
1966 |
display: flex;
|
1967 |
justify-content: center;
|
1968 |
-
align-items: center;
|
|
|
|
|
|
|
1969 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item:nth-child(2n+1) {
|
1970 |
background-color: #f4fcff; }
|
1971 |
-
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
left: 0;
|
1980 |
-
right: 0;
|
1981 |
-
bottom: 0;
|
1982 |
-
z-index: 2; }
|
1983 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.removing {
|
1984 |
background-color: #ffeded; }
|
1985 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .drag {
|
1986 |
-
width: 18px;
|
1987 |
height: 20px;
|
1988 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
1989 |
-
flex-shrink: 0;
|
1990 |
visibility: hidden;
|
1991 |
fill: #d5dce0;
|
1992 |
-
padding-top: 3px;
|
|
|
1993 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .drag:hover {
|
1994 |
fill: #0085ba; }
|
1995 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon {
|
@@ -2030,13 +2083,14 @@
|
|
2030 |
display: flex;
|
2031 |
align-items: center;
|
2032 |
transition: all 200ms ease-out; }
|
|
|
|
|
2033 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .title {
|
2034 |
display: inline-block;
|
2035 |
margin: 0;
|
2036 |
flex: 1; }
|
2037 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types {
|
2038 |
-
display: inline-block;
|
2039 |
-
margin-left: 17px; }
|
2040 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:hover, #admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:focus {
|
2041 |
background-color: #fff; }
|
2042 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:hover .type, #admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:focus .type {
|
@@ -2058,6 +2112,8 @@
|
|
2058 |
content: '\f469'; }
|
2059 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types .type.lp_lesson:before {
|
2060 |
content: '\f330'; }
|
|
|
|
|
2061 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions {
|
2062 |
text-align: right; }
|
2063 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action {
|
@@ -2083,7 +2139,6 @@
|
|
2083 |
position: absolute;
|
2084 |
top: 100%;
|
2085 |
width: 165px;
|
2086 |
-
padding: 2px 0;
|
2087 |
right: 0;
|
2088 |
background: #fdfeff;
|
2089 |
margin: 0;
|
@@ -2093,11 +2148,13 @@
|
|
2093 |
text-align: center; }
|
2094 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li {
|
2095 |
margin: 0;
|
2096 |
-
|
2097 |
-
|
2098 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li a {
|
2099 |
color: #0073aa;
|
2100 |
-
text-decoration: none;
|
|
|
|
|
2101 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li a.delete-permanently {
|
2102 |
color: #d05d5d; }
|
2103 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li:hover {
|
@@ -2111,11 +2168,33 @@
|
|
2111 |
content: '\f469'; }
|
2112 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.lp_lesson .icon:before {
|
2113 |
content: '\f330'; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2114 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon {
|
2115 |
-
width: 38px;
|
2116 |
font-size: 20px;
|
2117 |
color: #0085ba;
|
2118 |
-
text-align: center;
|
|
|
2119 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon:before {
|
2120 |
font-family: Dashicons; }
|
2121 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item input {
|
@@ -2140,37 +2219,57 @@
|
|
2140 |
#admin-editor-lp_course .lp-course-curriculum .section-actions .remove.confirm .icon {
|
2141 |
display: none; }
|
2142 |
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
font-size: 20px;
|
2149 |
-
position: relative;
|
2150 |
-
top: 5px;
|
2151 |
-
margin-left: 10px;
|
2152 |
-
visibility: hidden; }
|
2153 |
-
#admin-editor-lp_quiz .lp-box-data-head .status:before {
|
2154 |
-
content: "\f463"; }
|
2155 |
-
#admin-editor-lp_quiz .lp-box-data-head .status.loading {
|
2156 |
-
visibility: visible;
|
2157 |
-
animation: rotation 2s infinite linear;
|
2158 |
-
display: inline-block; }
|
2159 |
|
2160 |
-
|
2161 |
-
font-family: Dashicons;
|
2162 |
position: absolute;
|
2163 |
top: 0;
|
2164 |
-
right:
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2174 |
|
2175 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions {
|
2176 |
color: #777;
|
@@ -2181,40 +2280,43 @@
|
|
2181 |
text-align: center; }
|
2182 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > * {
|
2183 |
width: 100%;
|
2184 |
-
padding:
|
2185 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .sort {
|
2186 |
-
|
2187 |
-
fill: #d5dce0;
|
2188 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
2189 |
visibility: hidden;
|
2190 |
-
|
2191 |
-
|
2192 |
-
#
|
2193 |
-
width: 18px;
|
2194 |
-
height: 20px;
|
2195 |
-
position: absolute;
|
2196 |
-
top: 50%;
|
2197 |
-
margin-top: -10px;
|
2198 |
-
left: 4px; }
|
2199 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .sort:hover {
|
2200 |
-
|
2201 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .order {
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
|
|
|
|
|
|
|
|
2205 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .type {
|
2206 |
width: 150px; }
|
2207 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .actions {
|
2208 |
width: 300px; }
|
|
|
|
|
2209 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row:hover > .sort {
|
2210 |
visibility: visible; }
|
|
|
|
|
2211 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header {
|
2212 |
-
border-bottom: 1px solid #ddd;
|
|
|
2213 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header .table-row > * {
|
2214 |
-
font-weight: bold;
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
|
|
2218 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-actions .name input {
|
2219 |
width: 100%;
|
2220 |
font-size: 14px;
|
@@ -2224,8 +2326,6 @@
|
|
2224 |
font-weight: normal;
|
2225 |
color: #777;
|
2226 |
padding: 0; }
|
2227 |
-
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-actions.updating {
|
2228 |
-
background-color: #e6f2d0; }
|
2229 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings {
|
2230 |
border: 1px solid #ddd;
|
2231 |
border-left: none;
|
@@ -2234,13 +2334,28 @@
|
|
2234 |
padding: 20px; }
|
2235 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options {
|
2236 |
border: 1px solid #ddd; }
|
2237 |
-
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options
|
|
|
|
|
|
|
|
|
2238 |
width: calc(100% - 100px); }
|
2239 |
-
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options
|
2240 |
-
width:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2241 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr {
|
2242 |
background: #fff;
|
2243 |
-
border: 1px solid #DDD;
|
|
|
2244 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr:nth-child(2n) {
|
2245 |
background: #f4fcff; }
|
2246 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td {
|
@@ -2249,10 +2364,63 @@
|
|
2249 |
position: static;
|
2250 |
border: none; }
|
2251 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.sort {
|
2252 |
-
cursor: url("../../images/openhand.cur") 7 5, default;
|
|
|
|
|
|
|
|
|
|
|
|
|
2253 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.answer-correct {
|
2254 |
text-align: center; }
|
2255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2256 |
width: 100%;
|
2257 |
font-size: 14px;
|
2258 |
border: none;
|
@@ -2266,6 +2434,42 @@
|
|
2266 |
border-bottom: 1px solid #f1f1f1; }
|
2267 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item:nth-child(2n+1) {
|
2268 |
background: #f4fcff; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2269 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .cell {
|
2270 |
padding: 10px; }
|
2271 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-actions .name input {
|
@@ -2320,7 +2524,8 @@
|
|
2320 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings {
|
2321 |
background: #fff; }
|
2322 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options {
|
2323 |
-
text-align: left;
|
|
|
2324 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .inside {
|
2325 |
margin: 0;
|
2326 |
padding: 0; }
|
@@ -2329,21 +2534,48 @@
|
|
2329 |
margin: 0; }
|
2330 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .inside .rwmb-meta-box .rwmb-field:nth-child(2n+1) {
|
2331 |
background: #f4fcff; }
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2338 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title {
|
2339 |
position: relative;
|
2340 |
display: inline-block;
|
2341 |
min-width: 500px; }
|
2342 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title input {
|
2343 |
-
border:
|
2344 |
width: 100%;
|
2345 |
margin: 0;
|
2346 |
-
padding: 6px
|
2347 |
-webkit-box-shadow: none;
|
2348 |
-moz-box-shadow: none;
|
2349 |
box-shadow: none;
|
@@ -2356,6 +2588,11 @@
|
|
2356 |
box-shadow: none; }
|
2357 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title input:focus {
|
2358 |
border-color: #DDD; }
|
|
|
|
|
|
|
|
|
|
|
2359 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .add-new {
|
2360 |
display: inline;
|
2361 |
position: relative; }
|
@@ -2399,11 +2636,39 @@
|
|
2399 |
#admin-editor-lp_question {
|
2400 |
background: #fff; }
|
2401 |
#admin-editor-lp_question .lp-box-data-head {
|
2402 |
-
padding:
|
2403 |
#admin-editor-lp_question .lp-box-data-head .heading {
|
2404 |
-
float: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2405 |
#admin-editor-lp_question .lp-box-data-head .question-actions {
|
2406 |
-
margin-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2407 |
#admin-editor-lp_question .lp-box-data-head .question-actions .question-types ul {
|
2408 |
position: absolute;
|
2409 |
top: 100%;
|
@@ -2421,11 +2686,11 @@
|
|
2421 |
display: block;
|
2422 |
white-space: nowrap;
|
2423 |
text-decoration: none;
|
2424 |
-
padding: 5px
|
2425 |
font-size: 12px;
|
2426 |
text-align: right;
|
2427 |
color: #0073aa;
|
2428 |
-
|
2429 |
#admin-editor-lp_question .lp-box-data-head .question-actions .question-types ul:hover {
|
2430 |
display: block; }
|
2431 |
#admin-editor-lp_question .lp-box-data-head .question-actions:hover .question-types ul {
|
@@ -2443,27 +2708,43 @@
|
|
2443 |
padding: 15px;
|
2444 |
background: #F5F5F5;
|
2445 |
border-bottom: 1px solid #DDD; }
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2450 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr {
|
2451 |
background: #f4fcff;
|
2452 |
color: #777; }
|
2453 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr:nth-child(2n) {
|
2454 |
background: #fff; }
|
2455 |
-
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr:hover td.actions .remove-answer {
|
2456 |
-
visibility: visible; }
|
2457 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.sort {
|
2458 |
width: 15px;
|
2459 |
text-align: center;
|
2460 |
font-size: 18px;
|
2461 |
-
|
2462 |
-
|
2463 |
-
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.sort
|
2464 |
-
|
|
|
|
|
|
|
|
|
|
|
2465 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.order {
|
2466 |
-
font-size:
|
2467 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.answer-text input {
|
2468 |
width: 100%;
|
2469 |
font-size: 14px;
|
@@ -2473,12 +2754,47 @@
|
|
2473 |
font-weight: normal;
|
2474 |
color: #777;
|
2475 |
padding: 0; }
|
2476 |
-
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.actions .remove-answer {
|
2477 |
-
visibility: hidden; }
|
2478 |
-
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.actions .remove-answer:hover {
|
2479 |
-
background: transparent; }
|
2480 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.lp-toolbar-buttons {
|
2481 |
z-index: auto; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2482 |
#admin-editor-lp_question .lp-box-data-content .add-answer {
|
2483 |
margin: 15px 0 0 0; }
|
2484 |
|
@@ -2548,9 +2864,9 @@
|
|
2548 |
border-right: 1px solid #ddd;
|
2549 |
position: absolute;
|
2550 |
right: 0;
|
2551 |
-
height:
|
2552 |
top: 50%;
|
2553 |
-
margin-top: -
|
2554 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab.active:after {
|
2555 |
border: 1px solid #ddd;
|
2556 |
transform: rotate(45deg);
|
@@ -2568,10 +2884,12 @@
|
|
2568 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab.active a {
|
2569 |
color: #333; }
|
2570 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab a {
|
2571 |
-
padding:
|
2572 |
text-decoration: none;
|
2573 |
display: inline-block;
|
2574 |
-
font-weight: 600;
|
|
|
|
|
2575 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab a:focus {
|
2576 |
box-shadow: none; }
|
2577 |
#lp-modal-choose-items .lp-choose-items .header .close {
|
@@ -2581,12 +2899,13 @@
|
|
2581 |
right: 0;
|
2582 |
cursor: pointer;
|
2583 |
font-size: 1em;
|
2584 |
-
padding:
|
2585 |
-
z-index:
|
2586 |
#lp-modal-choose-items .lp-choose-items .main {
|
2587 |
padding: 20px;
|
2588 |
position: relative;
|
2589 |
-
overflow: hidden;
|
|
|
2590 |
#lp-modal-choose-items .lp-choose-items .main .section-item {
|
2591 |
cursor: pointer;
|
2592 |
transition: color 200ms ease-out;
|
@@ -2602,10 +2921,11 @@
|
|
2602 |
#lp-modal-choose-items .lp-choose-items .main .search {
|
2603 |
margin-bottom: 20px;
|
2604 |
background: transparent; }
|
2605 |
-
#lp-modal-choose-items .lp-choose-items .main .search input {
|
2606 |
width: 100%;
|
2607 |
font-size: 1.2em;
|
2608 |
-
line-height: 1.5;
|
|
|
2609 |
#lp-modal-choose-items .lp-choose-items .main .list-items {
|
2610 |
min-height: 260px;
|
2611 |
margin: 0; }
|
@@ -2625,7 +2945,7 @@
|
|
2625 |
z-index: 2;
|
2626 |
padding: 20px;
|
2627 |
transform: translate(100%, 0);
|
2628 |
-
max-height:
|
2629 |
overflow: auto; }
|
2630 |
#lp-modal-choose-items .lp-choose-items .lp-added-items-preview.show {
|
2631 |
transform: translate(0, 0); }
|
@@ -2636,6 +2956,11 @@
|
|
2636 |
#lp-modal-choose-items .lp-choose-items .footer {
|
2637 |
padding: 20px; }
|
2638 |
|
|
|
|
|
|
|
|
|
|
|
2639 |
@media screen and (max-width: 900px) {
|
2640 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .question-settings.table-row {
|
2641 |
display: block;
|
@@ -2771,5 +3096,14 @@
|
|
2771 |
#adminmenu .update-plugins.lp-plugins-count {
|
2772 |
padding: 0 5px; }
|
2773 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2774 |
.learnpress .actions {
|
2775 |
margin: 0; }
|
1731 |
.post-type-lp_order #order_details .order-items table .remove-order-item {
|
1732 |
text-decoration: none;
|
1733 |
outline: none;
|
1734 |
+
color: #CCC; }
|
1735 |
+
.post-type-lp_order #order_details .order-items table .remove-order-item .dashicons {
|
1736 |
+
font-size: 18px; }
|
1737 |
+
.post-type-lp_order #order_details .order-items table .remove-order-item:hover {
|
1738 |
+
color: #FF0000; }
|
1739 |
.post-type-lp_order #order_details .order-items table .order-item-row:hover .remove-order-item {
|
1740 |
display: inline-block; }
|
1741 |
|
1742 |
.color-schemas {
|
1743 |
margin: 0 20px 20px 0;
|
1744 |
float: left; }
|
1745 |
+
.color-schemas .wp-color-picker {
|
1746 |
+
width: 80px;
|
1747 |
+
height: 24px;
|
1748 |
+
vertical-align: top;
|
1749 |
+
margin: 0; }
|
1750 |
+
.color-schemas .wp-picker-holder {
|
1751 |
+
position: absolute; }
|
1752 |
+
.color-schemas .buttons {
|
1753 |
+
display: none; }
|
1754 |
.color-schemas table {
|
1755 |
border-collapse: collapse;
|
1756 |
position: relative; }
|
1780 |
color: #FF0000; }
|
1781 |
.color-schemas .wp-color-result {
|
1782 |
margin: 0; }
|
|
|
|
|
|
|
1783 |
.color-schemas .clone-schema {
|
1784 |
display: none; }
|
1785 |
.color-schemas:first-child .remove-schema,
|
1801 |
/**
|
1802 |
* General style for admin editor.
|
1803 |
*/
|
1804 |
+
@-webkit-keyframes rotating4 /* Safari and Chrome */ {
|
1805 |
+
from {
|
1806 |
+
-webkit-transform: rotate(0deg);
|
1807 |
+
-o-transform: rotate(0deg);
|
1808 |
+
transform: rotate(0deg); }
|
1809 |
+
to {
|
1810 |
+
-webkit-transform: rotate(360deg);
|
1811 |
+
-o-transform: rotate(360deg);
|
1812 |
+
transform: rotate(360deg); } }
|
1813 |
+
|
1814 |
+
@keyframes rotating4 {
|
1815 |
+
from {
|
1816 |
+
-ms-transform: rotate(0deg);
|
1817 |
+
-moz-transform: rotate(0deg);
|
1818 |
+
-webkit-transform: rotate(0deg);
|
1819 |
+
-o-transform: rotate(0deg);
|
1820 |
+
transform: rotate(0deg); }
|
1821 |
+
to {
|
1822 |
+
-ms-transform: rotate(360deg);
|
1823 |
+
-moz-transform: rotate(360deg);
|
1824 |
+
-webkit-transform: rotate(360deg);
|
1825 |
+
-o-transform: rotate(360deg);
|
1826 |
+
transform: rotate(360deg); } }
|
1827 |
+
|
1828 |
.lp-admin-editor {
|
1829 |
background-color: #fff;
|
1830 |
border: 1px solid #ddd;
|
1841 |
* Course admin editor.
|
1842 |
*/
|
1843 |
#admin-editor-lp_course .lp-course-curriculum .heading {
|
1844 |
+
padding: 12px 10px;
|
1845 |
position: relative; }
|
1846 |
#admin-editor-lp_course .lp-course-curriculum .heading h4 {
|
1847 |
margin: 0;
|
1879 |
|
1880 |
#admin-editor-lp_course .lp-course-curriculum .curriculum-sections {
|
1881 |
margin: 0;
|
|
|
1882 |
border-top: 1px solid #ddd; }
|
1883 |
|
1884 |
#admin-editor-lp_course .lp-course-curriculum .section {
|
1885 |
border: 1px solid #e5e5e5;
|
|
|
1886 |
opacity: 1;
|
1887 |
+
background: #FFF;
|
1888 |
+
border-left: 0;
|
1889 |
+
border-right: 0;
|
1890 |
+
margin-bottom: -1px; }
|
1891 |
+
#admin-editor-lp_course .lp-course-curriculum .section:first-child {
|
1892 |
+
border-top: 0; }
|
1893 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section {
|
1894 |
+
margin-top: 1px; }
|
1895 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section form {
|
1896 |
margin: 0; }
|
1897 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section .section-head {
|
1901 |
top: 1px; }
|
1902 |
#admin-editor-lp_course .lp-course-curriculum .section.new-section .section-head .creatable:before {
|
1903 |
content: "\f132"; }
|
1904 |
+
#admin-editor-lp_course .lp-course-curriculum .section.empty-section {
|
1905 |
+
position: relative; }
|
1906 |
+
#admin-editor-lp_course .lp-course-curriculum .section.empty-section:after {
|
1907 |
+
position: absolute;
|
1908 |
+
top: 0;
|
1909 |
+
left: 0;
|
1910 |
+
right: 0;
|
1911 |
+
bottom: 0;
|
1912 |
+
background: #FFF;
|
1913 |
+
content: '';
|
1914 |
+
opacity: 0.5; }
|
1915 |
+
#admin-editor-lp_course .lp-course-curriculum .section.empty-section .section-head .movable:before {
|
1916 |
+
content: "\f463";
|
1917 |
+
color: #a2a2a2;
|
1918 |
+
display: inline-block;
|
1919 |
+
-webkit-animation: rotating4 2s linear infinite;
|
1920 |
+
-moz-animation: rotating4 2s linear infinite;
|
1921 |
+
-ms-animation: rotating4 2s linear infinite;
|
1922 |
+
-o-animation: rotating4 2s linear infinite;
|
1923 |
+
animation: rotating4 2s linear infinite; }
|
1924 |
+
#admin-editor-lp_course .lp-course-curriculum .section.empty-section .section-collapse {
|
1925 |
+
display: none; }
|
1926 |
#admin-editor-lp_course .lp-course-curriculum .section:hover .section-actions .remove {
|
1927 |
display: inline-block; }
|
|
|
|
|
|
|
|
|
1928 |
#admin-editor-lp_course .lp-course-curriculum .section input {
|
1929 |
background-color: transparent;
|
1930 |
box-shadow: none; }
|
1931 |
#admin-editor-lp_course .lp-course-curriculum .section input:focus {
|
1932 |
box-shadow: none; }
|
1933 |
#admin-editor-lp_course .lp-course-curriculum .section .section-head {
|
1934 |
+
background-color: #f4fcff;
|
1935 |
padding: 3px;
|
1936 |
position: relative;
|
1937 |
transition: background 500ms ease-out; }
|
1994 |
font-size: 1.2em;
|
1995 |
border: none;
|
1996 |
line-height: 30px;
|
1997 |
+
width: calc(100% - 200px);
|
1998 |
padding-left: 0; }
|
1999 |
#admin-editor-lp_course .lp-course-curriculum .section .description-input {
|
2000 |
border: none;
|
2001 |
width: 100%;
|
2002 |
color: #999;
|
2003 |
+
font-style: italic;
|
2004 |
+
margin: 0;
|
2005 |
+
padding: 0; }
|
2006 |
#admin-editor-lp_course .lp-course-curriculum .section .description-input:focus {
|
2007 |
color: #444; }
|
2008 |
|
2020 |
transition: background 200ms ease-out;
|
2021 |
display: flex;
|
2022 |
justify-content: center;
|
2023 |
+
align-items: center;
|
2024 |
+
background: #FFF; }
|
2025 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.ui-sortable-helper {
|
2026 |
+
border-bottom: 1px solid #EEE; }
|
2027 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item:nth-child(2n+1) {
|
2028 |
background-color: #f4fcff; }
|
2029 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.updating:before {
|
2030 |
+
position: absolute;
|
2031 |
+
content: '';
|
2032 |
+
top: 0;
|
2033 |
+
left: 0;
|
2034 |
+
right: 0;
|
2035 |
+
bottom: 0;
|
2036 |
+
z-index: 2; }
|
|
|
|
|
|
|
|
|
2037 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.removing {
|
2038 |
background-color: #ffeded; }
|
2039 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .drag {
|
|
|
2040 |
height: 20px;
|
2041 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
|
|
2042 |
visibility: hidden;
|
2043 |
fill: #d5dce0;
|
2044 |
+
padding-top: 3px;
|
2045 |
+
flex: 0 0 18px; }
|
2046 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .drag:hover {
|
2047 |
fill: #0085ba; }
|
2048 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon {
|
2083 |
display: flex;
|
2084 |
align-items: center;
|
2085 |
transition: all 200ms ease-out; }
|
2086 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .drag {
|
2087 |
+
cursor: default; }
|
2088 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .title {
|
2089 |
display: inline-block;
|
2090 |
margin: 0;
|
2091 |
flex: 1; }
|
2092 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types {
|
2093 |
+
display: inline-block; }
|
|
|
2094 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:hover, #admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:focus {
|
2095 |
background-color: #fff; }
|
2096 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:hover .type, #admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types:focus .type {
|
2112 |
content: '\f469'; }
|
2113 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types .type.lp_lesson:before {
|
2114 |
content: '\f330'; }
|
2115 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .new-section-item .types .type.empty-item:before {
|
2116 |
+
content: "\f463"; }
|
2117 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions {
|
2118 |
text-align: right; }
|
2119 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action {
|
2139 |
position: absolute;
|
2140 |
top: 100%;
|
2141 |
width: 165px;
|
|
|
2142 |
right: 0;
|
2143 |
background: #fdfeff;
|
2144 |
margin: 0;
|
2148 |
text-align: center; }
|
2149 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li {
|
2150 |
margin: 0;
|
2151 |
+
border-bottom: 1px solid #eee;
|
2152 |
+
text-align: right; }
|
2153 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li a {
|
2154 |
color: #0073aa;
|
2155 |
+
text-decoration: none;
|
2156 |
+
padding: 8px;
|
2157 |
+
display: block; }
|
2158 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li a.delete-permanently {
|
2159 |
color: #d05d5d; }
|
2160 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .item-actions .actions .action.delete-item ul li:hover {
|
2168 |
content: '\f469'; }
|
2169 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.lp_lesson .icon:before {
|
2170 |
content: '\f330'; }
|
2171 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.empty-item {
|
2172 |
+
color: #a2a2a2;
|
2173 |
+
position: relative; }
|
2174 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.empty-item:after {
|
2175 |
+
position: absolute;
|
2176 |
+
top: 0;
|
2177 |
+
left: 0;
|
2178 |
+
right: 0;
|
2179 |
+
bottom: 0;
|
2180 |
+
background: #FFF;
|
2181 |
+
content: '';
|
2182 |
+
opacity: 0.5; }
|
2183 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.empty-item .item-actions {
|
2184 |
+
display: none; }
|
2185 |
+
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item.empty-item .icon:before {
|
2186 |
+
content: "\f463";
|
2187 |
+
color: #a2a2a2;
|
2188 |
+
-webkit-animation: rotating4 2s linear infinite;
|
2189 |
+
-moz-animation: rotating4 2s linear infinite;
|
2190 |
+
-ms-animation: rotating4 2s linear infinite;
|
2191 |
+
-o-animation: rotating4 2s linear infinite;
|
2192 |
+
animation: rotating4 2s linear infinite; }
|
2193 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon {
|
|
|
2194 |
font-size: 20px;
|
2195 |
color: #0085ba;
|
2196 |
+
text-align: center;
|
2197 |
+
flex: 0 0 29px; }
|
2198 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item .icon:before {
|
2199 |
font-family: Dashicons; }
|
2200 |
#admin-editor-lp_course .lp-course-curriculum .section-list-items .section-item input {
|
2219 |
#admin-editor-lp_course .lp-course-curriculum .section-actions .remove.confirm .icon {
|
2220 |
display: none; }
|
2221 |
|
2222 |
+
#admin-editor-lp_course .lp-course-curriculum .ui-sortable-placeholder {
|
2223 |
+
visibility: visible !important;
|
2224 |
+
background: #bdf4fe !important;
|
2225 |
+
display: block;
|
2226 |
+
border-color: #bdf4fe !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2227 |
|
2228 |
+
.section-item-counts {
|
|
|
2229 |
position: absolute;
|
2230 |
top: 0;
|
2231 |
+
right: 41px;
|
2232 |
+
white-space: nowrap;
|
2233 |
+
line-height: 44px;
|
2234 |
+
font-size: 12px; }
|
2235 |
+
.section-item-counts span {
|
2236 |
+
font-weight: bold;
|
2237 |
+
color: #999; }
|
2238 |
+
|
2239 |
+
/**
|
2240 |
+
* Quiz admin editor.
|
2241 |
+
*/
|
2242 |
+
#admin-editor-lp_quiz .lp-box-data-head {
|
2243 |
+
padding: 12px 10px; }
|
2244 |
+
#admin-editor-lp_quiz .lp-box-data-head h3 {
|
2245 |
+
padding: 0; }
|
2246 |
+
#admin-editor-lp_quiz .lp-box-data-head .status {
|
2247 |
+
font-family: Dashicons;
|
2248 |
+
font-size: 20px;
|
2249 |
+
position: relative;
|
2250 |
+
top: 5px;
|
2251 |
+
margin-left: 10px;
|
2252 |
+
visibility: hidden; }
|
2253 |
+
#admin-editor-lp_quiz .lp-box-data-head .status:before {
|
2254 |
+
content: "\f463"; }
|
2255 |
+
#admin-editor-lp_quiz .lp-box-data-head .status.loading {
|
2256 |
+
visibility: visible;
|
2257 |
+
animation: rotation 2s infinite linear;
|
2258 |
+
display: inline-block; }
|
2259 |
+
#admin-editor-lp_quiz .lp-box-data-head .collapse-list-questions {
|
2260 |
+
font-family: Dashicons;
|
2261 |
+
position: absolute;
|
2262 |
+
top: 0;
|
2263 |
+
right: 0;
|
2264 |
+
bottom: 0;
|
2265 |
+
font-size: 30px;
|
2266 |
+
display: flex;
|
2267 |
+
justify-content: center;
|
2268 |
+
align-items: center;
|
2269 |
+
cursor: pointer;
|
2270 |
+
width: 40px;
|
2271 |
+
height: 46px;
|
2272 |
+
color: #999; }
|
2273 |
|
2274 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions {
|
2275 |
color: #777;
|
2280 |
text-align: center; }
|
2281 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > * {
|
2282 |
width: 100%;
|
2283 |
+
padding: 12px 10px; }
|
2284 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .sort {
|
2285 |
+
flex: 0 0 15px;
|
|
|
2286 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
2287 |
visibility: hidden;
|
2288 |
+
position: relative;
|
2289 |
+
font-size: 18px;
|
2290 |
+
color: #d5dce0; }
|
|
|
|
|
|
|
|
|
|
|
|
|
2291 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .sort:hover {
|
2292 |
+
color: #0085ba; }
|
2293 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .order {
|
2294 |
+
flex: 0 0 30px;
|
2295 |
+
text-align: right;
|
2296 |
+
font-weight: bold;
|
2297 |
+
font-size: 15px;
|
2298 |
+
padding: 12px 0; }
|
2299 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .order:after {
|
2300 |
+
content: '.'; }
|
2301 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .type {
|
2302 |
width: 150px; }
|
2303 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .actions {
|
2304 |
width: 300px; }
|
2305 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row > .name {
|
2306 |
+
padding-left: 5px; }
|
2307 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row:hover > .sort {
|
2308 |
visibility: visible; }
|
2309 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .table-row .actions .lp-box-data-actions {
|
2310 |
+
text-align: right !important; }
|
2311 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header {
|
2312 |
+
border-bottom: 1px solid #ddd;
|
2313 |
+
display: none; }
|
2314 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header .table-row > * {
|
2315 |
+
font-weight: bold; }
|
2316 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header .table-row > .order:after {
|
2317 |
+
content: ''; }
|
2318 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .header .table-row > .actions {
|
2319 |
+
padding: 12px 0; }
|
2320 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-actions .name input {
|
2321 |
width: 100%;
|
2322 |
font-size: 14px;
|
2326 |
font-weight: normal;
|
2327 |
color: #777;
|
2328 |
padding: 0; }
|
|
|
|
|
2329 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings {
|
2330 |
border: 1px solid #ddd;
|
2331 |
border-left: none;
|
2334 |
padding: 20px; }
|
2335 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options {
|
2336 |
border: 1px solid #ddd; }
|
2337 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .sort {
|
2338 |
+
width: 12px;
|
2339 |
+
padding: 8px 5px; }
|
2340 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .answer-text {
|
2341 |
+
padding-left: 5px;
|
2342 |
width: calc(100% - 100px); }
|
2343 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .order {
|
2344 |
+
width: 30px;
|
2345 |
+
text-align: right;
|
2346 |
+
padding: 0; }
|
2347 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .answer-correct {
|
2348 |
+
width: 65px;
|
2349 |
+
text-align: center; }
|
2350 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .actions {
|
2351 |
+
padding: 0;
|
2352 |
+
text-align: right; }
|
2353 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options .actions .lp-toolbar-btn {
|
2354 |
+
height: 42px; }
|
2355 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr {
|
2356 |
background: #fff;
|
2357 |
+
border: 1px solid #DDD;
|
2358 |
+
position: relative; }
|
2359 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr:nth-child(2n) {
|
2360 |
background: #f4fcff; }
|
2361 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td {
|
2364 |
position: static;
|
2365 |
border: none; }
|
2366 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.sort {
|
2367 |
+
cursor: url("../../images/openhand.cur") 7 5, default;
|
2368 |
+
width: 12px;
|
2369 |
+
position: relative; }
|
2370 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.order {
|
2371 |
+
font-weight: bold; }
|
2372 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.answer-text {
|
2373 |
+
padding-left: 5px; }
|
2374 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr td.answer-correct {
|
2375 |
text-align: center; }
|
2376 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr .svg-icon {
|
2377 |
+
height: 18px;
|
2378 |
+
vertical-align: middle;
|
2379 |
+
visibility: hidden;
|
2380 |
+
fill: #d5dce0; }
|
2381 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr:hover .svg-icon {
|
2382 |
+
visibility: visible; }
|
2383 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr:hover .sort:hover .svg-icon {
|
2384 |
+
fill: #0085ba; }
|
2385 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.ui-sortable-placeholder {
|
2386 |
+
visibility: visible !important; }
|
2387 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.ui-sortable-placeholder td {
|
2388 |
+
height: 43px;
|
2389 |
+
background: #bdf4fe !important; }
|
2390 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.ui-sortable-helper {
|
2391 |
+
border-left: none;
|
2392 |
+
border-right: none; }
|
2393 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.ui-sortable-helper td {
|
2394 |
+
border-bottom: 1px solid #DDD; }
|
2395 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.ui-sortable-helper td.sort {
|
2396 |
+
border-left: 0; }
|
2397 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.empty-option .sort i {
|
2398 |
+
display: none; }
|
2399 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.empty-option .sort:before {
|
2400 |
+
font-family: Dashicons;
|
2401 |
+
content: "\f463";
|
2402 |
+
display: inline-block;
|
2403 |
+
font-size: 18px;
|
2404 |
+
position: absolute;
|
2405 |
+
left: 4px;
|
2406 |
+
top: 12px;
|
2407 |
+
-webkit-animation: rotating4 2s linear infinite;
|
2408 |
+
-moz-animation: rotating4 2s linear infinite;
|
2409 |
+
-ms-animation: rotating4 2s linear infinite;
|
2410 |
+
-o-animation: rotating4 2s linear infinite;
|
2411 |
+
animation: rotating4 2s linear infinite; }
|
2412 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.empty-option td {
|
2413 |
+
position: relative; }
|
2414 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody tr.empty-option td:after {
|
2415 |
+
content: '';
|
2416 |
+
top: 0;
|
2417 |
+
left: 0;
|
2418 |
+
right: 1px;
|
2419 |
+
bottom: 0;
|
2420 |
+
background: #FFF;
|
2421 |
+
position: absolute;
|
2422 |
+
opacity: 0.5; }
|
2423 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-settings .quiz-question-data table.lp-list-options tbody .answer-text input {
|
2424 |
width: 100%;
|
2425 |
font-size: 14px;
|
2426 |
border: none;
|
2434 |
border-bottom: 1px solid #f1f1f1; }
|
2435 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item:nth-child(2n+1) {
|
2436 |
background: #f4fcff; }
|
2437 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.ui-sortable-helper {
|
2438 |
+
border-top: 1px solid #f1f1f1; }
|
2439 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.ui-sortable-placeholder {
|
2440 |
+
visibility: visible !important;
|
2441 |
+
background: #bdf4fe !important;
|
2442 |
+
display: block;
|
2443 |
+
border-color: #bdf4fe !important; }
|
2444 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question, #admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.updating {
|
2445 |
+
position: relative; }
|
2446 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question .question-actions .sort, #admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.updating .question-actions .sort {
|
2447 |
+
visibility: visible; }
|
2448 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question .question-actions .sort .fa, #admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.updating .question-actions .sort .fa {
|
2449 |
+
display: none; }
|
2450 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question .question-actions .sort:after, #admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.updating .question-actions .sort:after {
|
2451 |
+
font-family: Dashicons;
|
2452 |
+
content: "\f463";
|
2453 |
+
font-size: 20px;
|
2454 |
+
display: inline-block;
|
2455 |
+
position: absolute;
|
2456 |
+
left: 5px;
|
2457 |
+
-webkit-animation: rotating4 2s linear infinite;
|
2458 |
+
-moz-animation: rotating4 2s linear infinite;
|
2459 |
+
-ms-animation: rotating4 2s linear infinite;
|
2460 |
+
-o-animation: rotating4 2s linear infinite;
|
2461 |
+
animation: rotating4 2s linear infinite; }
|
2462 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question:after, #admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.updating:after {
|
2463 |
+
content: '';
|
2464 |
+
position: absolute;
|
2465 |
+
top: 0;
|
2466 |
+
left: 0;
|
2467 |
+
right: 0;
|
2468 |
+
bottom: 0;
|
2469 |
+
background: #FFF;
|
2470 |
+
opacity: 0.5; }
|
2471 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item.empty-question .question-settings {
|
2472 |
+
display: none; }
|
2473 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .cell {
|
2474 |
padding: 10px; }
|
2475 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-actions .name input {
|
2524 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings {
|
2525 |
background: #fff; }
|
2526 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options {
|
2527 |
+
text-align: left;
|
2528 |
+
padding-left: 0; }
|
2529 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .inside {
|
2530 |
margin: 0;
|
2531 |
padding: 0; }
|
2534 |
margin: 0; }
|
2535 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .inside .rwmb-meta-box .rwmb-field:nth-child(2n+1) {
|
2536 |
background: #f4fcff; }
|
2537 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .postbox .hndle {
|
2538 |
+
cursor: default; }
|
2539 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .postbox .toggle {
|
2540 |
+
float: right;
|
2541 |
+
width: 36px;
|
2542 |
+
height: 36px;
|
2543 |
+
position: absolute;
|
2544 |
+
top: 0;
|
2545 |
+
right: 0;
|
2546 |
+
line-height: 36px;
|
2547 |
+
text-align: center; }
|
2548 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings .quiz-question-options .postbox .toggle:after {
|
2549 |
+
font-family: Dashicons;
|
2550 |
+
content: "\f460";
|
2551 |
+
font-size: 18px; }
|
2552 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings.closed .quiz-question-options {
|
2553 |
+
width: 38px; }
|
2554 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings.closed .postbox {
|
2555 |
+
min-width: 34px;
|
2556 |
+
height: 34px;
|
2557 |
+
line-height: 42px;
|
2558 |
+
text-align: center; }
|
2559 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings.closed .postbox .hndle {
|
2560 |
+
display: none; }
|
2561 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .main .question-item .question-settings.closed .postbox .toggle:after {
|
2562 |
+
content: "\f132"; }
|
2563 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer {
|
2564 |
+
border-top: 1px solid #DDD;
|
2565 |
+
margin-top: -1px; }
|
2566 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .order {
|
2567 |
+
line-height: 28px; }
|
2568 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row {
|
2569 |
+
text-align: left; }
|
2570 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title {
|
2571 |
position: relative;
|
2572 |
display: inline-block;
|
2573 |
min-width: 500px; }
|
2574 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title input {
|
2575 |
+
border: 0;
|
2576 |
width: 100%;
|
2577 |
margin: 0;
|
2578 |
+
padding: 6px 0px;
|
2579 |
-webkit-box-shadow: none;
|
2580 |
-moz-box-shadow: none;
|
2581 |
box-shadow: none;
|
2588 |
box-shadow: none; }
|
2589 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title input:focus {
|
2590 |
border-color: #DDD; }
|
2591 |
+
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .title input::placeholder {
|
2592 |
+
color: #999;
|
2593 |
+
font-style: italic;
|
2594 |
+
border-bottom: 1px solid #DDD;
|
2595 |
+
display: inline-block; }
|
2596 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .footer .table-row .add-new-question .add-new {
|
2597 |
display: inline;
|
2598 |
position: relative; }
|
2636 |
#admin-editor-lp_question {
|
2637 |
background: #fff; }
|
2638 |
#admin-editor-lp_question .lp-box-data-head {
|
2639 |
+
padding: 0 10px; }
|
2640 |
#admin-editor-lp_question .lp-box-data-head .heading {
|
2641 |
+
float: left;
|
2642 |
+
padding: 12px 10px; }
|
2643 |
+
#admin-editor-lp_question .lp-box-data-head .heading .section-item-counts {
|
2644 |
+
right: 50px; }
|
2645 |
+
#admin-editor-lp_question .lp-box-data-head .heading .section-item-counts span {
|
2646 |
+
background: #F5F5F5;
|
2647 |
+
padding: 0 9px;
|
2648 |
+
color: #00b9ff;
|
2649 |
+
margin-top: 8px;
|
2650 |
+
display: inline-block;
|
2651 |
+
line-height: 30px;
|
2652 |
+
height: 30px;
|
2653 |
+
-webkit-border-radius: 3px;
|
2654 |
+
-moz-border-radius: 3px;
|
2655 |
+
border-radius: 3px;
|
2656 |
+
border-top-right-radius: 0;
|
2657 |
+
border-bottom-right-radius: 0; }
|
2658 |
+
#admin-editor-lp_question .lp-box-data-head .lp-toolbar-buttons {
|
2659 |
+
height: 46px; }
|
2660 |
#admin-editor-lp_question .lp-box-data-head .question-actions {
|
2661 |
+
margin-right: 10px;
|
2662 |
+
height: 30px;
|
2663 |
+
background: #BBB;
|
2664 |
+
margin-top: 8px;
|
2665 |
+
-webkit-border-radius: 3px;
|
2666 |
+
-moz-border-radius: 3px;
|
2667 |
+
border-radius: 3px;
|
2668 |
+
border-top-left-radius: 0;
|
2669 |
+
border-bottom-left-radius: 0; }
|
2670 |
+
#admin-editor-lp_question .lp-box-data-head .question-actions .question-types a {
|
2671 |
+
color: #FFF; }
|
2672 |
#admin-editor-lp_question .lp-box-data-head .question-actions .question-types ul {
|
2673 |
position: absolute;
|
2674 |
top: 100%;
|
2686 |
display: block;
|
2687 |
white-space: nowrap;
|
2688 |
text-decoration: none;
|
2689 |
+
padding: 5px;
|
2690 |
font-size: 12px;
|
2691 |
text-align: right;
|
2692 |
color: #0073aa;
|
2693 |
+
min-width: 100px; }
|
2694 |
#admin-editor-lp_question .lp-box-data-head .question-actions .question-types ul:hover {
|
2695 |
display: block; }
|
2696 |
#admin-editor-lp_question .lp-box-data-head .question-actions:hover .question-types ul {
|
2708 |
padding: 15px;
|
2709 |
background: #F5F5F5;
|
2710 |
border-bottom: 1px solid #DDD; }
|
2711 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .sort, #admin-editor-lp_question .lp-box-data-content table.list-question-answers .order, #admin-editor-lp_question .lp-box-data-content table.list-question-answers .actions {
|
2712 |
+
width: 10px; }
|
2713 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .sort {
|
2714 |
+
padding: 0 10px; }
|
2715 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .order {
|
2716 |
+
text-align: right;
|
2717 |
+
padding: 0;
|
2718 |
+
width: 30px;
|
2719 |
+
font-weight: bold; }
|
2720 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .answer-correct {
|
2721 |
+
width: 65px;
|
2722 |
+
text-align: center; }
|
2723 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .answer-text {
|
2724 |
+
padding-left: 5px; }
|
2725 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers .actions {
|
2726 |
+
padding-right: 0;
|
2727 |
+
text-align: right; }
|
2728 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr {
|
2729 |
background: #f4fcff;
|
2730 |
color: #777; }
|
2731 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr:nth-child(2n) {
|
2732 |
background: #fff; }
|
|
|
|
|
2733 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.sort {
|
2734 |
width: 15px;
|
2735 |
text-align: center;
|
2736 |
font-size: 18px;
|
2737 |
+
cursor: url("../../images/openhand.cur") 7 5, default;
|
2738 |
+
padding: 0; }
|
2739 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.sort .svg-icon {
|
2740 |
+
visibility: hidden;
|
2741 |
+
fill: #d5dce0;
|
2742 |
+
height: 18px;
|
2743 |
+
vertical-align: middle; }
|
2744 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.sort:hover .svg-icon {
|
2745 |
+
fill: #0085ba; }
|
2746 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.order {
|
2747 |
+
font-size: 14px; }
|
2748 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.answer-text input {
|
2749 |
width: 100%;
|
2750 |
font-size: 14px;
|
2754 |
font-weight: normal;
|
2755 |
color: #777;
|
2756 |
padding: 0; }
|
|
|
|
|
|
|
|
|
2757 |
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr td.lp-toolbar-buttons {
|
2758 |
z-index: auto; }
|
2759 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr:hover td.actions .remove-answer {
|
2760 |
+
visibility: visible;
|
2761 |
+
height: 42px; }
|
2762 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr:hover td.sort .svg-icon {
|
2763 |
+
visibility: visible; }
|
2764 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.ui-sortable-placeholder {
|
2765 |
+
visibility: visible !important; }
|
2766 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.ui-sortable-placeholder td {
|
2767 |
+
background: #bdf4fe !important;
|
2768 |
+
height: 43px; }
|
2769 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.ui-sortable-helper td {
|
2770 |
+
border-bottom: 1px solid #DDD; }
|
2771 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.ui-sortable-helper td.sort {
|
2772 |
+
border-left: 0; }
|
2773 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.new-option .svg-icon {
|
2774 |
+
display: none; }
|
2775 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.new-option td {
|
2776 |
+
position: relative; }
|
2777 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.new-option .sort:before {
|
2778 |
+
content: "\f463";
|
2779 |
+
font-family: Dashicons;
|
2780 |
+
position: absolute;
|
2781 |
+
left: 10px;
|
2782 |
+
top: 12px;
|
2783 |
+
display: inline-block;
|
2784 |
+
-webkit-animation: rotating4 2s linear infinite;
|
2785 |
+
-moz-animation: rotating4 2s linear infinite;
|
2786 |
+
-ms-animation: rotating4 2s linear infinite;
|
2787 |
+
-o-animation: rotating4 2s linear infinite;
|
2788 |
+
animation: rotating4 2s linear infinite; }
|
2789 |
+
#admin-editor-lp_question .lp-box-data-content table.list-question-answers tbody tr.new-option td:after {
|
2790 |
+
position: absolute;
|
2791 |
+
content: '';
|
2792 |
+
background: #FFF;
|
2793 |
+
top: 0;
|
2794 |
+
left: 0;
|
2795 |
+
right: 0;
|
2796 |
+
bottom: 0;
|
2797 |
+
opacity: 0.5; }
|
2798 |
#admin-editor-lp_question .lp-box-data-content .add-answer {
|
2799 |
margin: 15px 0 0 0; }
|
2800 |
|
2864 |
border-right: 1px solid #ddd;
|
2865 |
position: absolute;
|
2866 |
right: 0;
|
2867 |
+
height: 44px;
|
2868 |
top: 50%;
|
2869 |
+
margin-top: -22px; }
|
2870 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab.active:after {
|
2871 |
border: 1px solid #ddd;
|
2872 |
transform: rotate(45deg);
|
2884 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab.active a {
|
2885 |
color: #333; }
|
2886 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab a {
|
2887 |
+
padding: 0 20px;
|
2888 |
text-decoration: none;
|
2889 |
display: inline-block;
|
2890 |
+
font-weight: 600;
|
2891 |
+
height: 44px;
|
2892 |
+
line-height: 44px; }
|
2893 |
#lp-modal-choose-items .lp-choose-items .header .tabs .tab a:focus {
|
2894 |
box-shadow: none; }
|
2895 |
#lp-modal-choose-items .lp-choose-items .header .close {
|
2899 |
right: 0;
|
2900 |
cursor: pointer;
|
2901 |
font-size: 1em;
|
2902 |
+
padding: 12px;
|
2903 |
+
z-index: 30; }
|
2904 |
#lp-modal-choose-items .lp-choose-items .main {
|
2905 |
padding: 20px;
|
2906 |
position: relative;
|
2907 |
+
overflow: hidden;
|
2908 |
+
border-bottom: 1px solid #DDD; }
|
2909 |
#lp-modal-choose-items .lp-choose-items .main .section-item {
|
2910 |
cursor: pointer;
|
2911 |
transition: color 200ms ease-out;
|
2921 |
#lp-modal-choose-items .lp-choose-items .main .search {
|
2922 |
margin-bottom: 20px;
|
2923 |
background: transparent; }
|
2924 |
+
#lp-modal-choose-items .lp-choose-items .main .search input.modal-search-input {
|
2925 |
width: 100%;
|
2926 |
font-size: 1.2em;
|
2927 |
+
line-height: 1.5;
|
2928 |
+
padding: 10px 14px; }
|
2929 |
#lp-modal-choose-items .lp-choose-items .main .list-items {
|
2930 |
min-height: 260px;
|
2931 |
margin: 0; }
|
2945 |
z-index: 2;
|
2946 |
padding: 20px;
|
2947 |
transform: translate(100%, 0);
|
2948 |
+
max-height: 420px;
|
2949 |
overflow: auto; }
|
2950 |
#lp-modal-choose-items .lp-choose-items .lp-added-items-preview.show {
|
2951 |
transform: translate(0, 0); }
|
2956 |
#lp-modal-choose-items .lp-choose-items .footer {
|
2957 |
padding: 20px; }
|
2958 |
|
2959 |
+
body.moving {
|
2960 |
+
cursor: url("../../images/closedhand.cur") 7 5, default !important; }
|
2961 |
+
body.moving .section-item .drag {
|
2962 |
+
cursor: url("../../images/closedhand.cur") 7 5, default !important; }
|
2963 |
+
|
2964 |
@media screen and (max-width: 900px) {
|
2965 |
#admin-editor-lp_quiz .lp-box-data-content .lp-list-questions .question-settings.table-row {
|
2966 |
display: block;
|
3096 |
#adminmenu .update-plugins.lp-plugins-count {
|
3097 |
padding: 0 5px; }
|
3098 |
|
3099 |
+
.search-box input[name="post-search-author"],
|
3100 |
+
.search-box .select2-container {
|
3101 |
+
margin: 0;
|
3102 |
+
min-width: 200px;
|
3103 |
+
vertical-align: top; }
|
3104 |
+
|
3105 |
+
.learn-press-notice-assigned-item {
|
3106 |
+
color: #FF0000; }
|
3107 |
+
|
3108 |
.learnpress .actions {
|
3109 |
margin: 0; }
|
@@ -378,6 +378,8 @@
|
|
378 |
});
|
379 |
}
|
380 |
|
|
|
|
|
381 |
var $doc = $(document);
|
382 |
|
383 |
function _ready() {
|
378 |
});
|
379 |
}
|
380 |
|
381 |
+
|
382 |
+
|
383 |
var $doc = $(document);
|
384 |
|
385 |
function _ready() {
|
@@ -15,749 +15,853 @@
|
|
15 |
};
|
16 |
})(window);
|
17 |
|
|
|
18 |
|
19 |
-
/**
|
20 |
-
* I18n Store
|
21 |
-
*
|
22 |
-
* @since 3.0.0
|
23 |
-
*/
|
24 |
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
27 |
|
28 |
-
var
|
29 |
-
|
30 |
-
return state;
|
31 |
-
}
|
32 |
-
};
|
33 |
-
|
34 |
-
return {
|
35 |
-
namespaced: true,
|
36 |
-
state: state,
|
37 |
-
getters: getters
|
38 |
-
};
|
39 |
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
|
51 |
-
state.statusUpdateSectionItem = {};
|
52 |
|
53 |
-
|
54 |
-
var hiddenSections = state.hidden_sections;
|
55 |
-
var find = hiddenSections.find(function (sectionId) {
|
56 |
-
return parseInt(section.id) === parseInt(sectionId);
|
57 |
});
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
},
|
89 |
-
statusUpdateSectionItem: function (state) {
|
90 |
-
return state.statusUpdateSectionItem;
|
91 |
-
}
|
92 |
-
};
|
93 |
-
|
94 |
-
var mutations = {
|
95 |
-
'SORT_SECTION': function (state, orders) {
|
96 |
-
state.sections = state.sections.map(function (section) {
|
97 |
-
section.order = orders[section.id];
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
state.sections = sections;
|
104 |
-
},
|
105 |
-
'ADD_NEW_SECTION': function (state, section) {
|
106 |
-
section.open = true;
|
107 |
-
state.sections.push(section);
|
108 |
-
},
|
109 |
-
'REMOVE_SECTION': function (state, index) {
|
110 |
-
state.sections.splice(index, 1);
|
111 |
-
},
|
112 |
-
'REMOVE_SECTION_ITEM': function (state, payload) {
|
113 |
-
var section = state.sections.find(function (section) {
|
114 |
-
return (section.id === payload.section_id);
|
115 |
-
});
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
123 |
-
});
|
124 |
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
|
|
|
|
140 |
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
if (section.id === _section.id) {
|
146 |
-
state.sections[index].open = false;
|
147 |
}
|
148 |
-
|
|
|
|
|
149 |
|
150 |
-
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
},
|
159 |
|
160 |
-
|
161 |
-
state.sections = state.sections.map(function (_section) {
|
162 |
-
_section.open = true;
|
163 |
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
167 |
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
};
|
200 |
|
201 |
-
|
|
|
|
|
202 |
|
203 |
-
|
204 |
-
|
|
|
|
|
205 |
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
context.commit('CLOSE_ALL_SECTIONS');
|
210 |
-
}
|
211 |
|
212 |
-
|
213 |
-
|
214 |
-
hidden: context.getters['hiddenSections']
|
215 |
-
});
|
216 |
-
},
|
217 |
-
|
218 |
-
updateSectionsOrder: function (context, order) {
|
219 |
-
Vue.http.LPRequest({
|
220 |
-
type: 'sort-sections',
|
221 |
-
order: JSON.stringify(order)
|
222 |
-
}).then(
|
223 |
-
function (response) {
|
224 |
-
var result = response.body;
|
225 |
-
var order_sections = result.data;
|
226 |
-
context.commit('SORT_SECTION', order_sections);
|
227 |
-
},
|
228 |
-
function (error) {
|
229 |
-
console.error(error);
|
230 |
}
|
231 |
-
);
|
232 |
-
},
|
233 |
-
|
234 |
-
toggleSection: function (context, section) {
|
235 |
-
if (section.open) {
|
236 |
-
context.commit('CLOSE_SECTION', section);
|
237 |
-
} else {
|
238 |
-
context.commit('OPEN_SECTION', section);
|
239 |
-
}
|
240 |
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
updateSection: function (context, section) {
|
248 |
-
context.commit('UPDATE_SECTION_REQUEST', section.id);
|
249 |
-
|
250 |
-
Vue.http
|
251 |
-
.LPRequest({
|
252 |
-
type: 'update-section',
|
253 |
-
section: JSON.stringify(section)
|
254 |
-
})
|
255 |
-
.then(function () {
|
256 |
-
context.commit('UPDATE_SECTION_SUCCESS', section.id);
|
257 |
-
})
|
258 |
-
.catch(function () {
|
259 |
-
context.commit('UPDATE_SECTION_FAILURE', section.id);
|
260 |
-
})
|
261 |
-
},
|
262 |
-
|
263 |
-
removeSection: function (context, payload) {
|
264 |
-
context.commit('REMOVE_SECTION', payload.index);
|
265 |
-
|
266 |
-
Vue.http.LPRequest({
|
267 |
-
type: 'remove-section',
|
268 |
-
section_id: payload.section.id
|
269 |
-
}).then(
|
270 |
-
function (response) {
|
271 |
-
var result = response.body;
|
272 |
-
},
|
273 |
-
function (error) {
|
274 |
-
console.error(error);
|
275 |
-
}
|
276 |
-
);
|
277 |
-
},
|
278 |
|
279 |
-
|
|
|
|
|
280 |
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
var result = response.body;
|
287 |
|
288 |
-
|
289 |
-
|
290 |
-
|
|
|
|
|
|
|
|
|
|
|
291 |
}
|
292 |
-
},
|
293 |
-
function (error) {
|
294 |
-
console.error(error);
|
295 |
}
|
296 |
-
);
|
297 |
-
},
|
298 |
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
Vue.http.LPRequest({
|
303 |
-
type: 'update-section-item',
|
304 |
-
section_id: payload.section_id,
|
305 |
-
item: JSON.stringify(payload.item)
|
306 |
|
307 |
-
|
308 |
-
function (response) {
|
309 |
-
context.commit('UPDATE_SECTION_ITEM_SUCCESS', payload.item.id);
|
310 |
|
311 |
-
|
312 |
-
|
313 |
-
var item = result.data;
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
}
|
318 |
-
|
319 |
-
context.commit('UPDATE_SECTION_ITEM_FAILURE', payload.item.id);
|
320 |
-
console.error(error);
|
321 |
}
|
322 |
-
);
|
323 |
-
},
|
324 |
-
|
325 |
-
removeSectionItem: function (context, payload) {
|
326 |
-
context.commit('REMOVE_SECTION_ITEM', payload);
|
327 |
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
section_id: payload.section_id,
|
332 |
-
item_id: payload.item_id
|
333 |
});
|
334 |
-
|
335 |
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
.
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
Vue.http.LPRequest({
|
349 |
-
type: 'new-section-item',
|
350 |
-
section_id: payload.section_id,
|
351 |
-
item: JSON.stringify(payload.item)
|
352 |
-
}).then(
|
353 |
-
function (response) {
|
354 |
-
var result = response.body;
|
355 |
-
|
356 |
-
if (result.success) {
|
357 |
-
context.commit('UPDATE_SECTION_ITEMS', {section_id: payload.section_id, items: result.data});
|
358 |
}
|
359 |
-
|
360 |
-
|
361 |
-
console.error(error);
|
362 |
-
}
|
363 |
-
);
|
364 |
-
},
|
365 |
-
|
366 |
-
updateSectionItems: function (context, payload) {
|
367 |
-
|
368 |
-
Vue.http.LPRequest({
|
369 |
-
type: 'update-section-items',
|
370 |
-
section_id: payload.section_id,
|
371 |
-
items: JSON.stringify(payload.items)
|
372 |
-
}).then(
|
373 |
-
function (response) {
|
374 |
-
var result = response.body;
|
375 |
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
}
|
380 |
-
|
381 |
-
console.error(error);
|
382 |
}
|
383 |
-
);
|
384 |
-
}
|
385 |
-
};
|
386 |
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
state.status = '';
|
409 |
-
|
410 |
-
var getters = {
|
411 |
-
status: function (state) {
|
412 |
-
return state.status;
|
413 |
-
},
|
414 |
-
pagination: function (state) {
|
415 |
-
return state.pagination;
|
416 |
-
},
|
417 |
-
items: function (state, _getters) {
|
418 |
-
return state.items.map(function (item) {
|
419 |
-
var find = _getters.addedItems.find(function (_item) {
|
420 |
-
return item.id === _item.id;
|
421 |
});
|
422 |
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
});
|
427 |
-
},
|
428 |
-
addedItems: function (state) {
|
429 |
-
return state.addedItems;
|
430 |
-
},
|
431 |
-
isOpen: function (state) {
|
432 |
-
return state.open;
|
433 |
-
},
|
434 |
-
types: function (state) {
|
435 |
-
return state.types;
|
436 |
-
},
|
437 |
-
section: function () {
|
438 |
-
return state.sectionId;
|
439 |
-
}
|
440 |
-
};
|
441 |
|
442 |
-
|
443 |
-
|
444 |
-
state.open = !state.open;
|
445 |
-
},
|
446 |
-
'SET_SECTION': function (state, sectionId) {
|
447 |
-
state.sectionId = sectionId;
|
448 |
-
},
|
449 |
-
'SET_LIST_ITEMS': function (state, items) {
|
450 |
-
state.items = items;
|
451 |
-
},
|
452 |
-
'ADD_ITEM': function (state, item) {
|
453 |
-
state.addedItems.push(item);
|
454 |
-
},
|
455 |
-
'REMOVE_ADDED_ITEM': function (state, item) {
|
456 |
-
state.addedItems.forEach(function (_item, index) {
|
457 |
-
if (_item.id === item.id) {
|
458 |
-
state.addedItems.splice(index, 1);
|
459 |
-
}
|
460 |
-
});
|
461 |
-
},
|
462 |
-
'RESET': function (state) {
|
463 |
-
state.addedItems = [];
|
464 |
-
state.items = [];
|
465 |
-
},
|
466 |
-
'UPDATE_PAGINATION': function (state, pagination) {
|
467 |
-
state.pagination = pagination;
|
468 |
-
},
|
469 |
-
'SEARCH_ITEMS_REQUEST': function (state) {
|
470 |
-
state.status = 'loading';
|
471 |
-
},
|
472 |
-
'SEARCH_ITEMS_SUCCESS': function (state) {
|
473 |
-
state.status = 'successful';
|
474 |
-
},
|
475 |
-
'SEARCH_ITEMS_FAILURE': function (state) {
|
476 |
-
state.status = 'failed';
|
477 |
-
}
|
478 |
-
};
|
479 |
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
open: function (context, sectionId) {
|
487 |
-
context.commit('SET_SECTION', sectionId);
|
488 |
-
context.commit('RESET');
|
489 |
-
context.commit('TOGGLE');
|
490 |
-
},
|
491 |
-
|
492 |
-
searchItems: function (context, payload) {
|
493 |
-
context.commit('SEARCH_ITEMS_REQUEST');
|
494 |
-
|
495 |
-
Vue.http.LPRequest({
|
496 |
-
type: 'search-items',
|
497 |
-
query: payload.query,
|
498 |
-
item_type: payload.type,
|
499 |
-
page: payload.page,
|
500 |
-
exclude: JSON.stringify([])
|
501 |
-
}).then(
|
502 |
-
function (response) {
|
503 |
-
var result = response.body;
|
504 |
-
|
505 |
-
if (!result.success) {
|
506 |
-
return;
|
507 |
}
|
|
|
|
|
508 |
|
509 |
-
|
|
|
510 |
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
function (error) {
|
516 |
-
context.commit('SEARCH_ITEMS_FAILURE');
|
517 |
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
},
|
522 |
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
|
527 |
-
|
528 |
-
|
529 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
|
531 |
-
|
532 |
-
var items = context.getters.addedItems;
|
533 |
|
534 |
-
|
|
|
535 |
Vue.http.LPRequest({
|
536 |
-
type: '
|
537 |
-
section_id:
|
538 |
-
|
539 |
}).then(
|
540 |
function (response) {
|
541 |
var result = response.body;
|
542 |
|
543 |
if (result.success) {
|
544 |
-
context.commit('
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
|
|
|
|
549 |
items: items
|
550 |
-
}
|
551 |
}
|
552 |
},
|
553 |
function (error) {
|
554 |
console.error(error);
|
555 |
}
|
556 |
);
|
557 |
-
}
|
558 |
-
}
|
559 |
-
};
|
560 |
-
|
561 |
-
return {
|
562 |
-
namespaced: true,
|
563 |
-
state: state,
|
564 |
-
getters: getters,
|
565 |
-
mutations: mutations,
|
566 |
-
actions: actions
|
567 |
-
}
|
568 |
-
})(window, Vue, LP_Helpers, lp_course_editor);
|
569 |
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
state.heartbeat = true;
|
580 |
-
state.countCurrentRequest = 0;
|
581 |
-
|
582 |
-
var getters = {
|
583 |
-
heartbeat: function (state) {
|
584 |
-
return state.heartbeat;
|
585 |
-
},
|
586 |
-
action: function (state) {
|
587 |
-
return state.action;
|
588 |
-
},
|
589 |
-
id: function (state) {
|
590 |
-
return state.course_id;
|
591 |
-
},
|
592 |
-
autoDraft: function (state) {
|
593 |
-
return state.auto_draft;
|
594 |
-
},
|
595 |
-
disable_curriculum: function (state) {
|
596 |
-
return state.disable_curriculum;
|
597 |
-
},
|
598 |
-
status: function (state) {
|
599 |
-
return state.status || 'error';
|
600 |
-
},
|
601 |
-
currentRequest: function (state) {
|
602 |
-
return state.countCurrentRequest || 0;
|
603 |
-
},
|
604 |
-
urlAjax: function (state) {
|
605 |
-
return state.ajax;
|
606 |
-
},
|
607 |
-
nonce: function (state) {
|
608 |
-
return state.nonce;
|
609 |
-
}
|
610 |
-
};
|
611 |
-
|
612 |
-
var mutations = {
|
613 |
-
|
614 |
-
'UPDATE_HEART_BEAT': function (state, status) {
|
615 |
-
state.heartbeat = !!status;
|
616 |
-
},
|
617 |
-
|
618 |
-
'UPDATE_AUTO_DRAFT_STATUS': function (state, status) {
|
619 |
-
// check auto draft status
|
620 |
-
state.auto_draft = status;
|
621 |
-
},
|
622 |
|
623 |
-
|
624 |
-
|
625 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
626 |
|
627 |
-
|
628 |
-
state.countCurrentRequest++;
|
629 |
-
},
|
630 |
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
};
|
635 |
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
}
|
641 |
-
function (response) {
|
642 |
-
var result = response.body;
|
643 |
-
context.commit('UPDATE_HEART_BEAT', !!result.success);
|
644 |
-
},
|
645 |
-
function (error) {
|
646 |
-
context.commit('UPDATE_HEART_BEAT', false);
|
647 |
-
}
|
648 |
-
);
|
649 |
-
},
|
650 |
|
651 |
-
|
652 |
-
|
653 |
|
654 |
-
if (auto_draft) {
|
655 |
Vue.http.LPRequest({
|
656 |
-
type: '
|
657 |
-
|
658 |
-
|
|
|
|
|
|
|
|
|
659 |
var result = response.body;
|
660 |
|
661 |
if (!result.success) {
|
662 |
return;
|
663 |
}
|
664 |
|
665 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
666 |
}
|
667 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
668 |
}
|
669 |
-
}
|
670 |
|
671 |
-
|
672 |
-
context.commit('INCREASE_NUMBER_REQUEST');
|
673 |
-
context.commit('UPDATE_STATUS', 'loading');
|
674 |
|
675 |
-
|
676 |
-
|
677 |
-
}
|
678 |
-
},
|
679 |
|
680 |
-
|
681 |
-
|
|
|
|
|
682 |
|
683 |
-
|
684 |
-
|
685 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
686 |
}
|
687 |
-
}
|
688 |
-
};
|
689 |
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
|
|
|
|
|
|
701 |
|
702 |
-
|
|
|
703 |
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
emulateJSON: true,
|
719 |
-
params: {
|
720 |
-
namespace: 'LPCurriculumRequest'
|
721 |
}
|
722 |
-
}
|
723 |
-
};
|
724 |
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
return;
|
729 |
-
}
|
730 |
|
731 |
-
|
|
|
|
|
|
|
732 |
|
733 |
-
|
|
|
734 |
|
735 |
-
|
736 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
737 |
}
|
|
|
738 |
|
739 |
-
|
740 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
741 |
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
}
|
747 |
-
});
|
748 |
-
});
|
749 |
-
})(window, Vue, LP_Curriculum_Store);
|
750 |
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
761 |
});
|
762 |
-
});
|
763 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
};
|
16 |
})(window);
|
17 |
|
18 |
+
jQuery(function () {
|
19 |
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
+
/**
|
22 |
+
* I18n Store
|
23 |
+
*
|
24 |
+
* @since 3.0.0
|
25 |
+
*/
|
26 |
|
27 |
+
var LP_Curriculum_i18n_Store = (function (Vue, helpers, data) {
|
28 |
+
var state = helpers.cloneObject(data.i18n);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
+
var getters = {
|
31 |
+
all: function (state) {
|
32 |
+
return state;
|
33 |
+
}
|
34 |
+
};
|
35 |
+
|
36 |
+
return {
|
37 |
+
namespaced: true,
|
38 |
+
state: state,
|
39 |
+
getters: getters
|
40 |
+
};
|
41 |
+
|
42 |
+
})(Vue, LP_Helpers, lpAdminCourseEditorSettings);
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Sections Store.
|
46 |
+
*
|
47 |
+
* @since 3.0.0
|
48 |
+
*/
|
49 |
+
var LP_Curriculum_Sections_Store = (function (Vue, helpers, data) {
|
50 |
+
var state = helpers.cloneObject(data.sections);
|
51 |
+
|
52 |
+
state.statusUpdateSection = {};
|
53 |
+
state.statusUpdateSectionItem = {};
|
54 |
+
|
55 |
+
state.sections = state.sections.map(function (section) {
|
56 |
+
var hiddenSections = state.hidden_sections;
|
57 |
+
var find = hiddenSections.find(function (sectionId) {
|
58 |
+
return parseInt(section.id) === parseInt(sectionId);
|
59 |
+
});
|
60 |
|
61 |
+
section.open = !find;
|
|
|
62 |
|
63 |
+
return section;
|
|
|
|
|
|
|
64 |
});
|
65 |
|
66 |
+
var getters = {
|
67 |
+
sections: function (state) {
|
68 |
+
return state.sections || [];
|
69 |
+
},
|
70 |
+
urlEdit: function (state) {
|
71 |
+
return state.urlEdit;
|
72 |
+
},
|
73 |
+
hiddenSections: function (state) {
|
74 |
+
return state.sections
|
75 |
+
.filter(function (section) {
|
76 |
+
return !section.open;
|
77 |
+
})
|
78 |
+
.map(function (section) {
|
79 |
+
return parseInt(section.id);
|
80 |
+
});
|
81 |
+
},
|
82 |
+
isHiddenAllSections: function (state, getters) {
|
83 |
+
var sections = getters['sections'];
|
84 |
+
var hiddenSections = getters['hiddenSections'];
|
85 |
+
|
86 |
+
return hiddenSections.length === sections.length;
|
87 |
+
},
|
88 |
+
statusUpdateSection: function (state) {
|
89 |
+
return state.statusUpdateSection;
|
90 |
+
},
|
91 |
+
statusUpdateSectionItem: function (state) {
|
92 |
+
return state.statusUpdateSectionItem;
|
93 |
+
}
|
94 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
+
var mutations = {
|
97 |
+
'SORT_SECTION': function (state, orders) {
|
98 |
+
state.sections = state.sections.map(function (section) {
|
99 |
+
section.order = orders[section.id];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
+
return section;
|
102 |
+
});
|
103 |
+
},
|
104 |
+
'SET_SECTIONS': function (state, sections) {
|
105 |
+
state.sections = sections;
|
106 |
+
},
|
107 |
+
'ADD_NEW_SECTION': function (state, newSection) {
|
108 |
+
if (newSection.open === undefined) {
|
109 |
+
newSection.open = true;
|
110 |
+
}
|
111 |
+
var pos;
|
112 |
+
|
113 |
+
if (newSection.temp_id) {
|
114 |
+
console.log(newSection)
|
115 |
+
state.sections.map(function (section, i) {
|
116 |
+
console.log(section)
|
117 |
+
if (newSection.temp_id == section.id) {
|
118 |
+
pos = i;
|
119 |
+
return false;
|
120 |
+
}
|
121 |
+
});
|
122 |
}
|
|
|
123 |
|
124 |
+
if (pos !== undefined) {
|
125 |
+
Vue.set(state.sections, pos, newSection);
|
126 |
+
} else {
|
127 |
+
state.sections.push(newSection);
|
128 |
+
}
|
129 |
+
},
|
130 |
+
'ADD_EMPTY_SECTION': function (state, section) {
|
131 |
+
section.open = true;
|
132 |
+
state.sections.push(section);
|
133 |
+
},
|
134 |
+
'REMOVE_SECTION': function (state, index) {
|
135 |
+
state.sections.splice(index, 1);
|
136 |
+
},
|
137 |
+
'REMOVE_SECTION_ITEM': function (state, payload) {
|
138 |
+
|
139 |
+
var section = state.sections.find(function (section) {
|
140 |
+
return (section.id === payload.section_id);
|
141 |
+
});
|
142 |
|
143 |
+
var items = section.items || [],
|
144 |
+
item = payload.item,
|
145 |
+
index = -1;
|
146 |
+
items.forEach(function (it, i) {
|
147 |
+
if (it.id === item.id) {
|
148 |
+
index = i;
|
149 |
+
}
|
150 |
+
});
|
151 |
|
152 |
+
if (index !== -1) {
|
153 |
+
if (item.temp_id) {
|
154 |
+
items[index].id = item.temp_id;
|
155 |
+
} else {
|
156 |
+
items.splice(index, 1);
|
157 |
+
}
|
158 |
+
}
|
159 |
+
},
|
160 |
+
'UPDATE_SECTION_ITEMS': function (state, payload) {
|
161 |
+
var section = state.sections.find(function (section) {
|
162 |
+
return parseInt(section.id) === parseInt(payload.section_id);
|
163 |
+
});
|
164 |
|
165 |
+
if (!section) {
|
166 |
+
return;
|
|
|
|
|
167 |
}
|
168 |
+
section.items = payload.items;
|
169 |
+
},
|
170 |
+
'UPDATE_SECTION_ITEM': function (state, payload) {
|
171 |
|
172 |
+
},
|
173 |
|
174 |
+
'CLOSE_SECTION': function (state, section) {
|
175 |
+
state.sections.forEach(function (_section, index) {
|
176 |
+
if (section.id === _section.id) {
|
177 |
+
state.sections[index].open = false;
|
178 |
+
}
|
179 |
+
});
|
|
|
180 |
|
181 |
+
},
|
|
|
|
|
182 |
|
183 |
+
'OPEN_SECTION': function (state, section) {
|
184 |
+
state.sections.forEach(function (_section, index) {
|
185 |
+
if (section.id === _section.id) {
|
186 |
+
state.sections[index].open = true;
|
187 |
+
}
|
188 |
+
});
|
189 |
+
},
|
190 |
|
191 |
+
'OPEN_ALL_SECTIONS': function (state) {
|
192 |
+
state.sections = state.sections.map(function (_section) {
|
193 |
+
_section.open = true;
|
194 |
|
195 |
+
return _section;
|
196 |
+
});
|
197 |
+
},
|
198 |
|
199 |
+
'CLOSE_ALL_SECTIONS': function (state) {
|
200 |
+
state.sections = state.sections.map(function (_section) {
|
201 |
+
_section.open = false;
|
202 |
|
203 |
+
return _section;
|
204 |
+
});
|
205 |
+
},
|
206 |
|
207 |
+
'UPDATE_SECTION_REQUEST': function (state, sectionId) {
|
208 |
+
Vue.set(state.statusUpdateSection, sectionId, 'updating');
|
209 |
+
},
|
210 |
|
211 |
+
'UPDATE_SECTION_SUCCESS': function (state, sectionId) {
|
212 |
+
Vue.set(state.statusUpdateSection, sectionId, 'successful');
|
213 |
+
},
|
214 |
|
215 |
+
'UPDATE_SECTION_FAILURE': function (state, sectionId) {
|
216 |
+
Vue.set(state.statusUpdateSection, sectionId, 'failed');
|
217 |
+
},
|
218 |
|
219 |
+
'UPDATE_SECTION_ITEM_REQUEST': function (state, itemId) {
|
220 |
+
Vue.set(state.statusUpdateSectionItem, itemId, 'updating');
|
221 |
+
},
|
|
|
222 |
|
223 |
+
'UPDATE_SECTION_ITEM_SUCCESS': function (state, itemId) {
|
224 |
+
Vue.set(state.statusUpdateSectionItem, itemId, 'successful');
|
225 |
+
},
|
226 |
|
227 |
+
'UPDATE_SECTION_ITEM_FAILURE': function (state, itemId) {
|
228 |
+
Vue.set(state.statusUpdateSectionItem, itemId, 'failed');
|
229 |
+
},
|
230 |
+
'APPEND_EMPTY_ITEM_TO_SECTION': function (state, data) {
|
231 |
|
232 |
+
var section = state.sections.find(function (section) {
|
233 |
+
return parseInt(section.id) === parseInt(data.section_id);
|
234 |
+
});
|
|
|
|
|
235 |
|
236 |
+
if (!section) {
|
237 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
|
240 |
+
section.items.push({id: data.item.id, title: data.item.title, type: 'empty-item'});
|
241 |
+
},
|
242 |
+
'UPDATE_ITEM_SECTION_BY_ID': function (state, data) {
|
243 |
+
var section = state.sections.find(function (section) {
|
244 |
+
return parseInt(section.id) === parseInt(data.section_id);
|
245 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
|
247 |
+
if (!section) {
|
248 |
+
return;
|
249 |
+
}
|
250 |
|
251 |
+
for (var i = 0; i < section.items.length; i++) {
|
252 |
+
try {
|
253 |
+
if (!section.items[i]) {
|
254 |
+
continue;
|
255 |
+
}
|
|
|
256 |
|
257 |
+
var item_id = section.items[i].id;
|
258 |
+
if (item_id) {
|
259 |
+
if (data.items[item_id]) {
|
260 |
+
Vue.set(section.items, i, data.items[item_id])
|
261 |
+
}
|
262 |
+
}
|
263 |
+
} catch (ex) {
|
264 |
+
console.log(ex)
|
265 |
}
|
|
|
|
|
|
|
266 |
}
|
|
|
|
|
267 |
|
268 |
+
//section.items.push({id: data.item.id, title: data.item.title, type: 'empty-item'});
|
269 |
+
}
|
270 |
+
};
|
|
|
|
|
|
|
|
|
271 |
|
272 |
+
var actions = {
|
|
|
|
|
273 |
|
274 |
+
toggleAllSections: function (context) {
|
275 |
+
var hidden = context.getters['isHiddenAllSections'];
|
|
|
276 |
|
277 |
+
if (hidden) {
|
278 |
+
context.commit('OPEN_ALL_SECTIONS');
|
279 |
+
} else {
|
280 |
+
context.commit('CLOSE_ALL_SECTIONS');
|
|
|
|
|
281 |
}
|
|
|
|
|
|
|
|
|
|
|
282 |
|
283 |
+
Vue.http.LPRequest({
|
284 |
+
type: 'hidden-sections',
|
285 |
+
hidden: context.getters['hiddenSections']
|
|
|
|
|
286 |
});
|
287 |
+
},
|
288 |
|
289 |
+
updateSectionsOrder: function (context, order) {
|
290 |
+
Vue.http.LPRequest({
|
291 |
+
type: 'sort-sections',
|
292 |
+
order: JSON.stringify(order)
|
293 |
+
}).then(
|
294 |
+
function (response) {
|
295 |
+
var result = response.body;
|
296 |
+
var order_sections = result.data;
|
297 |
+
context.commit('SORT_SECTION', order_sections);
|
298 |
+
},
|
299 |
+
function (error) {
|
300 |
+
console.error(error);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
}
|
302 |
+
);
|
303 |
+
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
|
305 |
+
toggleSection: function (context, section) {
|
306 |
+
if (section.open) {
|
307 |
+
context.commit('CLOSE_SECTION', section);
|
308 |
+
} else {
|
309 |
+
context.commit('OPEN_SECTION', section);
|
|
|
310 |
}
|
|
|
|
|
|
|
311 |
|
312 |
+
Vue.http.LPRequest({
|
313 |
+
type: 'hidden-sections',
|
314 |
+
hidden: context.getters['hiddenSections']
|
315 |
+
});
|
316 |
+
},
|
317 |
+
|
318 |
+
updateSection: function (context, section) {
|
319 |
+
context.commit('UPDATE_SECTION_REQUEST', section.id);
|
320 |
+
|
321 |
+
Vue.http
|
322 |
+
.LPRequest({
|
323 |
+
type: 'update-section',
|
324 |
+
section: JSON.stringify(section)
|
325 |
+
})
|
326 |
+
.then(function () {
|
327 |
+
context.commit('UPDATE_SECTION_SUCCESS', section.id);
|
328 |
+
})
|
329 |
+
.catch(function () {
|
330 |
+
context.commit('UPDATE_SECTION_FAILURE', section.id);
|
331 |
+
})
|
332 |
+
},
|
333 |
+
|
334 |
+
removeSection: function (context, payload) {
|
335 |
+
context.commit('REMOVE_SECTION', payload.index);
|
336 |
|
337 |
+
Vue.http.LPRequest({
|
338 |
+
type: 'remove-section',
|
339 |
+
section_id: payload.section.id
|
340 |
+
}).then(
|
341 |
+
function (response) {
|
342 |
+
var result = response.body;
|
343 |
+
},
|
344 |
+
function (error) {
|
345 |
+
console.error(error);
|
346 |
+
}
|
347 |
+
);
|
348 |
+
},
|
349 |
|
350 |
+
newSection: function (context, name) {
|
351 |
+
var newSection = {
|
352 |
+
type: 'new-section',
|
353 |
+
section_name: name,
|
354 |
+
temp_id: LP.uniqueId()
|
355 |
+
}
|
356 |
+
context.commit('ADD_NEW_SECTION', {
|
357 |
+
id: newSection.temp_id,
|
358 |
+
items: [],
|
359 |
+
open: false,
|
360 |
+
title: newSection.section_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
});
|
362 |
|
363 |
+
Vue.http.LPRequest(newSection).then(
|
364 |
+
function (response) {
|
365 |
+
var result = response.body;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
|
367 |
+
if (result.success) {
|
368 |
+
var section = $.extend({}, result.data, {open: true});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
|
370 |
+
// update course section
|
371 |
+
context.commit('ADD_NEW_SECTION', section);
|
372 |
+
}
|
373 |
+
},
|
374 |
+
function (error) {
|
375 |
+
console.error(error);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
376 |
}
|
377 |
+
);
|
378 |
+
},
|
379 |
|
380 |
+
updateSectionItem: function (context, payload) {
|
381 |
+
context.commit('UPDATE_SECTION_ITEM_REQUEST', payload.item.id);
|
382 |
|
383 |
+
Vue.http.LPRequest({
|
384 |
+
type: 'update-section-item',
|
385 |
+
section_id: payload.section_id,
|
386 |
+
item: JSON.stringify(payload.item)
|
|
|
|
|
387 |
|
388 |
+
}).then(
|
389 |
+
function (response) {
|
390 |
+
context.commit('UPDATE_SECTION_ITEM_SUCCESS', payload.item.id);
|
|
|
391 |
|
392 |
+
var result = response.body;
|
393 |
+
if (result.success) {
|
394 |
+
var item = result.data;
|
395 |
|
396 |
+
context.commit('UPDATE_SECTION_ITEM', {section_id: payload.section_id, item: item});
|
397 |
+
}
|
398 |
+
},
|
399 |
+
function (error) {
|
400 |
+
context.commit('UPDATE_SECTION_ITEM_FAILURE', payload.item.id);
|
401 |
+
console.error(error);
|
402 |
+
}
|
403 |
+
);
|
404 |
+
},
|
405 |
+
|
406 |
+
removeSectionItem: function (context, payload) {
|
407 |
+
var id = payload.item.id;
|
408 |
+
context.commit('REMOVE_SECTION_ITEM', payload);
|
409 |
+
payload.item.temp_id = 0;
|
410 |
+
Vue.http
|
411 |
+
.LPRequest({
|
412 |
+
type: 'remove-section-item',
|
413 |
+
section_id: payload.section_id,
|
414 |
+
item_id: id
|
415 |
+
}).then(
|
416 |
+
function () {
|
417 |
+
context.commit('REMOVE_SECTION_ITEM', payload);
|
418 |
+
}
|
419 |
+
);
|
420 |
+
},
|
421 |
+
|
422 |
+
deleteSectionItem: function (context, payload) {
|
423 |
+
var id = payload.item.id;
|
424 |
+
context.commit('REMOVE_SECTION_ITEM', payload);
|
425 |
+
payload.item.temp_id = 0;
|
426 |
+
Vue.http
|
427 |
+
.LPRequest({
|
428 |
+
type: 'delete-section-item',
|
429 |
+
section_id: payload.section_id,
|
430 |
+
item_id: id
|
431 |
+
}).then(
|
432 |
+
function () {
|
433 |
+
context.commit('REMOVE_SECTION_ITEM', payload);
|
434 |
+
}
|
435 |
+
);
|
436 |
+
},
|
437 |
|
438 |
+
newSectionItem: function (context, payload) {
|
|
|
439 |
|
440 |
+
context.commit('APPEND_EMPTY_ITEM_TO_SECTION', payload)
|
441 |
+
//context.commit('UPDATE_SECTION_ITEMS', {section_id: payload.section_id, items: result.data});
|
442 |
Vue.http.LPRequest({
|
443 |
+
type: 'new-section-item',
|
444 |
+
section_id: payload.section_id,
|
445 |
+
item: JSON.stringify(payload.item)
|
446 |
}).then(
|
447 |
function (response) {
|
448 |
var result = response.body;
|
449 |
|
450 |
if (result.success) {
|
451 |
+
// context.commit('UPDATE_SECTION_ITEMS', {section_id: payload.section_id, items: result.data});
|
452 |
+
var items = {};
|
453 |
+
$.each(result.data, function (i, a) {
|
454 |
+
items[a.old_id ? a.old_id : a.id] = a;
|
455 |
+
});
|
456 |
+
context.commit('UPDATE_ITEM_SECTION_BY_ID', {
|
457 |
+
section_id: payload.section_id,
|
458 |
items: items
|
459 |
+
});
|
460 |
}
|
461 |
},
|
462 |
function (error) {
|
463 |
console.error(error);
|
464 |
}
|
465 |
);
|
466 |
+
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
|
468 |
+
updateSectionItems: function (context, payload) {
|
469 |
+
Vue.http.LPRequest({
|
470 |
+
type: 'update-section-items',
|
471 |
+
section_id: payload.section_id,
|
472 |
+
items: JSON.stringify(payload.items),
|
473 |
+
last_section: state.sections[state.sections.length - 1] === (payload.section_id)
|
474 |
+
}).then(
|
475 |
+
function (response) {
|
476 |
+
var result = response.body;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
|
478 |
+
if (result.success) {
|
479 |
+
// console.log(result);
|
480 |
+
}
|
481 |
+
},
|
482 |
+
function (error) {
|
483 |
+
console.error(error);
|
484 |
+
}
|
485 |
+
);
|
486 |
+
}
|
487 |
+
};
|
488 |
+
|
489 |
+
return {
|
490 |
+
namespaced: true,
|
491 |
+
state: state,
|
492 |
+
getters: getters,
|
493 |
+
mutations: mutations,
|
494 |
+
actions: actions
|
495 |
+
};
|
496 |
+
})(Vue, LP_Helpers, lpAdminCourseEditorSettings);
|
497 |
+
|
498 |
+
|
499 |
+
/**
|
500 |
+
* Choose Item Modal Store
|
501 |
+
*
|
502 |
+
* @since 3.0.0
|
503 |
+
*
|
504 |
+
* @type {{namespaced, state, getters, mutations, actions}}
|
505 |
+
*/
|
506 |
+
var LP_Choose_Items_Modal_Store = (function (exports, Vue, helpers, data) {
|
507 |
+
var state = helpers.cloneObject(data.chooseItems);
|
508 |
+
state.sectionId = false;
|
509 |
+
state.pagination = '';
|
510 |
+
state.status = '';
|
511 |
+
|
512 |
+
var getters = {
|
513 |
+
status: function (state) {
|
514 |
+
return state.status;
|
515 |
+
},
|
516 |
+
pagination: function (state) {
|
517 |
+
return state.pagination;
|
518 |
+
},
|
519 |
+
items: function (state, _getters) {
|
520 |
+
return state.items.map(function (item) {
|
521 |
+
var find = _getters.addedItems.find(function (_item) {
|
522 |
+
return item.id === _item.id;
|
523 |
+
});
|
524 |
+
|
525 |
+
item.added = !!find;
|
526 |
+
|
527 |
+
return item;
|
528 |
+
});
|
529 |
+
},
|
530 |
+
addedItems: function (state) {
|
531 |
+
return state.addedItems;
|
532 |
+
},
|
533 |
+
isOpen: function (state) {
|
534 |
+
return state.open;
|
535 |
+
},
|
536 |
+
types: function (state) {
|
537 |
+
return state.types;
|
538 |
+
},
|
539 |
+
section: function () {
|
540 |
+
return state.sectionId;
|
541 |
+
}
|
542 |
+
};
|
543 |
+
|
544 |
+
var mutations = {
|
545 |
+
'TOGGLE': function (state) {
|
546 |
+
state.open = !state.open;
|
547 |
+
},
|
548 |
+
'SET_SECTION': function (state, sectionId) {
|
549 |
+
state.sectionId = sectionId;
|
550 |
+
},
|
551 |
+
'SET_LIST_ITEMS': function (state, items) {
|
552 |
+
state.items = items;
|
553 |
+
},
|
554 |
+
'ADD_ITEM': function (state, item) {
|
555 |
+
state.addedItems.push(item);
|
556 |
+
},
|
557 |
+
'REMOVE_ADDED_ITEM': function (state, item) {
|
558 |
+
state.addedItems.forEach(function (_item, index) {
|
559 |
+
if (_item.id === item.id) {
|
560 |
+
state.addedItems.splice(index, 1);
|
561 |
+
}
|
562 |
+
});
|
563 |
+
},
|
564 |
+
'RESET': function (state) {
|
565 |
+
state.addedItems = [];
|
566 |
+
state.items = [];
|
567 |
+
},
|
568 |
+
'UPDATE_PAGINATION': function (state, pagination) {
|
569 |
+
state.pagination = pagination;
|
570 |
+
},
|
571 |
+
'SEARCH_ITEMS_REQUEST': function (state) {
|
572 |
+
state.status = 'loading';
|
573 |
+
},
|
574 |
+
'SEARCH_ITEMS_SUCCESS': function (state) {
|
575 |
+
state.status = 'successful';
|
576 |
+
},
|
577 |
+
'SEARCH_ITEMS_FAILURE': function (state) {
|
578 |
+
state.status = 'failed';
|
579 |
+
}
|
580 |
+
};
|
581 |
|
582 |
+
var actions = {
|
|
|
|
|
583 |
|
584 |
+
toggle: function (context) {
|
585 |
+
context.commit('TOGGLE');
|
586 |
+
},
|
|
|
587 |
|
588 |
+
open: function (context, sectionId) {
|
589 |
+
context.commit('SET_SECTION', sectionId);
|
590 |
+
context.commit('RESET');
|
591 |
+
context.commit('TOGGLE');
|
592 |
+
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
|
594 |
+
searchItems: function (context, payload) {
|
595 |
+
context.commit('SEARCH_ITEMS_REQUEST');
|
596 |
|
|
|
597 |
Vue.http.LPRequest({
|
598 |
+
type: 'search-items',
|
599 |
+
query: payload.query,
|
600 |
+
item_type: payload.type,
|
601 |
+
page: payload.page,
|
602 |
+
exclude: JSON.stringify([])
|
603 |
+
}).then(
|
604 |
+
function (response) {
|
605 |
var result = response.body;
|
606 |
|
607 |
if (!result.success) {
|
608 |
return;
|
609 |
}
|
610 |
|
611 |
+
var data = result.data;
|
612 |
+
|
613 |
+
context.commit('SET_LIST_ITEMS', data.items);
|
614 |
+
context.commit('UPDATE_PAGINATION', data.pagination);
|
615 |
+
context.commit('SEARCH_ITEMS_SUCCESS');
|
616 |
+
},
|
617 |
+
function (error) {
|
618 |
+
context.commit('SEARCH_ITEMS_FAILURE');
|
619 |
+
|
620 |
+
console.error(error);
|
621 |
}
|
622 |
+
);
|
623 |
+
},
|
624 |
+
|
625 |
+
addItem: function (context, item) {
|
626 |
+
context.commit('ADD_ITEM', item);
|
627 |
+
},
|
628 |
+
|
629 |
+
removeItem: function (context, index) {
|
630 |
+
context.commit('REMOVE_ADDED_ITEM', index);
|
631 |
+
},
|
632 |
+
|
633 |
+
addItemsToSection: function (context) {
|
634 |
+
var items = context.getters.addedItems;
|
635 |
+
|
636 |
+
if (items.length > 0) {
|
637 |
+
Vue.http.LPRequest({
|
638 |
+
type: 'add-items-to-section',
|
639 |
+
section_id: context.getters.section,
|
640 |
+
items: JSON.stringify(items)
|
641 |
+
}).then(
|
642 |
+
function (response) {
|
643 |
+
var result = response.body;
|
644 |
+
|
645 |
+
if (result.success) {
|
646 |
+
context.commit('TOGGLE');
|
647 |
+
|
648 |
+
var items = result.data;
|
649 |
+
context.commit('ss/UPDATE_SECTION_ITEMS', {
|
650 |
+
section_id: context.getters.section,
|
651 |
+
items: items
|
652 |
+
}, {root: true});
|
653 |
+
}
|
654 |
+
},
|
655 |
+
function (error) {
|
656 |
+
console.error(error);
|
657 |
+
}
|
658 |
+
);
|
659 |
+
}
|
660 |
+
}
|
661 |
+
};
|
662 |
+
|
663 |
+
return {
|
664 |
+
namespaced: true,
|
665 |
+
state: state,
|
666 |
+
getters: getters,
|
667 |
+
mutations: mutations,
|
668 |
+
actions: actions
|
669 |
+
}
|
670 |
+
})(window, Vue, LP_Helpers, lpAdminCourseEditorSettings);
|
671 |
+
|
672 |
+
/**
|
673 |
+
* Root Store
|
674 |
+
*
|
675 |
+
* @since 3.0.0
|
676 |
+
*/
|
677 |
+
(function (exports, Vue, Vuex, helpers, data) {
|
678 |
+
var state = helpers.cloneObject(data.root);
|
679 |
+
|
680 |
+
state.status = 'success';
|
681 |
+
state.heartbeat = true;
|
682 |
+
state.countCurrentRequest = 0;
|
683 |
+
|
684 |
+
var getters = {
|
685 |
+
heartbeat: function (state) {
|
686 |
+
return state.heartbeat;
|
687 |
+
},
|
688 |
+
action: function (state) {
|
689 |
+
return state.action;
|
690 |
+
},
|
691 |
+
id: function (state) {
|
692 |
+
return state.course_id;
|
693 |
+
},
|
694 |
+
autoDraft: function (state) {
|
695 |
+
return state.auto_draft;
|
696 |
+
},
|
697 |
+
disable_curriculum: function (state) {
|
698 |
+
return state.disable_curriculum;
|
699 |
+
},
|
700 |
+
status: function (state) {
|
701 |
+
return state.status || 'error';
|
702 |
+
},
|
703 |
+
currentRequest: function (state) {
|
704 |
+
return state.countCurrentRequest || 0;
|
705 |
+
},
|
706 |
+
urlAjax: function (state) {
|
707 |
+
return state.ajax;
|
708 |
+
},
|
709 |
+
nonce: function (state) {
|
710 |
+
return state.nonce;
|
711 |
}
|
712 |
+
};
|
713 |
|
714 |
+
var mutations = {
|
|
|
|
|
715 |
|
716 |
+
'UPDATE_HEART_BEAT': function (state, status) {
|
717 |
+
state.heartbeat = !!status;
|
718 |
+
},
|
|
|
719 |
|
720 |
+
'UPDATE_AUTO_DRAFT_STATUS': function (state, status) {
|
721 |
+
// check auto draft status
|
722 |
+
state.auto_draft = status;
|
723 |
+
},
|
724 |
|
725 |
+
'UPDATE_STATUS': function (state, status) {
|
726 |
+
state.status = status;
|
727 |
+
},
|
728 |
+
|
729 |
+
'INCREASE_NUMBER_REQUEST': function (state) {
|
730 |
+
state.countCurrentRequest++;
|
731 |
+
},
|
732 |
+
|
733 |
+
'DECREASE_NUMBER_REQUEST': function (state) {
|
734 |
+
state.countCurrentRequest--;
|
735 |
}
|
736 |
+
};
|
|
|
737 |
|
738 |
+
var actions = {
|
739 |
+
heartbeat: function (context) {
|
740 |
+
Vue.http.LPRequest({
|
741 |
+
type: 'heartbeat'
|
742 |
+
}).then(
|
743 |
+
function (response) {
|
744 |
+
var result = response.body;
|
745 |
+
context.commit('UPDATE_HEART_BEAT', !!result.success);
|
746 |
+
},
|
747 |
+
function (error) {
|
748 |
+
context.commit('UPDATE_HEART_BEAT', false);
|
749 |
+
}
|
750 |
+
);
|
751 |
+
},
|
752 |
|
753 |
+
draftCourse: function (context, payload) {
|
754 |
+
var auto_draft = context.getters['autoDraft'];
|
755 |
|
756 |
+
if (auto_draft) {
|
757 |
+
Vue.http.LPRequest({
|
758 |
+
type: 'draft-course',
|
759 |
+
course: JSON.stringify(payload)
|
760 |
+
}).then(function (response) {
|
761 |
+
var result = response.body;
|
762 |
+
|
763 |
+
if (!result.success) {
|
764 |
+
return;
|
765 |
+
}
|
766 |
+
|
767 |
+
context.commit('UPDATE_AUTO_DRAFT_STATUS', false);
|
768 |
+
}
|
769 |
+
)
|
|
|
|
|
|
|
770 |
}
|
771 |
+
},
|
|
|
772 |
|
773 |
+
newRequest: function (context) {
|
774 |
+
context.commit('INCREASE_NUMBER_REQUEST');
|
775 |
+
context.commit('UPDATE_STATUS', 'loading');
|
|
|
|
|
776 |
|
777 |
+
window.onbeforeunload = function () {
|
778 |
+
return '';
|
779 |
+
}
|
780 |
+
},
|
781 |
|
782 |
+
requestComplete: function (context, status) {
|
783 |
+
context.commit('DECREASE_NUMBER_REQUEST');
|
784 |
|
785 |
+
if (context.getters.currentRequest === 0) {
|
786 |
+
context.commit('UPDATE_STATUS', status);
|
787 |
+
window.onbeforeunload = null;
|
788 |
+
}
|
789 |
+
}
|
790 |
+
};
|
791 |
+
|
792 |
+
exports.LP_Curriculum_Store = new Vuex.Store({
|
793 |
+
state: state,
|
794 |
+
getters: getters,
|
795 |
+
mutations: mutations,
|
796 |
+
actions: actions,
|
797 |
+
modules: {
|
798 |
+
ci: LP_Choose_Items_Modal_Store,
|
799 |
+
i18n: LP_Curriculum_i18n_Store,
|
800 |
+
ss: LP_Curriculum_Sections_Store
|
801 |
}
|
802 |
+
});
|
803 |
|
804 |
+
})(window, Vue, Vuex, LP_Helpers, lpAdminCourseEditorSettings);
|
805 |
+
|
806 |
+
/**
|
807 |
+
* HTTP
|
808 |
+
*
|
809 |
+
* @since 3.0.0
|
810 |
+
*/
|
811 |
+
(function (exports, Vue, $store) {
|
812 |
+
Vue.http.LPRequest = function (payload) {
|
813 |
+
payload['id'] = $store.getters.id;
|
814 |
+
payload['nonce'] = $store.getters.nonce;
|
815 |
+
payload['lp-ajax'] = $store.getters.action;
|
816 |
+
|
817 |
+
return Vue.http.post($store.getters.urlAjax,
|
818 |
+
payload,
|
819 |
+
{
|
820 |
+
emulateJSON: true,
|
821 |
+
params: {
|
822 |
+
namespace: 'LPCurriculumRequest'
|
823 |
+
}
|
824 |
+
});
|
825 |
+
};
|
826 |
|
827 |
+
Vue.http.interceptors.push(function (request, next) {
|
828 |
+
if (request.params['namespace'] !== 'LPCurriculumRequest') {
|
829 |
+
next();
|
830 |
+
return;
|
831 |
}
|
|
|
|
|
|
|
832 |
|
833 |
+
$store.dispatch('newRequest');
|
834 |
+
|
835 |
+
next(function (response) {
|
836 |
+
|
837 |
+
if (!jQuery.isPlainObject(response.body)) {
|
838 |
+
response.body = LP.parseJSON(response.body);
|
839 |
+
}
|
840 |
+
|
841 |
+
var body = response.body;
|
842 |
+
var result = body.success || false;
|
843 |
+
|
844 |
+
if (result) {
|
845 |
+
$store.dispatch('requestComplete', 'success');
|
846 |
+
} else {
|
847 |
+
$store.dispatch('requestComplete', 'failed');
|
848 |
+
}
|
849 |
+
});
|
850 |
});
|
851 |
+
})(window, Vue, LP_Curriculum_Store);
|
852 |
+
|
853 |
+
/**
|
854 |
+
* Init app.
|
855 |
+
*
|
856 |
+
* @since 3.0.0
|
857 |
+
*/
|
858 |
+
(function ($, Vue, $store) {
|
859 |
+
$(document).ready(function () {
|
860 |
+
window.LP_Course_Editor = new Vue({
|
861 |
+
el: '#admin-editor-lp_course',
|
862 |
+
template: '<lp-course-editor></lp-course-editor>'
|
863 |
+
});
|
864 |
+
});
|
865 |
+
})(jQuery, Vue, LP_Curriculum_Store);
|
866 |
+
|
867 |
+
});
|
@@ -22,7 +22,8 @@
|
|
22 |
*/
|
23 |
(function (exports, Vue, Vuex, helpers, data) {
|
24 |
|
25 |
-
var state = helpers.cloneObject(data.root)
|
|
|
26 |
|
27 |
state.status = 'successful';
|
28 |
state.countCurrentRequest = 0;
|
@@ -72,6 +73,9 @@
|
|
72 |
},
|
73 |
state: function (state) {
|
74 |
return state;
|
|
|
|
|
|
|
75 |
}
|
76 |
};
|
77 |
|
@@ -94,6 +98,17 @@
|
|
94 |
state.answers = answers;
|
95 |
},
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
'UPDATE_ANSWERS': function (state, answers) {
|
98 |
state.answers = answers;
|
99 |
},
|
@@ -161,6 +176,8 @@
|
|
161 |
},
|
162 |
|
163 |
deleteAnswer: function (context, payload) {
|
|
|
|
|
164 |
Vue.http.LPRequest({
|
165 |
type: 'delete-answer',
|
166 |
answer_id: payload.id
|
@@ -176,7 +193,8 @@
|
|
176 |
})
|
177 |
},
|
178 |
|
179 |
-
newAnswer: function (context) {
|
|
|
180 |
Vue.http.LPRequest({
|
181 |
type: 'new-answer'
|
182 |
}).then(
|
22 |
*/
|
23 |
(function (exports, Vue, Vuex, helpers, data) {
|
24 |
|
25 |
+
var state = helpers.cloneObject(data.root),
|
26 |
+
i18n = helpers.cloneObject(data.i18n);
|
27 |
|
28 |
state.status = 'successful';
|
29 |
state.countCurrentRequest = 0;
|
73 |
},
|
74 |
state: function (state) {
|
75 |
return state;
|
76 |
+
},
|
77 |
+
i18n: function (state) {
|
78 |
+
return i18n;
|
79 |
}
|
80 |
};
|
81 |
|
98 |
state.answers = answers;
|
99 |
},
|
100 |
|
101 |
+
'DELETE_ANSWER': function (state, id) {
|
102 |
+
for (var i = 0, n = state.answers.length; i < n; i++) {
|
103 |
+
if (state.answers[i].question_answer_id == id) {
|
104 |
+
state.answers[i].question_answer_id = LP.uniqueId();
|
105 |
+
break;
|
106 |
+
}
|
107 |
+
}
|
108 |
+
},
|
109 |
+
'ADD_NEW_ANSWER': function (state, answer) {
|
110 |
+
state.answers.push(answer);
|
111 |
+
},
|
112 |
'UPDATE_ANSWERS': function (state, answers) {
|
113 |
state.answers = answers;
|
114 |
},
|
176 |
},
|
177 |
|
178 |
deleteAnswer: function (context, payload) {
|
179 |
+
|
180 |
+
context.commit('DELETE_ANSWER', payload.id);
|
181 |
Vue.http.LPRequest({
|
182 |
type: 'delete-answer',
|
183 |
answer_id: payload.id
|
193 |
})
|
194 |
},
|
195 |
|
196 |
+
newAnswer: function (context, data) {
|
197 |
+
context.commit('ADD_NEW_ANSWER', data.answer);
|
198 |
Vue.http.LPRequest({
|
199 |
type: 'new-answer'
|
200 |
}).then(
|
@@ -244,6 +244,9 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
244 |
externalComponent: function (state) {
|
245 |
return state.externalComponent || [];
|
246 |
},
|
|
|
|
|
|
|
247 |
hiddenQuestions: function (state) {
|
248 |
return state.questions
|
249 |
.filter(function (question) {
|
@@ -289,7 +292,17 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
289 |
'ADD_QUESTION_ANSWER': function (state, payload) {
|
290 |
state.questions = state.questions.map(function (question) {
|
291 |
if (question.id === payload.question_id) {
|
292 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
return question;
|
294 |
} else {
|
295 |
return question;
|
@@ -308,7 +321,19 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
308 |
state.questions = questions;
|
309 |
},
|
310 |
'ADD_NEW_QUESTION': function (state, question) {
|
311 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
|
313 |
var _last_child = $('.lp-list-questions .main > div:last-child');
|
314 |
if (_last_child.length) {
|
@@ -327,11 +352,14 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
327 |
});
|
328 |
},
|
329 |
'REMOVE_QUESTION': function (state, item) {
|
330 |
-
|
331 |
var questions = state.questions,
|
332 |
index = questions.indexOf(item);
|
333 |
|
334 |
-
|
|
|
|
|
|
|
|
|
335 |
},
|
336 |
'DELETE_QUESTION_ANSWER': function (state, payload) {
|
337 |
var question_id = payload.question_id,
|
@@ -399,6 +427,21 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
399 |
},
|
400 |
'UPDATE_QUESTION_ANSWER_FAIL': function (state, question_id) {
|
401 |
Vue.set(state.statusUpdateQuestionAnswer, question_id, 'failed');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
}
|
403 |
};
|
404 |
|
@@ -419,8 +462,16 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
419 |
})
|
420 |
},
|
421 |
|
422 |
-
|
|
|
|
|
|
|
|
|
423 |
|
|
|
|
|
|
|
|
|
424 |
Vue.http.LPRequest({
|
425 |
type: 'new-question',
|
426 |
question: JSON.stringify(payload.question),
|
@@ -498,6 +549,9 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
498 |
})
|
499 |
},
|
500 |
|
|
|
|
|
|
|
501 |
cloneQuestion: function (context, question) {
|
502 |
Vue.http.LPRequest({
|
503 |
type: 'clone-question',
|
@@ -520,15 +574,20 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
520 |
},
|
521 |
|
522 |
removeQuestion: function (context, question) {
|
|
|
|
|
|
|
523 |
|
524 |
Vue.http.LPRequest({
|
525 |
type: 'remove-question',
|
526 |
-
question_id:
|
527 |
}).then(
|
528 |
function (response) {
|
529 |
var result = response.body;
|
530 |
|
531 |
if (result.success) {
|
|
|
|
|
532 |
context.commit('REMOVE_QUESTION', question);
|
533 |
}
|
534 |
},
|
@@ -539,13 +598,17 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
539 |
},
|
540 |
|
541 |
deleteQuestion: function (context, question) {
|
542 |
-
|
|
|
|
|
543 |
Vue.http
|
544 |
.LPRequest({
|
545 |
type: 'delete-question',
|
546 |
question_id: question.id
|
547 |
})
|
548 |
.then(function () {
|
|
|
|
|
549 |
context.commit('REMOVE_QUESTION', question);
|
550 |
context.commit('UPDATE_QUESTION_SUCCESS', question.id);
|
551 |
})
|
@@ -632,6 +695,8 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
632 |
},
|
633 |
|
634 |
deleteQuestionAnswer: function (context, payload) {
|
|
|
|
|
635 |
context.commit('UPDATE_QUESTION_REQUEST', payload.question_id);
|
636 |
|
637 |
Vue.http.LPRequest({
|
@@ -645,7 +710,8 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
645 |
if (result.success) {
|
646 |
context.commit('DELETE_QUESTION_ANSWER', {
|
647 |
question_id: payload.question_id,
|
648 |
-
answer_id: payload.
|
|
|
649 |
});
|
650 |
context.commit('UPDATE_QUESTION_SUCCESS', payload.question_id);
|
651 |
}
|
@@ -657,24 +723,29 @@ var LP_List_Quiz_Questions_Store = (function (Vue, helpers, data, $) {
|
|
657 |
)
|
658 |
},
|
659 |
|
660 |
-
newQuestionAnswer: function (context,
|
|
|
|
|
661 |
context.commit('UPDATE_QUESTION_REQUEST', question_id);
|
662 |
-
|
|
|
|
|
|
|
663 |
Vue.http
|
664 |
.LPRequest({
|
665 |
type: 'new-question-answer',
|
666 |
-
question_id: question_id
|
|
|
667 |
})
|
668 |
.then(
|
669 |
function (response) {
|
670 |
-
|
671 |
var result = response.body;
|
672 |
-
|
673 |
if (result.success) {
|
674 |
var answer = result.data;
|
675 |
-
|
676 |
context.commit('ADD_QUESTION_ANSWER', {question_id: question_id, answer: answer});
|
677 |
context.commit('UPDATE_QUESTION_SUCCESS', question_id);
|
|
|
|
|
678 |
}
|
679 |
},
|
680 |
function (error) {
|
244 |
externalComponent: function (state) {
|
245 |
return state.externalComponent || [];
|
246 |
},
|
247 |
+
hiddenQuestionsSettings: function (state) {
|
248 |
+
return state.hidden_questions_settings || [];
|
249 |
+
},
|
250 |
hiddenQuestions: function (state) {
|
251 |
return state.questions
|
252 |
.filter(function (question) {
|
292 |
'ADD_QUESTION_ANSWER': function (state, payload) {
|
293 |
state.questions = state.questions.map(function (question) {
|
294 |
if (question.id === payload.question_id) {
|
295 |
+
var found = false;
|
296 |
+
if (payload.answer.temp_id) {
|
297 |
+
for (var i = 0, n = question.answers.length; i < n; i++) {
|
298 |
+
if (question.answers[i].question_answer_id == payload.answer.temp_id) {
|
299 |
+
found = true;
|
300 |
+
Vue.set(question.answers, i, payload.answer);
|
301 |
+
}
|
302 |
+
}
|
303 |
+
}
|
304 |
+
|
305 |
+
!found && question.answers.push(payload.answer);
|
306 |
return question;
|
307 |
} else {
|
308 |
return question;
|
321 |
state.questions = questions;
|
322 |
},
|
323 |
'ADD_NEW_QUESTION': function (state, question) {
|
324 |
+
var found = false;
|
325 |
+
if (question.temp_id) {
|
326 |
+
for (var i = 0, n = state.questions.length; i < n; i++) {
|
327 |
+
if (state.questions[i].id == question.temp_id) {
|
328 |
+
Vue.set(state.questions, i, question);
|
329 |
+
found = true;
|
330 |
+
break;
|
331 |
+
}
|
332 |
+
}
|
333 |
+
}
|
334 |
+
if (!found) {
|
335 |
+
state.questions.push(question);
|
336 |
+
}
|
337 |
|
338 |
var _last_child = $('.lp-list-questions .main > div:last-child');
|
339 |
if (_last_child.length) {
|
352 |
});
|
353 |
},
|
354 |
'REMOVE_QUESTION': function (state, item) {
|
|
|
355 |
var questions = state.questions,
|
356 |
index = questions.indexOf(item);
|
357 |
|
358 |
+
if (item.temp_id) {
|
359 |
+
state.questions[index].id = item.temp_id;
|
360 |
+
} else {
|
361 |
+
state.questions.splice(index, 1);
|
362 |
+
}
|
363 |
},
|
364 |
'DELETE_QUESTION_ANSWER': function (state, payload) {
|
365 |
var question_id = payload.question_id,
|
427 |
},
|
428 |
'UPDATE_QUESTION_ANSWER_FAIL': function (state, question_id) {
|
429 |
Vue.set(state.statusUpdateQuestionAnswer, question_id, 'failed');
|
430 |
+
},
|
431 |
+
'DELETE_ANSWER': function (state, data) {
|
432 |
+
state.questions.map(function (question, index) {
|
433 |
+
if (question.id == data.question_id) {
|
434 |
+
for (var i = 0, n = question.answers.length; i < n; i++) {
|
435 |
+
if (question.answers[i].question_answer_id == data.answer_id) {
|
436 |
+
question.answers[i].question_answer_id = data.temp_id;
|
437 |
+
//state.questions[index].answers.splice(i, 1);
|
438 |
+
break;
|
439 |
+
}
|
440 |
+
}
|
441 |
+
return false;
|
442 |
+
}
|
443 |
+
})
|
444 |
+
|
445 |
}
|
446 |
};
|
447 |
|
462 |
})
|
463 |
},
|
464 |
|
465 |
+
updateQuizQuestionsHidden: function (context, data) {
|
466 |
+
Vue.http.LPRequest($.extend({}, data, {
|
467 |
+
type: 'update-quiz-questions-hidden'
|
468 |
+
}));
|
469 |
+
},
|
470 |
|
471 |
+
newQuestion: function (context, payload) {
|
472 |
+
var newQuestion = JSON.parse(JSON.stringify(payload.question));
|
473 |
+
newQuestion.settings = {};
|
474 |
+
context.commit('ADD_NEW_QUESTION', newQuestion);
|
475 |
Vue.http.LPRequest({
|
476 |
type: 'new-question',
|
477 |
question: JSON.stringify(payload.question),
|
549 |
})
|
550 |
},
|
551 |
|
552 |
+
isHiddenQuestionsSettings: function (context, id) {
|
553 |
+
},
|
554 |
+
|
555 |
cloneQuestion: function (context, question) {
|
556 |
Vue.http.LPRequest({
|
557 |
type: 'clone-question',
|
574 |
},
|
575 |
|
576 |
removeQuestion: function (context, question) {
|
577 |
+
var question_id = question.id;
|
578 |
+
question.temp_id = LP.uniqueId();
|
579 |
+
context.commit('REMOVE_QUESTION', question);
|
580 |
|
581 |
Vue.http.LPRequest({
|
582 |
type: 'remove-question',
|
583 |
+
question_id: question_id
|
584 |
}).then(
|
585 |
function (response) {
|
586 |
var result = response.body;
|
587 |
|
588 |
if (result.success) {
|
589 |
+
question.id = question.temp_id;
|
590 |
+
question.temp_id = 0;
|
591 |
context.commit('REMOVE_QUESTION', question);
|
592 |
}
|
593 |
},
|
598 |
},
|
599 |
|
600 |
deleteQuestion: function (context, question) {
|
601 |
+
var question_id = question.id;
|
602 |
+
question.temp_id = LP.uniqueId();
|
603 |
+
context.commit('REMOVE_QUESTION', question);
|
604 |
Vue.http
|
605 |
.LPRequest({
|
606 |
type: 'delete-question',
|
607 |
question_id: question.id
|
608 |
})
|
609 |
.then(function () {
|
610 |
+
question.id = question.temp_id;
|
611 |
+
question.temp_id = 0;
|
612 |
context.commit('REMOVE_QUESTION', question);
|
613 |
context.commit('UPDATE_QUESTION_SUCCESS', question.id);
|
614 |
})
|
695 |
},
|
696 |
|
697 |
deleteQuestionAnswer: function (context, payload) {
|
698 |
+
payload.temp_id = LP.uniqueId();
|
699 |
+
context.commit('DELETE_ANSWER', payload);
|
700 |
context.commit('UPDATE_QUESTION_REQUEST', payload.question_id);
|
701 |
|
702 |
Vue.http.LPRequest({
|
710 |
if (result.success) {
|
711 |
context.commit('DELETE_QUESTION_ANSWER', {
|
712 |
question_id: payload.question_id,
|
713 |
+
answer_id: payload.temp_id
|
714 |
+
//answer_id: payload.answer_id
|
715 |
});
|
716 |
context.commit('UPDATE_QUESTION_SUCCESS', payload.question_id);
|
717 |
}
|
723 |
)
|
724 |
},
|
725 |
|
726 |
+
newQuestionAnswer: function (context, data) {
|
727 |
+
var temp_id = LP.uniqueId(),
|
728 |
+
question_id = data.question_id;
|
729 |
context.commit('UPDATE_QUESTION_REQUEST', question_id);
|
730 |
+
context.commit('ADD_QUESTION_ANSWER', {
|
731 |
+
question_id: question_id,
|
732 |
+
answer: {'text': LP_Quiz_Store.getters['i18n/all'].new_option, 'question_answer_id': temp_id}
|
733 |
+
});
|
734 |
Vue.http
|
735 |
.LPRequest({
|
736 |
type: 'new-question-answer',
|
737 |
+
question_id: question_id,
|
738 |
+
question_answer_id: temp_id
|
739 |
})
|
740 |
.then(
|
741 |
function (response) {
|
|
|
742 |
var result = response.body;
|
|
|
743 |
if (result.success) {
|
744 |
var answer = result.data;
|
|
|
745 |
context.commit('ADD_QUESTION_ANSWER', {question_id: question_id, answer: answer});
|
746 |
context.commit('UPDATE_QUESTION_SUCCESS', question_id);
|
747 |
+
|
748 |
+
data.success && setTimeout(function(){data.success.apply(data.context, [answer]);}, 300);
|
749 |
}
|
750 |
},
|
751 |
function (error) {
|
@@ -17,7 +17,7 @@
|
|
17 |
|
18 |
if (seconds > DAY_IN_SECONDS) {
|
19 |
var days = Math.ceil(seconds / DAY_IN_SECONDS);
|
20 |
-
str = days + ( days > 1 ? '
|
21 |
} else {
|
22 |
var hours = Math.floor(seconds / HOUR_IN_SECONDS),
|
23 |
minutes = 0;
|
17 |
|
18 |
if (seconds > DAY_IN_SECONDS) {
|
19 |
var days = Math.ceil(seconds / DAY_IN_SECONDS);
|
20 |
+
str = days + ( days > 1 ? ' days left' : ' day left' );
|
21 |
} else {
|
22 |
var hours = Math.floor(seconds / HOUR_IN_SECONDS),
|
23 |
minutes = 0;
|
@@ -85,7 +85,7 @@ if (typeof window.LP === 'undefined') {
|
|
85 |
return self;
|
86 |
};
|
87 |
|
88 |
-
this.callEvent = function (event,callbackArgs) {
|
89 |
if (!callbacks[event]) {
|
90 |
return;
|
91 |
}
|
@@ -667,7 +667,7 @@ if (typeof window.LP === 'undefined') {
|
|
667 |
return (type || "json") === "json" ? this.parseJSON(response) : response;
|
668 |
},
|
669 |
parseJSON: function (data) {
|
670 |
-
var m = (data+'').match(/<-- LP_AJAX_START -->(.*)<-- LP_AJAX_END -->/);
|
671 |
try {
|
672 |
if (m) {
|
673 |
data = $.parseJSON(m[1]);
|
@@ -1061,17 +1061,33 @@ if (typeof window.LP === 'undefined') {
|
|
1061 |
};
|
1062 |
|
1063 |
function QuickTip(el, options) {
|
1064 |
-
var $el = $(el)
|
1065 |
-
$tip = $('<div class="learn-press-tip-floating">' + $el.html() + '</div>'),
|
1066 |
-
t = null,
|
1067 |
-
closeInterval = 1000;
|
1068 |
|
1069 |
options = $.extend({
|
1070 |
event: 'hover',
|
1071 |
autoClose: true,
|
1072 |
-
single: true
|
|
|
|
|
|
|
1073 |
}, options, $el.data());
|
1074 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1075 |
if (options.autoClose === false) {
|
1076 |
$tip.append('<a class="close"></a>');
|
1077 |
$tip.on('click', '.close', function () {
|
@@ -1094,7 +1110,7 @@ if (typeof window.LP === 'undefined') {
|
|
1094 |
|
1095 |
$tip.css({
|
1096 |
top: pos.top - $tip.outerHeight() - 8,
|
1097 |
-
left: pos.left - $tip.outerWidth() / 2 +
|
1098 |
});
|
1099 |
}
|
1100 |
|
@@ -1109,14 +1125,17 @@ if (typeof window.LP === 'undefined') {
|
|
1109 |
function close() {
|
1110 |
closeInterval = 0;
|
1111 |
hide();
|
1112 |
-
closeInterval =
|
1113 |
}
|
1114 |
|
1115 |
function open() {
|
1116 |
show();
|
1117 |
}
|
1118 |
|
1119 |
-
|
|
|
|
|
|
|
1120 |
if (options.event === 'click') {
|
1121 |
$el.on('click', function (e) {
|
1122 |
e.stopPropagation();
|
85 |
return self;
|
86 |
};
|
87 |
|
88 |
+
this.callEvent = function (event, callbackArgs) {
|
89 |
if (!callbacks[event]) {
|
90 |
return;
|
91 |
}
|
667 |
return (type || "json") === "json" ? this.parseJSON(response) : response;
|
668 |
},
|
669 |
parseJSON: function (data) {
|
670 |
+
var m = (data + '').match(/<-- LP_AJAX_START -->(.*)<-- LP_AJAX_END -->/);
|
671 |
try {
|
672 |
if (m) {
|
673 |
data = $.parseJSON(m[1]);
|
1061 |
};
|
1062 |
|
1063 |
function QuickTip(el, options) {
|
1064 |
+
var $el = $(el);
|
|
|
|
|
|
|
1065 |
|
1066 |
options = $.extend({
|
1067 |
event: 'hover',
|
1068 |
autoClose: true,
|
1069 |
+
single: true,
|
1070 |
+
closeInterval: 1000,
|
1071 |
+
arrowOffset: null,
|
1072 |
+
tipClass: ''
|
1073 |
}, options, $el.data());
|
1074 |
|
1075 |
+
var content = $el.data('content-tip') || $el.html(),
|
1076 |
+
$tip = $('<div class="learn-press-tip-floating">' + content + '</div>'),
|
1077 |
+
t = null,
|
1078 |
+
closeInterval = 0,
|
1079 |
+
useData = false,
|
1080 |
+
arrowOffset = options.arrowOffset == 'el' ? $el.outerWidth() / 2 : 8;
|
1081 |
+
|
1082 |
+
$tip.addClass(options.tipClass);
|
1083 |
+
|
1084 |
+
if ($el.attr('data-content-tip')) {
|
1085 |
+
$el.removeAttr('data-content-tip');
|
1086 |
+
useData = true;
|
1087 |
+
}
|
1088 |
+
|
1089 |
+
closeInterval = options.closeInterval;
|
1090 |
+
|
1091 |
if (options.autoClose === false) {
|
1092 |
$tip.append('<a class="close"></a>');
|
1093 |
$tip.on('click', '.close', function () {
|
1110 |
|
1111 |
$tip.css({
|
1112 |
top: pos.top - $tip.outerHeight() - 8,
|
1113 |
+
left: pos.left - $tip.outerWidth() / 2 + arrowOffset
|
1114 |
});
|
1115 |
}
|
1116 |
|
1125 |
function close() {
|
1126 |
closeInterval = 0;
|
1127 |
hide();
|
1128 |
+
closeInterval = options.closeInterval;
|
1129 |
}
|
1130 |
|
1131 |
function open() {
|
1132 |
show();
|
1133 |
}
|
1134 |
|
1135 |
+
if (!useData) {
|
1136 |
+
$el.html('');
|
1137 |
+
}
|
1138 |
+
|
1139 |
if (options.event === 'click') {
|
1140 |
$el.on('click', function (e) {
|
1141 |
e.stopPropagation();
|
@@ -85,4 +85,22 @@
|
|
85 |
@mixin appearance($value) {
|
86 |
-webkit-appearance: $value;
|
87 |
-moz-appearance: $value;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
85 |
@mixin appearance($value) {
|
86 |
-webkit-appearance: $value;
|
87 |
-moz-appearance: $value;
|
88 |
+
}
|
89 |
+
|
90 |
+
@mixin placeholder-color($color) {
|
91 |
+
&::-webkit-input-placeholder {
|
92 |
+
color: $color;
|
93 |
+
}
|
94 |
+
&::-moz-placeholder {
|
95 |
+
color: $color;
|
96 |
+
}
|
97 |
+
&:-ms-input-placeholder {
|
98 |
+
color: $color;
|
99 |
+
}
|
100 |
+
&:-moz-placeholder {
|
101 |
+
color: $color;
|
102 |
+
}
|
103 |
+
&::placeholder{
|
104 |
+
color: $color;
|
105 |
+
}
|
106 |
}
|
@@ -1,6 +1,46 @@
|
|
1 |
/**
|
2 |
* General style for admin editor.
|
3 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
.lp-admin-editor {
|
5 |
background-color: #fff;
|
6 |
border: 1px solid #ddd;
|
@@ -23,7 +63,7 @@
|
|
23 |
|
24 |
.lp-course-curriculum {
|
25 |
.heading {
|
26 |
-
padding:
|
27 |
position: relative;
|
28 |
|
29 |
h4 {
|
@@ -75,22 +115,26 @@
|
|
75 |
|
76 |
.curriculum-sections {
|
77 |
margin: 0;
|
78 |
-
padding: 10px;
|
79 |
border-top: 1px solid #ddd;
|
80 |
}
|
81 |
|
82 |
.section {
|
83 |
border: 1px solid #e5e5e5;
|
84 |
-
margin-bottom: 10px;
|
85 |
opacity: 1;
|
86 |
background: #FFF;
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
&.new-section {
|
88 |
-
|
89 |
-
margin-bottom: 0;
|
90 |
form {
|
91 |
margin: 0;
|
92 |
}
|
93 |
-
|
94 |
.section-head {
|
95 |
background-color: #f4fcff;
|
96 |
.creatable {
|
@@ -103,6 +147,30 @@
|
|
103 |
}
|
104 |
}
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
&:hover {
|
108 |
.section-actions {
|
@@ -112,36 +180,22 @@
|
|
112 |
}
|
113 |
}
|
114 |
|
115 |
-
&.sortable-ghost {
|
116 |
-
opacity: 0.5;
|
117 |
-
}
|
118 |
-
|
119 |
-
&.open {
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
&.close {
|
124 |
.section-collapse {
|
125 |
}
|
126 |
}
|
127 |
|
128 |
-
&.updating {
|
129 |
-
.section-head {
|
130 |
-
background-color: #e6f2d0;
|
131 |
-
}
|
132 |
-
}
|
133 |
-
|
134 |
input {
|
135 |
background-color: transparent;
|
136 |
box-shadow: none;
|
137 |
-
|
138 |
&:focus {
|
139 |
box-shadow: none;
|
140 |
}
|
141 |
}
|
142 |
|
143 |
.section-head {
|
144 |
-
background-color: #f9f9f9;
|
|
|
145 |
padding: 3px;
|
146 |
position: relative;
|
147 |
transition: background 500ms ease-out;
|
@@ -241,7 +295,7 @@
|
|
241 |
font-size: 1.2em;
|
242 |
border: none;
|
243 |
line-height: 30px;
|
244 |
-
width: calc(100% -
|
245 |
padding-left: 0;
|
246 |
}
|
247 |
|
@@ -250,7 +304,8 @@
|
|
250 |
width: 100%;
|
251 |
color: #999;
|
252 |
font-style: italic;
|
253 |
-
|
|
|
254 |
&:focus {
|
255 |
color: #444;
|
256 |
}
|
@@ -279,18 +334,14 @@
|
|
279 |
display: flex;
|
280 |
justify-content: center;
|
281 |
align-items: center;
|
282 |
-
|
|
|
|
|
|
|
283 |
&:nth-child(2n+1) {
|
284 |
background-color: #f4fcff;
|
285 |
}
|
286 |
-
|
287 |
-
&.sortable-ghost {
|
288 |
-
opacity: 0.5;
|
289 |
-
}
|
290 |
-
|
291 |
&.updating {
|
292 |
-
background-color: #e6f2d0;
|
293 |
-
|
294 |
&:before {
|
295 |
position: absolute;
|
296 |
content: '';
|
@@ -307,13 +358,12 @@
|
|
307 |
}
|
308 |
|
309 |
.drag {
|
310 |
-
width: 18px;
|
311 |
height: 20px;
|
312 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
313 |
-
flex-shrink: 0;
|
314 |
visibility: hidden;
|
315 |
fill: #d5dce0;
|
316 |
padding-top: 3px;
|
|
|
317 |
&:hover {
|
318 |
fill: #0085ba;
|
319 |
}
|
@@ -361,12 +411,6 @@
|
|
361 |
.remove {
|
362 |
color: #a00;
|
363 |
}
|
364 |
-
|
365 |
-
.preview-item {
|
366 |
-
.dashicons-unlock {
|
367 |
-
//visibility: visible;
|
368 |
-
}
|
369 |
-
}
|
370 |
}
|
371 |
|
372 |
&:hover {
|
@@ -384,7 +428,6 @@
|
|
384 |
}
|
385 |
}
|
386 |
}
|
387 |
-
|
388 |
}
|
389 |
|
390 |
.new-section-item {
|
@@ -393,7 +436,9 @@
|
|
393 |
display: flex;
|
394 |
align-items: center;
|
395 |
transition: all 200ms ease-out;
|
396 |
-
|
|
|
|
|
397 |
.title {
|
398 |
display: inline-block;
|
399 |
margin: 0;
|
@@ -402,8 +447,6 @@
|
|
402 |
|
403 |
.types {
|
404 |
display: inline-block;
|
405 |
-
margin-left: 17px;
|
406 |
-
|
407 |
&:hover, &:focus {
|
408 |
background-color: #fff;
|
409 |
|
@@ -443,6 +486,11 @@
|
|
443 |
content: '\f330';
|
444 |
}
|
445 |
}
|
|
|
|
|
|
|
|
|
|
|
446 |
}
|
447 |
}
|
448 |
}
|
@@ -480,7 +528,6 @@
|
|
480 |
position: absolute;
|
481 |
top: 100%;
|
482 |
width: 165px;
|
483 |
-
padding: 2px 0;
|
484 |
right: 0;
|
485 |
background: #fdfeff;
|
486 |
margin: 0;
|
@@ -490,11 +537,13 @@
|
|
490 |
text-align: center;
|
491 |
li {
|
492 |
margin: 0;
|
493 |
-
padding: 8px;
|
494 |
border-bottom: 1px solid #eee;
|
|
|
495 |
a {
|
496 |
color: #0073aa;
|
497 |
text-decoration: none;
|
|
|
|
|
498 |
&.delete-permanently {
|
499 |
color: #d05d5d;
|
500 |
}
|
@@ -535,11 +584,34 @@
|
|
535 |
}
|
536 |
}
|
537 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
.icon {
|
539 |
-
width: 38px;
|
540 |
font-size: 20px;
|
541 |
color: #0085ba;
|
542 |
text-align: center;
|
|
|
543 |
&:before {
|
544 |
font-family: Dashicons;
|
545 |
}
|
@@ -582,543 +654,31 @@
|
|
582 |
}
|
583 |
}
|
584 |
}
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
*/
|
591 |
-
#admin-editor-lp_quiz {
|
592 |
-
|
593 |
-
.lp-box-data-head {
|
594 |
-
.status {
|
595 |
-
font-family: Dashicons;
|
596 |
-
font-size: 20px;
|
597 |
-
position: relative;
|
598 |
-
top: 5px;
|
599 |
-
margin-left: 10px;
|
600 |
-
visibility: hidden;
|
601 |
-
|
602 |
-
&:before {
|
603 |
-
content: "\f463";
|
604 |
-
}
|
605 |
-
|
606 |
-
&.loading {
|
607 |
-
visibility: visible;
|
608 |
-
animation: rotation 2s infinite linear;
|
609 |
-
display: inline-block;
|
610 |
-
}
|
611 |
-
}
|
612 |
-
.collapse-list-questions {
|
613 |
-
font-family: Dashicons;
|
614 |
-
position: absolute;
|
615 |
-
top: 0;
|
616 |
-
right: 5px;
|
617 |
-
bottom: 0;
|
618 |
-
font-size: 30px;
|
619 |
-
display: flex;
|
620 |
-
justify-content: center;
|
621 |
-
align-items: center;
|
622 |
-
cursor: pointer;
|
623 |
-
width: 40px;
|
624 |
-
height: 55px;
|
625 |
-
color: #999;
|
626 |
-
}
|
627 |
-
}
|
628 |
-
|
629 |
-
.lp-box-data-content {
|
630 |
-
.lp-list-questions {
|
631 |
-
color: #777;
|
632 |
-
border-collapse: collapse;
|
633 |
-
|
634 |
-
.table-row {
|
635 |
-
display: flex;
|
636 |
-
flex-direction: row;
|
637 |
-
text-align: center;
|
638 |
-
|
639 |
-
& > * {
|
640 |
-
width: 100%;
|
641 |
-
padding: 9px 10px
|
642 |
-
}
|
643 |
-
|
644 |
-
& > .sort {
|
645 |
-
width: 15px;
|
646 |
-
fill: #d5dce0;
|
647 |
-
cursor: url("../../images/openhand.cur") 7 5, default;
|
648 |
-
visibility: hidden;
|
649 |
-
padding-right: 0;
|
650 |
-
position: relative;
|
651 |
-
svg {
|
652 |
-
width: 18px;
|
653 |
-
height: 20px;
|
654 |
-
position: absolute;
|
655 |
-
top: 50%;
|
656 |
-
margin-top: -10px;
|
657 |
-
left: 4px;
|
658 |
-
}
|
659 |
-
&:hover {
|
660 |
-
fill: #0085ba;
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
& > .order {
|
665 |
-
width: 10px;
|
666 |
-
}
|
667 |
-
|
668 |
-
& > .name {
|
669 |
-
padding: 10px;
|
670 |
-
}
|
671 |
-
|
672 |
-
& > .type {
|
673 |
-
width: 150px;
|
674 |
-
}
|
675 |
-
|
676 |
-
& > .actions {
|
677 |
-
width: 300px;
|
678 |
-
}
|
679 |
-
&:hover {
|
680 |
-
& > .sort {
|
681 |
-
visibility: visible;
|
682 |
-
}
|
683 |
-
}
|
684 |
-
}
|
685 |
-
|
686 |
-
.header {
|
687 |
-
border-bottom: 1px solid #ddd;
|
688 |
-
.table-row {
|
689 |
-
& > * {
|
690 |
-
font-weight: bold;
|
691 |
-
padding: 12px 8px 12px 0;
|
692 |
-
}
|
693 |
-
.sort {
|
694 |
-
width: 45px;
|
695 |
-
}
|
696 |
-
}
|
697 |
-
}
|
698 |
-
|
699 |
-
.main {
|
700 |
-
.question-actions {
|
701 |
-
.name {
|
702 |
-
input {
|
703 |
-
width: 100%;
|
704 |
-
font-size: 14px;
|
705 |
-
border: none;
|
706 |
-
background: transparent;
|
707 |
-
box-shadow: none;
|
708 |
-
font-weight: normal;
|
709 |
-
color: #777;
|
710 |
-
padding: 0;
|
711 |
-
}
|
712 |
-
}
|
713 |
-
|
714 |
-
&.updating {
|
715 |
-
background-color: #e6f2d0;
|
716 |
-
}
|
717 |
-
}
|
718 |
-
.question-settings {
|
719 |
-
border: 1px solid #ddd;
|
720 |
-
border-left: none;
|
721 |
-
border-right: none;
|
722 |
-
& > * {
|
723 |
-
padding: 20px;
|
724 |
-
}
|
725 |
-
.quiz-question-data {
|
726 |
-
table.lp-list-options {
|
727 |
-
border: 1px solid #ddd;
|
728 |
-
thead {
|
729 |
-
.answer-text {
|
730 |
-
width: calc(100% - 100px);
|
731 |
-
}
|
732 |
-
.answer-correct {
|
733 |
-
width: 65px;
|
734 |
-
}
|
735 |
-
}
|
736 |
-
tbody {
|
737 |
-
tr {
|
738 |
-
background: #fff;
|
739 |
-
border: 1px solid #DDD;
|
740 |
-
&:nth-child(2n) {
|
741 |
-
background: #f4fcff;
|
742 |
-
}
|
743 |
-
td {
|
744 |
-
padding: 0 10px;
|
745 |
-
background: inherit;
|
746 |
-
position: static;
|
747 |
-
border: none;
|
748 |
-
&.sort {
|
749 |
-
cursor: url("../../images/openhand.cur") 7 5, default;
|
750 |
-
}
|
751 |
-
&.answer-correct {
|
752 |
-
text-align: center;
|
753 |
-
}
|
754 |
-
}
|
755 |
-
}
|
756 |
-
.answer-option {
|
757 |
-
.answer-text {
|
758 |
-
input {
|
759 |
-
width: 100%;
|
760 |
-
font-size: 14px;
|
761 |
-
border: none;
|
762 |
-
background: transparent;
|
763 |
-
box-shadow: none;
|
764 |
-
font-weight: normal;
|
765 |
-
color: #777;
|
766 |
-
padding: 0;
|
767 |
-
}
|
768 |
-
}
|
769 |
-
}
|
770 |
-
}
|
771 |
-
}
|
772 |
-
}
|
773 |
-
}
|
774 |
-
}
|
775 |
-
|
776 |
-
.main {
|
777 |
-
.question-item {
|
778 |
-
background: #fff;
|
779 |
-
border-bottom: 1px solid #f1f1f1;
|
780 |
-
&:nth-child(2n+1) {
|
781 |
-
background: #f4fcff;
|
782 |
-
}
|
783 |
-
.cell {
|
784 |
-
padding: 10px;
|
785 |
-
}
|
786 |
-
.question-actions {
|
787 |
-
.name {
|
788 |
-
input {
|
789 |
-
width: 100%;
|
790 |
-
font-size: 14px;
|
791 |
-
border: none;
|
792 |
-
background: transparent;
|
793 |
-
box-shadow: none;
|
794 |
-
font-weight: normal;
|
795 |
-
color: #777;
|
796 |
-
padding: 0;
|
797 |
-
}
|
798 |
-
}
|
799 |
-
.actions {
|
800 |
-
padding: 0;
|
801 |
-
margin: 0;
|
802 |
-
.lp-toolbar-buttons {
|
803 |
-
position: static;
|
804 |
-
z-index: 10;
|
805 |
-
height: 100%;
|
806 |
-
text-align: left;
|
807 |
-
> div {
|
808 |
-
a {
|
809 |
-
visibility: hidden;
|
810 |
-
}
|
811 |
-
}
|
812 |
-
.lp-toolbar-btn {
|
813 |
-
height: 100%;
|
814 |
-
.lp-btn-icon {
|
815 |
-
width: 28px;
|
816 |
-
height: 30px;
|
817 |
-
text-align: center;
|
818 |
-
position: absolute;
|
819 |
-
top: 50%;
|
820 |
-
margin-top: -15px;
|
821 |
-
left: 50%;
|
822 |
-
margin-left: -15px;
|
823 |
-
line-height: 30px;
|
824 |
-
}
|
825 |
-
ul {
|
826 |
-
z-index: 9;
|
827 |
-
}
|
828 |
-
}
|
829 |
-
.lp-btn-toggle {
|
830 |
-
font-family: Dashicons;
|
831 |
-
line-height: 42px;
|
832 |
-
font-size: 16px;
|
833 |
-
&.open {
|
834 |
-
&::after {
|
835 |
-
content: '\f343';
|
836 |
-
}
|
837 |
-
}
|
838 |
-
&.close {
|
839 |
-
&::after {
|
840 |
-
content: '\f347';
|
841 |
-
}
|
842 |
-
}
|
843 |
-
}
|
844 |
-
.lp-toolbar-btn-dropdown {
|
845 |
-
ul {
|
846 |
-
li {
|
847 |
-
border-bottom: 1px solid #eee;
|
848 |
-
a {
|
849 |
-
padding: 10px 25px;
|
850 |
-
&.remove {
|
851 |
-
color: #0073aa;
|
852 |
-
}
|
853 |
-
}
|
854 |
-
}
|
855 |
-
}
|
856 |
-
}
|
857 |
-
}
|
858 |
-
}
|
859 |
-
&:hover {
|
860 |
-
.lp-toolbar-buttons {
|
861 |
-
> div {
|
862 |
-
a {
|
863 |
-
visibility: visible;
|
864 |
-
}
|
865 |
-
}
|
866 |
-
}
|
867 |
-
}
|
868 |
-
}
|
869 |
-
|
870 |
-
.question-settings {
|
871 |
-
background: #fff;
|
872 |
-
|
873 |
-
.quiz-question-options {
|
874 |
-
text-align: left;
|
875 |
-
.inside {
|
876 |
-
margin: 0;
|
877 |
-
padding: 0;
|
878 |
-
.rwmb-meta-box {
|
879 |
-
.rwmb-field {
|
880 |
-
padding: 20px;
|
881 |
-
margin: 0;
|
882 |
-
&:nth-child(2n+1) {
|
883 |
-
background: #f4fcff;
|
884 |
-
}
|
885 |
-
}
|
886 |
-
}
|
887 |
-
}
|
888 |
-
}
|
889 |
-
}
|
890 |
-
}
|
891 |
-
}
|
892 |
-
|
893 |
-
.footer {
|
894 |
-
.table-row {
|
895 |
-
text-align: left;
|
896 |
-
.add-new-question {
|
897 |
-
padding-left: 65px;
|
898 |
-
margin-top: -1px;
|
899 |
-
border-top: 1px solid #DDD;
|
900 |
-
.title {
|
901 |
-
position: relative;
|
902 |
-
display: inline-block;
|
903 |
-
min-width: 500px;
|
904 |
-
input {
|
905 |
-
border: 1px solid #DDD;
|
906 |
-
width: 100%;
|
907 |
-
margin: 0;
|
908 |
-
padding: 6px 6px;
|
909 |
-
@include box-shadow(none);
|
910 |
-
@include border-radius(3px);
|
911 |
-
&:focus {
|
912 |
-
border-color: #DDD;
|
913 |
-
}
|
914 |
-
}
|
915 |
-
}
|
916 |
-
.add-new {
|
917 |
-
display: inline;
|
918 |
-
position: relative;
|
919 |
-
ul.question-types {
|
920 |
-
position: absolute;
|
921 |
-
margin: 6px;
|
922 |
-
background-color: #FFF;
|
923 |
-
top: 100%;
|
924 |
-
border: 1px solid #DDD;
|
925 |
-
right: -2px;
|
926 |
-
width: 200px;
|
927 |
-
z-index: 9999999;
|
928 |
-
display: none;
|
929 |
-
li {
|
930 |
-
margin: 0;
|
931 |
-
a {
|
932 |
-
display: block;
|
933 |
-
padding: 10px;
|
934 |
-
line-height: 1;
|
935 |
-
text-decoration: none;
|
936 |
-
outline: none;
|
937 |
-
box-shadow: none;
|
938 |
-
}
|
939 |
-
}
|
940 |
-
}
|
941 |
-
|
942 |
-
button {
|
943 |
-
&:hover {
|
944 |
-
& + .question-types {
|
945 |
-
display: block;
|
946 |
-
}
|
947 |
-
}
|
948 |
-
|
949 |
-
& + .question-types {
|
950 |
-
&:hover {
|
951 |
-
display: block;
|
952 |
-
}
|
953 |
-
}
|
954 |
-
|
955 |
-
&[disabled="disabled"] {
|
956 |
-
&:hover {
|
957 |
-
& + .question-types {
|
958 |
-
display: none;
|
959 |
-
}
|
960 |
-
}
|
961 |
-
}
|
962 |
-
}
|
963 |
-
}
|
964 |
-
.select-item {
|
965 |
-
display: inline;
|
966 |
-
}
|
967 |
-
button {
|
968 |
-
height: 30px;
|
969 |
-
box-shadow: 0 1px 0 #ccc !important;
|
970 |
-
}
|
971 |
-
}
|
972 |
-
}
|
973 |
-
}
|
974 |
-
}
|
975 |
-
.question-button-actions {
|
976 |
-
text-align: left;
|
977 |
}
|
978 |
}
|
979 |
}
|
980 |
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
.question-actions {
|
992 |
-
margin-top: 8px;
|
993 |
-
.question-types {
|
994 |
-
ul {
|
995 |
-
position: absolute;
|
996 |
-
top: 100%;
|
997 |
-
right: 0;
|
998 |
-
height: auto;
|
999 |
-
background: #fdfeff;
|
1000 |
-
margin: 0;
|
1001 |
-
border: 1px solid #DDD;
|
1002 |
-
display: none;
|
1003 |
-
li {
|
1004 |
-
margin: 0;
|
1005 |
-
&:hover, &.active {
|
1006 |
-
background: #dbf5ff;
|
1007 |
-
}
|
1008 |
-
a {
|
1009 |
-
display: block;
|
1010 |
-
white-space: nowrap;
|
1011 |
-
text-decoration: none;
|
1012 |
-
padding: 5px 25px;
|
1013 |
-
font-size: 12px;
|
1014 |
-
text-align: right;
|
1015 |
-
color: #0073aa;
|
1016 |
-
margin: 0;
|
1017 |
-
}
|
1018 |
-
}
|
1019 |
-
&:hover {
|
1020 |
-
display: block;
|
1021 |
-
}
|
1022 |
-
}
|
1023 |
-
}
|
1024 |
-
&:hover {
|
1025 |
-
.question-types {
|
1026 |
-
ul {
|
1027 |
-
display: block;
|
1028 |
-
}
|
1029 |
-
}
|
1030 |
-
}
|
1031 |
-
}
|
1032 |
-
}
|
1033 |
-
.lp-box-data-content {
|
1034 |
-
padding: 20px;
|
1035 |
-
table.list-question-answers {
|
1036 |
-
width: 100%;
|
1037 |
-
border: 1px solid #ddd;
|
1038 |
-
tr {
|
1039 |
-
td {
|
1040 |
-
padding: 0 15px;
|
1041 |
-
}
|
1042 |
-
}
|
1043 |
-
thead {
|
1044 |
-
background: #F5F5F5;
|
1045 |
-
tr {
|
1046 |
-
th {
|
1047 |
-
padding: 15px;
|
1048 |
-
background: #F5F5F5;
|
1049 |
-
border-bottom: 1px solid #DDD;
|
1050 |
-
&.sort, &.order, &.actions {
|
1051 |
-
width: 10px;
|
1052 |
-
}
|
1053 |
-
&.answer-correct {
|
1054 |
-
width: 65px;
|
1055 |
-
}
|
1056 |
-
}
|
1057 |
-
}
|
1058 |
-
}
|
1059 |
-
tbody {
|
1060 |
-
tr {
|
1061 |
-
background: #f4fcff;
|
1062 |
-
color: #777;
|
1063 |
-
&:nth-child(2n) {
|
1064 |
-
background: #fff;
|
1065 |
-
}
|
1066 |
-
&:hover {
|
1067 |
-
td {
|
1068 |
-
&.actions {
|
1069 |
-
.remove-answer {
|
1070 |
-
visibility: visible;
|
1071 |
-
}
|
1072 |
-
}
|
1073 |
-
}
|
1074 |
-
}
|
1075 |
-
td {
|
1076 |
-
&.sort {
|
1077 |
-
width: 15px;
|
1078 |
-
text-align: center;
|
1079 |
-
font-size: 18px;
|
1080 |
-
color: #CCC;
|
1081 |
-
cursor: url("../../images/openhand.cur") 7 5, default;
|
1082 |
-
&:hover {
|
1083 |
-
color: #0085ba;
|
1084 |
-
}
|
1085 |
-
}
|
1086 |
-
&.order {
|
1087 |
-
font-size: 13px;
|
1088 |
-
}
|
1089 |
-
&.answer-text {
|
1090 |
-
input {
|
1091 |
-
width: 100%;
|
1092 |
-
font-size: 14px;
|
1093 |
-
border: none;
|
1094 |
-
background: transparent;
|
1095 |
-
box-shadow: none;
|
1096 |
-
font-weight: normal;
|
1097 |
-
color: #777;
|
1098 |
-
padding: 0;
|
1099 |
-
}
|
1100 |
-
}
|
1101 |
-
&.actions {
|
1102 |
-
.remove-answer {
|
1103 |
-
visibility: hidden;
|
1104 |
-
&:hover {
|
1105 |
-
background: transparent;
|
1106 |
-
}
|
1107 |
-
}
|
1108 |
-
}
|
1109 |
-
&.lp-toolbar-buttons {
|
1110 |
-
z-index: auto;
|
1111 |
-
}
|
1112 |
-
}
|
1113 |
-
}
|
1114 |
-
}
|
1115 |
-
}
|
1116 |
-
.add-answer {
|
1117 |
-
margin: 15px 0 0 0;
|
1118 |
-
}
|
1119 |
}
|
1120 |
}
|
1121 |
|
|
|
|
|
|
|
1122 |
/**
|
1123 |
* Modal choose items.
|
1124 |
*/
|
@@ -1209,9 +769,9 @@
|
|
1209 |
border-right: 1px solid #ddd;
|
1210 |
position: absolute;
|
1211 |
right: 0;
|
1212 |
-
height:
|
1213 |
top: 50%;
|
1214 |
-
margin-top: -
|
1215 |
}
|
1216 |
|
1217 |
&.active {
|
@@ -1237,11 +797,12 @@
|
|
1237 |
}
|
1238 |
|
1239 |
a {
|
1240 |
-
padding:
|
1241 |
text-decoration: none;
|
1242 |
display: inline-block;
|
1243 |
font-weight: 600;
|
1244 |
-
|
|
|
1245 |
&:focus {
|
1246 |
box-shadow: none;
|
1247 |
}
|
@@ -1256,8 +817,8 @@
|
|
1256 |
right: 0;
|
1257 |
cursor: pointer;
|
1258 |
font-size: 1em;
|
1259 |
-
padding:
|
1260 |
-
z-index:
|
1261 |
}
|
1262 |
}
|
1263 |
|
@@ -1265,6 +826,7 @@
|
|
1265 |
padding: 20px;
|
1266 |
position: relative;
|
1267 |
overflow: hidden;
|
|
|
1268 |
|
1269 |
.section-item {
|
1270 |
cursor: pointer;
|
@@ -1285,10 +847,11 @@
|
|
1285 |
.search {
|
1286 |
margin-bottom: 20px;
|
1287 |
background: transparent;
|
1288 |
-
input {
|
1289 |
width: 100%;
|
1290 |
font-size: 1.2em;
|
1291 |
line-height: 1.5;
|
|
|
1292 |
}
|
1293 |
}
|
1294 |
|
@@ -1319,7 +882,7 @@
|
|
1319 |
z-index: 2;
|
1320 |
padding: 20px;
|
1321 |
transform: translate(100%, 0);
|
1322 |
-
max-height:
|
1323 |
overflow: auto;
|
1324 |
|
1325 |
&.show {
|
@@ -1342,6 +905,17 @@
|
|
1342 |
}
|
1343 |
}
|
1344 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1345 |
@media screen and (max-width: 900px) {
|
1346 |
#admin-editor-lp_quiz {
|
1347 |
.lp-box-data-content {
|
1 |
/**
|
2 |
* General style for admin editor.
|
3 |
*/
|
4 |
+
|
5 |
+
@-webkit-keyframes rotating4 /* Safari and Chrome */
|
6 |
+
{
|
7 |
+
from {
|
8 |
+
-webkit-transform: rotate(0deg);
|
9 |
+
-o-transform: rotate(0deg);
|
10 |
+
transform: rotate(0deg);
|
11 |
+
}
|
12 |
+
to {
|
13 |
+
-webkit-transform: rotate(360deg);
|
14 |
+
-o-transform: rotate(360deg);
|
15 |
+
transform: rotate(360deg);
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
+
@keyframes rotating4 {
|
20 |
+
from {
|
21 |
+
-ms-transform: rotate(0deg);
|
22 |
+
-moz-transform: rotate(0deg);
|
23 |
+
-webkit-transform: rotate(0deg);
|
24 |
+
-o-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
to {
|
28 |
+
-ms-transform: rotate(360deg);
|
29 |
+
-moz-transform: rotate(360deg);
|
30 |
+
-webkit-transform: rotate(360deg);
|
31 |
+
-o-transform: rotate(360deg);
|
32 |
+
transform: rotate(360deg);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
@mixin rotating4($args: rotating4 2s linear infinite) {
|
37 |
+
-webkit-animation: $args;
|
38 |
+
-moz-animation: $args;
|
39 |
+
-ms-animation: $args;
|
40 |
+
-o-animation: $args;
|
41 |
+
animation: $args;
|
42 |
+
}
|
43 |
+
|
44 |
.lp-admin-editor {
|
45 |
background-color: #fff;
|
46 |
border: 1px solid #ddd;
|
63 |
|
64 |
.lp-course-curriculum {
|
65 |
.heading {
|
66 |
+
padding: 12px 10px;
|
67 |
position: relative;
|
68 |
|
69 |
h4 {
|
115 |
|
116 |
.curriculum-sections {
|
117 |
margin: 0;
|
118 |
+
//padding: 10px;
|
119 |
border-top: 1px solid #ddd;
|
120 |
}
|
121 |
|
122 |
.section {
|
123 |
border: 1px solid #e5e5e5;
|
124 |
+
//margin-bottom: 10px;
|
125 |
opacity: 1;
|
126 |
background: #FFF;
|
127 |
+
border-left: 0;
|
128 |
+
border-right: 0;
|
129 |
+
margin-bottom: -1px;
|
130 |
+
&:first-child {
|
131 |
+
border-top: 0;
|
132 |
+
}
|
133 |
&.new-section {
|
134 |
+
margin-top: 1px;
|
|
|
135 |
form {
|
136 |
margin: 0;
|
137 |
}
|
|
|
138 |
.section-head {
|
139 |
background-color: #f4fcff;
|
140 |
.creatable {
|
147 |
}
|
148 |
}
|
149 |
}
|
150 |
+
&.empty-section {
|
151 |
+
position: relative;
|
152 |
+
&:after {
|
153 |
+
position: absolute;
|
154 |
+
top: 0;
|
155 |
+
left: 0;
|
156 |
+
right: 0;
|
157 |
+
bottom: 0;
|
158 |
+
background: #FFF;
|
159 |
+
content: '';
|
160 |
+
opacity: 0.5;
|
161 |
+
}
|
162 |
+
.section-head {
|
163 |
+
.movable:before {
|
164 |
+
content: "\f463";
|
165 |
+
color: #a2a2a2;
|
166 |
+
display: inline-block;
|
167 |
+
@include rotating4();
|
168 |
+
}
|
169 |
+
}
|
170 |
+
.section-collapse {
|
171 |
+
display: none;
|
172 |
+
}
|
173 |
+
}
|
174 |
|
175 |
&:hover {
|
176 |
.section-actions {
|
180 |
}
|
181 |
}
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
&.close {
|
184 |
.section-collapse {
|
185 |
}
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
input {
|
189 |
background-color: transparent;
|
190 |
box-shadow: none;
|
|
|
191 |
&:focus {
|
192 |
box-shadow: none;
|
193 |
}
|
194 |
}
|
195 |
|
196 |
.section-head {
|
197 |
+
//background-color: #f9f9f9;
|
198 |
+
background-color: #f4fcff;
|
199 |
padding: 3px;
|
200 |
position: relative;
|
201 |
transition: background 500ms ease-out;
|
295 |
font-size: 1.2em;
|
296 |
border: none;
|
297 |
line-height: 30px;
|
298 |
+
width: calc(100% - 200px);
|
299 |
padding-left: 0;
|
300 |
}
|
301 |
|
304 |
width: 100%;
|
305 |
color: #999;
|
306 |
font-style: italic;
|
307 |
+
margin: 0;
|
308 |
+
padding: 0;
|
309 |
&:focus {
|
310 |
color: #444;
|
311 |
}
|
334 |
display: flex;
|
335 |
justify-content: center;
|
336 |
align-items: center;
|
337 |
+
background: #FFF;
|
338 |
+
&.ui-sortable-helper {
|
339 |
+
border-bottom: 1px solid #EEE;
|
340 |
+
}
|
341 |
&:nth-child(2n+1) {
|
342 |
background-color: #f4fcff;
|
343 |
}
|
|
|
|
|
|
|
|
|
|
|
344 |
&.updating {
|
|
|
|
|
345 |
&:before {
|
346 |
position: absolute;
|
347 |
content: '';
|
358 |
}
|
359 |
|
360 |
.drag {
|
|
|
361 |
height: 20px;
|
362 |
cursor: url("../../images/openhand.cur") 7 5, default;
|
|
|
363 |
visibility: hidden;
|
364 |
fill: #d5dce0;
|
365 |
padding-top: 3px;
|
366 |
+
flex: 0 0 18px;
|
367 |
&:hover {
|
368 |
fill: #0085ba;
|
369 |
}
|
411 |
.remove {
|
412 |
color: #a00;
|
413 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
}
|
415 |
|
416 |
&:hover {
|
428 |
}
|
429 |
}
|
430 |
}
|
|
|
431 |
}
|
432 |
|
433 |
.new-section-item {
|
436 |
display: flex;
|
437 |
align-items: center;
|
438 |
transition: all 200ms ease-out;
|
439 |
+
.drag {
|
440 |
+
cursor: default;
|
441 |
+
}
|
442 |
.title {
|
443 |
display: inline-block;
|
444 |
margin: 0;
|
447 |
|
448 |
.types {
|
449 |
display: inline-block;
|
|
|
|
|
450 |
&:hover, &:focus {
|
451 |
background-color: #fff;
|
452 |
|
486 |
content: '\f330';
|
487 |
}
|
488 |
}
|
489 |
+
&.empty-item {
|
490 |
+
&:before {
|
491 |
+
content: "\f463";
|
492 |
+
}
|
493 |
+
}
|
494 |
}
|
495 |
}
|
496 |
}
|
528 |
position: absolute;
|
529 |
top: 100%;
|
530 |
width: 165px;
|
|
|
531 |
right: 0;
|
532 |
background: #fdfeff;
|
533 |
margin: 0;
|
537 |
text-align: center;
|
538 |
li {
|
539 |
margin: 0;
|
|
|
540 |
border-bottom: 1px solid #eee;
|
541 |
+
text-align: right;
|
542 |
a {
|
543 |
color: #0073aa;
|
544 |
text-decoration: none;
|
545 |
+
padding: 8px;
|
546 |
+
display: block;
|
547 |
&.delete-permanently {
|
548 |
color: #d05d5d;
|
549 |
}
|
584 |
}
|
585 |
}
|
586 |
|
587 |
+
&.empty-item {
|
588 |
+
color: #a2a2a2;
|
589 |
+
position: relative;
|
590 |
+
&:after {
|
591 |
+
position: absolute;
|
592 |
+
top: 0;
|
593 |
+
left: 0;
|
594 |
+
right: 0;
|
595 |
+
bottom: 0;
|
596 |
+
background: #FFF;
|
597 |
+
content: '';
|
598 |
+
opacity: 0.5;
|
599 |
+
}
|
600 |
+
.item-actions {
|
601 |
+
display: none;
|
602 |
+
}
|
603 |
+
.icon:before {
|
604 |
+
content: "\f463";
|
605 |
+
color: #a2a2a2;
|
606 |
+
@include rotating4();
|
607 |
+
}
|
608 |
+
}
|
609 |
+
|
610 |
.icon {
|
|
|
611 |
font-size: 20px;
|
612 |
color: #0085ba;
|
613 |
text-align: center;
|
614 |
+
flex: 0 0 29px;
|
615 |
&:before {
|
616 |
font-family: Dashicons;
|
617 |
}
|
654 |
}
|
655 |
}
|
656 |
}
|
657 |
+
.ui-sortable-placeholder {
|
658 |
+
visibility: visible !important;
|
659 |
+
background: #bdf4fe !important;
|
660 |
+
display: block;
|
661 |
+
border-color: #bdf4fe !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
662 |
}
|
663 |
}
|
664 |
}
|
665 |
|
666 |
+
.section-item-counts {
|
667 |
+
position: absolute;
|
668 |
+
top: 0;
|
669 |
+
right: 41px;
|
670 |
+
white-space: nowrap;
|
671 |
+
line-height: 44px;
|
672 |
+
font-size: 12px;
|
673 |
+
span {
|
674 |
+
font-weight: bold;
|
675 |
+
color: #999;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
676 |
}
|
677 |
}
|
678 |
|
679 |
+
@import "quiz-editor";
|
680 |
+
@import "question-editor";
|
681 |
+
|
682 |
/**
|
683 |
* Modal choose items.
|
684 |
*/
|
769 |
border-right: 1px solid #ddd;
|
770 |
position: absolute;
|
771 |
right: 0;
|
772 |
+
height: 44px;
|
773 |
top: 50%;
|
774 |
+
margin-top: -22px;
|
775 |
}
|
776 |
|
777 |
&.active {
|
797 |
}
|
798 |
|
799 |
a {
|
800 |
+
padding: 0 20px;
|
801 |
text-decoration: none;
|
802 |
display: inline-block;
|
803 |
font-weight: 600;
|
804 |
+
height: 44px;
|
805 |
+
line-height: 44px;
|
806 |
&:focus {
|
807 |
box-shadow: none;
|
808 |
}
|
817 |
right: 0;
|
818 |
cursor: pointer;
|
819 |
font-size: 1em;
|
820 |
+
padding: 12px;
|
821 |
+
z-index: 30;
|
822 |
}
|
823 |
}
|
824 |
|
826 |
padding: 20px;
|
827 |
position: relative;
|
828 |
overflow: hidden;
|
829 |
+
border-bottom: 1px solid #DDD;
|
830 |
|
831 |
.section-item {
|
832 |
cursor: pointer;
|
847 |
.search {
|
848 |
margin-bottom: 20px;
|
849 |
background: transparent;
|
850 |
+
input.modal-search-input {
|
851 |
width: 100%;
|
852 |
font-size: 1.2em;
|
853 |
line-height: 1.5;
|
854 |
+
padding: 10px 14px;
|
855 |
}
|
856 |
}
|
857 |
|
882 |
z-index: 2;
|
883 |
padding: 20px;
|
884 |
transform: translate(100%, 0);
|
885 |
+
max-height: 420px;
|
886 |
overflow: auto;
|
887 |
|
888 |
&.show {
|
905 |
}
|
906 |
}
|
907 |
|
908 |
+
body {
|
909 |
+
&.moving {
|
910 |
+
cursor: url("../../images/closedhand.cur") 7 5, default !important;
|
911 |
+
.section-item {
|
912 |
+
.drag {
|
913 |
+
cursor: url("../../images/closedhand.cur") 7 5, default !important;
|
914 |
+
}
|
915 |
+
}
|
916 |
+
}
|
917 |
+
}
|
918 |
+
|
919 |
@media screen and (max-width: 900px) {
|
920 |
#admin-editor-lp_quiz {
|
921 |
.lp-box-data-content {
|
@@ -28,11 +28,11 @@
|
|
28 |
font-weight: lighter;
|
29 |
}
|
30 |
|
31 |
-
.order-data-heading{
|
32 |
margin-top: 40px;
|
33 |
}
|
34 |
|
35 |
-
.order-users{
|
36 |
display: inline-block;
|
37 |
}
|
38 |
|
@@ -97,16 +97,20 @@
|
|
97 |
padding-top: 20px;
|
98 |
}
|
99 |
}
|
100 |
-
.remove-order-item{
|
101 |
text-decoration: none;
|
102 |
outline: none;
|
103 |
-
color: #
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
106 |
}
|
107 |
|
108 |
-
.order-item-row:hover{
|
109 |
-
.remove-order-item{
|
110 |
display: inline-block;
|
111 |
}
|
112 |
}
|
28 |
font-weight: lighter;
|
29 |
}
|
30 |
|
31 |
+
.order-data-heading {
|
32 |
margin-top: 40px;
|
33 |
}
|
34 |
|
35 |
+
.order-users {
|
36 |
display: inline-block;
|
37 |
}
|
38 |
|
97 |
padding-top: 20px;
|
98 |
}
|
99 |
}
|
100 |
+
.remove-order-item {
|
101 |
text-decoration: none;
|
102 |
outline: none;
|
103 |
+
color: #CCC;
|
104 |
+
.dashicons {
|
105 |
+
font-size: 18px;
|
106 |
+
}
|
107 |
+
&:hover {
|
108 |
+
color: #FF0000;
|
109 |
+
}
|
110 |
}
|
111 |
|
112 |
+
.order-item-row:hover {
|
113 |
+
.remove-order-item {
|
114 |
display: inline-block;
|
115 |
}
|
116 |
}
|
@@ -111,6 +111,8 @@
|
|
111 |
}
|
112 |
}
|
113 |
|
|
|
|
|
114 |
#learn-press-box-edit-slug{
|
115 |
background: #FFF;
|
116 |
padding: 10px;
|
111 |
}
|
112 |
}
|
113 |
|
114 |
+
|
115 |
+
|
116 |
#learn-press-box-edit-slug{
|
117 |
background: #FFF;
|
118 |
padding: 10px;
|
@@ -0,0 +1,242 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Question admin editor.
|
3 |
+
*/
|
4 |
+
#admin-editor-lp_question {
|
5 |
+
background: #fff;
|
6 |
+
.lp-box-data-head {
|
7 |
+
padding: 0 10px;
|
8 |
+
.heading {
|
9 |
+
float: left;
|
10 |
+
padding: 12px 10px;
|
11 |
+
.section-item-counts{
|
12 |
+
right: 50px;
|
13 |
+
span{
|
14 |
+
background: #F5F5F5;
|
15 |
+
padding: 0 9px;
|
16 |
+
color: #00b9ff;
|
17 |
+
margin-top: 8px;
|
18 |
+
display: inline-block;
|
19 |
+
line-height: 30px;
|
20 |
+
height: 30px;
|
21 |
+
@include border-radius(3px);
|
22 |
+
border-top-right-radius: 0;
|
23 |
+
border-bottom-right-radius: 0;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
}
|
27 |
+
.lp-toolbar-buttons{
|
28 |
+
height:46px;
|
29 |
+
}
|
30 |
+
.question-actions {
|
31 |
+
margin-right: 10px;
|
32 |
+
height: 30px;
|
33 |
+
background: #BBB;
|
34 |
+
margin-top: 8px;
|
35 |
+
@include border-radius(3px);
|
36 |
+
border-top-left-radius: 0;
|
37 |
+
border-bottom-left-radius: 0;
|
38 |
+
.question-types {
|
39 |
+
a{
|
40 |
+
color: #FFF;
|
41 |
+
}
|
42 |
+
ul {
|
43 |
+
position: absolute;
|
44 |
+
top: 100%;
|
45 |
+
right: 0;
|
46 |
+
height: auto;
|
47 |
+
background: #fdfeff;
|
48 |
+
margin: 0;
|
49 |
+
border: 1px solid #DDD;
|
50 |
+
display: none;
|
51 |
+
li {
|
52 |
+
margin: 0;
|
53 |
+
&:hover, &.active {
|
54 |
+
background: #dbf5ff;
|
55 |
+
}
|
56 |
+
a {
|
57 |
+
display: block;
|
58 |
+
white-space: nowrap;
|
59 |
+
text-decoration: none;
|
60 |
+
padding: 5px;
|
61 |
+
font-size: 12px;
|
62 |
+
text-align: right;
|
63 |
+
color: #0073aa;
|
64 |
+
min-width: 100px;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
&:hover {
|
68 |
+
display: block;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
&:hover {
|
73 |
+
.question-types {
|
74 |
+
ul {
|
75 |
+
display: block;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
.lp-box-data-content {
|
82 |
+
padding: 20px;
|
83 |
+
table.list-question-answers {
|
84 |
+
width: 100%;
|
85 |
+
border: 1px solid #ddd;
|
86 |
+
tr {
|
87 |
+
td {
|
88 |
+
padding: 0 15px;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
thead {
|
92 |
+
background: #F5F5F5;
|
93 |
+
tr {
|
94 |
+
th {
|
95 |
+
padding: 15px;
|
96 |
+
background: #F5F5F5;
|
97 |
+
border-bottom: 1px solid #DDD;
|
98 |
+
|
99 |
+
}
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
.sort, .order, .actions {
|
104 |
+
width: 10px;
|
105 |
+
}
|
106 |
+
.sort {
|
107 |
+
padding: 0 10px;
|
108 |
+
}
|
109 |
+
.order {
|
110 |
+
text-align: right;
|
111 |
+
padding: 0;
|
112 |
+
width: 30px;
|
113 |
+
font-weight: bold;
|
114 |
+
}
|
115 |
+
.answer-correct {
|
116 |
+
width: 65px;
|
117 |
+
text-align: center;
|
118 |
+
}
|
119 |
+
.answer-text {
|
120 |
+
padding-left: 5px;
|
121 |
+
}
|
122 |
+
.actions {
|
123 |
+
padding-right: 0;
|
124 |
+
text-align: right;
|
125 |
+
}
|
126 |
+
tbody {
|
127 |
+
tr {
|
128 |
+
background: #f4fcff;
|
129 |
+
color: #777;
|
130 |
+
&:nth-child(2n) {
|
131 |
+
background: #fff;
|
132 |
+
}
|
133 |
+
|
134 |
+
td {
|
135 |
+
&.sort {
|
136 |
+
width: 15px;
|
137 |
+
text-align: center;
|
138 |
+
font-size: 18px;
|
139 |
+
cursor: url("../../images/openhand.cur") 7 5, default;
|
140 |
+
padding: 0;
|
141 |
+
.svg-icon {
|
142 |
+
visibility: hidden;
|
143 |
+
fill: #d5dce0;
|
144 |
+
height: 18px;
|
145 |
+
vertical-align: middle;
|
146 |
+
}
|
147 |
+
&:hover {
|
148 |
+
.svg-icon {
|
149 |
+
fill: #0085ba;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
&.order {
|
154 |
+
font-size: 14px;
|
155 |
+
}
|
156 |
+
&.answer-text {
|
157 |
+
input {
|
158 |
+
width: 100%;
|
159 |
+
font-size: 14px;
|
160 |
+
border: none;
|
161 |
+
background: transparent;
|
162 |
+
box-shadow: none;
|
163 |
+
font-weight: normal;
|
164 |
+
color: #777;
|
165 |
+
padding: 0;
|
166 |
+
}
|
167 |
+
}
|
168 |
+
&.lp-toolbar-buttons {
|
169 |
+
z-index: auto;
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
&:hover {
|
174 |
+
td {
|
175 |
+
&.actions {
|
176 |
+
.remove-answer {
|
177 |
+
visibility: visible;
|
178 |
+
height: 42px;
|
179 |
+
}
|
180 |
+
}
|
181 |
+
&.sort {
|
182 |
+
.svg-icon {
|
183 |
+
visibility: visible;
|
184 |
+
}
|
185 |
+
}
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
&.ui-sortable-placeholder {
|
190 |
+
visibility: visible !important;
|
191 |
+
td {
|
192 |
+
background: #bdf4fe !important;
|
193 |
+
height: 43px;
|
194 |
+
}
|
195 |
+
}
|
196 |
+
&.ui-sortable-helper {
|
197 |
+
td {
|
198 |
+
border-bottom: 1px solid #DDD;
|
199 |
+
&.sort {
|
200 |
+
border-left: 0;
|
201 |
+
}
|
202 |
+
}
|
203 |
+
}
|
204 |
+
&.new-option{
|
205 |
+
.svg-icon{
|
206 |
+
display: none;
|
207 |
+
}
|
208 |
+
td{
|
209 |
+
position: relative;
|
210 |
+
}
|
211 |
+
.sort {
|
212 |
+
&:before {
|
213 |
+
content: "\f463";
|
214 |
+
font-family: Dashicons;
|
215 |
+
position: absolute;
|
216 |
+
left: 10px;
|
217 |
+
top: 12px;
|
218 |
+
display: inline-block;
|
219 |
+
@include rotating4();
|
220 |
+
}
|
221 |
+
}
|
222 |
+
td{
|
223 |
+
&:after{
|
224 |
+
position: absolute;
|
225 |
+
content: '';
|
226 |
+
background: #FFF;
|
227 |
+
top: 0;
|
228 |
+
left: 0;
|
229 |
+
right: 0;
|
230 |
+
bottom: 0;
|
231 |
+
opacity: 0.5;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
}
|
235 |
+
}
|
236 |
+
}
|
237 |
+
}
|
238 |
+
.add-answer {
|
239 |
+
margin: 15px 0 0 0;
|
240 |
+
}
|
241 |
+
}
|
242 |
+
}
|
@@ -0,0 +1,587 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Quiz admin editor.
|
3 |
+
*/
|
4 |
+
#admin-editor-lp_quiz {
|
5 |
+
.lp-box-data-head {
|
6 |
+
padding: 12px 10px;
|
7 |
+
h3 {
|
8 |
+
padding: 0;
|
9 |
+
}
|
10 |
+
.status {
|
11 |
+
font-family: Dashicons;
|
12 |
+
font-size: 20px;
|
13 |
+
position: relative;
|
14 |
+
top: 5px;
|
15 |
+
margin-left: 10px;
|
16 |
+
visibility: hidden;
|
17 |
+
|
18 |
+
&:before {
|
19 |
+
content: "\f463";
|
20 |
+
}
|
21 |
+
|
22 |
+
&.loading {
|
23 |
+
visibility: visible;
|
24 |
+
animation: rotation 2s infinite linear;
|
25 |
+
display: inline-block;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
.collapse-list-questions {
|
29 |
+
font-family: Dashicons;
|
30 |
+
position: absolute;
|
31 |
+
top: 0;
|
32 |
+
right: 0;
|
33 |
+
bottom: 0;
|
34 |
+
font-size: 30px;
|
35 |
+
display: flex;
|
36 |
+
justify-content: center;
|
37 |
+
align-items: center;
|
38 |
+
cursor: pointer;
|
39 |
+
width: 40px;
|
40 |
+
height: 46px;
|
41 |
+
color: #999;
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
.lp-box-data-content {
|
46 |
+
.lp-list-questions {
|
47 |
+
color: #777;
|
48 |
+
border-collapse: collapse;
|
49 |
+
|
50 |
+
.table-row {
|
51 |
+
display: flex;
|
52 |
+
flex-direction: row;
|
53 |
+
text-align: center;
|
54 |
+
|
55 |
+
& > * {
|
56 |
+
width: 100%;
|
57 |
+
padding: 12px 10px
|
58 |
+
}
|
59 |
+
|
60 |
+
& > .sort {
|
61 |
+
flex: 0 0 15px;
|
62 |
+
cursor: url("../../images/openhand.cur") 7 5, default;
|
63 |
+
visibility: hidden;
|
64 |
+
position: relative;
|
65 |
+
font-size: 18px;
|
66 |
+
color: #d5dce0;
|
67 |
+
&:hover {
|
68 |
+
color: #0085ba;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
& > .order {
|
73 |
+
flex: 0 0 30px;
|
74 |
+
text-align: right;
|
75 |
+
font-weight: bold;
|
76 |
+
font-size: 15px;
|
77 |
+
padding: 12px 0;
|
78 |
+
&:after {
|
79 |
+
content: '.';
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
& > .type {
|
84 |
+
width: 150px;
|
85 |
+
}
|
86 |
+
|
87 |
+
& > .actions {
|
88 |
+
width: 300px;
|
89 |
+
}
|
90 |
+
|
91 |
+
& > .name {
|
92 |
+
padding-left: 5px;
|
93 |
+
}
|
94 |
+
&:hover {
|
95 |
+
& > .sort {
|
96 |
+
visibility: visible;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
.actions {
|
100 |
+
.lp-box-data-actions {
|
101 |
+
text-align: right !important;
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
.header {
|
107 |
+
border-bottom: 1px solid #ddd;
|
108 |
+
display: none;
|
109 |
+
.table-row {
|
110 |
+
& > * {
|
111 |
+
font-weight: bold;
|
112 |
+
}
|
113 |
+
|
114 |
+
& > .order {
|
115 |
+
&:after {
|
116 |
+
content: '';
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
& > .actions {
|
121 |
+
padding: 12px 0;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
.main {
|
127 |
+
.question-actions {
|
128 |
+
.name {
|
129 |
+
input {
|
130 |
+
width: 100%;
|
131 |
+
font-size: 14px;
|
132 |
+
border: none;
|
133 |
+
background: transparent;
|
134 |
+
box-shadow: none;
|
135 |
+
font-weight: normal;
|
136 |
+
color: #777;
|
137 |
+
padding: 0;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
}
|
141 |
+
.question-settings {
|
142 |
+
border: 1px solid #ddd;
|
143 |
+
border-left: none;
|
144 |
+
border-right: none;
|
145 |
+
& > * {
|
146 |
+
padding: 20px;
|
147 |
+
}
|
148 |
+
.quiz-question-data {
|
149 |
+
table.lp-list-options {
|
150 |
+
border: 1px solid #ddd;
|
151 |
+
.sort {
|
152 |
+
width: 12px;
|
153 |
+
padding: 8px 5px;
|
154 |
+
}
|
155 |
+
.answer-text {
|
156 |
+
padding-left: 5px;
|
157 |
+
width: calc(100% - 100px);
|
158 |
+
}
|
159 |
+
.order {
|
160 |
+
width: 30px;
|
161 |
+
text-align: right;
|
162 |
+
padding: 0;
|
163 |
+
}
|
164 |
+
.answer-correct {
|
165 |
+
width: 65px;
|
166 |
+
text-align: center;
|
167 |
+
}
|
168 |
+
.actions {
|
169 |
+
padding: 0;
|
170 |
+
text-align: right;
|
171 |
+
.lp-toolbar-btn {
|
172 |
+
height: 42px;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
tbody {
|
176 |
+
tr {
|
177 |
+
background: #fff;
|
178 |
+
border: 1px solid #DDD;
|
179 |
+
position: relative;
|
180 |
+
&:nth-child(2n) {
|
181 |
+
background: #f4fcff;
|
182 |
+
}
|
183 |
+
td {
|
184 |
+
padding: 0 10px;
|
185 |
+
background: inherit;
|
186 |
+
position: static;
|
187 |
+
border: none;
|
188 |
+
&.sort {
|
189 |
+
cursor: url("../../images/openhand.cur") 7 5, default;
|
190 |
+
width: 12px;
|
191 |
+
position: relative;
|
192 |
+
|
193 |
+
}
|
194 |
+
&.order {
|
195 |
+
font-weight: bold;
|
196 |
+
&:after {
|
197 |
+
//content: '.';
|
198 |
+
}
|
199 |
+
}
|
200 |
+
&.answer-text {
|
201 |
+
padding-left: 5px;
|
202 |
+
}
|
203 |
+
&.answer-correct {
|
204 |
+
text-align: center;
|
205 |
+
}
|
206 |
+
}
|
207 |
+
.svg-icon {
|
208 |
+
height: 18px;
|
209 |
+
vertical-align: middle;
|
210 |
+
visibility: hidden;
|
211 |
+
fill: #d5dce0;
|
212 |
+
}
|
213 |
+
&:hover {
|
214 |
+
.svg-icon {
|
215 |
+
visibility: visible;
|
216 |
+
}
|
217 |
+
.sort {
|
218 |
+
&:hover {
|
219 |
+
.svg-icon {
|
220 |
+
fill: #0085ba;
|
221 |
+
}
|
222 |
+
}
|
223 |
+
}
|
224 |
+
}
|
225 |
+
&.ui-sortable-placeholder {
|
226 |
+
visibility: visible !important;
|
227 |
+
td {
|
228 |
+
height: 43px;
|
229 |
+
background: #bdf4fe !important;
|
230 |
+
}
|
231 |
+
}
|
232 |
+
&.ui-sortable-helper {
|
233 |
+
border-left: none;
|
234 |
+
border-right: none;
|
235 |
+
td {
|
236 |
+
border-bottom: 1px solid #DDD;
|
237 |
+
&.sort {
|
238 |
+
border-left: 0;
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
+
&.empty-option {
|
243 |
+
.sort {
|
244 |
+
i {
|
245 |
+
display: none;
|
246 |
+
}
|
247 |
+
&:before {
|
248 |
+
font-family: Dashicons;
|
249 |
+
content: "\f463";
|
250 |
+
display: inline-block;
|
251 |
+
font-size: 18px;
|
252 |
+
position: absolute;
|
253 |
+
left: 4px;
|
254 |
+
top: 12px;
|
255 |
+
@include rotating4();
|
256 |
+
}
|
257 |
+
}
|
258 |
+
td {
|
259 |
+
position: relative;
|
260 |
+
&:after {
|
261 |
+
content: '';
|
262 |
+
top: 0;
|
263 |
+
left: 0;
|
264 |
+
right: 1px;
|
265 |
+
bottom: 0;
|
266 |
+
background: #FFF;
|
267 |
+
position: absolute;
|
268 |
+
opacity: 0.5;
|
269 |
+
}
|
270 |
+
}
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
.answer-text {
|
275 |
+
input {
|
276 |
+
width: 100%;
|
277 |
+
font-size: 14px;
|
278 |
+
border: none;
|
279 |
+
background: transparent;
|
280 |
+
box-shadow: none;
|
281 |
+
font-weight: normal;
|
282 |
+
color: #777;
|
283 |
+
padding: 0;
|
284 |
+
}
|
285 |
+
}
|
286 |
+
}
|
287 |
+
}
|
288 |
+
}
|
289 |
+
}
|
290 |
+
}
|
291 |
+
|
292 |
+
.main {
|
293 |
+
.question-item {
|
294 |
+
background: #fff;
|
295 |
+
border-bottom: 1px solid #f1f1f1;
|
296 |
+
&:nth-child(2n+1) {
|
297 |
+
background: #f4fcff;
|
298 |
+
}
|
299 |
+
&.ui-sortable-helper {
|
300 |
+
border-top: 1px solid #f1f1f1;
|
301 |
+
}
|
302 |
+
&.ui-sortable-placeholder {
|
303 |
+
visibility: visible !important;
|
304 |
+
background: #bdf4fe !important;
|
305 |
+
display: block;
|
306 |
+
border-color: #bdf4fe !important;
|
307 |
+
}
|
308 |
+
&.empty-question, &.updating {
|
309 |
+
position: relative;
|
310 |
+
.question-actions {
|
311 |
+
.sort {
|
312 |
+
visibility: visible;
|
313 |
+
.fa {
|
314 |
+
display: none;
|
315 |
+
}
|
316 |
+
&:after {
|
317 |
+
font-family: Dashicons;
|
318 |
+
content: "\f463";
|
319 |
+
font-size: 20px;
|
320 |
+
display: inline-block;
|
321 |
+
position: absolute;
|
322 |
+
left: 5px;
|
323 |
+
@include rotating4();
|
324 |
+
}
|
325 |
+
}
|
326 |
+
}
|
327 |
+
&:after {
|
328 |
+
content: '';
|
329 |
+
position: absolute;
|
330 |
+
top: 0;
|
331 |
+
left: 0;
|
332 |
+
right: 0;
|
333 |
+
bottom: 0;
|
334 |
+
background: #FFF;
|
335 |
+
opacity: 0.5;
|
336 |
+
}
|
337 |
+
}
|
338 |
+
&.empty-question {
|
339 |
+
.question-settings {
|
340 |
+
display: none;
|
341 |
+
}
|
342 |
+
}
|
343 |
+
.cell {
|
344 |
+
padding: 10px;
|
345 |
+
}
|
346 |
+
.question-actions {
|
347 |
+
.name {
|
348 |
+
input {
|
349 |
+
width: 100%;
|
350 |
+
font-size: 14px;
|
351 |
+
border: none;
|
352 |
+
background: transparent;
|
353 |
+
box-shadow: none;
|
354 |
+
font-weight: normal;
|
355 |
+
color: #777;
|
356 |
+
padding: 0;
|
357 |
+
}
|
358 |
+
}
|
359 |
+
.actions {
|
360 |
+
padding: 0;
|
361 |
+
margin: 0;
|
362 |
+
.lp-toolbar-buttons {
|
363 |
+
position: static;
|
364 |
+
z-index: 10;
|
365 |
+
height: 100%;
|
366 |
+
text-align: left;
|
367 |
+
> div {
|
368 |
+
a {
|
369 |
+
visibility: hidden;
|
370 |
+
}
|
371 |
+
}
|
372 |
+
.lp-toolbar-btn {
|
373 |
+
height: 100%;
|
374 |
+
.lp-btn-icon {
|
375 |
+
width: 28px;
|
376 |
+
height: 30px;
|
377 |
+
text-align: center;
|
378 |
+
position: absolute;
|
379 |
+
top: 50%;
|
380 |
+
margin-top: -15px;
|
381 |
+
left: 50%;
|
382 |
+
margin-left: -15px;
|
383 |
+
line-height: 30px;
|
384 |
+
}
|
385 |
+
ul {
|
386 |
+
z-index: 9;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
.lp-btn-toggle {
|
390 |
+
font-family: Dashicons;
|
391 |
+
line-height: 42px;
|
392 |
+
font-size: 16px;
|
393 |
+
&.open {
|
394 |
+
&::after {
|
395 |
+
content: '\f343';
|
396 |
+
}
|
397 |
+
}
|
398 |
+
&.close {
|
399 |
+
&::after {
|
400 |
+
content: '\f347';
|
401 |
+
}
|
402 |
+
}
|
403 |
+
}
|
404 |
+
.lp-toolbar-btn-dropdown {
|
405 |
+
ul {
|
406 |
+
li {
|
407 |
+
border-bottom: 1px solid #eee;
|
408 |
+
a {
|
409 |
+
padding: 10px 25px;
|
410 |
+
&.remove {
|
411 |
+
color: #0073aa;
|
412 |
+
}
|
413 |
+
}
|
414 |
+
}
|
415 |
+
}
|
416 |
+
}
|
417 |
+
}
|
418 |
+
}
|
419 |
+
&:hover {
|
420 |
+
.lp-toolbar-buttons {
|
421 |
+
> div {
|
422 |
+
a {
|
423 |
+
visibility: visible;
|
424 |
+
}
|
425 |
+
}
|
426 |
+
}
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
430 |
+
.question-settings {
|
431 |
+
background: #fff;
|
432 |
+
|
433 |
+
.quiz-question-options {
|
434 |
+
text-align: left;
|
435 |
+
padding-left: 0;
|
436 |
+
.inside {
|
437 |
+
margin: 0;
|
438 |
+
padding: 0;
|
439 |
+
.rwmb-meta-box {
|
440 |
+
.rwmb-field {
|
441 |
+
padding: 20px;
|
442 |
+
margin: 0;
|
443 |
+
&:nth-child(2n+1) {
|
444 |
+
background: #f4fcff;
|
445 |
+
}
|
446 |
+
}
|
447 |
+
}
|
448 |
+
}
|
449 |
+
.postbox {
|
450 |
+
.hndle {
|
451 |
+
cursor: default;
|
452 |
+
}
|
453 |
+
.toggle {
|
454 |
+
float: right;
|
455 |
+
width: 36px;
|
456 |
+
height: 36px;
|
457 |
+
position: absolute;
|
458 |
+
top: 0;
|
459 |
+
right: 0;
|
460 |
+
line-height: 36px;
|
461 |
+
text-align: center;
|
462 |
+
&:after {
|
463 |
+
font-family: Dashicons;
|
464 |
+
content: "\f460";
|
465 |
+
font-size: 18px;
|
466 |
+
}
|
467 |
+
}
|
468 |
+
}
|
469 |
+
}
|
470 |
+
&.closed {
|
471 |
+
.quiz-question-options {
|
472 |
+
width: 38px;
|
473 |
+
}
|
474 |
+
.postbox {
|
475 |
+
min-width: 34px;
|
476 |
+
height: 34px;
|
477 |
+
line-height: 42px;
|
478 |
+
text-align: center;
|
479 |
+
.hndle {
|
480 |
+
display: none;
|
481 |
+
}
|
482 |
+
.toggle {
|
483 |
+
&:after {
|
484 |
+
content: "\f132";
|
485 |
+
}
|
486 |
+
}
|
487 |
+
}
|
488 |
+
}
|
489 |
+
}
|
490 |
+
}
|
491 |
+
}
|
492 |
+
|
493 |
+
.footer {
|
494 |
+
border-top: 1px solid #DDD;
|
495 |
+
margin-top: -1px;
|
496 |
+
.order {
|
497 |
+
line-height: 28px;
|
498 |
+
}
|
499 |
+
.table-row {
|
500 |
+
text-align: left;
|
501 |
+
.add-new-question {
|
502 |
+
.title {
|
503 |
+
position: relative;
|
504 |
+
display: inline-block;
|
505 |
+
min-width: 500px;
|
506 |
+
input {
|
507 |
+
border: 0;
|
508 |
+
width: 100%;
|
509 |
+
margin: 0;
|
510 |
+
padding: 6px 0px;
|
511 |
+
@include box-shadow(none);
|
512 |
+
@include border-radius(3px);
|
513 |
+
&:focus {
|
514 |
+
border-color: #DDD;
|
515 |
+
}
|
516 |
+
&::placeholder {
|
517 |
+
color: #999;
|
518 |
+
font-style: italic;
|
519 |
+
border-bottom: 1px solid #DDD;
|
520 |
+
display: inline-block;
|
521 |
+
}
|
522 |
+
}
|
523 |
+
}
|
524 |
+
.add-new {
|
525 |
+
display: inline;
|
526 |
+
position: relative;
|
527 |
+
ul.question-types {
|
528 |
+
position: absolute;
|
529 |
+
margin: 6px;
|
530 |
+
background-color: #FFF;
|
531 |
+
top: 100%;
|
532 |
+
border: 1px solid #DDD;
|
533 |
+
right: -2px;
|
534 |
+
width: 200px;
|
535 |
+
z-index: 9999999;
|
536 |
+
display: none;
|
537 |
+
li {
|
538 |
+
margin: 0;
|
539 |
+
a {
|
540 |
+
display: block;
|
541 |
+
padding: 10px;
|
542 |
+
line-height: 1;
|
543 |
+
text-decoration: none;
|
544 |
+
outline: none;
|
545 |
+
box-shadow: none;
|
546 |
+
}
|
547 |
+
}
|
548 |
+
}
|
549 |
+
|
550 |
+
button {
|
551 |
+
&:hover {
|
552 |
+
& + .question-types {
|
553 |
+
display: block;
|
554 |
+
}
|
555 |
+
}
|
556 |
+
|
557 |
+
& + .question-types {
|
558 |
+
&:hover {
|
559 |
+
display: block;
|
560 |
+
}
|
561 |
+
}
|
562 |
+
|
563 |
+
&[disabled="disabled"] {
|
564 |
+
&:hover {
|
565 |
+
& + .question-types {
|
566 |
+
display: none;
|
567 |
+
}
|
568 |
+
}
|
569 |
+
}
|
570 |
+
}
|
571 |
+
}
|
572 |
+
.select-item {
|
573 |
+
display: inline;
|
574 |
+
}
|
575 |
+
button {
|
576 |
+
height: 30px;
|
577 |
+
box-shadow: 0 1px 0 #ccc !important;
|
578 |
+
}
|
579 |
+
}
|
580 |
+
}
|
581 |
+
}
|
582 |
+
}
|
583 |
+
.question-button-actions {
|
584 |
+
text-align: left;
|
585 |
+
}
|
586 |
+
}
|
587 |
+
}
|
@@ -2,6 +2,18 @@
|
|
2 |
.color-schemas {
|
3 |
margin: 0 20px 20px 0;
|
4 |
float: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
table {
|
6 |
border-collapse: collapse;
|
7 |
position: relative;
|
@@ -45,10 +57,10 @@
|
|
45 |
margin: 0;
|
46 |
}
|
47 |
.color-selector input {
|
48 |
-
width: 0 !important;
|
49 |
-
opacity: 0;
|
50 |
}
|
51 |
-
.clone-schema{
|
52 |
display: none;
|
53 |
}
|
54 |
&:first-child {
|
@@ -77,7 +89,7 @@
|
|
77 |
display: none;
|
78 |
}
|
79 |
}
|
80 |
-
.clone-schema{
|
81 |
display: inline-block;
|
82 |
}
|
83 |
}
|
2 |
.color-schemas {
|
3 |
margin: 0 20px 20px 0;
|
4 |
float: left;
|
5 |
+
.wp-color-picker {
|
6 |
+
width: 80px;
|
7 |
+
height: 24px;
|
8 |
+
vertical-align: top;
|
9 |
+
margin: 0;
|
10 |
+
}
|
11 |
+
.wp-picker-holder{
|
12 |
+
position: absolute;
|
13 |
+
}
|
14 |
+
.buttons{
|
15 |
+
display: none;
|
16 |
+
}
|
17 |
table {
|
18 |
border-collapse: collapse;
|
19 |
position: relative;
|
57 |
margin: 0;
|
58 |
}
|
59 |
.color-selector input {
|
60 |
+
//width: 0 !important;
|
61 |
+
//opacity: 0;
|
62 |
}
|
63 |
+
.clone-schema {
|
64 |
display: none;
|
65 |
}
|
66 |
&:first-child {
|
89 |
display: none;
|
90 |
}
|
91 |
}
|
92 |
+
.clone-schema {
|
93 |
display: inline-block;
|
94 |
}
|
95 |
}
|
@@ -60,6 +60,19 @@
|
|
60 |
}
|
61 |
}
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
.learnpress {
|
64 |
.actions {
|
65 |
margin: 0;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
.search-box {
|
64 |
+
input[name="post-search-author"],
|
65 |
+
.select2-container {
|
66 |
+
margin: 0;
|
67 |
+
min-width: 200px;
|
68 |
+
vertical-align: top;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
.learn-press-notice-assigned-item{
|
73 |
+
color: #FF0000;
|
74 |
+
}
|
75 |
+
|
76 |
.learnpress {
|
77 |
.actions {
|
78 |
margin: 0;
|
@@ -105,22 +105,7 @@ abstract class LP_Abstract_Settings {
|
|
105 |
}
|
106 |
$field['std'] = apply_filters( 'learn-press/settings/default-field-value', $std, $field );
|
107 |
$field['learn-press-settings'] = 'yes';
|
108 |
-
|
109 |
-
// Re-format conditional logic fields
|
110 |
-
if ( ! empty( $field['visibility'] ) ) {
|
111 |
-
$conditional = $field['visibility'];
|
112 |
-
|
113 |
-
if ( ! array_key_exists( 0, $conditional['conditional'] ) ) {
|
114 |
-
$conditional['conditional'] = array(
|
115 |
-
$conditional['conditional']
|
116 |
-
);
|
117 |
-
}
|
118 |
-
foreach ( $conditional['conditional'] as $kk => $conditional_field ) {
|
119 |
-
$conditional['conditional'][ $kk ]['field'] = $this->get_admin_field_name( $conditional_field['field'] );
|
120 |
-
}
|
121 |
-
|
122 |
-
$field['visibility'] = $conditional;
|
123 |
-
}
|
124 |
$settings[ $k ] = $field;
|
125 |
}
|
126 |
|
@@ -130,6 +115,26 @@ abstract class LP_Abstract_Settings {
|
|
130 |
return $settings;
|
131 |
}
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
/**
|
134 |
* @param $option_name
|
135 |
* @param null $default
|
105 |
}
|
106 |
$field['std'] = apply_filters( 'learn-press/settings/default-field-value', $std, $field );
|
107 |
$field['learn-press-settings'] = 'yes';
|
108 |
+
$this->parse_conditional( $field );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
$settings[ $k ] = $field;
|
110 |
}
|
111 |
|
115 |
return $settings;
|
116 |
}
|
117 |
|
118 |
+
public function parse_conditional( &$field ) {
|
119 |
+
// Re-format conditional logic fields
|
120 |
+
if ( ! empty( $field['visibility'] ) ) {
|
121 |
+
$conditional = $field['visibility'];
|
122 |
+
|
123 |
+
if ( ! array_key_exists( 0, $conditional['conditional'] ) ) {
|
124 |
+
$conditional['conditional'] = array(
|
125 |
+
$conditional['conditional']
|
126 |
+
);
|
127 |
+
}
|
128 |
+
foreach ( $conditional['conditional'] as $kk => $conditional_field ) {
|
129 |
+
$conditional['conditional'][ $kk ]['field'] = $this->get_admin_field_name( $conditional_field['field'] );
|
130 |
+
}
|
131 |
+
|
132 |
+
$field['visibility'] = $conditional;
|
133 |
+
}
|
134 |
+
|
135 |
+
return $field;
|
136 |
+
}
|
137 |
+
|
138 |
/**
|
139 |
* @param $option_name
|
140 |
* @param null $default
|
@@ -86,6 +86,7 @@ if ( ! class_exists( 'LP_Admin_Ajax' ) ) {
|
|
86 |
'remove_items_from_order',
|
87 |
'update_email_status',
|
88 |
'create-pages',
|
|
|
89 |
'skip-notice-install'
|
90 |
);
|
91 |
foreach ( $ajax_events as $action => $callback ) {
|
@@ -106,6 +107,31 @@ if ( ! class_exists( 'LP_Admin_Ajax' ) ) {
|
|
106 |
}
|
107 |
}
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
/**
|
110 |
* Hide notice install
|
111 |
*/
|
@@ -464,8 +490,7 @@ if ( ! class_exists( 'LP_Admin_Ajax' ) ) {
|
|
464 |
if ( false === $data ) {
|
465 |
try {
|
466 |
$data = json_decode( file_get_contents( 'php://input' ), true );
|
467 |
-
}
|
468 |
-
catch ( Exception $exception ) {
|
469 |
}
|
470 |
}
|
471 |
if ( $data && func_num_args() > 0 ) {
|
86 |
'remove_items_from_order',
|
87 |
'update_email_status',
|
88 |
'create-pages',
|
89 |
+
'search-authors',
|
90 |
'skip-notice-install'
|
91 |
);
|
92 |
foreach ( $ajax_events as $action => $callback ) {
|
107 |
}
|
108 |
}
|
109 |
|
110 |
+
public static function search_authors() {
|
111 |
+
$args = array(
|
112 |
+
'orderby' => 'name',
|
113 |
+
'order' => 'ASC',
|
114 |
+
'search' => sprintf( '*%s*', esc_attr( LP_Request::get_string( 'term' ) ) ),
|
115 |
+
'search_columns' => array( 'user_login', 'user_email' )
|
116 |
+
);
|
117 |
+
$q = new WP_User_Query( $args );
|
118 |
+
$users = array();
|
119 |
+
|
120 |
+
if ( $results = $q->get_results() ) {
|
121 |
+
foreach ( $results as $result ) {
|
122 |
+
$users[] = array( 'id' => $result->ID,
|
123 |
+
'text' => learn_press_get_profile_display_name( $result->ID )
|
124 |
+
);
|
125 |
+
}
|
126 |
+
}
|
127 |
+
echo json_encode(
|
128 |
+
array(
|
129 |
+
'results' => $users
|
130 |
+
)
|
131 |
+
);
|
132 |
+
die();
|
133 |
+
}
|
134 |
+
|
135 |
/**
|
136 |
* Hide notice install
|
137 |
*/
|
490 |
if ( false === $data ) {
|
491 |
try {
|
492 |
$data = json_decode( file_get_contents( 'php://input' ), true );
|
493 |
+
} catch ( Exception $exception ) {
|
|
|
494 |
}
|
495 |
}
|
496 |
if ( $data && func_num_args() > 0 ) {
|
@@ -100,7 +100,7 @@ if ( ! class_exists( 'LP_Admin_Dashboard' ) ) {
|
|
100 |
if ( $orders ) {
|
101 |
foreach ( $orders as $order ) {
|
102 |
$order = learn_press_get_order( $order->ID );
|
103 |
-
$total = $total + $order->order_total;
|
104 |
}
|
105 |
}
|
106 |
|
100 |
if ( $orders ) {
|
101 |
foreach ( $orders as $order ) {
|
102 |
$order = learn_press_get_order( $order->ID );
|
103 |
+
$total = $total + floatval($order->order_total);
|
104 |
}
|
105 |
}
|
106 |
|
@@ -162,6 +162,7 @@ class LP_Admin_Editor_Course extends LP_Admin_Editor {
|
|
162 |
*/
|
163 |
public function new_section( $args = array() ) {
|
164 |
$section_name = ! empty( $args['section_name'] ) ? $args['section_name'] : false;
|
|
|
165 |
|
166 |
$args = array(
|
167 |
'section_course_id' => $this->course->get_id(),
|
@@ -170,10 +171,12 @@ class LP_Admin_Editor_Course extends LP_Admin_Editor {
|
|
170 |
'items' => array(),
|
171 |
);
|
172 |
|
|
|
173 |
// create section
|
174 |
$section = $this->section_curd->create( $args );
|
175 |
|
176 |
$this->result = array(
|
|
|
177 |
'id' => $section['section_id'],
|
178 |
'items' => $section['items'],
|
179 |
'title' => $section['section_name'],
|
@@ -237,7 +240,7 @@ class LP_Admin_Editor_Course extends LP_Admin_Editor {
|
|
237 |
return false;
|
238 |
}
|
239 |
|
240 |
-
$this->result =
|
241 |
|
242 |
return true;
|
243 |
}
|
@@ -259,6 +262,8 @@ class LP_Admin_Editor_Course extends LP_Admin_Editor {
|
|
259 |
// create new lesson, quiz and add to course
|
260 |
$this->result = $this->section_curd->new_item( $section_id, $item );
|
261 |
|
|
|
|
|
262 |
return true;
|
263 |
}
|
264 |
|
162 |
*/
|
163 |
public function new_section( $args = array() ) {
|
164 |
$section_name = ! empty( $args['section_name'] ) ? $args['section_name'] : false;
|
165 |
+
$temp_id = isset( $args['temp_id'] ) ? $args['temp_id'] : 0;
|
166 |
|
167 |
$args = array(
|
168 |
'section_course_id' => $this->course->get_id(),
|
171 |
'items' => array(),
|
172 |
);
|
173 |
|
174 |
+
|
175 |
// create section
|
176 |
$section = $this->section_curd->create( $args );
|
177 |
|
178 |
$this->result = array(
|
179 |
+
'temp_id' => $temp_id,
|
180 |
'id' => $section['section_id'],
|
181 |
'items' => $section['items'],
|
182 |
'title' => $section['section_name'],
|
240 |
return false;
|
241 |
}
|
242 |
|
243 |
+
$this->result = wp_trash_post( $item_id );
|
244 |
|
245 |
return true;
|
246 |
}
|
262 |
// create new lesson, quiz and add to course
|
263 |
$this->result = $this->section_curd->new_item( $section_id, $item );
|
264 |
|
265 |
+
$this->section_curd->update_final_item();
|
266 |
+
|
267 |
return true;
|
268 |
}
|
269 |
|
@@ -211,7 +211,7 @@ class LP_Admin_Editor_Question extends LP_Admin_Editor {
|
|
211 |
// update correct answer
|
212 |
$this->question = $this->question_curd->change_correct_answer( $this->question, $correct );
|
213 |
|
214 |
-
$this->result = $this->
|
215 |
|
216 |
return true;
|
217 |
}
|
@@ -232,11 +232,17 @@ class LP_Admin_Editor_Question extends LP_Admin_Editor {
|
|
232 |
// delete answer
|
233 |
$this->question_curd->delete_answer( $this->question->get_id(), $answer_id );
|
234 |
|
235 |
-
$this->result = $this->
|
236 |
|
237 |
return true;
|
238 |
}
|
239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
/**
|
241 |
* @param array $args
|
242 |
*
|
@@ -248,7 +254,7 @@ class LP_Admin_Editor_Question extends LP_Admin_Editor {
|
|
248 |
// add new
|
249 |
$this->question_curd->new_answer( $this->question->get_id(), $answer );
|
250 |
|
251 |
-
$this->result = $this->
|
252 |
|
253 |
return true;
|
254 |
}
|
211 |
// update correct answer
|
212 |
$this->question = $this->question_curd->change_correct_answer( $this->question, $correct );
|
213 |
|
214 |
+
$this->result = $this->_get_answers();
|
215 |
|
216 |
return true;
|
217 |
}
|
232 |
// delete answer
|
233 |
$this->question_curd->delete_answer( $this->question->get_id(), $answer_id );
|
234 |
|
235 |
+
$this->result = $this->_get_answers();
|
236 |
|
237 |
return true;
|
238 |
}
|
239 |
|
240 |
+
public function _get_answers() {
|
241 |
+
$answers = $this->question->get_data( 'answer_options' );
|
242 |
+
|
243 |
+
return $answers ? array_values( $answers ) : array();
|
244 |
+
}
|
245 |
+
|
246 |
/**
|
247 |
* @param array $args
|
248 |
*
|
254 |
// add new
|
255 |
$this->question_curd->new_answer( $this->question->get_id(), $answer );
|
256 |
|
257 |
+
$this->result = $this->_get_answers();
|
258 |
|
259 |
return true;
|
260 |
}
|
@@ -176,6 +176,10 @@ class LP_Admin_Editor_Quiz extends LP_Admin_Editor {
|
|
176 |
// get new question data
|
177 |
$this->result = $this->get_question_data_to_quiz_editor( $new_question, true, array( 'open' => true ) );
|
178 |
|
|
|
|
|
|
|
|
|
179 |
return true;
|
180 |
}
|
181 |
|
@@ -309,7 +313,7 @@ class LP_Admin_Editor_Quiz extends LP_Admin_Editor {
|
|
309 |
return false;
|
310 |
}
|
311 |
|
312 |
-
$this->result =
|
313 |
|
314 |
return true;
|
315 |
}
|
@@ -423,6 +427,7 @@ class LP_Admin_Editor_Quiz extends LP_Admin_Editor {
|
|
423 |
|
424 |
if ( $new_answer_id ) {
|
425 |
$this->result = array_merge( $answer, array(
|
|
|
426 |
'question_answer_id' => $new_answer_id,
|
427 |
'question_id' => $question_id,
|
428 |
'answer_order' => count( $question->get_data( 'answer_options' ) )
|
@@ -434,6 +439,19 @@ class LP_Admin_Editor_Quiz extends LP_Admin_Editor {
|
|
434 |
return false;
|
435 |
}
|
436 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
/**
|
438 |
* @param array $args
|
439 |
*
|
176 |
// get new question data
|
177 |
$this->result = $this->get_question_data_to_quiz_editor( $new_question, true, array( 'open' => true ) );
|
178 |
|
179 |
+
if ( isset( $question['id'] ) ) {
|
180 |
+
$this->result['temp_id'] = $question['id'];
|
181 |
+
}
|
182 |
+
|
183 |
return true;
|
184 |
}
|
185 |
|
313 |
return false;
|
314 |
}
|
315 |
|
316 |
+
$this->result = wp_trash_post( $question_id );
|
317 |
|
318 |
return true;
|
319 |
}
|
427 |
|
428 |
if ( $new_answer_id ) {
|
429 |
$this->result = array_merge( $answer, array(
|
430 |
+
'temp_id' => isset( $args['question_answer_id'] ) ? $args['question_answer_id'] : 0,
|
431 |
'question_answer_id' => $new_answer_id,
|
432 |
'question_id' => $question_id,
|
433 |
'answer_order' => count( $question->get_data( 'answer_options' ) )
|
439 |
return false;
|
440 |
}
|
441 |
|
442 |
+
public function update_quiz_questions_hidden( $args = array() ) {
|
443 |
+
$id = $args['id'];
|
444 |
+
$questions = $args['hidden'];
|
445 |
+
|
446 |
+
if ( $questions ) {
|
447 |
+
update_post_meta( $id, '_hidden_questions_settings', $questions );
|
448 |
+
} else {
|
449 |
+
delete_post_meta( $id, '_hidden_questions_settings' );
|
450 |
+
}
|
451 |
+
|
452 |
+
return true;
|
453 |
+
}
|
454 |
+
|
455 |
/**
|
456 |
* @param array $args
|
457 |
*
|
@@ -18,7 +18,12 @@ function _learn_press_set_user_items( $query ) {
|
|
18 |
if ( current_user_can( 'manage_options' ) || ! current_user_can( LP_TEACHER_ROLE ) || ! is_admin() || ( $pagenow != 'edit.php' ) ) {
|
19 |
return $query;
|
20 |
}
|
21 |
-
if ( ! in_array( $post_type,
|
|
|
|
|
|
|
|
|
|
|
22 |
return;
|
23 |
}
|
24 |
$items = $wpdb->get_col(
|
18 |
if ( current_user_can( 'manage_options' ) || ! current_user_can( LP_TEACHER_ROLE ) || ! is_admin() || ( $pagenow != 'edit.php' ) ) {
|
19 |
return $query;
|
20 |
}
|
21 |
+
if ( ! in_array( $post_type, apply_filters( 'lear-press/filter-user-access-types', array(
|
22 |
+
LP_COURSE_CPT,
|
23 |
+
LP_LESSON_CPT,
|
24 |
+
LP_QUIZ_CPT,
|
25 |
+
LP_QUESTION_CPT
|
26 |
+
) ) ) ) {
|
27 |
return;
|
28 |
}
|
29 |
$items = $wpdb->get_col(
|
@@ -146,6 +146,9 @@ if ( ! class_exists( 'LP_Meta_Box_Helper' ) ) {
|
|
146 |
* @return bool
|
147 |
*/
|
148 |
public static function include_field( $field ) {
|
|
|
|
|
|
|
149 |
if ( is_array( $field ) && ! empty( $field['type'] ) ) {
|
150 |
$type = $field['type'];
|
151 |
} else {
|
146 |
* @return bool
|
147 |
*/
|
148 |
public static function include_field( $field ) {
|
149 |
+
|
150 |
+
$field = RWMB_Field::map_types( $field );
|
151 |
+
|
152 |
if ( is_array( $field ) && ! empty( $field['type'] ) ) {
|
153 |
$type = $field['type'];
|
154 |
} else {
|
@@ -94,7 +94,7 @@ class RWMB_Color_Schema_Field extends RWMB_Field {
|
|
94 |
<?php } ?>
|
95 |
</tbody>
|
96 |
</table>
|
97 |
-
<p>
|
98 |
<button class="button clone-schema"
|
99 |
type="button"><?php _e( 'Save as new', 'learnpress' ); ?></button>
|
100 |
<a class="button reset-schema"
|
94 |
<?php } ?>
|
95 |
</tbody>
|
96 |
</table>
|
97 |
+
<p class="buttons">
|
98 |
<button class="button clone-schema"
|
99 |
type="button"><?php _e( 'Save as new', 'learnpress' ); ?></button>
|
100 |
<a class="button reset-schema"
|
@@ -107,7 +107,7 @@ class LP_Settings_Courses extends LP_Abstract_Settings_Page {
|
|
107 |
'type' => 'pages-dropdown'
|
108 |
),
|
109 |
array(
|
110 |
-
'title' => __( 'Courses
|
111 |
'desc' => __( 'Number of courses displayed per page.', 'learnpress' ),
|
112 |
'id' => 'archive_course_limit',
|
113 |
'default' => '10',
|
@@ -176,28 +176,28 @@ class LP_Settings_Courses extends LP_Abstract_Settings_Page {
|
|
176 |
'type' => 'heading',
|
177 |
'desc' => __( 'Thumbnail generation for archive/single course.', 'learnpress' )
|
178 |
),
|
179 |
-
array(
|
180 |
-
'title' => __( 'Single course', 'learnpress' ),
|
181 |
-
'id' => 'generate_course_thumbnail',
|
182 |
-
'default' => 'yes',
|
183 |
-
'type' => 'yes-no',
|
184 |
-
'desc' => __( 'Turn on/off courses extra thumbnail.', 'learnpress' ),
|
185 |
-
),
|
186 |
-
array(
|
187 |
-
'title' => __( 'Thumbnail dimensions', 'learnpress' ),
|
188 |
-
'id' => 'single_course_image_size',
|
189 |
-
'default' => array( 800, 450, 'yes' ),
|
190 |
-
'type' => 'image-dimensions',
|
191 |
-
'visibility' => array(
|
192 |
-
'state' => 'show',
|
193 |
-
|
194 |
-
'conditional' => array(
|
195 |
-
'field' => 'generate_course_thumbnail',
|
196 |
-
'compare' => '=',
|
197 |
-
'value' => 'yes'
|
198 |
-
)
|
199 |
-
)
|
200 |
-
),
|
201 |
array(
|
202 |
'title' => __( 'Archive course', 'learnpress' ),
|
203 |
'id' => 'archive_course_thumbnail',
|
107 |
'type' => 'pages-dropdown'
|
108 |
),
|
109 |
array(
|
110 |
+
'title' => __( 'Courses per page', 'learnpress' ),
|
111 |
'desc' => __( 'Number of courses displayed per page.', 'learnpress' ),
|
112 |
'id' => 'archive_course_limit',
|
113 |
'default' => '10',
|
176 |
'type' => 'heading',
|
177 |
'desc' => __( 'Thumbnail generation for archive/single course.', 'learnpress' )
|
178 |
),
|
179 |
+
// array(
|
180 |
+
// 'title' => __( 'Single course', 'learnpress' ),
|
181 |
+
// 'id' => 'generate_course_thumbnail',
|
182 |
+
// 'default' => 'yes',
|
183 |
+
// 'type' => 'yes-no',
|
184 |
+
// 'desc' => __( 'Turn on/off courses extra thumbnail.', 'learnpress' ),
|
185 |
+
// ),
|
186 |
+
// array(
|
187 |
+
// 'title' => __( 'Thumbnail dimensions', 'learnpress' ),
|
188 |
+
// 'id' => 'single_course_image_size',
|
189 |
+
// 'default' => array( 800, 450, 'yes' ),
|
190 |
+
// 'type' => 'image-dimensions',
|
191 |
+
// 'visibility' => array(
|
192 |
+
// 'state' => 'show',
|
193 |
+
//
|
194 |
+
// 'conditional' => array(
|
195 |
+
// 'field' => 'generate_course_thumbnail',
|
196 |
+
// 'compare' => '=',
|
197 |
+
// 'value' => 'yes'
|
198 |
+
// )
|
199 |
+
// )
|
200 |
+
// ),
|
201 |
array(
|
202 |
'title' => __( 'Archive course', 'learnpress' ),
|
203 |
'id' => 'archive_course_thumbnail',
|
@@ -38,8 +38,9 @@ class LP_Settings_Profile extends LP_Abstract_Settings_Page {
|
|
38 |
$profile_slug = 'profile';
|
39 |
|
40 |
if ( $profile_id = learn_press_get_page_id( 'profile' ) ) {
|
41 |
-
$profile_post = get_post(
|
42 |
-
|
|
|
43 |
}
|
44 |
$profile_url = site_url() . '/' . $profile_slug . '/' . $username;
|
45 |
|
@@ -105,7 +106,7 @@ class LP_Settings_Profile extends LP_Abstract_Settings_Page {
|
|
105 |
)
|
106 |
),
|
107 |
array(
|
108 |
-
'title' => __( 'Courses
|
109 |
'id' => 'profile_courses_limit',
|
110 |
'default' => '10',
|
111 |
'type' => 'number',
|
@@ -132,7 +133,7 @@ class LP_Settings_Profile extends LP_Abstract_Settings_Page {
|
|
132 |
'learn-press/profile-settings-fields/sub-tabs',
|
133 |
array(
|
134 |
array(
|
135 |
-
'title' => __( 'Sub
|
136 |
'type' => 'heading',
|
137 |
'desc' => __( 'The slugs of tabs display in profile page. Each tab should be unique.', 'learnpress' )
|
138 |
),
|
38 |
$profile_slug = 'profile';
|
39 |
|
40 |
if ( $profile_id = learn_press_get_page_id( 'profile' ) ) {
|
41 |
+
if($profile_post = get_post( $profile_id )) {
|
42 |
+
$profile_slug = $profile_post->post_name;
|
43 |
+
}
|
44 |
}
|
45 |
$profile_url = site_url() . '/' . $profile_slug . '/' . $username;
|
46 |
|
106 |
)
|
107 |
),
|
108 |
array(
|
109 |
+
'title' => __( 'Courses per page', 'learnpress' ),
|
110 |
'id' => 'profile_courses_limit',
|
111 |
'default' => '10',
|
112 |
'type' => 'number',
|
133 |
'learn-press/profile-settings-fields/sub-tabs',
|
134 |
array(
|
135 |
array(
|
136 |
+
'title' => __( 'Sub Tab Slugs', 'learnpress' ),
|
137 |
'type' => 'heading',
|
138 |
'desc' => __( 'The slugs of tabs display in profile page. Each tab should be unique.', 'learnpress' )
|
139 |
),
|
@@ -22,22 +22,24 @@
|
|
22 |
</script>
|
23 |
|
24 |
<script type="text/javascript">
|
25 |
-
(function
|
26 |
-
Vue
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
-
}
|
36 |
-
|
37 |
-
|
38 |
-
return $store.getters['ci/addedItems'];
|
39 |
-
}
|
40 |
-
}
|
41 |
-
});
|
42 |
-
})(Vue, LP_Curriculum_Store);
|
43 |
</script>
|
22 |
</script>
|
23 |
|
24 |
<script type="text/javascript">
|
25 |
+
jQuery(function() {
|
26 |
+
(function (Vue, $store) {
|
27 |
+
Vue.component('lp-added-items-preview', {
|
28 |
+
template: '#tmpl-lp-added-items-preview',
|
29 |
+
props: {
|
30 |
+
show: true
|
31 |
+
},
|
32 |
+
methods: {
|
33 |
+
removeItem: function (item) {
|
34 |
+
$store.dispatch('ci/removeItem', item);
|
35 |
+
}
|
36 |
+
},
|
37 |
+
computed: {
|
38 |
+
addedItems: function () {
|
39 |
+
return $store.getters['ci/addedItems'];
|
40 |
+
}
|
41 |
}
|
42 |
+
});
|
43 |
+
})(Vue, LP_Curriculum_Store);
|
44 |
+
});
|
|
|
|
|
|
|
|
|
|
|
45 |
</script>
|
@@ -13,6 +13,7 @@ learn_press_admin_view( 'course/sections' );
|
|
13 |
<div class="lp-course-curriculum">
|
14 |
<div class="heading">
|
15 |
<h4><?php _e( 'Curriculum', 'learnpress' ); ?> <span :class="['status', status]"></span></h4>
|
|
|
16 |
<span class="collapse-sections" @click="toggle" :class="isOpen ? 'open' : 'close'"></span>
|
17 |
</div>
|
18 |
|
@@ -22,26 +23,39 @@ learn_press_admin_view( 'course/sections' );
|
|
22 |
</script>
|
23 |
|
24 |
<script type="text/javascript">
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
33 |
},
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
-
}
|
38 |
-
|
39 |
-
|
40 |
-
toggle: function () {
|
41 |
-
$store.dispatch('ss/toggleAllSections');
|
42 |
-
}
|
43 |
-
}
|
44 |
-
});
|
45 |
|
46 |
-
})
|
47 |
</script>
|
13 |
<div class="lp-course-curriculum">
|
14 |
<div class="heading">
|
15 |
<h4><?php _e( 'Curriculum', 'learnpress' ); ?> <span :class="['status', status]"></span></h4>
|
16 |
+
<div class="section-item-counts"><span>{{countAllItems()}}</span></div>
|
17 |
<span class="collapse-sections" @click="toggle" :class="isOpen ? 'open' : 'close'"></span>
|
18 |
</div>
|
19 |
|
23 |
</script>
|
24 |
|
25 |
<script type="text/javascript">
|
26 |
+
jQuery(function () {
|
27 |
+
|
28 |
+
(function (Vue, $store) {
|
29 |
+
|
30 |
+
Vue.component('lp-curriculum', {
|
31 |
+
template: '#tmpl-lp-course-curriculum',
|
32 |
+
computed: {
|
33 |
+
status: function () {
|
34 |
+
return $store.getters.status;
|
35 |
+
},
|
36 |
+
isOpen: function () {
|
37 |
+
return !$store.getters['ss/isHiddenAllSections'];
|
38 |
+
}
|
39 |
},
|
40 |
+
methods: {
|
41 |
+
// toggle all sections
|
42 |
+
toggle: function () {
|
43 |
+
$store.dispatch('ss/toggleAllSections');
|
44 |
+
},
|
45 |
+
|
46 |
+
countAllItems: function () {
|
47 |
+
var count = 0,
|
48 |
+
labels = $store.getters['i18n/all'].item_labels;
|
49 |
+
$.each($store.getters['ss/sections'], function (i, section) {
|
50 |
+
count += section.items.length;
|
51 |
+
});
|
52 |
+
|
53 |
+
return count + ' ' + (count <= 1 ? labels.singular : labels.plural);
|
54 |
+
}
|
55 |
}
|
56 |
+
});
|
57 |
+
|
58 |
+
})(Vue, LP_Curriculum_Store);
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
+
})
|
61 |
</script>
|
@@ -21,19 +21,7 @@ learn_press_admin_view( 'course/modal-choose-items' );
|
|
21 |
</div>
|
22 |
<div v-else>
|
23 |
<div class="lp-place-holder">
|
24 |
-
|
25 |
-
|
26 |
-
<div class="line-sm"></div>
|
27 |
-
<div class="line-xs"></div>
|
28 |
-
|
29 |
-
<div class="line-df"></div>
|
30 |
-
<div class="line-lgx"></div>
|
31 |
-
<div class="line-lg"></div>
|
32 |
-
|
33 |
-
<div class="line-df"></div>
|
34 |
-
<div class="line-lg"></div>
|
35 |
-
<div class="line-lgx"></div>
|
36 |
-
|
37 |
<div class="notify-reload"><?php esc_html_e( 'Something went wrong! Please reload to continue editing curriculum.', 'learnpress' ); ?></div>
|
38 |
</div>
|
39 |
</div>
|
@@ -41,21 +29,23 @@ learn_press_admin_view( 'course/modal-choose-items' );
|
|
41 |
</script>
|
42 |
|
43 |
<script type="text/javascript">
|
44 |
-
(function (
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
|
|
56 |
}
|
57 |
-
}
|
58 |
-
});
|
59 |
|
60 |
-
|
|
|
61 |
</script>
|
21 |
</div>
|
22 |
<div v-else>
|
23 |
<div class="lp-place-holder">
|
24 |
+
<?php learn_press_admin_view( 'placeholder-animation' ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
<div class="notify-reload"><?php esc_html_e( 'Something went wrong! Please reload to continue editing curriculum.', 'learnpress' ); ?></div>
|
26 |
</div>
|
27 |
</div>
|
29 |
</script>
|
30 |
|
31 |
<script type="text/javascript">
|
32 |
+
jQuery(function () {
|
33 |
+
(function (Vue, $store) {
|
34 |
+
|
35 |
+
Vue.component('lp-course-editor', {
|
36 |
+
template: '#tmpl-lp-course-editor',
|
37 |
+
created: function () {
|
38 |
+
setInterval(function () {
|
39 |
+
$store.dispatch('heartbeat');
|
40 |
+
}, 60 * 1000);
|
41 |
+
},
|
42 |
+
computed: {
|
43 |
+
heartbeat: function () {
|
44 |
+
return $store.getters['heartbeat'];
|
45 |
+
}
|
46 |
}
|
47 |
+
});
|
|
|
48 |
|
49 |
+
})(Vue, LP_Curriculum_Store);
|
50 |
+
})
|
51 |
</script>
|
@@ -18,31 +18,34 @@ learn_press_admin_view( 'course/pagination' );
|
|
18 |
</script>
|
19 |
|
20 |
<script type="text/javascript">
|
21 |
-
(function (Vue, $store) {
|
22 |
-
|
23 |
-
Vue.component('lp-course-choose-item', {
|
24 |
-
template: '#tmpl-lp-course-choose-item',
|
25 |
-
props: ['item', 'added'],
|
26 |
-
watch: {
|
27 |
-
added: function () {
|
28 |
-
this.$forceUpdate();
|
29 |
-
}
|
30 |
-
},
|
31 |
-
methods: {
|
32 |
-
add: function () {
|
33 |
-
if (this.item.added) {
|
34 |
-
return this.remove();
|
35 |
-
}
|
36 |
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
},
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
}
|
42 |
-
}
|
43 |
-
|
|
|
|
|
44 |
|
45 |
-
})(Vue, LP_Curriculum_Store);
|
46 |
</script>
|
47 |
|
48 |
|
@@ -63,13 +66,15 @@ learn_press_admin_view( 'course/pagination' );
|
|
63 |
</template>
|
64 |
</ul>
|
65 |
|
66 |
-
<
|
67 |
-
<span class="dashicons dashicons-no-alt"
|
68 |
-
|
|
|
69 |
</div>
|
70 |
<div class="main">
|
71 |
<form class="search" @submit.prevent="">
|
72 |
-
<input type="text"
|
|
|
73 |
title="search" @input="onChangeQuery" v-model="query">
|
74 |
</form>
|
75 |
|
@@ -108,146 +113,165 @@ learn_press_admin_view( 'course/pagination' );
|
|
108 |
</script>
|
109 |
|
110 |
<script type="text/javascript">
|
111 |
-
(function (Vue, $store, $) {
|
112 |
-
|
113 |
-
Vue.component('lp-curriculum-choose-items', {
|
114 |
-
template: '#tmpl-lp-course-choose-items',
|
115 |
-
data: function () {
|
116 |
-
return {
|
117 |
-
query: '',
|
118 |
-
page: 1,
|
119 |
-
tab: 'lp_lesson',
|
120 |
-
delayTimeout: null,
|
121 |
-
showPreview: false,
|
122 |
-
adding: false
|
123 |
-
};
|
124 |
-
},
|
125 |
-
created: function () {
|
126 |
-
var vm = this;
|
127 |
-
|
128 |
-
$store.subscribe(function (mutation) {
|
129 |
-
if (!mutation || mutation.type !== 'ci/TOGGLE') {
|
130 |
-
return;
|
131 |
-
}
|
132 |
-
|
133 |
-
if (vm.show) {
|
134 |
-
vm.init();
|
135 |
-
|
136 |
-
$('body').addClass('lp-modal-choose-items-open');
|
137 |
-
} else {
|
138 |
-
$('body').removeClass('lp-modal-choose-items-open');
|
139 |
-
}
|
140 |
-
});
|
141 |
-
}, computed: {
|
142 |
-
status: function () {
|
143 |
-
return $store.getters['ci/status'];
|
144 |
-
},
|
145 |
-
loading: function () {
|
146 |
-
return this.status === 'loading';
|
147 |
-
},
|
148 |
-
textButtonEdit: function () {
|
149 |
-
if (this.showPreview) {
|
150 |
-
return $store.getters['i18n/all'].back;
|
151 |
-
}
|
152 |
-
|
153 |
-
return $store.getters['i18n/all'].selected_items + ' (' + this.addedItems.length + ')';
|
154 |
-
},
|
155 |
-
addedItems: function () {
|
156 |
-
return $store.getters['ci/addedItems'];
|
157 |
-
},
|
158 |
-
pagination: function () {
|
159 |
-
return $store.getters['ci/pagination'];
|
160 |
-
},
|
161 |
-
totalPage: function () {
|
162 |
-
if (this.pagination) {
|
163 |
-
return parseInt(this.pagination.total) || 1;
|
164 |
-
}
|
165 |
-
},
|
166 |
-
items: function () {
|
167 |
-
return $store.getters['ci/items'];
|
168 |
-
},
|
169 |
-
show: function () {
|
170 |
-
return $store.getters['ci/isOpen'];
|
171 |
-
},
|
172 |
-
types: function () {
|
173 |
-
return $store.getters['ci/types'];
|
174 |
-
},
|
175 |
-
firstType: function () {
|
176 |
-
for (var type in $store.getters['ci/types']) {
|
177 |
-
return type;
|
178 |
-
}
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
|
|
|
|
|
|
|
|
191 |
},
|
192 |
-
|
193 |
-
checkout: function () {
|
194 |
-
this.adding = true;
|
195 |
-
$store.dispatch('ci/addItemsToSection');
|
196 |
},
|
|
|
|
|
197 |
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
this.page = page;
|
204 |
-
this.makeSearch();
|
205 |
-
},
|
206 |
|
207 |
-
|
208 |
-
|
209 |
-
},
|
210 |
-
|
211 |
-
removeItem: function (item) {
|
212 |
-
$store.dispatch('ci/removeItem', item);
|
213 |
-
},
|
214 |
|
215 |
-
|
216 |
-
|
|
|
|
|
|
|
217 |
},
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
}
|
223 |
-
|
224 |
-
this.tab = key;
|
225 |
-
this.page = 1;
|
226 |
-
this.makeSearch();
|
227 |
},
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
}
|
235 |
-
|
236 |
-
this.delayTimeout = setTimeout(function () {
|
237 |
-
vm.page = 1;
|
238 |
-
vm.makeSearch();
|
239 |
-
}, 500);
|
240 |
-
},
|
241 |
-
|
242 |
-
makeSearch: function () {
|
243 |
-
$store.dispatch('ci/searchItems', {
|
244 |
-
query: this.query,
|
245 |
-
page: this.page,
|
246 |
-
type: this.tab
|
247 |
-
});
|
248 |
}
|
249 |
-
}
|
250 |
-
});
|
251 |
|
252 |
-
|
|
|
253 |
</script>
|
18 |
</script>
|
19 |
|
20 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
+
jQuery(function () {
|
23 |
+
(function (Vue, $store) {
|
24 |
+
Vue.component('lp-course-choose-item', {
|
25 |
+
template: '#tmpl-lp-course-choose-item',
|
26 |
+
props: ['item', 'added'],
|
27 |
+
watch: {
|
28 |
+
added: function () {
|
29 |
+
this.$forceUpdate();
|
30 |
+
}
|
31 |
},
|
32 |
+
methods: {
|
33 |
+
add: function () {
|
34 |
+
if (this.item.added) {
|
35 |
+
return this.remove();
|
36 |
+
}
|
37 |
+
|
38 |
+
this.$emit('add', this.item);
|
39 |
+
},
|
40 |
+
remove: function () {
|
41 |
+
this.$emit('remove', this.item);
|
42 |
+
}
|
43 |
}
|
44 |
+
});
|
45 |
+
|
46 |
+
})(Vue, LP_Curriculum_Store);
|
47 |
+
})
|
48 |
|
|
|
49 |
</script>
|
50 |
|
51 |
|
66 |
</template>
|
67 |
</ul>
|
68 |
|
69 |
+
<a class="close" @click="close">
|
70 |
+
<span class="dashicons dashicons-no-alt"
|
71 |
+
title="<?php esc_attr_e( 'Close', 'learnpress' ); ?>"></span>
|
72 |
+
</a>
|
73 |
</div>
|
74 |
<div class="main">
|
75 |
<form class="search" @submit.prevent="">
|
76 |
+
<input type="text" class="modal-search-input"
|
77 |
+
placeholder="<?php esc_attr_e( 'Type here to search item', 'learnpress' ); ?>"
|
78 |
title="search" @input="onChangeQuery" v-model="query">
|
79 |
</form>
|
80 |
|
113 |
</script>
|
114 |
|
115 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
+
jQuery(function ($) {
|
118 |
+
|
119 |
+
(function (Vue, $store) {
|
120 |
+
|
121 |
+
Vue.component('lp-curriculum-choose-items', {
|
122 |
+
template: '#tmpl-lp-course-choose-items',
|
123 |
+
data: function () {
|
124 |
+
return {
|
125 |
+
query: '',
|
126 |
+
page: 1,
|
127 |
+
tab: 'lp_lesson',
|
128 |
+
delayTimeout: null,
|
129 |
+
showPreview: false,
|
130 |
+
adding: false
|
131 |
+
};
|
132 |
},
|
133 |
+
mounted: function () {
|
|
|
|
|
|
|
134 |
},
|
135 |
+
created: function () {
|
136 |
+
var vm = this;
|
137 |
|
138 |
+
$store.subscribe(function (mutation) {
|
139 |
+
if (!mutation || mutation.type !== 'ci/TOGGLE') {
|
140 |
+
return;
|
141 |
+
}
|
|
|
|
|
|
|
|
|
142 |
|
143 |
+
if (vm.show) {
|
144 |
+
vm.init();
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
+
$('body').addClass('lp-modal-choose-items-open');
|
147 |
+
} else {
|
148 |
+
$('body').removeClass('lp-modal-choose-items-open');
|
149 |
+
}
|
150 |
+
});
|
151 |
},
|
152 |
+
computed: {
|
153 |
+
status: function () {
|
154 |
+
return $store.getters['ci/status'];
|
155 |
+
},
|
156 |
+
loading: function () {
|
157 |
+
return this.status === 'loading';
|
158 |
+
},
|
159 |
+
textButtonEdit: function () {
|
160 |
+
if (this.showPreview) {
|
161 |
+
return $store.getters['i18n/all'].back;
|
162 |
+
}
|
163 |
+
|
164 |
+
return $store.getters['i18n/all'].selected_items + ' (' + this.addedItems.length + ')';
|
165 |
+
},
|
166 |
+
addedItems: function () {
|
167 |
+
return $store.getters['ci/addedItems'];
|
168 |
+
},
|
169 |
+
pagination: function () {
|
170 |
+
return $store.getters['ci/pagination'];
|
171 |
+
},
|
172 |
+
totalPage: function () {
|
173 |
+
if (this.pagination) {
|
174 |
+
return parseInt(this.pagination.total) || 1;
|
175 |
+
}
|
176 |
+
},
|
177 |
+
items: function () {
|
178 |
+
return $store.getters['ci/items'];
|
179 |
+
},
|
180 |
+
show: function () {
|
181 |
+
var isShow = $store.getters['ci/isOpen'];
|
182 |
+
|
183 |
+
if (isShow) {
|
184 |
+
this.focusInput();
|
185 |
+
}
|
186 |
+
|
187 |
+
return isShow;
|
188 |
+
},
|
189 |
+
types: function () {
|
190 |
+
return $store.getters['ci/types'];
|
191 |
+
},
|
192 |
+
firstType: function () {
|
193 |
+
for (var type in $store.getters['ci/types']) {
|
194 |
+
return type;
|
195 |
+
}
|
196 |
+
|
197 |
+
return false;
|
198 |
}
|
|
|
|
|
|
|
|
|
199 |
},
|
200 |
+
methods: {
|
201 |
+
init: function () {
|
202 |
+
this.query = '';
|
203 |
+
this.page = 1;
|
204 |
+
this.tab = this.firstType;
|
205 |
+
this.showPreview = false;
|
206 |
+
this.adding = false;
|
207 |
+
this.makeSearch();
|
208 |
+
},
|
209 |
+
focusInput: function () {
|
210 |
+
var $input = $(this.$el).find('.main .search input[type="text"]').focus();
|
211 |
+
setTimeout(function () {
|
212 |
+
$input.focus();
|
213 |
+
}, 300)
|
214 |
+
},
|
215 |
+
checkout: function () {
|
216 |
+
this.adding = true;
|
217 |
+
$store.dispatch('ci/addItemsToSection');
|
218 |
+
},
|
219 |
+
|
220 |
+
changePage: function (page) {
|
221 |
+
if (page === this.page) {
|
222 |
+
return;
|
223 |
+
}
|
224 |
+
|
225 |
+
this.page = page;
|
226 |
+
this.makeSearch();
|
227 |
+
},
|
228 |
+
|
229 |
+
addItem: function (item) {
|
230 |
+
$store.dispatch('ci/addItem', item);
|
231 |
+
},
|
232 |
+
|
233 |
+
removeItem: function (item) {
|
234 |
+
$store.dispatch('ci/removeItem', item);
|
235 |
+
},
|
236 |
+
|
237 |
+
close: function () {
|
238 |
+
$store.dispatch('ci/toggle');
|
239 |
+
},
|
240 |
+
|
241 |
+
changeTab: function (key) {
|
242 |
+
if (key === this.tab) {
|
243 |
+
return;
|
244 |
+
}
|
245 |
+
|
246 |
+
this.tab = key;
|
247 |
+
this.page = 1;
|
248 |
+
this.makeSearch();
|
249 |
+
this.focusInput();
|
250 |
+
},
|
251 |
+
|
252 |
+
onChangeQuery: function () {
|
253 |
+
var vm = this;
|
254 |
+
|
255 |
+
if (this.delayTimeout) {
|
256 |
+
clearTimeout(this.delayTimeout);
|
257 |
+
}
|
258 |
+
|
259 |
+
this.delayTimeout = setTimeout(function () {
|
260 |
+
vm.page = 1;
|
261 |
+
vm.makeSearch();
|
262 |
+
}, 500);
|
263 |
+
},
|
264 |
+
|
265 |
+
makeSearch: function () {
|
266 |
+
$store.dispatch('ci/searchItems', {
|
267 |
+
query: this.query,
|
268 |
+
page: this.page,
|
269 |
+
type: this.tab
|
270 |
+
});
|
271 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
}
|
273 |
+
});
|
|
|
274 |
|
275 |
+
})(Vue, LP_Curriculum_Store);
|
276 |
+
});
|
277 |
</script>
|
@@ -10,6 +10,7 @@
|
|
10 |
|
11 |
<script type="text/x-template" id="tmpl-lp-new-section-item">
|
12 |
<div class="new-section-item section-item" @keyup.up="up" @keyup.down="down" :class="{choosing: choosingType}">
|
|
|
13 |
<div class="types" @mouseleave="mouseLeave" @mouseover="mouseOver">
|
14 |
<template v-for="(_type, key) in types">
|
15 |
<label class="type" :title="_type" :class="[key, {current: (type==key)}]">
|
@@ -18,107 +19,119 @@
|
|
18 |
</template>
|
19 |
</div>
|
20 |
<div class="title">
|
21 |
-
<input type="text" :placeholder="placeholderInput" @keyup.enter="createItem" @blur="createItem"
|
22 |
v-model="title">
|
23 |
</div>
|
24 |
</div>
|
25 |
</script>
|
26 |
|
27 |
<script type="text/javascript">
|
28 |
-
(function (
|
29 |
-
|
30 |
-
Vue
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
this.type = this.firstType;
|
42 |
-
},
|
43 |
-
methods: {
|
44 |
-
up: function (e) {
|
45 |
-
this.changeType(true);
|
46 |
-
},
|
47 |
-
down: function (e) {
|
48 |
-
this.changeType(false);
|
49 |
-
},
|
50 |
-
mouseOver: function () {
|
51 |
-
this.choosingType = true;
|
52 |
-
},
|
53 |
-
mouseLeave: function () {
|
54 |
-
this.choosingType = false;
|
55 |
-
},
|
56 |
-
// emit create item
|
57 |
-
create: function () {
|
58 |
-
if (!this.title) {
|
59 |
-
return;
|
60 |
-
}
|
61 |
-
this.$emit('create', {
|
62 |
-
type: this.type,
|
63 |
-
title: this.title
|
64 |
-
});
|
65 |
-
this.title = '';
|
66 |
},
|
67 |
-
|
68 |
-
|
69 |
-
if (!this.title) {
|
70 |
-
return;
|
71 |
-
}
|
72 |
-
setTimeout(this.create, 300);
|
73 |
},
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
88 |
}
|
89 |
-
keys.push(type);
|
90 |
-
i++;
|
91 |
-
}
|
92 |
|
93 |
-
|
94 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
-
if (next) {
|
97 |
-
this.type = nextType;
|
98 |
-
} else {
|
99 |
-
this.type = previousType;
|
100 |
}
|
101 |
-
}
|
102 |
-
},
|
103 |
-
computed: {
|
104 |
-
placeholderInput: function () {
|
105 |
-
var i18n = $store.getters['i18n/all'];
|
106 |
-
var type = this.types[this.type] || '';
|
107 |
-
return i18n.new_section_item + ' ' + type.toLowerCase();
|
108 |
},
|
|
|
|
|
|
|
|
|
109 |
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
firstType: function () {
|
114 |
-
for (var type in $store.getters['ci/types']) {
|
115 |
-
return type;
|
116 |
-
}
|
117 |
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
-
}
|
121 |
-
});
|
122 |
|
123 |
-
|
|
|
124 |
</script>
|
10 |
|
11 |
<script type="text/x-template" id="tmpl-lp-new-section-item">
|
12 |
<div class="new-section-item section-item" @keyup.up="up" @keyup.down="down" :class="{choosing: choosingType}">
|
13 |
+
<div class="drag"></div>
|
14 |
<div class="types" @mouseleave="mouseLeave" @mouseover="mouseOver">
|
15 |
<template v-for="(_type, key) in types">
|
16 |
<label class="type" :title="_type" :class="[key, {current: (type==key)}]">
|
19 |
</template>
|
20 |
</div>
|
21 |
<div class="title">
|
22 |
+
<input type="text" :placeholder="placeholderInput" @keyup.enter="createItem($event)" @blur="createItem($event)"
|
23 |
v-model="title">
|
24 |
</div>
|
25 |
</div>
|
26 |
</script>
|
27 |
|
28 |
<script type="text/javascript">
|
29 |
+
jQuery(function () {
|
30 |
+
|
31 |
+
(function (Vue, $store) {
|
32 |
+
|
33 |
+
Vue.component('lp-new-section-item', {
|
34 |
+
template: '#tmpl-lp-new-section-item',
|
35 |
+
props: [],
|
36 |
+
data: function () {
|
37 |
+
return {
|
38 |
+
type: '',
|
39 |
+
title: '',
|
40 |
+
choosingType: false
|
41 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
},
|
43 |
+
created: function () {
|
44 |
+
this.type = this.firstType;
|
|
|
|
|
|
|
|
|
45 |
},
|
46 |
+
methods: {
|
47 |
+
up: function (e) {
|
48 |
+
this.changeType(true);
|
49 |
+
},
|
50 |
+
down: function (e) {
|
51 |
+
this.changeType(false);
|
52 |
+
},
|
53 |
+
mouseOver: function () {
|
54 |
+
this.choosingType = true;
|
55 |
+
},
|
56 |
+
mouseLeave: function () {
|
57 |
+
this.choosingType = false;
|
58 |
+
},
|
59 |
+
// emit create item
|
60 |
+
create: function () {
|
61 |
+
if (!this.title) {
|
62 |
+
return;
|
63 |
+
}
|
64 |
+
this.$emit('create', {
|
65 |
+
id: LP.uniqueId(),
|
66 |
+
type: this.type,
|
67 |
+
title: this.title
|
68 |
+
});
|
69 |
+
this.title = '';
|
70 |
+
},
|
71 |
+
// set time out for blur change type item
|
72 |
+
createItem: function (e) {
|
73 |
+
if (!this.title) {
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
if (e.key === 'Enter') {
|
78 |
+
return this.create();
|
79 |
+
}
|
80 |
+
|
81 |
+
setTimeout(this.create, 300);
|
82 |
+
},
|
83 |
+
changeType: function (next) {
|
84 |
+
if (this.title) {
|
85 |
+
return;
|
86 |
+
}
|
87 |
|
88 |
+
var types = this.types;
|
89 |
+
var current = this.type;
|
90 |
+
var currentIndex = false;
|
91 |
|
92 |
+
var keys = [];
|
93 |
+
var i = 0;
|
94 |
+
for (var type in types) {
|
95 |
+
if (type === current) {
|
96 |
+
currentIndex = i;
|
97 |
+
}
|
98 |
+
keys.push(type);
|
99 |
+
i++;
|
100 |
}
|
|
|
|
|
|
|
101 |
|
102 |
+
var nextType = keys[currentIndex + 1] || keys[0];
|
103 |
+
var previousType = keys[currentIndex - 1] || keys[keys.length - 1];
|
104 |
+
|
105 |
+
if (next) {
|
106 |
+
this.type = nextType;
|
107 |
+
} else {
|
108 |
+
this.type = previousType;
|
109 |
+
}
|
110 |
|
|
|
|
|
|
|
|
|
111 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
},
|
113 |
+
computed: {
|
114 |
+
placeholderInput: function (e) {
|
115 |
+
var i18n = $store.getters['i18n/all'];
|
116 |
+
var type = this.types[this.type] || '';
|
117 |
|
118 |
+
$(this.$el).find('.title input').focus();
|
119 |
+
return i18n.new_section_item + ' ' + type.toLowerCase();
|
120 |
+
},
|
|
|
|
|
|
|
|
|
121 |
|
122 |
+
types: function () {
|
123 |
+
return $store.getters['ci/types'];
|
124 |
+
},
|
125 |
+
firstType: function () {
|
126 |
+
for (var type in $store.getters['ci/types']) {
|
127 |
+
return type;
|
128 |
+
}
|
129 |
+
|
130 |
+
return false;
|
131 |
+
}
|
132 |
}
|
133 |
+
});
|
|
|
134 |
|
135 |
+
})(Vue, LP_Curriculum_Store);
|
136 |
+
})
|
137 |
</script>
|
@@ -22,38 +22,42 @@
|
|
22 |
</script>
|
23 |
|
24 |
<script type="text/javascript">
|
25 |
-
(function (
|
26 |
-
|
27 |
-
Vue
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
// draft new course
|
36 |
-
draftCourse: function () {
|
37 |
-
if ($store.getters['autoDraft']) {
|
38 |
-
$store.dispatch('draftCourse', {
|
39 |
-
title: $('input[name=post_title]').val(),
|
40 |
-
content: $('textarea[name=content]').val()
|
41 |
-
});
|
42 |
-
}
|
43 |
},
|
44 |
-
|
45 |
-
//
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
}
|
55 |
-
}
|
56 |
-
});
|
57 |
|
58 |
-
|
|
|
59 |
</script>
|
22 |
</script>
|
23 |
|
24 |
<script type="text/javascript">
|
25 |
+
jQuery(function ($) {
|
26 |
+
|
27 |
+
(function (Vue, $store) {
|
28 |
+
|
29 |
+
Vue.component('lp-new-section', {
|
30 |
+
template: '#tmpl-lp-new-section',
|
31 |
+
data: function () {
|
32 |
+
return {
|
33 |
+
section_title: ''
|
34 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
},
|
36 |
+
methods: {
|
37 |
+
// draft new course
|
38 |
+
draftCourse: function () {
|
39 |
+
if ($store.getters['autoDraft']) {
|
40 |
+
$store.dispatch('draftCourse', {
|
41 |
+
title: $('input[name=post_title]').val(),
|
42 |
+
content: $('textarea[name=content]').val()
|
43 |
+
});
|
44 |
+
}
|
45 |
+
},
|
46 |
+
newSection: function () {
|
47 |
+
// prevent create no title section
|
48 |
+
if (this.section_title) {
|
49 |
+
|
50 |
+
// create draft course if auto draft
|
51 |
+
this.draftCourse();
|
52 |
+
|
53 |
+
// new section
|
54 |
+
$store.dispatch('ss/newSection', this.section_title);
|
55 |
+
this.section_title = '';
|
56 |
+
}
|
57 |
}
|
58 |
}
|
59 |
+
});
|
|
|
60 |
|
61 |
+
})(Vue, LP_Curriculum_Store);
|
62 |
+
});
|
63 |
</script>
|
@@ -28,50 +28,52 @@
|
|
28 |
</script>
|
29 |
|
30 |
<script type="text/javascript">
|
|
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
},
|
40 |
-
methods: {
|
41 |
-
update: function () {
|
42 |
-
this.$emit('update', this.page);
|
43 |
},
|
|
|
|
|
|
|
|
|
44 |
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
70 |
}
|
71 |
}
|
72 |
-
}
|
73 |
-
});
|
74 |
|
75 |
-
|
76 |
|
|
|
77 |
</script>
|
28 |
</script>
|
29 |
|
30 |
<script type="text/javascript">
|
31 |
+
jQuery(function ($) {
|
32 |
|
33 |
+
(function (Vue, $store) {
|
34 |
|
35 |
+
Vue.component('lp-pagination', {
|
36 |
+
template: '#tmpl-lp-pagination',
|
37 |
+
props: ['total'],
|
38 |
+
data: function () {
|
39 |
+
return {page: 1}
|
|
|
|
|
|
|
|
|
40 |
},
|
41 |
+
methods: {
|
42 |
+
update: function () {
|
43 |
+
this.$emit('update', this.page);
|
44 |
+
},
|
45 |
|
46 |
+
nextPage: function () {
|
47 |
+
if (this.page < this.total) {
|
48 |
+
this.page++;
|
49 |
+
this.update();
|
50 |
+
}
|
51 |
+
},
|
52 |
|
53 |
+
nextLastPage: function () {
|
54 |
+
if (this.page < this.total) {
|
55 |
+
this.page = this.total;
|
56 |
+
this.update();
|
57 |
+
}
|
58 |
+
},
|
59 |
|
60 |
+
previousPage: function () {
|
61 |
+
if (this.page > 1) {
|
62 |
+
this.page--;
|
63 |
+
this.update();
|
64 |
+
}
|
65 |
+
},
|
66 |
|
67 |
+
previousFirstPage: function () {
|
68 |
+
if (this.page > 1) {
|
69 |
+
this.page = 1;
|
70 |
+
this.update();
|
71 |
+
}
|
72 |
}
|
73 |
}
|
74 |
+
});
|
|
|
75 |
|
76 |
+
})(Vue, LP_Curriculum_Store);
|
77 |
|
78 |
+
})
|
79 |
</script>
|
@@ -7,12 +7,10 @@
|
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-section-item">
|
10 |
-
<li :class="['section-item',item.type, {updating: updating, removing: removing}]" :data-item-id="item.id"
|
11 |
:data-item-order="order">
|
12 |
<div class="drag">
|
13 |
-
|
14 |
-
<path d="M 14 5.5 a 3 3 0 1 1 -3 -3 A 3 3 0 0 1 14 5.5 Z m 7 3 a 3 3 0 1 0 -3 -3 A 3 3 0 0 0 21 8.5 Z m -10 4 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 12.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 12.5 Z m -10 10 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 22.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 22.5 Z"></path>
|
15 |
-
</svg>
|
16 |
</div>
|
17 |
<div class="icon"></div>
|
18 |
<div class="title">
|
@@ -22,7 +20,8 @@
|
|
22 |
|
23 |
<div class="item-actions">
|
24 |
<div class="actions">
|
25 |
-
<div class="action preview-item"
|
|
|
26 |
<a class="lp-btn-icon dashicons" :class="previewClass" @click="togglePreview"></a>
|
27 |
</div>
|
28 |
<div class="action edit-item">
|
@@ -37,7 +36,7 @@
|
|
37 |
</li>
|
38 |
<li>
|
39 |
<a @click.prevent="deletePermanently"
|
40 |
-
class="delete-permanently"><?php esc_html_e( '
|
41 |
</li>
|
42 |
</ul>
|
43 |
</div>
|
@@ -47,82 +46,106 @@
|
|
47 |
</script>
|
48 |
|
49 |
<script type="text/javascript">
|
50 |
-
(function (
|
51 |
|
52 |
-
Vue
|
53 |
-
template: '#tmpl-lp-section-item',
|
54 |
-
props: ['item', 'order', 'disableCurriculum'],
|
55 |
-
data: function () {
|
56 |
-
return {
|
57 |
-
// origin course item title
|
58 |
-
title: this.item.title,
|
59 |
-
changed: false,
|
60 |
-
removing: false
|
61 |
-
};
|
62 |
-
},
|
63 |
-
created: function () {
|
64 |
-
this.$ = jQuery;
|
65 |
-
},
|
66 |
-
computed: {
|
67 |
-
// edit item url
|
68 |
-
url: function () {
|
69 |
-
return $store.getters['ss/urlEdit'] + this.item.id;
|
70 |
-
},
|
71 |
-
updating: function () {
|
72 |
-
return this.removing || this.saving;
|
73 |
-
},
|
74 |
-
status: function () {
|
75 |
-
return $store.getters['ss/statusUpdateSectionItem'][this.item.id] || '';
|
76 |
-
},
|
77 |
-
saving: function () {
|
78 |
-
return this.status === 'updating';
|
79 |
-
},
|
80 |
-
previewClass: function () {
|
81 |
-
return {
|
82 |
-
'dashicons-unlock': this.item.preview,
|
83 |
-
'dashicons-lock': !this.item.preview
|
84 |
-
}
|
85 |
-
}
|
86 |
-
},
|
87 |
-
methods: {
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
98 |
},
|
99 |
-
|
100 |
-
|
101 |
-
this.removing = true;
|
102 |
-
this.$emit('remove', this.item);
|
103 |
},
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
},
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
118 |
},
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
-
}
|
125 |
-
});
|
126 |
|
127 |
-
|
|
|
128 |
</script>
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-section-item">
|
10 |
+
<li :class="['section-item',item.type, isEmptyItem() ? 'empty-item' : '', {updating: updating, removing: removing}]" :data-item-id="item.id"
|
11 |
:data-item-order="order">
|
12 |
<div class="drag">
|
13 |
+
<?php learn_press_admin_view('svg-icon');?>
|
|
|
|
|
14 |
</div>
|
15 |
<div class="icon"></div>
|
16 |
<div class="title">
|
20 |
|
21 |
<div class="item-actions">
|
22 |
<div class="actions">
|
23 |
+
<div class="action preview-item"
|
24 |
+
data-content-tip="<?php echo esc_attr( 'Turn on/off this item is preview', 'learnpress' ); ?>">
|
25 |
<a class="lp-btn-icon dashicons" :class="previewClass" @click="togglePreview"></a>
|
26 |
</div>
|
27 |
<div class="action edit-item">
|
36 |
</li>
|
37 |
<li>
|
38 |
<a @click.prevent="deletePermanently"
|
39 |
+
class="delete-permanently"><?php esc_html_e( 'Move to trash', 'learnpress' ); ?></a>
|
40 |
</li>
|
41 |
</ul>
|
42 |
</div>
|
46 |
</script>
|
47 |
|
48 |
<script type="text/javascript">
|
49 |
+
jQuery(function ($) {
|
50 |
|
51 |
+
(function (Vue, $store) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
+
Vue.component('lp-section-item', {
|
54 |
+
template: '#tmpl-lp-section-item',
|
55 |
+
props: ['item', 'order', 'disableCurriculum'],
|
56 |
+
data: function () {
|
57 |
+
return {
|
58 |
+
// origin course item title
|
59 |
+
title: this.item.title,
|
60 |
+
changed: false,
|
61 |
+
removing: false
|
62 |
+
};
|
63 |
},
|
64 |
+
created: function () {
|
65 |
+
this.$ = jQuery;
|
|
|
|
|
66 |
},
|
67 |
+
mounted: function () {
|
68 |
+
this.$nextTick(function () {
|
69 |
+
var $ = jQuery;
|
70 |
+
$(this.$el).find('.preview-item').QuickTip({
|
71 |
+
closeInterval: 0,
|
72 |
+
arrowOffset: 'el',
|
73 |
+
tipClass: 'preview-item-tip'
|
74 |
+
});
|
75 |
+
$(document).on('mousedown', '.section-item .drag', function (e) {
|
76 |
+
$('html, body').addClass('moving');
|
77 |
+
}).on('mouseup', function (e) {
|
78 |
+
$('html, body').removeClass('moving');
|
79 |
+
})
|
80 |
+
})
|
81 |
},
|
82 |
+
computed: {
|
83 |
+
// edit item url
|
84 |
+
url: function () {
|
85 |
+
return $store.getters['ss/urlEdit'] + this.item.id;
|
86 |
+
},
|
87 |
+
updating: function () {
|
88 |
+
return this.removing || this.saving;
|
89 |
+
},
|
90 |
+
status: function () {
|
91 |
+
return $store.getters['ss/statusUpdateSectionItem'][this.item.id] || '';
|
92 |
+
},
|
93 |
+
saving: function () {
|
94 |
+
return this.status === 'updating';
|
95 |
+
},
|
96 |
+
previewClass: function () {
|
97 |
+
return {
|
98 |
+
'dashicons-visibility': this.item.preview,
|
99 |
+
'dashicons-hidden': !this.item.preview
|
100 |
+
}
|
101 |
}
|
102 |
},
|
103 |
+
methods: {
|
104 |
+
isEmptyItem: function () {
|
105 |
+
return isNaN(this.item.id)
|
106 |
+
},
|
107 |
+
changeTitle: function () {
|
108 |
+
this.changed = true;
|
109 |
+
},
|
110 |
+
// update item title
|
111 |
+
updateTitle: function () {
|
112 |
+
if (this.changed) {
|
113 |
+
this.$emit('update', this.item);
|
114 |
+
this.changed = false;
|
115 |
+
}
|
116 |
+
},
|
117 |
+
// remove item
|
118 |
+
remove: function () {
|
119 |
+
//this.removing = true;
|
120 |
+
this.item.temp_id = LP.uniqueId();
|
121 |
+
this.$emit('remove', this.item);
|
122 |
+
},
|
123 |
+
// remove item
|
124 |
+
deletePermanently: function () {
|
125 |
+
if (!confirm($store.getters['i18n/all'].confirm_trash_item.replace('{{ITEM_NAME}}', this.item.title))) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
this.item.temp_id = LP.uniqueId();
|
129 |
+
this.$emit('delete', this.item);
|
130 |
+
},
|
131 |
+
// navigation course items
|
132 |
+
keyUp: function (event) {
|
133 |
+
var keyCode = event.keyCode;
|
134 |
+
// escape update course item title
|
135 |
+
if (keyCode === 27) {
|
136 |
+
this.item.title = this.title;
|
137 |
+
} else {
|
138 |
+
this.$emit('nav', {key: event.keyCode, order: this.order});
|
139 |
+
}
|
140 |
+
},
|
141 |
+
togglePreview: function (evt) {
|
142 |
+
this.item.preview = !this.item.preview;
|
143 |
+
this.changed = true;
|
144 |
+
this.updateTitle();
|
145 |
+
}
|
146 |
}
|
147 |
+
});
|
|
|
148 |
|
149 |
+
})(Vue, LP_Curriculum_Store);
|
150 |
+
})
|
151 |
</script>
|
@@ -10,7 +10,8 @@ learn_press_admin_view( 'course/new-section-item' );
|
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-section">
|
13 |
-
<div class="section" :class="[isOpen ? 'open' : 'close', status
|
|
|
14 |
:data-section-id="section.id">
|
15 |
<div class="section-head" @dblclick="toggle">
|
16 |
<span class="movable"></span>
|
@@ -18,6 +19,9 @@ learn_press_admin_view( 'course/new-section-item' );
|
|
18 |
<input v-model="section.title" type="text" title="title" class="title-input"
|
19 |
@change="updating" @blur="completed" @keyup.enter="completed"
|
20 |
placeholder="<?php esc_attr_e( 'Enter the name section', 'learnpress' ); ?>">
|
|
|
|
|
|
|
21 |
<!--Section toggle-->
|
22 |
<div class="actions">
|
23 |
<span class="collapse" :class="isOpen ? 'open' : 'close'" @click.prevent="toggle"></span>
|
@@ -35,13 +39,13 @@ learn_press_admin_view( 'course/new-section-item' );
|
|
35 |
</div>
|
36 |
|
37 |
<div class="section-list-items" :class="{'no-item': !section.items.length}">
|
38 |
-
<
|
39 |
<!--Section items-->
|
40 |
<lp-section-item v-for="(item, index) in section.items" :item="item" :key="item.id"
|
41 |
@update="updateItem" @remove="removeItem" @delete="deleteItem" @nav="navItem"
|
42 |
:order="index+1" :ref="index+1"
|
43 |
:disableCurriculum="disableCurriculum"></lp-section-item>
|
44 |
-
</
|
45 |
|
46 |
<lp-new-section-item @create="newItem" v-if="!disableCurriculum"></lp-new-section-item>
|
47 |
</div>
|
@@ -61,155 +65,215 @@ learn_press_admin_view( 'course/new-section-item' );
|
|
61 |
</script>
|
62 |
|
63 |
<script type="text/javascript">
|
64 |
-
(function (
|
65 |
-
|
66 |
-
Vue.component('lp-section', {
|
67 |
-
template: '#tmpl-lp-section',
|
68 |
-
props: ['section', 'index', 'disableCurriculum'],
|
69 |
-
data: function () {
|
70 |
-
return {
|
71 |
-
changed: false,
|
72 |
-
confirm: false
|
73 |
-
};
|
74 |
-
},
|
75 |
-
mounted: function () {
|
76 |
-
var vm = this;
|
77 |
-
|
78 |
-
this.prepareToggle();
|
79 |
-
|
80 |
-
this.$watch('section.open', function (open) {
|
81 |
-
vm.toggleAnimation(open);
|
82 |
-
});
|
83 |
-
},
|
84 |
-
computed: {
|
85 |
-
status: function () {
|
86 |
-
return $store.getters['ss/statusUpdateSection'][this.section.id] || '';
|
87 |
-
},
|
88 |
-
isOpen: function () {
|
89 |
-
return this.section.open;
|
90 |
-
},
|
91 |
|
92 |
-
|
93 |
-
get: function () {
|
94 |
-
return this.section.items;
|
95 |
-
},
|
96 |
-
set: function (items) {
|
97 |
-
this.section.items = items;
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
104 |
},
|
|
|
|
|
105 |
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
handle: '.drag',
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
-
};
|
116 |
-
}
|
117 |
-
},
|
118 |
-
methods: {
|
119 |
-
// toggle section
|
120 |
-
toggle: function () {
|
121 |
-
$store.dispatch('ss/toggleSection', this.section);
|
122 |
-
},
|
123 |
-
prepareToggle: function () {
|
124 |
-
var display = 'none';
|
125 |
-
if (this.isOpen) {
|
126 |
-
display = 'block';
|
127 |
-
}
|
128 |
|
129 |
-
this.$refs.collapse.style.display = display;
|
130 |
},
|
131 |
-
|
132 |
|
133 |
-
|
134 |
-
$
|
135 |
-
}
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
},
|
143 |
-
// update section
|
144 |
-
completed: function () {
|
145 |
-
if (this.changed) {
|
146 |
-
$store.dispatch('ss/updateSection', this.section);
|
147 |
-
this.changed = false;
|
148 |
-
}
|
149 |
-
},
|
150 |
-
// click remove section
|
151 |
-
removing: function () {
|
152 |
-
this.confirm = true;
|
153 |
-
var vm = this;
|
154 |
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
},
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
deleteItem: function (item) {
|
175 |
-
$store.dispatch('ss/deleteSectionItem', {section_id: this.section.id, item_id: item.id});
|
176 |
-
},
|
177 |
-
// navigation course items
|
178 |
-
navItem: function (payload) {
|
179 |
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
this
|
186 |
-
|
187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
}
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
|
|
|
|
|
|
193 |
} else {
|
194 |
-
this.
|
195 |
}
|
196 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
}
|
211 |
-
}
|
212 |
-
});
|
213 |
|
214 |
-
|
|
|
215 |
</script>
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-section">
|
13 |
+
<div class="section" :class="[isOpen ? 'open' : 'close', status, isEmpty ? 'empty-section' : '']"
|
14 |
+
:data-section-order="index"
|
15 |
:data-section-id="section.id">
|
16 |
<div class="section-head" @dblclick="toggle">
|
17 |
<span class="movable"></span>
|
19 |
<input v-model="section.title" type="text" title="title" class="title-input"
|
20 |
@change="updating" @blur="completed" @keyup.enter="completed"
|
21 |
placeholder="<?php esc_attr_e( 'Enter the name section', 'learnpress' ); ?>">
|
22 |
+
<div class="section-item-counts">
|
23 |
+
<span v-for="item in countItems()">{{item.count}} {{item.name}}</span>
|
24 |
+
</div>
|
25 |
<!--Section toggle-->
|
26 |
<div class="actions">
|
27 |
<span class="collapse" :class="isOpen ? 'open' : 'close'" @click.prevent="toggle"></span>
|
39 |
</div>
|
40 |
|
41 |
<div class="section-list-items" :class="{'no-item': !section.items.length}">
|
42 |
+
<ul>
|
43 |
<!--Section items-->
|
44 |
<lp-section-item v-for="(item, index) in section.items" :item="item" :key="item.id"
|
45 |
@update="updateItem" @remove="removeItem" @delete="deleteItem" @nav="navItem"
|
46 |
:order="index+1" :ref="index+1"
|
47 |
:disableCurriculum="disableCurriculum"></lp-section-item>
|
48 |
+
</ul>
|
49 |
|
50 |
<lp-new-section-item @create="newItem" v-if="!disableCurriculum"></lp-new-section-item>
|
51 |
</div>
|
65 |
</script>
|
66 |
|
67 |
<script type="text/javascript">
|
68 |
+
jQuery(function ($) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
+
(function (Vue, $store) {
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
+
Vue.component('lp-section', {
|
73 |
+
template: '#tmpl-lp-section',
|
74 |
+
props: ['section', 'index', 'disableCurriculum'],
|
75 |
+
data: function () {
|
76 |
+
return {
|
77 |
+
changed: false,
|
78 |
+
confirm: false
|
79 |
+
};
|
80 |
},
|
81 |
+
mounted: function () {
|
82 |
+
var vm = this;
|
83 |
|
84 |
+
this.prepareToggle();
|
85 |
+
|
86 |
+
this.$watch('section.open', function (open) {
|
87 |
+
vm.toggleAnimation(open);
|
88 |
+
});
|
89 |
+
|
90 |
+
$(this.$el).find('.section-list-items ul').sortable({
|
91 |
+
axis: 'y',
|
92 |
+
connectWith: '.section-list-items ul',
|
93 |
handle: '.drag',
|
94 |
+
start: function (e, ui) {
|
95 |
+
var id = parseInt(ui.item.attr('data-item-id'));
|
96 |
+
ui.item.data('vmItem', vm.section.items.filter(function (vmItem, i) {
|
97 |
+
return vmItem.id == id
|
98 |
+
}))
|
99 |
+
},
|
100 |
+
update: function (e, ui) {
|
101 |
+
var itemIds = $(this).children().map(function () {
|
102 |
+
return parseInt($(this).attr('data-item-id'));
|
103 |
+
}).get();
|
104 |
+
var vmItem = ui.item.data('vmItem');
|
105 |
+
vm.updateOrderItems(itemIds, vmItem ? vmItem[0] : null);
|
106 |
}
|
107 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
|
|
109 |
},
|
110 |
+
computed: {
|
111 |
|
112 |
+
status: function () {
|
113 |
+
return $store.getters['ss/statusUpdateSection'][this.section.id] || '';
|
114 |
+
},
|
115 |
+
isEmpty: function () {
|
116 |
+
return isNaN(this.section.id);
|
117 |
+
},
|
118 |
+
isOpen: function () {
|
119 |
+
return this.section.open;
|
120 |
+
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
|
122 |
+
items: {
|
123 |
+
get: function () {
|
124 |
+
return this.section.items;
|
125 |
+
},
|
126 |
+
set: function (items) {
|
127 |
+
this.section.items = items;
|
128 |
+
|
129 |
+
$store.dispatch('ss/updateSectionItems', {
|
130 |
+
section_id: this.section.id,
|
131 |
+
items: items
|
132 |
+
});
|
133 |
+
}
|
134 |
+
},
|
135 |
+
|
136 |
+
optionDraggable: function () {
|
137 |
+
return {
|
138 |
+
handle: '.drag',
|
139 |
+
draggable: '.section-item',
|
140 |
+
group: {
|
141 |
+
name: 'lp-section-items',
|
142 |
+
put: true,
|
143 |
+
pull: true
|
144 |
+
}
|
145 |
+
};
|
146 |
}
|
147 |
},
|
148 |
+
methods: {
|
149 |
+
updateOrderItems: function (orders, vmItem) {
|
150 |
+
var allItems = JSON.parse(JSON.stringify(this.section.items)),
|
151 |
+
items = [];
|
152 |
+
|
153 |
+
if (vmItem) {
|
154 |
+
allItems.push(vmItem);
|
155 |
+
}
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
+
for (var i = 0, n = orders.length; i < n; i++) {
|
158 |
+
$.each(allItems, function (j, item) {
|
159 |
+
if (orders[i] == item.id) {
|
160 |
+
items.push(JSON.parse(JSON.stringify(item)));
|
161 |
+
found = true;
|
162 |
+
return false;
|
163 |
+
}
|
164 |
+
});
|
165 |
+
}
|
166 |
|
167 |
+
this.section.items = items;
|
168 |
+
$store.dispatch('ss/updateSectionItems', {
|
169 |
+
section_id: this.section.id,
|
170 |
+
items: items
|
171 |
+
});
|
172 |
+
},
|
173 |
+
// toggle section
|
174 |
+
toggle: function () {
|
175 |
+
$store.dispatch('ss/toggleSection', this.section);
|
176 |
+
},
|
177 |
+
prepareToggle: function () {
|
178 |
+
var display = 'none';
|
179 |
+
if (this.isOpen) {
|
180 |
+
display = 'block';
|
181 |
}
|
182 |
+
|
183 |
+
this.$refs.collapse.style.display = display;
|
184 |
+
},
|
185 |
+
toggleAnimation: function (open) {
|
186 |
+
|
187 |
+
if (open) {
|
188 |
+
$(this.$refs.collapse).slideDown();
|
189 |
} else {
|
190 |
+
$(this.$refs.collapse).slideUp();
|
191 |
}
|
192 |
+
},
|
193 |
+
// updating section
|
194 |
+
updating: function () {
|
195 |
+
this.changed = true;
|
196 |
+
},
|
197 |
+
// update section
|
198 |
+
completed: function () {
|
199 |
+
if (this.changed) {
|
200 |
+
$store.dispatch('ss/updateSection', this.section);
|
201 |
+
this.changed = false;
|
202 |
+
}
|
203 |
+
},
|
204 |
+
// click remove section
|
205 |
+
removing: function () {
|
206 |
+
this.confirm = true;
|
207 |
+
var vm = this;
|
208 |
|
209 |
+
setTimeout(function () {
|
210 |
+
vm.confirm = false;
|
211 |
+
}, 3000);
|
212 |
+
},
|
213 |
+
// remove section
|
214 |
+
remove: function () {
|
215 |
+
if (this.confirm) {
|
216 |
+
$store.dispatch('ss/removeSection', {index: this.index, section: this.section});
|
217 |
+
this.confirm = false;
|
218 |
+
}
|
219 |
+
},
|
220 |
+
// update section item
|
221 |
+
updateItem: function (item) {
|
222 |
+
$store.dispatch('ss/updateSectionItem', {section_id: this.section.id, item: item});
|
223 |
+
},
|
224 |
+
// remove section item
|
225 |
+
removeItem: function (item) {
|
226 |
+
$store.dispatch('ss/removeSectionItem', {section_id: this.section.id, item: item});
|
227 |
+
},
|
228 |
+
deleteItem: function (item) {
|
229 |
+
$store.dispatch('ss/deleteSectionItem', {section_id: this.section.id, item: item});
|
230 |
+
},
|
231 |
+
// navigation course items
|
232 |
+
navItem: function (payload) {
|
233 |
+
|
234 |
+
var keyCode = payload.key,
|
235 |
+
order = payload.order;
|
236 |
+
|
237 |
+
if (keyCode === 38) {
|
238 |
+
if (order === 1) {
|
239 |
+
this.$refs.description.focus();
|
240 |
+
} else {
|
241 |
+
this.nav(order - 1);
|
242 |
+
}
|
243 |
+
}
|
244 |
+
if (keyCode === 40 || keyCode === 13) {
|
245 |
+
if (order === this.section.items.length) {
|
246 |
+
// code
|
247 |
+
} else {
|
248 |
+
this.nav(order + 1);
|
249 |
+
}
|
250 |
+
}
|
251 |
+
|
252 |
+
},
|
253 |
+
// focus item
|
254 |
+
nav: function (position) {
|
255 |
+
var element = 'div[data-section-order=' + this.index + '] li[data-item-order=' + position + ']';
|
256 |
+
($(element).find('.title input')).focus();
|
257 |
+
},
|
258 |
+
// new section item
|
259 |
+
newItem: function (item) {
|
260 |
+
$store.dispatch('ss/newSectionItem', {section_id: this.section.id, item: item});
|
261 |
+
console.log(item)
|
262 |
+
},
|
263 |
+
openModal: function () {
|
264 |
+
$store.dispatch('ci/open', parseInt(this.section.id));
|
265 |
+
},
|
266 |
+
countItems: function () {
|
267 |
+
var count = this.section.items.length,
|
268 |
+
labels = $store.getters['i18n/all'].item_labels;
|
269 |
+
return [{
|
270 |
+
count: count,
|
271 |
+
name: count > 1 ? labels.plural : labels.singular
|
272 |
+
}];
|
273 |
+
}
|
274 |
}
|
275 |
+
});
|
|
|
276 |
|
277 |
+
})(Vue, LP_Curriculum_Store);
|
278 |
+
});
|
279 |
</script>
|
@@ -24,47 +24,50 @@ learn_press_admin_view( 'course/new-section' );
|
|
24 |
</script>
|
25 |
|
26 |
<script type="text/javascript">
|
27 |
-
(function (
|
28 |
|
29 |
-
Vue
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
},
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
update: function () {
|
50 |
-
_self.sort();
|
51 |
-
}
|
52 |
-
});
|
53 |
-
}, 1000)
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
|
65 |
-
|
|
|
66 |
}
|
67 |
-
}
|
68 |
-
});
|
69 |
-
})
|
70 |
</script>
|
24 |
</script>
|
25 |
|
26 |
<script type="text/javascript">
|
27 |
+
jQuery(function ($) {
|
28 |
|
29 |
+
(function (Vue, $store) {
|
30 |
+
|
31 |
+
Vue.component('lp-list-sections', {
|
32 |
+
template: '#tmpl-lp-list-sections',
|
33 |
+
computed: {
|
34 |
+
// all sections
|
35 |
+
sections: function () {
|
36 |
+
return $store.getters['ss/sections'];
|
37 |
+
},
|
38 |
+
// disable edit curriculum
|
39 |
+
disableCurriculum: function () {
|
40 |
+
return $store.getters['disable_curriculum'];
|
41 |
+
}
|
42 |
},
|
43 |
+
created: function () {
|
44 |
+
var _self = this;
|
45 |
+
setTimeout(function () {
|
46 |
+
var $el = $('.curriculum-sections');
|
47 |
+
$el.sortable({
|
48 |
+
handle: '.section-head .movable',
|
49 |
+
axis: 'y',
|
50 |
+
items: "> .section",
|
51 |
+
update: function () {
|
52 |
+
_self.sort();
|
53 |
+
}
|
54 |
+
});
|
55 |
+
}, 1000)
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
+
},
|
58 |
+
methods: {
|
59 |
+
// sort sections
|
60 |
+
sort: function () {
|
61 |
|
62 |
+
var _items = $('.curriculum-sections>div.section'),
|
63 |
+
order = _items.map(function () {
|
64 |
+
return $(this).data('section-id');
|
65 |
+
}).get();
|
66 |
|
67 |
+
$store.dispatch('ss/updateSectionsOrder', order);
|
68 |
+
}
|
69 |
}
|
70 |
+
});
|
71 |
+
})(Vue, LP_Curriculum_Store);
|
72 |
+
});
|
73 |
</script>
|
@@ -8,17 +8,6 @@
|
|
8 |
|
9 |
<div id="admin-editor-<?php esc_attr_e( $post_type ); ?>">
|
10 |
<div class="lp-place-holder">
|
11 |
-
|
12 |
-
|
13 |
-
<div class="line-sm"></div>
|
14 |
-
<div class="line-xs"></div>
|
15 |
-
|
16 |
-
<div class="line-df"></div>
|
17 |
-
<div class="line-lgx"></div>
|
18 |
-
<div class="line-lg"></div>
|
19 |
-
|
20 |
-
<div class="line-df"></div>
|
21 |
-
<div class="line-lg"></div>
|
22 |
-
<div class="line-lgx"></div>
|
23 |
</div>
|
24 |
</div>
|
8 |
|
9 |
<div id="admin-editor-<?php esc_attr_e( $post_type ); ?>">
|
10 |
<div class="lp-place-holder">
|
11 |
+
<?php learn_press_admin_view( 'placeholder-animation' ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
</div>
|
13 |
</div>
|
@@ -16,7 +16,7 @@ defined( 'ABSPATH' ) || exit();
|
|
16 |
<div id="misc-publishing-actions">
|
17 |
<div class="misc-pub-section">
|
18 |
<select name="trigger-order-action">
|
19 |
-
<option value=""><?php _e( '
|
20 |
<option value="current-status"><?php _e( 'Trigger action of current order status', 'learnpress' ); ?></option>
|
21 |
</select>
|
22 |
</div>
|
16 |
<div id="misc-publishing-actions">
|
17 |
<div class="misc-pub-section">
|
18 |
<select name="trigger-order-action">
|
19 |
+
<option value=""><?php _e( 'Choose an action', 'learnpress' ); ?></option>
|
20 |
<option value="current-status"><?php _e( 'Trigger action of current order status', 'learnpress' ); ?></option>
|
21 |
</select>
|
22 |
</div>
|
@@ -6,6 +6,11 @@
|
|
6 |
<tr class="order-item-row" data-item_id="<?php echo $item['id']; ?>" data-id="<?php echo $item['course_id']; ?>"
|
7 |
data-remove_nonce="<?php echo wp_create_nonce( 'remove_order_item' ); ?>">
|
8 |
<td class="column-name">
|
|
|
|
|
|
|
|
|
|
|
9 |
<?php do_action( 'learn_press_before_order_details_item_title', $item ); ?>
|
10 |
<?php do_action( 'learn_press/before_order_details_item_title', $item ); ?>
|
11 |
<!-- <a href="" class="remove-order-item">×</a> -->
|
@@ -13,9 +18,7 @@
|
|
13 |
<?php do_action( 'learn_press_after_order_details_item_title', $item ); ?>
|
14 |
<?php do_action( 'learn_press/after_order_details_item_title', $item ); ?>
|
15 |
|
16 |
-
|
17 |
-
<a class="remove-order-item" href=""><?php _e( 'delete', 'learnpress' ); ?></a>
|
18 |
-
<?php } ?>
|
19 |
</td>
|
20 |
<td class="column-price align-right">
|
21 |
<?php echo learn_press_format_price( $item['total'], $currency_symbol ); ?>
|
6 |
<tr class="order-item-row" data-item_id="<?php echo $item['id']; ?>" data-id="<?php echo $item['course_id']; ?>"
|
7 |
data-remove_nonce="<?php echo wp_create_nonce( 'remove_order_item' ); ?>">
|
8 |
<td class="column-name">
|
9 |
+
<?php if ( 'pending' === $order->get_status() ) { ?>
|
10 |
+
<a class="remove-order-item" href="">
|
11 |
+
<span class="dashicons dashicons-trash"></span>
|
12 |
+
</a>
|
13 |
+
<?php } ?>
|
14 |
<?php do_action( 'learn_press_before_order_details_item_title', $item ); ?>
|
15 |
<?php do_action( 'learn_press/before_order_details_item_title', $item ); ?>
|
16 |
<!-- <a href="" class="remove-order-item">×</a> -->
|
18 |
<?php do_action( 'learn_press_after_order_details_item_title', $item ); ?>
|
19 |
<?php do_action( 'learn_press/after_order_details_item_title', $item ); ?>
|
20 |
|
21 |
+
|
|
|
|
|
22 |
</td>
|
23 |
<td class="column-price align-right">
|
24 |
<?php echo learn_press_format_price( $item['total'], $currency_symbol ); ?>
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying a placeholder with animation effect.
|
4 |
+
*
|
5 |
+
* @author ThimPress
|
6 |
+
* @package LearnPress/Admin/Views
|
7 |
+
* @version 3.0.7
|
8 |
+
*/
|
9 |
+
|
10 |
+
defined( 'ABSPATH' ) or die();
|
11 |
+
?>
|
12 |
+
<div class="line-heading"></div>
|
13 |
+
|
14 |
+
<div class="line-sm"></div>
|
15 |
+
<div class="line-xs"></div>
|
16 |
+
|
17 |
+
<div class="line-df"></div>
|
18 |
+
<div class="line-lgx"></div>
|
19 |
+
<div class="line-lg"></div>
|
20 |
+
|
21 |
+
<div class="line-df"></div>
|
22 |
+
<div class="line-lg"></div>
|
23 |
+
<div class="line-lgx"></div>
|
@@ -9,7 +9,10 @@
|
|
9 |
<script type="text/x-template" id="tmpl-lp-question-actions">
|
10 |
|
11 |
<div class="lp-box-data-head lp-row">
|
12 |
-
<h3 class="heading"
|
|
|
|
|
|
|
13 |
<div class="lp-box-data-actions lp-toolbar-buttons">
|
14 |
<div class="lp-toolbar-btn question-actions">
|
15 |
<div class="question-types">
|
@@ -40,6 +43,10 @@
|
|
40 |
}
|
41 |
},
|
42 |
methods: {
|
|
|
|
|
|
|
|
|
43 |
// check question type active
|
44 |
active: function (type) {
|
45 |
return this.type === type ? 'active' : '';
|
9 |
<script type="text/x-template" id="tmpl-lp-question-actions">
|
10 |
|
11 |
<div class="lp-box-data-head lp-row">
|
12 |
+
<h3 class="heading">
|
13 |
+
<?php esc_html_e( 'Question Answers', 'learnpress' ); ?>
|
14 |
+
<div class="section-item-counts"><span>{{typeLabel()}}</span></div>
|
15 |
+
</h3>
|
16 |
<div class="lp-box-data-actions lp-toolbar-buttons">
|
17 |
<div class="lp-toolbar-btn question-actions">
|
18 |
<div class="question-types">
|
43 |
}
|
44 |
},
|
45 |
methods: {
|
46 |
+
typeLabel: function () {
|
47 |
+
var types = this.types;
|
48 |
+
return types[this.type];
|
49 |
+
},
|
50 |
// check question type active
|
51 |
active: function (type) {
|
52 |
return this.type === type ? 'active' : '';
|
@@ -14,9 +14,9 @@ learn_press_admin_view( 'question/option' );
|
|
14 |
<thead>
|
15 |
<tr>
|
16 |
<th class="sort"></th>
|
17 |
-
<th class="order"
|
18 |
<th class="answer-text"><?php _e( 'Answer Text', 'learnpress' ); ?></th>
|
19 |
-
<th class="answer-correct"><?php _e( 'Correct
|
20 |
<th class="actions"></th>
|
21 |
</tr>
|
22 |
</thead>
|
@@ -72,6 +72,19 @@ learn_press_admin_view( 'question/option' );
|
|
72 |
$el.sortable({
|
73 |
handle: '.sort',
|
74 |
axis: 'y',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
update: function () {
|
76 |
_self.sort();
|
77 |
}
|
@@ -84,7 +97,7 @@ learn_press_admin_view( 'question/option' );
|
|
84 |
var _items = $('.list-question-answers tbody>tr.answer-option');
|
85 |
var _order = [];
|
86 |
_items.each(function (index, item) {
|
87 |
-
$(item).find('.order').text(index + 1);
|
88 |
_order.push($(item).data('answer-id'));
|
89 |
});
|
90 |
|
@@ -113,7 +126,12 @@ learn_press_admin_view( 'question/option' );
|
|
113 |
newAnswer: function () {
|
114 |
// new answer
|
115 |
if (this.status === 'successful') {
|
116 |
-
$store.dispatch('newAnswer'
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
118 |
}
|
119 |
}
|
14 |
<thead>
|
15 |
<tr>
|
16 |
<th class="sort"></th>
|
17 |
+
<th class="order">#</th>
|
18 |
<th class="answer-text"><?php _e( 'Answer Text', 'learnpress' ); ?></th>
|
19 |
+
<th class="answer-correct"><?php _e( 'Correct?', 'learnpress' ); ?></th>
|
20 |
<th class="actions"></th>
|
21 |
</tr>
|
22 |
</thead>
|
72 |
$el.sortable({
|
73 |
handle: '.sort',
|
74 |
axis: 'y',
|
75 |
+
helper: function (e, ui) {
|
76 |
+
var $tr = $('<tr />'),
|
77 |
+
$row = $(e.target).closest('tr');
|
78 |
+
$row.children().each(function () {
|
79 |
+
var $td = $(this).clone().width($(this).width())
|
80 |
+
$tr.append($td);
|
81 |
+
});
|
82 |
+
|
83 |
+
return $tr;
|
84 |
+
},
|
85 |
+
start: function () {
|
86 |
+
|
87 |
+
},
|
88 |
update: function () {
|
89 |
_self.sort();
|
90 |
}
|
97 |
var _items = $('.list-question-answers tbody>tr.answer-option');
|
98 |
var _order = [];
|
99 |
_items.each(function (index, item) {
|
100 |
+
$(item).find('.order').text((index + 1) + '.');
|
101 |
_order.push($(item).data('answer-id'));
|
102 |
});
|
103 |
|
126 |
newAnswer: function () {
|
127 |
// new answer
|
128 |
if (this.status === 'successful') {
|
129 |
+
$store.dispatch('newAnswer', {
|
130 |
+
answer: {
|
131 |
+
value: LP.uniqueId(),
|
132 |
+
text: $store.getters.i18n.new_option_label
|
133 |
+
}
|
134 |
+
});
|
135 |
}
|
136 |
}
|
137 |
}
|
@@ -7,9 +7,9 @@
|
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-question-answer-option">
|
10 |
-
<tr class="answer-option" :data-answer-id="id">
|
11 |
-
<td class="sort"
|
12 |
-
<td class="order">{{index +1}}
|
13 |
<td class="answer-text">
|
14 |
<form @submit.prevent="">
|
15 |
<input type="text" v-model="answer.text"
|
@@ -76,6 +76,9 @@
|
|
76 |
id: this.id,
|
77 |
order: this.answer.answer_order
|
78 |
});
|
|
|
|
|
|
|
79 |
}
|
80 |
}
|
81 |
})
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-question-answer-option">
|
10 |
+
<tr class="answer-option" :class="[isNew() ? 'new-option' : '']" :data-answer-id="id">
|
11 |
+
<td class="sort"><?php learn_press_admin_view( 'svg-icon' ); ?></td>
|
12 |
+
<td class="order">{{index +1}}.</td>
|
13 |
<td class="answer-text">
|
14 |
<form @submit.prevent="">
|
15 |
<input type="text" v-model="answer.text"
|
76 |
id: this.id,
|
77 |
order: this.answer.answer_order
|
78 |
});
|
79 |
+
},
|
80 |
+
isNew: function () {
|
81 |
+
return isNaN(this.answer.question_answer_id);
|
82 |
}
|
83 |
}
|
84 |
})
|
@@ -14,6 +14,9 @@ learn_press_admin_view( 'quiz/modal-choose-items' );
|
|
14 |
<div v-if="heartbeat">
|
15 |
<div class="lp-box-data-head heading">
|
16 |
<h3><?php echo __( 'Questions', 'learnpress' ); ?><span class="status"></span></h3>
|
|
|
|
|
|
|
17 |
<span :class="['collapse-list-questions dashicons ' , close ? 'dashicons-arrow-down' : 'dashicons-arrow-up']"
|
18 |
@click="toggle"></span>
|
19 |
</div>
|
@@ -35,18 +38,20 @@ learn_press_admin_view( 'quiz/modal-choose-items' );
|
|
35 |
|
36 |
<div class="footer" v-if="!disableUpdateList">
|
37 |
<div class="table-row">
|
38 |
-
<div class="
|
|
|
|
|
39 |
<div class="title">
|
40 |
<form @submit.prevent="">
|
41 |
<input type="text" v-model="new_question.title"
|
42 |
-
placeholder="<?php _e( '
|
43 |
@keyup.enter.prevent="addItem()">
|
44 |
</form>
|
45 |
</div>
|
46 |
<div class="add-new">
|
47 |
<button type="button" class="button" :disabled="!addableNew"
|
48 |
@click.prevent="addItem(new_question.type)">
|
49 |
-
<?php esc_html_e( 'Add as New', 'learnpress' ); ?>
|
50 |
</button>
|
51 |
<ul class="question-types">
|
52 |
<li v-for="(type, key) in questionTypes">
|
@@ -69,19 +74,7 @@ learn_press_admin_view( 'quiz/modal-choose-items' );
|
|
69 |
</div>
|
70 |
<div v-else>
|
71 |
<div class="lp-place-holder">
|
72 |
-
|
73 |
-
|
74 |
-
<div class="line-sm"></div>
|
75 |
-
<div class="line-xs"></div>
|
76 |
-
|
77 |
-
<div class="line-df"></div>
|
78 |
-
<div class="line-lgx"></div>
|
79 |
-
<div class="line-lg"></div>
|
80 |
-
|
81 |
-
<div class="line-df"></div>
|
82 |
-
<div class="line-lg"></div>
|
83 |
-
<div class="line-lgx"></div>
|
84 |
-
|
85 |
<div class="notify-reload"><?php esc_html_e( 'Something went wrong! Please reload to continue editing quiz questions.', 'learnpress' ); ?></div>
|
86 |
</div>
|
87 |
</div>
|
@@ -146,11 +139,11 @@ learn_press_admin_view( 'quiz/modal-choose-items' );
|
|
146 |
},
|
147 |
// add new question
|
148 |
addItem: function (type) {
|
149 |
-
|
150 |
if (this.new_question.title) {
|
151 |
if (!type) {
|
152 |
type = this.newQuestionType;
|
153 |
}
|
|
|
154 |
|
155 |
// new question
|
156 |
this.new_question.type = type;
|
@@ -175,6 +168,14 @@ learn_press_admin_view( 'quiz/modal-choose-items' );
|
|
175 |
title: $('input[name=post_title]').val(),
|
176 |
content: $('textarea[name=content]').val()
|
177 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
}
|
179 |
}
|
180 |
})
|
14 |
<div v-if="heartbeat">
|
15 |
<div class="lp-box-data-head heading">
|
16 |
<h3><?php echo __( 'Questions', 'learnpress' ); ?><span class="status"></span></h3>
|
17 |
+
<div class="section-item-counts">
|
18 |
+
<span>{{textCountQuestions()}}</span>
|
19 |
+
</div>
|
20 |
<span :class="['collapse-list-questions dashicons ' , close ? 'dashicons-arrow-down' : 'dashicons-arrow-up']"
|
21 |
@click="toggle"></span>
|
22 |
</div>
|
38 |
|
39 |
<div class="footer" v-if="!disableUpdateList">
|
40 |
<div class="table-row">
|
41 |
+
<div class="sort"></div>
|
42 |
+
<div class="order">{{countQuestions() + 1}}</div>
|
43 |
+
<div class="name add-new-question">
|
44 |
<div class="title">
|
45 |
<form @submit.prevent="">
|
46 |
<input type="text" v-model="new_question.title"
|
47 |
+
placeholder="<?php _e( 'Create a new question', 'learnpress' ); ?>"
|
48 |
@keyup.enter.prevent="addItem()">
|
49 |
</form>
|
50 |
</div>
|
51 |
<div class="add-new">
|
52 |
<button type="button" class="button" :disabled="!addableNew"
|
53 |
@click.prevent="addItem(new_question.type)">
|
54 |
+
<?php esc_html_e( 'Add as New...', 'learnpress' ); ?>
|
55 |
</button>
|
56 |
<ul class="question-types">
|
57 |
<li v-for="(type, key) in questionTypes">
|
74 |
</div>
|
75 |
<div v-else>
|
76 |
<div class="lp-place-holder">
|
77 |
+
<?php learn_press_admin_view( 'placeholder-animation' ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
<div class="notify-reload"><?php esc_html_e( 'Something went wrong! Please reload to continue editing quiz questions.', 'learnpress' ); ?></div>
|
79 |
</div>
|
80 |
</div>
|
139 |
},
|
140 |
// add new question
|
141 |
addItem: function (type) {
|
|
|
142 |
if (this.new_question.title) {
|
143 |
if (!type) {
|
144 |
type = this.newQuestionType;
|
145 |
}
|
146 |
+
this.new_question.id = LP.uniqueId()
|
147 |
|
148 |
// new question
|
149 |
this.new_question.type = type;
|
168 |
title: $('input[name=post_title]').val(),
|
169 |
content: $('textarea[name=content]').val()
|
170 |
});
|
171 |
+
},
|
172 |
+
countQuestions: function () {
|
173 |
+
return $store.getters['lqs/listQuestions'].length;
|
174 |
+
},
|
175 |
+
textCountQuestions: function () {
|
176 |
+
var count = this.countQuestions(),
|
177 |
+
labels = $store.getters['i18n/all'].question_labels;
|
178 |
+
return count + ' ' + (count > 1 ? labels.plural : labels.singular);
|
179 |
}
|
180 |
}
|
181 |
})
|
@@ -54,14 +54,15 @@ learn_press_admin_view( 'quiz/pagination' );
|
|
54 |
<ul class="tabs">
|
55 |
<li class="tab active"><a href="#"><?php esc_html_e( 'Questions', 'learnpress' ); ?></a></li>
|
56 |
</ul>
|
57 |
-
<
|
58 |
-
<span class="dashicons dashicons-no-alt"></span>
|
59 |
-
</
|
60 |
</div>
|
61 |
|
62 |
<div class="main">
|
63 |
<form class="search" @submit.prevent="">
|
64 |
-
<input type="text"
|
|
|
65 |
title="search" @input="onChangeQuery" v-model="query">
|
66 |
</form>
|
67 |
<ul class="list-items">
|
@@ -131,6 +132,9 @@ learn_press_admin_view( 'quiz/pagination' );
|
|
131 |
$('body').removeClass('lp-quiz-modal-choose-item-open');
|
132 |
}
|
133 |
})
|
|
|
|
|
|
|
134 |
},
|
135 |
computed: {
|
136 |
status: function () {
|
@@ -161,7 +165,11 @@ learn_press_admin_view( 'quiz/pagination' );
|
|
161 |
return $store.getters['cqi/items'];
|
162 |
},
|
163 |
show: function () {
|
164 |
-
|
|
|
|
|
|
|
|
|
165 |
},
|
166 |
// check new quiz
|
167 |
new_quiz: function () {
|
@@ -176,6 +184,12 @@ learn_press_admin_view( 'quiz/pagination' );
|
|
176 |
this.adding = false;
|
177 |
this.makeSearch();
|
178 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
// add items to quiz
|
180 |
checkout: function () {
|
181 |
this.adding = true;
|
54 |
<ul class="tabs">
|
55 |
<li class="tab active"><a href="#"><?php esc_html_e( 'Questions', 'learnpress' ); ?></a></li>
|
56 |
</ul>
|
57 |
+
<a class="close" @click="close">
|
58 |
+
<span class="dashicons dashicons-no-alt" title="<?php esc_attr_e('Close', 'learnpress');?>"></span>
|
59 |
+
</a>
|
60 |
</div>
|
61 |
|
62 |
<div class="main">
|
63 |
<form class="search" @submit.prevent="">
|
64 |
+
<input type="text" class="modal-search-input"
|
65 |
+
placeholder="<?php esc_attr_e( 'Type here to search question', 'learnpress' ); ?>"
|
66 |
title="search" @input="onChangeQuery" v-model="query">
|
67 |
</form>
|
68 |
<ul class="list-items">
|
132 |
$('body').removeClass('lp-quiz-modal-choose-item-open');
|
133 |
}
|
134 |
})
|
135 |
+
},
|
136 |
+
mounted: function () {
|
137 |
+
|
138 |
},
|
139 |
computed: {
|
140 |
status: function () {
|
165 |
return $store.getters['cqi/items'];
|
166 |
},
|
167 |
show: function () {
|
168 |
+
var isShow = $store.getters['cqi/isOpen'];
|
169 |
+
|
170 |
+
isShow && this.focusInput();
|
171 |
+
|
172 |
+
return isShow;
|
173 |
},
|
174 |
// check new quiz
|
175 |
new_quiz: function () {
|
184 |
this.adding = false;
|
185 |
this.makeSearch();
|
186 |
},
|
187 |
+
focusInput: function () {
|
188 |
+
var $input = $(this.$el).find('.main .search input[type="text"]').focus();
|
189 |
+
setTimeout(function () {
|
190 |
+
$input.focus();
|
191 |
+
}, 300)
|
192 |
+
},
|
193 |
// add items to quiz
|
194 |
checkout: function () {
|
195 |
this.adding = true;
|
@@ -9,9 +9,7 @@
|
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-actions">
|
10 |
<div class="question-actions table-row" :class="status">
|
11 |
<div class="sort">
|
12 |
-
<
|
13 |
-
<path d="M 14 5.5 a 3 3 0 1 1 -3 -3 A 3 3 0 0 1 14 5.5 Z m 7 3 a 3 3 0 1 0 -3 -3 A 3 3 0 0 0 21 8.5 Z m -10 4 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 12.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 12.5 Z m -10 10 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 22.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 22.5 Z"></path>
|
14 |
-
</svg>
|
15 |
</div>
|
16 |
<div class="order">{{index +1}}</div>
|
17 |
<div class="name" @dblclick="toggle">
|
@@ -45,7 +43,7 @@
|
|
45 |
</li>
|
46 |
<li>
|
47 |
<a @click.prevent="deletePermanently"
|
48 |
-
class="delete"><?php esc_html_e( '
|
49 |
</li>
|
50 |
</ul>
|
51 |
</div>
|
@@ -122,6 +120,9 @@
|
|
122 |
},
|
123 |
// delete permanently question
|
124 |
deletePermanently: function () {
|
|
|
|
|
|
|
125 |
$store.dispatch('lqs/deleteQuestion', this.question);
|
126 |
},
|
127 |
// toggle question
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-actions">
|
10 |
<div class="question-actions table-row" :class="status">
|
11 |
<div class="sort">
|
12 |
+
<i class="fa fa-bars"></i>
|
|
|
|
|
13 |
</div>
|
14 |
<div class="order">{{index +1}}</div>
|
15 |
<div class="name" @dblclick="toggle">
|
43 |
</li>
|
44 |
<li>
|
45 |
<a @click.prevent="deletePermanently"
|
46 |
+
class="delete"><?php esc_html_e( 'Move to trash', 'learnpress' ); ?></a>
|
47 |
</li>
|
48 |
</ul>
|
49 |
</div>
|
120 |
},
|
121 |
// delete permanently question
|
122 |
deletePermanently: function () {
|
123 |
+
if (!confirm($store.getters['i18n/all'].confirm_trash_question.replace('{{QUESTION_NAME}}', this.question.title))) {
|
124 |
+
return;
|
125 |
+
}
|
126 |
$store.dispatch('lqs/deleteQuestion', this.question);
|
127 |
},
|
128 |
// toggle question
|
@@ -7,9 +7,10 @@
|
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-answer-option">
|
10 |
-
<tr class="answer-option" :data-answer-id="answer.question_answer_id"
|
11 |
-
|
12 |
-
<td class="
|
|
|
13 |
<td class="answer-text">
|
14 |
<input type="text" v-model="answer.text"
|
15 |
@change="changeTitle" @keyup.enter="updateTitle" @blur="updateTitle" @keyup="keyUp"/>
|
@@ -69,6 +70,9 @@
|
|
69 |
}
|
70 |
},
|
71 |
methods: {
|
|
|
|
|
|
|
72 |
changeCorrect: function (e) {
|
73 |
this.answer.is_true = (e.target.checked) ? 'yes' : '';
|
74 |
this.$emit('changeCorrect', this.answer);
|
7 |
?>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-answer-option">
|
10 |
+
<tr class="answer-option" :class="[isNew() ? 'empty-option' : '']" :data-answer-id="answer.question_answer_id"
|
11 |
+
:data-order-answer="index">
|
12 |
+
<td class="sort"><?php learn_press_admin_view( 'svg-icon' ); ?></td>
|
13 |
+
<td class="order">{{index +1}}.</td>
|
14 |
<td class="answer-text">
|
15 |
<input type="text" v-model="answer.text"
|
16 |
@change="changeTitle" @keyup.enter="updateTitle" @blur="updateTitle" @keyup="keyUp"/>
|
70 |
}
|
71 |
},
|
72 |
methods: {
|
73 |
+
isNew: function () {
|
74 |
+
return isNaN(this.answer.question_answer_id)
|
75 |
+
},
|
76 |
changeCorrect: function (e) {
|
77 |
this.answer.is_true = (e.target.checked) ? 'yes' : '';
|
78 |
this.$emit('changeCorrect', this.answer);
|
@@ -15,9 +15,9 @@ learn_press_admin_view( 'quiz/question-answer-option' );
|
|
15 |
<thead>
|
16 |
<tr>
|
17 |
<th class="sort"></th>
|
18 |
-
<th class="order"
|
19 |
<th class="answer-text"><?php esc_html_e( 'Answer Text', 'learnpress' ); ?></th>
|
20 |
-
<th class="answer-correct"><?php esc_html_e( '
|
21 |
<th class="actions"></th>
|
22 |
</tr>
|
23 |
</thead>
|
@@ -50,10 +50,20 @@ learn_press_admin_view( 'quiz/question-answer-option' );
|
|
50 |
mounted: function () {
|
51 |
var _self = this;
|
52 |
setTimeout(function () {
|
53 |
-
var $el = $('.
|
54 |
$el.sortable({
|
55 |
handle: '.sort',
|
56 |
axis: 'y',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
update: function () {
|
58 |
_self.sort();
|
59 |
}
|
@@ -68,7 +78,7 @@ learn_press_admin_view( 'quiz/question-answer-option' );
|
|
68 |
var _items = $('.question-item[data-item-id="' + this.question.id + '"] .quiz-question-data .lp-list-questions>.lp-list-options tbody tr');
|
69 |
var _order = [];
|
70 |
_items.each(function (index, item) {
|
71 |
-
$(item).find('.order').text(index + 1);
|
72 |
_order.push($(item).data('answer-id'));
|
73 |
});
|
74 |
|
@@ -86,7 +96,11 @@ learn_press_admin_view( 'quiz/question-answer-option' );
|
|
86 |
},
|
87 |
// new answer option
|
88 |
newAnswer: function () {
|
89 |
-
$store.dispatch('lqs/newQuestionAnswer',
|
|
|
|
|
|
|
|
|
90 |
},
|
91 |
// navigation course items
|
92 |
navItem: function (payload) {
|
15 |
<thead>
|
16 |
<tr>
|
17 |
<th class="sort"></th>
|
18 |
+
<th class="order">#</th>
|
19 |
<th class="answer-text"><?php esc_html_e( 'Answer Text', 'learnpress' ); ?></th>
|
20 |
+
<th class="answer-correct"><?php esc_html_e( 'Correct?', 'learnpress' ); ?></th>
|
21 |
<th class="actions"></th>
|
22 |
</tr>
|
23 |
</thead>
|
50 |
mounted: function () {
|
51 |
var _self = this;
|
52 |
setTimeout(function () {
|
53 |
+
var $el = $(_self.$el).find('.lp-list-options tbody');
|
54 |
$el.sortable({
|
55 |
handle: '.sort',
|
56 |
axis: 'y',
|
57 |
+
helper: function (e, ui) {
|
58 |
+
var $tr = $('<tr />'),
|
59 |
+
$row = $(e.target).closest('tr');
|
60 |
+
$row.children().each(function () {
|
61 |
+
var $td = $(this).clone().width($(this).width())
|
62 |
+
$tr.append($td);
|
63 |
+
});
|
64 |
+
|
65 |
+
return $tr;
|
66 |
+
},
|
67 |
update: function () {
|
68 |
_self.sort();
|
69 |
}
|
78 |
var _items = $('.question-item[data-item-id="' + this.question.id + '"] .quiz-question-data .lp-list-questions>.lp-list-options tbody tr');
|
79 |
var _order = [];
|
80 |
_items.each(function (index, item) {
|
81 |
+
$(item).find('.order').text((index + 1) + '.');
|
82 |
_order.push($(item).data('answer-id'));
|
83 |
});
|
84 |
|
96 |
},
|
97 |
// new answer option
|
98 |
newAnswer: function () {
|
99 |
+
$store.dispatch('lqs/newQuestionAnswer', {
|
100 |
+
question_id: this.question.id, success: function (answer) {
|
101 |
+
$(this.$el).find('tr[data-answer-id="' + answer.question_answer_id + '"] .answer-text input').focus();
|
102 |
+
}, context: this
|
103 |
+
});
|
104 |
},
|
105 |
// navigation course items
|
106 |
navItem: function (payload) {
|
@@ -8,60 +8,60 @@
|
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-meta">
|
10 |
<div class="quiz-question-options">
|
11 |
-
<div>
|
12 |
-
<
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
22 |
<textarea name="" id="" cols="60" rows="3" class="rwmb-textarea large-text"
|
23 |
@change="updateContent"
|
24 |
v-model="question.settings.content"></textarea>
|
25 |
-
</div>
|
26 |
</div>
|
27 |
</div>
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
<div class="rwml-input">
|
33 |
-
<div>
|
34 |
-
<input name="mark" type="number" v-model="question.settings.mark"
|
35 |
-
@change="updateMeta">
|
36 |
-
<p class="description"><?php _e( 'Mark for choosing the right answer.', 'learnpress' ); ?></p>
|
37 |
-
</div>
|
38 |
-
</div>
|
39 |
</div>
|
40 |
-
<div class="
|
41 |
-
<div
|
42 |
-
<
|
|
|
|
|
43 |
</div>
|
44 |
-
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
<textarea name="explanation" id="" cols="60" rows="3"
|
47 |
class="rwmb-textarea large-text"
|
48 |
@change="updateMeta"
|
49 |
v-model="question.settings.explanation"></textarea>
|
50 |
-
|
51 |
-
</div>
|
52 |
</div>
|
53 |
</div>
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
60 |
<textarea name="hint" id="" cols="60" rows="3" class="rwmb-textarea large-text"
|
61 |
@change="updateMeta"
|
62 |
v-model="question.settings.hint"></textarea>
|
63 |
-
|
64 |
-
</div>
|
65 |
</div>
|
66 |
</div>
|
67 |
</div>
|
@@ -75,23 +75,39 @@
|
|
75 |
(function (Vue, $store) {
|
76 |
|
77 |
Vue.component('lp-quiz-question-meta', {
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
}
|
94 |
-
)
|
95 |
|
96 |
})(Vue, LP_Quiz_Store);
|
97 |
</script>
|
8 |
|
9 |
<script type="text/x-template" id="tmpl-lp-quiz-question-meta">
|
10 |
<div class="quiz-question-options">
|
11 |
+
<div class="postbox" @click="openSettings($event)">
|
12 |
+
<h2 class="hndle"><span><?php _e( 'Settings', 'learnpress' ); ?></span>
|
13 |
+
</h2>
|
14 |
+
<a class="toggle" @click.prevent="openSettings($event)"></a>
|
15 |
+
<div class="inside">
|
16 |
+
<div class="rwmb-meta-box">
|
17 |
+
<div class="rwmb-field rwmb-textarea-wrapper">
|
18 |
+
<div class="rwmb-label">
|
19 |
+
<label for=""><?php _e( 'Question Content', 'learnpress' ); ?></label>
|
20 |
+
</div>
|
21 |
+
<div class="rwml-input">
|
22 |
+
<div>
|
23 |
<textarea name="" id="" cols="60" rows="3" class="rwmb-textarea large-text"
|
24 |
@change="updateContent"
|
25 |
v-model="question.settings.content"></textarea>
|
|
|
26 |
</div>
|
27 |
</div>
|
28 |
+
</div>
|
29 |
+
<div class="rwmb-field rwmb-number-wrapper">
|
30 |
+
<div class="rwmb-label">
|
31 |
+
<label for=""><?php _e( 'Mark for this question', 'learnpress' ); ?></label>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
</div>
|
33 |
+
<div class="rwml-input">
|
34 |
+
<div>
|
35 |
+
<input name="mark" type="number" v-model="question.settings.mark"
|
36 |
+
@change="updateMeta">
|
37 |
+
<p class="description"><?php _e( 'Mark for choosing the right answer.', 'learnpress' ); ?></p>
|
38 |
</div>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
<div class="rwmb-field rwmb-textarea-wrapper">
|
42 |
+
<div class="rwmb-label">
|
43 |
+
<label for=""><?php _e( 'Question Explanation', 'learnpress' ); ?></label>
|
44 |
+
</div>
|
45 |
+
<div class="rwml-input">
|
46 |
+
<div>
|
47 |
<textarea name="explanation" id="" cols="60" rows="3"
|
48 |
class="rwmb-textarea large-text"
|
49 |
@change="updateMeta"
|
50 |
v-model="question.settings.explanation"></textarea>
|
51 |
+
<p class="description"><?php _e( 'Explain why an option is true and other is false. The text will be shown when user click on \'Check answer\' button.', 'learnpress' ); ?></p>
|
|
|
52 |
</div>
|
53 |
</div>
|
54 |
+
</div>
|
55 |
+
<div class="rwmb-field rwmb-textarea-wrapper">
|
56 |
+
<div class="rwmb-label">
|
57 |
+
<label for=""><?php _e( 'Question Hint', 'learnpress' ); ?></label>
|
58 |
+
</div>
|
59 |
+
<div class="rwml-input">
|
60 |
+
<div>
|
61 |
<textarea name="hint" id="" cols="60" rows="3" class="rwmb-textarea large-text"
|
62 |
@change="updateMeta"
|
63 |
v-model="question.settings.hint"></textarea>
|
64 |
+
<p class="description"><?php _e( 'Instruction for user to select the right answer. The text will be shown when users click the \'Hint\' button.', 'learnpress' ); ?></p>
|
|
|
65 |
</div>
|
66 |
</div>
|
67 |
</div>
|
75 |
(function (Vue, $store) {
|
76 |
|
77 |
Vue.component('lp-quiz-question-meta', {
|
78 |
+
template: '#tmpl-lp-quiz-question-meta',
|
79 |
+
props: ['question'],
|
80 |
+
methods: {
|
81 |
+
// update question content
|
82 |
+
updateContent: function () {
|
83 |
+
$store.dispatch('lqs/updateQuestionContent', this.question);
|
84 |
+
},
|
85 |
+
// update question meta
|
86 |
+
updateMeta: function (e) {
|
87 |
+
$store.dispatch('lqs/updateQuestionMeta', {
|
88 |
+
question: this.question,
|
89 |
+
meta_key: e.target.name
|
90 |
+
});
|
91 |
+
},
|
92 |
+
openSettings: function (e) {
|
93 |
+
e.stopPropagation();
|
94 |
+
var $root = $(this.$el).closest('.question-settings'),
|
95 |
+
$postbox = $root.find('.postbox');
|
96 |
+
$postbox.removeClass('closed');
|
97 |
+
if (!$(e.target).hasClass('toggle')) {
|
98 |
+
return;
|
99 |
}
|
100 |
+
|
101 |
+
var isClosed = $root.toggleClass('closed').hasClass('closed');
|
102 |
+
|
103 |
+
$store.dispatch('lqs/updateQuizQuestionsHidden', {
|
104 |
+
hidden: $('.question-settings.closed').map(function () {
|
105 |
+
return $(this).closest('.question-item').data('item-id')
|
106 |
+
}).get()
|
107 |
+
})
|
108 |
}
|
109 |
}
|
110 |
+
})
|
111 |
|
112 |
})(Vue, LP_Quiz_Store);
|
113 |
</script>
|
@@ -10,8 +10,8 @@ learn_press_admin_view( 'quiz/question-meta' );
|
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-quiz-question-settings">
|
13 |
-
<div class="question-settings"
|
14 |
-
|
15 |
<template v-if="isExternal">
|
16 |
<?php do_action( 'learn-press/quiz-editor/question-js-component' ); ?>
|
17 |
</template>
|
@@ -34,6 +34,11 @@ learn_press_admin_view( 'quiz/question-meta' );
|
|
34 |
isExternal: function () {
|
35 |
return $store.getters['lqs/externalComponent'].indexOf(this.question.type.key) !== -1;
|
36 |
}
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
38 |
})
|
39 |
})(Vue, LP_Quiz_Store)
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-quiz-question-settings">
|
13 |
+
<div class="question-settings"
|
14 |
+
:class="[question.open ? 'table-row' : 'hide-if-js', isHiddenSettings(question.id) ? 'closed' : '']">
|
15 |
<template v-if="isExternal">
|
16 |
<?php do_action( 'learn-press/quiz-editor/question-js-component' ); ?>
|
17 |
</template>
|
34 |
isExternal: function () {
|
35 |
return $store.getters['lqs/externalComponent'].indexOf(this.question.type.key) !== -1;
|
36 |
}
|
37 |
+
},
|
38 |
+
methods: {
|
39 |
+
isHiddenSettings: function (id) {
|
40 |
+
return $.inArray(id, $store.getters['lqs/hiddenQuestionsSettings']) !== -1;
|
41 |
+
}
|
42 |
}
|
43 |
})
|
44 |
})(Vue, LP_Quiz_Store)
|
@@ -10,7 +10,8 @@ learn_press_admin_view( 'quiz/question-settings' );
|
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-quiz-question-item">
|
13 |
-
<div :class="['question-item',question.type.key]" :data-item-id="question.id"
|
|
|
14 |
<lp-quiz-question-actions :question="question" :index="index" @nav="navItem"></lp-quiz-question-actions>
|
15 |
<lp-quiz-question-settings :question="question" :index="index"></lp-quiz-question-settings>
|
16 |
</div>
|
@@ -46,6 +47,9 @@ learn_press_admin_view( 'quiz/question-settings' );
|
|
46 |
nav: function (position) {
|
47 |
var element = 'div[data-question-order=' + position + ']';
|
48 |
($(element).find('.name input')).focus();
|
|
|
|
|
|
|
49 |
}
|
50 |
}
|
51 |
});
|
10 |
?>
|
11 |
|
12 |
<script type="text/x-template" id="tmpl-lp-quiz-question-item">
|
13 |
+
<div :class="['question-item',question.type.key, isNew() ? 'empty-question' : '']" :data-item-id="question.id"
|
14 |
+
:data-question-order="index">
|
15 |
<lp-quiz-question-actions :question="question" :index="index" @nav="navItem"></lp-quiz-question-actions>
|
16 |
<lp-quiz-question-settings :question="question" :index="index"></lp-quiz-question-settings>
|
17 |
</div>
|
47 |
nav: function (position) {
|
48 |
var element = 'div[data-question-order=' + position + ']';
|
49 |
($(element).find('.name input')).focus();
|
50 |
+
},
|
51 |
+
isNew: function () {
|
52 |
+
return isNaN(this.question.id);
|
53 |
}
|
54 |
}
|
55 |
});
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying icon with six dots in 2 columns.
|
4 |
+
*
|
5 |
+
* @author ThimPress
|
6 |
+
* @package LearnPress/Admin/Views
|
7 |
+
* @version 3.0.0
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) or die();
|
10 |
+
|
11 |
+
$viewBox = isset( $viewBox ) ? $viewBox : '0 0 32 32';
|
12 |
+
$class = isset( $class ) ? $class : 'svg-icon';
|
13 |
+
?>
|
14 |
+
<svg class="<?php echo $class; ?>" viewBox="<?php echo $viewBox; ?>">
|
15 |
+
<path d="M 14 5.5 a 3 3 0 1 1 -3 -3 A 3 3 0 0 1 14 5.5 Z m 7 3 a 3 3 0 1 0 -3 -3 A 3 3 0 0 0 21 8.5 Z m -10 4 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 12.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 12.5 Z m -10 10 a 3 3 0 1 0 3 3 A 3 3 0 0 0 11 22.5 Z m 10 0 a 3 3 0 1 0 3 3 A 3 3 0 0 0 21 22.5 Z"></path>
|
16 |
+
</svg>
|
@@ -24,6 +24,9 @@ class LP_Hard_Cache {
|
|
24 |
*/
|
25 |
protected static $_lock = false;
|
26 |
|
|
|
|
|
|
|
27 |
protected static $_hard_lock = false;
|
28 |
|
29 |
/**
|
24 |
*/
|
25 |
protected static $_lock = false;
|
26 |
|
27 |
+
/**
|
28 |
+
* @var bool
|
29 |
+
*/
|
30 |
protected static $_hard_lock = false;
|
31 |
|
32 |
/**
|
@@ -109,6 +109,10 @@ if ( ! function_exists( 'LP_Install' ) ) {
|
|
109 |
return;
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
112 |
// Show message if the latest version is not already updated
|
113 |
add_action( 'admin_notices', array( __CLASS__, 'check_update_message' ) );
|
114 |
}
|
109 |
return;
|
110 |
}
|
111 |
|
112 |
+
if(version_compare($latest_ver, LEARNPRESS_VERSION)){
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
|
116 |
// Show message if the latest version is not already updated
|
117 |
add_action( 'admin_notices', array( __CLASS__, 'check_update_message' ) );
|
118 |
}
|
@@ -79,34 +79,21 @@ class LP_Settings {
|
|
79 |
* @param bool $force
|
80 |
*/
|
81 |
protected function _load_options( $force = false ) {
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
// foreach ( $options as $option ) {
|
98 |
-
// $this->_options[ $option->option_name ] = maybe_unserialize( $option->option_value );
|
99 |
-
// }
|
100 |
-
// }
|
101 |
-
// foreach ( array( 'learn_press_permalink_structure', 'learn_press_install' ) as $option ) {
|
102 |
-
// if ( empty( $this->_options[ $option ] ) ) {
|
103 |
-
// $this->_options[ $option ] = '';
|
104 |
-
// }
|
105 |
-
// }
|
106 |
-
// wp_cache_set( 'options', $this->_options, 'lp-options' );
|
107 |
-
// } else {
|
108 |
-
// $this->_options = $_options;
|
109 |
-
// }
|
110 |
}
|
111 |
|
112 |
/**
|
@@ -116,6 +103,9 @@ class LP_Settings {
|
|
116 |
* @param $value
|
117 |
*/
|
118 |
public function set( $name, $value ) {
|
|
|
|
|
|
|
119 |
$this->_set_option( $this->_options, $name, $value );
|
120 |
}
|
121 |
|
79 |
* @param bool $force
|
80 |
*/
|
81 |
protected function _load_options( $force = false ) {
|
82 |
+
|
83 |
+
//$this->_options = wp_load_alloptions();
|
84 |
+
|
85 |
+
global $wpdb;
|
86 |
+
$query = $wpdb->prepare( "
|
87 |
+
SELECT option_name, option_value
|
88 |
+
FROM {$wpdb->options}
|
89 |
+
WHERE option_name LIKE %s
|
90 |
+
", $wpdb->esc_like( $this->_prefix ) . '%' );
|
91 |
+
|
92 |
+
if ( $options = $wpdb->get_results( $query ) ) {
|
93 |
+
foreach ( $options as $option ) {
|
94 |
+
$this->_options[ $option->option_name ] = maybe_unserialize( $option->option_value );
|
95 |
+
}
|
96 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
}
|
98 |
|
99 |
/**
|
103 |
* @param $value
|
104 |
*/
|
105 |
public function set( $name, $value ) {
|
106 |
+
if ( $this->_prefix && strpos( $name, $this->_prefix ) === false ) {
|
107 |
+
$name = $this->_prefix . $name;
|
108 |
+
}
|
109 |
$this->_set_option( $this->_options, $name, $value );
|
110 |
}
|
111 |
|
@@ -239,6 +239,11 @@ if ( ! function_exists( 'LP_Abstract_Course' ) ) {
|
|
239 |
)
|
240 |
);
|
241 |
$image = false;
|
|
|
|
|
|
|
|
|
|
|
242 |
if ( has_post_thumbnail( $this->get_id() ) ) {
|
243 |
$image = get_the_post_thumbnail( $this->get_id(), $size, $attr );
|
244 |
} elseif ( ( $parent_id = wp_get_post_parent_id( $this->get_id() ) ) && has_post_thumbnail( $parent_id ) ) {
|
@@ -843,7 +848,7 @@ if ( ! function_exists( 'LP_Abstract_Course' ) ) {
|
|
843 |
public function is_in_stock() {
|
844 |
$in_stock = true;
|
845 |
if ( $max_allowed = $this->get_max_students() ) {
|
846 |
-
|
847 |
}
|
848 |
|
849 |
return apply_filters( 'learn-press/is-in-stock', $in_stock, $this->get_id() );
|
@@ -1755,7 +1760,7 @@ if ( ! function_exists( 'LP_Abstract_Course' ) ) {
|
|
1755 |
}
|
1756 |
|
1757 |
public function get_external_link_text() {
|
1758 |
-
return apply_filters( 'learn-press/course-external-link-text', _x( 'Buy this course','Text of Buy this course with external link', 'learnpress' ), $this->get_id() );
|
1759 |
}
|
1760 |
|
1761 |
/**
|
239 |
)
|
240 |
);
|
241 |
$image = false;
|
242 |
+
|
243 |
+
if ( 'yes' !== LP()->settings->get( 'archive_course_thumbnail' ) && in_array( $size, learn_press_get_custom_thumbnail_sizes() ) ) {
|
244 |
+
$size = '';
|
245 |
+
}
|
246 |
+
|
247 |
if ( has_post_thumbnail( $this->get_id() ) ) {
|
248 |
$image = get_the_post_thumbnail( $this->get_id(), $size, $attr );
|
249 |
} elseif ( ( $parent_id = wp_get_post_parent_id( $this->get_id() ) ) && has_post_thumbnail( $parent_id ) ) {
|
848 |
public function is_in_stock() {
|
849 |
$in_stock = true;
|
850 |
if ( $max_allowed = $this->get_max_students() ) {
|
851 |
+
$in_stock = $max_allowed > $this->count_in_order();
|
852 |
}
|
853 |
|
854 |
return apply_filters( 'learn-press/is-in-stock', $in_stock, $this->get_id() );
|
1760 |
}
|
1761 |
|
1762 |
public function get_external_link_text() {
|
1763 |
+
return apply_filters( 'learn-press/course-external-link-text', _x( 'Buy this course', 'Text of Buy this course with external link', 'learnpress' ), $this->get_id() );
|
1764 |
}
|
1765 |
|
1766 |
/**
|
@@ -106,7 +106,7 @@ if ( ! class_exists( 'LP_Course_Item' ) ) {
|
|
106 |
public function get_format() {
|
107 |
$format = ( false !== ( $format = wp_cache_get( 'item-format-' . $this->get_id(), 'lp-item-formats' ) ) ) ? $format : get_post_format( $this->get_id() );
|
108 |
|
109 |
-
if(
|
110 |
$format = 'standard';
|
111 |
}
|
112 |
|
@@ -186,6 +186,11 @@ if ( ! class_exists( 'LP_Course_Item' ) ) {
|
|
186 |
break;
|
187 |
case 'completed':
|
188 |
$defaults[] = $item_grade;
|
|
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
}
|
191 |
}
|
@@ -204,7 +209,6 @@ if ( ! class_exists( 'LP_Course_Item' ) ) {
|
|
204 |
$classes = is_array( $classes ) ? $classes : explode( ' ', $classes );
|
205 |
$classes = array_filter( $classes );
|
206 |
$classes = array_unique( $classes );
|
207 |
-
|
208 |
return $classes;
|
209 |
}
|
210 |
|
106 |
public function get_format() {
|
107 |
$format = ( false !== ( $format = wp_cache_get( 'item-format-' . $this->get_id(), 'lp-item-formats' ) ) ) ? $format : get_post_format( $this->get_id() );
|
108 |
|
109 |
+
if ( ! $format ) {
|
110 |
$format = 'standard';
|
111 |
}
|
112 |
|
186 |
break;
|
187 |
case 'completed':
|
188 |
$defaults[] = $item_grade;
|
189 |
+
break;
|
190 |
+
default:
|
191 |
+
if ( $item_class = apply_filters( 'learn-press/course-item-status-class', $item_status, $item_grade, $this->get_item_type(), $this->get_id(), $course_id ) ) {
|
192 |
+
$defaults[] = $item_class;
|
193 |
+
}
|
194 |
}
|
195 |
}
|
196 |
}
|
209 |
$classes = is_array( $classes ) ? $classes : explode( ' ', $classes );
|
210 |
$classes = array_filter( $classes );
|
211 |
$classes = array_unique( $classes );
|
|
|
212 |
return $classes;
|
213 |
}
|
214 |
|
@@ -880,16 +880,18 @@ if ( ! function_exists( 'learn_press_course_item_type_link' ) ) {
|
|
880 |
}
|
881 |
remove_filter( 'post_type_link', 'learn_press_course_item_type_link', 10 );
|
882 |
|
883 |
-
if (
|
884 |
return $permalink;
|
885 |
}
|
886 |
|
887 |
$course_id = learn_press_get_item_course_id( $post->ID, $post->post_type );
|
|
|
888 |
if ( $course_id ) {
|
889 |
$permalink = learn_press_get_course_item_url( $course_id, $post->ID );
|
890 |
} else {
|
891 |
$permalink = learn_press_get_sample_link_course_item_url( $post->ID );
|
892 |
}
|
|
|
893 |
LP()->global['item_permalinks'][ $post->ID ] = $permalink;
|
894 |
add_filter( 'post_type_link', 'learn_press_course_item_type_link', 10, 2 );
|
895 |
|
@@ -966,9 +968,9 @@ function learn_press_course_passing_condition( $value, $format, $course_id ) {
|
|
966 |
$quiz = learn_press_get_quiz( $quiz_id );
|
967 |
$value = absint( $quiz->get_passing_grade() );
|
968 |
|
969 |
-
if($format){
|
970 |
-
|
971 |
-
|
972 |
}
|
973 |
|
974 |
return $value;
|
@@ -1079,4 +1081,8 @@ function learn_press_mark_user_just_logged_in() {
|
|
1079 |
LP()->session->set( 'user_just_logged_in', 'yes' );
|
1080 |
}
|
1081 |
|
1082 |
-
add_action( 'wp_login', 'learn_press_mark_user_just_logged_in' );
|
|
|
|
|
|
|
|
880 |
}
|
881 |
remove_filter( 'post_type_link', 'learn_press_course_item_type_link', 10 );
|
882 |
|
883 |
+
if ( ! in_array( $post->post_type, learn_press_course_get_support_item_types( true ) ) ) {
|
884 |
return $permalink;
|
885 |
}
|
886 |
|
887 |
$course_id = learn_press_get_item_course_id( $post->ID, $post->post_type );
|
888 |
+
|
889 |
if ( $course_id ) {
|
890 |
$permalink = learn_press_get_course_item_url( $course_id, $post->ID );
|
891 |
} else {
|
892 |
$permalink = learn_press_get_sample_link_course_item_url( $post->ID );
|
893 |
}
|
894 |
+
|
895 |
LP()->global['item_permalinks'][ $post->ID ] = $permalink;
|
896 |
add_filter( 'post_type_link', 'learn_press_course_item_type_link', 10, 2 );
|
897 |
|
968 |
$quiz = learn_press_get_quiz( $quiz_id );
|
969 |
$value = absint( $quiz->get_passing_grade() );
|
970 |
|
971 |
+
if ( $format ) {
|
972 |
+
$value = "{$value}%";
|
973 |
+
}
|
974 |
}
|
975 |
|
976 |
return $value;
|
1081 |
LP()->session->set( 'user_just_logged_in', 'yes' );
|
1082 |
}
|
1083 |
|
1084 |
+
add_action( 'wp_login', 'learn_press_mark_user_just_logged_in' );
|
1085 |
+
|
1086 |
+
function learn_press_get_custom_thumbnail_sizes() {
|
1087 |
+
return apply_filters( 'learn-press/custom-thumbnail-sizes', array( 'archive_course_thumbnail' => 'course_thumbnail' ) );
|
1088 |
+
}
|
@@ -213,14 +213,17 @@ if ( ! function_exists( 'LP_Quiz_CURD' ) ) {
|
|
213 |
|
214 |
$format = array_fill( 0, sizeof( $quiz_ids ), '%d' );
|
215 |
$questions = array_fill_keys( $quiz_ids, array() );
|
|
|
|
|
216 |
|
217 |
$query = $wpdb->prepare( "
|
218 |
SELECT p.*, qq.quiz_id, qq.question_order AS `order`
|
219 |
FROM {$wpdb->posts} p
|
220 |
INNER JOIN {$wpdb->prefix}learnpress_quiz_questions qq ON p.ID = qq.question_id
|
221 |
WHERE qq.quiz_id IN(" . join( ',', $format ) . ")
|
|
|
222 |
ORDER BY question_order ASC
|
223 |
-
", $
|
224 |
|
225 |
$question_ids = array();
|
226 |
|
@@ -318,7 +321,7 @@ if ( ! function_exists( 'LP_Quiz_CURD' ) ) {
|
|
318 |
* Reorder question by indexed number.
|
319 |
*
|
320 |
* @param LP_Quiz|WP_Post|int $the_quiz
|
321 |
-
* @param mixed
|
322 |
*
|
323 |
* @return mixed
|
324 |
*/
|
@@ -388,7 +391,7 @@ if ( ! function_exists( 'LP_Quiz_CURD' ) ) {
|
|
388 |
*
|
389 |
* @param LP_Quiz|int $the_quiz
|
390 |
* @param $question_id
|
391 |
-
* @param array
|
392 |
*
|
393 |
* @return mixed false on failed
|
394 |
*/
|
@@ -448,7 +451,7 @@ if ( ! function_exists( 'LP_Quiz_CURD' ) ) {
|
|
448 |
/**
|
449 |
* Check if a question (or batch of questions) is already added to quiz.
|
450 |
*
|
451 |
-
* @param int
|
452 |
* @param int|array $ids
|
453 |
*
|
454 |
* @return array|bool|null|object
|
213 |
|
214 |
$format = array_fill( 0, sizeof( $quiz_ids ), '%d' );
|
215 |
$questions = array_fill_keys( $quiz_ids, array() );
|
216 |
+
$args = $quiz_ids;
|
217 |
+
$args[] = 'publish';
|
218 |
|
219 |
$query = $wpdb->prepare( "
|
220 |
SELECT p.*, qq.quiz_id, qq.question_order AS `order`
|
221 |
FROM {$wpdb->posts} p
|
222 |
INNER JOIN {$wpdb->prefix}learnpress_quiz_questions qq ON p.ID = qq.question_id
|
223 |
WHERE qq.quiz_id IN(" . join( ',', $format ) . ")
|
224 |
+
AND p.post_status = %s
|
225 |
ORDER BY question_order ASC
|
226 |
+
", $args );
|
227 |
|
228 |
$question_ids = array();
|
229 |
|
321 |
* Reorder question by indexed number.
|
322 |
*
|
323 |
* @param LP_Quiz|WP_Post|int $the_quiz
|
324 |
+
* @param mixed $questions
|
325 |
*
|
326 |
* @return mixed
|
327 |
*/
|
391 |
*
|
392 |
* @param LP_Quiz|int $the_quiz
|
393 |
* @param $question_id
|
394 |
+
* @param array $args
|
395 |
*
|
396 |
* @return mixed false on failed
|
397 |
*/
|
451 |
/**
|
452 |
* Check if a question (or batch of questions) is already added to quiz.
|
453 |
*
|
454 |
+
* @param int $the_id
|
455 |
* @param int|array $ids
|
456 |
*
|
457 |
* @return array|bool|null|object
|
@@ -322,13 +322,18 @@ class LP_Section_CURD extends LP_Object_Data_CURD implements LP_Interface_CURD {
|
|
322 |
// course author, for case co-instructor add new items
|
323 |
$author_id = get_post_field( 'post_author', $this->course_id ) ? get_post_field( 'post_author', $this->course_id ) : learn_press_get_current_user_id();
|
324 |
|
325 |
-
|
|
|
326 |
|
327 |
$args = array(
|
328 |
'title' => $item['title'],
|
329 |
'author' => $author_id
|
330 |
);
|
331 |
|
|
|
|
|
|
|
|
|
332 |
if ( $item['type'] == LP_LESSON_CPT ) {
|
333 |
$lesson_curd = new LP_Lesson_CURD();
|
334 |
$item['id'] = $lesson_curd->create( $args );
|
@@ -398,16 +403,21 @@ class LP_Section_CURD extends LP_Object_Data_CURD implements LP_Interface_CURD {
|
|
398 |
|
399 |
// get WP Post
|
400 |
$post = get_post( $item['id'] );
|
401 |
-
$result[] =
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
|
|
|
|
|
|
406 |
);
|
407 |
|
408 |
$order ++;
|
409 |
}
|
410 |
|
|
|
|
|
411 |
return $result;
|
412 |
}
|
413 |
|
322 |
// course author, for case co-instructor add new items
|
323 |
$author_id = get_post_field( 'post_author', $this->course_id ) ? get_post_field( 'post_author', $this->course_id ) : learn_press_get_current_user_id();
|
324 |
|
325 |
+
//$item = wp_parse_args( $item, array( 'title' => '', 'type' => '' ) );
|
326 |
+
$item = array_merge( array( 'title' => '', 'type' => '' ), $item );
|
327 |
|
328 |
$args = array(
|
329 |
'title' => $item['title'],
|
330 |
'author' => $author_id
|
331 |
);
|
332 |
|
333 |
+
if ( ! empty( $item['id'] ) ) {
|
334 |
+
$item['old_id'] = $item ['id'];
|
335 |
+
}
|
336 |
+
|
337 |
if ( $item['type'] == LP_LESSON_CPT ) {
|
338 |
$lesson_curd = new LP_Lesson_CURD();
|
339 |
$item['id'] = $lesson_curd->create( $args );
|
403 |
|
404 |
// get WP Post
|
405 |
$post = get_post( $item['id'] );
|
406 |
+
$result[] = array_merge(
|
407 |
+
$item,
|
408 |
+
array(
|
409 |
+
'id' => $post->ID,
|
410 |
+
'title' => $post->post_title,
|
411 |
+
'type' => $post->post_type,
|
412 |
+
'preview' => get_post_meta( $post->ID, '_lp_preview', true ) == 'yes'
|
413 |
+
)
|
414 |
);
|
415 |
|
416 |
$order ++;
|
417 |
}
|
418 |
|
419 |
+
wp_cache_set( 'course-' . $this->course_id . '-' . $section_id, $all_items, 'lp-course-section-items' );
|
420 |
+
|
421 |
return $result;
|
422 |
}
|
423 |
|
@@ -93,6 +93,7 @@ abstract class LP_Abstract_Post_Type {
|
|
93 |
add_action( 'admin_footer-post.php', array( $this, 'print_js_template' ) );
|
94 |
add_action( 'admin_footer-post-new.php', array( $this, 'print_js_template' ) );
|
95 |
add_action( 'pre_get_posts', array( $this, 'update_default_meta' ) );
|
|
|
96 |
|
97 |
add_filter( 'post_updated_messages', array( $this, 'updated_messages' ) );
|
98 |
|
@@ -115,6 +116,115 @@ abstract class LP_Abstract_Post_Type {
|
|
115 |
add_action( 'init', array( $this, 'maybe_remove_features' ), 1000 );
|
116 |
}
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
public function maybe_remove_features() {
|
119 |
if ( ! $this->_remove_features ) {
|
120 |
return;
|
@@ -194,6 +304,13 @@ abstract class LP_Abstract_Post_Type {
|
|
194 |
* @return bool
|
195 |
*/
|
196 |
public function _do_save( $post_id, $post = null ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
if ( get_post_type( $post_id ) != $this->_post_type ) {
|
198 |
return false;
|
199 |
}
|
@@ -207,6 +324,13 @@ abstract class LP_Abstract_Post_Type {
|
|
207 |
return $post_id;
|
208 |
}
|
209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
/**
|
211 |
* Ouput meta boxes.
|
212 |
*
|
@@ -333,6 +457,79 @@ abstract class LP_Abstract_Post_Type {
|
|
333 |
|
334 |
}
|
335 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
/**
|
337 |
* @param string $fields
|
338 |
*
|
93 |
add_action( 'admin_footer-post.php', array( $this, 'print_js_template' ) );
|
94 |
add_action( 'admin_footer-post-new.php', array( $this, 'print_js_template' ) );
|
95 |
add_action( 'pre_get_posts', array( $this, 'update_default_meta' ) );
|
96 |
+
add_action( 'admin_footer', array( $this, 'admin_footer_scripts' ) );
|
97 |
|
98 |
add_filter( 'post_updated_messages', array( $this, 'updated_messages' ) );
|
99 |
|
116 |
add_action( 'init', array( $this, 'maybe_remove_features' ), 1000 );
|
117 |
}
|
118 |
|
119 |
+
public function get_post_type() {
|
120 |
+
$post_type = get_post_type();
|
121 |
+
if ( ! $post_type ) {
|
122 |
+
$post_type = LP_Request::get_string( 'post_type' );
|
123 |
+
}
|
124 |
+
|
125 |
+
return $post_type;
|
126 |
+
}
|
127 |
+
|
128 |
+
public function admin_footer_scripts() {
|
129 |
+
|
130 |
+
global $pagenow;
|
131 |
+
|
132 |
+
if ( $this->get_post_type() !== $this->_post_type ) {
|
133 |
+
return;
|
134 |
+
}
|
135 |
+
|
136 |
+
$user = learn_press_get_current_user();
|
137 |
+
|
138 |
+
if ( ! $user->is_admin() ) {
|
139 |
+
return;
|
140 |
+
}
|
141 |
+
|
142 |
+
if ( $pagenow === 'edit.php' ) {
|
143 |
+
$option = sprintf( '<option value="">%s</option>', __( 'Search by user', 'learnpress' ) );
|
144 |
+
|
145 |
+
if ( $user = get_user_by( 'id', LP_Request::get_int( 'author' ) ) ) {
|
146 |
+
$option = sprintf( '<option value="%d" selected="selected">%s</option>', $user->ID, $user->user_login );
|
147 |
+
}
|
148 |
+
?>
|
149 |
+
<script>
|
150 |
+
jQuery(function ($) {
|
151 |
+
var $input = $('#post-search-input'),
|
152 |
+
$form = $($input[0].form),
|
153 |
+
$select = $('<select name="author" id="author"></select>').append('<?php echo $option;?>').insertAfter($input).select2({
|
154 |
+
ajax: {
|
155 |
+
url: window.location.href + '&lp-ajax=search-authors',
|
156 |
+
dataType: 'json',
|
157 |
+
s: ''
|
158 |
+
},
|
159 |
+
placeholder: '<?php echo __( 'Search by user', 'learnpress' );?>',
|
160 |
+
minimumInputLength: 3,
|
161 |
+
allowClear: true
|
162 |
+
}).on('select2:select', function () {
|
163 |
+
$('input[name="author"]').val($select.val())
|
164 |
+
});
|
165 |
+
|
166 |
+
$form.on('submit', function () {
|
167 |
+
var url = window.location.href.removeQueryVar('author').addQueryVar('author', $select.val());
|
168 |
+
|
169 |
+
})
|
170 |
+
})</script>
|
171 |
+
<?php
|
172 |
+
}
|
173 |
+
|
174 |
+
if ( $pagenow === 'post.php' ) {
|
175 |
+
?>
|
176 |
+
<script>
|
177 |
+
jQuery(function ($) {
|
178 |
+
var isAssigned = '<?php echo $this->is_assigned();?>',
|
179 |
+
$postStatus = $('#post_status'),
|
180 |
+
$message = $('<p class="learn-press-notice-assigned-item"></p>').html(isAssigned),
|
181 |
+
currentStatus = $postStatus.val();
|
182 |
+
|
183 |
+
(currentStatus === 'publish') && isAssigned && $postStatus.on('change', function () {
|
184 |
+
if (this.value !== 'publish') {
|
185 |
+
$message.insertBefore($('#post-status-select'));
|
186 |
+
} else {
|
187 |
+
$message.remove();
|
188 |
+
}
|
189 |
+
});
|
190 |
+
|
191 |
+
})
|
192 |
+
</script>
|
193 |
+
<?php
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
public function is_assigned() {
|
198 |
+
global $wpdb;
|
199 |
+
$post_type = $this->get_post_type();
|
200 |
+
if ( learn_press_is_support_course_item_type( $post_type ) ) {
|
201 |
+
$query = $wpdb->prepare( "
|
202 |
+
SELECT s.section_course_id
|
203 |
+
FROM {$wpdb->learnpress_section_items} si
|
204 |
+
INNER JOIN {$wpdb->learnpress_sections} s ON s.section_id = si.section_id
|
205 |
+
INNER JOIN {$wpdb->posts} p ON p.ID = si.item_id
|
206 |
+
WHERE p.ID = %d
|
207 |
+
", get_the_ID() );
|
208 |
+
|
209 |
+
if ( $course_id = $wpdb->get_var( $query ) ) {
|
210 |
+
return __( 'This item has already assigned to course. It will be removed from course if it is not publish.', 'learnpress' );
|
211 |
+
}
|
212 |
+
} elseif ( LP_QUESTION_CPT === $post_type ) {
|
213 |
+
$query = $wpdb->prepare( "
|
214 |
+
SELECT p.ID
|
215 |
+
FROM {$wpdb->posts} p
|
216 |
+
INNER JOIN {$wpdb->learnpress_quiz_questions} qq ON p.ID = qq.quiz_id
|
217 |
+
WHERE qq.question_id = %d
|
218 |
+
", get_the_ID() );
|
219 |
+
|
220 |
+
if ( $quiz_id = $wpdb->get_var( $query ) ) {
|
221 |
+
return __( 'This question has already assigned to quiz. It will be removed from quiz if it is not publish.', 'learnpress' );
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
+
return 0;
|
226 |
+
}
|
227 |
+
|
228 |
public function maybe_remove_features() {
|
229 |
if ( ! $this->_remove_features ) {
|
230 |
return;
|
304 |
* @return bool
|
305 |
*/
|
306 |
public function _do_save( $post_id, $post = null ) {
|
307 |
+
|
308 |
+
// Flush the Hard Cache to applies new changes
|
309 |
+
LP_Hard_Cache::flush();
|
310 |
+
|
311 |
+
// Maybe remove
|
312 |
+
$this->maybe_remove_assigned( $post_id );
|
313 |
+
|
314 |
if ( get_post_type( $post_id ) != $this->_post_type ) {
|
315 |
return false;
|
316 |
}
|
324 |
return $post_id;
|
325 |
}
|
326 |
|
327 |
+
public function maybe_remove_assigned( $post_id ) {
|
328 |
+
$post = get_post( $post_id );
|
329 |
+
if ( 'publish' === $post->post_status ) {
|
330 |
+
return;
|
331 |
+
}
|
332 |
+
}
|
333 |
+
|
334 |
/**
|
335 |
* Ouput meta boxes.
|
336 |
*
|
457 |
|
458 |
}
|
459 |
|
460 |
+
/**
|
461 |
+
* Filter item by the course selected.
|
462 |
+
*
|
463 |
+
* @since 3.0.7
|
464 |
+
*
|
465 |
+
* @return bool|int
|
466 |
+
*/
|
467 |
+
protected function _filter_items_by_course() {
|
468 |
+
$course_id = ! empty( $_REQUEST['course'] ) ? absint( $_REQUEST['course'] ) : false;
|
469 |
+
|
470 |
+
if ( ! $course_id ) {
|
471 |
+
global $post_type;
|
472 |
+
if ( ! learn_press_is_support_course_item_type( $post_type ) ) {
|
473 |
+
$course_id = false;
|
474 |
+
}
|
475 |
+
}
|
476 |
+
|
477 |
+
return $course_id;
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* @return mixed
|
482 |
+
*/
|
483 |
+
protected function _get_course_column_title() {
|
484 |
+
global $post_type;
|
485 |
+
|
486 |
+
if ( ! learn_press_is_support_course_item_type( $post_type ) ) {
|
487 |
+
return false;
|
488 |
+
}
|
489 |
+
|
490 |
+
$title = __( 'Course', 'learnpress' );
|
491 |
+
|
492 |
+
if ( $course_id = $this->_filter_items_by_course() ) {
|
493 |
+
if ( $course = learn_press_get_course( $course_id ) ) {
|
494 |
+
$count = $course->count_items( $this->_post_type );
|
495 |
+
$post_object = get_post_type_object( $post_type );
|
496 |
+
$title = sprintf( _n( 'Course (%d %s)', 'Course (%d %s)', $count, 'learnpress' ), $count, $count > 1 ? $post_object->label : $post_object->labels->singular_name );
|
497 |
+
}
|
498 |
+
}
|
499 |
+
|
500 |
+
return $title;
|
501 |
+
}
|
502 |
+
|
503 |
+
/**
|
504 |
+
* Get course that the items is contained.
|
505 |
+
*
|
506 |
+
* @param $post_id
|
507 |
+
*/
|
508 |
+
protected function _get_item_course( $post_id ) {
|
509 |
+
$courses = learn_press_get_item_courses( $post_id );
|
510 |
+
if ( $courses ) {
|
511 |
+
foreach ( $courses as $course ) {
|
512 |
+
echo '<div><a href="' . esc_url( remove_query_arg( 'orderby', add_query_arg( array( 'course' => $course->ID ) ) ) ) . '">' . get_the_title( $course->ID ) . '</a>';
|
513 |
+
echo '<div class="row-actions">';
|
514 |
+
printf( '<a href="%s">%s</a>', admin_url( sprintf( 'post.php?post=%d&action=edit', $course->ID ) ), __( 'Edit', 'learnpress' ) );
|
515 |
+
echo " | ";
|
516 |
+
printf( '<a href="%s">%s</a>', get_the_permalink( $course->ID ), __( 'View', 'learnpress' ) );
|
517 |
+
|
518 |
+
if ( $this->_filter_items_by_course() ) {
|
519 |
+
echo " | ";
|
520 |
+
printf( '<a href="%s">%s</a>', remove_query_arg( array(
|
521 |
+
'course',
|
522 |
+
'orderby'
|
523 |
+
) ), __( 'Remove Filter', 'learnpress' ) );
|
524 |
+
}
|
525 |
+
echo '</div></div>';
|
526 |
+
}
|
527 |
+
|
528 |
+
} else {
|
529 |
+
_e( 'Not assigned yet', 'learnpress' );
|
530 |
+
}
|
531 |
+
}
|
532 |
+
|
533 |
/**
|
534 |
* @param string $fields
|
535 |
*
|
@@ -53,7 +53,9 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
53 |
add_action( 'load-post.php', array( $this, 'post_actions' ) );
|
54 |
add_filter( 'get_edit_post_link', array( $this, 'add_course_tab_arg' ) );
|
55 |
add_filter( "rwmb__lpr_course_price_html", array( $this, 'currency_symbol' ), 5, 3 );
|
56 |
-
add_filter( 'posts_where_paged', array( $this, 'posts_where_paged' ), 10 );
|
|
|
|
|
57 |
|
58 |
if ( self::$_enable_review ) {
|
59 |
add_action( 'post_submitbox_start', array( $this, 'post_review_message_box' ) );
|
@@ -61,6 +63,53 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
61 |
|
62 |
add_action( 'edit_form_after_editor', array( $this, 'template_course_editor' ) );
|
63 |
add_action( 'learn-press/admin/after-enqueue-scripts', array( $this, 'data_course_editor' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
}
|
65 |
|
66 |
/**
|
@@ -188,38 +237,7 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
188 |
if ( LP_COURSE_CPT !== get_post_type() ) {
|
189 |
return;
|
190 |
}
|
191 |
-
global $post;
|
192 |
-
$course = learn_press_get_course( $post->ID );
|
193 |
|
194 |
-
$hidden_sections = get_post_meta( $post->ID, '_admin_hidden_sections', true );
|
195 |
-
wp_localize_script( 'learn-press-admin-course-editor', 'lp_course_editor', apply_filters( 'learn-press/admin-localize-course-editor', array(
|
196 |
-
'root' => array(
|
197 |
-
'course_id' => $post->ID,
|
198 |
-
'auto_draft' => get_post_status( $post->ID ) == 'auto-draft',
|
199 |
-
'ajax' => admin_url( '' ),
|
200 |
-
'disable_curriculum' => false,
|
201 |
-
'action' => 'admin_course_editor',
|
202 |
-
'nonce' => wp_create_nonce( 'learnpress_update_curriculum' ),
|
203 |
-
),
|
204 |
-
'chooseItems' => array(
|
205 |
-
'types' => learn_press_course_get_support_item_types(),
|
206 |
-
'open' => false,
|
207 |
-
'addedItems' => array(),
|
208 |
-
'items' => array(),
|
209 |
-
),
|
210 |
-
'i18n' => array(
|
211 |
-
'item' => __( 'item', 'learnpress' ),
|
212 |
-
'new_section_item' => __( 'Create a new', 'learnpress' ),
|
213 |
-
'back' => __( 'Back', 'learnpress' ),
|
214 |
-
'selected_items' => __( 'Selected items', 'learnpress' ),
|
215 |
-
),
|
216 |
-
'sections' => array(
|
217 |
-
'sections' => $course->get_curriculum_raw(),
|
218 |
-
'hidden_sections' => ! empty( $hidden_sections ) ? $hidden_sections : array(),
|
219 |
-
'urlEdit' => admin_url( 'post.php?action=edit&post=' ),
|
220 |
-
)
|
221 |
-
)
|
222 |
-
) );
|
223 |
}
|
224 |
|
225 |
/**
|
@@ -387,16 +405,41 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
387 |
return $fields;
|
388 |
}
|
389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
390 |
/**
|
391 |
* @param $join
|
392 |
*
|
393 |
* @return string
|
394 |
*/
|
395 |
public function posts_join_paged( $join ) {
|
|
|
|
|
396 |
if ( ! $this->_is_archive() ) {
|
397 |
return $join;
|
398 |
}
|
399 |
-
|
400 |
$join .= " LEFT JOIN {$wpdb->postmeta} pm_price ON pm_price.post_id = {$wpdb->posts}.ID AND pm_price.meta_key = '_lp_price'";
|
401 |
|
402 |
return $join;
|
@@ -408,13 +451,12 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
408 |
* @return mixed|string
|
409 |
*/
|
410 |
public function posts_where_paged( $where ) {
|
|
|
411 |
|
412 |
if ( ! $this->_is_archive() ) {
|
413 |
return $where;
|
414 |
}
|
415 |
|
416 |
-
global $wpdb;
|
417 |
-
|
418 |
if ( array_key_exists( 'filter_price', $_REQUEST ) ) {
|
419 |
if ( $_REQUEST['filter_price'] == 0 ) {
|
420 |
$where .= " AND ( pm_price.meta_value IS NULL || pm_price.meta_value = 0 )";
|
@@ -423,7 +465,6 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
423 |
}
|
424 |
}
|
425 |
|
426 |
-
//if ( get_post_type() == LP_COURSE_CPT ) {
|
427 |
$not_in = $wpdb->prepare( "
|
428 |
SELECT ID
|
429 |
FROM {$wpdb->posts} p
|
@@ -433,9 +474,6 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
433 |
|
434 |
$where .= " AND {$wpdb->posts}.ID NOT IN( {$not_in} )";
|
435 |
|
436 |
-
//}
|
437 |
-
|
438 |
-
|
439 |
return $where;
|
440 |
}
|
441 |
|
@@ -847,7 +885,7 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
847 |
$meta_box['fields'],
|
848 |
array(
|
849 |
array(
|
850 |
-
'name' => __( 'No
|
851 |
'id' => '_lp_required_enroll',
|
852 |
'type' => 'yes_no',
|
853 |
'desc' => __( 'Require users logged in to study or public to all.', 'learnpress' ),
|
@@ -1330,7 +1368,7 @@ if ( ! class_exists( 'LP_Course_Post_Type' ) ) {
|
|
1330 |
echo sprintf( '<a href="%s" class="price">%s%s</a>', add_query_arg( 'filter_price', 0 ), $origin_price, __( 'Free', 'learnpress' ) );
|
1331 |
|
1332 |
if ( ! $course->is_required_enroll() ) {
|
1333 |
-
printf( '<p class="description">(%s)</p>', __( 'No
|
1334 |
}
|
1335 |
}
|
1336 |
break;
|
53 |
add_action( 'load-post.php', array( $this, 'post_actions' ) );
|
54 |
add_filter( 'get_edit_post_link', array( $this, 'add_course_tab_arg' ) );
|
55 |
add_filter( "rwmb__lpr_course_price_html", array( $this, 'currency_symbol' ), 5, 3 );
|
56 |
+
//add_filter( 'posts_where_paged', array( $this, 'posts_where_paged' ), 10 );
|
57 |
+
add_filter( 'posts_where_paged', array( $this, '_posts_where_paged_course_items' ), 10 );
|
58 |
+
add_filter( 'posts_join_paged', array( $this, '_posts_join_paged_course_items' ), 10 );
|
59 |
|
60 |
if ( self::$_enable_review ) {
|
61 |
add_action( 'post_submitbox_start', array( $this, 'post_review_message_box' ) );
|
63 |
|
64 |
add_action( 'edit_form_after_editor', array( $this, 'template_course_editor' ) );
|
65 |
add_action( 'learn-press/admin/after-enqueue-scripts', array( $this, 'data_course_editor' ) );
|
66 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'add_script_data' ) );
|
67 |
+
}
|
68 |
+
|
69 |
+
public function add_script_data() {
|
70 |
+
global $post;
|
71 |
+
|
72 |
+
if ( empty( $post ) || ( get_post_type() !== $this->_post_type ) ) {
|
73 |
+
return;
|
74 |
+
}
|
75 |
+
|
76 |
+
$course = learn_press_get_course( $post->ID );
|
77 |
+
$hidden_sections = get_post_meta( $post->ID, '_admin_hidden_sections', true );
|
78 |
+
|
79 |
+
$data = apply_filters( 'learn-press/admin-localize-course-editor', array(
|
80 |
+
'root' => array(
|
81 |
+
'course_id' => $post->ID,
|
82 |
+
'auto_draft' => get_post_status( $post->ID ) == 'auto-draft',
|
83 |
+
'ajax' => admin_url( '' ),
|
84 |
+
'disable_curriculum' => false,
|
85 |
+
'action' => 'admin_course_editor',
|
86 |
+
'nonce' => wp_create_nonce( 'learnpress_update_curriculum' ),
|
87 |
+
),
|
88 |
+
'chooseItems' => array(
|
89 |
+
'types' => learn_press_course_get_support_item_types(),
|
90 |
+
'open' => false,
|
91 |
+
'addedItems' => array(),
|
92 |
+
'items' => array(),
|
93 |
+
),
|
94 |
+
'i18n' => array(
|
95 |
+
'item' => __( 'item', 'learnpress' ),
|
96 |
+
'new_section_item' => __( 'Create a new', 'learnpress' ),
|
97 |
+
'back' => __( 'Back', 'learnpress' ),
|
98 |
+
'selected_items' => __( 'Selected items', 'learnpress' ),
|
99 |
+
'confirm_trash_item' => __( 'Do you want to remove item "{{ITEM_NAME}}" to trash?', 'learnpress' ),
|
100 |
+
'item_labels' => array(
|
101 |
+
'singular' => __( 'Item', 'learnpress' ),
|
102 |
+
'plural' => __( 'Items', 'learnpress' ),
|
103 |
+
)
|
104 |
+
),
|
105 |
+
'sections' => array(
|
106 |
+
'sections' => $course->get_curriculum_raw(),
|
107 |
+
'hidden_sections' => ! empty( $hidden_sections ) ? $hidden_sections : array(),
|
108 |
+
'urlEdit' => admin_url( 'post.php?action=edit&post=' ),
|
109 |
+
)
|
110 |
+
) );
|
111 |
+
|
112 |
+
learn_press_admin_assets()->add_script_data( 'learn-press-admin-course-editor', $data );
|
113 |
}
|
114 |
|
115 |
/**
|
237 |
if ( LP_COURSE_CPT !== get_post_type() ) {
|
238 |
return;
|
239 |
}
|
|
|
|
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
}
|
242 |
|
243 |
/**
|
405 |
return $fields;
|
406 |
}
|
407 |
|
408 |
+
public function _posts_join_paged_course_items( $join ) {
|
409 |
+
global $wpdb;
|
410 |
+
|
411 |
+
if ( ( $course_id = $this->_filter_items_by_course() ) || ( LP_Request::get( 'orderby' ) == 'course-name' ) ) {
|
412 |
+
$join .= " LEFT JOIN {$wpdb->prefix}learnpress_section_items si ON {$wpdb->posts}.ID = si.item_id";
|
413 |
+
$join .= " LEFT JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id";
|
414 |
+
$join .= " LEFT JOIN {$wpdb->posts} c ON c.ID = s.section_course_id";
|
415 |
+
}
|
416 |
+
|
417 |
+
return $join;
|
418 |
+
}
|
419 |
+
|
420 |
+
public function _posts_where_paged_course_items( $where ) {
|
421 |
+
global $wpdb;
|
422 |
+
|
423 |
+
if ( $course_id = $this->_filter_items_by_course() ) {
|
424 |
+
$where .= $wpdb->prepare( " AND (c.ID = %d)", $course_id );
|
425 |
+
$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_status = %s", 'publish' );
|
426 |
+
}
|
427 |
+
|
428 |
+
return $where;
|
429 |
+
}
|
430 |
+
|
431 |
/**
|
432 |
* @param $join
|
433 |
*
|
434 |
* @return string
|
435 |
*/
|
436 |
public function posts_join_paged( $join ) {
|
437 |
+
global $wpdb;
|
438 |
+
|
439 |
if ( ! $this->_is_archive() ) {
|
440 |
return $join;
|
441 |
}
|
442 |
+
|
443 |
$join .= " LEFT JOIN {$wpdb->postmeta} pm_price ON pm_price.post_id = {$wpdb->posts}.ID AND pm_price.meta_key = '_lp_price'";
|
444 |
|
445 |
return $join;
|
451 |
* @return mixed|string
|
452 |
*/
|
453 |
public function posts_where_paged( $where ) {
|
454 |
+
global $wpdb;
|
455 |
|
456 |
if ( ! $this->_is_archive() ) {
|
457 |
return $where;
|
458 |
}
|
459 |
|
|
|
|
|
460 |
if ( array_key_exists( 'filter_price', $_REQUEST ) ) {
|
461 |
if ( $_REQUEST['filter_price'] == 0 ) {
|
462 |
$where .= " AND ( pm_price.meta_value IS NULL || pm_price.meta_value = 0 )";
|
465 |
}
|
466 |
}
|
467 |
|
|
|
468 |
$not_in = $wpdb->prepare( "
|
469 |
SELECT ID
|
470 |
FROM {$wpdb->posts} p
|
474 |
|
475 |
$where .= " AND {$wpdb->posts}.ID NOT IN( {$not_in} )";
|
476 |
|
|
|
|
|
|
|
477 |
return $where;
|
478 |
}
|
479 |
|
885 |
$meta_box['fields'],
|
886 |
array(
|
887 |
array(
|
888 |
+
'name' => __( 'No requirement enroll', 'learnpress' ),
|
889 |
'id' => '_lp_required_enroll',
|
890 |
'type' => 'yes_no',
|
891 |
'desc' => __( 'Require users logged in to study or public to all.', 'learnpress' ),
|
1368 |
echo sprintf( '<a href="%s" class="price">%s%s</a>', add_query_arg( 'filter_price', 0 ), $origin_price, __( 'Free', 'learnpress' ) );
|
1369 |
|
1370 |
if ( ! $course->is_required_enroll() ) {
|
1371 |
+
printf( '<p class="description">(%s)</p>', __( 'No requirement enroll', 'learnpress' ) );
|
1372 |
}
|
1373 |
}
|
1374 |
break;
|
@@ -34,11 +34,30 @@ if ( ! class_exists( 'LP_Lesson_Post_Type' ) ) {
|
|
34 |
// hide View Lesson link if not assigned to course
|
35 |
add_action( 'admin_footer', array( $this, 'hide_view_lesson_link' ) );
|
36 |
add_filter( 'views_edit-' . LP_LESSON_CPT, array( $this, 'views_pages' ), 10 );
|
37 |
-
add_filter( 'posts_where_paged', array( $this, 'posts_where_paged' ), 10 );
|
38 |
|
39 |
parent::__construct( $post_type );
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
/**
|
43 |
* Filter items unassigned.
|
44 |
*
|
@@ -47,21 +66,25 @@ if ( ! class_exists( 'LP_Lesson_Post_Type' ) ) {
|
|
47 |
* @return string
|
48 |
*/
|
49 |
public function posts_where_paged( $where ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
if ( 'yes' === LP_Request::get( 'unassigned' ) ) {
|
51 |
-
global $wpdb;
|
52 |
$where .= $wpdb->prepare( "
|
53 |
AND {$wpdb->posts}.ID NOT IN(
|
54 |
SELECT si.item_id
|
55 |
FROM {$wpdb->learnpress_section_items} si
|
56 |
-
INNER JOIN
|
57 |
WHERE p.post_type = %s
|
58 |
)
|
59 |
", LP_LESSON_CPT );
|
60 |
}
|
61 |
|
62 |
if ( $preview = LP_Request::get( 'preview' ) ) {
|
63 |
-
global $wpdb;
|
64 |
-
|
65 |
$clause = $wpdb->prepare( "
|
66 |
SELECT ID
|
67 |
FROM {$wpdb->posts} p
|
@@ -305,13 +328,16 @@ if ( ! class_exists( 'LP_Lesson_Post_Type' ) ) {
|
|
305 |
$pos = array_search( 'title', array_keys( $columns ) );
|
306 |
$new_columns = array(
|
307 |
'author' => __( 'Author', 'learnpress' ),
|
308 |
-
LP_COURSE_CPT =>
|
309 |
);
|
|
|
310 |
if ( current_theme_supports( 'post-formats' ) ) {
|
311 |
$new_columns['format'] = __( 'Format', 'learnpress' );
|
312 |
$new_columns['duration'] = __( 'Duration', 'learnpress' );
|
313 |
}
|
|
|
314 |
$new_columns['preview'] = __( 'Preview', 'learnpress' );
|
|
|
315 |
if ( false !== $pos && ! array_key_exists( LP_COURSE_CPT, $columns ) ) {
|
316 |
$columns = array_merge(
|
317 |
array_slice( $columns, 0, $pos + 1 ),
|
@@ -334,25 +360,12 @@ if ( ! class_exists( 'LP_Lesson_Post_Type' ) ) {
|
|
334 |
* Display content for custom column
|
335 |
*
|
336 |
* @param string $name
|
337 |
-
* @param int
|
338 |
*/
|
339 |
public function columns_content( $name, $post_id = 0 ) {
|
340 |
switch ( $name ) {
|
341 |
case LP_COURSE_CPT:
|
342 |
-
$
|
343 |
-
if ( $courses ) {
|
344 |
-
foreach ( $courses as $course ) {
|
345 |
-
echo '<div><a href="' . esc_url( add_query_arg( array( 'filter_course' => $course->ID ) ) ) . '">' . get_the_title( $course->ID ) . '</a>';
|
346 |
-
echo '<div class="row-actions">';
|
347 |
-
printf( '<a href="%s">%s</a>', admin_url( sprintf( 'post.php?post=%d&action=edit', $course->ID ) ), __( 'Edit', 'learnpress' ) );
|
348 |
-
echo " | ";
|
349 |
-
printf( '<a href="%s">%s</a>', get_the_permalink( $course->ID ), __( 'View', 'learnpress' ) );
|
350 |
-
echo '</div></div>';
|
351 |
-
}
|
352 |
-
} else {
|
353 |
-
_e( 'Not assigned yet', 'learnpress' );
|
354 |
-
}
|
355 |
-
|
356 |
break;
|
357 |
case 'preview':
|
358 |
printf(
|
@@ -406,10 +419,6 @@ if ( ! class_exists( 'LP_Lesson_Post_Type' ) ) {
|
|
406 |
return isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : false;
|
407 |
}
|
408 |
|
409 |
-
private function _filter_course() {
|
410 |
-
return ! empty( $_REQUEST['filter_course'] ) ? absint( $_REQUEST['filter_course'] ) : false;
|
411 |
-
}
|
412 |
-
|
413 |
/**
|
414 |
* Admin scripts.
|
415 |
*/
|
34 |
// hide View Lesson link if not assigned to course
|
35 |
add_action( 'admin_footer', array( $this, 'hide_view_lesson_link' ) );
|
36 |
add_filter( 'views_edit-' . LP_LESSON_CPT, array( $this, 'views_pages' ), 10 );
|
|
|
37 |
|
38 |
parent::__construct( $post_type );
|
39 |
}
|
40 |
|
41 |
+
/**
|
42 |
+
* @param $join
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function posts_join_paged( $join ) {
|
47 |
+
if ( ! $this->_is_archive() ) {
|
48 |
+
return $join;
|
49 |
+
}
|
50 |
+
global $wpdb;
|
51 |
+
|
52 |
+
// if ( $this->_filter_course() || ( $this->_get_orderby() == 'course-name' ) || $this->_get_search() ) {
|
53 |
+
// $join .= " LEFT JOIN {$wpdb->prefix}learnpress_section_items si ON {$wpdb->posts}.ID = si.item_id";
|
54 |
+
// $join .= " LEFT JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id";
|
55 |
+
// $join .= " LEFT JOIN {$wpdb->posts} c ON c.ID = s.section_course_id";
|
56 |
+
// }
|
57 |
+
|
58 |
+
return $join;
|
59 |
+
}
|
60 |
+
|
61 |
/**
|
62 |
* Filter items unassigned.
|
63 |
*
|
66 |
* @return string
|
67 |
*/
|
68 |
public function posts_where_paged( $where ) {
|
69 |
+
|
70 |
+
if ( ! $this->_is_archive() ) {
|
71 |
+
return $where;
|
72 |
+
}
|
73 |
+
|
74 |
+
global $wpdb;
|
75 |
+
|
76 |
if ( 'yes' === LP_Request::get( 'unassigned' ) ) {
|
|
|
77 |
$where .= $wpdb->prepare( "
|
78 |
AND {$wpdb->posts}.ID NOT IN(
|
79 |
SELECT si.item_id
|
80 |
FROM {$wpdb->learnpress_section_items} si
|
81 |
+
INNER JOIN {$wpdb->posts} p ON p.ID = si.item_id
|
82 |
WHERE p.post_type = %s
|
83 |
)
|
84 |
", LP_LESSON_CPT );
|
85 |
}
|
86 |
|
87 |
if ( $preview = LP_Request::get( 'preview' ) ) {
|
|
|
|
|
88 |
$clause = $wpdb->prepare( "
|
89 |
SELECT ID
|
90 |
FROM {$wpdb->posts} p
|
328 |
$pos = array_search( 'title', array_keys( $columns ) );
|
329 |
$new_columns = array(
|
330 |
'author' => __( 'Author', 'learnpress' ),
|
331 |
+
LP_COURSE_CPT => $this->_get_course_column_title()
|
332 |
);
|
333 |
+
|
334 |
if ( current_theme_supports( 'post-formats' ) ) {
|
335 |
$new_columns['format'] = __( 'Format', 'learnpress' );
|
336 |
$new_columns['duration'] = __( 'Duration', 'learnpress' );
|
337 |
}
|
338 |
+
|
339 |
$new_columns['preview'] = __( 'Preview', 'learnpress' );
|
340 |
+
|
341 |
if ( false !== $pos && ! array_key_exists( LP_COURSE_CPT, $columns ) ) {
|
342 |
$columns = array_merge(
|
343 |
array_slice( $columns, 0, $pos + 1 ),
|
360 |
* Display content for custom column
|
361 |
*
|
362 |
* @param string $name
|
363 |
+
* @param int $post_id
|
364 |
*/
|
365 |
public function columns_content( $name, $post_id = 0 ) {
|
366 |
switch ( $name ) {
|
367 |
case LP_COURSE_CPT:
|
368 |
+
$this->_get_item_course( $post_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
break;
|
370 |
case 'preview':
|
371 |
printf(
|
419 |
return isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : false;
|
420 |
}
|
421 |
|
|
|
|
|
|
|
|
|
422 |
/**
|
423 |
* Admin scripts.
|
424 |
*/
|
@@ -114,7 +114,9 @@ if ( ! class_exists( 'LP_Question_Post_Type' ) ) {
|
|
114 |
}
|
115 |
|
116 |
wp_localize_script( 'learn-press-admin-question-editor', 'lp_question_editor',
|
117 |
-
apply_filters(
|
|
|
|
|
118 |
'root' => array(
|
119 |
'id' => $post->ID,
|
120 |
'auto_draft' => get_post_status( $post->ID ) == 'auto-draft',
|
@@ -130,9 +132,13 @@ if ( ! class_exists( 'LP_Question_Post_Type' ) ) {
|
|
130 |
'nonce' => wp_create_nonce( 'learnpress_admin_question_editor' ),
|
131 |
'questionTypes' => LP_Question::get_types(),
|
132 |
'externalComponent' => apply_filters( 'learn-press/admin/external-js-component', array() )
|
|
|
|
|
|
|
133 |
)
|
134 |
)
|
135 |
-
)
|
|
|
136 |
}
|
137 |
|
138 |
/**
|
@@ -411,7 +417,7 @@ if ( ! class_exists( 'LP_Question_Post_Type' ) ) {
|
|
411 |
AND {$wpdb->posts}.ID NOT IN(
|
412 |
SELECT qq.question_id
|
413 |
FROM {$wpdb->learnpress_quiz_questions} qq
|
414 |
-
INNER JOIN
|
415 |
WHERE p.post_type = %s
|
416 |
)
|
417 |
", LP_QUESTION_CPT );
|
114 |
}
|
115 |
|
116 |
wp_localize_script( 'learn-press-admin-question-editor', 'lp_question_editor',
|
117 |
+
apply_filters(
|
118 |
+
'learn-press/question-editor/localize-script',
|
119 |
+
array(
|
120 |
'root' => array(
|
121 |
'id' => $post->ID,
|
122 |
'auto_draft' => get_post_status( $post->ID ) == 'auto-draft',
|
132 |
'nonce' => wp_create_nonce( 'learnpress_admin_question_editor' ),
|
133 |
'questionTypes' => LP_Question::get_types(),
|
134 |
'externalComponent' => apply_filters( 'learn-press/admin/external-js-component', array() )
|
135 |
+
),
|
136 |
+
'i18n' => array(
|
137 |
+
'new_option_label' => __( 'New Option', 'learnpress' )
|
138 |
)
|
139 |
)
|
140 |
+
)
|
141 |
+
);
|
142 |
}
|
143 |
|
144 |
/**
|
417 |
AND {$wpdb->posts}.ID NOT IN(
|
418 |
SELECT qq.question_id
|
419 |
FROM {$wpdb->learnpress_quiz_questions} qq
|
420 |
+
INNER JOIN {$wpdb->posts} p ON p.ID = qq.question_id
|
421 |
WHERE p.post_type = %s
|
422 |
)
|
423 |
", LP_QUESTION_CPT );
|
@@ -154,7 +154,8 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
154 |
$user_id = get_current_user_id();
|
155 |
$default_new_question_type = get_user_meta( $user_id, '_learn_press_memorize_question_types', true ) ? get_user_meta( $user_id, '_learn_press_memorize_question_types', true ) : 'true_or_false';
|
156 |
|
157 |
-
$hidden_questions
|
|
|
158 |
|
159 |
wp_localize_script( 'learn-press-admin-quiz-editor', 'lp_quiz_editor', apply_filters( 'learn-press/admin-localize-quiz-editor', array(
|
160 |
'root' => array(
|
@@ -171,16 +172,23 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
171 |
'items' => array()
|
172 |
),
|
173 |
'i18n' => array(
|
174 |
-
'option'
|
175 |
-
'unique'
|
176 |
-
'back'
|
177 |
-
'selected_items'
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
),
|
179 |
'listQuestions' => array(
|
180 |
-
'questions'
|
181 |
-
'hidden_questions'
|
182 |
-
'
|
183 |
-
'
|
|
|
184 |
)
|
185 |
) ) );
|
186 |
}
|
@@ -333,7 +341,7 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
333 |
array_slice( $columns, 0, $pos + 1 ),
|
334 |
array(
|
335 |
'author' => __( 'Author', 'learnpress' ),
|
336 |
-
'lp_course' =>
|
337 |
'num_of_question' => __( 'Questions', 'learnpress' ),
|
338 |
'duration' => __( 'Duration', 'learnpress' )
|
339 |
),
|
@@ -353,26 +361,13 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
353 |
* Display content for custom column
|
354 |
*
|
355 |
* @param string $name
|
356 |
-
* @param int
|
357 |
*/
|
358 |
public function columns_content( $name, $post_id = 0 ) {
|
359 |
global $post;
|
360 |
switch ( $name ) {
|
361 |
case 'lp_course':
|
362 |
-
$
|
363 |
-
if ( $courses ) {
|
364 |
-
foreach ( $courses as $course ) {
|
365 |
-
echo '<div><a href="' . esc_url( add_query_arg( array( 'filter_course' => $course->ID ) ) ) . '">' . get_the_title( $course->ID ) . '</a>';
|
366 |
-
echo '<div class="row-actions">';
|
367 |
-
printf( '<a href="%s">%s</a>', admin_url( sprintf( 'post.php?post=%d&action=edit', $course->ID ) ), __( 'Edit', 'learnpress' ) );
|
368 |
-
echo " | ";
|
369 |
-
printf( '<a href="%s">%s</a>', get_the_permalink( $course->ID ), __( 'View', 'learnpress' ) );
|
370 |
-
echo '</div></div>';
|
371 |
-
}
|
372 |
-
|
373 |
-
} else {
|
374 |
-
_e( 'Not assigned yet', 'learnpress' );
|
375 |
-
}
|
376 |
break;
|
377 |
case 'num_of_question':
|
378 |
if ( property_exists( $post, 'question_count' ) ) {
|
@@ -429,11 +424,11 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
429 |
return $join;
|
430 |
}
|
431 |
global $wpdb;
|
432 |
-
if ( $this->_filter_course() || ( $this->_get_orderby() == 'course-name' ) || $this->_get_search() ) {
|
433 |
-
$join .= " LEFT JOIN {$wpdb->prefix}learnpress_section_items si ON {$wpdb->posts}.ID = si.item_id";
|
434 |
-
$join .= " LEFT JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id";
|
435 |
-
$join .= " LEFT JOIN {$wpdb->posts} c ON c.ID = s.section_course_id";
|
436 |
-
}
|
437 |
|
438 |
return $join;
|
439 |
}
|
@@ -451,9 +446,9 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
451 |
|
452 |
global $wpdb;
|
453 |
|
454 |
-
if ( $course_id = $this->_filter_course() ) {
|
455 |
-
$where .= $wpdb->prepare( " AND (c.ID = %d)", $course_id );
|
456 |
-
}
|
457 |
|
458 |
if ( isset( $_GET['s'] ) ) {
|
459 |
$s = $_GET['s'];
|
@@ -468,12 +463,13 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
468 |
AND {$wpdb->posts}.ID NOT IN(
|
469 |
SELECT si.item_id
|
470 |
FROM {$wpdb->learnpress_section_items} si
|
471 |
-
INNER JOIN
|
472 |
WHERE p.post_type = %s
|
473 |
)
|
474 |
", LP_QUIZ_CPT );
|
475 |
}
|
476 |
|
|
|
477 |
return $where;
|
478 |
}
|
479 |
|
@@ -532,7 +528,7 @@ if ( ! class_exists( 'LP_Quiz_Post_Type' ) ) {
|
|
532 |
* @return bool|int
|
533 |
*/
|
534 |
private function _filter_course() {
|
535 |
-
return ! empty( $_REQUEST['
|
536 |
}
|
537 |
|
538 |
/**
|
154 |
$user_id = get_current_user_id();
|
155 |
$default_new_question_type = get_user_meta( $user_id, '_learn_press_memorize_question_types', true ) ? get_user_meta( $user_id, '_learn_press_memorize_question_types', true ) : 'true_or_false';
|
156 |
|
157 |
+
$hidden_questions = get_post_meta( $post->ID, '_lp_hidden_questions', true );
|
158 |
+
$hidden_questions_settings = get_post_meta( $post->ID, '_hidden_questions_settings', true );
|
159 |
|
160 |
wp_localize_script( 'learn-press-admin-quiz-editor', 'lp_quiz_editor', apply_filters( 'learn-press/admin-localize-quiz-editor', array(
|
161 |
'root' => array(
|
172 |
'items' => array()
|
173 |
),
|
174 |
'i18n' => array(
|
175 |
+
'option' => __( 'Option', 'learnpress' ),
|
176 |
+
'unique' => learn_press_uniqid(),
|
177 |
+
'back' => __( 'Back', 'learnpress' ),
|
178 |
+
'selected_items' => __( 'Selected items', 'learnpress' ),
|
179 |
+
'new_option' => __( 'New Option', 'learnpress' ),
|
180 |
+
'confirm_trash_question' => __( 'Do you want to move question "{{QUESTION_NAME}}" to trash?', 'learnpress' ),
|
181 |
+
'question_labels' => array(
|
182 |
+
'singular' => __( 'Question', 'learnpress' ),
|
183 |
+
'plural' => __( 'Questions', 'learnpress' )
|
184 |
+
)
|
185 |
),
|
186 |
'listQuestions' => array(
|
187 |
+
'questions' => $quiz->quiz_editor_get_questions(),
|
188 |
+
'hidden_questions' => ! empty( $hidden_questions ) ? $hidden_questions : array(),
|
189 |
+
'hidden_questions_settings' => $hidden_questions_settings ? $hidden_questions_settings : array(),
|
190 |
+
'disableUpdateList' => false,
|
191 |
+
'externalComponent' => apply_filters( 'learn-press/admin/external-js-component', array() )
|
192 |
)
|
193 |
) ) );
|
194 |
}
|
341 |
array_slice( $columns, 0, $pos + 1 ),
|
342 |
array(
|
343 |
'author' => __( 'Author', 'learnpress' ),
|
344 |
+
'lp_course' => $this->_get_course_column_title(),
|
345 |
'num_of_question' => __( 'Questions', 'learnpress' ),
|
346 |
'duration' => __( 'Duration', 'learnpress' )
|
347 |
),
|
361 |
* Display content for custom column
|
362 |
*
|
363 |
* @param string $name
|
364 |
+
* @param int $post_id
|
365 |
*/
|
366 |
public function columns_content( $name, $post_id = 0 ) {
|
367 |
global $post;
|
368 |
switch ( $name ) {
|
369 |
case 'lp_course':
|
370 |
+
$this->_get_item_course( $post_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
break;
|
372 |
case 'num_of_question':
|
373 |
if ( property_exists( $post, 'question_count' ) ) {
|
424 |
return $join;
|
425 |
}
|
426 |
global $wpdb;
|
427 |
+
// if ( $this->_filter_course() || ( $this->_get_orderby() == 'course-name' ) || $this->_get_search() ) {
|
428 |
+
// $join .= " LEFT JOIN {$wpdb->prefix}learnpress_section_items si ON {$wpdb->posts}.ID = si.item_id";
|
429 |
+
// $join .= " LEFT JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id";
|
430 |
+
// $join .= " LEFT JOIN {$wpdb->posts} c ON c.ID = s.section_course_id";
|
431 |
+
// }
|
432 |
|
433 |
return $join;
|
434 |
}
|
446 |
|
447 |
global $wpdb;
|
448 |
|
449 |
+
// if ( $course_id = $this->_filter_course() ) {
|
450 |
+
// $where .= $wpdb->prepare( " AND (c.ID = %d)", $course_id );
|
451 |
+
// }
|
452 |
|
453 |
if ( isset( $_GET['s'] ) ) {
|
454 |
$s = $_GET['s'];
|
463 |
AND {$wpdb->posts}.ID NOT IN(
|
464 |
SELECT si.item_id
|
465 |
FROM {$wpdb->learnpress_section_items} si
|
466 |
+
INNER JOIN {$wpdb->posts} p ON p.ID = si.item_id
|
467 |
WHERE p.post_type = %s
|
468 |
)
|
469 |
", LP_QUIZ_CPT );
|
470 |
}
|
471 |
|
472 |
+
|
473 |
return $where;
|
474 |
}
|
475 |
|
528 |
* @return bool|int
|
529 |
*/
|
530 |
private function _filter_course() {
|
531 |
+
return ! empty( $_REQUEST['course'] ) ? absint( $_REQUEST['course'] ) : false;
|
532 |
}
|
533 |
|
534 |
/**
|
@@ -1,7 +1,7 @@
|
|
1 |
/* Fix empty block below admin footer (issue #24) */
|
2 |
#ui-datepicker-div {
|
3 |
display: none;
|
4 |
-
z-index:
|
5 |
}
|
6 |
|
7 |
/* Style for multiple months */
|
1 |
/* Fix empty block below admin footer (issue #24) */
|
2 |
#ui-datepicker-div {
|
3 |
display: none;
|
4 |
+
z-index: 99999 !important;
|
5 |
}
|
6 |
|
7 |
/* Style for multiple months */
|
@@ -1,36 +1,51 @@
|
|
1 |
-
.rwmb-
|
2 |
-
|
3 |
-
margin: 0 10px 10px 0;
|
4 |
-
transition: width .25s, opacity .25s;
|
5 |
-
}
|
6 |
-
.rwmb-file-wrapper .rwmb-uploaded .rwmb-icon {
|
7 |
-
width: 60px;
|
8 |
-
text-align: center;
|
9 |
-
vertical-align: middle;
|
10 |
overflow: hidden;
|
11 |
}
|
12 |
-
.rwmb-file
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
max-height: 60px;
|
14 |
max-width: 60px;
|
15 |
}
|
16 |
-
.rwmb-file-
|
17 |
-
|
18 |
-
vertical-align: top;
|
19 |
-
overflow: hidden;
|
20 |
-
}
|
21 |
-
.rwmb-file-wrapper .rwmb-uploaded .rwmb-info p {
|
22 |
-
margin: .1em 0;
|
23 |
}
|
24 |
-
.rwmb-file-
|
25 |
font-weight: bold;
|
26 |
text-decoration: none;
|
27 |
}
|
28 |
-
.rwmb-file-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
-
.rwmb-file-
|
34 |
-
|
35 |
-
margin: 0 0 2px 2px;
|
36 |
}
|
1 |
+
.rwmb-uploaded {
|
2 |
+
margin: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
overflow: hidden;
|
4 |
}
|
5 |
+
.rwmb-file {
|
6 |
+
display: flex;
|
7 |
+
margin-bottom: 10px;
|
8 |
+
background: #fff;
|
9 |
+
cursor: move;
|
10 |
+
}
|
11 |
+
.rwmb-file-icon {
|
12 |
+
min-width: 60px;
|
13 |
+
flex-basis: 60px;
|
14 |
+
margin-right: 5px;
|
15 |
+
}
|
16 |
+
.rwmb-file-icon img {
|
17 |
max-height: 60px;
|
18 |
max-width: 60px;
|
19 |
}
|
20 |
+
.rwmb-file-info {
|
21 |
+
flex: 1;
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
23 |
+
.rwmb-file-title {
|
24 |
font-weight: bold;
|
25 |
text-decoration: none;
|
26 |
}
|
27 |
+
.rwmb-file-name {
|
28 |
+
margin: 0 0 4px;
|
29 |
+
white-space: nowrap;
|
30 |
+
}
|
31 |
+
.rwmb-file-actions {
|
32 |
+
margin: 0;
|
33 |
+
font-size: 11px;
|
34 |
+
}
|
35 |
+
.rwmb-file-edit,
|
36 |
+
.rwmb-file-delete {
|
37 |
+
color: inherit;
|
38 |
+
text-decoration: none;
|
39 |
+
}
|
40 |
+
.rwmb-file-edit {
|
41 |
+
margin-right: 6px;
|
42 |
+
}
|
43 |
+
.rwmb-file-actions .dashicons {
|
44 |
+
font-size: 1em;
|
45 |
+
width: 1em;
|
46 |
+
height: 1em;
|
47 |
+
vertical-align: middle;
|
48 |
}
|
49 |
+
.rwmb-file-input {
|
50 |
+
width: 100%;
|
|
|
51 |
}
|
@@ -1,52 +0,0 @@
|
|
1 |
-
/* Image */
|
2 |
-
.rwmb-image-item {
|
3 |
-
position: relative;
|
4 |
-
float: left;
|
5 |
-
padding: 0;
|
6 |
-
margin: 0 5px 5px 0;
|
7 |
-
box-sizing: border-box;
|
8 |
-
}
|
9 |
-
.rwmb-image-item.thumbnail .rwmb-media-preview,
|
10 |
-
.rwmb-image-item.thumbnail{
|
11 |
-
width: 150px;
|
12 |
-
}
|
13 |
-
.rwmb-image-item.medium .rwmb-media-preview,
|
14 |
-
.rwmb-image-item.medium {
|
15 |
-
width: 300px;
|
16 |
-
}
|
17 |
-
.rwmb-image-item.large .rwmb-media-preview,
|
18 |
-
.rwmb-image-item.large {
|
19 |
-
width: 1024px;
|
20 |
-
}
|
21 |
-
|
22 |
-
.rwmb-image-item .dashicons {
|
23 |
-
font-size: 20px;
|
24 |
-
width: 20px;
|
25 |
-
height: 20px;
|
26 |
-
}
|
27 |
-
.rwmb-media-bar {
|
28 |
-
position: absolute;
|
29 |
-
z-index: 10;
|
30 |
-
display: none;
|
31 |
-
right: 5px;
|
32 |
-
top: 5px;
|
33 |
-
color: #fff;
|
34 |
-
}
|
35 |
-
.rwmb-media-bar a {
|
36 |
-
text-decoration: none;
|
37 |
-
color: inherit;
|
38 |
-
}
|
39 |
-
.rwmb-overlay {
|
40 |
-
position: absolute;
|
41 |
-
top: 0;
|
42 |
-
bottom: 0;
|
43 |
-
left: 0;
|
44 |
-
right: 0;
|
45 |
-
background: rgba(0, 0, 0, .6);
|
46 |
-
display: none;
|
47 |
-
}
|
48 |
-
.rwmb-image-item:hover .rwmb-media-bar,
|
49 |
-
.rwmb-image-item:hover .rwmb-overlay {
|
50 |
-
display: block;
|
51 |
-
cursor: move;
|
52 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -16,6 +16,6 @@
|
|
16 |
.rwmb-image-select.rwmb-active {
|
17 |
border-color: #0074a2;
|
18 |
}
|
19 |
-
.rwmb-
|
20 |
display: none;
|
21 |
-
}
|
16 |
.rwmb-image-select.rwmb-active {
|
17 |
border-color: #0074a2;
|
18 |
}
|
19 |
+
.rwmb-image_select.rwmb-image_select {
|
20 |
display: none;
|
21 |
+
}
|
@@ -1,63 +1,66 @@
|
|
1 |
-
|
2 |
-
|
|
|
|
|
|
|
|
|
3 |
overflow: hidden;
|
4 |
}
|
5 |
-
|
6 |
-
|
|
|
7 |
float: left;
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
10 |
text-align: center;
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
14 |
}
|
15 |
-
.rwmb-image-
|
16 |
width: 150px;
|
17 |
-
height: 150px;
|
18 |
}
|
19 |
-
.rwmb-image-
|
20 |
-
|
21 |
-
font-weight: bold;
|
22 |
-
background: #000;
|
23 |
-
background: rgba(0, 0, 0, .5);
|
24 |
-
position: absolute;
|
25 |
-
top: 0;
|
26 |
-
right: 0;
|
27 |
-
padding: 5px;
|
28 |
-
display: none;
|
29 |
-
text-align: center;
|
30 |
}
|
31 |
-
|
32 |
-
|
33 |
}
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
color: #fff;
|
36 |
-
font-weight: bold;
|
37 |
-
text-decoration: none;
|
38 |
-
vertical-align: middle;
|
39 |
}
|
40 |
-
.rwmb-image-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
}
|
45 |
-
.rwmb-image-
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
48 |
opacity: 0;
|
|
|
49 |
}
|
50 |
-
.rwmb-image-
|
51 |
-
|
52 |
-
position: absolute;
|
53 |
-
top: 0;
|
54 |
-
left: 0;
|
55 |
-
right: 0;
|
56 |
-
bottom: 0;
|
57 |
-
z-index: 2;
|
58 |
-
opacity: .4;
|
59 |
-
background-color: #f00;
|
60 |
}
|
61 |
-
.rwmb-image-
|
62 |
-
|
63 |
}
|
1 |
+
.rwmb-image-wrapper .rwmb-uploaded:empty {
|
2 |
+
display: none;
|
3 |
+
}
|
4 |
+
.rwmb-uploaded:not(:empty) {
|
5 |
+
display: block;
|
6 |
+
margin: -8px 0 0 -8px;
|
7 |
overflow: hidden;
|
8 |
}
|
9 |
+
/* Re-add WP core UI style to make sure frontend works */
|
10 |
+
.rwmb-image-item {
|
11 |
+
position: relative;
|
12 |
float: left;
|
13 |
+
padding: 8px;
|
14 |
+
margin: 0;
|
15 |
+
color: #444;
|
16 |
+
cursor: pointer;
|
17 |
+
list-style: none;
|
18 |
text-align: center;
|
19 |
+
-webkit-user-select: none;
|
20 |
+
-moz-user-select: none;
|
21 |
+
-ms-user-select: none;
|
22 |
+
user-select: none;
|
23 |
+
width: 25%;
|
24 |
+
box-sizing: border-box;
|
25 |
}
|
26 |
+
.rwmb-image-item.thumbnail {
|
27 |
width: 150px;
|
|
|
28 |
}
|
29 |
+
.rwmb-image-item.medium {
|
30 |
+
width: 300px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
+
.rwmb-image-item.large {
|
33 |
+
width: 1024px;
|
34 |
}
|
35 |
+
|
36 |
+
.rwmb-image-actions {
|
37 |
+
position: absolute;
|
38 |
+
z-index: 2;
|
39 |
+
right: 12px;
|
40 |
+
top: 12px;
|
41 |
+
opacity: 0;
|
42 |
+
transition: opacity .2s;
|
43 |
color: #fff;
|
|
|
|
|
|
|
44 |
}
|
45 |
+
.rwmb-image-edit,
|
46 |
+
.rwmb-image-delete {
|
47 |
+
color: inherit;
|
48 |
+
text-decoration: none;
|
49 |
}
|
50 |
+
.rwmb-image-overlay {
|
51 |
+
position: absolute;
|
52 |
+
z-index: 1;
|
53 |
+
top: 8px;
|
54 |
+
bottom: 8px;
|
55 |
+
left: 8px;
|
56 |
+
right: 8px;
|
57 |
+
background: #000;
|
58 |
opacity: 0;
|
59 |
+
transition: opacity .2s;
|
60 |
}
|
61 |
+
.rwmb-image-item:hover .rwmb-image-actions {
|
62 |
+
opacity: 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
+
.rwmb-image-item:hover .rwmb-image-overlay {
|
65 |
+
opacity: .6;
|
66 |
}
|
@@ -2,10 +2,11 @@
|
|
2 |
margin: 0;
|
3 |
line-height: 1.8;
|
4 |
}
|
5 |
-
|
6 |
margin-left: 20px;
|
7 |
}
|
8 |
.rwmb-input-list li {
|
|
|
9 |
margin-bottom: 0;
|
10 |
}
|
11 |
.rwmb-input-list.inline {
|
2 |
margin: 0;
|
3 |
line-height: 1.8;
|
4 |
}
|
5 |
+
.rwmb-input-list .rwmb-input-list {
|
6 |
margin-left: 20px;
|
7 |
}
|
8 |
.rwmb-input-list li {
|
9 |
+
list-style: none;
|
10 |
margin-bottom: 0;
|
11 |
}
|
12 |
.rwmb-input-list.inline {
|
@@ -1,67 +1,45 @@
|
|
1 |
-
.rwmb-media-list {
|
2 |
-
|
|
|
|
|
|
|
|
|
3 |
overflow: hidden;
|
4 |
}
|
5 |
-
.rwmb-media-item {
|
|
|
|
|
|
|
6 |
overflow: hidden;
|
7 |
-
margin-bottom: 10px;
|
8 |
}
|
9 |
.rwmb-media-preview {
|
10 |
width: 60px;
|
11 |
float: left;
|
12 |
position: relative;
|
13 |
}
|
14 |
-
.rwmb-media-preview:before {
|
15 |
-
content: '';
|
16 |
-
display: block;
|
17 |
-
padding-top: 100%;
|
18 |
-
}
|
19 |
-
.rwmb-media-content {
|
20 |
-
position: absolute;
|
21 |
-
overflow: hidden;
|
22 |
-
top: 0;
|
23 |
-
left: 0;
|
24 |
-
bottom: 0;
|
25 |
-
right: 0;
|
26 |
-
}
|
27 |
-
.rwmb-media-content .centered {
|
28 |
-
position: absolute;
|
29 |
-
top: 0;
|
30 |
-
left: 0;
|
31 |
-
width: 100%;
|
32 |
-
height: 100%;
|
33 |
-
-webkit-transform: translate(50%, 50%);
|
34 |
-
-ms-transform: translate(50%, 50%);
|
35 |
-
transform: translate(50%, 50%);
|
36 |
-
}
|
37 |
-
.rwmb-media-content img {
|
38 |
-
-webkit-transform: translate(-50%, -50%);
|
39 |
-
-ms-transform: translate(-50%, -50%);
|
40 |
-
transform: translate(-50%, -50%);
|
41 |
-
max-height: 100%;
|
42 |
-
max-width: 100%;
|
43 |
-
border-radius: 3px;
|
44 |
-
}
|
45 |
.rwmb-media-info {
|
46 |
margin-left: 65px;
|
47 |
}
|
48 |
-
.rwmb-media-
|
|
|
49 |
text-decoration: none;
|
50 |
}
|
51 |
-
.rwmb-media-
|
52 |
-
|
53 |
-
|
|
|
|
|
54 |
}
|
55 |
.rwmb-edit-media,
|
56 |
.rwmb-remove-media {
|
57 |
font-size: 11px;
|
58 |
color: inherit;
|
|
|
59 |
}
|
60 |
-
.rwmb-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
height: 12px;
|
65 |
vertical-align: middle;
|
66 |
}
|
67 |
|
1 |
+
.rwmb-media-list:empty {
|
2 |
+
display: none;
|
3 |
+
}
|
4 |
+
.rwmb-media-list:not(:empty) {
|
5 |
+
display: block;
|
6 |
+
margin: -8px 0 0 -8px;
|
7 |
overflow: hidden;
|
8 |
}
|
9 |
+
.rwmb-media-item.attachment {
|
10 |
+
float: none;
|
11 |
+
text-align: left;
|
12 |
+
width: auto;
|
13 |
overflow: hidden;
|
|
|
14 |
}
|
15 |
.rwmb-media-preview {
|
16 |
width: 60px;
|
17 |
float: left;
|
18 |
position: relative;
|
19 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
.rwmb-media-info {
|
21 |
margin-left: 65px;
|
22 |
}
|
23 |
+
.rwmb-media-title {
|
24 |
+
font-weight: bold;
|
25 |
text-decoration: none;
|
26 |
}
|
27 |
+
.rwmb-media-name {
|
28 |
+
margin: 0 0 4px;
|
29 |
+
}
|
30 |
+
.rwmb-media-actions {
|
31 |
+
margin: 0;
|
32 |
}
|
33 |
.rwmb-edit-media,
|
34 |
.rwmb-remove-media {
|
35 |
font-size: 11px;
|
36 |
color: inherit;
|
37 |
+
text-decoration: none;
|
38 |
}
|
39 |
+
.rwmb-media-actions .dashicons {
|
40 |
+
font-size: 1em;
|
41 |
+
width: 1em;
|
42 |
+
height: 1em;
|
|
|
43 |
vertical-align: middle;
|
44 |
}
|
45 |
|
@@ -1,13 +1,9 @@
|
|
1 |
-
|
|
|
2 |
vertical-align: middle;
|
3 |
-
|
4 |
-
border:
|
5 |
}
|
6 |
-
|
7 |
.rwmb-output {
|
8 |
-
|
9 |
-
display: inline-block;
|
10 |
-
position: relative;
|
11 |
-
padding: 5px 10px;
|
12 |
-
line-height: 20px;
|
13 |
}
|
1 |
+
.rwmb-range.rwmb-range,
|
2 |
+
.rwmb-range.rwmb-range:hover {
|
3 |
vertical-align: middle;
|
4 |
+
padding: 0;
|
5 |
+
border: none;
|
6 |
}
|
|
|
7 |
.rwmb-output {
|
8 |
+
margin-left: 8px;
|
|
|
|
|
|
|
|
|
9 |
}
|
@@ -14,3 +14,6 @@
|
|
14 |
.select2-results__option {
|
15 |
margin-bottom: 0;
|
16 |
}
|
|
|
|
|
|
14 |
.select2-results__option {
|
15 |
margin-bottom: 0;
|
16 |
}
|
17 |
+
.select2-container .select2-search--inline {
|
18 |
+
margin-bottom: 0;
|
19 |
+
}
|
@@ -1,8 +1,9 @@
|
|
1 |
-
.rwmb-select {
|
2 |
min-width: 160px;
|
|
|
3 |
}
|
4 |
.rwmb-select option {
|
5 |
-
padding:
|
6 |
}
|
7 |
.rwmb-select-all-none {
|
8 |
display: block;
|
1 |
+
.rwmb-select.rwmb-select {
|
2 |
min-width: 160px;
|
3 |
+
padding: 0;
|
4 |
}
|
5 |
.rwmb-select option {
|
6 |
+
padding: 4px 8px;
|
7 |
}
|
8 |
.rwmb-select-all-none {
|
9 |
display: block;
|
@@ -1,4 +1,4 @@
|
|
1 |
-
/*
|
2 |
-------------------------------------------------------------- */
|
3 |
|
4 |
/* Clearfix for field */
|
@@ -26,8 +26,8 @@
|
|
26 |
.rwmb-label > label {
|
27 |
font-weight: 600;
|
28 |
}
|
29 |
-
.rwmb-
|
30 |
-
color: #
|
31 |
font-weight: bold;
|
32 |
margin-left: 3px;
|
33 |
}
|
@@ -90,32 +90,54 @@
|
|
90 |
left: 0;
|
91 |
top: 0;
|
92 |
}
|
93 |
-
.rwmb-clone-placeholder {
|
94 |
-
background: #fcf8e3;
|
95 |
-
border: 1px solid #faebcc;
|
96 |
-
display: block;
|
97 |
-
}
|
98 |
.rwmb-sort-clone {
|
99 |
padding-left: 15px;
|
100 |
}
|
101 |
|
102 |
/* jQuery validation */
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
}
|
107 |
-
input.error,
|
108 |
-
textarea.error,
|
109 |
-
select.error {
|
110 |
-
border-color: #
|
111 |
-
background: #ffebe8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
}
|
113 |
|
114 |
|
115 |
-
/*
|
116 |
-------------------------------------------------------------- */
|
117 |
|
118 |
#side-sortables .rwmb-label,
|
119 |
#side-sortables .rwmb-input {
|
120 |
width: 100%;
|
121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Styles for 'normal' meta boxes
|
2 |
-------------------------------------------------------------- */
|
3 |
|
4 |
/* Clearfix for field */
|
26 |
.rwmb-label > label {
|
27 |
font-weight: 600;
|
28 |
}
|
29 |
+
.rwmb-required {
|
30 |
+
color: #dc3232;
|
31 |
font-weight: bold;
|
32 |
margin-left: 3px;
|
33 |
}
|
90 |
left: 0;
|
91 |
top: 0;
|
92 |
}
|
|
|
|
|
|
|
|
|
|
|
93 |
.rwmb-sort-clone {
|
94 |
padding-left: 15px;
|
95 |
}
|
96 |
|
97 |
/* jQuery validation */
|
98 |
+
p.rwmb-error {
|
99 |
+
color: #dc3232;
|
100 |
+
margin: 2px 0 5px;
|
101 |
}
|
102 |
+
input.rwmb-error.rwmb-error,
|
103 |
+
textarea.rwmb-error,
|
104 |
+
select.rwmb-error {
|
105 |
+
border-color: #dc3232;
|
106 |
+
background: #ffebe8;
|
107 |
+
}
|
108 |
+
|
109 |
+
/* Utilities
|
110 |
+
-------------------------------------------------------------- */
|
111 |
+
.rwmb-sortable-placeholder {
|
112 |
+
background: #fcf8e3;
|
113 |
+
border: 1px solid #faebcc;
|
114 |
+
display: block;
|
115 |
}
|
116 |
|
117 |
|
118 |
+
/* Styles for 'side' meta boxes
|
119 |
-------------------------------------------------------------- */
|
120 |
|
121 |
#side-sortables .rwmb-label,
|
122 |
#side-sortables .rwmb-input {
|
123 |
width: 100%;
|
124 |
}
|
125 |
+
|
126 |
+
/* Seamless style
|
127 |
+
--------------------------------------------------------------*/
|
128 |
+
.rwmb-seamless {
|
129 |
+
background: none;
|
130 |
+
border: none;
|
131 |
+
box-shadow: none;
|
132 |
+
}
|
133 |
+
.rwmb-seamless .inside {
|
134 |
+
padding-left: 0;
|
135 |
+
padding-right: 0;
|
136 |
+
}
|
137 |
+
.postbox.rwmb-seamless .hndle,
|
138 |
+
.postbox.rwmb-seamless .handlediv {
|
139 |
+
display: none;
|
140 |
+
}
|
141 |
+
.rwmb-seamless .rwmb-clone {
|
142 |
+
background: none;
|
143 |
+
}
|
@@ -14,34 +14,12 @@
|
|
14 |
background: #EEE;
|
15 |
}
|
16 |
|
17 |
-
.rwmb-video-item .rwmb-media-preview:before {
|
18 |
-
padding-top: 56.25%;
|
19 |
-
}
|
20 |
-
|
21 |
.rwmb-video-item video {
|
22 |
width: auto;
|
23 |
height: 100%;
|
24 |
}
|
25 |
|
26 |
-
.rwmb-media-content .rwmb-video-wrapper {
|
27 |
-
-webkit-transform: translate(-50%, -50%);
|
28 |
-
-ms-transform: translate(-50%, -50%);
|
29 |
-
transform: translate(-50%, -50%);
|
30 |
-
max-height: 100%;
|
31 |
-
max-width: 100%;
|
32 |
-
border-radius: 3px;
|
33 |
-
}
|
34 |
-
|
35 |
.rwmb-video-item .rwmb-media-info {
|
36 |
margin-left: 0;
|
37 |
-
float: none;
|
38 |
-
background: #FFF;
|
39 |
padding: 10px;
|
40 |
}
|
41 |
-
|
42 |
-
.rwmb-video-item .rwmb-media-info h4 {
|
43 |
-
white-space: nowrap;
|
44 |
-
overflow: hidden;
|
45 |
-
display: block;
|
46 |
-
text-overflow: ellipsis;
|
47 |
-
}
|
14 |
background: #EEE;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
.rwmb-video-item video {
|
18 |
width: auto;
|
19 |
height: 100%;
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
.rwmb-video-item .rwmb-media-info {
|
23 |
margin-left: 0;
|
|
|
|
|
24 |
padding: 10px;
|
25 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Binary file
|
@@ -47,7 +47,7 @@ class RWMB_About {
|
|
47 |
* @return array
|
48 |
*/
|
49 |
public function plugin_links( $links ) {
|
50 |
-
$links[] = '<a href="' . esc_url( admin_url( 'index.php?page=meta-box-about' ) ) . '">' . esc_html__( 'About', '
|
51 |
return $links;
|
52 |
}
|
53 |
|
@@ -56,8 +56,8 @@ class RWMB_About {
|
|
56 |
*/
|
57 |
public function register_page() {
|
58 |
add_dashboard_page(
|
59 |
-
__( 'Welcome to Meta Box', '
|
60 |
-
__( 'Welcome to Meta Box', '
|
61 |
'activate_plugins',
|
62 |
'meta-box-about',
|
63 |
array( $this, 'render' )
|
47 |
* @return array
|
48 |
*/
|
49 |
public function plugin_links( $links ) {
|
50 |
+
$links[] = '<a href="' . esc_url( admin_url( 'index.php?page=meta-box-about' ) ) . '">' . esc_html__( 'About', 'learnpress' ) . '</a>';
|
51 |
return $links;
|
52 |
}
|
53 |
|
56 |
*/
|
57 |
public function register_page() {
|
58 |
add_dashboard_page(
|
59 |
+
__( 'Welcome to Meta Box', 'learnpress' ),
|
60 |
+
__( 'Welcome to Meta Box', 'learnpress' ),
|
61 |
'activate_plugins',
|
62 |
'meta-box-about',
|
63 |
array( $this, 'render' )
|
@@ -10,32 +10,32 @@
|
|
10 |
<div id="getting-started" class="gt-tab-pane gt-is-active">
|
11 |
<div class="feature-section two-col">
|
12 |
<div class="col">
|
13 |
-
<h3><?php esc_html_e( 'Getting Started With Online Generator', '
|
14 |
-
<p><?php esc_html_e( 'The fastest way to getting started with Meta Box is use our online generator to generate meta boxes with custom fields. It provides a friendly UI for you to create meta boxes and custom fields just by drag and drop fields.', '
|
15 |
|
16 |
-
<a class="screenshot" href="https://metabox.io/online-generator/?utm_source=plugin_about_page&utm_medium=link_generator&utm_campaign=meta_box_about_page" target="_blank"><img src="<?php echo esc_url( RWMB_URL . 'inc/about/images/online-generator.png' ); ?>" alt="<?php esc_attr_e( 'online generator', '
|
17 |
|
18 |
-
<p><a href="<?php echo esc_url( 'https://metabox.io/online-generator/?utm_source=plugin_about_page&utm_medium=button_generator&utm_campaign=meta_box_about_page' ); ?>" class="button button-primary"><?php esc_html_e( 'Go to Online Generator', '
|
19 |
</div>
|
20 |
|
21 |
<div class="col">
|
22 |
-
<h3><?php esc_html_e( 'Understand The Basics', '
|
23 |
-
<p><?php esc_html_e( 'Meta Box doesn\'t have any admin page for configuration or settings. Instead of that, it provides a very powerful API to speed up the process of creating meta boxes and custom fields. It might take you a little time at first, but then you\'ll love the way it work because it helps you do and customize almost everything.', '
|
24 |
-
<p><a href="<?php echo esc_url( 'https://docs.metabox.io/quick-start/?utm_source=plugin_about_page&utm_medium=button_docs&utm_campaign=meta_box_about_page' ); ?>" class="button button-primary"><?php esc_html_e( 'Learn More', '
|
25 |
|
26 |
-
<h3><?php esc_html_e( 'Extensions', '
|
27 |
-
<p><?php esc_html_e( 'Wanna see more features that transform your WordPress website into a powerful CMS? Check out some extensions below:', '
|
28 |
<ul>
|
29 |
-
<li><a target="_blank" href="https://metabox.io/plugins/meta-box-group/?utm_source=plugin_about_page&utm_medium=link_group&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-welcome-widgets-menus"></span> <?php esc_html_e( 'Meta Box Group', '
|
30 |
-
<li><a target="_blank" href="https://metabox.io/plugins/meta-box-conditional-logic/?utm_source=plugin_about_page&utm_medium=link_conditional&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Meta Box Conditional Logic', '
|
31 |
-
<li><a target="_blank" href="https://metabox.io/plugins/mb-settings-page/?utm_source=plugin_about_page&utm_medium=link_settings&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-admin-generic"></span> <?php esc_html_e( 'MB Settings Page', '
|
32 |
-
<li><a target="_blank" href="https://metabox.io/plugins/mb-term-meta/?utm_source=plugin_about_page&utm_medium=link_term&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-image-filter"></span> <?php esc_html_e( 'MB Term Meta', '
|
33 |
</ul>
|
34 |
-
<p><a target="_blank" class="button button-primary" href="https://metabox.io/plugins/?utm_source=plugin_about_page&utm_medium=button_extensions&utm_campaign=meta_box_about_page"><?php esc_html_e( 'More Extensions', '
|
35 |
</div>
|
36 |
</div>
|
37 |
<hr>
|
38 |
<div class="return-to-dashboard">
|
39 |
-
<a href="https://metabox.io/plugins/?utm_source=plugin_about_page&utm_medium=link_home&utm_campaign=meta_box_about_page"><?php esc_html_e( 'Go to MetaBox.IO →', '
|
40 |
</div>
|
41 |
</div>
|
10 |
<div id="getting-started" class="gt-tab-pane gt-is-active">
|
11 |
<div class="feature-section two-col">
|
12 |
<div class="col">
|
13 |
+
<h3><?php esc_html_e( 'Getting Started With Online Generator', 'learnpress' ); ?></h3>
|
14 |
+
<p><?php esc_html_e( 'The fastest way to getting started with Meta Box is use our online generator to generate meta boxes with custom fields. It provides a friendly UI for you to create meta boxes and custom fields just by drag and drop fields.', 'learnpress' ); ?><p>
|
15 |
|
16 |
+
<a class="screenshot" href="https://metabox.io/online-generator/?utm_source=plugin_about_page&utm_medium=link_generator&utm_campaign=meta_box_about_page" target="_blank"><img src="<?php echo esc_url( RWMB_URL . 'inc/about/images/online-generator.png' ); ?>" alt="<?php esc_attr_e( 'online generator', 'learnpress' ); ?>"></a>
|
17 |
|
18 |
+
<p><a href="<?php echo esc_url( 'https://metabox.io/online-generator/?utm_source=plugin_about_page&utm_medium=button_generator&utm_campaign=meta_box_about_page' ); ?>" class="button button-primary"><?php esc_html_e( 'Go to Online Generator', 'learnpress' ); ?></a></p>
|
19 |
</div>
|
20 |
|
21 |
<div class="col">
|
22 |
+
<h3><?php esc_html_e( 'Understand The Basics', 'learnpress' ); ?></h3>
|
23 |
+
<p><?php esc_html_e( 'Meta Box doesn\'t have any admin page for configuration or settings. Instead of that, it provides a very powerful API to speed up the process of creating meta boxes and custom fields. It might take you a little time at first, but then you\'ll love the way it work because it helps you do and customize almost everything.', 'learnpress' ); ?><p>
|
24 |
+
<p><a href="<?php echo esc_url( 'https://docs.metabox.io/quick-start/?utm_source=plugin_about_page&utm_medium=button_docs&utm_campaign=meta_box_about_page' ); ?>" class="button button-primary"><?php esc_html_e( 'Learn More', 'learnpress' ); ?></a></p>
|
25 |
|
26 |
+
<h3><?php esc_html_e( 'Extensions', 'learnpress' ); ?></h3>
|
27 |
+
<p><?php esc_html_e( 'Wanna see more features that transform your WordPress website into a powerful CMS? Check out some extensions below:', 'learnpress' ); ?><p>
|
28 |
<ul>
|
29 |
+
<li><a target="_blank" href="https://metabox.io/plugins/meta-box-group/?utm_source=plugin_about_page&utm_medium=link_group&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-welcome-widgets-menus"></span> <?php esc_html_e( 'Meta Box Group', 'learnpress' ); ?></a></li>
|
30 |
+
<li><a target="_blank" href="https://metabox.io/plugins/meta-box-conditional-logic/?utm_source=plugin_about_page&utm_medium=link_conditional&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Meta Box Conditional Logic', 'learnpress' ); ?></a></li>
|
31 |
+
<li><a target="_blank" href="https://metabox.io/plugins/mb-settings-page/?utm_source=plugin_about_page&utm_medium=link_settings&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-admin-generic"></span> <?php esc_html_e( 'MB Settings Page', 'learnpress' ); ?></a></li>
|
32 |
+
<li><a target="_blank" href="https://metabox.io/plugins/mb-term-meta/?utm_source=plugin_about_page&utm_medium=link_term&utm_campaign=meta_box_about_page"><span class="dashicons dashicons-image-filter"></span> <?php esc_html_e( 'MB Term Meta', 'learnpress' ); ?></a></li>
|
33 |
</ul>
|
34 |
+
<p><a target="_blank" class="button button-primary" href="https://metabox.io/plugins/?utm_source=plugin_about_page&utm_medium=button_extensions&utm_campaign=meta_box_about_page"><?php esc_html_e( 'More Extensions', 'learnpress' ); ?></a>
|
35 |
</div>
|
36 |
</div>
|
37 |
<hr>
|
38 |
<div class="return-to-dashboard">
|
39 |
+
<a href="https://metabox.io/plugins/?utm_source=plugin_about_page&utm_medium=link_home&utm_campaign=meta_box_about_page"><?php esc_html_e( 'Go to MetaBox.IO →', 'learnpress' ); ?></a>
|
40 |
</div>
|
41 |
</div>
|
@@ -8,5 +8,5 @@
|
|
8 |
|
9 |
?>
|
10 |
<h2 class="nav-tab-wrapper">
|
11 |
-
<a href="#getting-started" class="nav-tab nav-tab-active"><?php esc_html_e( 'Getting Started', '
|
12 |
</h2>
|
8 |
|
9 |
?>
|
10 |
<h2 class="nav-tab-wrapper">
|
11 |
+
<a href="#getting-started" class="nav-tab nav-tab-active"><?php esc_html_e( 'Getting Started', 'learnpress' ); ?></a>
|
12 |
</h2>
|
@@ -10,8 +10,8 @@
|
|
10 |
<h1>
|
11 |
<?php
|
12 |
// Translators: %1$s - Plugin name, %2$s - Plugin version.
|
13 |
-
echo esc_html( sprintf( __( 'Welcome to %1$s %2$s', '
|
14 |
?>
|
15 |
</h1>
|
16 |
-
<div class="about-text"><?php esc_html_e( 'This plugin is a lightweight and powerful toolkit that helps you to create custom meta boxes and custom fields in WordPress fast and easy. Follow the instruction below to get started.', '
|
17 |
<a target="_blank" href="<?php echo esc_url( 'https://metabox.io/?utm_source=plugin_about_page&utm_medium=badge_link&utm_campaign=meta_box_about' ); ?>" class="wp-badge"><?php echo esc_html( $this->plugin['Name'] ); ?></a>
|
10 |
<h1>
|
11 |
<?php
|
12 |
// Translators: %1$s - Plugin name, %2$s - Plugin version.
|
13 |
+
echo esc_html( sprintf( __( 'Welcome to %1$s %2$s', 'learnpress' ), $this->plugin['Name'], $this->plugin['Version'] ) );
|
14 |
?>
|
15 |
</h1>
|
16 |
+
<div class="about-text"><?php esc_html_e( 'This plugin is a lightweight and powerful toolkit that helps you to create custom meta boxes and custom fields in WordPress fast and easy. Follow the instruction below to get started.', 'learnpress' ); ?></div>
|
17 |
<a target="_blank" href="<?php echo esc_url( 'https://metabox.io/?utm_source=plugin_about_page&utm_medium=badge_link&utm_campaign=meta_box_about' ); ?>" class="wp-badge"><?php echo esc_html( $this->plugin['Name'] ); ?></a>
|
@@ -84,10 +84,15 @@ class RWMB_Autoloader {
|
|
84 |
'clone',
|
85 |
'meta-box',
|
86 |
'meta-box-registry',
|
|
|
|
|
|
|
|
|
87 |
'validation',
|
88 |
'sanitizer',
|
89 |
'media-modal',
|
90 |
-
|
|
|
91 |
|
92 |
// Walkers.
|
93 |
'walkers/walker',
|
@@ -139,7 +144,6 @@ class RWMB_Autoloader {
|
|
139 |
'fields/file',
|
140 |
'fields/image',
|
141 |
'fields/image-select',
|
142 |
-
'fields/thickbox-image',
|
143 |
|
144 |
'fields/media',
|
145 |
'fields/file-upload',
|
84 |
'clone',
|
85 |
'meta-box',
|
86 |
'meta-box-registry',
|
87 |
+
'storage-registry',
|
88 |
+
'interfaces/storage.php',
|
89 |
+
'storages/base.php',
|
90 |
+
'storages/post.php',
|
91 |
'validation',
|
92 |
'sanitizer',
|
93 |
'media-modal',
|
94 |
+
'wpml',
|
95 |
+
'about/about.php',
|
96 |
|
97 |
// Walkers.
|
98 |
'walkers/walker',
|
144 |
'fields/file',
|
145 |
'fields/image',
|
146 |
'fields/image-select',
|
|
|
147 |
|
148 |
'fields/media',
|
149 |
'fields/file-upload',
|
@@ -39,7 +39,9 @@ class RWMB_Clone {
|
|
39 |
}
|
40 |
}
|
41 |
|
42 |
-
if ( $
|
|
|
|
|
43 |
$sub_field['field_name'] .= '[]';
|
44 |
}
|
45 |
|
@@ -78,7 +80,11 @@ class RWMB_Clone {
|
|
78 |
*/
|
79 |
public static function value( $new, $old, $post_id, $field ) {
|
80 |
if ( ! is_array( $new ) ) {
|
81 |
-
|
|
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
foreach ( $new as $key => $value ) {
|
@@ -86,6 +92,7 @@ class RWMB_Clone {
|
|
86 |
$value = RWMB_Field::call( $field, 'value', $value, $old_value, $post_id );
|
87 |
$new[ $key ] = RWMB_Field::filter( 'sanitize', $value, $field );
|
88 |
}
|
|
|
89 |
return $new;
|
90 |
}
|
91 |
|
39 |
}
|
40 |
}
|
41 |
|
42 |
+
if ( in_array( $sub_field['type'], array( 'file', 'image' ), true ) ) {
|
43 |
+
$sub_field['file_input_name'] = $field['file_input_name'] . "[{$index}]";
|
44 |
+
} elseif ( $field['multiple'] ) {
|
45 |
$sub_field['field_name'] .= '[]';
|
46 |
}
|
47 |
|
80 |
*/
|
81 |
public static function value( $new, $old, $post_id, $field ) {
|
82 |
if ( ! is_array( $new ) ) {
|
83 |
+
$new = array();
|
84 |
+
}
|
85 |
+
|
86 |
+
if ( in_array( $field['type'], array( 'file', 'image' ), true ) ) {
|
87 |
+
return RWMB_Field::call( $field, 'value', $new, '', $post_id );
|
88 |
}
|
89 |
|
90 |
foreach ( $new as $key => $value ) {
|
92 |
$value = RWMB_Field::call( $field, 'value', $value, $old_value, $post_id );
|
93 |
$new[ $key ] = RWMB_Field::filter( 'sanitize', $value, $field );
|
94 |
}
|
95 |
+
|
96 |
return $new;
|
97 |
}
|
98 |
|
@@ -18,20 +18,25 @@ class RWMB_Core {
|
|
18 |
load_plugin_textdomain( 'meta-box', false, plugin_basename( RWMB_DIR ) . '/languages/' );
|
19 |
|
20 |
add_filter( 'plugin_action_links_meta-box/meta-box.php', array( $this, 'plugin_links' ) );
|
21 |
-
|
|
|
|
|
22 |
add_action( 'edit_page_form', array( $this, 'fix_page_template' ) );
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
* Add links to Documentation and Extensions in plugin's list of action links.
|
27 |
*
|
28 |
* @since 4.3.11
|
|
|
29 |
* @param array $links Array of plugin links.
|
|
|
30 |
* @return array
|
31 |
*/
|
32 |
public function plugin_links( $links ) {
|
33 |
-
$links[] = '<a href="https://metabox.io
|
34 |
-
$links[] = '<a href="https://metabox.io/plugins/">' . esc_html__( 'Extensions', '
|
35 |
return $links;
|
36 |
}
|
37 |
|
@@ -44,11 +49,11 @@ class RWMB_Core {
|
|
44 |
public function register_meta_boxes() {
|
45 |
$configs = apply_filters( 'rwmb_meta_boxes', array() );
|
46 |
$meta_boxes = rwmb_get_registry( 'meta_box' );
|
47 |
-
|
48 |
foreach ( $configs as $config ) {
|
49 |
-
$meta_box =
|
50 |
$meta_boxes->add( $meta_box );
|
51 |
-
$
|
52 |
}
|
53 |
}
|
54 |
|
@@ -58,6 +63,7 @@ class RWMB_Core {
|
|
58 |
* Unset the page template if the page does not exist to allow the post to save.
|
59 |
*
|
60 |
* @param WP_Post $post Post object.
|
|
|
61 |
* @since 4.3.10
|
62 |
*/
|
63 |
public function fix_page_template( WP_Post $post ) {
|
@@ -81,4 +87,31 @@ class RWMB_Core {
|
|
81 |
$meta_boxes = rwmb_get_registry( 'meta_box' )->all();
|
82 |
return wp_list_pluck( $meta_boxes, 'meta_box' );
|
83 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
}
|
18 |
load_plugin_textdomain( 'meta-box', false, plugin_basename( RWMB_DIR ) . '/languages/' );
|
19 |
|
20 |
add_filter( 'plugin_action_links_meta-box/meta-box.php', array( $this, 'plugin_links' ) );
|
21 |
+
|
22 |
+
// Uses priority 20 to support custom port types registered using the default priority.
|
23 |
+
add_action( 'init', array( $this, 'register_meta_boxes' ), 20 );
|
24 |
add_action( 'edit_page_form', array( $this, 'fix_page_template' ) );
|
25 |
+
$this->add_context_hooks();
|
26 |
}
|
27 |
|
28 |
/**
|
29 |
* Add links to Documentation and Extensions in plugin's list of action links.
|
30 |
*
|
31 |
* @since 4.3.11
|
32 |
+
*
|
33 |
* @param array $links Array of plugin links.
|
34 |
+
*
|
35 |
* @return array
|
36 |
*/
|
37 |
public function plugin_links( $links ) {
|
38 |
+
$links[] = '<a href="https://docs.metabox.io">' . esc_html__( 'Documentation', 'learnpress' ) . '</a>';
|
39 |
+
$links[] = '<a href="https://metabox.io/plugins/">' . esc_html__( 'Extensions', 'learnpress' ) . '</a>';
|
40 |
return $links;
|
41 |
}
|
42 |
|
49 |
public function register_meta_boxes() {
|
50 |
$configs = apply_filters( 'rwmb_meta_boxes', array() );
|
51 |
$meta_boxes = rwmb_get_registry( 'meta_box' );
|
52 |
+
|
53 |
foreach ( $configs as $config ) {
|
54 |
+
$meta_box = rwmb_get_meta_box( $config );
|
55 |
$meta_boxes->add( $meta_box );
|
56 |
+
$meta_box->register_fields();
|
57 |
}
|
58 |
}
|
59 |
|
63 |
* Unset the page template if the page does not exist to allow the post to save.
|
64 |
*
|
65 |
* @param WP_Post $post Post object.
|
66 |
+
*
|
67 |
* @since 4.3.10
|
68 |
*/
|
69 |
public function fix_page_template( WP_Post $post ) {
|
87 |
$meta_boxes = rwmb_get_registry( 'meta_box' )->all();
|
88 |
return wp_list_pluck( $meta_boxes, 'meta_box' );
|
89 |
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Add hooks for extra contexts.
|
93 |
+
*/
|
94 |
+
public function add_context_hooks() {
|
95 |
+
$hooks = array(
|
96 |
+
'edit_form_top',
|
97 |
+
'edit_form_after_title',
|
98 |
+
'edit_form_after_editor',
|
99 |
+
'edit_form_before_permalink',
|
100 |
+
);
|
101 |
+
|
102 |
+
foreach ( $hooks as $hook ) {
|
103 |
+
add_action( $hook, array( $this, 'add_context' ) );
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Add new meta box context.
|
109 |
+
*
|
110 |
+
* @param WP_Post $post The current post object.
|
111 |
+
*/
|
112 |
+
public function add_context( $post ) {
|
113 |
+
$hook = current_filter();
|
114 |
+
$context = 'edit_form_top' === $hook ? 'form_top' : substr( $hook, 10 );
|
115 |
+
do_meta_boxes( null, $context, $post );
|
116 |
+
}
|
117 |
}
|
@@ -17,19 +17,6 @@ class RWMB_Field_Registry {
|
|
17 |
*/
|
18 |
private $data = array();
|
19 |
|
20 |
-
/**
|
21 |
-
* Add all fields in a meta box to the registry.
|
22 |
-
*
|
23 |
-
* @param RW_Meta_Box $meta_box Meta box object.
|
24 |
-
*/
|
25 |
-
public function add_from_meta_box( RW_Meta_Box $meta_box ) {
|
26 |
-
foreach ( $meta_box->fields as $field ) {
|
27 |
-
foreach ( $meta_box->post_types as $post_type ) {
|
28 |
-
$this->add( $field, $post_type );
|
29 |
-
}
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
/**
|
34 |
* Add a single field to the registry.
|
35 |
*
|
@@ -63,4 +50,15 @@ class RWMB_Field_Registry {
|
|
63 |
public function get( $id, $type, $object_type = 'post' ) {
|
64 |
return isset( $this->data[ $object_type ][ $type ][ $id ] ) ? $this->data[ $object_type ][ $type ][ $id ] : false;
|
65 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
17 |
*/
|
18 |
private $data = array();
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
/**
|
21 |
* Add a single field to the registry.
|
22 |
*
|
50 |
public function get( $id, $type, $object_type = 'post' ) {
|
51 |
return isset( $this->data[ $object_type ][ $type ][ $id ] ) ? $this->data[ $object_type ][ $type ][ $id ] : false;
|
52 |
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Retrieve fields by object type.
|
56 |
+
*
|
57 |
+
* @param string $object_type Object type which the field belongs to.
|
58 |
+
*
|
59 |
+
* @return array List of fields.
|
60 |
+
*/
|
61 |
+
public function get_by_object_type( $object_type = 'post' ) {
|
62 |
+
return isset( $this->data[ $object_type ] ) ? $this->data[ $object_type ] : array();
|
63 |
+
}
|
64 |
}
|
@@ -184,8 +184,13 @@ abstract class RWMB_Field {
|
|
184 |
return '';
|
185 |
}
|
186 |
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
189 |
|
190 |
if ( ! isset( $args['single'] ) ) {
|
191 |
$args['single'] = $field['clone'] || ! $field['multiple'];
|
@@ -244,7 +249,6 @@ abstract class RWMB_Field {
|
|
244 |
}
|
245 |
}
|
246 |
|
247 |
-
|
248 |
return $meta;
|
249 |
}
|
250 |
|
@@ -282,11 +286,15 @@ abstract class RWMB_Field {
|
|
282 |
* @param array $field The field parameters.
|
283 |
*/
|
284 |
public static function save( $new, $old, $post_id, $field ) {
|
|
|
|
|
|
|
285 |
$name = $field['id'];
|
|
|
286 |
|
287 |
// Remove post meta if it's empty.
|
288 |
if ( '' === $new || array() === $new ) {
|
289 |
-
|
290 |
return;
|
291 |
}
|
292 |
|
@@ -301,7 +309,7 @@ abstract class RWMB_Field {
|
|
301 |
}
|
302 |
// Reset indexes.
|
303 |
$new = array_values( $new );
|
304 |
-
|
305 |
return;
|
306 |
}
|
307 |
|
@@ -311,17 +319,17 @@ abstract class RWMB_Field {
|
|
311 |
$new = (array) $new;
|
312 |
$new_values = array_diff( $new, $old );
|
313 |
foreach ( $new_values as $new_value ) {
|
314 |
-
|
315 |
}
|
316 |
$old_values = array_diff( $old, $new );
|
317 |
foreach ( $old_values as $old_value ) {
|
318 |
-
|
319 |
}
|
320 |
return;
|
321 |
}
|
322 |
|
323 |
// Default: just update post meta.
|
324 |
-
|
325 |
}
|
326 |
|
327 |
/**
|
@@ -345,17 +353,26 @@ abstract class RWMB_Field {
|
|
345 |
'field_name' => isset( $field['id'] ) ? $field['id'] : '',
|
346 |
'placeholder' => '',
|
347 |
|
348 |
-
'clone'
|
349 |
-
'max_clone'
|
350 |
-
'sort_clone'
|
351 |
-
'add_button'
|
|
|
352 |
|
353 |
'class' => '',
|
354 |
'disabled' => false,
|
355 |
'required' => false,
|
|
|
356 |
'attributes' => array(),
|
357 |
) );
|
358 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
return $field;
|
360 |
}
|
361 |
|
@@ -369,11 +386,12 @@ abstract class RWMB_Field {
|
|
369 |
*/
|
370 |
public static function get_attributes( $field, $value = null ) {
|
371 |
$attributes = wp_parse_args( $field['attributes'], array(
|
372 |
-
'disabled'
|
373 |
-
'
|
374 |
-
'
|
375 |
-
'
|
376 |
-
'
|
|
|
377 |
) );
|
378 |
|
379 |
$attributes['class'] = implode( ' ', array_merge( array( "rwmb-{$field['type']}" ), (array) $attributes['class'] ) );
|
@@ -461,23 +479,53 @@ abstract class RWMB_Field {
|
|
461 |
*/
|
462 |
public static function the_value( $field, $args = array(), $post_id = null ) {
|
463 |
$value = self::call( 'get_value', $field, $args, $post_id );
|
464 |
-
|
|
|
|
|
|
|
|
|
|
|
465 |
}
|
466 |
|
467 |
/**
|
468 |
* Format value for the helper functions.
|
469 |
*
|
470 |
-
* @param array $field
|
471 |
-
* @param string|array $value
|
|
|
|
|
|
|
472 |
* @return string
|
473 |
*/
|
474 |
-
public static function format_value( $field, $value ) {
|
475 |
-
if ( !
|
476 |
-
return self::call( '
|
477 |
}
|
478 |
$output = '<ul>';
|
479 |
-
foreach ( $value as $
|
480 |
-
$output .= '<li>' . self::call( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
481 |
}
|
482 |
$output .= '</ul>';
|
483 |
return $output;
|
@@ -486,11 +534,14 @@ abstract class RWMB_Field {
|
|
486 |
/**
|
487 |
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
488 |
*
|
489 |
-
* @param array
|
490 |
-
* @param string
|
|
|
|
|
|
|
491 |
* @return string
|
492 |
*/
|
493 |
-
public static function format_single_value( $field, $value ) {
|
494 |
return $value;
|
495 |
}
|
496 |
|
184 |
return '';
|
185 |
}
|
186 |
|
187 |
+
if ( isset( $args['object_type'] ) ) {
|
188 |
+
$storage = rwmb_get_storage( $args['object_type'] );
|
189 |
+
} elseif ( isset( $field['storage'] ) ) {
|
190 |
+
$storage = $field['storage'];
|
191 |
+
} else {
|
192 |
+
$storage = rwmb_get_storage( 'post' );
|
193 |
+
}
|
194 |
|
195 |
if ( ! isset( $args['single'] ) ) {
|
196 |
$args['single'] = $field['clone'] || ! $field['multiple'];
|
249 |
}
|
250 |
}
|
251 |
|
|
|
252 |
return $meta;
|
253 |
}
|
254 |
|
286 |
* @param array $field The field parameters.
|
287 |
*/
|
288 |
public static function save( $new, $old, $post_id, $field ) {
|
289 |
+
if ( empty( $field['id'] ) ) {
|
290 |
+
return;
|
291 |
+
}
|
292 |
$name = $field['id'];
|
293 |
+
$storage = $field['storage'];
|
294 |
|
295 |
// Remove post meta if it's empty.
|
296 |
if ( '' === $new || array() === $new ) {
|
297 |
+
$storage->delete( $post_id, $name );
|
298 |
return;
|
299 |
}
|
300 |
|
309 |
}
|
310 |
// Reset indexes.
|
311 |
$new = array_values( $new );
|
312 |
+
$storage->update( $post_id, $name, $new );
|
313 |
return;
|
314 |
}
|
315 |
|
319 |
$new = (array) $new;
|
320 |
$new_values = array_diff( $new, $old );
|
321 |
foreach ( $new_values as $new_value ) {
|
322 |
+
$storage->add( $post_id, $name, $new_value, false );
|
323 |
}
|
324 |
$old_values = array_diff( $old, $new );
|
325 |
foreach ( $old_values as $old_value ) {
|
326 |
+
$storage->delete( $post_id, $name, $old_value );
|
327 |
}
|
328 |
return;
|
329 |
}
|
330 |
|
331 |
// Default: just update post meta.
|
332 |
+
$storage->update( $post_id, $name, $new );
|
333 |
}
|
334 |
|
335 |
/**
|
353 |
'field_name' => isset( $field['id'] ) ? $field['id'] : '',
|
354 |
'placeholder' => '',
|
355 |
|
356 |
+
'clone' => false,
|
357 |
+
'max_clone' => 0,
|
358 |
+
'sort_clone' => false,
|
359 |
+
'add_button' => __( '+ Add more', 'learnpress' ),
|
360 |
+
'clone_default' => false,
|
361 |
|
362 |
'class' => '',
|
363 |
'disabled' => false,
|
364 |
'required' => false,
|
365 |
+
'autofocus' => false,
|
366 |
'attributes' => array(),
|
367 |
) );
|
368 |
|
369 |
+
if ( $field['clone_default'] ) {
|
370 |
+
$field['attributes'] = wp_parse_args( $field['attributes'], array(
|
371 |
+
'data-default' => $field['std'],
|
372 |
+
'data-clone-default' => 'true',
|
373 |
+
) );
|
374 |
+
}
|
375 |
+
|
376 |
return $field;
|
377 |
}
|
378 |
|
386 |
*/
|
387 |
public static function get_attributes( $field, $value = null ) {
|
388 |
$attributes = wp_parse_args( $field['attributes'], array(
|
389 |
+
'disabled' => $field['disabled'],
|
390 |
+
'autofocus' => $field['autofocus'],
|
391 |
+
'required' => $field['required'],
|
392 |
+
'id' => $field['id'],
|
393 |
+
'class' => '',
|
394 |
+
'name' => $field['field_name'],
|
395 |
) );
|
396 |
|
397 |
$attributes['class'] = implode( ' ', array_merge( array( "rwmb-{$field['type']}" ), (array) $attributes['class'] ) );
|
479 |
*/
|
480 |
public static function the_value( $field, $args = array(), $post_id = null ) {
|
481 |
$value = self::call( 'get_value', $field, $args, $post_id );
|
482 |
+
|
483 |
+
if ( false === $value ) {
|
484 |
+
return '';
|
485 |
+
}
|
486 |
+
|
487 |
+
return self::call( 'format_value', $field, $value, $args, $post_id );
|
488 |
}
|
489 |
|
490 |
/**
|
491 |
* Format value for the helper functions.
|
492 |
*
|
493 |
+
* @param array $field Field parameters.
|
494 |
+
* @param string|array $value The field meta value.
|
495 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
496 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
497 |
+
*
|
498 |
* @return string
|
499 |
*/
|
500 |
+
public static function format_value( $field, $value, $args, $post_id ) {
|
501 |
+
if ( ! $field['clone'] ) {
|
502 |
+
return self::call( 'format_clone_value', $field, $value, $args, $post_id );
|
503 |
}
|
504 |
$output = '<ul>';
|
505 |
+
foreach ( $value as $clone ) {
|
506 |
+
$output .= '<li>' . self::call( 'format_clone_value', $field, $clone, $args, $post_id ) . '</li>';
|
507 |
+
}
|
508 |
+
$output .= '</ul>';
|
509 |
+
return $output;
|
510 |
+
}
|
511 |
+
|
512 |
+
/**
|
513 |
+
* Format value for a clone.
|
514 |
+
*
|
515 |
+
* @param array $field Field parameters.
|
516 |
+
* @param string|array $value The field meta value.
|
517 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
518 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
519 |
+
*
|
520 |
+
* @return string
|
521 |
+
*/
|
522 |
+
public static function format_clone_value( $field, $value, $args, $post_id ) {
|
523 |
+
if ( ! $field['multiple'] ) {
|
524 |
+
return self::call( 'format_single_value', $field, $value, $args, $post_id );
|
525 |
+
}
|
526 |
+
$output = '<ul>';
|
527 |
+
foreach ( $value as $single ) {
|
528 |
+
$output .= '<li>' . self::call( 'format_single_value', $field, $single, $args, $post_id ) . '</li>';
|
529 |
}
|
530 |
$output .= '</ul>';
|
531 |
return $output;
|
534 |
/**
|
535 |
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
536 |
*
|
537 |
+
* @param array $field Field parameters.
|
538 |
+
* @param string $value The value.
|
539 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
540 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
541 |
+
*
|
542 |
* @return string
|
543 |
*/
|
544 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
545 |
return $value;
|
546 |
}
|
547 |
|
@@ -17,7 +17,7 @@ class RWMB_Autocomplete_Field extends RWMB_Multiple_Values_Field {
|
|
17 |
wp_enqueue_script( 'rwmb-autocomplete', RWMB_JS_URL . 'autocomplete.js', array( 'jquery-ui-autocomplete' ), RWMB_VER, true );
|
18 |
|
19 |
self::localize_script( 'rwmb-autocomplete', 'RWMB_Autocomplete', array(
|
20 |
-
'delete' => __( 'Delete', '
|
21 |
) );
|
22 |
}
|
23 |
|
@@ -78,7 +78,7 @@ class RWMB_Autocomplete_Field extends RWMB_Multiple_Values_Field {
|
|
78 |
$html .= sprintf(
|
79 |
$tpl,
|
80 |
esc_html( $label ),
|
81 |
-
esc_html__( 'Delete', '
|
82 |
esc_attr( $field['field_name'] ),
|
83 |
esc_attr( $value )
|
84 |
);
|
@@ -90,7 +90,7 @@ class RWMB_Autocomplete_Field extends RWMB_Multiple_Values_Field {
|
|
90 |
$html .= sprintf(
|
91 |
$tpl,
|
92 |
esc_html( $label ),
|
93 |
-
esc_html__( 'Delete', '
|
94 |
esc_attr( $field['field_name'] ),
|
95 |
esc_attr( $value )
|
96 |
);
|
17 |
wp_enqueue_script( 'rwmb-autocomplete', RWMB_JS_URL . 'autocomplete.js', array( 'jquery-ui-autocomplete' ), RWMB_VER, true );
|
18 |
|
19 |
self::localize_script( 'rwmb-autocomplete', 'RWMB_Autocomplete', array(
|
20 |
+
'delete' => __( 'Delete', 'learnpress' ),
|
21 |
) );
|
22 |
}
|
23 |
|
78 |
$html .= sprintf(
|
79 |
$tpl,
|
80 |
esc_html( $label ),
|
81 |
+
esc_html__( 'Delete', 'learnpress' ),
|
82 |
esc_attr( $field['field_name'] ),
|
83 |
esc_attr( $value )
|
84 |
);
|
90 |
$html .= sprintf(
|
91 |
$tpl,
|
92 |
esc_html( $label ),
|
93 |
+
esc_html__( 'Delete', 'learnpress' ),
|
94 |
esc_attr( $field['field_name'] ),
|
95 |
esc_attr( $value )
|
96 |
);
|
@@ -29,7 +29,7 @@ class RWMB_Button_Field extends RWMB_Field {
|
|
29 |
*/
|
30 |
public static function normalize( $field ) {
|
31 |
$field = wp_parse_args( $field, array(
|
32 |
-
'std' => __( 'Click me', '
|
33 |
) );
|
34 |
$field = parent::normalize( $field );
|
35 |
return $field;
|
29 |
*/
|
30 |
public static function normalize( $field ) {
|
31 |
$field = wp_parse_args( $field, array(
|
32 |
+
'std' => __( 'Click me', 'learnpress' ),
|
33 |
) );
|
34 |
$field = parent::normalize( $field );
|
35 |
return $field;
|
@@ -16,7 +16,6 @@ class RWMB_Checkbox_List_Field extends RWMB_Input_List_Field {
|
|
16 |
* @return array
|
17 |
*/
|
18 |
public static function normalize( $field ) {
|
19 |
-
|
20 |
$field['multiple'] = true;
|
21 |
$field = parent::normalize( $field );
|
22 |
|
16 |
* @return array
|
17 |
*/
|
18 |
public static function normalize( $field ) {
|
|
|
19 |
$field['multiple'] = true;
|
20 |
$field = parent::normalize( $field );
|
21 |
|
@@ -40,13 +40,16 @@ class RWMB_Checkbox_Field extends RWMB_Input_Field {
|
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
44 |
*
|
45 |
-
* @param array $field Field parameters.
|
46 |
-
* @param string $value The value.
|
47 |
* @return string
|
48 |
*/
|
49 |
-
public static function format_single_value( $field, $value ) {
|
50 |
-
return $value ? __( 'Yes', '
|
51 |
}
|
52 |
}
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
44 |
+
*
|
45 |
+
* @param array $field Field parameters.
|
46 |
+
* @param string $value The value.
|
47 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
48 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
49 |
*
|
|
|
|
|
50 |
* @return string
|
51 |
*/
|
52 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
53 |
+
return $value ? __( 'Yes', 'learnpress' ) : __( 'No', 'learnpress' );
|
54 |
}
|
55 |
}
|
@@ -106,13 +106,16 @@ abstract class RWMB_Choice_Field extends RWMB_Field {
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
110 |
*
|
111 |
-
* @param array $field Field parameters.
|
112 |
-
* @param string $value Meta value.
|
113 |
* @return string
|
114 |
*/
|
115 |
-
public static function format_single_value( $field, $value ) {
|
116 |
return self::call( 'get_option_label', $field, $value );
|
117 |
}
|
118 |
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
110 |
+
*
|
111 |
+
* @param array $field Field parameters.
|
112 |
+
* @param string $value The value.
|
113 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
114 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
115 |
*
|
|
|
|
|
116 |
* @return string
|
117 |
*/
|
118 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
119 |
return self::call( 'get_option_label', $field, $value );
|
120 |
}
|
121 |
|
@@ -14,21 +14,28 @@ class RWMB_Color_Field extends RWMB_Text_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-color', RWMB_CSS_URL . 'color.css', array( 'wp-color-picker' ), RWMB_VER );
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
|
20 |
/**
|
21 |
* Normalize parameters for field.
|
22 |
*
|
23 |
* @param array $field Field parameters.
|
|
|
24 |
* @return array
|
25 |
*/
|
26 |
public static function normalize( $field ) {
|
27 |
$field = wp_parse_args( $field, array(
|
28 |
-
'
|
29 |
-
'
|
30 |
-
'pattern' => '^#+([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$',
|
31 |
-
'js_options' => array(),
|
32 |
) );
|
33 |
|
34 |
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
@@ -47,26 +54,34 @@ class RWMB_Color_Field extends RWMB_Text_Field {
|
|
47 |
*
|
48 |
* @param array $field Field parameters.
|
49 |
* @param mixed $value Meta value.
|
|
|
50 |
* @return array
|
51 |
*/
|
52 |
public static function get_attributes( $field, $value = null ) {
|
53 |
-
$attributes
|
54 |
-
$attributes
|
55 |
'data-options' => wp_json_encode( $field['js_options'] ),
|
56 |
) );
|
57 |
$attributes['type'] = 'text';
|
58 |
|
|
|
|
|
|
|
|
|
59 |
return $attributes;
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
64 |
*
|
65 |
-
* @param array $field Field parameters.
|
66 |
-
* @param string $value The value.
|
67 |
* @return string
|
68 |
*/
|
69 |
-
public static function format_single_value( $field, $value ) {
|
70 |
return sprintf( "<span style='display:inline-block;width:20px;height:20px;border-radius:50%%;background:%s;'></span>", $value );
|
71 |
}
|
72 |
}
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-color', RWMB_CSS_URL . 'color.css', array( 'wp-color-picker' ), RWMB_VER );
|
17 |
+
|
18 |
+
$dependencies = array( 'wp-color-picker' );
|
19 |
+
$args = func_get_args();
|
20 |
+
$field = reset( $args );
|
21 |
+
if ( ! empty( $field['alpha_channel'] ) ) {
|
22 |
+
wp_enqueue_script( 'wp-color-picker-alpha', RWMB_JS_URL . 'wp-color-picker-alpha/wp-color-picker-alpha.min.js', array( 'wp-color-picker' ), RWMB_VER, true );
|
23 |
+
$dependencies = array( 'wp-color-picker-alpha' );
|
24 |
+
}
|
25 |
+
wp_enqueue_script( 'rwmb-color', RWMB_JS_URL . 'color.js', $dependencies, RWMB_VER, true );
|
26 |
}
|
27 |
|
28 |
/**
|
29 |
* Normalize parameters for field.
|
30 |
*
|
31 |
* @param array $field Field parameters.
|
32 |
+
*
|
33 |
* @return array
|
34 |
*/
|
35 |
public static function normalize( $field ) {
|
36 |
$field = wp_parse_args( $field, array(
|
37 |
+
'alpha_channel' => false,
|
38 |
+
'js_options' => array(),
|
|
|
|
|
39 |
) );
|
40 |
|
41 |
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
54 |
*
|
55 |
* @param array $field Field parameters.
|
56 |
* @param mixed $value Meta value.
|
57 |
+
*
|
58 |
* @return array
|
59 |
*/
|
60 |
public static function get_attributes( $field, $value = null ) {
|
61 |
+
$attributes = parent::get_attributes( $field, $value );
|
62 |
+
$attributes = wp_parse_args( $attributes, array(
|
63 |
'data-options' => wp_json_encode( $field['js_options'] ),
|
64 |
) );
|
65 |
$attributes['type'] = 'text';
|
66 |
|
67 |
+
if ( $field['alpha_channel'] ) {
|
68 |
+
$attributes['data-alpha'] = 'true';
|
69 |
+
}
|
70 |
+
|
71 |
return $attributes;
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
76 |
+
*
|
77 |
+
* @param array $field Field parameters.
|
78 |
+
* @param string $value The value.
|
79 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
80 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
81 |
*
|
|
|
|
|
82 |
* @return string
|
83 |
*/
|
84 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
85 |
return sprintf( "<span style='display:inline-block;width:20px;height:20px;border-radius:50%%;background:%s;'></span>", $value );
|
86 |
}
|
87 |
}
|
@@ -240,4 +240,24 @@ class RWMB_Datetime_Field extends RWMB_Text_Field {
|
|
240 |
. $field['js_options']['separator']
|
241 |
. strtr( $field['js_options']['timeFormat'], self::$time_formats );
|
242 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
}
|
240 |
. $field['js_options']['separator']
|
241 |
. strtr( $field['js_options']['timeFormat'], self::$time_formats );
|
242 |
}
|
243 |
+
|
244 |
+
/**
|
245 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
246 |
+
*
|
247 |
+
* @param array $field Field parameters.
|
248 |
+
* @param string $value The value.
|
249 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
250 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
251 |
+
*
|
252 |
+
* @return string
|
253 |
+
*/
|
254 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
255 |
+
if ( ! isset( $args['format'] ) ) {
|
256 |
+
return $value;
|
257 |
+
}
|
258 |
+
if ( ! $field['timestamp'] ) {
|
259 |
+
$value = strtotime( $value );
|
260 |
+
}
|
261 |
+
return date( $args['format'], $value );
|
262 |
+
}
|
263 |
}
|
@@ -9,6 +9,13 @@
|
|
9 |
* Fieldset text class.
|
10 |
*/
|
11 |
class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
/**
|
13 |
* Get field HTML.
|
14 |
*
|
@@ -19,7 +26,7 @@ class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
19 |
*/
|
20 |
public static function html( $meta, $field ) {
|
21 |
$html = array();
|
22 |
-
$tpl = '<label>%s %s</
|
23 |
|
24 |
foreach ( $field['options'] as $key => $label ) {
|
25 |
$value = isset( $meta[ $key ] ) ? $meta[ $key ] : '';
|
@@ -36,6 +43,7 @@ class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
36 |
* Do not show field description.
|
37 |
*
|
38 |
* @param array $field Field parameters.
|
|
|
39 |
* @return string
|
40 |
*/
|
41 |
public static function input_description( $field ) {
|
@@ -46,6 +54,7 @@ class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
46 |
* Do not show field description.
|
47 |
*
|
48 |
* @param array $field Field parameters.
|
|
|
49 |
* @return string
|
50 |
*/
|
51 |
public static function label_description( $field ) {
|
@@ -70,22 +79,25 @@ class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
70 |
/**
|
71 |
* Format value for the helper functions.
|
72 |
*
|
73 |
-
* @param array $field
|
74 |
-
* @param string|array $value
|
|
|
|
|
|
|
75 |
* @return string
|
76 |
*/
|
77 |
-
public static function format_value( $field, $value ) {
|
78 |
$output = '<table><thead><tr>';
|
79 |
foreach ( $field['options'] as $label ) {
|
80 |
$output .= "<th>$label</th>";
|
81 |
}
|
82 |
-
$output .= '
|
83 |
|
84 |
if ( ! $field['clone'] ) {
|
85 |
-
$output .= self::format_single_value( $field, $value );
|
86 |
} else {
|
87 |
foreach ( $value as $subvalue ) {
|
88 |
-
$output .= self::format_single_value( $field, $subvalue );
|
89 |
}
|
90 |
}
|
91 |
$output .= '</tbody></table>';
|
@@ -93,13 +105,16 @@ class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
97 |
*
|
98 |
-
* @param array $field Field parameters.
|
99 |
-
* @param array $value The value.
|
100 |
* @return string
|
101 |
*/
|
102 |
-
public static function format_single_value( $field, $value ) {
|
103 |
$output = '<tr>';
|
104 |
foreach ( $value as $subvalue ) {
|
105 |
$output .= "<td>$subvalue</td>";
|
9 |
* Fieldset text class.
|
10 |
*/
|
11 |
class RWMB_Fieldset_Text_Field extends RWMB_Text_Field {
|
12 |
+
/**
|
13 |
+
* Enqueue field scripts and styles.
|
14 |
+
*/
|
15 |
+
public static function admin_enqueue_scripts() {
|
16 |
+
wp_enqueue_style( 'rwmb-fieldset-text', RWMB_CSS_URL . 'fieldset-text.css', '', RWMB_VER );
|
17 |
+
}
|
18 |
+
|
19 |
/**
|
20 |
* Get field HTML.
|
21 |
*
|
26 |
*/
|
27 |
public static function html( $meta, $field ) {
|
28 |
$html = array();
|
29 |
+
$tpl = '<p><label>%s</label> %s</p>';
|
30 |
|
31 |
foreach ( $field['options'] as $key => $label ) {
|
32 |
$value = isset( $meta[ $key ] ) ? $meta[ $key ] : '';
|
43 |
* Do not show field description.
|
44 |
*
|
45 |
* @param array $field Field parameters.
|
46 |
+
*
|
47 |
* @return string
|
48 |
*/
|
49 |
public static function input_description( $field ) {
|
54 |
* Do not show field description.
|
55 |
*
|
56 |
* @param array $field Field parameters.
|
57 |
+
*
|
58 |
* @return string
|
59 |
*/
|
60 |
public static function label_description( $field ) {
|
79 |
/**
|
80 |
* Format value for the helper functions.
|
81 |
*
|
82 |
+
* @param array $field Field parameters.
|
83 |
+
* @param string|array $value The field meta value.
|
84 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
85 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
86 |
+
*
|
87 |
* @return string
|
88 |
*/
|
89 |
+
public static function format_value( $field, $value, $args, $post_id ) {
|
90 |
$output = '<table><thead><tr>';
|
91 |
foreach ( $field['options'] as $label ) {
|
92 |
$output .= "<th>$label</th>";
|
93 |
}
|
94 |
+
$output .= '</tr></thead></tbody>';
|
95 |
|
96 |
if ( ! $field['clone'] ) {
|
97 |
+
$output .= self::format_single_value( $field, $value, $args, $post_id );
|
98 |
} else {
|
99 |
foreach ( $value as $subvalue ) {
|
100 |
+
$output .= self::format_single_value( $field, $subvalue, $args, $post_id );
|
101 |
}
|
102 |
}
|
103 |
$output .= '</tbody></table>';
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
109 |
+
*
|
110 |
+
* @param array $field Field parameters.
|
111 |
+
* @param array $value The value.
|
112 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
113 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
114 |
*
|
|
|
|
|
115 |
* @return string
|
116 |
*/
|
117 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
118 |
$output = '<tr>';
|
119 |
foreach ( $value as $subvalue ) {
|
120 |
$output .= "<td>$subvalue</td>";
|
@@ -14,9 +14,10 @@ class RWMB_File_Input_Field extends RWMB_Input_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_media();
|
|
|
17 |
wp_enqueue_script( 'rwmb-file-input', RWMB_JS_URL . 'file-input.js', array( 'jquery' ), RWMB_VER, true );
|
18 |
self::localize_script('rwmb-file-input', 'rwmbFileInput', array(
|
19 |
-
'frameTitle' => esc_html__( 'Select File', '
|
20 |
) );
|
21 |
}
|
22 |
|
@@ -32,12 +33,12 @@ class RWMB_File_Input_Field extends RWMB_Input_Field {
|
|
32 |
$attributes = self::get_attributes( $field, $meta );
|
33 |
return sprintf(
|
34 |
'<input %s>
|
35 |
-
<a href="#" class="rwmb-file-input-select button
|
36 |
<a href="#" class="rwmb-file-input-remove button %s">%s</a>',
|
37 |
self::render_attributes( $attributes ),
|
38 |
-
esc_html__( 'Select', '
|
39 |
$meta ? '' : 'hidden',
|
40 |
-
esc_html__( 'Remove', '
|
41 |
);
|
42 |
}
|
43 |
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_media();
|
17 |
+
wp_enqueue_style( 'rwmb-file-input', RWMB_CSS_URL . 'file-input.css' );
|
18 |
wp_enqueue_script( 'rwmb-file-input', RWMB_JS_URL . 'file-input.js', array( 'jquery' ), RWMB_VER, true );
|
19 |
self::localize_script('rwmb-file-input', 'rwmbFileInput', array(
|
20 |
+
'frameTitle' => esc_html__( 'Select File', 'learnpress' ),
|
21 |
) );
|
22 |
}
|
23 |
|
33 |
$attributes = self::get_attributes( $field, $meta );
|
34 |
return sprintf(
|
35 |
'<input %s>
|
36 |
+
<a href="#" class="rwmb-file-input-select button">%s</a>
|
37 |
<a href="#" class="rwmb-file-input-remove button %s">%s</a>',
|
38 |
self::render_attributes( $attributes ),
|
39 |
+
esc_html__( 'Select', 'learnpress' ),
|
40 |
$meta ? '' : 'hidden',
|
41 |
+
esc_html__( 'Remove', 'learnpress' )
|
42 |
);
|
43 |
}
|
44 |
|
@@ -18,9 +18,9 @@ class RWMB_File_Field extends RWMB_Field {
|
|
18 |
|
19 |
self::localize_script( 'rwmb-file', 'rwmbFile', array(
|
20 |
// Translators: %d is the number of files in singular form.
|
21 |
-
'maxFileUploadsSingle' => __( 'You may only upload maximum %d file', '
|
22 |
// Translators: %d is the number of files in plural form.
|
23 |
-
'maxFileUploadsPlural' => __( 'You may only upload maximum %d files', '
|
24 |
) );
|
25 |
}
|
26 |
|
@@ -29,8 +29,7 @@ class RWMB_File_Field extends RWMB_Field {
|
|
29 |
*/
|
30 |
public static function add_actions() {
|
31 |
add_action( 'post_edit_form_tag', array( __CLASS__, 'post_edit_form_tag' ) );
|
32 |
-
add_action( 'wp_ajax_rwmb_delete_file', array( __CLASS__, '
|
33 |
-
add_action( 'wp_ajax_rwmb_reorder_files', array( __CLASS__, 'wp_ajax_reorder_files' ) );
|
34 |
}
|
35 |
|
36 |
/**
|
@@ -40,43 +39,18 @@ class RWMB_File_Field extends RWMB_Field {
|
|
40 |
echo ' enctype="multipart/form-data"';
|
41 |
}
|
42 |
|
43 |
-
/**
|
44 |
-
* Ajax callback for reordering images
|
45 |
-
*/
|
46 |
-
public static function wp_ajax_reorder_files() {
|
47 |
-
$post_id = (int) filter_input( INPUT_POST, 'post_id', FILTER_SANITIZE_NUMBER_INT );
|
48 |
-
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
49 |
-
$order = (string) filter_input( INPUT_POST, 'order' );
|
50 |
-
|
51 |
-
check_ajax_referer( "rwmb-reorder-files_{$field_id}" );
|
52 |
-
parse_str( $order, $items );
|
53 |
-
delete_post_meta( $post_id, $field_id );
|
54 |
-
foreach ( $items['item'] as $item ) {
|
55 |
-
add_post_meta( $post_id, $field_id, $item, false );
|
56 |
-
}
|
57 |
-
wp_send_json_success();
|
58 |
-
}
|
59 |
-
|
60 |
/**
|
61 |
* Ajax callback for deleting files.
|
62 |
-
* Modified from a function used by "Verve Meta Boxes" plugin.
|
63 |
-
*
|
64 |
-
* @link http://goo.gl/LzYSq
|
65 |
*/
|
66 |
-
public static function
|
67 |
-
$post_id = (int) filter_input( INPUT_POST, 'post_id', FILTER_SANITIZE_NUMBER_INT );
|
68 |
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
69 |
$attachment_id = (int) filter_input( INPUT_POST, 'attachment_id', FILTER_SANITIZE_NUMBER_INT );
|
70 |
-
$force_delete = (int) filter_input( INPUT_POST, 'force_delete', FILTER_SANITIZE_NUMBER_INT );
|
71 |
|
72 |
check_ajax_referer( "rwmb-delete-file_{$field_id}" );
|
73 |
-
|
74 |
-
$success = $force_delete ? wp_delete_attachment( $attachment_id ) : true;
|
75 |
-
|
76 |
-
if ( $success ) {
|
77 |
wp_send_json_success();
|
78 |
}
|
79 |
-
wp_send_json_error( __( 'Error: Cannot delete file', '
|
80 |
}
|
81 |
|
82 |
/**
|
@@ -88,19 +62,17 @@ class RWMB_File_Field extends RWMB_Field {
|
|
88 |
* @return string
|
89 |
*/
|
90 |
public static function html( $meta, $field ) {
|
91 |
-
$meta
|
92 |
-
$
|
93 |
-
$
|
94 |
-
|
95 |
-
$html = self::get_uploaded_files( $meta, $field );
|
96 |
|
97 |
// Show form upload.
|
98 |
$html .= sprintf(
|
99 |
-
'<div class="rwmb-new
|
100 |
-
<
|
101 |
-
<a class="rwmb-add
|
102 |
</div>',
|
103 |
-
$field['
|
104 |
$i18n_more
|
105 |
);
|
106 |
|
@@ -117,9 +89,13 @@ class RWMB_File_Field extends RWMB_Field {
|
|
117 |
protected static function get_uploaded_files( $files, $field ) {
|
118 |
$reorder_nonce = wp_create_nonce( "rwmb-reorder-files_{$field['id']}" );
|
119 |
$delete_nonce = wp_create_nonce( "rwmb-delete-file_{$field['id']}" );
|
|
|
120 |
|
121 |
foreach ( (array) $files as $k => $file ) {
|
122 |
-
|
|
|
|
|
|
|
123 |
}
|
124 |
return sprintf(
|
125 |
'<ul class="rwmb-uploaded" data-field_id="%s" data-delete_nonce="%s" data-reorder_nonce="%s" data-force_delete="%s" data-max_file_uploads="%s" data-mime_type="%s">%s</ul>',
|
@@ -129,40 +105,44 @@ class RWMB_File_Field extends RWMB_Field {
|
|
129 |
$field['force_delete'] ? 1 : 0,
|
130 |
$field['max_file_uploads'],
|
131 |
$field['mime_type'],
|
132 |
-
|
133 |
);
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
* Get HTML for uploaded file.
|
138 |
*
|
139 |
-
* @param int
|
|
|
|
|
140 |
* @return string
|
141 |
*/
|
142 |
-
protected static function file_html( $file ) {
|
143 |
-
$i18n_delete = apply_filters( 'rwmb_file_delete_string', _x( 'Delete', 'file upload', '
|
144 |
-
$i18n_edit = apply_filters( 'rwmb_file_edit_string', _x( 'Edit', 'file upload', '
|
145 |
-
$
|
|
|
|
|
146 |
|
147 |
return sprintf(
|
148 |
-
'<li
|
149 |
-
<div class="rwmb-icon">%s</div>
|
150 |
-
<div class="rwmb-info">
|
151 |
-
<a href="%s" target="_blank">%s</a>
|
152 |
-
<p>%s</p>
|
153 |
-
<
|
154 |
-
|
|
|
|
|
155 |
</div>
|
|
|
156 |
</li>',
|
157 |
-
$file,
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
$
|
162 |
-
|
163 |
-
$i18n_edit,
|
164 |
-
$file,
|
165 |
-
$i18n_delete
|
166 |
);
|
167 |
}
|
168 |
|
@@ -177,44 +157,95 @@ class RWMB_File_Field extends RWMB_Field {
|
|
177 |
* @return array|mixed
|
178 |
*/
|
179 |
public static function value( $new, $old, $post_id, $field ) {
|
|
|
|
|
180 |
// @codingStandardsIgnoreLine
|
181 |
-
if ( empty( $_FILES[ $
|
182 |
return $new;
|
183 |
}
|
184 |
|
185 |
-
$new
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
|
|
|
|
|
|
|
|
191 |
}
|
|
|
192 |
}
|
193 |
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
* Transform $_FILES from $_FILES['field']['key']['index'] to $_FILES['field_index']['key'].
|
199 |
*
|
200 |
-
* @param string $
|
201 |
*
|
202 |
* @return int The number of uploaded files.
|
203 |
*/
|
204 |
-
protected static function transform( $
|
205 |
-
// @
|
206 |
-
foreach ( $_FILES[ $
|
207 |
foreach ( $list as $index => $value ) {
|
208 |
-
|
209 |
-
if ( ! isset( $_FILES[
|
210 |
-
$_FILES[
|
211 |
}
|
212 |
-
$_FILES[
|
213 |
}
|
214 |
}
|
215 |
|
216 |
-
|
217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
}
|
219 |
|
220 |
/**
|
@@ -233,6 +264,8 @@ class RWMB_File_Field extends RWMB_Field {
|
|
233 |
) );
|
234 |
$field['multiple'] = true;
|
235 |
|
|
|
|
|
236 |
return $field;
|
237 |
}
|
238 |
|
@@ -305,37 +338,16 @@ class RWMB_File_Field extends RWMB_Field {
|
|
305 |
}
|
306 |
|
307 |
/**
|
308 |
-
* Format value for the helper functions.
|
309 |
*
|
310 |
-
* @param array
|
311 |
-
* @param
|
312 |
-
* @
|
313 |
-
|
314 |
-
public static function format_value( $field, $value ) {
|
315 |
-
if ( ! $field['clone'] ) {
|
316 |
-
return self::call( 'format_single_value', $field, $value );
|
317 |
-
}
|
318 |
-
$output = '<ul>';
|
319 |
-
foreach ( $value as $subvalue ) {
|
320 |
-
$output .= '<li>' . self::call( 'format_single_value', $field, $subvalue ) . '</li>';
|
321 |
-
}
|
322 |
-
$output .= '</ul>';
|
323 |
-
return $output;
|
324 |
-
}
|
325 |
-
|
326 |
-
/**
|
327 |
-
* Format a single value for the helper functions.
|
328 |
*
|
329 |
-
* @param array $field Field parameters.
|
330 |
-
* @param array $value The value.
|
331 |
* @return string
|
332 |
*/
|
333 |
-
public static function format_single_value( $field, $value ) {
|
334 |
-
|
335 |
-
foreach ( $value as $file ) {
|
336 |
-
$output .= sprintf( '<li><a href="%s" target="_blank">%s</a></li>', $file['url'], $file['title'] );
|
337 |
-
}
|
338 |
-
$output .= '</ul>';
|
339 |
-
return $output;
|
340 |
}
|
341 |
}
|
18 |
|
19 |
self::localize_script( 'rwmb-file', 'rwmbFile', array(
|
20 |
// Translators: %d is the number of files in singular form.
|
21 |
+
'maxFileUploadsSingle' => __( 'You may only upload maximum %d file', 'learnpress' ),
|
22 |
// Translators: %d is the number of files in plural form.
|
23 |
+
'maxFileUploadsPlural' => __( 'You may only upload maximum %d files', 'learnpress' ),
|
24 |
) );
|
25 |
}
|
26 |
|
29 |
*/
|
30 |
public static function add_actions() {
|
31 |
add_action( 'post_edit_form_tag', array( __CLASS__, 'post_edit_form_tag' ) );
|
32 |
+
add_action( 'wp_ajax_rwmb_delete_file', array( __CLASS__, 'ajax_delete_file' ) );
|
|
|
33 |
}
|
34 |
|
35 |
/**
|
39 |
echo ' enctype="multipart/form-data"';
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
/**
|
43 |
* Ajax callback for deleting files.
|
|
|
|
|
|
|
44 |
*/
|
45 |
+
public static function ajax_delete_file() {
|
|
|
46 |
$field_id = (string) filter_input( INPUT_POST, 'field_id' );
|
47 |
$attachment_id = (int) filter_input( INPUT_POST, 'attachment_id', FILTER_SANITIZE_NUMBER_INT );
|
|
|
48 |
|
49 |
check_ajax_referer( "rwmb-delete-file_{$field_id}" );
|
50 |
+
if ( wp_delete_attachment( $attachment_id ) ) {
|
|
|
|
|
|
|
51 |
wp_send_json_success();
|
52 |
}
|
53 |
+
wp_send_json_error( __( 'Error: Cannot delete file', 'learnpress' ) );
|
54 |
}
|
55 |
|
56 |
/**
|
62 |
* @return string
|
63 |
*/
|
64 |
public static function html( $meta, $field ) {
|
65 |
+
$meta = array_filter( (array) $meta );
|
66 |
+
$i18n_more = apply_filters( 'rwmb_file_add_string', _x( '+ Add new file', 'file upload', 'learnpress' ), $field );
|
67 |
+
$html = self::get_uploaded_files( $meta, $field );
|
|
|
|
|
68 |
|
69 |
// Show form upload.
|
70 |
$html .= sprintf(
|
71 |
+
'<div class="rwmb-file-new">
|
72 |
+
<input type="file" name="%s[]" class="rwmb-file-input">
|
73 |
+
<a class="rwmb-file-add" href="#"><strong>%s</strong></a>
|
74 |
</div>',
|
75 |
+
$field['file_input_name'],
|
76 |
$i18n_more
|
77 |
);
|
78 |
|
89 |
protected static function get_uploaded_files( $files, $field ) {
|
90 |
$reorder_nonce = wp_create_nonce( "rwmb-reorder-files_{$field['id']}" );
|
91 |
$delete_nonce = wp_create_nonce( "rwmb-delete-file_{$field['id']}" );
|
92 |
+
$output = '';
|
93 |
|
94 |
foreach ( (array) $files as $k => $file ) {
|
95 |
+
// Ignore deleted files (if users accidentally deleted files or uses `force_delete` without saving post).
|
96 |
+
if ( get_attached_file( $file ) ) {
|
97 |
+
$output .= self::call( $field, 'file_html', $file, $k );
|
98 |
+
}
|
99 |
}
|
100 |
return sprintf(
|
101 |
'<ul class="rwmb-uploaded" data-field_id="%s" data-delete_nonce="%s" data-reorder_nonce="%s" data-force_delete="%s" data-max_file_uploads="%s" data-mime_type="%s">%s</ul>',
|
105 |
$field['force_delete'] ? 1 : 0,
|
106 |
$field['max_file_uploads'],
|
107 |
$field['mime_type'],
|
108 |
+
$output
|
109 |
);
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
* Get HTML for uploaded file.
|
114 |
*
|
115 |
+
* @param int $file Attachment (file) ID.
|
116 |
+
* @param int $index File index.
|
117 |
+
* @param array $field Field data.
|
118 |
* @return string
|
119 |
*/
|
120 |
+
protected static function file_html( $file, $index, $field ) {
|
121 |
+
$i18n_delete = apply_filters( 'rwmb_file_delete_string', _x( 'Delete', 'file upload', 'learnpress' ) );
|
122 |
+
$i18n_edit = apply_filters( 'rwmb_file_edit_string', _x( 'Edit', 'file upload', 'learnpress' ) );
|
123 |
+
$attributes = self::get_attributes( $field, $file );
|
124 |
+
$path = get_attached_file( $file );
|
125 |
+
$icon = wp_get_attachment_image( $file, array( 60, 60 ), true );
|
126 |
|
127 |
return sprintf(
|
128 |
+
'<li class="rwmb-file">
|
129 |
+
<div class="rwmb-file-icon"><a href="%s" target="_blank">%s</a></div>
|
130 |
+
<div class="rwmb-file-info">
|
131 |
+
<a href="%s" target="_blank" class="rwmb-file-title">%s</a>
|
132 |
+
<p class="rwmb-file-name">%s</p>
|
133 |
+
<p class="rwmb-file-actions">
|
134 |
+
<a href="%s" class="rwmb-file-edit" target="_blank"><span class="dashicons dashicons-edit"></span>%s</a>
|
135 |
+
<a href="#" class="rwmb-file-delete" data-attachment_id="%s"><span class="dashicons dashicons-no-alt"></span>%s</a>
|
136 |
+
</p>
|
137 |
</div>
|
138 |
+
<input type="hidden" name="%s[%s]" value="%s">
|
139 |
</li>',
|
140 |
+
wp_get_attachment_url( $file ), $icon,
|
141 |
+
wp_get_attachment_url( $file ), get_the_title( $file ),
|
142 |
+
basename( $path ),
|
143 |
+
get_edit_post_link( $file ), $i18n_edit,
|
144 |
+
$file, $i18n_delete,
|
145 |
+
$attributes['name'], $index, $file
|
|
|
|
|
|
|
146 |
);
|
147 |
}
|
148 |
|
157 |
* @return array|mixed
|
158 |
*/
|
159 |
public static function value( $new, $old, $post_id, $field ) {
|
160 |
+
$input = $field['file_input_name'];
|
161 |
+
|
162 |
// @codingStandardsIgnoreLine
|
163 |
+
if ( empty( $_FILES[ $input ] ) ) {
|
164 |
return $new;
|
165 |
}
|
166 |
|
167 |
+
$new = array_filter( (array) $new );
|
168 |
+
|
169 |
+
// Non-cloneable field.
|
170 |
+
if ( ! $field['clone'] ) {
|
171 |
+
$count = self::transform( $input );
|
172 |
+
for ( $i = 0; $i <= $count; $i ++ ) {
|
173 |
+
$attachment = media_handle_upload( "{$input}_{$i}", $post_id );
|
174 |
+
if ( ! is_wp_error( $attachment ) ) {
|
175 |
+
$new[] = $attachment;
|
176 |
+
}
|
177 |
}
|
178 |
+
return $new;
|
179 |
}
|
180 |
|
181 |
+
// Cloneable field.
|
182 |
+
$counts = self::transform_cloneable( $input );
|
183 |
+
foreach ( $counts as $clone_index => $count ) {
|
184 |
+
if ( empty( $new[ $clone_index ] ) ) {
|
185 |
+
$new[ $clone_index ] = array();
|
186 |
+
}
|
187 |
+
for ( $i = 0; $i <= $count; $i ++ ) {
|
188 |
+
$attachment = media_handle_upload( "{$input}_{$clone_index}_{$i}", $post_id );
|
189 |
+
if ( ! is_wp_error( $attachment ) ) {
|
190 |
+
$new[ $clone_index ][] = $attachment;
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
return $new;
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
* Transform $_FILES from $_FILES['field']['key']['index'] to $_FILES['field_index']['key'].
|
200 |
*
|
201 |
+
* @param string $input_name The field input name.
|
202 |
*
|
203 |
* @return int The number of uploaded files.
|
204 |
*/
|
205 |
+
protected static function transform( $input_name ) {
|
206 |
+
// @codingStandardsIgnoreStart
|
207 |
+
foreach ( $_FILES[ $input_name ] as $key => $list ) {
|
208 |
foreach ( $list as $index => $value ) {
|
209 |
+
$file_key = "{$input_name}_{$index}";
|
210 |
+
if ( ! isset( $_FILES[ $file_key ] ) ) {
|
211 |
+
$_FILES[ $file_key ] = array();
|
212 |
}
|
213 |
+
$_FILES[ $file_key ][ $key ] = $value;
|
214 |
}
|
215 |
}
|
216 |
|
217 |
+
return count( $_FILES[ $input_name ]['name'] );
|
218 |
+
// @codingStandardsIgnoreEnd
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Transform $_FILES from $_FILES['field']['key']['cloneIndex']['index'] to $_FILES['field_cloneIndex_index']['key'].
|
223 |
+
*
|
224 |
+
* @param string $input_name The field input name.
|
225 |
+
*
|
226 |
+
* @return array
|
227 |
+
*/
|
228 |
+
protected static function transform_cloneable( $input_name ) {
|
229 |
+
// @codingStandardsIgnoreStart
|
230 |
+
foreach ( $_FILES[ $input_name ] as $key => $list ) {
|
231 |
+
foreach ( $list as $clone_index => $clone_values ) {
|
232 |
+
foreach ( $clone_values as $index => $value ) {
|
233 |
+
$file_key = "{$input_name}_{$clone_index}_{$index}";
|
234 |
+
|
235 |
+
if ( ! isset( $_FILES[ $file_key ] ) ) {
|
236 |
+
$_FILES[ $file_key ] = array();
|
237 |
+
}
|
238 |
+
$_FILES[ $file_key ][ $key ] = $value;
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
$counts = array();
|
244 |
+
foreach ( $_FILES[ $input_name ]['name'] as $clone_index => $clone_values ) {
|
245 |
+
$counts[ $clone_index ] = count( $clone_values );
|
246 |
+
}
|
247 |
+
return $counts;
|
248 |
+
// @codingStandardsIgnoreEnd
|
249 |
}
|
250 |
|
251 |
/**
|
264 |
) );
|
265 |
$field['multiple'] = true;
|
266 |
|
267 |
+
$field['file_input_name'] = '_file_' . $field['id'];
|
268 |
+
|
269 |
return $field;
|
270 |
}
|
271 |
|
338 |
}
|
339 |
|
340 |
/**
|
341 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
342 |
*
|
343 |
+
* @param array $field Field parameters.
|
344 |
+
* @param array $value The value.
|
345 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
346 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
*
|
|
|
|
|
348 |
* @return string
|
349 |
*/
|
350 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
351 |
+
return sprintf( '<a href="%s" target="_blank">%s</a>', esc_url( $value['url'] ), esc_html( $value['title'] ) );
|
|
|
|
|
|
|
|
|
|
|
352 |
}
|
353 |
}
|
@@ -14,7 +14,7 @@ class RWMB_Image_Advanced_Field extends RWMB_Media_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
parent::admin_enqueue_scripts();
|
17 |
-
|
18 |
wp_enqueue_script( 'rwmb-image-advanced', RWMB_JS_URL . 'image-advanced.js', array( 'rwmb-media' ), RWMB_VER, true );
|
19 |
}
|
20 |
|
@@ -64,25 +64,17 @@ class RWMB_Image_Advanced_Field extends RWMB_Media_Field {
|
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* Format value for the helper functions.
|
68 |
*
|
69 |
-
* @param array
|
70 |
-
* @param string
|
71 |
-
* @
|
72 |
-
|
73 |
-
public static function format_value( $field, $value ) {
|
74 |
-
return RWMB_Image_Field::format_value( $field, $value );
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* Format a single value for the helper functions.
|
79 |
*
|
80 |
-
* @param array $field Field parameters.
|
81 |
-
* @param array $value The value.
|
82 |
* @return string
|
83 |
*/
|
84 |
-
public static function format_single_value( $field, $value ) {
|
85 |
-
return RWMB_Image_Field::format_single_value( $field, $value );
|
86 |
}
|
87 |
|
88 |
/**
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
parent::admin_enqueue_scripts();
|
17 |
+
RWMB_Image_Field::admin_enqueue_scripts();
|
18 |
wp_enqueue_script( 'rwmb-image-advanced', RWMB_JS_URL . 'image-advanced.js', array( 'rwmb-media' ), RWMB_VER, true );
|
19 |
}
|
20 |
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
68 |
*
|
69 |
+
* @param array $field Field parameters.
|
70 |
+
* @param string $value The value.
|
71 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
72 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
*
|
|
|
|
|
74 |
* @return string
|
75 |
*/
|
76 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
77 |
+
return RWMB_Image_Field::format_single_value( $field, $value, $args, $post_id );
|
78 |
}
|
79 |
|
80 |
/**
|
@@ -26,7 +26,7 @@ class RWMB_Image_Select_Field extends RWMB_Field {
|
|
26 |
*/
|
27 |
public static function html( $meta, $field ) {
|
28 |
$html = array();
|
29 |
-
$tpl = '<label class="rwmb-image-select"><img src="%s"><input type="%s" class="rwmb-image_select
|
30 |
|
31 |
$meta = (array) $meta;
|
32 |
foreach ( $field['options'] as $value => $image ) {
|
@@ -57,13 +57,16 @@ class RWMB_Image_Select_Field extends RWMB_Field {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
61 |
*
|
62 |
-
* @param array $field Field parameters.
|
63 |
-
* @param string $value The meta value.
|
64 |
* @return string
|
65 |
*/
|
66 |
-
public static function format_single_value( $field, $value ) {
|
67 |
return sprintf( '<img src="%s">', esc_url( $field['options'][ $value ] ) );
|
68 |
}
|
69 |
}
|
26 |
*/
|
27 |
public static function html( $meta, $field ) {
|
28 |
$html = array();
|
29 |
+
$tpl = '<label class="rwmb-image-select"><img src="%s"><input type="%s" class="rwmb-image_select" name="%s" value="%s"%s></label>';
|
30 |
|
31 |
$meta = (array) $meta;
|
32 |
foreach ( $field['options'] as $value => $image ) {
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
61 |
+
*
|
62 |
+
* @param array $field Field parameters.
|
63 |
+
* @param string $value The value.
|
64 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
65 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
66 |
*
|
|
|
|
|
67 |
* @return string
|
68 |
*/
|
69 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
70 |
return sprintf( '<img src="%s">', esc_url( $field['options'][ $value ] ) );
|
71 |
}
|
72 |
}
|
@@ -14,51 +14,80 @@ class RWMB_Image_Field extends RWMB_File_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
parent::admin_enqueue_scripts();
|
|
|
17 |
wp_enqueue_style( 'rwmb-image', RWMB_CSS_URL . 'image.css', array(), RWMB_VER );
|
18 |
}
|
19 |
|
20 |
/**
|
21 |
-
* Get HTML
|
|
|
|
|
|
|
|
|
22 |
*
|
23 |
-
* @param int $image Image ID.
|
24 |
* @return string
|
25 |
*/
|
26 |
-
|
27 |
-
|
|
|
28 |
return sprintf(
|
29 |
-
'<li
|
30 |
-
<
|
31 |
-
<div class="
|
32 |
-
<
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
</div>
|
35 |
</li>',
|
36 |
-
$
|
37 |
-
$
|
38 |
-
|
39 |
-
$
|
|
|
40 |
);
|
41 |
}
|
42 |
|
|
|
43 |
/**
|
44 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
*
|
46 |
-
* @param array $field Field parameters.
|
47 |
-
* @param array $value The value.
|
48 |
* @return string
|
49 |
*/
|
50 |
-
public static function format_single_value( $field, $value ) {
|
51 |
-
$output = '<
|
52 |
-
foreach ( $value as $file ) {
|
53 |
-
$img = sprintf( '<img src="%s" alt="%s">', esc_url( $file['url'] ), esc_attr( $file['alt'] ) );
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
}
|
59 |
-
$output .= "<li>$img</li>";
|
60 |
}
|
61 |
-
$output .= '</ul>';
|
62 |
return $output;
|
63 |
}
|
64 |
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
parent::admin_enqueue_scripts();
|
17 |
+
wp_enqueue_media();
|
18 |
wp_enqueue_style( 'rwmb-image', RWMB_CSS_URL . 'image.css', array(), RWMB_VER );
|
19 |
}
|
20 |
|
21 |
/**
|
22 |
+
* Get HTML for uploaded file.
|
23 |
+
*
|
24 |
+
* @param int $file Attachment (file) ID.
|
25 |
+
* @param int $index File index.
|
26 |
+
* @param array $field Field data.
|
27 |
*
|
|
|
28 |
* @return string
|
29 |
*/
|
30 |
+
protected static function file_html( $file, $index, $field ) {
|
31 |
+
$attributes = self::get_attributes( $field, $file );
|
32 |
+
|
33 |
return sprintf(
|
34 |
+
'<li class="rwmb-image-item attachment %s">
|
35 |
+
<input type="hidden" name="%s[%s]" value="%s">
|
36 |
+
<div class="attachment-preview">
|
37 |
+
<div class="thumbnail">
|
38 |
+
<div class="centered">
|
39 |
+
%s
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
</div>
|
43 |
+
<div class="rwmb-image-overlay"></div>
|
44 |
+
<div class="rwmb-image-actions">
|
45 |
+
<a href="%s" class="rwmb-image-edit" target="_blank"><span class="dashicons dashicons-edit"></span></a>
|
46 |
+
<a href="#" class="rwmb-image-delete rwmb-file-delete" data-attachment_id="%s"><span class="dashicons dashicons-no-alt"></span></a>
|
47 |
</div>
|
48 |
</li>',
|
49 |
+
esc_attr( $field['image_size'] ),
|
50 |
+
$attributes['name'], $index, $file,
|
51 |
+
wp_get_attachment_image( $file, $field['image_size'] ),
|
52 |
+
get_edit_post_link( $file ),
|
53 |
+
$file
|
54 |
);
|
55 |
}
|
56 |
|
57 |
+
|
58 |
/**
|
59 |
+
* Normalize field settings.
|
60 |
+
*
|
61 |
+
* @param array $field Field settings.
|
62 |
+
*
|
63 |
+
* @return array
|
64 |
+
*/
|
65 |
+
public static function normalize( $field ) {
|
66 |
+
$field = parent::normalize( $field );
|
67 |
+
$field = wp_parse_args( $field, array(
|
68 |
+
'image_size' => 'thumbnail',
|
69 |
+
) );
|
70 |
+
|
71 |
+
return $field;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
76 |
+
*
|
77 |
+
* @param array $field Field parameters.
|
78 |
+
* @param array $value The value.
|
79 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
80 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
81 |
*
|
|
|
|
|
82 |
* @return string
|
83 |
*/
|
84 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
85 |
+
$output = sprintf( '<img src="%s" alt="%s">', esc_url( $value['url'] ), esc_attr( $value['alt'] ) );
|
|
|
|
|
86 |
|
87 |
+
// Link thumbnail to full size image?
|
88 |
+
if ( ! empty( $args['link'] ) ) {
|
89 |
+
$output = sprintf( '<a href="%s" title="%s">%s</a>', esc_url( $value['full_url'] ), esc_attr( $value['title'] ), $output );
|
|
|
|
|
90 |
}
|
|
|
91 |
return $output;
|
92 |
}
|
93 |
|
@@ -32,9 +32,8 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
32 |
$output = self::get_select_all_html( $field );
|
33 |
$output .= sprintf( '<ul class="rwmb-input-list %s %s">',
|
34 |
$field['collapse'] ? 'collapse' : '',
|
35 |
-
$field['inline']
|
36 |
);
|
37 |
-
|
38 |
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
39 |
$output .= '</ul>';
|
40 |
|
@@ -49,7 +48,6 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
49 |
*/
|
50 |
public static function normalize( $field ) {
|
51 |
$field = $field['multiple'] ? RWMB_Multiple_Values_Field::normalize( $field ) : $field;
|
52 |
-
|
53 |
$field = RWMB_Input_Field::normalize( $field );
|
54 |
$field = parent::normalize( $field );
|
55 |
$field = wp_parse_args( $field, array(
|
@@ -89,7 +87,7 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
89 |
*/
|
90 |
public static function get_select_all_html( $field ) {
|
91 |
if ( $field['multiple'] && $field['select_all_none'] ) {
|
92 |
-
return sprintf( '<p><button class="rwmb-input-list-select-all-none" data-name="%s">%s</button></p>', $field['id'], __( 'Select All / None','
|
93 |
}
|
94 |
return '';
|
95 |
}
|
32 |
$output = self::get_select_all_html( $field );
|
33 |
$output .= sprintf( '<ul class="rwmb-input-list %s %s">',
|
34 |
$field['collapse'] ? 'collapse' : '',
|
35 |
+
$field['inline'] ? 'inline' : ''
|
36 |
);
|
|
|
37 |
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
38 |
$output .= '</ul>';
|
39 |
|
48 |
*/
|
49 |
public static function normalize( $field ) {
|
50 |
$field = $field['multiple'] ? RWMB_Multiple_Values_Field::normalize( $field ) : $field;
|
|
|
51 |
$field = RWMB_Input_Field::normalize( $field );
|
52 |
$field = parent::normalize( $field );
|
53 |
$field = wp_parse_args( $field, array(
|
87 |
*/
|
88 |
public static function get_select_all_html( $field ) {
|
89 |
if ( $field['multiple'] && $field['select_all_none'] ) {
|
90 |
+
return sprintf( '<p><button class="rwmb-input-list-select-all-none button" data-name="%s">%s</button></p>', $field['id'], __( 'Select All / None', 'learnpress' ) );
|
91 |
}
|
92 |
return '';
|
93 |
}
|
@@ -30,9 +30,10 @@ abstract class RWMB_Input_Field extends RWMB_Field {
|
|
30 |
public static function normalize( $field ) {
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
-
'
|
34 |
-
'
|
35 |
-
'
|
|
|
36 |
) );
|
37 |
if ( $field['datalist'] ) {
|
38 |
$field['datalist'] = wp_parse_args( $field['datalist'], array(
|
@@ -53,12 +54,13 @@ abstract class RWMB_Input_Field extends RWMB_Field {
|
|
53 |
public static function get_attributes( $field, $value = null ) {
|
54 |
$attributes = parent::get_attributes( $field, $value );
|
55 |
$attributes = wp_parse_args( $attributes, array(
|
56 |
-
'
|
57 |
-
'
|
58 |
-
'
|
59 |
-
'
|
60 |
-
'
|
61 |
-
'
|
|
|
62 |
) );
|
63 |
|
64 |
return $attributes;
|
30 |
public static function normalize( $field ) {
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
+
'autocomplete' => false,
|
34 |
+
'size' => 30,
|
35 |
+
'datalist' => false,
|
36 |
+
'readonly' => false,
|
37 |
) );
|
38 |
if ( $field['datalist'] ) {
|
39 |
$field['datalist'] = wp_parse_args( $field['datalist'], array(
|
54 |
public static function get_attributes( $field, $value = null ) {
|
55 |
$attributes = parent::get_attributes( $field, $value );
|
56 |
$attributes = wp_parse_args( $attributes, array(
|
57 |
+
'autocomplete' => $field['autocomplete'],
|
58 |
+
'list' => $field['datalist'] ? $field['datalist']['id'] : false,
|
59 |
+
'readonly' => $field['readonly'],
|
60 |
+
'value' => $value,
|
61 |
+
'placeholder' => $field['placeholder'],
|
62 |
+
'type' => $field['type'],
|
63 |
+
'size' => $field['size'],
|
64 |
) );
|
65 |
|
66 |
return $attributes;
|
@@ -14,6 +14,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
14 |
*
|
15 |
* @param mixed $meta Meta value.
|
16 |
* @param array $field Field parameters.
|
|
|
17 |
* @return string
|
18 |
*/
|
19 |
public static function html( $meta, $field ) {
|
@@ -27,7 +28,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
27 |
$val = isset( $meta[1] ) ? $meta[1] : '';
|
28 |
$attributes = self::get_attributes( $field, $val );
|
29 |
$attributes['placeholder'] = $field['placeholder']['value'];
|
30 |
-
$html
|
31 |
|
32 |
return $html;
|
33 |
}
|
@@ -37,6 +38,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
37 |
*
|
38 |
* @param mixed $meta Meta value.
|
39 |
* @param array $field Field parameters.
|
|
|
40 |
* @return string
|
41 |
*/
|
42 |
public static function begin_html( $meta, $field ) {
|
@@ -62,6 +64,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
62 |
* Do not show field description.
|
63 |
*
|
64 |
* @param array $field Field parameters.
|
|
|
65 |
* @return string
|
66 |
*/
|
67 |
public static function input_description( $field ) {
|
@@ -72,6 +75,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
72 |
* Do not show field description.
|
73 |
*
|
74 |
* @param array $field Field parameters.
|
|
|
75 |
* @return string
|
76 |
*/
|
77 |
public static function label_description( $field ) {
|
@@ -82,6 +86,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
82 |
* Escape meta for field output.
|
83 |
*
|
84 |
* @param mixed $meta Meta value.
|
|
|
85 |
* @return mixed
|
86 |
*/
|
87 |
public static function esc_meta( $meta ) {
|
@@ -99,7 +104,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
99 |
* @param int $post_id The post ID.
|
100 |
* @param array $field The field parameters.
|
101 |
*
|
102 |
-
* @return
|
103 |
*/
|
104 |
public static function value( $new, $old, $post_id, $field ) {
|
105 |
foreach ( $new as &$arr ) {
|
@@ -115,6 +120,7 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
115 |
* Normalize parameters for field.
|
116 |
*
|
117 |
* @param array $field Field parameters.
|
|
|
118 |
* @return array
|
119 |
*/
|
120 |
public static function normalize( $field ) {
|
@@ -123,8 +129,8 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
123 |
$field['multiple'] = true;
|
124 |
$field['attributes']['type'] = 'text';
|
125 |
$field['placeholder'] = wp_parse_args( (array) $field['placeholder'], array(
|
126 |
-
'key' => __( 'Key', '
|
127 |
-
'value' => __( 'Value', '
|
128 |
) );
|
129 |
return $field;
|
130 |
}
|
@@ -132,16 +138,14 @@ class RWMB_Key_Value_Field extends RWMB_Text_Field {
|
|
132 |
/**
|
133 |
* Format value for the helper functions.
|
134 |
*
|
135 |
-
* @param array $field
|
136 |
-
* @param string|array $value
|
|
|
|
|
|
|
137 |
* @return string
|
138 |
*/
|
139 |
-
public static function
|
140 |
-
|
141 |
-
foreach ( $value as $subvalue ) {
|
142 |
-
$output .= sprintf( '<li><label>%s</label>: %s</li>', $subvalue[0], $subvalue[1] );
|
143 |
-
}
|
144 |
-
$output .= '</ul>';
|
145 |
-
return $output;
|
146 |
}
|
147 |
}
|
14 |
*
|
15 |
* @param mixed $meta Meta value.
|
16 |
* @param array $field Field parameters.
|
17 |
+
*
|
18 |
* @return string
|
19 |
*/
|
20 |
public static function html( $meta, $field ) {
|
28 |
$val = isset( $meta[1] ) ? $meta[1] : '';
|
29 |
$attributes = self::get_attributes( $field, $val );
|
30 |
$attributes['placeholder'] = $field['placeholder']['value'];
|
31 |
+
$html .= sprintf( '<input %s>', self::render_attributes( $attributes ) );
|
32 |
|
33 |
return $html;
|
34 |
}
|
38 |
*
|
39 |
* @param mixed $meta Meta value.
|
40 |
* @param array $field Field parameters.
|
41 |
+
*
|
42 |
* @return string
|
43 |
*/
|
44 |
public static function begin_html( $meta, $field ) {
|
64 |
* Do not show field description.
|
65 |
*
|
66 |
* @param array $field Field parameters.
|
67 |
+
*
|
68 |
* @return string
|
69 |
*/
|
70 |
public static function input_description( $field ) {
|
75 |
* Do not show field description.
|
76 |
*
|
77 |
* @param array $field Field parameters.
|
78 |
+
*
|
79 |
* @return string
|
80 |
*/
|
81 |
public static function label_description( $field ) {
|
86 |
* Escape meta for field output.
|
87 |
*
|
88 |
* @param mixed $meta Meta value.
|
89 |
+
*
|
90 |
* @return mixed
|
91 |
*/
|
92 |
public static function esc_meta( $meta ) {
|
104 |
* @param int $post_id The post ID.
|
105 |
* @param array $field The field parameters.
|
106 |
*
|
107 |
+
* @return array
|
108 |
*/
|
109 |
public static function value( $new, $old, $post_id, $field ) {
|
110 |
foreach ( $new as &$arr ) {
|
120 |
* Normalize parameters for field.
|
121 |
*
|
122 |
* @param array $field Field parameters.
|
123 |
+
*
|
124 |
* @return array
|
125 |
*/
|
126 |
public static function normalize( $field ) {
|
129 |
$field['multiple'] = true;
|
130 |
$field['attributes']['type'] = 'text';
|
131 |
$field['placeholder'] = wp_parse_args( (array) $field['placeholder'], array(
|
132 |
+
'key' => __( 'Key', 'learnpress' ),
|
133 |
+
'value' => __( 'Value', 'learnpress' ),
|
134 |
) );
|
135 |
return $field;
|
136 |
}
|
138 |
/**
|
139 |
* Format value for the helper functions.
|
140 |
*
|
141 |
+
* @param array $field Field parameters.
|
142 |
+
* @param string|array $value The field meta value.
|
143 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
144 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
145 |
+
*
|
146 |
* @return string
|
147 |
*/
|
148 |
+
public static function format_clone_value( $field, $value, $args, $post_id ) {
|
149 |
+
return sprintf( '<label>%s:</label> %s', $value[0], $value[1] );
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
151 |
}
|
@@ -19,9 +19,15 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
19 |
* @link http://googlegeodevelopers.blogspot.com/2016/06/building-for-scale-updates-to-google.html
|
20 |
* @link https://developers.google.com/maps/documentation/javascript/get-api-key
|
21 |
*/
|
22 |
-
$args
|
23 |
-
$field
|
24 |
-
$google_maps_url = add_query_arg(
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
/**
|
27 |
* Allows developers load more libraries via a filter.
|
@@ -31,7 +37,10 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
31 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
32 |
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
33 |
wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css', array(), RWMB_VER );
|
34 |
-
wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array(
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
/**
|
@@ -43,7 +52,11 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
43 |
* @return string
|
44 |
*/
|
45 |
public static function html( $meta, $field ) {
|
46 |
-
$
|
|
|
|
|
|
|
|
|
47 |
|
48 |
$html .= sprintf(
|
49 |
'<div class="rwmb-map-canvas" data-default-loc="%s" data-region="%s"></div>
|
@@ -54,12 +67,10 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
54 |
esc_attr( $meta )
|
55 |
);
|
56 |
|
57 |
-
|
58 |
-
if ( $address ) {
|
59 |
$html .= sprintf(
|
60 |
-
'<button class="button rwmb-map-goto-address-button"
|
61 |
-
|
62 |
-
esc_html__( 'Find Address', 'meta-box' )
|
63 |
);
|
64 |
}
|
65 |
|
@@ -80,6 +91,7 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
80 |
$field = wp_parse_args( $field, array(
|
81 |
'std' => '',
|
82 |
'address_field' => '',
|
|
|
83 |
'region' => '',
|
84 |
|
85 |
// Default API key, required by Google Maps since June 2016.
|
@@ -112,23 +124,36 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
112 |
* Display Google maps.
|
113 |
*
|
114 |
* @param array $field Field parameters.
|
115 |
-
* @param array $args Additional arguments
|
116 |
* @param int|null $post_id Post ID. null for current post. Optional.
|
117 |
*
|
118 |
-
* @return
|
119 |
*/
|
120 |
public static function the_value( $field, $args = array(), $post_id = null ) {
|
121 |
-
$value =
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
return '';
|
124 |
}
|
125 |
-
if ( ! $value['zoom'] ) {
|
126 |
-
$value['zoom'] = 14;
|
127 |
-
}
|
128 |
|
129 |
$args = wp_parse_args( $args, array(
|
130 |
-
'latitude' => $
|
131 |
-
'longitude' => $
|
132 |
'width' => '100%',
|
133 |
'height' => '480px',
|
134 |
'marker' => true, // Display marker?
|
@@ -138,24 +163,18 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
138 |
|
139 |
// Default API key, required by Google Maps since June 2016.
|
140 |
// Users should overwrite this key with their own key.
|
141 |
-
'api_key'
|
142 |
) );
|
143 |
|
144 |
-
|
145 |
-
* Enqueue scripts.
|
146 |
-
* API key is get from $field (if found by RWMB_Helper::find_field()) or $args as a fallback.
|
147 |
-
* Note: We still can enqueue script which outputs in the footer.
|
148 |
-
*/
|
149 |
-
$api_key = isset( $field['api_key'] ) ? $field['api_key'] : $args['api_key'];
|
150 |
-
$google_maps_url = add_query_arg( 'key', $api_key, 'https://maps.google.com/maps/api/js' );
|
151 |
|
152 |
/*
|
153 |
* Allows developers load more libraries via a filter.
|
154 |
* @link https://developers.google.com/maps/documentation/javascript/libraries
|
155 |
*/
|
156 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
157 |
-
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(),
|
158 |
-
wp_enqueue_script( 'rwmb-map-frontend', RWMB_JS_URL . 'map-frontend.js', array( 'google-maps' ),
|
159 |
|
160 |
/*
|
161 |
* Google Maps options.
|
@@ -165,7 +184,7 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
165 |
*/
|
166 |
$args['js_options'] = wp_parse_args( $args['js_options'], array(
|
167 |
// Default to 'zoom' level set in admin, but can be overwritten.
|
168 |
-
'zoom' => $
|
169 |
|
170 |
// Map type, see https://developers.google.com/maps/documentation/javascript/reference#MapTypeId.
|
171 |
'mapTypeId' => 'ROADMAP',
|
19 |
* @link http://googlegeodevelopers.blogspot.com/2016/06/building-for-scale-updates-to-google.html
|
20 |
* @link https://developers.google.com/maps/documentation/javascript/get-api-key
|
21 |
*/
|
22 |
+
$args = func_get_args();
|
23 |
+
$field = $args[0];
|
24 |
+
$google_maps_url = add_query_arg(
|
25 |
+
array(
|
26 |
+
'key' => $field['api_key'],
|
27 |
+
'language' => $field['language'],
|
28 |
+
),
|
29 |
+
'https://maps.google.com/maps/api/js'
|
30 |
+
);
|
31 |
|
32 |
/**
|
33 |
* Allows developers load more libraries via a filter.
|
37 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
38 |
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
39 |
wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css', array(), RWMB_VER );
|
40 |
+
wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array(
|
41 |
+
'jquery-ui-autocomplete',
|
42 |
+
'google-maps',
|
43 |
+
), RWMB_VER, true );
|
44 |
}
|
45 |
|
46 |
/**
|
52 |
* @return string
|
53 |
*/
|
54 |
public static function html( $meta, $field ) {
|
55 |
+
$address = is_array( $field['address_field'] ) ? implode( ',', $field['address_field'] ) : $field['address_field'];
|
56 |
+
$html = sprintf(
|
57 |
+
'<div class="rwmb-map-field" data-address-field="%s">',
|
58 |
+
esc_attr( $address )
|
59 |
+
);
|
60 |
|
61 |
$html .= sprintf(
|
62 |
'<div class="rwmb-map-canvas" data-default-loc="%s" data-region="%s"></div>
|
67 |
esc_attr( $meta )
|
68 |
);
|
69 |
|
70 |
+
if ( $field['address_field'] ) {
|
|
|
71 |
$html .= sprintf(
|
72 |
+
'<button class="button rwmb-map-goto-address-button">%s</button>',
|
73 |
+
esc_html__( 'Find Address', 'learnpress' )
|
|
|
74 |
);
|
75 |
}
|
76 |
|
91 |
$field = wp_parse_args( $field, array(
|
92 |
'std' => '',
|
93 |
'address_field' => '',
|
94 |
+
'language' => '',
|
95 |
'region' => '',
|
96 |
|
97 |
// Default API key, required by Google Maps since June 2016.
|
124 |
* Display Google maps.
|
125 |
*
|
126 |
* @param array $field Field parameters.
|
127 |
+
* @param array $args Additional arguments for the map.
|
128 |
* @param int|null $post_id Post ID. null for current post. Optional.
|
129 |
*
|
130 |
+
* @return string HTML output of the field
|
131 |
*/
|
132 |
public static function the_value( $field, $args = array(), $post_id = null ) {
|
133 |
+
$value = parent::get_value( $field, $args, $post_id );
|
134 |
+
$args = wp_parse_args( $args, array(
|
135 |
+
'api_key' => isset( $field['api_key'] ) ? $field['api_key'] : '',
|
136 |
+
) );
|
137 |
+
return self::render_map( $value, $args );
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Render a map in the frontend.
|
142 |
+
*
|
143 |
+
* @param array $location The [latitude, longitude[, zoom]] location.
|
144 |
+
* @param array $args Additional arguments for the map.
|
145 |
+
*
|
146 |
+
* @return string
|
147 |
+
*/
|
148 |
+
public static function render_map( $location, $args = array() ) {
|
149 |
+
list( $latitude, $longitude, $zoom ) = explode( ',', $location . ',,' );
|
150 |
+
if ( ! $latitude || ! $longitude ) {
|
151 |
return '';
|
152 |
}
|
|
|
|
|
|
|
153 |
|
154 |
$args = wp_parse_args( $args, array(
|
155 |
+
'latitude' => $latitude,
|
156 |
+
'longitude' => $longitude,
|
157 |
'width' => '100%',
|
158 |
'height' => '480px',
|
159 |
'marker' => true, // Display marker?
|
163 |
|
164 |
// Default API key, required by Google Maps since June 2016.
|
165 |
// Users should overwrite this key with their own key.
|
166 |
+
'api_key' => 'AIzaSyC1mUh87SGFyf133tpZQJa-s96p0tgnraQ',
|
167 |
) );
|
168 |
|
169 |
+
$google_maps_url = add_query_arg( 'key', $args['api_key'], 'https://maps.google.com/maps/api/js' );
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
|
171 |
/*
|
172 |
* Allows developers load more libraries via a filter.
|
173 |
* @link https://developers.google.com/maps/documentation/javascript/libraries
|
174 |
*/
|
175 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
176 |
+
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), RWMB_VER, true );
|
177 |
+
wp_enqueue_script( 'rwmb-map-frontend', RWMB_JS_URL . 'map-frontend.js', array( 'google-maps' ), RWMB_VER, true );
|
178 |
|
179 |
/*
|
180 |
* Google Maps options.
|
184 |
*/
|
185 |
$args['js_options'] = wp_parse_args( $args['js_options'], array(
|
186 |
// Default to 'zoom' level set in admin, but can be overwritten.
|
187 |
+
'zoom' => $zoom,
|
188 |
|
189 |
// Map type, see https://developers.google.com/maps/documentation/javascript/reference#MapTypeId.
|
190 |
'mapTypeId' => 'ROADMAP',
|
@@ -21,18 +21,18 @@ class RWMB_Media_Field extends RWMB_File_Field {
|
|
21 |
wp_enqueue_script( 'rwmb-media', RWMB_JS_URL . 'media.js', array( 'jquery-ui-sortable', 'underscore', 'backbone', 'media-grid' ), RWMB_VER, true );
|
22 |
|
23 |
self::localize_script( 'rwmb-media', 'i18nRwmbMedia', array(
|
24 |
-
'add' => apply_filters( 'rwmb_media_add_string', _x( '+ Add Media', 'media', '
|
25 |
-
'single' => apply_filters( 'rwmb_media_single_files_string', _x( ' file', 'media', '
|
26 |
-
'multiple' => apply_filters( 'rwmb_media_multiple_files_string', _x( ' files', 'media', '
|
27 |
-
'remove' => apply_filters( 'rwmb_media_remove_string', _x( 'Remove', 'media', '
|
28 |
-
'edit' => apply_filters( 'rwmb_media_edit_string', _x( 'Edit', 'media', '
|
29 |
-
'view' => apply_filters( 'rwmb_media_view_string', _x( 'View', 'media', '
|
30 |
-
'noTitle' => _x( 'No Title', 'media', '
|
31 |
-
'loadingUrl' =>
|
32 |
'extensions' => self::get_mime_extensions(),
|
33 |
-
'select' => apply_filters( 'rwmb_media_select_string', _x( 'Select Files', 'media', '
|
34 |
-
'or' => apply_filters( 'rwmb_media_or_string', _x( 'or', 'media', '
|
35 |
-
'uploadInstructions' => apply_filters( 'rwmb_media_upload_instructions_string', _x( 'Drop files here to upload', 'media', '
|
36 |
) );
|
37 |
}
|
38 |
|
@@ -56,11 +56,10 @@ class RWMB_Media_Field extends RWMB_File_Field {
|
|
56 |
public static function html( $meta, $field ) {
|
57 |
$meta = (array) $meta;
|
58 |
$meta = implode( ',', $meta );
|
59 |
-
$attributes = self::
|
60 |
|
61 |
$html = sprintf(
|
62 |
-
'<input %s>
|
63 |
-
<div class="rwmb-media-view" data-options="%s"></div>',
|
64 |
self::render_attributes( $attributes ),
|
65 |
esc_attr( wp_json_encode( $field['js_options'] ) )
|
66 |
);
|
@@ -164,7 +163,8 @@ class RWMB_Media_Field extends RWMB_File_Field {
|
|
164 |
* @param array $field The field parameters.
|
165 |
*/
|
166 |
public static function save( $new, $old, $post_id, $field ) {
|
167 |
-
|
|
|
168 |
parent::save( $new, array(), $post_id, $field );
|
169 |
}
|
170 |
|
21 |
wp_enqueue_script( 'rwmb-media', RWMB_JS_URL . 'media.js', array( 'jquery-ui-sortable', 'underscore', 'backbone', 'media-grid' ), RWMB_VER, true );
|
22 |
|
23 |
self::localize_script( 'rwmb-media', 'i18nRwmbMedia', array(
|
24 |
+
'add' => apply_filters( 'rwmb_media_add_string', _x( '+ Add Media', 'media', 'learnpress' ) ),
|
25 |
+
'single' => apply_filters( 'rwmb_media_single_files_string', _x( ' file', 'media', 'learnpress' ) ),
|
26 |
+
'multiple' => apply_filters( 'rwmb_media_multiple_files_string', _x( ' files', 'media', 'learnpress' ) ),
|
27 |
+
'remove' => apply_filters( 'rwmb_media_remove_string', _x( 'Remove', 'media', 'learnpress' ) ),
|
28 |
+
'edit' => apply_filters( 'rwmb_media_edit_string', _x( 'Edit', 'media', 'learnpress' ) ),
|
29 |
+
'view' => apply_filters( 'rwmb_media_view_string', _x( 'View', 'media', 'learnpress' ) ),
|
30 |
+
'noTitle' => _x( 'No Title', 'media', 'learnpress' ),
|
31 |
+
'loadingUrl' => admin_url( 'images/spinner.gif' ),
|
32 |
'extensions' => self::get_mime_extensions(),
|
33 |
+
'select' => apply_filters( 'rwmb_media_select_string', _x( 'Select Files', 'media', 'learnpress' ) ),
|
34 |
+
'or' => apply_filters( 'rwmb_media_or_string', _x( 'or', 'media', 'learnpress' ) ),
|
35 |
+
'uploadInstructions' => apply_filters( 'rwmb_media_upload_instructions_string', _x( 'Drop files here to upload', 'media', 'learnpress' ) ),
|
36 |
) );
|
37 |
}
|
38 |
|
56 |
public static function html( $meta, $field ) {
|
57 |
$meta = (array) $meta;
|
58 |
$meta = implode( ',', $meta );
|
59 |
+
$attributes = self::call( 'get_attributes', $field, $meta );
|
60 |
|
61 |
$html = sprintf(
|
62 |
+
'<input %s data-options="%s">',
|
|
|
63 |
self::render_attributes( $attributes ),
|
64 |
esc_attr( wp_json_encode( $field['js_options'] ) )
|
65 |
);
|
163 |
* @param array $field The field parameters.
|
164 |
*/
|
165 |
public static function save( $new, $old, $post_id, $field ) {
|
166 |
+
$storage = $field['storage'];
|
167 |
+
$storage->delete( $post_id, $field['id'] );
|
168 |
parent::save( $new, array(), $post_id, $field );
|
169 |
}
|
170 |
|
@@ -34,13 +34,16 @@ abstract class RWMB_Multiple_Values_Field extends RWMB_Field {
|
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
38 |
*
|
39 |
-
* @param array $field Field parameters.
|
40 |
-
* @param string $value The value.
|
41 |
* @return string
|
42 |
*/
|
43 |
-
public static function format_single_value( $field, $value ) {
|
44 |
return $field['options'][ $value ];
|
45 |
}
|
46 |
}
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
38 |
+
*
|
39 |
+
* @param array $field Field parameters.
|
40 |
+
* @param string $value The value.
|
41 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
42 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
43 |
*
|
|
|
|
|
44 |
* @return string
|
45 |
*/
|
46 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
47 |
return $field['options'][ $value ];
|
48 |
}
|
49 |
}
|
@@ -14,7 +14,7 @@ class RWMB_OEmbed_Field extends RWMB_Text_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-oembed', RWMB_CSS_URL . 'oembed.css' );
|
17 |
-
wp_enqueue_script( 'rwmb-oembed', RWMB_JS_URL . 'oembed.js', array(), RWMB_VER, true );
|
18 |
}
|
19 |
|
20 |
/**
|
@@ -61,7 +61,7 @@ class RWMB_OEmbed_Field extends RWMB_Text_Field {
|
|
61 |
$embed = $GLOBALS['wp_embed']->shortcode( $args, $url );
|
62 |
}
|
63 |
|
64 |
-
return $embed ? $embed : __( 'Embed HTML not available.', '
|
65 |
}
|
66 |
|
67 |
/**
|
@@ -73,10 +73,8 @@ class RWMB_OEmbed_Field extends RWMB_Text_Field {
|
|
73 |
*/
|
74 |
public static function html( $meta, $field ) {
|
75 |
return parent::html( $meta, $field ) . sprintf(
|
76 |
-
'<
|
77 |
-
<span class="spinner"></span>
|
78 |
<div class="rwmb-embed-media">%s</div>',
|
79 |
-
esc_html__( 'Preview', 'meta-box' ),
|
80 |
$meta ? self::get_embed( $meta ) : ''
|
81 |
);
|
82 |
}
|
@@ -96,13 +94,16 @@ class RWMB_OEmbed_Field extends RWMB_Text_Field {
|
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
100 |
*
|
101 |
-
* @param array $field Field parameters.
|
102 |
-
* @param string $value Meta value.
|
103 |
* @return string
|
104 |
*/
|
105 |
-
public static function format_single_value( $field, $value ) {
|
106 |
return self::get_embed( $value );
|
107 |
}
|
108 |
}
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-oembed', RWMB_CSS_URL . 'oembed.css' );
|
17 |
+
wp_enqueue_script( 'rwmb-oembed', RWMB_JS_URL . 'oembed.js', array( 'jquery', 'underscore' ), RWMB_VER, true );
|
18 |
}
|
19 |
|
20 |
/**
|
61 |
$embed = $GLOBALS['wp_embed']->shortcode( $args, $url );
|
62 |
}
|
63 |
|
64 |
+
return $embed ? $embed : __( 'Embed HTML not available.', 'learnpress' );
|
65 |
}
|
66 |
|
67 |
/**
|
73 |
*/
|
74 |
public static function html( $meta, $field ) {
|
75 |
return parent::html( $meta, $field ) . sprintf(
|
76 |
+
'<span class="spinner"></span>
|
|
|
77 |
<div class="rwmb-embed-media">%s</div>',
|
|
|
78 |
$meta ? self::get_embed( $meta ) : ''
|
79 |
);
|
80 |
}
|
94 |
}
|
95 |
|
96 |
/**
|
97 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
98 |
+
*
|
99 |
+
* @param array $field Field parameters.
|
100 |
+
* @param string $value The value.
|
101 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
102 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
103 |
*
|
|
|
|
|
104 |
* @return string
|
105 |
*/
|
106 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
107 |
return self::get_embed( $value );
|
108 |
}
|
109 |
}
|
@@ -13,7 +13,6 @@ class RWMB_Post_Field extends RWMB_Object_Choice_Field {
|
|
13 |
* Normalize parameters for field.
|
14 |
*
|
15 |
* @param array $field Field parameters.
|
16 |
-
*
|
17 |
* @return array
|
18 |
*/
|
19 |
public static function normalize( $field ) {
|
@@ -34,12 +33,12 @@ class RWMB_Post_Field extends RWMB_Object_Choice_Field {
|
|
34 |
* - If single post type: show 'Select a %post_type_name%'.
|
35 |
*/
|
36 |
if ( empty( $field['placeholder'] ) ) {
|
37 |
-
$field['placeholder'] = __( 'Select a post', '
|
38 |
if ( is_string( $field['query_args']['post_type'] ) && post_type_exists( $field['query_args']['post_type'] ) ) {
|
39 |
$post_type_object = get_post_type_object( $field['query_args']['post_type'] );
|
40 |
|
41 |
// Translators: %s is the post type singular label.
|
42 |
-
$field['placeholder'] = sprintf( __( 'Select a %s', '
|
43 |
}
|
44 |
}
|
45 |
|
@@ -78,39 +77,31 @@ class RWMB_Post_Field extends RWMB_Object_Choice_Field {
|
|
78 |
*
|
79 |
* @see "save" method for better understanding
|
80 |
*
|
81 |
-
* @param int
|
82 |
-
* @param bool
|
83 |
-
* @param array $field
|
84 |
*
|
85 |
* @return mixed
|
86 |
*/
|
87 |
public static function meta( $post_id, $saved, $field ) {
|
88 |
-
|
89 |
-
$post = get_post( $post_id );
|
90 |
-
|
91 |
-
return $post->post_parent;
|
92 |
-
}
|
93 |
-
|
94 |
-
return parent::meta( $post_id, $saved, $field );
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
* Get options for walker.
|
99 |
*
|
100 |
* @param array $field Field parameters.
|
101 |
-
*
|
102 |
* @return array
|
103 |
*/
|
104 |
public static function get_options( $field ) {
|
105 |
$query = new WP_Query( $field['query_args'] );
|
106 |
-
|
107 |
return $query->have_posts() ? $query->posts : array();
|
108 |
}
|
109 |
|
110 |
/**
|
111 |
* Get option label.
|
112 |
*
|
113 |
-
* @param array
|
114 |
* @param string $value Option value.
|
115 |
*
|
116 |
* @return string
|
@@ -126,22 +117,4 @@ class RWMB_Post_Field extends RWMB_Object_Choice_Field {
|
|
126 |
get_the_title( $value )
|
127 |
);
|
128 |
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* Display field description.
|
132 |
-
*
|
133 |
-
* @param array $field
|
134 |
-
*
|
135 |
-
* @return string
|
136 |
-
*/
|
137 |
-
protected static function input_description( $field ) {
|
138 |
-
|
139 |
-
$id = $field['id'] ? ' id="' . esc_attr( $field['id'] ) . '-description"' : '';
|
140 |
-
|
141 |
-
if ( ! sizeof( self::get_options( $field ) ) ) {
|
142 |
-
return $field['desc_none'] ? "<p{$id} class='description'>{$field['desc_none']}</p>" : '';
|
143 |
-
}
|
144 |
-
|
145 |
-
return $field['desc'] ? "<p{$id} class='description'>{$field['desc']}</p>" : '';
|
146 |
-
}
|
147 |
}
|
13 |
* Normalize parameters for field.
|
14 |
*
|
15 |
* @param array $field Field parameters.
|
|
|
16 |
* @return array
|
17 |
*/
|
18 |
public static function normalize( $field ) {
|
33 |
* - If single post type: show 'Select a %post_type_name%'.
|
34 |
*/
|
35 |
if ( empty( $field['placeholder'] ) ) {
|
36 |
+
$field['placeholder'] = __( 'Select a post', 'learnpress' );
|
37 |
if ( is_string( $field['query_args']['post_type'] ) && post_type_exists( $field['query_args']['post_type'] ) ) {
|
38 |
$post_type_object = get_post_type_object( $field['query_args']['post_type'] );
|
39 |
|
40 |
// Translators: %s is the post type singular label.
|
41 |
+
$field['placeholder'] = sprintf( __( 'Select a %s', 'learnpress' ), $post_type_object->labels->singular_name );
|
42 |
}
|
43 |
}
|
44 |
|
77 |
*
|
78 |
* @see "save" method for better understanding
|
79 |
*
|
80 |
+
* @param int $post_id Post ID.
|
81 |
+
* @param bool $saved Is the meta box saved.
|
82 |
+
* @param array $field Field parameters.
|
83 |
*
|
84 |
* @return mixed
|
85 |
*/
|
86 |
public static function meta( $post_id, $saved, $field ) {
|
87 |
+
return $field['parent'] ? wp_get_post_parent_id( $post_id ) : parent::meta( $post_id, $saved, $field );
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
* Get options for walker.
|
92 |
*
|
93 |
* @param array $field Field parameters.
|
|
|
94 |
* @return array
|
95 |
*/
|
96 |
public static function get_options( $field ) {
|
97 |
$query = new WP_Query( $field['query_args'] );
|
|
|
98 |
return $query->have_posts() ? $query->posts : array();
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
* Get option label.
|
103 |
*
|
104 |
+
* @param array $field Field parameters.
|
105 |
* @param string $value Option value.
|
106 |
*
|
107 |
* @return string
|
117 |
get_the_title( $value )
|
118 |
);
|
119 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
}
|
@@ -42,7 +42,7 @@ class RWMB_Select_Advanced_Field extends RWMB_Select_Field {
|
|
42 |
public static function normalize( $field ) {
|
43 |
$field = wp_parse_args( $field, array(
|
44 |
'js_options' => array(),
|
45 |
-
'placeholder' => __( 'Select an item', '
|
46 |
) );
|
47 |
|
48 |
$field = parent::normalize( $field );
|
42 |
public static function normalize( $field ) {
|
43 |
$field = wp_parse_args( $field, array(
|
44 |
'js_options' => array(),
|
45 |
+
'placeholder' => __( 'Select an item', 'learnpress' ),
|
46 |
) );
|
47 |
|
48 |
$field = parent::normalize( $field );
|
@@ -84,7 +84,7 @@ class RWMB_Select_Field extends RWMB_Choice_Field {
|
|
84 |
*/
|
85 |
public static function get_select_all_html( $field ) {
|
86 |
if ( $field['multiple'] && $field['select_all_none'] ) {
|
87 |
-
return '<div class="rwmb-select-all-none">' . __( 'Select', '
|
88 |
}
|
89 |
return '';
|
90 |
}
|
84 |
*/
|
85 |
public static function get_select_all_html( $field ) {
|
86 |
if ( $field['multiple'] && $field['select_all_none'] ) {
|
87 |
+
return '<div class="rwmb-select-all-none">' . __( 'Select', 'learnpress' ) . ': <a data-type="all" href="#">' . __( 'All', 'learnpress' ) . '</a> | <a data-type="none" href="#">' . __( 'None', 'learnpress' ) . '</a></div>';
|
88 |
}
|
89 |
return '';
|
90 |
}
|
@@ -55,7 +55,7 @@ class RWMB_Slider_Field extends RWMB_Field {
|
|
55 |
$field = wp_parse_args( $field, array(
|
56 |
'prefix' => '',
|
57 |
'suffix' => '',
|
58 |
-
'std'
|
59 |
'js_options' => array(),
|
60 |
) );
|
61 |
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
55 |
$field = wp_parse_args( $field, array(
|
56 |
'prefix' => '',
|
57 |
'suffix' => '',
|
58 |
+
'std' => '',
|
59 |
'js_options' => array(),
|
60 |
) );
|
61 |
$field['js_options'] = wp_parse_args( $field['js_options'], array(
|
@@ -52,10 +52,12 @@ class RWMB_Taxonomy_Advanced_Field extends RWMB_Taxonomy_Field {
|
|
52 |
* @param array $field The field parameters.
|
53 |
*/
|
54 |
public static function save( $new, $old, $post_id, $field ) {
|
|
|
|
|
55 |
if ( $new ) {
|
56 |
-
|
57 |
} else {
|
58 |
-
|
59 |
}
|
60 |
}
|
61 |
|
@@ -75,9 +77,10 @@ class RWMB_Taxonomy_Advanced_Field extends RWMB_Taxonomy_Field {
|
|
75 |
if ( empty( $meta ) ) {
|
76 |
return $field['multiple'] ? array() : '';
|
77 |
}
|
78 |
-
$meta =
|
|
|
79 |
|
80 |
-
return $
|
81 |
}
|
82 |
|
83 |
/**
|
@@ -91,27 +94,40 @@ class RWMB_Taxonomy_Advanced_Field extends RWMB_Taxonomy_Field {
|
|
91 |
* @return array List of post term objects.
|
92 |
*/
|
93 |
public static function get_value( $field, $args = array(), $post_id = null ) {
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
-
$value
|
99 |
-
|
100 |
-
return null;
|
101 |
-
}
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
'hide_empty' => false,
|
107 |
), $args );
|
108 |
-
$value = get_terms( $field['taxonomy'], $args );
|
109 |
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
}
|
114 |
-
|
115 |
-
return $value;
|
116 |
}
|
117 |
}
|
52 |
* @param array $field The field parameters.
|
53 |
*/
|
54 |
public static function save( $new, $old, $post_id, $field ) {
|
55 |
+
$storage = $field['storage'];
|
56 |
+
|
57 |
if ( $new ) {
|
58 |
+
$storage->update( $post_id, $field['id'], $new );
|
59 |
} else {
|
60 |
+
$storage->delete( $post_id, $field['id'] );
|
61 |
}
|
62 |
}
|
63 |
|
77 |
if ( empty( $meta ) ) {
|
78 |
return $field['multiple'] ? array() : '';
|
79 |
}
|
80 |
+
$meta = is_array( $meta ) ? array_map( 'wp_parse_id_list', $meta ) : wp_parse_id_list( $meta );
|
81 |
+
$meta = array_filter( $meta );
|
82 |
|
83 |
+
return $meta;
|
84 |
}
|
85 |
|
86 |
/**
|
94 |
* @return array List of post term objects.
|
95 |
*/
|
96 |
public static function get_value( $field, $args = array(), $post_id = null ) {
|
97 |
+
$value = RWMB_Field::get_value( $field, $args, $post_id );
|
98 |
+
if ( ! $field['clone'] ) {
|
99 |
+
$value = self::call( 'terms_info', $field, $value, $args );
|
100 |
+
} else {
|
101 |
+
$return = array();
|
102 |
+
foreach ( $value as $subvalue ) {
|
103 |
+
$return[] = self::call( 'terms_info', $field, $subvalue, $args );
|
104 |
+
}
|
105 |
+
$value = $return;
|
106 |
}
|
107 |
|
108 |
+
return $value;
|
109 |
+
}
|
|
|
|
|
110 |
|
111 |
+
/**
|
112 |
+
* Get terms information.
|
113 |
+
*
|
114 |
+
* @param array $field Field parameters.
|
115 |
+
* @param string $term_ids Term IDs, in CSV format.
|
116 |
+
* @param array $args Additional arguments (for image size).
|
117 |
+
*
|
118 |
+
* @return array
|
119 |
+
*/
|
120 |
+
public static function terms_info( $field, $term_ids, $args ) {
|
121 |
+
if ( empty( $term_ids ) ) {
|
122 |
+
return array();
|
123 |
+
}
|
124 |
+
$args = wp_parse_args( array(
|
125 |
+
'include' => $term_ids,
|
126 |
'hide_empty' => false,
|
127 |
), $args );
|
|
|
128 |
|
129 |
+
$info = get_terms( $field['taxonomy'], $args );
|
130 |
+
$info = is_array( $info ) ? $info : array();
|
131 |
+
return $field['multiple'] ? $info : reset( $info );
|
|
|
|
|
|
|
132 |
}
|
133 |
}
|
@@ -30,9 +30,12 @@ class RWMB_Taxonomy_Field extends RWMB_Object_Choice_Field {
|
|
30 |
// Set default field args.
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
-
'taxonomy'
|
34 |
) );
|
35 |
|
|
|
|
|
|
|
36 |
// Set default query args.
|
37 |
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
38 |
'hide_empty' => false,
|
@@ -44,12 +47,12 @@ class RWMB_Taxonomy_Field extends RWMB_Object_Choice_Field {
|
|
44 |
* - If single taxonomy: show 'Select a %taxonomy_name%'.
|
45 |
*/
|
46 |
if ( empty( $field['placeholder'] ) ) {
|
47 |
-
$field['placeholder'] = __( 'Select a term', '
|
48 |
if ( is_string( $field['taxonomy'] ) && taxonomy_exists( $field['taxonomy'] ) ) {
|
49 |
$taxonomy_object = get_taxonomy( $field['taxonomy'] );
|
50 |
|
51 |
// Translators: %s is the taxonomy singular label.
|
52 |
-
$field['placeholder'] = sprintf( __( 'Select a %s', '
|
53 |
}
|
54 |
}
|
55 |
|
@@ -95,7 +98,10 @@ class RWMB_Taxonomy_Field extends RWMB_Object_Choice_Field {
|
|
95 |
public static function save( $new, $old, $post_id, $field ) {
|
96 |
$new = array_unique( array_map( 'intval', (array) $new ) );
|
97 |
$new = empty( $new ) ? null : $new;
|
98 |
-
|
|
|
|
|
|
|
99 |
}
|
100 |
|
101 |
/**
|
@@ -112,12 +118,7 @@ class RWMB_Taxonomy_Field extends RWMB_Object_Choice_Field {
|
|
112 |
return '';
|
113 |
}
|
114 |
|
115 |
-
$meta =
|
116 |
-
|
117 |
-
if ( ! is_array( $meta ) || empty( $meta ) ) {
|
118 |
-
return $field['multiple'] ? array() : '';
|
119 |
-
}
|
120 |
-
|
121 |
$meta = wp_list_pluck( $meta, 'term_id' );
|
122 |
|
123 |
return $field['multiple'] ? $meta : reset( $meta );
|
@@ -134,7 +135,7 @@ class RWMB_Taxonomy_Field extends RWMB_Object_Choice_Field {
|
|
134 |
* @return array List of post term objects.
|
135 |
*/
|
136 |
public static function get_value( $field, $args = array(), $post_id = null ) {
|
137 |
-
$value =
|
138 |
|
139 |
// Get single value if necessary.
|
140 |
if ( ! $field['clone'] && ! $field['multiple'] && is_array( $value ) ) {
|
30 |
// Set default field args.
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
+
'taxonomy' => 'category',
|
34 |
) );
|
35 |
|
36 |
+
// Force taxonomy to be an array.
|
37 |
+
$field['taxonomy'] = (array) $field['taxonomy'];
|
38 |
+
|
39 |
// Set default query args.
|
40 |
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
41 |
'hide_empty' => false,
|
47 |
* - If single taxonomy: show 'Select a %taxonomy_name%'.
|
48 |
*/
|
49 |
if ( empty( $field['placeholder'] ) ) {
|
50 |
+
$field['placeholder'] = __( 'Select a term', 'learnpress' );
|
51 |
if ( is_string( $field['taxonomy'] ) && taxonomy_exists( $field['taxonomy'] ) ) {
|
52 |
$taxonomy_object = get_taxonomy( $field['taxonomy'] );
|
53 |
|
54 |
// Translators: %s is the taxonomy singular label.
|
55 |
+
$field['placeholder'] = sprintf( __( 'Select a %s', 'learnpress' ), $taxonomy_object->labels->singular_name );
|
56 |
}
|
57 |
}
|
58 |
|
98 |
public static function save( $new, $old, $post_id, $field ) {
|
99 |
$new = array_unique( array_map( 'intval', (array) $new ) );
|
100 |
$new = empty( $new ) ? null : $new;
|
101 |
+
|
102 |
+
foreach ( $field['taxonomy'] as $taxonomy ) {
|
103 |
+
wp_set_object_terms( $post_id, $new, $taxonomy );
|
104 |
+
}
|
105 |
}
|
106 |
|
107 |
/**
|
118 |
return '';
|
119 |
}
|
120 |
|
121 |
+
$meta = wp_get_object_terms( $object_id, $field['taxonomy'] );
|
|
|
|
|
|
|
|
|
|
|
122 |
$meta = wp_list_pluck( $meta, 'term_id' );
|
123 |
|
124 |
return $field['multiple'] ? $meta : reset( $meta );
|
135 |
* @return array List of post term objects.
|
136 |
*/
|
137 |
public static function get_value( $field, $args = array(), $post_id = null ) {
|
138 |
+
$value = wp_get_object_terms( $post_id, $field['taxonomy'] );
|
139 |
|
140 |
// Get single value if necessary.
|
141 |
if ( ! $field['clone'] && ! $field['multiple'] && is_array( $value ) ) {
|
@@ -22,16 +22,18 @@ class RWMB_Text_List_Field extends RWMB_Multiple_Values_Field {
|
|
22 |
$input = '<label><input type="text" class="rwmb-text-list" name="%s" value="%s" placeholder="%s"> %s</label>';
|
23 |
|
24 |
$count = 0;
|
25 |
-
|
26 |
-
$
|
27 |
-
$
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
35 |
|
36 |
return implode( ' ', $html );
|
37 |
}
|
@@ -39,22 +41,25 @@ class RWMB_Text_List_Field extends RWMB_Multiple_Values_Field {
|
|
39 |
/**
|
40 |
* Format value for the helper functions.
|
41 |
*
|
42 |
-
* @param array $field
|
43 |
-
* @param string|array $value
|
|
|
|
|
|
|
44 |
* @return string
|
45 |
*/
|
46 |
-
public static function format_value( $field, $value ) {
|
47 |
$output = '<table><thead><tr>';
|
48 |
foreach ( $field['options'] as $label ) {
|
49 |
$output .= "<th>$label</th>";
|
50 |
}
|
51 |
-
$output .= '
|
52 |
|
53 |
if ( ! $field['clone'] ) {
|
54 |
-
$output .= self::format_single_value( $field, $value );
|
55 |
} else {
|
56 |
foreach ( $value as $subvalue ) {
|
57 |
-
$output .= self::format_single_value( $field, $subvalue );
|
58 |
}
|
59 |
}
|
60 |
$output .= '</tbody></table>';
|
@@ -62,13 +67,16 @@ class RWMB_Text_List_Field extends RWMB_Multiple_Values_Field {
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Format a single value for the helper functions.
|
|
|
|
|
|
|
|
|
|
|
66 |
*
|
67 |
-
* @param array $field Field parameters.
|
68 |
-
* @param array $value The value.
|
69 |
* @return string
|
70 |
*/
|
71 |
-
public static function format_single_value( $field, $value ) {
|
72 |
$output = '<tr>';
|
73 |
foreach ( $value as $subvalue ) {
|
74 |
$output .= "<td>$subvalue</td>";
|
@@ -86,7 +94,8 @@ class RWMB_Text_List_Field extends RWMB_Multiple_Values_Field {
|
|
86 |
* @param array $field The field parameters.
|
87 |
*/
|
88 |
public static function save( $new, $old, $post_id, $field ) {
|
89 |
-
|
|
|
90 |
parent::save( $new, array(), $post_id, $field );
|
91 |
}
|
92 |
}
|
22 |
$input = '<label><input type="text" class="rwmb-text-list" name="%s" value="%s" placeholder="%s"> %s</label>';
|
23 |
|
24 |
$count = 0;
|
25 |
+
if ( ! empty( $field['options'] ) ) :
|
26 |
+
foreach ( $field['options'] as $placeholder => $label ) {
|
27 |
+
$html[] = sprintf(
|
28 |
+
$input,
|
29 |
+
$field['field_name'],
|
30 |
+
isset( $meta[ $count ] ) ? esc_attr( $meta[ $count ] ) : '',
|
31 |
+
$placeholder,
|
32 |
+
$label
|
33 |
+
);
|
34 |
+
$count ++;
|
35 |
+
}
|
36 |
+
endif;
|
37 |
|
38 |
return implode( ' ', $html );
|
39 |
}
|
41 |
/**
|
42 |
* Format value for the helper functions.
|
43 |
*
|
44 |
+
* @param array $field Field parameters.
|
45 |
+
* @param string|array $value The field meta value.
|
46 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
47 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
48 |
+
*
|
49 |
* @return string
|
50 |
*/
|
51 |
+
public static function format_value( $field, $value, $args, $post_id ) {
|
52 |
$output = '<table><thead><tr>';
|
53 |
foreach ( $field['options'] as $label ) {
|
54 |
$output .= "<th>$label</th>";
|
55 |
}
|
56 |
+
$output .= '</tr></thead><tbody>';
|
57 |
|
58 |
if ( ! $field['clone'] ) {
|
59 |
+
$output .= self::format_single_value( $field, $value, $args, $post_id );
|
60 |
} else {
|
61 |
foreach ( $value as $subvalue ) {
|
62 |
+
$output .= self::format_single_value( $field, $subvalue, $args, $post_id );
|
63 |
}
|
64 |
}
|
65 |
$output .= '</tbody></table>';
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
+
* Format a single value for the helper functions. Sub-fields should overwrite this method if necessary.
|
71 |
+
*
|
72 |
+
* @param array $field Field parameters.
|
73 |
+
* @param array $value The value.
|
74 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
75 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
76 |
*
|
|
|
|
|
77 |
* @return string
|
78 |
*/
|
79 |
+
public static function format_single_value( $field, $value, $args, $post_id ) {
|
80 |
$output = '<tr>';
|
81 |
foreach ( $value as $subvalue ) {
|
82 |
$output .= "<td>$subvalue</td>";
|
94 |
* @param array $field The field parameters.
|
95 |
*/
|
96 |
public static function save( $new, $old, $post_id, $field ) {
|
97 |
+
$storage = $field['storage'];
|
98 |
+
$storage->delete( $post_id, $field['id'] );
|
99 |
parent::save( $new, array(), $post_id, $field );
|
100 |
}
|
101 |
}
|
@@ -45,11 +45,12 @@ class RWMB_Textarea_Field extends RWMB_Field {
|
|
45 |
public static function normalize( $field ) {
|
46 |
$field = parent::normalize( $field );
|
47 |
$field = wp_parse_args( $field, array(
|
48 |
-
'
|
49 |
-
'
|
50 |
-
'
|
51 |
-
'
|
52 |
-
'
|
|
|
53 |
) );
|
54 |
|
55 |
return $field;
|
@@ -66,12 +67,13 @@ class RWMB_Textarea_Field extends RWMB_Field {
|
|
66 |
public static function get_attributes( $field, $value = null ) {
|
67 |
$attributes = parent::get_attributes( $field, $value );
|
68 |
$attributes = wp_parse_args( $attributes, array(
|
69 |
-
'
|
70 |
-
'
|
71 |
-
'
|
72 |
-
'
|
73 |
-
'
|
74 |
-
'
|
|
|
75 |
) );
|
76 |
$attributes['class'] .= ' large-text';
|
77 |
|
45 |
public static function normalize( $field ) {
|
46 |
$field = parent::normalize( $field );
|
47 |
$field = wp_parse_args( $field, array(
|
48 |
+
'autocomplete' => false,
|
49 |
+
'cols' => 60,
|
50 |
+
'rows' => 3,
|
51 |
+
'maxlength' => false,
|
52 |
+
'wrap' => false,
|
53 |
+
'readonly' => false,
|
54 |
) );
|
55 |
|
56 |
return $field;
|
67 |
public static function get_attributes( $field, $value = null ) {
|
68 |
$attributes = parent::get_attributes( $field, $value );
|
69 |
$attributes = wp_parse_args( $attributes, array(
|
70 |
+
'autocomplete' => $field['autocomplete'],
|
71 |
+
'cols' => $field['cols'],
|
72 |
+
'rows' => $field['rows'],
|
73 |
+
'maxlength' => $field['maxlength'],
|
74 |
+
'wrap' => $field['wrap'],
|
75 |
+
'readonly' => $field['readonly'],
|
76 |
+
'placeholder' => $field['placeholder'],
|
77 |
) );
|
78 |
$attributes['class'] .= ' large-text';
|
79 |
|
@@ -1,80 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Image upload field which uses thickbox library to upload.
|
4 |
-
*
|
5 |
-
* @package Meta Box
|
6 |
-
* @deprecated Use image_advanced instead
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* The thickbox image field class.
|
11 |
-
*/
|
12 |
-
class RWMB_Thickbox_Image_Field extends RWMB_Image_Field {
|
13 |
-
/**
|
14 |
-
* Add custom actions for the field.
|
15 |
-
*/
|
16 |
-
public static function add_actions() {
|
17 |
-
parent::add_actions();
|
18 |
-
add_filter( 'get_media_item_args', array( __CLASS__, 'allow_img_insertion' ) );
|
19 |
-
}
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Always enable insert to post button in the popup.
|
23 |
-
*
|
24 |
-
* @link https://github.com/rilwis/meta-box/issues/809
|
25 |
-
* @link http://wordpress.stackexchange.com/q/22175/2051
|
26 |
-
* @param array $vars Media item arguments in the popup.
|
27 |
-
* @return array
|
28 |
-
*/
|
29 |
-
public static function allow_img_insertion( $vars ) {
|
30 |
-
$vars['send'] = true; // 'send' as in "Send to Editor".
|
31 |
-
return $vars;
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Enqueue scripts and styles.
|
36 |
-
*/
|
37 |
-
public static function admin_enqueue_scripts() {
|
38 |
-
parent::admin_enqueue_scripts();
|
39 |
-
|
40 |
-
add_thickbox();
|
41 |
-
wp_enqueue_script( 'media-upload' );
|
42 |
-
|
43 |
-
wp_enqueue_script( 'rwmb-thickbox-image', RWMB_JS_URL . 'thickbox-image.js', array( 'jquery' ), RWMB_VER, true );
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Get field HTML.
|
48 |
-
*
|
49 |
-
* @param mixed $meta Meta value.
|
50 |
-
* @param array $field Field parameters.
|
51 |
-
*
|
52 |
-
* @return string
|
53 |
-
*/
|
54 |
-
public static function html( $meta, $field ) {
|
55 |
-
$i18n_title = apply_filters( 'rwmb_thickbox_image_upload_string', _x( 'Upload Images', 'image upload', 'meta-box' ), $field );
|
56 |
-
|
57 |
-
// Uploaded images.
|
58 |
-
$html = parent::get_uploaded_files( $meta, $field );
|
59 |
-
|
60 |
-
// Show form upload.
|
61 |
-
$html .= "<a href='#' class='button rwmb-thickbox-upload' data-field_id='{$field['id']}'>{$i18n_title}</a>";
|
62 |
-
|
63 |
-
return $html;
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* Get field value.
|
68 |
-
* It's the combination of new (uploaded) images and saved images.
|
69 |
-
*
|
70 |
-
* @param mixed $new The submitted meta value.
|
71 |
-
* @param mixed $old The existing meta value.
|
72 |
-
* @param int $post_id The post ID.
|
73 |
-
* @param array $field The field parameters.
|
74 |
-
*
|
75 |
-
* @return array
|
76 |
-
*/
|
77 |
-
public static function value( $new, $old, $post_id, $field ) {
|
78 |
-
return array_filter( array_unique( array_merge( (array) $old, (array) $new ) ) );
|
79 |
-
}
|
80 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -27,7 +27,7 @@ class RWMB_User_Field extends RWMB_Object_Choice_Field {
|
|
27 |
$field['flatten'] = true;
|
28 |
|
29 |
// Set default placeholder.
|
30 |
-
$field['placeholder'] = empty( $field['placeholder'] ) ? __( 'Select an user', '
|
31 |
|
32 |
// Set default query args.
|
33 |
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
27 |
$field['flatten'] = true;
|
28 |
|
29 |
// Set default placeholder.
|
30 |
+
$field['placeholder'] = empty( $field['placeholder'] ) ? __( 'Select an user', 'learnpress' ) : $field['placeholder'];
|
31 |
|
32 |
// Set default query args.
|
33 |
$field['query_args'] = wp_parse_args( $field['query_args'], array(
|
@@ -3,7 +3,7 @@
|
|
3 |
* Video field which uses WordPress media popup to upload and select video.
|
4 |
*
|
5 |
* @package Meta Box
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
/**
|
@@ -40,7 +40,7 @@ class RWMB_Video_Field extends RWMB_Media_Field {
|
|
40 |
* Get uploaded file information.
|
41 |
*
|
42 |
* @param int $file_id Attachment image ID (post ID). Required.
|
43 |
-
* @param array $args
|
44 |
*
|
45 |
* @return array|bool False if file not found. Array of image info on success.
|
46 |
*/
|
@@ -100,16 +100,29 @@ class RWMB_Video_Field extends RWMB_Media_Field {
|
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
-
* Format
|
104 |
*
|
105 |
-
* @param array
|
106 |
-
* @param array $value
|
|
|
|
|
107 |
*
|
108 |
* @return string
|
109 |
*/
|
110 |
-
public static function
|
111 |
$ids = implode( ',', wp_list_pluck( $value, 'ID' ) );
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
return wp_playlist_shortcode( array(
|
114 |
'ids' => $ids,
|
115 |
'type' => 'video',
|
3 |
* Video field which uses WordPress media popup to upload and select video.
|
4 |
*
|
5 |
* @package Meta Box
|
6 |
+
* @since 4.10
|
7 |
*/
|
8 |
|
9 |
/**
|
40 |
* Get uploaded file information.
|
41 |
*
|
42 |
* @param int $file_id Attachment image ID (post ID). Required.
|
43 |
+
* @param array $args Array of arguments (for size).
|
44 |
*
|
45 |
* @return array|bool False if file not found. Array of image info on success.
|
46 |
*/
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
+
* Format value for a clone.
|
104 |
*
|
105 |
+
* @param array $field Field parameters.
|
106 |
+
* @param string|array $value The field meta value.
|
107 |
+
* @param array $args Additional arguments. Rarely used. See specific fields for details.
|
108 |
+
* @param int|null $post_id Post ID. null for current post. Optional.
|
109 |
*
|
110 |
* @return string
|
111 |
*/
|
112 |
+
public static function format_clone_value( $field, $value, $args, $post_id ) {
|
113 |
$ids = implode( ',', wp_list_pluck( $value, 'ID' ) );
|
114 |
|
115 |
+
// Display single video.
|
116 |
+
if ( 1 === count( $value ) ) {
|
117 |
+
$video = reset( $value );
|
118 |
+
return wp_video_shortcode( array(
|
119 |
+
'src' => $video['src'],
|
120 |
+
'width' => $video['dimensions']['width'],
|
121 |
+
'height' => $video['dimensions']['height'],
|
122 |
+
) );
|
123 |
+
}
|
124 |
+
|
125 |
+
// Display multiple videos in a playlist.
|
126 |
return wp_playlist_shortcode( array(
|
127 |
'ids' => $ids,
|
128 |
'type' => 'video',
|
@@ -34,7 +34,7 @@ class RWMB_Wysiwyg_Field extends RWMB_Field {
|
|
34 |
* @return string
|
35 |
*/
|
36 |
public static function value( $new, $old, $post_id, $field ) {
|
37 |
-
return
|
38 |
}
|
39 |
|
40 |
/**
|
34 |
* @return string
|
35 |
*/
|
36 |
public static function value( $new, $old, $post_id, $field ) {
|
37 |
+
return $field['raw'] ? $new : wpautop( $new );
|
38 |
}
|
39 |
|
40 |
/**
|
@@ -17,7 +17,7 @@ if ( ! function_exists( 'rwmb_meta' ) ) {
|
|
17 |
*/
|
18 |
function rwmb_meta( $key, $args = array(), $post_id = null ) {
|
19 |
$args = wp_parse_args( $args );
|
20 |
-
$field =
|
21 |
|
22 |
/*
|
23 |
* If field is not found, which can caused by registering meta boxes for the backend only or conditional registration.
|
@@ -33,9 +33,9 @@ if ( ! function_exists( 'rwmb_meta' ) ) {
|
|
33 |
}
|
34 |
}
|
35 |
|
36 |
-
if ( ! function_exists( '
|
37 |
/**
|
38 |
-
* Get field
|
39 |
*
|
40 |
* @param string $key Meta key. Required.
|
41 |
* @param array $args Array of arguments. Optional.
|
@@ -43,7 +43,7 @@ if ( ! function_exists( 'rwmb_get_field_data' ) ) {
|
|
43 |
*
|
44 |
* @return array
|
45 |
*/
|
46 |
-
function
|
47 |
$args = wp_parse_args( $args, array(
|
48 |
'object_type' => 'post',
|
49 |
) );
|
@@ -115,7 +115,7 @@ if ( ! function_exists( 'rwmb_get_value' ) ) {
|
|
115 |
*/
|
116 |
function rwmb_get_value( $field_id, $args = array(), $post_id = null ) {
|
117 |
$args = wp_parse_args( $args );
|
118 |
-
$field =
|
119 |
|
120 |
// Get field value.
|
121 |
$value = $field ? RWMB_Field::call( 'get_value', $field, $args, $post_id ) : false;
|
@@ -148,7 +148,7 @@ if ( ! function_exists( 'rwmb_the_value' ) ) {
|
|
148 |
*/
|
149 |
function rwmb_the_value( $field_id, $args = array(), $post_id = null, $echo = true ) {
|
150 |
$args = wp_parse_args( $args );
|
151 |
-
$field =
|
152 |
|
153 |
if ( ! $field ) {
|
154 |
return '';
|
@@ -217,7 +217,7 @@ if ( ! function_exists( 'rwmb_get_registry' ) ) {
|
|
217 |
$class = 'RWMB_' . ucwords( $type ) . '_Registry';
|
218 |
$class = str_replace( ' ', '_', $class );
|
219 |
if ( ! isset( $data[ $type ] ) ) {
|
220 |
-
$data[ $type ] = new $class;
|
221 |
}
|
222 |
|
223 |
return $data[ $type ];
|
@@ -249,12 +249,34 @@ if ( ! function_exists( 'rwmb_get_storage' ) ) {
|
|
249 |
/**
|
250 |
* Get storage instance.
|
251 |
*
|
252 |
-
* @param string
|
|
|
253 |
* @return RWMB_Storage_Interface
|
254 |
*/
|
255 |
-
function rwmb_get_storage( $object_type ) {
|
256 |
$class_name = rwmb_get_storage_class_name( $object_type );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
-
return
|
259 |
}
|
260 |
}
|
17 |
*/
|
18 |
function rwmb_meta( $key, $args = array(), $post_id = null ) {
|
19 |
$args = wp_parse_args( $args );
|
20 |
+
$field = rwmb_get_field_settings( $key, $args, $post_id );
|
21 |
|
22 |
/*
|
23 |
* If field is not found, which can caused by registering meta boxes for the backend only or conditional registration.
|
33 |
}
|
34 |
}
|
35 |
|
36 |
+
if ( ! function_exists( 'rwmb_get_field_settings' ) ) {
|
37 |
/**
|
38 |
+
* Get field settings.
|
39 |
*
|
40 |
* @param string $key Meta key. Required.
|
41 |
* @param array $args Array of arguments. Optional.
|
43 |
*
|
44 |
* @return array
|
45 |
*/
|
46 |
+
function rwmb_get_field_settings( $key, $args = array(), $object_id = null ) {
|
47 |
$args = wp_parse_args( $args, array(
|
48 |
'object_type' => 'post',
|
49 |
) );
|
115 |
*/
|
116 |
function rwmb_get_value( $field_id, $args = array(), $post_id = null ) {
|
117 |
$args = wp_parse_args( $args );
|
118 |
+
$field = rwmb_get_field_settings( $field_id, $args, $post_id );
|
119 |
|
120 |
// Get field value.
|
121 |
$value = $field ? RWMB_Field::call( 'get_value', $field, $args, $post_id ) : false;
|
148 |
*/
|
149 |
function rwmb_the_value( $field_id, $args = array(), $post_id = null, $echo = true ) {
|
150 |
$args = wp_parse_args( $args );
|
151 |
+
$field = rwmb_get_field_settings( $field_id, $args, $post_id );
|
152 |
|
153 |
if ( ! $field ) {
|
154 |
return '';
|
217 |
$class = 'RWMB_' . ucwords( $type ) . '_Registry';
|
218 |
$class = str_replace( ' ', '_', $class );
|
219 |
if ( ! isset( $data[ $type ] ) ) {
|
220 |
+
$data[ $type ] = new $class();
|
221 |
}
|
222 |
|
223 |
return $data[ $type ];
|
249 |
/**
|
250 |
* Get storage instance.
|
251 |
*
|
252 |
+
* @param string $object_type Object type. Use post or term.
|
253 |
+
* @param RW_Meta_Box $meta_box Meta box object. Optional.
|
254 |
* @return RWMB_Storage_Interface
|
255 |
*/
|
256 |
+
function rwmb_get_storage( $object_type, $meta_box = null ) {
|
257 |
$class_name = rwmb_get_storage_class_name( $object_type );
|
258 |
+
$storage = rwmb_get_registry( 'storage' )->get( $class_name );
|
259 |
+
|
260 |
+
return apply_filters( 'rwmb_get_storage', $storage, $object_type, $meta_box );
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
if ( ! function_exists( 'rwmb_get_meta_box' ) ) {
|
265 |
+
/**
|
266 |
+
* Get meta box object from meta box data.
|
267 |
+
*
|
268 |
+
* @param array $meta_box Array of meta box data.
|
269 |
+
* @return RW_Meta_Box
|
270 |
+
*/
|
271 |
+
function rwmb_get_meta_box( $meta_box ) {
|
272 |
+
/**
|
273 |
+
* Allow filter meta box class name.
|
274 |
+
*
|
275 |
+
* @var string Meta box class name.
|
276 |
+
* @var array Meta box data.
|
277 |
+
*/
|
278 |
+
$class_name = apply_filters( 'rwmb_meta_box_class_name', 'RW_Meta_Box', $meta_box );
|
279 |
|
280 |
+
return new $class_name( $meta_box );
|
281 |
}
|
282 |
}
|
@@ -18,7 +18,7 @@ class RWMB_Loader {
|
|
18 |
*/
|
19 |
protected function constants() {
|
20 |
// Script version, used to add version for scripts and styles.
|
21 |
-
define( 'RWMB_VER', '4.
|
22 |
|
23 |
list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
|
24 |
|
@@ -72,9 +72,10 @@ class RWMB_Loader {
|
|
72 |
|
73 |
// Register autoload for classes.
|
74 |
require_once RWMB_INC_DIR . 'autoloader.php';
|
75 |
-
$autoloader = new RWMB_Autoloader;
|
76 |
$autoloader->add( RWMB_INC_DIR, 'RW_' );
|
77 |
$autoloader->add( RWMB_INC_DIR, 'RWMB_' );
|
|
|
78 |
$autoloader->add( RWMB_INC_DIR . 'fields', 'RWMB_', '_Field' );
|
79 |
$autoloader->add( RWMB_INC_DIR . 'walkers', 'RWMB_Walker_' );
|
80 |
$autoloader->add( RWMB_INC_DIR . 'interfaces', 'RWMB_', '_Interface' );
|
@@ -82,21 +83,24 @@ class RWMB_Loader {
|
|
82 |
$autoloader->register();
|
83 |
|
84 |
// Plugin core.
|
85 |
-
$core = new RWMB_Core;
|
86 |
$core->init();
|
87 |
|
|
|
|
|
|
|
88 |
// Validation module.
|
89 |
-
new RWMB_Validation;
|
90 |
|
91 |
-
$sanitize = new RWMB_Sanitizer;
|
92 |
$sanitize->init();
|
93 |
|
94 |
-
$media_modal = new RWMB_Media_Modal;
|
95 |
$media_modal->init();
|
96 |
|
97 |
// WPML Compatibility.
|
98 |
-
|
99 |
-
|
100 |
|
101 |
// Public functions.
|
102 |
require_once RWMB_INC_DIR . 'functions.php';
|
18 |
*/
|
19 |
protected function constants() {
|
20 |
// Script version, used to add version for scripts and styles.
|
21 |
+
define( 'RWMB_VER', '4.14.2' );
|
22 |
|
23 |
list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
|
24 |
|
72 |
|
73 |
// Register autoload for classes.
|
74 |
require_once RWMB_INC_DIR . 'autoloader.php';
|
75 |
+
$autoloader = new RWMB_Autoloader();
|
76 |
$autoloader->add( RWMB_INC_DIR, 'RW_' );
|
77 |
$autoloader->add( RWMB_INC_DIR, 'RWMB_' );
|
78 |
+
$autoloader->add( RWMB_INC_DIR . 'about', 'RWMB_' );
|
79 |
$autoloader->add( RWMB_INC_DIR . 'fields', 'RWMB_', '_Field' );
|
80 |
$autoloader->add( RWMB_INC_DIR . 'walkers', 'RWMB_Walker_' );
|
81 |
$autoloader->add( RWMB_INC_DIR . 'interfaces', 'RWMB_', '_Interface' );
|
83 |
$autoloader->register();
|
84 |
|
85 |
// Plugin core.
|
86 |
+
$core = new RWMB_Core();
|
87 |
$core->init();
|
88 |
|
89 |
+
$about = new RWMB_About();
|
90 |
+
$about->init();
|
91 |
+
|
92 |
// Validation module.
|
93 |
+
new RWMB_Validation();
|
94 |
|
95 |
+
$sanitize = new RWMB_Sanitizer();
|
96 |
$sanitize->init();
|
97 |
|
98 |
+
$media_modal = new RWMB_Media_Modal();
|
99 |
$media_modal->init();
|
100 |
|
101 |
// WPML Compatibility.
|
102 |
+
$wpml = new RWMB_WPML();
|
103 |
+
$wpml->init();
|
104 |
|
105 |
// Public functions.
|
106 |
require_once RWMB_INC_DIR . 'functions.php';
|
@@ -21,7 +21,9 @@ class RWMB_Media_Modal {
|
|
21 |
* Initialize.
|
22 |
*/
|
23 |
public function init() {
|
24 |
-
|
|
|
|
|
25 |
add_filter( 'attachment_fields_to_edit', array( $this, 'add_fields' ), 11, 2 );
|
26 |
add_filter( 'attachment_fields_to_save', array( $this, 'save_fields' ), 11, 2 );
|
27 |
|
21 |
* Initialize.
|
22 |
*/
|
23 |
public function init() {
|
24 |
+
// Meta boxes are registered at priority 20, so we use 30 to capture them all.
|
25 |
+
add_action( 'init', array( $this, 'get_fields' ), 30 );
|
26 |
+
|
27 |
add_filter( 'attachment_fields_to_edit', array( $this, 'add_fields' ), 11, 2 );
|
28 |
add_filter( 'attachment_fields_to_save', array( $this, 'save_fields' ), 11, 2 );
|
29 |
|
@@ -37,6 +37,28 @@ class RWMB_Meta_Box_Registry {
|
|
37 |
return isset( $this->data[ $id ] ) ? $this->data[ $id ] : false;
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
/**
|
41 |
* Retrieve all meta boxes.
|
42 |
*
|
37 |
return isset( $this->data[ $id ] ) ? $this->data[ $id ] : false;
|
38 |
}
|
39 |
|
40 |
+
/**
|
41 |
+
* Get meta boxes under some conditions.
|
42 |
+
*
|
43 |
+
* @param array $args Custom argument to get meta boxes by.
|
44 |
+
*
|
45 |
+
* @return array
|
46 |
+
*/
|
47 |
+
public function get_by( $args ) {
|
48 |
+
$meta_boxes = $this->data;
|
49 |
+
foreach ( $meta_boxes as $index => $meta_box ) {
|
50 |
+
foreach ( $args as $key => $value ) {
|
51 |
+
$meta_box_key = 'object_type' === $key ? $meta_box->get_object_type() : $meta_box->$key;
|
52 |
+
if ( $meta_box_key !== $value ) {
|
53 |
+
unset( $meta_boxes[ $index ] );
|
54 |
+
continue 2; // Skip the meta box loop.
|
55 |
+
}
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
return $meta_boxes;
|
60 |
+
}
|
61 |
+
|
62 |
/**
|
63 |
* Retrieve all meta boxes.
|
64 |
*
|
@@ -34,7 +34,14 @@ class RW_Meta_Box {
|
|
34 |
*
|
35 |
* @var int
|
36 |
*/
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
/**
|
40 |
* Create meta box based on given data.
|
@@ -42,17 +49,37 @@ class RW_Meta_Box {
|
|
42 |
* @param array $meta_box Meta box definition.
|
43 |
*/
|
44 |
public function __construct( $meta_box ) {
|
45 |
-
$meta_box
|
46 |
-
$meta_box['fields'] = self::normalize_fields( $meta_box['fields'] );
|
47 |
-
|
48 |
$this->meta_box = $meta_box;
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
if ( $this->is_shown() ) {
|
51 |
$this->global_hooks();
|
52 |
$this->object_hooks();
|
53 |
}
|
54 |
}
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
/**
|
57 |
* Conditional check for whether initializing meta box.
|
58 |
*
|
@@ -73,6 +100,7 @@ class RW_Meta_Box {
|
|
73 |
protected function global_hooks() {
|
74 |
// Enqueue common styles and scripts.
|
75 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
|
|
|
76 |
// Add additional actions for fields.
|
77 |
foreach ( $this->fields as $field ) {
|
78 |
RWMB_Field::call( $field, 'add_actions' );
|
@@ -110,11 +138,16 @@ class RW_Meta_Box {
|
|
110 |
if ( is_admin() && ! $this->is_edit_screen() ) {
|
111 |
return;
|
112 |
}
|
|
|
113 |
wp_enqueue_style( 'rwmb', RWMB_CSS_URL . 'style.css', array(), RWMB_VER );
|
114 |
if ( is_rtl() ) {
|
115 |
wp_enqueue_style( 'rwmb-rtl', RWMB_CSS_URL . 'style-rtl.css', array(), RWMB_VER );
|
116 |
}
|
117 |
|
|
|
|
|
|
|
|
|
118 |
// Load clone script conditionally.
|
119 |
foreach ( $this->fields as $field ) {
|
120 |
if ( $field['clone'] ) {
|
@@ -177,13 +210,15 @@ class RW_Meta_Box {
|
|
177 |
* Callback function to show fields in meta box
|
178 |
*/
|
179 |
public function show() {
|
180 |
-
$this->set_object_id();
|
181 |
$saved = $this->is_saved();
|
182 |
|
183 |
// Container.
|
184 |
printf(
|
185 |
-
'<div class="rwmb-meta-box" data-autosave="%s">',
|
186 |
-
$this->
|
|
|
|
|
187 |
);
|
188 |
|
189 |
wp_nonce_field( "rwmb-save-{$this->id}", "nonce_{$this->id}" );
|
@@ -220,16 +255,32 @@ class RW_Meta_Box {
|
|
220 |
$this->saved = true;
|
221 |
|
222 |
// Make sure meta is added to the post, not a revision.
|
223 |
-
|
224 |
-
|
225 |
-
|
|
|
|
|
226 |
}
|
227 |
|
228 |
// Before save action.
|
229 |
do_action( 'rwmb_before_save_post', $post_id );
|
230 |
do_action( "rwmb_{$this->id}_before_save_post", $post_id );
|
231 |
|
232 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
$single = $field['clone'] || ! $field['multiple'];
|
234 |
$old = RWMB_Field::call( $field, 'raw_meta', $post_id );
|
235 |
// @codingStandardsIgnoreLine
|
@@ -246,11 +297,9 @@ class RW_Meta_Box {
|
|
246 |
|
247 |
// Call defined method to save meta value, if there's no methods, call common one.
|
248 |
RWMB_Field::call( $field, 'save', $new, $old, $post_id );
|
249 |
-
}
|
250 |
|
251 |
-
|
252 |
-
|
253 |
-
do_action( "rwmb_{$this->id}_after_save_post", $post_id );
|
254 |
}
|
255 |
|
256 |
/**
|
@@ -264,8 +313,7 @@ class RW_Meta_Box {
|
|
264 |
public function validate() {
|
265 |
$nonce = filter_input( INPUT_POST, "nonce_{$this->id}", FILTER_SANITIZE_STRING );
|
266 |
|
267 |
-
return
|
268 |
-
! $this->saved
|
269 |
&& ( ! defined( 'DOING_AUTOSAVE' ) || $this->autosave )
|
270 |
&& wp_verify_nonce( $nonce, "rwmb-save-{$this->id}" );
|
271 |
}
|
@@ -286,6 +334,7 @@ class RW_Meta_Box {
|
|
286 |
'post_types' => 'post',
|
287 |
'autosave' => false,
|
288 |
'default_hidden' => false,
|
|
|
289 |
) );
|
290 |
|
291 |
/**
|
@@ -306,11 +355,12 @@ class RW_Meta_Box {
|
|
306 |
/**
|
307 |
* Normalize an array of fields
|
308 |
*
|
309 |
-
* @param array
|
|
|
310 |
*
|
311 |
* @return array $fields Normalized fields.
|
312 |
*/
|
313 |
-
public static function normalize_fields( $fields ) {
|
314 |
foreach ( $fields as $k => $field ) {
|
315 |
$field = RWMB_Field::call( 'normalize', $field );
|
316 |
|
@@ -319,6 +369,11 @@ class RW_Meta_Box {
|
|
319 |
$field = apply_filters( "rwmb_normalize_{$field['type']}_field", $field );
|
320 |
$field = apply_filters( "rwmb_normalize_{$field['id']}_field", $field );
|
321 |
|
|
|
|
|
|
|
|
|
|
|
322 |
$fields[ $k ] = $field;
|
323 |
}
|
324 |
|
@@ -359,6 +414,7 @@ class RW_Meta_Box {
|
|
359 |
if ( ! ( $screen instanceof WP_Screen ) ) {
|
360 |
$screen = get_current_screen();
|
361 |
}
|
|
|
362 |
return 'post' === $screen->base && in_array( $screen->post_type, $this->post_types, true );
|
363 |
}
|
364 |
|
@@ -376,11 +432,36 @@ class RW_Meta_Box {
|
|
376 |
/**
|
377 |
* Set the object ID.
|
378 |
*
|
379 |
-
* @param
|
380 |
*/
|
381 |
public function set_object_id( $id = null ) {
|
382 |
-
|
383 |
-
|
384 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
}
|
386 |
}
|
34 |
*
|
35 |
* @var int
|
36 |
*/
|
37 |
+
protected $object_id = null;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* The object type.
|
41 |
+
*
|
42 |
+
* @var string
|
43 |
+
*/
|
44 |
+
protected $object_type = 'post';
|
45 |
|
46 |
/**
|
47 |
* Create meta box based on given data.
|
49 |
* @param array $meta_box Meta box definition.
|
50 |
*/
|
51 |
public function __construct( $meta_box ) {
|
52 |
+
$meta_box = self::normalize( $meta_box );
|
|
|
|
|
53 |
$this->meta_box = $meta_box;
|
54 |
|
55 |
+
$storage = $this->get_storage();
|
56 |
+
if ( ! $storage ) {
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
|
60 |
+
$this->meta_box['fields'] = self::normalize_fields( $meta_box['fields'], $storage );
|
61 |
+
|
62 |
+
$this->meta_box = apply_filters( 'rwmb_meta_box_settings', $this->meta_box );
|
63 |
+
|
64 |
if ( $this->is_shown() ) {
|
65 |
$this->global_hooks();
|
66 |
$this->object_hooks();
|
67 |
}
|
68 |
}
|
69 |
|
70 |
+
/**
|
71 |
+
* Add fields to field registry.
|
72 |
+
*/
|
73 |
+
public function register_fields() {
|
74 |
+
$field_registry = rwmb_get_registry( 'field' );
|
75 |
+
|
76 |
+
foreach ( $this->post_types as $post_type ) {
|
77 |
+
foreach ( $this->fields as $field ) {
|
78 |
+
$field_registry->add( $field, $post_type );
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
/**
|
84 |
* Conditional check for whether initializing meta box.
|
85 |
*
|
100 |
protected function global_hooks() {
|
101 |
// Enqueue common styles and scripts.
|
102 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
|
103 |
+
|
104 |
// Add additional actions for fields.
|
105 |
foreach ( $this->fields as $field ) {
|
106 |
RWMB_Field::call( $field, 'add_actions' );
|
138 |
if ( is_admin() && ! $this->is_edit_screen() ) {
|
139 |
return;
|
140 |
}
|
141 |
+
|
142 |
wp_enqueue_style( 'rwmb', RWMB_CSS_URL . 'style.css', array(), RWMB_VER );
|
143 |
if ( is_rtl() ) {
|
144 |
wp_enqueue_style( 'rwmb-rtl', RWMB_CSS_URL . 'style-rtl.css', array(), RWMB_VER );
|
145 |
}
|
146 |
|
147 |
+
if ( 'seamless' === $this->style ) {
|
148 |
+
wp_enqueue_script( 'rwmb', RWMB_JS_URL . 'script.js', array( 'jquery' ), RWMB_VER, true );
|
149 |
+
}
|
150 |
+
|
151 |
// Load clone script conditionally.
|
152 |
foreach ( $this->fields as $field ) {
|
153 |
if ( $field['clone'] ) {
|
210 |
* Callback function to show fields in meta box
|
211 |
*/
|
212 |
public function show() {
|
213 |
+
$this->set_object_id( $this->get_current_object_id() );
|
214 |
$saved = $this->is_saved();
|
215 |
|
216 |
// Container.
|
217 |
printf(
|
218 |
+
'<div class="rwmb-meta-box%s" data-autosave="%s" data-object-type="%s">',
|
219 |
+
esc_attr( 'seamless' === $this->style ? ' rwmb-meta-box--seamless' : '' ),
|
220 |
+
esc_attr( $this->autosave ? 'true' : 'false' ),
|
221 |
+
esc_attr( $this->object_type )
|
222 |
);
|
223 |
|
224 |
wp_nonce_field( "rwmb-save-{$this->id}", "nonce_{$this->id}" );
|
255 |
$this->saved = true;
|
256 |
|
257 |
// Make sure meta is added to the post, not a revision.
|
258 |
+
if ( 'post' === $this->object_type ) {
|
259 |
+
$the_post = wp_is_post_revision( $post_id );
|
260 |
+
if ( $the_post ) {
|
261 |
+
$post_id = $the_post;
|
262 |
+
}
|
263 |
}
|
264 |
|
265 |
// Before save action.
|
266 |
do_action( 'rwmb_before_save_post', $post_id );
|
267 |
do_action( "rwmb_{$this->id}_before_save_post", $post_id );
|
268 |
|
269 |
+
$this->save_fields( $post_id, $this->fields );
|
270 |
+
|
271 |
+
// After save action.
|
272 |
+
do_action( 'rwmb_after_save_post', $post_id );
|
273 |
+
do_action( "rwmb_{$this->id}_after_save_post", $post_id );
|
274 |
+
}
|
275 |
+
|
276 |
+
/**
|
277 |
+
* Save fields data.
|
278 |
+
*
|
279 |
+
* @param int $post_id Post id.
|
280 |
+
* @param array $fields Fields data.
|
281 |
+
*/
|
282 |
+
public function save_fields( $post_id, $fields ) {
|
283 |
+
foreach ( $fields as $field ) {
|
284 |
$single = $field['clone'] || ! $field['multiple'];
|
285 |
$old = RWMB_Field::call( $field, 'raw_meta', $post_id );
|
286 |
// @codingStandardsIgnoreLine
|
297 |
|
298 |
// Call defined method to save meta value, if there's no methods, call common one.
|
299 |
RWMB_Field::call( $field, 'save', $new, $old, $post_id );
|
|
|
300 |
|
301 |
+
RWMB_Field::filter( 'after_save_field', null, $field, $new, $old, $post_id, $field );
|
302 |
+
}
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
313 |
public function validate() {
|
314 |
$nonce = filter_input( INPUT_POST, "nonce_{$this->id}", FILTER_SANITIZE_STRING );
|
315 |
|
316 |
+
return ! $this->saved
|
|
|
317 |
&& ( ! defined( 'DOING_AUTOSAVE' ) || $this->autosave )
|
318 |
&& wp_verify_nonce( $nonce, "rwmb-save-{$this->id}" );
|
319 |
}
|
334 |
'post_types' => 'post',
|
335 |
'autosave' => false,
|
336 |
'default_hidden' => false,
|
337 |
+
'style' => 'default',
|
338 |
) );
|
339 |
|
340 |
/**
|
355 |
/**
|
356 |
* Normalize an array of fields
|
357 |
*
|
358 |
+
* @param array $fields Array of fields.
|
359 |
+
* @param RWMB_Storage_Interface $storage Storage object. Optional.
|
360 |
*
|
361 |
* @return array $fields Normalized fields.
|
362 |
*/
|
363 |
+
public static function normalize_fields( $fields, $storage = null ) {
|
364 |
foreach ( $fields as $k => $field ) {
|
365 |
$field = RWMB_Field::call( 'normalize', $field );
|
366 |
|
369 |
$field = apply_filters( "rwmb_normalize_{$field['type']}_field", $field );
|
370 |
$field = apply_filters( "rwmb_normalize_{$field['id']}_field", $field );
|
371 |
|
372 |
+
// Add storage object to field.
|
373 |
+
if ( $storage ) {
|
374 |
+
$field['storage'] = $storage;
|
375 |
+
}
|
376 |
+
|
377 |
$fields[ $k ] = $field;
|
378 |
}
|
379 |
|
414 |
if ( ! ( $screen instanceof WP_Screen ) ) {
|
415 |
$screen = get_current_screen();
|
416 |
}
|
417 |
+
|
418 |
return 'post' === $screen->base && in_array( $screen->post_type, $this->post_types, true );
|
419 |
}
|
420 |
|
432 |
/**
|
433 |
* Set the object ID.
|
434 |
*
|
435 |
+
* @param mixed $id Object ID.
|
436 |
*/
|
437 |
public function set_object_id( $id = null ) {
|
438 |
+
$this->object_id = $id;
|
439 |
+
}
|
440 |
+
|
441 |
+
/**
|
442 |
+
* Get object type.
|
443 |
+
*
|
444 |
+
* @return string
|
445 |
+
*/
|
446 |
+
public function get_object_type() {
|
447 |
+
return $this->object_type;
|
448 |
+
}
|
449 |
+
|
450 |
+
/**
|
451 |
+
* Get storage object.
|
452 |
+
*
|
453 |
+
* @return RWMB_Storage_Interface
|
454 |
+
*/
|
455 |
+
public function get_storage() {
|
456 |
+
return rwmb_get_storage( $this->object_type, $this );
|
457 |
+
}
|
458 |
+
|
459 |
+
/**
|
460 |
+
* Get current object id.
|
461 |
+
*
|
462 |
+
* @return int|string
|
463 |
+
*/
|
464 |
+
protected function get_current_object_id() {
|
465 |
+
return get_the_ID();
|
466 |
}
|
467 |
}
|
@@ -25,6 +25,10 @@ class RWMB_Storage_Registry {
|
|
25 |
*/
|
26 |
public function get( $class_name ) {
|
27 |
if ( empty( $this->storages[ $class_name ] ) ) {
|
|
|
|
|
|
|
|
|
28 |
$this->storages[ $class_name ] = new $class_name();
|
29 |
}
|
30 |
|
25 |
*/
|
26 |
public function get( $class_name ) {
|
27 |
if ( empty( $this->storages[ $class_name ] ) ) {
|
28 |
+
if ( ! class_exists( $class_name ) ) {
|
29 |
+
return null;
|
30 |
+
}
|
31 |
+
|
32 |
$this->storages[ $class_name ] = new $class_name();
|
33 |
}
|
34 |
|
@@ -8,18 +8,12 @@
|
|
8 |
/**
|
9 |
* Class RWMB_Post_Storage
|
10 |
*/
|
11 |
-
class RWMB_Post_Storage
|
12 |
|
13 |
/**
|
14 |
-
*
|
15 |
*
|
16 |
-
* @
|
17 |
-
* @param string $name Field name.
|
18 |
-
* @param array $args Custom arguments.
|
19 |
-
* @return mixed
|
20 |
*/
|
21 |
-
|
22 |
-
$single = ! empty( $args['single'] );
|
23 |
-
return get_post_meta( $object_id, $name, $single );
|
24 |
-
}
|
25 |
}
|
8 |
/**
|
9 |
* Class RWMB_Post_Storage
|
10 |
*/
|
11 |
+
class RWMB_Post_Storage extends RWMB_Base_Storage {
|
12 |
|
13 |
/**
|
14 |
+
* Object type.
|
15 |
*
|
16 |
+
* @var string
|
|
|
|
|
|
|
17 |
*/
|
18 |
+
protected $object_type = 'post';
|
|
|
|
|
|
|
19 |
}
|
@@ -1,7 +1,7 @@
|
|
1 |
<script id="tmpl-rwmb-image-item" type="text/html">
|
2 |
<input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
|
3 |
-
<div class="
|
4 |
-
<div class="
|
5 |
<div class="centered">
|
6 |
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
<# if ( data.sizes[data.controller.imageSize] ) { #>
|
@@ -19,12 +19,12 @@
|
|
19 |
</div>
|
20 |
</div>
|
21 |
</div>
|
22 |
-
<div class="rwmb-overlay"></div>
|
23 |
-
<div class="rwmb-
|
24 |
-
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
25 |
<span class="dashicons dashicons-edit"></span>
|
26 |
</a>
|
27 |
-
<a href="#" class="rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
28 |
<span class="dashicons dashicons-no-alt"></span>
|
29 |
</a>
|
30 |
</div>
|
1 |
<script id="tmpl-rwmb-image-item" type="text/html">
|
2 |
<input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
|
3 |
+
<div class="attachment-preview">
|
4 |
+
<div class="thumbnail">
|
5 |
<div class="centered">
|
6 |
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
<# if ( data.sizes[data.controller.imageSize] ) { #>
|
19 |
</div>
|
20 |
</div>
|
21 |
</div>
|
22 |
+
<div class="rwmb-image-overlay"></div>
|
23 |
+
<div class="rwmb-image-actions">
|
24 |
+
<a class="rwmb-image-edit rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
25 |
<span class="dashicons dashicons-edit"></span>
|
26 |
</a>
|
27 |
+
<a href="#" class="rwmb-image-delete rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
28 |
<span class="dashicons dashicons-no-alt"></span>
|
29 |
</a>
|
30 |
</div>
|
@@ -1,7 +1,7 @@
|
|
1 |
<script id="tmpl-rwmb-media-item" type="text/html">
|
2 |
<input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
|
3 |
-
<div class="rwmb-media-preview">
|
4 |
-
<div class="rwmb-media-content">
|
5 |
<div class="centered">
|
6 |
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
<# if ( data.sizes.thumbnail ) { #>
|
@@ -20,15 +20,15 @@
|
|
20 |
</div>
|
21 |
</div>
|
22 |
<div class="rwmb-media-info">
|
23 |
-
<
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
</
|
30 |
-
<p>{{{ data.
|
31 |
-
<p>
|
32 |
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
33 |
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
34 |
</a>
|
1 |
<script id="tmpl-rwmb-media-item" type="text/html">
|
2 |
<input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
|
3 |
+
<div class="rwmb-media-preview attachment-preview">
|
4 |
+
<div class="rwmb-media-content thumbnail">
|
5 |
<div class="centered">
|
6 |
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
<# if ( data.sizes.thumbnail ) { #>
|
20 |
</div>
|
21 |
</div>
|
22 |
<div class="rwmb-media-info">
|
23 |
+
<a href="{{{ data.url }}}" class="rwmb-media-title" target="_blank">
|
24 |
+
<# if( data.title ) { #>
|
25 |
+
{{{ data.title }}}
|
26 |
+
<# } else { #>
|
27 |
+
{{{ i18nRwmbMedia.noTitle }}}
|
28 |
+
<# } #>
|
29 |
+
</a>
|
30 |
+
<p class="rwmb-media-name">{{{ data.filename }}}</p>
|
31 |
+
<p class="rwmb-media-actions">
|
32 |
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
33 |
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
34 |
</a>
|
@@ -23,15 +23,15 @@
|
|
23 |
</div>
|
24 |
</div>
|
25 |
<div class="rwmb-media-info">
|
26 |
-
<
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
</
|
33 |
-
<p>{{{ data.
|
34 |
-
<p>
|
35 |
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
36 |
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
37 |
</a>
|
23 |
</div>
|
24 |
</div>
|
25 |
<div class="rwmb-media-info">
|
26 |
+
<a href="{{{ data.url }}}" class="rwmb-media-title" target="_blank">
|
27 |
+
<# if( data.title ) { #>
|
28 |
+
{{{ data.title }}}
|
29 |
+
<# } else { #>
|
30 |
+
{{{ i18nRwmbMedia.noTitle }}}
|
31 |
+
<# } #>
|
32 |
+
</a>
|
33 |
+
<p class="rwmb-media-name">{{{ data.filename }}}</p>
|
34 |
+
<p class="rwmb-media-actions">
|
35 |
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
36 |
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
37 |
</a>
|
@@ -44,7 +44,7 @@ class RWMB_Validation {
|
|
44 |
wp_enqueue_script( 'rwmb-validate', RWMB_JS_URL . 'validate.js', array( 'jquery-validation', 'jquery-validation-additional-methods' ), RWMB_VER, true );
|
45 |
|
46 |
RWMB_Field::localize_script( 'rwmb-validate', 'rwmbValidate', array(
|
47 |
-
'summaryMessage' => esc_html__( 'Please correct the errors highlighted below and try again.', '
|
48 |
) );
|
49 |
}
|
50 |
}
|
44 |
wp_enqueue_script( 'rwmb-validate', RWMB_JS_URL . 'validate.js', array( 'jquery-validation', 'jquery-validation-additional-methods' ), RWMB_VER, true );
|
45 |
|
46 |
RWMB_Field::localize_script( 'rwmb-validate', 'rwmbValidate', array(
|
47 |
+
'summaryMessage' => esc_html__( 'Please correct the errors highlighted below and try again.', 'learnpress' ),
|
48 |
) );
|
49 |
}
|
50 |
}
|
@@ -29,7 +29,7 @@ class RWMB_Walker_Select extends RWMB_Walker_Base {
|
|
29 |
$output .= sprintf(
|
30 |
'<option value="%s" %s>%s%s</option>',
|
31 |
esc_attr( $object->$id ),
|
32 |
-
selected( in_array(
|
33 |
$indent,
|
34 |
esc_html( RWMB_Field::filter( 'choice_label', $object->$label, $this->field, $object ) )
|
35 |
);
|
29 |
$output .= sprintf(
|
30 |
'<option value="%s" %s>%s%s</option>',
|
31 |
esc_attr( $object->$id ),
|
32 |
+
selected( in_array( $object->$id, $meta ), true, false ),
|
33 |
$indent,
|
34 |
esc_html( RWMB_Field::filter( 'choice_label', $object->$label, $this->field, $object ) )
|
35 |
);
|
@@ -53,7 +53,7 @@ class RWMB_WPML {
|
|
53 |
}
|
54 |
|
55 |
$field = rwmb_get_registry( 'field' )->get( $meta_data['key'], get_post_type( $meta_data['master_post_id'] ) );
|
56 |
-
if ( false
|
57 |
return $value;
|
58 |
}
|
59 |
|
@@ -103,7 +103,7 @@ class RWMB_WPML {
|
|
103 |
}
|
104 |
|
105 |
// If the post is the original one: do nothing.
|
106 |
-
if ( ! $wpml_post_translations->get_source_lang_code( $post_id ) ) {
|
107 |
return $field;
|
108 |
}
|
109 |
|
53 |
}
|
54 |
|
55 |
$field = rwmb_get_registry( 'field' )->get( $meta_data['key'], get_post_type( $meta_data['master_post_id'] ) );
|
56 |
+
if ( false === $field || ! in_array( $field['type'], $this->field_types, true ) ) {
|
57 |
return $value;
|
58 |
}
|
59 |
|
103 |
}
|
104 |
|
105 |
// If the post is the original one: do nothing.
|
106 |
+
if ( ! method_exists( $wpml_post_translations, 'get_source_lang_code' ) || ! $wpml_post_translations->get_source_lang_code( $post_id ) ) {
|
107 |
return $field;
|
108 |
}
|
109 |
|
@@ -39,11 +39,11 @@ jQuery( function ( $ ) {
|
|
39 |
}
|
40 |
|
41 |
$( '.rwmb-autocomplete-wrapper input[type="hidden"]' ).each( updateAutocomplete );
|
42 |
-
$(
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
} );
|
39 |
}
|
40 |
|
41 |
$( '.rwmb-autocomplete-wrapper input[type="hidden"]' ).each( updateAutocomplete );
|
42 |
+
$( document )
|
43 |
+
.on( 'clone', '.rwmb-autocomplete', updateAutocomplete )
|
44 |
+
// Handle remove action
|
45 |
+
.on( 'click', '.rwmb-autocomplete-result .actions', function () {
|
46 |
+
// remove result
|
47 |
+
$( this ).parent().remove();
|
48 |
+
} );
|
49 |
} );
|
@@ -1,14 +1,16 @@
|
|
1 |
-
|
2 |
'use strict';
|
3 |
|
4 |
-
$( document ).ajaxSend( function (
|
5 |
-
if ( typeof
|
6 |
-
|
7 |
-
var $meta_box = $( this );
|
8 |
-
if ( $meta_box.data( 'autosave' ) === true ) {
|
9 |
-
s.data += '&' + $meta_box.find( ':input' ).serialize();
|
10 |
-
}
|
11 |
-
} );
|
12 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
} );
|
14 |
-
} );
|
1 |
+
( function ( $, document ) {
|
2 |
'use strict';
|
3 |
|
4 |
+
$( document ).ajaxSend( function ( event, xhr, settings ) {
|
5 |
+
if ( typeof settings.data === 'undefined' || -1 === settings.data.indexOf( 'wp_autosave' ) ) {
|
6 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
7 |
}
|
8 |
+
var inputSelectors = 'input[class*="rwmb"], textarea[class*="rwmb"], select[class*="rwmb"], button[class*="rwmb"], input[name^="nonce_"]';
|
9 |
+
$( '.rwmb-meta-box' ).each( function () {
|
10 |
+
var $meta_box = $( this );
|
11 |
+
if ( true === $meta_box.data( 'autosave' ) ) {
|
12 |
+
settings.data += '&' + $meta_box.find( inputSelectors ).serialize();
|
13 |
+
}
|
14 |
+
} );
|
15 |
} );
|
16 |
+
} )( jQuery, document );
|
@@ -6,15 +6,15 @@ jQuery( function ( $ ) {
|
|
6 |
var cloneIndex = {
|
7 |
/**
|
8 |
* Set index for fields in a .rwmb-clone
|
9 |
-
* @param $
|
10 |
* @param index Index value
|
11 |
*/
|
12 |
-
set: function ( $
|
13 |
-
$
|
14 |
var $field = $( this );
|
15 |
|
16 |
// Name attribute
|
17 |
-
var name =
|
18 |
if ( name && ! $field.closest( '.rwmb-group-clone' ).length ) {
|
19 |
$field.attr( 'name', cloneIndex.replace( index, name, '[', ']', false ) );
|
20 |
}
|
@@ -29,7 +29,7 @@ jQuery( function ( $ ) {
|
|
29 |
} );
|
30 |
|
31 |
// Address button's value attribute
|
32 |
-
var $address = $
|
33 |
if ( $address.length ) {
|
34 |
var value = $address.attr( 'value' );
|
35 |
$address.attr( 'value', cloneIndex.replace( index, value, '_' ) );
|
@@ -43,6 +43,7 @@ jQuery( function ( $ ) {
|
|
43 |
* @param before String before returned value
|
44 |
* @param after String after returned value
|
45 |
* @param alternative Check if attribute does not contain any integer, will reset the attribute?
|
|
|
46 |
* @return string
|
47 |
*/
|
48 |
replace: function ( index, value, before, after, alternative, isEnd ) {
|
@@ -83,31 +84,64 @@ jQuery( function ( $ ) {
|
|
83 |
}
|
84 |
};
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
/**
|
87 |
* Clone fields
|
88 |
* @param $container A div container which has all fields
|
89 |
-
* @return void
|
90 |
*/
|
91 |
function clone( $container ) {
|
92 |
-
var $last = $container.children( '.rwmb-clone
|
93 |
$clone = $last.clone(),
|
94 |
-
|
95 |
nextIndex = cloneIndex.nextIndex( $container );
|
96 |
|
97 |
// Reset value for fields
|
98 |
-
$
|
99 |
-
|
100 |
-
if ( $field.is( ':radio' ) || $field.is( ':checkbox' ) ) {
|
101 |
-
// Reset 'checked' attribute
|
102 |
-
$field.prop( 'checked', false );
|
103 |
-
} else if ( $field.is( 'select' ) ) {
|
104 |
-
// Reset select
|
105 |
-
$field.prop( 'selectedIndex', - 1 )
|
106 |
-
} else if ( ! $field.hasClass( 'rwmb-hidden' ) ) {
|
107 |
-
// Reset value
|
108 |
-
$field.val( '' );
|
109 |
-
}
|
110 |
-
} );
|
111 |
|
112 |
// Insert Clone
|
113 |
$clone.insertAfter( $last );
|
@@ -116,18 +150,19 @@ jQuery( function ( $ ) {
|
|
116 |
$clone.trigger( 'clone_instance', nextIndex );
|
117 |
|
118 |
// Set fields index. Must run before trigger clone event.
|
119 |
-
cloneIndex.set( $
|
|
|
|
|
|
|
120 |
|
121 |
-
//
|
122 |
-
$
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
* Hide remove buttons when there's only 1 of them
|
127 |
*
|
128 |
* @param $container .rwmb-input container
|
129 |
-
*
|
130 |
-
* @return void
|
131 |
*/
|
132 |
function toggleRemoveButtons( $container ) {
|
133 |
var $clones = $container.children( '.rwmb-clone' );
|
@@ -144,17 +179,38 @@ jQuery( function ( $ ) {
|
|
144 |
* Used with [data-max-clone] attribute. When max clone is reached, the add button is hid and vice versa
|
145 |
*
|
146 |
* @param $container .rwmb-input container
|
147 |
-
*
|
148 |
-
* @return void
|
149 |
*/
|
150 |
function toggleAddButton( $container ) {
|
151 |
-
var $button = $container.
|
152 |
maxClone = parseInt( $container.data( 'max-clone' ) ),
|
153 |
-
numClone = $container.
|
154 |
|
155 |
$button.toggle( isNaN( maxClone ) || ( maxClone && numClone < maxClone ) );
|
156 |
}
|
157 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
$( document )
|
159 |
// Add clones
|
160 |
.on( 'click', '.add-clone', function ( e ) {
|
@@ -165,6 +221,7 @@ jQuery( function ( $ ) {
|
|
165 |
|
166 |
toggleRemoveButtons( $container );
|
167 |
toggleAddButton( $container );
|
|
|
168 |
} )
|
169 |
// Remove clones
|
170 |
.on( 'click', '.remove-clone', function ( e ) {
|
@@ -192,8 +249,8 @@ jQuery( function ( $ ) {
|
|
192 |
.data( 'next-index', $container.children( '.rwmb-clone' ).length )
|
193 |
.sortable( {
|
194 |
handle: '.rwmb-clone-icon',
|
195 |
-
placeholder: ' rwmb-clone rwmb-
|
196 |
-
items: '.rwmb-clone',
|
197 |
start: function ( event, ui ) {
|
198 |
// Make the placeholder has the same height as dragged item
|
199 |
ui.placeholder.height( ui.item.outerHeight() );
|
6 |
var cloneIndex = {
|
7 |
/**
|
8 |
* Set index for fields in a .rwmb-clone
|
9 |
+
* @param $inputs .rwmb-clone element
|
10 |
* @param index Index value
|
11 |
*/
|
12 |
+
set: function ( $inputs, index ) {
|
13 |
+
$inputs.each( function () {
|
14 |
var $field = $( this );
|
15 |
|
16 |
// Name attribute
|
17 |
+
var name = this.name;
|
18 |
if ( name && ! $field.closest( '.rwmb-group-clone' ).length ) {
|
19 |
$field.attr( 'name', cloneIndex.replace( index, name, '[', ']', false ) );
|
20 |
}
|
29 |
} );
|
30 |
|
31 |
// Address button's value attribute
|
32 |
+
var $address = $inputs.filter( '.rwmb-map-goto-address-button' );
|
33 |
if ( $address.length ) {
|
34 |
var value = $address.attr( 'value' );
|
35 |
$address.attr( 'value', cloneIndex.replace( index, value, '_' ) );
|
43 |
* @param before String before returned value
|
44 |
* @param after String after returned value
|
45 |
* @param alternative Check if attribute does not contain any integer, will reset the attribute?
|
46 |
+
* @param isEnd Check if we find string at the end?
|
47 |
* @return string
|
48 |
*/
|
49 |
replace: function ( index, value, before, after, alternative, isEnd ) {
|
84 |
}
|
85 |
};
|
86 |
|
87 |
+
// Object holds all method related to fields' value when clone.
|
88 |
+
var cloneValue = {
|
89 |
+
/**
|
90 |
+
* Reset field value when clone. Expect this = current input.
|
91 |
+
*/
|
92 |
+
reset: function() {
|
93 |
+
cloneValue.$field = $( this );
|
94 |
+
cloneValue.type = cloneValue.$field.attr( 'type' );
|
95 |
+
cloneValue.isHiddenField = cloneValue.$field.hasClass( 'rwmb-hidden' );
|
96 |
+
|
97 |
+
if ( true === cloneValue.$field.data( 'clone-default' ) ) {
|
98 |
+
cloneValue.resetToDefault();
|
99 |
+
} else {
|
100 |
+
cloneValue.clear();
|
101 |
+
}
|
102 |
+
},
|
103 |
+
/**
|
104 |
+
* Reset field value to its default.
|
105 |
+
*/
|
106 |
+
resetToDefault: function() {
|
107 |
+
var defaultValue = cloneValue.$field.data( 'default' );
|
108 |
+
if ( 'radio' === cloneValue.type ) {
|
109 |
+
cloneValue.$field.prop( 'checked', cloneValue.$field.val() === defaultValue );
|
110 |
+
} else if ( 'checkbox' === cloneValue.type ) {
|
111 |
+
cloneValue.$field.prop( 'checked', !!defaultValue );
|
112 |
+
} else if ( 'select' === cloneValue.type ) {
|
113 |
+
cloneValue.$field.find( 'option[value="' + defaultValue + '"]' ).prop( 'selected', true );
|
114 |
+
} else if ( ! cloneValue.isHiddenField ) {
|
115 |
+
cloneValue.$field.val( defaultValue );
|
116 |
+
}
|
117 |
+
},
|
118 |
+
/**
|
119 |
+
* Clear field value.
|
120 |
+
*/
|
121 |
+
clear: function() {
|
122 |
+
if ( 'radio' === cloneValue.type || 'checkbox' === cloneValue.type ) {
|
123 |
+
cloneValue.$field.prop( 'checked', false );
|
124 |
+
} else if ( 'select' === cloneValue.type ) {
|
125 |
+
cloneValue.$field.prop( 'selectedIndex', - 1 );
|
126 |
+
} else if ( ! cloneValue.isHiddenField ) {
|
127 |
+
cloneValue.$field.val( '' );
|
128 |
+
}
|
129 |
+
}
|
130 |
+
};
|
131 |
+
|
132 |
/**
|
133 |
* Clone fields
|
134 |
* @param $container A div container which has all fields
|
|
|
135 |
*/
|
136 |
function clone( $container ) {
|
137 |
+
var $last = $container.children( '.rwmb-clone' ).last(),
|
138 |
$clone = $last.clone(),
|
139 |
+
inputSelectors = 'input[class*="rwmb"], textarea[class*="rwmb"], select[class*="rwmb"], button[class*="rwmb"]',
|
140 |
nextIndex = cloneIndex.nextIndex( $container );
|
141 |
|
142 |
// Reset value for fields
|
143 |
+
var $inputs = $clone.find( inputSelectors );
|
144 |
+
$inputs.each( cloneValue.reset );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
// Insert Clone
|
147 |
$clone.insertAfter( $last );
|
150 |
$clone.trigger( 'clone_instance', nextIndex );
|
151 |
|
152 |
// Set fields index. Must run before trigger clone event.
|
153 |
+
cloneIndex.set( $inputs, nextIndex );
|
154 |
+
|
155 |
+
// Trigger custom clone event.
|
156 |
+
$inputs.trigger( 'clone', nextIndex );
|
157 |
|
158 |
+
// After cloning fields.
|
159 |
+
$inputs.trigger( 'after_clone', nextIndex );
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
* Hide remove buttons when there's only 1 of them
|
164 |
*
|
165 |
* @param $container .rwmb-input container
|
|
|
|
|
166 |
*/
|
167 |
function toggleRemoveButtons( $container ) {
|
168 |
var $clones = $container.children( '.rwmb-clone' );
|
179 |
* Used with [data-max-clone] attribute. When max clone is reached, the add button is hid and vice versa
|
180 |
*
|
181 |
* @param $container .rwmb-input container
|
|
|
|
|
182 |
*/
|
183 |
function toggleAddButton( $container ) {
|
184 |
+
var $button = $container.children( '.add-clone' ),
|
185 |
maxClone = parseInt( $container.data( 'max-clone' ) ),
|
186 |
+
numClone = $container.children( '.rwmb-clone' ).length;
|
187 |
|
188 |
$button.toggle( isNaN( maxClone ) || ( maxClone && numClone < maxClone ) );
|
189 |
}
|
190 |
|
191 |
+
/**
|
192 |
+
* Initialize clone sorting.
|
193 |
+
*/
|
194 |
+
function initSortable() {
|
195 |
+
$( '.rwmb-input' ).each( function () {
|
196 |
+
var $container = $( this );
|
197 |
+
|
198 |
+
if ( undefined !== $container.sortable( 'instance' ) ) {
|
199 |
+
return;
|
200 |
+
}
|
201 |
+
|
202 |
+
$container.sortable( {
|
203 |
+
handle: '.rwmb-clone-icon',
|
204 |
+
placeholder: ' rwmb-clone rwmb-sortable-placeholder',
|
205 |
+
items: '> .rwmb-clone',
|
206 |
+
start: function ( event, ui ) {
|
207 |
+
// Make the placeholder has the same height as dragged item
|
208 |
+
ui.placeholder.height( ui.item.outerHeight() );
|
209 |
+
}
|
210 |
+
} );
|
211 |
+
} );
|
212 |
+
}
|
213 |
+
|
214 |
$( document )
|
215 |
// Add clones
|
216 |
.on( 'click', '.add-clone', function ( e ) {
|
221 |
|
222 |
toggleRemoveButtons( $container );
|
223 |
toggleAddButton( $container );
|
224 |
+
initSortable();
|
225 |
} )
|
226 |
// Remove clones
|
227 |
.on( 'click', '.remove-clone', function ( e ) {
|
249 |
.data( 'next-index', $container.children( '.rwmb-clone' ).length )
|
250 |
.sortable( {
|
251 |
handle: '.rwmb-clone-icon',
|
252 |
+
placeholder: ' rwmb-clone rwmb-sortable-placeholder',
|
253 |
+
items: '> .rwmb-clone',
|
254 |
start: function ( event, ui ) {
|
255 |
// Make the placeholder has the same height as dragged item
|
256 |
ui.placeholder.height( ui.item.outerHeight() );
|
@@ -23,6 +23,10 @@ jQuery( function ( $ ) {
|
|
23 |
if ( $inline.length ) {
|
24 |
options.altField = '#' + $this.attr( 'id' );
|
25 |
$this.on( 'keydown', _.debounce( function () {
|
|
|
|
|
|
|
|
|
26 |
$picker
|
27 |
.datepicker( 'setDate', $this.val() )
|
28 |
.find( ".ui-datepicker-current-day" )
|
@@ -55,6 +59,6 @@ jQuery( function ( $ ) {
|
|
55 |
return Math.floor( milliseconds / 1000 );
|
56 |
}
|
57 |
|
58 |
-
$( '
|
59 |
-
$(
|
60 |
} );
|
23 |
if ( $inline.length ) {
|
24 |
options.altField = '#' + $this.attr( 'id' );
|
25 |
$this.on( 'keydown', _.debounce( function () {
|
26 |
+
// if val is empty, return to allow empty datepicker input.
|
27 |
+
if ( !$this.val() ) {
|
28 |
+
return;
|
29 |
+
}
|
30 |
$picker
|
31 |
.datepicker( 'setDate', $this.val() )
|
32 |
.find( ".ui-datepicker-current-day" )
|
59 |
return Math.floor( milliseconds / 1000 );
|
60 |
}
|
61 |
|
62 |
+
$( '.rwmb-date' ).each( update );
|
63 |
+
$( document ).on( 'clone', '.rwmb-date', update );
|
64 |
} );
|
@@ -64,6 +64,6 @@ jQuery( function ( $ ) {
|
|
64 |
$.timepicker.setDefaults( $.timepicker.regional[RWMB_Datetime.localeShort] );
|
65 |
}
|
66 |
|
67 |
-
$( '
|
68 |
-
$(
|
69 |
} );
|
64 |
$.timepicker.setDefaults( $.timepicker.regional[RWMB_Datetime.localeShort] );
|
65 |
}
|
66 |
|
67 |
+
$( '.rwmb-datetime' ).each( update );
|
68 |
+
$( document ).on( 'clone', '.rwmb-datetime', update );
|
69 |
} );
|
@@ -1,9 +1,10 @@
|
|
1 |
jQuery( function ( $ ) {
|
2 |
'use strict';
|
3 |
|
4 |
-
var frame
|
|
|
5 |
|
6 |
-
$
|
7 |
e.preventDefault();
|
8 |
var $el = $( this );
|
9 |
|
@@ -30,8 +31,13 @@ jQuery( function ( $ ) {
|
|
30 |
} );
|
31 |
|
32 |
// Clear selected images
|
33 |
-
$
|
34 |
e.preventDefault();
|
35 |
$( this ).addClass( 'hidden' ).siblings( 'input' ).val( '' );
|
36 |
} );
|
|
|
|
|
|
|
|
|
|
|
37 |
} );
|
1 |
jQuery( function ( $ ) {
|
2 |
'use strict';
|
3 |
|
4 |
+
var frame,
|
5 |
+
$doc = $( document );
|
6 |
|
7 |
+
$doc.on( 'click', '.rwmb-file-input-select', function ( e ) {
|
8 |
e.preventDefault();
|
9 |
var $el = $( this );
|
10 |
|
31 |
} );
|
32 |
|
33 |
// Clear selected images
|
34 |
+
$doc.on( 'click', '.rwmb-file-input-remove', function ( e ) {
|
35 |
e.preventDefault();
|
36 |
$( this ).addClass( 'hidden' ).siblings( 'input' ).val( '' );
|
37 |
} );
|
38 |
+
|
39 |
+
// Hide the Remove button when cloning
|
40 |
+
$doc.on( 'clone', '.rwmb-file_input', function () {
|
41 |
+
$( this ).siblings( '.rwmb-file-input-remove' ).addClass( 'hidden' );
|
42 |
+
} );
|
43 |
} );
|
@@ -49,7 +49,9 @@ jQuery( function ( $ ) {
|
|
49 |
extensions = this.getExtensions().join( ',' ),
|
50 |
max_file_size;
|
51 |
this.plupload = $.extend( true, {
|
52 |
-
multipart_params: {
|
|
|
|
|
53 |
multipart: true,
|
54 |
urlstream_upload: true,
|
55 |
drop_element: this.dropzone,
|
@@ -72,14 +74,6 @@ jQuery( function ( $ ) {
|
|
72 |
this.plupload.required_features.send_binary_string = true;
|
73 |
}
|
74 |
|
75 |
-
if ( $('#post_ID').length && $('#post_ID').val() ) {
|
76 |
-
if ( -1 === this.plupload.url.indexOf('?') ) {
|
77 |
-
this.plupload.url += "?post_id=" + $('#post_ID').val();
|
78 |
-
} else {
|
79 |
-
this.plupload.url += "&post_id=" + $('#post_ID').val();
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
// Initialize the plupload instance.
|
84 |
this.uploader = new plupload.Uploader( this.plupload );
|
85 |
this.uploader.init();
|
@@ -185,10 +179,12 @@ jQuery( function ( $ ) {
|
|
185 |
* @return void
|
186 |
*/
|
187 |
function init() {
|
188 |
-
new FileUploadField( {input: this
|
|
|
|
|
|
|
189 |
}
|
190 |
|
191 |
-
$( '
|
192 |
-
$( '.rwmb-
|
193 |
-
.on( 'clone', ':input.rwmb-file_upload', init )
|
194 |
} );
|
49 |
extensions = this.getExtensions().join( ',' ),
|
50 |
max_file_size;
|
51 |
this.plupload = $.extend( true, {
|
52 |
+
multipart_params: {
|
53 |
+
post_id : $( '#post_ID' ).val()
|
54 |
+
},
|
55 |
multipart: true,
|
56 |
urlstream_upload: true,
|
57 |
drop_element: this.dropzone,
|
74 |
this.plupload.required_features.send_binary_string = true;
|
75 |
}
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
// Initialize the plupload instance.
|
78 |
this.uploader = new plupload.Uploader( this.plupload );
|
79 |
this.uploader.init();
|
179 |
* @return void
|
180 |
*/
|
181 |
function init() {
|
182 |
+
var view = new FileUploadField( { input: this } );
|
183 |
+
//Remove old then add new
|
184 |
+
$( this ).siblings( 'div.rwmb-media-view' ).remove();
|
185 |
+
$( this ).after( view.el );
|
186 |
}
|
187 |
|
188 |
+
$( '.rwmb-file_upload' ).each( init );
|
189 |
+
$( document ).on( 'clone', '.rwmb-file_upload', init )
|
|
|
190 |
} );
|
@@ -14,9 +14,9 @@
|
|
14 |
event.preventDefault();
|
15 |
|
16 |
var $this = $( this ),
|
17 |
-
$clone = $this.
|
18 |
|
19 |
-
$clone.insertBefore( this );
|
20 |
file.updateVisibility.call( $this.closest( '.rwmb-input' ).find( '.rwmb-uploaded' )[0] );
|
21 |
};
|
22 |
|
@@ -31,20 +31,21 @@
|
|
31 |
|
32 |
var $this = $( this ),
|
33 |
$item = $this.closest( 'li' ),
|
34 |
-
$uploaded = $this.closest( '.rwmb-uploaded' )
|
35 |
-
data = {
|
36 |
-
action: 'rwmb_delete_file',
|
37 |
-
_ajax_nonce: $uploaded.data( 'delete_nonce' ),
|
38 |
-
post_id: $( '#post_ID' ).val(),
|
39 |
-
field_id: $uploaded.data( 'field_id' ),
|
40 |
-
attachment_id: $this.data( 'attachment_id' ),
|
41 |
-
force_delete: $uploaded.data( 'force_delete' )
|
42 |
-
};
|
43 |
|
44 |
$item.remove();
|
45 |
file.updateVisibility.call( $uploaded );
|
46 |
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
if ( ! response.success ) {
|
49 |
alert( response.data );
|
50 |
}
|
@@ -56,19 +57,11 @@
|
|
56 |
* Expects `this` to equal the uploaded file list.
|
57 |
*/
|
58 |
file.sort = function () {
|
59 |
-
|
60 |
-
data = {
|
61 |
-
action: 'rwmb_reorder_files',
|
62 |
-
_ajax_nonce: $this.data( 'reorder_nonce' ),
|
63 |
-
post_id: $( '#post_ID' ).val(),
|
64 |
-
field_id: $this.data( 'field_id' )
|
65 |
-
};
|
66 |
-
$this.sortable( {
|
67 |
-
placeholder: 'ui-state-highlight',
|
68 |
items: 'li',
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
}
|
73 |
} );
|
74 |
};
|
@@ -80,24 +73,33 @@
|
|
80 |
file.updateVisibility = function () {
|
81 |
var $uploaded = $( this ),
|
82 |
max = parseInt( $uploaded.data( 'max_file_uploads' ), 10 ),
|
83 |
-
$
|
84 |
-
$
|
85 |
numFiles = $uploaded.children().length,
|
86 |
-
numInputs = $
|
87 |
|
88 |
$uploaded.toggle( 0 < numFiles );
|
89 |
if ( 0 === max ) {
|
90 |
return;
|
91 |
}
|
92 |
-
$
|
93 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
};
|
95 |
|
96 |
// Initialize when document ready.
|
97 |
$( function ( $ ) {
|
98 |
$( document )
|
99 |
-
.on( 'click', '.rwmb-add
|
100 |
-
.on( 'click', '.rwmb-delete
|
|
|
101 |
|
102 |
var $uploaded = $( '.rwmb-uploaded' );
|
103 |
$uploaded.each( file.sort );
|
14 |
event.preventDefault();
|
15 |
|
16 |
var $this = $( this ),
|
17 |
+
$clone = $this.prev().clone();
|
18 |
|
19 |
+
$clone.insertBefore( this ).val( '' );
|
20 |
file.updateVisibility.call( $this.closest( '.rwmb-input' ).find( '.rwmb-uploaded' )[0] );
|
21 |
};
|
22 |
|
31 |
|
32 |
var $this = $( this ),
|
33 |
$item = $this.closest( 'li' ),
|
34 |
+
$uploaded = $this.closest( '.rwmb-uploaded' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
$item.remove();
|
37 |
file.updateVisibility.call( $uploaded );
|
38 |
|
39 |
+
if ( 1 > $uploaded.data( 'force_delete' ) ) {
|
40 |
+
return;
|
41 |
+
}
|
42 |
+
|
43 |
+
$.post( ajaxurl, {
|
44 |
+
action: 'rwmb_delete_file',
|
45 |
+
_ajax_nonce: $uploaded.data( 'delete_nonce' ),
|
46 |
+
field_id: $uploaded.data( 'field_id' ),
|
47 |
+
attachment_id: $this.data( 'attachment_id' )
|
48 |
+
}, function ( response ) {
|
49 |
if ( ! response.success ) {
|
50 |
alert( response.data );
|
51 |
}
|
57 |
* Expects `this` to equal the uploaded file list.
|
58 |
*/
|
59 |
file.sort = function () {
|
60 |
+
$( this ).sortable( {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
items: 'li',
|
62 |
+
start: function ( e, ui ) {
|
63 |
+
ui.placeholder.height( ui.helper.outerHeight() );
|
64 |
+
ui.placeholder.width( ui.helper.outerWidth() );
|
65 |
}
|
66 |
} );
|
67 |
};
|
73 |
file.updateVisibility = function () {
|
74 |
var $uploaded = $( this ),
|
75 |
max = parseInt( $uploaded.data( 'max_file_uploads' ), 10 ),
|
76 |
+
$new = $uploaded.siblings( '.rwmb-file-new' ),
|
77 |
+
$add = $new.find( '.rwmb-file-add' ),
|
78 |
numFiles = $uploaded.children().length,
|
79 |
+
numInputs = $new.find( '.rwmb-file-input' ).length;
|
80 |
|
81 |
$uploaded.toggle( 0 < numFiles );
|
82 |
if ( 0 === max ) {
|
83 |
return;
|
84 |
}
|
85 |
+
$new.toggle( numFiles < max );
|
86 |
+
$add.toggle( numFiles + numInputs < max );
|
87 |
+
};
|
88 |
+
|
89 |
+
// Reset field when cloning.
|
90 |
+
file.resetClone = function() {
|
91 |
+
var $this = $( this ),
|
92 |
+
$clone = $this.closest( '.rwmb-clone' );
|
93 |
+
$clone.find( '.rwmb-uploaded' ).remove();
|
94 |
+
$clone.find( '.rwmb-file-input' ).not( ':first' ).remove();
|
95 |
};
|
96 |
|
97 |
// Initialize when document ready.
|
98 |
$( function ( $ ) {
|
99 |
$( document )
|
100 |
+
.on( 'click', '.rwmb-file-add', file.addHandler )
|
101 |
+
.on( 'click', '.rwmb-file-delete', file.deleteHandler )
|
102 |
+
.on( 'clone', '.rwmb-file-input', file.resetClone );
|
103 |
|
104 |
var $uploaded = $( '.rwmb-uploaded' );
|
105 |
$uploaded.each( file.sort );
|
@@ -14,7 +14,7 @@ jQuery( function ( $ ) {
|
|
14 |
this.list = new MediaList( {
|
15 |
controller: this.controller,
|
16 |
itemView: MediaItem.extend( {
|
17 |
-
className: 'rwmb-image-item',
|
18 |
template: wp.template( 'rwmb-image-item' ),
|
19 |
initialize: function( models, options ) {
|
20 |
MediaItem.prototype.initialize.call( this, models, options );
|
@@ -29,9 +29,19 @@ jQuery( function ( $ ) {
|
|
29 |
* Initialize image fields
|
30 |
*/
|
31 |
function initImageField() {
|
32 |
-
new ImageField( {input: this
|
|
|
33 |
}
|
34 |
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
} );
|
14 |
this.list = new MediaList( {
|
15 |
controller: this.controller,
|
16 |
itemView: MediaItem.extend( {
|
17 |
+
className: 'rwmb-image-item attachment',
|
18 |
template: wp.template( 'rwmb-image-item' ),
|
19 |
initialize: function( models, options ) {
|
20 |
MediaItem.prototype.initialize.call( this, models, options );
|
29 |
* Initialize image fields
|
30 |
*/
|
31 |
function initImageField() {
|
32 |
+
var view = new ImageField( { input: this } );
|
33 |
+
$( this ).after( view.el );
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* Remove views for uploaded images.
|
38 |
+
*/
|
39 |
+
function removeView() {
|
40 |
+
$( this ).siblings( '.rwmb-media-view' ).remove();
|
41 |
+
}
|
42 |
+
|
43 |
+
$( '.rwmb-image_advanced' ).each( initImageField );
|
44 |
+
$( document )
|
45 |
+
.on( 'clone', '.rwmb-image_advanced', removeView )
|
46 |
+
.on( 'after_clone', '.rwmb-image_advanced', initImageField );
|
47 |
} );
|
@@ -19,10 +19,13 @@ jQuery( function ( $ ) {
|
|
19 |
* @return void
|
20 |
*/
|
21 |
function init() {
|
22 |
-
new ImageUploadField( {input: this
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
-
$( '
|
26 |
-
$(
|
27 |
-
.on( 'clone', '
|
28 |
} );
|
19 |
* @return void
|
20 |
*/
|
21 |
function init() {
|
22 |
+
var view = new ImageUploadField( { input: this } );
|
23 |
+
//Remove old then add new
|
24 |
+
$( this ).siblings( 'div.rwmb-media-view' ).remove();
|
25 |
+
$( this ).after( view.el );
|
26 |
}
|
27 |
|
28 |
+
$( '.rwmb-image_upload, .rwmb-plupload_image' ).each( init );
|
29 |
+
$( document )
|
30 |
+
.on( 'clone', '.rwmb-image_upload, .rwmb-plupload_image', init )
|
31 |
} );
|
@@ -20,10 +20,10 @@ jQuery( function ( $ ) {
|
|
20 |
|
21 |
$( '.rwmb-input-list-select-all-none' ).toggle(
|
22 |
function () {
|
23 |
-
$('input
|
24 |
},
|
25 |
function () {
|
26 |
-
$('input
|
27 |
}
|
28 |
);
|
29 |
} );
|
20 |
|
21 |
$( '.rwmb-input-list-select-all-none' ).toggle(
|
22 |
function () {
|
23 |
+
$('input[name="' + $(this).data('name') + '[]"]').prop('checked', true);
|
24 |
},
|
25 |
function () {
|
26 |
+
$('input[name="' + $(this).data('name') + '[]"]').prop('checked', false);
|
27 |
}
|
28 |
);
|
29 |
} );
|
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! jQuery Validation Plugin - v1.
|
2 |
-
*
|
3 |
-
* Copyright (c)
|
4 |
-
!function(a){"function"==typeof define&&define.amd?define(["jquery","./jquery.validate.min"],a): "object" == typeof module && module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){!function(){function b(a){return a.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c) || b(a).match(/\b\w+\b/g).length <= d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c) || b(a).match(/\b\w+\b/g).length >= d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("accept",function(b,c,d){var e,f,g,h="string"==typeof d?d.replace(/\s/g,""):"image/*",i=this.optional(c);if(i)return i;if("file"===a(c).attr("type")&&(h=h.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g,"\\$&").replace(/,/g,"|").replace("/*","/.*"),c.files&&c.files.length))for(g=new RegExp(".?("+h+")$","i"),e=0;e<c.files.length;e++)if(f=c.files[e],!f.type.match(g))return!1;return!0},a.validator.format("Please enter a value with a valid mimetype.")),a.validator.addMethod("alphanumeric",function(a,b){return this.optional(b)||/^\w+$/i.test(a)},"Letters, numbers, and underscores only please"),a.validator.addMethod("bankaccountNL",function(a,b){if(this.optional(b))return!0;if(!/^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test(a))return!1;var c,d,e,f=a.replace(/ /g,""),g=0,h=f.length;for(c=0;h>c;c++)d=h-c,e=f.substring(c,c+1),g+=d*e;return g%11===0},"Please specify a valid bank account number"),a.validator.addMethod("bankorgiroaccountNL",function(b,c){return this.optional(c)||a.validator.methods.bankaccountNL.call(this,b,c)||a.validator.methods.giroaccountNL.call(this,b,c)},"Please specify a valid bank or giro account number"),a.validator.addMethod("bic",function(a,b){return this.optional(b)||/^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a.toUpperCase())},"Please specify a valid BIC code"),a.validator.addMethod("cifES",function(a){"use strict";var b,c,d,e,f,g,h=[];if(a=a.toUpperCase(),!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)"))return!1;for(d=0;9>d;d++)h[d]=parseInt(a.charAt(d),10);for(c=h[2]+h[4]+h[6],e=1;8>e;e+=2)f=(2*h[e]).toString(),g=f.charAt(1),c+=parseInt(f.charAt(0),10)+(""===g?0:parseInt(g,10));return/^[ABCDEFGHJNPQRSUVW]{1}/.test(a)?(c+="",b=10-parseInt(c.charAt(c.length-1),10),a+=b,h[8].toString()===String.fromCharCode(64+b)||h[8].toString()===a.charAt(a.length-1)):!1},"Please specify a valid CIF number."),a.validator.addMethod("cpfBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(e=1;9>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;10>=e;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},"Please specify a valid CPF number"),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=e?!0:c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency"),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number"),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="";if(c=l.substring(0,2),h={AL:"\\d{8}[\\dA-Z]{16}",AD:"\\d{8}[\\dA-Z]{12}",AT:"\\d{16}",AZ:"[\\dA-Z]{4}\\d{20}",BE:"\\d{12}",BH:"[A-Z]{4}[\\dA-Z]{14}",BA:"\\d{16}",BR:"\\d{23}[A-Z][\\dA-Z]",BG:"[A-Z]{4}\\d{6}[\\dA-Z]{8}",CR:"\\d{17}",HR:"\\d{17}",CY:"\\d{8}[\\dA-Z]{16}",CZ:"\\d{20}",DK:"\\d{14}",DO:"[A-Z]{4}\\d{20}",EE:"\\d{16}",FO:"\\d{14}",FI:"\\d{14}",FR:"\\d{10}[\\dA-Z]{11}\\d{2}",GE:"[\\dA-Z]{2}\\d{16}",DE:"\\d{18}",GI:"[A-Z]{4}[\\dA-Z]{15}",GR:"\\d{7}[\\dA-Z]{16}",GL:"\\d{14}",GT:"[\\dA-Z]{4}[\\dA-Z]{20}",HU:"\\d{24}",IS:"\\d{22}",IE:"[\\dA-Z]{4}\\d{14}",IL:"\\d{19}",IT:"[A-Z]\\d{10}[\\dA-Z]{12}",KZ:"\\d{3}[\\dA-Z]{13}",KW:"[A-Z]{4}[\\dA-Z]{22}",LV:"[A-Z]{4}[\\dA-Z]{13}",LB:"\\d{4}[\\dA-Z]{20}",LI:"\\d{5}[\\dA-Z]{12}",LT:"\\d{16}",LU:"\\d{3}[\\dA-Z]{13}",MK:"\\d{3}[\\dA-Z]{10}\\d{2}",MT:"[A-Z]{4}\\d{5}[\\dA-Z]{18}",MR:"\\d{23}",MU:"[A-Z]{4}\\d{19}[A-Z]{3}",MC:"\\d{10}[\\dA-Z]{11}\\d{2}",MD:"[\\dA-Z]{2}\\d{18}",ME:"\\d{18}",NL:"[A-Z]{4}\\d{10}",NO:"\\d{11}",PK:"[\\dA-Z]{4}\\d{16}",PS:"[\\dA-Z]{4}\\d{21}",PL:"\\d{24}",PT:"\\d{21}",RO:"[A-Z]{4}[\\dA-Z]{16}",SM:"[A-Z]\\d{10}[\\dA-Z]{12}",SA:"\\d{2}[\\dA-Z]{18}",RS:"\\d{18}",SK:"\\d{20}",SI:"\\d{15}",ES:"\\d{20}",SE:"\\d{20}",CH:"\\d{5}[\\dA-Z]{12}",TN:"\\d{20}",TR:"\\d{5}[\\dA-Z]{17}",AE:"\\d{3}\\d{16}",GB:"[A-Z]{4}\\d{14}",VG:"[\\dA-Z]{4}\\d{16}"},g=h[c],"undefined"!=typeof g&&(i=new RegExp("^[A-Z]{2}\\d{2}"+g+"$",""),!i.test(l)))return!1;for(d=l.substring(4,l.length)+l.substring(0,4),j=0;j<d.length;j++)e=d.charAt(j),"0"!==e&&(n=!1),n||(m+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(e));for(k=0;k<m.length;k++)f=m.charAt(k),p=""+o+f,o=p%97;return 1===o},"Please specify a valid IBAN"),a.validator.addMethod("integer",function(a,b){return this.optional(b)||/^-?\d+$/.test(a)},"A positive or negative non-decimal number please"),a.validator.addMethod("ipv4",function(a,b){return this.optional(b)||/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(a)},"Please enter a valid IP v4 address."),a.validator.addMethod("ipv6",function(a,b){return this.optional(b)||/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(a)},"Please enter a valid IP v6 address."),a.validator.addMethod("lettersonly",function(a,b){return this.optional(b)||/^[a-z]+$/i.test(a)},"Letters only please"),a.validator.addMethod("letterswithbasicpunc",function(a,b){return this.optional(b)||/^[a-z\-.,()'"\s]+$/i.test(a)},"Letters or punctuation only please"),a.validator.addMethod("mobileNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid mobile number"),a.validator.addMethod("mobileUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number"),a.validator.addMethod("nieES",function(a){"use strict";return a=a.toUpperCase(),a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")?/^[T]{1}/.test(a)?a[8]===/^[T]{1}[A-Z0-9]{8}$/.test(a):/^[XYZ]{1}/.test(a)?a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.replace("X","0").replace("Y","1").replace("Z","2").substring(0,8)%23):!1:!1},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a){"use strict";return a=a.toUpperCase(),a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")?/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):/^[KLM]{1}/.test(a)?a[8]===String.fromCharCode(64):!1:!1},"Please specify a valid NIF number."),jQuery.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please"),a.validator.addMethod("pattern",function(a,b,c){return this.optional(b)?!0:("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number"),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/)},"Please specify a valid phone number"),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number"),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode"),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=e||"undefined"==typeof c.caseSensitive?!1:c.caseSensitive,g=e||"undefined"==typeof c.includeTerritories?!1:c.includeTerritories,h=e||"undefined"==typeof c.includeMilitary?!1:c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state"),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59"),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format"),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;17>b;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c<h.length;c++)if(d.toUpperCase()===h[c]){d=i[c],d*=e,isNaN(g)&&8===c&&(g=h[c]);break}}else d*=e;k+=d}return f=k%11,10===f&&(f="X"),f===g},"The specified vehicle identification number (VIN) is invalid."),a.validator.addMethod("zipcodeUS",function(a,b){return this.optional(b)||/^\d{5}(-\d{4})?$/.test(a)},"The specified US ZIP Code is invalid"),a.validator.addMethod("ziprange",function(a,b){return this.optional(b)||/^90[2-5]\d\{2\}-\d{4}$/.test(a)},"Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx")});
|
1 |
+
/*! jQuery Validation Plugin - v1.17.0 - 7/29/2017
|
2 |
+
* https://jqueryvalidation.org/
|
3 |
+
* Copyright (c) 2017 Jörn Zaefferer; Licensed MIT */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery","./jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(){function b(a){return a.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("accept",function(b,c,d){var e,f,g,h="string"==typeof d?d.replace(/\s/g,""):"image/*",i=this.optional(c);if(i)return i;if("file"===a(c).attr("type")&&(h=h.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g,"\\$&").replace(/,/g,"|").replace(/\/\*/g,"/.*"),c.files&&c.files.length))for(g=new RegExp(".?("+h+")$","i"),e=0;e<c.files.length;e++)if(f=c.files[e],!f.type.match(g))return!1;return!0},a.validator.format("Please enter a value with a valid mimetype.")),a.validator.addMethod("alphanumeric",function(a,b){return this.optional(b)||/^\w+$/i.test(a)},"Letters, numbers, and underscores only please"),a.validator.addMethod("bankaccountNL",function(a,b){if(this.optional(b))return!0;if(!/^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test(a))return!1;var c,d,e,f=a.replace(/ /g,""),g=0,h=f.length;for(c=0;c<h;c++)d=h-c,e=f.substring(c,c+1),g+=d*e;return g%11===0},"Please specify a valid bank account number"),a.validator.addMethod("bankorgiroaccountNL",function(b,c){return this.optional(c)||a.validator.methods.bankaccountNL.call(this,b,c)||a.validator.methods.giroaccountNL.call(this,b,c)},"Please specify a valid bank or giro account number"),a.validator.addMethod("bic",function(a,b){return this.optional(b)||/^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a.toUpperCase())},"Please specify a valid BIC code"),a.validator.addMethod("cifES",function(a,b){"use strict";function c(a){return a%2===0}if(this.optional(b))return!0;var d,e,f,g,h=new RegExp(/^([ABCDEFGHJKLMNPQRSUVW])(\d{7})([0-9A-J])$/gi),i=a.substring(0,1),j=a.substring(1,8),k=a.substring(8,9),l=0,m=0,n=0;if(9!==a.length||!h.test(a))return!1;for(d=0;d<j.length;d++)e=parseInt(j[d],10),c(d)?(e*=2,n+=e<10?e:e-9):m+=e;return l=m+n,f=(10-l.toString().substr(-1)).toString(),f=parseInt(f,10)>9?"0":f,g="JABCDEFGHI".substr(f,1).toString(),i.match(/[ABEH]/)?k===f:i.match(/[KPQS]/)?k===g:k===f||k===g},"Please specify a valid CIF number."),a.validator.addMethod("cpfBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(e=1;e<=9;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;e<=10;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},"Please specify a valid CPF number"),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=!!e||c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency"),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number"),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="",q=5;if(l.length<q)return!1;if(c=l.substring(0,2),h={AL:"\\d{8}[\\dA-Z]{16}",AD:"\\d{8}[\\dA-Z]{12}",AT:"\\d{16}",AZ:"[\\dA-Z]{4}\\d{20}",BE:"\\d{12}",BH:"[A-Z]{4}[\\dA-Z]{14}",BA:"\\d{16}",BR:"\\d{23}[A-Z][\\dA-Z]",BG:"[A-Z]{4}\\d{6}[\\dA-Z]{8}",CR:"\\d{17}",HR:"\\d{17}",CY:"\\d{8}[\\dA-Z]{16}",CZ:"\\d{20}",DK:"\\d{14}",DO:"[A-Z]{4}\\d{20}",EE:"\\d{16}",FO:"\\d{14}",FI:"\\d{14}",FR:"\\d{10}[\\dA-Z]{11}\\d{2}",GE:"[\\dA-Z]{2}\\d{16}",DE:"\\d{18}",GI:"[A-Z]{4}[\\dA-Z]{15}",GR:"\\d{7}[\\dA-Z]{16}",GL:"\\d{14}",GT:"[\\dA-Z]{4}[\\dA-Z]{20}",HU:"\\d{24}",IS:"\\d{22}",IE:"[\\dA-Z]{4}\\d{14}",IL:"\\d{19}",IT:"[A-Z]\\d{10}[\\dA-Z]{12}",KZ:"\\d{3}[\\dA-Z]{13}",KW:"[A-Z]{4}[\\dA-Z]{22}",LV:"[A-Z]{4}[\\dA-Z]{13}",LB:"\\d{4}[\\dA-Z]{20}",LI:"\\d{5}[\\dA-Z]{12}",LT:"\\d{16}",LU:"\\d{3}[\\dA-Z]{13}",MK:"\\d{3}[\\dA-Z]{10}\\d{2}",MT:"[A-Z]{4}\\d{5}[\\dA-Z]{18}",MR:"\\d{23}",MU:"[A-Z]{4}\\d{19}[A-Z]{3}",MC:"\\d{10}[\\dA-Z]{11}\\d{2}",MD:"[\\dA-Z]{2}\\d{18}",ME:"\\d{18}",NL:"[A-Z]{4}\\d{10}",NO:"\\d{11}",PK:"[\\dA-Z]{4}\\d{16}",PS:"[\\dA-Z]{4}\\d{21}",PL:"\\d{24}",PT:"\\d{21}",RO:"[A-Z]{4}[\\dA-Z]{16}",SM:"[A-Z]\\d{10}[\\dA-Z]{12}",SA:"\\d{2}[\\dA-Z]{18}",RS:"\\d{18}",SK:"\\d{20}",SI:"\\d{15}",ES:"\\d{20}",SE:"\\d{20}",CH:"\\d{5}[\\dA-Z]{12}",TN:"\\d{20}",TR:"\\d{5}[\\dA-Z]{17}",AE:"\\d{3}\\d{16}",GB:"[A-Z]{4}\\d{14}",VG:"[\\dA-Z]{4}\\d{16}"},g=h[c],"undefined"!=typeof g&&(i=new RegExp("^[A-Z]{2}\\d{2}"+g+"$",""),!i.test(l)))return!1;for(d=l.substring(4,l.length)+l.substring(0,4),j=0;j<d.length;j++)e=d.charAt(j),"0"!==e&&(n=!1),n||(m+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(e));for(k=0;k<m.length;k++)f=m.charAt(k),p=""+o+f,o=p%97;return 1===o},"Please specify a valid IBAN"),a.validator.addMethod("integer",function(a,b){return this.optional(b)||/^-?\d+$/.test(a)},"A positive or negative non-decimal number please"),a.validator.addMethod("ipv4",function(a,b){return this.optional(b)||/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(a)},"Please enter a valid IP v4 address."),a.validator.addMethod("ipv6",function(a,b){return this.optional(b)||/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(a)},"Please enter a valid IP v6 address."),a.validator.addMethod("lettersonly",function(a,b){return this.optional(b)||/^[a-z]+$/i.test(a)},"Letters only please"),a.validator.addMethod("letterswithbasicpunc",function(a,b){return this.optional(b)||/^[a-z\-.,()'"\s]+$/i.test(a)},"Letters or punctuation only please"),a.validator.addMethod("mobileNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid mobile number"),a.validator.addMethod("mobileUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number"),a.validator.addMethod("netmask",function(a,b){return this.optional(b)||/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a)},"Please enter a valid netmask."),a.validator.addMethod("nieES",function(a,b){"use strict";if(this.optional(b))return!0;var c,d=new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi),e="TRWAGMYFPDXBNJZSQVHLCKET",f=a.substr(a.length-1).toUpperCase();return a=a.toString().toUpperCase(),!(a.length>10||a.length<9||!d.test(a))&&(a=a.replace(/^[X]/,"0").replace(/^[Y]/,"1").replace(/^[Z]/,"2"),c=9===a.length?a.substr(0,8):a.substr(0,9),e.charAt(parseInt(c,10)%23)===f)},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a,b){"use strict";return!!this.optional(b)||(a=a.toUpperCase(),!!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")&&(/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):!!/^[KLM]{1}/.test(a)&&a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,1)%23)))},"Please specify a valid NIF number."),a.validator.addMethod("nipPL",function(a){"use strict";if(a=a.replace(/[^0-9]/g,""),10!==a.length)return!1;for(var b=[6,5,7,2,3,4,5,6,7],c=0,d=0;d<9;d++)c+=b[d]*a[d];var e=c%11,f=10===e?0:e;return f===parseInt(a[9],10)},"Please specify a valid NIP number."),a.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please"),a.validator.addMethod("pattern",function(a,b,c){return!!this.optional(b)||("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number"),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number"),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/)},"Please specify a valid phone number"),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode"),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=!e&&"undefined"!=typeof c.caseSensitive&&c.caseSensitive,g=!e&&"undefined"!=typeof c.includeTerritories&&c.includeTerritories,h=!e&&"undefined"!=typeof c.includeMilitary&&c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state"),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59"),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format"),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;b<17;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c<h.length;c++)if(d.toUpperCase()===h[c]){d=i[c],d*=e,isNaN(g)&&8===c&&(g=h[c]);break}}else d*=e;k+=d}return f=k%11,10===f&&(f="X"),f===g},"The specified vehicle identification number (VIN) is invalid."),a.validator.addMethod("zipcodeUS",function(a,b){return this.optional(b)||/^\d{5}(-\d{4})?$/.test(a)},"The specified US ZIP Code is invalid"),a.validator.addMethod("ziprange",function(a,b){return this.optional(b)||/^90[2-5]\d\{2\}-\d{4}$/.test(a)},"Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx"),a});
|
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! jQuery Validation Plugin - v1.
|
2 |
-
*
|
3 |
-
* Copyright (c)
|
4 |
-
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){if(this.length){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=h&&g.check(e)))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)a[b]&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]),d in c||!b.objectLength(a(this).rules())?!1:(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);if("function"==typeof f.normalizer){if(i=f.normalizer.call(b,i),"string"!=typeof i)throw new TypeError("The normalizer should return a string value.");delete f.normalizer}for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e=a(c).attr("type"),f="Step attribute on input type "+e+" is not supported.",g=["text","number","range"],h=new RegExp("\\b"+e+"\\b"),i=e&&!h.test(g.join());if(i)throw new Error(f);return this.optional(c)||b%d===0},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});
|
1 |
+
/*! jQuery Validation Plugin - v1.17.0 - 7/29/2017
|
2 |
+
* https://jqueryvalidation.org/
|
3 |
+
* Copyright (c) 2017 Jörn Zaefferer; Licensed MIT */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!c.settings.submitHandler||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(null!=j&&(!j.form&&j.hasAttribute("contenteditable")&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){!this.form&&this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name"));var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0],this.name=d),!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);if("function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f){if(j=f.call(b,j),"string"!=typeof j)throw new TypeError("The normalizer should return a string value.");delete g.normalizer}for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a});
|
@@ -34,6 +34,11 @@ jQuery( function ( $ ) {
|
|
34 |
|
35 |
// Typcast zoom to a number
|
36 |
mapOptions.zoom *= 1;
|
|
|
|
|
|
|
|
|
|
|
37 |
map = new google.maps.Map( this, mapOptions );
|
38 |
|
39 |
// Set marker
|
34 |
|
35 |
// Typcast zoom to a number
|
36 |
mapOptions.zoom *= 1;
|
37 |
+
|
38 |
+
if ( typeof mapOptions.styles === 'string' ) {
|
39 |
+
mapOptions.styles = JSON.parse(mapOptions.styles);
|
40 |
+
}
|
41 |
+
|
42 |
map = new google.maps.Map( this, mapOptions );
|
43 |
|
44 |
// Set marker
|
@@ -1,4 +1,6 @@
|
|
1 |
-
|
|
|
|
|
2 |
'use strict';
|
3 |
|
4 |
// Use function construction to store map & DOM elements separately for each instance
|
@@ -6,6 +8,9 @@
|
|
6 |
this.$container = $container;
|
7 |
};
|
8 |
|
|
|
|
|
|
|
9 |
// Use prototype for better performance
|
10 |
MapField.prototype = {
|
11 |
// Initialize everything
|
@@ -24,7 +29,7 @@
|
|
24 |
this.canvas = this.$canvas[0];
|
25 |
this.$coordinate = this.$container.find( '.rwmb-map-coordinate' );
|
26 |
this.$findButton = this.$container.find( '.rwmb-map-goto-address-button' );
|
27 |
-
this.addressField = this.$
|
28 |
},
|
29 |
|
30 |
// Initialize map elements
|
@@ -42,20 +47,19 @@
|
|
42 |
mapTypeId: google.maps.MapTypeId.ROADMAP
|
43 |
} );
|
44 |
this.marker = new google.maps.Marker( {position: latLng, map: this.map, draggable: true} );
|
45 |
-
this.geocoder = new google.maps.Geocoder();
|
46 |
},
|
47 |
|
48 |
// Initialize marker position
|
49 |
initMarkerPosition: function () {
|
50 |
-
var
|
51 |
-
|
52 |
zoom;
|
53 |
|
54 |
-
if (
|
55 |
-
|
56 |
-
this.marker.setPosition( new google.maps.LatLng(
|
57 |
|
58 |
-
zoom =
|
59 |
|
60 |
this.map.setCenter( this.marker.position );
|
61 |
this.map.setZoom( zoom );
|
@@ -90,8 +94,7 @@
|
|
90 |
* Add a custom event that allows other scripts to refresh the maps when needed
|
91 |
* For example: when maps is in tabs or hidden div (this is known issue of Google Maps)
|
92 |
*
|
93 |
-
* @see https://developers.google.com/maps/documentation/javascript/reference
|
94 |
-
* ('resize' Event)
|
95 |
*/
|
96 |
$( window ).on( 'rwmb_map_refresh', function () {
|
97 |
that.refresh();
|
@@ -127,7 +130,12 @@
|
|
127 |
return;
|
128 |
}
|
129 |
|
130 |
-
var $address = $( '
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
// If Meta Box Geo Location installed. Do not run auto complete.
|
133 |
if ( $( '.rwmb-geo-binding' ).length ) {
|
@@ -144,7 +152,7 @@
|
|
144 |
'address': request.term,
|
145 |
'region': that.$canvas.data( 'region' )
|
146 |
};
|
147 |
-
|
148 |
response( $.map( results, function ( item ) {
|
149 |
return {
|
150 |
label: item.formatted_address,
|
@@ -180,39 +188,43 @@
|
|
180 |
that = this;
|
181 |
|
182 |
for ( loop = 0; loop < fieldList.length; loop ++ ) {
|
183 |
-
addressList[loop] =
|
184 |
}
|
185 |
|
186 |
address = addressList.join( ',' ).replace( /\n/g, ',' ).replace( /,,/g, ',' );
|
187 |
|
188 |
-
if ( address ) {
|
189 |
-
|
190 |
-
if ( status === google.maps.GeocoderStatus.OK ) {
|
191 |
-
that.map.setCenter( results[0].geometry.location );
|
192 |
-
that.marker.setPosition( results[0].geometry.location );
|
193 |
-
that.updateCoordinate( results[0].geometry.location );
|
194 |
-
}
|
195 |
-
} );
|
196 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
198 |
};
|
199 |
|
200 |
-
|
201 |
$( '.rwmb-map-field' ).each( function () {
|
202 |
-
var
|
203 |
-
|
|
|
|
|
|
|
204 |
|
205 |
-
$( this )
|
|
|
|
|
206 |
} );
|
|
|
207 |
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
field.init();
|
212 |
-
|
213 |
-
$( this ).data( 'mapController', field );
|
214 |
-
} );
|
215 |
-
} );
|
216 |
} );
|
217 |
|
218 |
-
})( jQuery );
|
1 |
+
/* global google */
|
2 |
+
|
3 |
+
(function ( $, document, window, google ) {
|
4 |
'use strict';
|
5 |
|
6 |
// Use function construction to store map & DOM elements separately for each instance
|
8 |
this.$container = $container;
|
9 |
};
|
10 |
|
11 |
+
// Geocoder service.
|
12 |
+
var geocoder = new google.maps.Geocoder();
|
13 |
+
|
14 |
// Use prototype for better performance
|
15 |
MapField.prototype = {
|
16 |
// Initialize everything
|
29 |
this.canvas = this.$canvas[0];
|
30 |
this.$coordinate = this.$container.find( '.rwmb-map-coordinate' );
|
31 |
this.$findButton = this.$container.find( '.rwmb-map-goto-address-button' );
|
32 |
+
this.addressField = this.$container.data( 'address-field' );
|
33 |
},
|
34 |
|
35 |
// Initialize map elements
|
47 |
mapTypeId: google.maps.MapTypeId.ROADMAP
|
48 |
} );
|
49 |
this.marker = new google.maps.Marker( {position: latLng, map: this.map, draggable: true} );
|
|
|
50 |
},
|
51 |
|
52 |
// Initialize marker position
|
53 |
initMarkerPosition: function () {
|
54 |
+
var coordinate = this.$coordinate.val(),
|
55 |
+
location,
|
56 |
zoom;
|
57 |
|
58 |
+
if ( coordinate ) {
|
59 |
+
location = coordinate.split( ',' );
|
60 |
+
this.marker.setPosition( new google.maps.LatLng( location[0], location[1] ) );
|
61 |
|
62 |
+
zoom = location.length > 2 ? parseInt( location[2], 10 ) : 14;
|
63 |
|
64 |
this.map.setCenter( this.marker.position );
|
65 |
this.map.setZoom( zoom );
|
94 |
* Add a custom event that allows other scripts to refresh the maps when needed
|
95 |
* For example: when maps is in tabs or hidden div (this is known issue of Google Maps)
|
96 |
*
|
97 |
+
* @see https://developers.google.com/maps/documentation/javascript/reference ('resize' Event)
|
|
|
98 |
*/
|
99 |
$( window ).on( 'rwmb_map_refresh', function () {
|
100 |
that.refresh();
|
130 |
return;
|
131 |
}
|
132 |
|
133 |
+
var $address = $( 'input[name="' + this.addressField + '"]');
|
134 |
+
|
135 |
+
// If map and address is inside a group, the input name of address field is changed.
|
136 |
+
if ( 0 === $address.length ) {
|
137 |
+
$address = this.$container.closest( '.rwmb-group-wrapper' ).find( 'input[name*="[' + this.addressField + ']"]' );
|
138 |
+
}
|
139 |
|
140 |
// If Meta Box Geo Location installed. Do not run auto complete.
|
141 |
if ( $( '.rwmb-geo-binding' ).length ) {
|
152 |
'address': request.term,
|
153 |
'region': that.$canvas.data( 'region' )
|
154 |
};
|
155 |
+
geocoder.geocode( options, function ( results ) {
|
156 |
response( $.map( results, function ( item ) {
|
157 |
return {
|
158 |
label: item.formatted_address,
|
188 |
that = this;
|
189 |
|
190 |
for ( loop = 0; loop < fieldList.length; loop ++ ) {
|
191 |
+
addressList[loop] = $( '#' + fieldList[loop] ).val();
|
192 |
}
|
193 |
|
194 |
address = addressList.join( ',' ).replace( /\n/g, ',' ).replace( /,,/g, ',' );
|
195 |
|
196 |
+
if ( ! address ) {
|
197 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
+
|
200 |
+
geocoder.geocode( {'address': address}, function ( results, status ) {
|
201 |
+
if ( status !== google.maps.GeocoderStatus.OK ) {
|
202 |
+
return;
|
203 |
+
}
|
204 |
+
that.map.setCenter( results[0].geometry.location );
|
205 |
+
that.marker.setPosition( results[0].geometry.location );
|
206 |
+
that.updateCoordinate( results[0].geometry.location );
|
207 |
+
} );
|
208 |
}
|
209 |
};
|
210 |
|
211 |
+
function update() {
|
212 |
$( '.rwmb-map-field' ).each( function () {
|
213 |
+
var $this = $( this ),
|
214 |
+
controller = $this.data( 'mapController' );
|
215 |
+
if ( controller ) {
|
216 |
+
return;
|
217 |
+
}
|
218 |
|
219 |
+
controller = new MapField( $( this ) );
|
220 |
+
controller.init();
|
221 |
+
$this.data( 'mapController', controller );
|
222 |
} );
|
223 |
+
}
|
224 |
|
225 |
+
$( function () {
|
226 |
+
update();
|
227 |
+
$( '.rwmb-input' ).on( 'clone', update );
|
|
|
|
|
|
|
|
|
|
|
228 |
} );
|
229 |
|
230 |
+
})( jQuery, document, window, google );
|
@@ -7,9 +7,12 @@ jQuery( function ( $ ) {
|
|
7 |
|
8 |
var views = rwmb.views = rwmb.views || {},
|
9 |
models = rwmb.models = rwmb.models || {},
|
10 |
-
|
|
|
|
|
|
|
11 |
|
12 |
-
MediaCollection = models.MediaCollection =
|
13 |
initialize: function ( models, options ) {
|
14 |
this.controller = options.controller || new models.Controller;
|
15 |
this.on( 'add remove reset', function () {
|
@@ -18,7 +21,7 @@ jQuery( function ( $ ) {
|
|
18 |
this.controller.set( 'full', max > 0 && this.length >= max );
|
19 |
} );
|
20 |
|
21 |
-
|
22 |
},
|
23 |
|
24 |
add: function ( models, options ) {
|
@@ -28,24 +31,23 @@ jQuery( function ( $ ) {
|
|
28 |
if ( max > 0 && left <= 0 ) {
|
29 |
return this;
|
30 |
}
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
}
|
38 |
-
|
39 |
if ( left > 0 ) {
|
40 |
models = _.difference( models, this.models );
|
41 |
models = _.first( models, left );
|
42 |
}
|
43 |
|
44 |
-
return
|
45 |
},
|
46 |
|
47 |
remove: function ( models, options ) {
|
48 |
-
models =
|
49 |
if ( this.controller.get( 'forceDelete' ) === true ) {
|
50 |
models = ! _.isArray( models ) ? [models] : models;
|
51 |
_.each( models, function ( model ) {
|
@@ -116,15 +118,22 @@ jQuery( function ( $ ) {
|
|
116 |
* Sets up media field view and subviews
|
117 |
*/
|
118 |
MediaField = views.MediaField = Backbone.View.extend( {
|
|
|
119 |
initialize: function ( options ) {
|
120 |
-
var that = this
|
|
|
121 |
this.$input = $( options.input );
|
|
|
|
|
|
|
|
|
|
|
122 |
this.controller = new Controller( _.extend(
|
123 |
{
|
124 |
-
fieldName:
|
125 |
ids: this.$input.val().split( ',' )
|
126 |
},
|
127 |
-
this.$
|
128 |
) );
|
129 |
|
130 |
// Create views
|
@@ -140,11 +149,15 @@ jQuery( function ( $ ) {
|
|
140 |
|
141 |
// Listen for destroy event on input
|
142 |
this.$input.on( 'remove', function () {
|
143 |
-
|
|
|
|
|
|
|
|
|
144 |
} );
|
145 |
|
146 |
this.controller.get( 'items' ).on( 'add remove reset', _.debounce( function () {
|
147 |
-
that.$input.trigger( 'change' );
|
148 |
}, 500 ) );
|
149 |
|
150 |
this.controller.get( 'items' ).on( 'remove', _.debounce( function () {
|
@@ -206,6 +219,7 @@ jQuery( function ( $ ) {
|
|
206 |
|
207 |
this.listenTo( this.collection, 'add', this.addItemView );
|
208 |
this.listenTo( this.collection, 'remove', this.removeItemView );
|
|
|
209 |
|
210 |
// Sort media using sortable
|
211 |
this.initSortable();
|
@@ -242,27 +256,39 @@ jQuery( function ( $ ) {
|
|
242 |
this.collection.remove( item );
|
243 |
},
|
244 |
|
245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
if ( this._switchFrame ) {
|
247 |
//this.stopListening( this._frame );
|
248 |
this._switchFrame.dispose();
|
249 |
}
|
250 |
-
this._switchFrame =
|
251 |
className: 'media-frame rwmb-media-frame',
|
252 |
multiple: false,
|
253 |
title: i18nRwmbMedia.select,
|
254 |
editing: true,
|
255 |
library: {
|
256 |
type: this.controller.get( 'mimeType' )
|
257 |
-
}
|
|
|
258 |
} );
|
259 |
|
260 |
this._switchFrame.on( 'select', function () {
|
261 |
var selection = this._switchFrame.state().get( 'selection' ),
|
262 |
collection = this.collection,
|
263 |
-
index = collection.indexOf(
|
|
|
264 |
if ( ! _.isEmpty( selection ) ) {
|
265 |
-
collection.remove(
|
266 |
collection.add( selection, {at: index} );
|
267 |
}
|
268 |
}, this );
|
@@ -300,9 +326,8 @@ jQuery( function ( $ ) {
|
|
300 |
initSortable: function () {
|
301 |
var collection = this.controller.get( 'items' );
|
302 |
this.$el.sortable( {
|
303 |
-
//
|
304 |
-
|
305 |
-
tolerance: 'pointer',
|
306 |
|
307 |
// Record the initial `index` of the dragged model.
|
308 |
start: function ( event, ui ) {
|
@@ -350,6 +375,7 @@ jQuery( function ( $ ) {
|
|
350 |
|
351 |
// Re-render if changes happen in controller
|
352 |
this.listenTo( this.controller.get( 'items' ), 'update', this.render );
|
|
|
353 |
|
354 |
// Render
|
355 |
this.render();
|
@@ -376,15 +402,16 @@ jQuery( function ( $ ) {
|
|
376 |
//this.stopListening( this._frame );
|
377 |
this._frame.dispose();
|
378 |
}
|
379 |
-
var maxFiles = this.controller.get( 'maxFiles');
|
380 |
-
this._frame =
|
381 |
className: 'media-frame rwmb-media-frame',
|
382 |
multiple: maxFiles > 1 || maxFiles <= 0 ? 'add' : false,
|
383 |
title: i18nRwmbMedia.select,
|
384 |
editing: true,
|
385 |
library: {
|
386 |
type: this.controller.get( 'mimeType' )
|
387 |
-
}
|
|
|
388 |
} );
|
389 |
|
390 |
this._frame.on( 'select', function () {
|
@@ -419,7 +446,7 @@ jQuery( function ( $ ) {
|
|
419 |
*/
|
420 |
MediaItem = views.MediaItem = Backbone.View.extend( {
|
421 |
tagName: 'li',
|
422 |
-
className: 'rwmb-media-item',
|
423 |
template: wp.template( 'rwmb-media-item' ),
|
424 |
initialize: function ( options ) {
|
425 |
this.controller = options.controller;
|
@@ -433,7 +460,7 @@ jQuery( function ( $ ) {
|
|
433 |
|
434 |
|
435 |
events: {
|
436 |
-
'click .rwmb-
|
437 |
this.trigger( 'click:switch', this.model );
|
438 |
return false;
|
439 |
},
|
@@ -466,26 +493,91 @@ jQuery( function ( $ ) {
|
|
466 |
* MediaDetails
|
467 |
* Custom version of TwoColumn view to prevent all video and audio from being unset
|
468 |
*/
|
469 |
-
MediaDetails = views.MediaDetails =
|
470 |
render: function () {
|
471 |
var that = this;
|
472 |
-
|
473 |
this.players = this.players || [];
|
474 |
|
475 |
-
|
476 |
|
477 |
this.$( 'audio, video' ).each( function ( i, elem ) {
|
478 |
-
var el =
|
479 |
-
that.players.push( new window.MediaElementPlayer( el,
|
480 |
} );
|
481 |
}
|
482 |
} );
|
483 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
484 |
/***
|
485 |
* EditMedia
|
486 |
* Custom version of EditAttachments frame to prevent all video and audio from being unset
|
487 |
*/
|
488 |
-
EditMedia = views.EditMedia =
|
489 |
/**
|
490 |
* Content region rendering callback for the `edit-metadata` mode.
|
491 |
*
|
@@ -502,7 +594,7 @@ jQuery( function ( $ ) {
|
|
502 |
* Attach a subview to display fields added via the
|
503 |
* `attachment_fields_to_edit` filter.
|
504 |
*/
|
505 |
-
contentRegion.view.views.set( '.attachment-compat', new
|
506 |
controller: this,
|
507 |
model: this.model
|
508 |
} ) );
|
@@ -514,10 +606,12 @@ jQuery( function ( $ ) {
|
|
514 |
* @return void
|
515 |
*/
|
516 |
function initMediaField() {
|
517 |
-
new MediaField( {input: this
|
|
|
|
|
|
|
518 |
}
|
519 |
|
520 |
-
$( '
|
521 |
-
$( '.rwmb-
|
522 |
-
.on( 'clone', ':input.rwmb-file_advanced', initMediaField );
|
523 |
} );
|
7 |
|
8 |
var views = rwmb.views = rwmb.views || {},
|
9 |
models = rwmb.models = rwmb.models || {},
|
10 |
+
media = wp.media,
|
11 |
+
MediaFrame = media.view.MediaFrame,
|
12 |
+
MediaCollection, Controller, MediaField, MediaList, MediaItem, MediaButton, MediaStatus, EditMedia,
|
13 |
+
MediaDetails, MediaLibrary, MediaSelect;
|
14 |
|
15 |
+
MediaCollection = models.MediaCollection = media.model.Attachments.extend( {
|
16 |
initialize: function ( models, options ) {
|
17 |
this.controller = options.controller || new models.Controller;
|
18 |
this.on( 'add remove reset', function () {
|
21 |
this.controller.set( 'full', max > 0 && this.length >= max );
|
22 |
} );
|
23 |
|
24 |
+
media.model.Attachments.prototype.initialize.call( this, models, options );
|
25 |
},
|
26 |
|
27 |
add: function ( models, options ) {
|
31 |
if ( max > 0 && left <= 0 ) {
|
32 |
return this;
|
33 |
}
|
34 |
+
if( models) {
|
35 |
+
if ( ! models.hasOwnProperty( 'length' ) ) {
|
36 |
+
models = [models];
|
37 |
+
} else if ( models instanceof media.model.Attachments ) {
|
38 |
+
models = models.models;
|
39 |
+
}
|
40 |
}
|
|
|
41 |
if ( left > 0 ) {
|
42 |
models = _.difference( models, this.models );
|
43 |
models = _.first( models, left );
|
44 |
}
|
45 |
|
46 |
+
return media.model.Attachments.prototype.add.call( this, models, options );
|
47 |
},
|
48 |
|
49 |
remove: function ( models, options ) {
|
50 |
+
models = media.model.Attachments.prototype.remove.call( this, models, options );
|
51 |
if ( this.controller.get( 'forceDelete' ) === true ) {
|
52 |
models = ! _.isArray( models ) ? [models] : models;
|
53 |
_.each( models, function ( model ) {
|
118 |
* Sets up media field view and subviews
|
119 |
*/
|
120 |
MediaField = views.MediaField = Backbone.View.extend( {
|
121 |
+
className: 'rwmb-media-view',
|
122 |
initialize: function ( options ) {
|
123 |
+
var that = this,
|
124 |
+
fieldName = options.input.name;
|
125 |
this.$input = $( options.input );
|
126 |
+
|
127 |
+
if ( 1 != this.$input.attr( 'data-single-image' ) ) {
|
128 |
+
fieldName += '[]';
|
129 |
+
}
|
130 |
+
|
131 |
this.controller = new Controller( _.extend(
|
132 |
{
|
133 |
+
fieldName: fieldName,
|
134 |
ids: this.$input.val().split( ',' )
|
135 |
},
|
136 |
+
this.$input.data( 'options' )
|
137 |
) );
|
138 |
|
139 |
// Create views
|
149 |
|
150 |
// Listen for destroy event on input
|
151 |
this.$input.on( 'remove', function () {
|
152 |
+
that.controller.destroy();
|
153 |
+
} );
|
154 |
+
|
155 |
+
this.$input.on( 'media:reset', function() {
|
156 |
+
that.controller.get( 'items' ).reset();
|
157 |
} );
|
158 |
|
159 |
this.controller.get( 'items' ).on( 'add remove reset', _.debounce( function () {
|
160 |
+
that.$input.trigger( 'change', [that.$( '.rwmb-media-input' )] );
|
161 |
}, 500 ) );
|
162 |
|
163 |
this.controller.get( 'items' ).on( 'remove', _.debounce( function () {
|
219 |
|
220 |
this.listenTo( this.collection, 'add', this.addItemView );
|
221 |
this.listenTo( this.collection, 'remove', this.removeItemView );
|
222 |
+
this.listenTo( this.collection, 'reset', this.resetItemViews );
|
223 |
|
224 |
// Sort media using sortable
|
225 |
this.initSortable();
|
256 |
this.collection.remove( item );
|
257 |
},
|
258 |
|
259 |
+
resetItemViews: function( items, options ){
|
260 |
+
var that = this;
|
261 |
+
_.each( options.previousModels, function( item ){
|
262 |
+
that.removeItemView( item );
|
263 |
+
} );
|
264 |
+
items.each( function( item ) {
|
265 |
+
that.addItemView( item );
|
266 |
+
} );
|
267 |
+
},
|
268 |
+
|
269 |
+
switchItem: function ( item ) {
|
270 |
if ( this._switchFrame ) {
|
271 |
//this.stopListening( this._frame );
|
272 |
this._switchFrame.dispose();
|
273 |
}
|
274 |
+
this._switchFrame = new MediaSelect( {
|
275 |
className: 'media-frame rwmb-media-frame',
|
276 |
multiple: false,
|
277 |
title: i18nRwmbMedia.select,
|
278 |
editing: true,
|
279 |
library: {
|
280 |
type: this.controller.get( 'mimeType' )
|
281 |
+
},
|
282 |
+
edit: this.controller.get( 'items' )
|
283 |
} );
|
284 |
|
285 |
this._switchFrame.on( 'select', function () {
|
286 |
var selection = this._switchFrame.state().get( 'selection' ),
|
287 |
collection = this.collection,
|
288 |
+
index = collection.indexOf( item );
|
289 |
+
|
290 |
if ( ! _.isEmpty( selection ) ) {
|
291 |
+
collection.remove( item );
|
292 |
collection.add( selection, {at: index} );
|
293 |
}
|
294 |
}, this );
|
326 |
initSortable: function () {
|
327 |
var collection = this.controller.get( 'items' );
|
328 |
this.$el.sortable( {
|
329 |
+
// Clone the element and the clone will be dragged. Prevent trigger click on the image, which means reselect.
|
330 |
+
helper : 'clone',
|
|
|
331 |
|
332 |
// Record the initial `index` of the dragged model.
|
333 |
start: function ( event, ui ) {
|
375 |
|
376 |
// Re-render if changes happen in controller
|
377 |
this.listenTo( this.controller.get( 'items' ), 'update', this.render );
|
378 |
+
this.listenTo( this.controller.get( 'items' ), 'reset', this.render );
|
379 |
|
380 |
// Render
|
381 |
this.render();
|
402 |
//this.stopListening( this._frame );
|
403 |
this._frame.dispose();
|
404 |
}
|
405 |
+
var maxFiles = this.controller.get( 'maxFiles' );
|
406 |
+
this._frame = new MediaSelect( {
|
407 |
className: 'media-frame rwmb-media-frame',
|
408 |
multiple: maxFiles > 1 || maxFiles <= 0 ? 'add' : false,
|
409 |
title: i18nRwmbMedia.select,
|
410 |
editing: true,
|
411 |
library: {
|
412 |
type: this.controller.get( 'mimeType' )
|
413 |
+
},
|
414 |
+
edit: this.controller.get( 'items' )
|
415 |
} );
|
416 |
|
417 |
this._frame.on( 'select', function () {
|
446 |
*/
|
447 |
MediaItem = views.MediaItem = Backbone.View.extend( {
|
448 |
tagName: 'li',
|
449 |
+
className: 'rwmb-media-item attachment',
|
450 |
template: wp.template( 'rwmb-media-item' ),
|
451 |
initialize: function ( options ) {
|
452 |
this.controller = options.controller;
|
460 |
|
461 |
|
462 |
events: {
|
463 |
+
'click .rwmb-overlay': function () {
|
464 |
this.trigger( 'click:switch', this.model );
|
465 |
return false;
|
466 |
},
|
493 |
* MediaDetails
|
494 |
* Custom version of TwoColumn view to prevent all video and audio from being unset
|
495 |
*/
|
496 |
+
MediaDetails = views.MediaDetails = media.view.Attachment.Details.TwoColumn.extend( {
|
497 |
render: function () {
|
498 |
var that = this;
|
499 |
+
media.view.Attachment.Details.prototype.render.apply( this, arguments );
|
500 |
this.players = this.players || [];
|
501 |
|
502 |
+
media.mixin.unsetPlayers.call( this );
|
503 |
|
504 |
this.$( 'audio, video' ).each( function ( i, elem ) {
|
505 |
+
var el = media.view.MediaDetails.prepareSrc( elem );
|
506 |
+
that.players.push( new window.MediaElementPlayer( el, media.mixin.mejsSettings ) );
|
507 |
} );
|
508 |
}
|
509 |
} );
|
510 |
|
511 |
+
/**
|
512 |
+
* MediaLibrary
|
513 |
+
* Custom version of Library to exclude already selected media in a media frame
|
514 |
+
*/
|
515 |
+
MediaLibrary = media.controller.Library.extend( {
|
516 |
+
defaults: _.defaults( {
|
517 |
+
multiple: 'add',
|
518 |
+
filterable: 'uploaded',
|
519 |
+
priority: 100,
|
520 |
+
syncSelection: false
|
521 |
+
}, media.controller.Library.prototype.defaults ),
|
522 |
+
|
523 |
+
activate: function () {
|
524 |
+
var library = this.get( 'library' ),
|
525 |
+
edit = this.frame.options.edit;
|
526 |
+
|
527 |
+
if ( this.editLibrary && this.editLibrary !== edit ) {
|
528 |
+
library.unobserve( this.editLibrary );
|
529 |
+
}
|
530 |
+
|
531 |
+
// Accepts attachments that exist in the original library and
|
532 |
+
// that do not exist in gallery's library.
|
533 |
+
library.validator = function ( attachment ) {
|
534 |
+
return ! ! this.mirroring.get( attachment.cid ) && ! edit.get( attachment.cid ) && media.model.Selection.prototype.validator.apply( this, arguments );
|
535 |
+
};
|
536 |
+
|
537 |
+
// Reset the library to ensure that all attachments are re-added
|
538 |
+
// to the collection. Do so silently, as calling `observe` will
|
539 |
+
// trigger the `reset` event.
|
540 |
+
library.reset( library.mirroring.models, {silent: true} );
|
541 |
+
library.observe( edit );
|
542 |
+
this.editLibrary = edit;
|
543 |
+
|
544 |
+
media.controller.Library.prototype.activate.apply( this, arguments );
|
545 |
+
}
|
546 |
+
} );
|
547 |
+
|
548 |
+
/**
|
549 |
+
* MediaSelect
|
550 |
+
* Custom version of Select media frame that uses MediaLibrary
|
551 |
+
*/
|
552 |
+
MediaSelect = views.MediaSelect = MediaFrame.Select.extend( {
|
553 |
+
/**
|
554 |
+
* Create the default states on the frame.
|
555 |
+
*/
|
556 |
+
createStates: function () {
|
557 |
+
var options = this.options;
|
558 |
+
|
559 |
+
if ( this.options.states ) {
|
560 |
+
return;
|
561 |
+
}
|
562 |
+
|
563 |
+
// Add the default states.
|
564 |
+
this.states.add( [
|
565 |
+
// Main states.
|
566 |
+
new MediaLibrary( {
|
567 |
+
library: media.query( options.library ),
|
568 |
+
multiple: options.multiple,
|
569 |
+
title: options.title,
|
570 |
+
priority: 20
|
571 |
+
} )
|
572 |
+
] );
|
573 |
+
}
|
574 |
+
} );
|
575 |
+
|
576 |
/***
|
577 |
* EditMedia
|
578 |
* Custom version of EditAttachments frame to prevent all video and audio from being unset
|
579 |
*/
|
580 |
+
EditMedia = views.EditMedia = MediaFrame.EditAttachments.extend( {
|
581 |
/**
|
582 |
* Content region rendering callback for the `edit-metadata` mode.
|
583 |
*
|
594 |
* Attach a subview to display fields added via the
|
595 |
* `attachment_fields_to_edit` filter.
|
596 |
*/
|
597 |
+
contentRegion.view.views.set( '.attachment-compat', new media.view.AttachmentCompat( {
|
598 |
controller: this,
|
599 |
model: this.model
|
600 |
} ) );
|
606 |
* @return void
|
607 |
*/
|
608 |
function initMediaField() {
|
609 |
+
var view = new MediaField( { input: this } );
|
610 |
+
//Remove old then add new
|
611 |
+
$( this ).siblings( 'div.rwmb-media-view' ).remove();
|
612 |
+
$( this ).after( view.el );
|
613 |
}
|
614 |
|
615 |
+
$( '.rwmb-file_advanced' ).each( initMediaField );
|
616 |
+
$( document ).on( 'clone', '.rwmb-file_advanced', initMediaField );
|
|
|
617 |
} );
|
@@ -11,13 +11,13 @@ jQuery( function ( $ ) {
|
|
11 |
$spinner = $this.siblings( '.spinner' ),
|
12 |
data = {
|
13 |
action: 'rwmb_get_embed',
|
14 |
-
url: $this.
|
15 |
};
|
16 |
|
17 |
$spinner.css( 'visibility', 'visible' );
|
18 |
-
$.post( ajaxurl, data, function (
|
19 |
$spinner.css( 'visibility', 'hidden' );
|
20 |
-
$this.siblings( '.rwmb-embed-media' ).html(
|
21 |
}, 'json' );
|
22 |
}
|
23 |
|
@@ -28,9 +28,7 @@ jQuery( function ( $ ) {
|
|
28 |
$( this ).siblings( '.rwmb-embed-media' ).html( '' );
|
29 |
}
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
// Remove oembed preview when cloning
|
35 |
-
$( '.rwmb-input' ).on( 'clone', '.rwmb-oembed', removePreview );
|
36 |
} );
|
11 |
$spinner = $this.siblings( '.spinner' ),
|
12 |
data = {
|
13 |
action: 'rwmb_get_embed',
|
14 |
+
url: $this.val()
|
15 |
};
|
16 |
|
17 |
$spinner.css( 'visibility', 'visible' );
|
18 |
+
$.post( ajaxurl, data, function ( response ) {
|
19 |
$spinner.css( 'visibility', 'hidden' );
|
20 |
+
$this.siblings( '.rwmb-embed-media' ).html( response.data );
|
21 |
}, 'json' );
|
22 |
}
|
23 |
|
28 |
$( this ).siblings( '.rwmb-embed-media' ).html( '' );
|
29 |
}
|
30 |
|
31 |
+
$( document )
|
32 |
+
.on( 'change', '.rwmb-oembed', _.debounce( showPreview, 250 ) )
|
33 |
+
.on( 'clone', '.rwmb-oembed', removePreview );
|
|
|
|
|
34 |
} );
|
@@ -15,6 +15,6 @@ jQuery( function ( $ ) {
|
|
15 |
|
16 |
}
|
17 |
|
18 |
-
$( '
|
19 |
-
$(
|
20 |
} );
|
15 |
|
16 |
}
|
17 |
|
18 |
+
$( '.rwmb-range' ).each( update );
|
19 |
+
$( document ).on( 'clone', '.rwmb-range', update );
|
20 |
} );
|
@@ -16,6 +16,6 @@ jQuery( function ( $ ) {
|
|
16 |
rwmbSelect.bindEvents( $this );
|
17 |
}
|
18 |
|
19 |
-
$( '
|
20 |
-
$(
|
21 |
} );
|
16 |
rwmbSelect.bindEvents( $this );
|
17 |
}
|
18 |
|
19 |
+
$( '.rwmb-select_advanced' ).each( update );
|
20 |
+
$( document ).on( 'clone', '.rwmb-select_advanced', update );
|
21 |
} );
|
@@ -67,6 +67,6 @@ jQuery( function ( $ ) {
|
|
67 |
}
|
68 |
|
69 |
// Run for select field
|
70 |
-
$( '
|
71 |
-
$(
|
72 |
} );
|
67 |
}
|
68 |
|
69 |
// Run for select field
|
70 |
+
$( '.rwmb-select' ).each( update );
|
71 |
+
$( document ).on( 'clone', '.rwmb-select', update );
|
72 |
} );
|
@@ -1,3 +1,3 @@
|
|
1 |
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
|
3 |
-
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found
|
1 |
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */
|
2 |
|
3 |
+
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();
|
@@ -1,2 +1,2 @@
|
|
1 |
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">×</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,
|
2 |
-
c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){var c=(this._lastTag,this.$element.find("option[data-select2-tag]"));c.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.trigger("select",{data:a})}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();if(!(a.length<1)){var b=a.data("data");null!=b.element&&b.element.selected||null==b.element&&b.selected||this.trigger("select",{data:b})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found."},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d;return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var e=Array.prototype.slice.call(arguments,1);d=c[b].apply(c,e)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});
|
1 |
/*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">×</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,
|
2 |
+
c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){var c=(this._lastTag,this.$element.find("option[data-select2-tag]"));c.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.trigger("select",{data:a})}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();if(!(a.length<1)){var b=a.data("data");null!=b.element&&b.element.selected||null==b.element&&b.selected||this.trigger("select",{data:b})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d;return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var e=Array.prototype.slice.call(arguments,1);d=c[b].apply(c,e)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});
|
@@ -30,6 +30,6 @@ jQuery( function ( $ ) {
|
|
30 |
$slider.slider( options );
|
31 |
}
|
32 |
|
33 |
-
$( '
|
34 |
-
$(
|
35 |
} );
|
30 |
$slider.slider( options );
|
31 |
}
|
32 |
|
33 |
+
$( '.rwmb-slider-value' ).each( rwmb_update_slider );
|
34 |
+
$( document ).on( 'clone', '.rwmb-slider-value', rwmb_update_slider );
|
35 |
} );
|
@@ -1,34 +0,0 @@
|
|
1 |
-
jQuery( function ( $ ) {
|
2 |
-
'use strict';
|
3 |
-
|
4 |
-
$( 'body' ).on( 'click', '.rwmb-thickbox-upload', function () {
|
5 |
-
var $this = $( this ),
|
6 |
-
$holder = $this.siblings( '.rwmb-images' ),
|
7 |
-
post_id = $( '#post_ID' ).val(),
|
8 |
-
field_id = $this.data( 'field_id' ),
|
9 |
-
backup = window.send_to_editor;
|
10 |
-
|
11 |
-
window.send_to_editor = function ( html ) {
|
12 |
-
var $img = $( '<div />' ).append( html ).find( 'img' ),
|
13 |
-
url = $img.attr( 'src' ),
|
14 |
-
img_class = $img.attr( 'class' ),
|
15 |
-
id = parseInt( img_class.replace( /\D/g, '' ), 10 );
|
16 |
-
|
17 |
-
html = '<li id="item_' + id + '">';
|
18 |
-
html += '<img src="' + url + '">';
|
19 |
-
html += '<div class="rwmb-image-bar">';
|
20 |
-
html += '<a class="rwmb-delete-file" href="#" data-attachment_id="' + id + '">×</a>';
|
21 |
-
html += '</div>';
|
22 |
-
html += '<input type="hidden" name="' + field_id + '[]" value="' + id + '">';
|
23 |
-
html += '</li>';
|
24 |
-
|
25 |
-
$holder.append( $( html ) ).removeClass( 'hidden' );
|
26 |
-
|
27 |
-
tb_remove();
|
28 |
-
window.send_to_editor = backup;
|
29 |
-
};
|
30 |
-
tb_show( '', 'media-upload.php?post_id=' + post_id + '&TB_iframe=true' );
|
31 |
-
|
32 |
-
return false;
|
33 |
-
} );
|
34 |
-
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -9,7 +9,12 @@ jQuery( function ( $ ) {
|
|
9 |
$form.siblings( '#message' ).remove();
|
10 |
$form.before( '<div id="message" class="error"><p>' + rwmbValidate.summaryMessage + '</p></div>' );
|
11 |
},
|
12 |
-
ignore: ':not([class|="rwmb"])'
|
|
|
|
|
|
|
|
|
|
|
13 |
};
|
14 |
|
15 |
// Edit post form.
|
@@ -33,7 +38,7 @@ jQuery( function ( $ ) {
|
|
33 |
// Required field styling
|
34 |
$.each( subRules.rules, function ( k, v ) {
|
35 |
if ( v['required'] ) {
|
36 |
-
$( '#' + k ).parent().siblings( '.rwmb-label' ).
|
37 |
}
|
38 |
} );
|
39 |
} );
|
9 |
$form.siblings( '#message' ).remove();
|
10 |
$form.before( '<div id="message" class="error"><p>' + rwmbValidate.summaryMessage + '</p></div>' );
|
11 |
},
|
12 |
+
ignore: ':not([class|="rwmb"])',
|
13 |
+
errorPlacement: function(error, element) {
|
14 |
+
error.appendTo( element.closest( '.rwmb-input' ) );
|
15 |
+
},
|
16 |
+
errorClass: 'rwmb-error',
|
17 |
+
errorElement: 'p'
|
18 |
};
|
19 |
|
20 |
// Edit post form.
|
38 |
// Required field styling
|
39 |
$.each( subRules.rules, function ( k, v ) {
|
40 |
if ( v['required'] ) {
|
41 |
+
$( '#' + k ).parent().siblings( '.rwmb-label' ).append( '<span class="rwmb-required">*</span>' );
|
42 |
}
|
43 |
} );
|
44 |
} );
|
@@ -35,9 +35,12 @@ jQuery( function ( $ )
|
|
35 |
*/
|
36 |
function initVideoField()
|
37 |
{
|
38 |
-
new VideoField( { input: this
|
|
|
|
|
|
|
39 |
}
|
40 |
-
$( '
|
41 |
-
$(
|
42 |
-
.on( 'clone', '
|
43 |
} );
|
35 |
*/
|
36 |
function initVideoField()
|
37 |
{
|
38 |
+
var view = new VideoField( { input: this } );
|
39 |
+
//Remove old then add new
|
40 |
+
$( this ).siblings( 'div.rwmb-media-view' ).remove();
|
41 |
+
$( this ).after( view.el );
|
42 |
}
|
43 |
+
$( '.rwmb-video' ).each( initVideoField );
|
44 |
+
$( document )
|
45 |
+
.on( 'clone', '.rwmb-video', initVideoField )
|
46 |
} );
|
@@ -29,9 +29,9 @@ jQuery( function ( $ ) {
|
|
29 |
|
30 |
// TinyMCE
|
31 |
if ( tinyMCEPreInit.mceInit.hasOwnProperty( originalId ) ) {
|
32 |
-
var settings = tinyMCEPreInit.mceInit[originalId]
|
33 |
-
|
34 |
-
|
35 |
}
|
36 |
|
37 |
// Quick tags
|
@@ -89,6 +89,6 @@ jQuery( function ( $ ) {
|
|
89 |
.find( '.quicktags-toolbar' ).attr( 'id', 'qt_' + id + '_toolbar' ).html( '' );
|
90 |
}
|
91 |
|
92 |
-
$( '
|
93 |
-
$(
|
94 |
} );
|
29 |
|
30 |
// TinyMCE
|
31 |
if ( tinyMCEPreInit.mceInit.hasOwnProperty( originalId ) ) {
|
32 |
+
var settings = tinyMCEPreInit.mceInit[originalId],
|
33 |
+
editor = new tinymce.Editor(id, settings, tinymce.EditorManager);
|
34 |
+
editor.render();
|
35 |
}
|
36 |
|
37 |
// Quick tags
|
89 |
.find( '.quicktags-toolbar' ).attr( 'id', 'qt_' + id + '_toolbar' ).html( '' );
|
90 |
}
|
91 |
|
92 |
+
$( '.rwmb-wysiwyg' ).each( update );
|
93 |
+
$( document ).on( 'clone', '.rwmb-wysiwyg', update );
|
94 |
} );
|
@@ -3,9 +3,9 @@
|
|
3 |
* Plugin Name: Meta Box
|
4 |
* Plugin URI: https://metabox.io
|
5 |
* Description: Create custom meta boxes and custom fields in WordPress.
|
6 |
-
* Version: 4.
|
7 |
-
* Author:
|
8 |
-
* Author URI:
|
9 |
* License: GPL2+
|
10 |
* Text Domain: meta-box
|
11 |
* Domain Path: /languages/
|
3 |
* Plugin Name: Meta Box
|
4 |
* Plugin URI: https://metabox.io
|
5 |
* Description: Create custom meta boxes and custom fields in WordPress.
|
6 |
+
* Version: 4.14.2
|
7 |
+
* Author: MetaBox.io
|
8 |
+
* Author URI: https://metabox.io
|
9 |
* License: GPL2+
|
10 |
* Text Domain: meta-box
|
11 |
* Domain Path: /languages/
|
@@ -1,10 +1,10 @@
|
|
1 |
=== Meta Box ===
|
2 |
Contributors: metabox, rilwis, fitwp, f-j-kaiser, funkatronic, PerWiklander, ruanmer, Omnicia
|
3 |
-
Donate link:
|
4 |
Tags: meta-box, custom fields, custom field, meta, meta-boxes, admin, advanced, custom, edit, field, file, image, magic fields, matrix, more fields, Post, repeater, simple fields, text, textarea, type, cms, fields post
|
5 |
-
Requires at least: 4.
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
|
@@ -17,67 +17,109 @@ The plugin provides a **wide range of field types** and **a lot of options to fo
|
|
17 |
|
18 |
With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
|
19 |
|
20 |
-
The plugin
|
21 |
|
22 |
### Features
|
23 |
|
|
|
|
|
24 |
* Create custom meta boxes for posts, pages or any custom post type.
|
25 |
* Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
|
26 |
* Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
|
27 |
* Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
|
28 |
-
|
|
|
|
|
|
|
29 |
* Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
|
30 |
-
* Powerful [actions and filters](https://metabox.io/
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
* Compatible with WPML multilingual plugin (officially supported by WPML team).
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
- [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
|
40 |
-
- [Define Fields](https://metabox.io/docs/define-fields/)
|
41 |
-
- [Get Meta Value](https://metabox.io/docs/get-meta-value/)
|
42 |
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
### Extensions
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
- [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
|
50 |
-
- [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
|
51 |
-
- [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
|
52 |
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
|
|
|
53 |
- [Meta Box Yoast SEO](https://wordpress.org/plugins/meta-box-yoast-seo/): Add content of custom fields to Yoast SEO Content Analysis to have better/correct SEO score.
|
|
|
|
|
|
|
54 |
- [Meta Box Text Limiter](https://wordpress.org/plugins/meta-box-text-limiter/): Limit the number of characters or words entered for text and textarea fields.
|
55 |
-
- [Meta Box
|
56 |
-
|
|
|
|
|
57 |
- [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): Create custom meta boxes and custom fields in WordPress using the drag-and-drop interface.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
- [Meta Box Template](https://metabox.io/plugins/meta-box-template/): Define custom meta boxes and custom fields easier with templates.
|
59 |
- [Meta Box Tooltip](https://metabox.io/plugins/meta-box-tooltip/): Display help information for fields using beautiful tooltips.
|
60 |
-
- [Meta Box Show Hide
|
61 |
-
- [Meta Box Tabs](https://metabox.io/plugins/meta-box-tabs/): Create tabs for meta boxes easily. Support 3 WordPress-native tab styles and tab icon.
|
62 |
-
- [Meta Box Columns](https://metabox.io/plugins/meta-box-columns/): Display fields more beautiful by putting them into 12-columns grid.
|
63 |
-
- [Meta Box Include Exclude](https://metabox.io/plugins/meta-box-include-exclude/): Show/hide meta boxes by ID, page template, taxonomy or custom function.
|
64 |
|
65 |
See all extensions [here](https://metabox.io/plugins/).
|
66 |
|
67 |
### Plugin Links
|
68 |
|
69 |
- [Project Page](https://metabox.io)
|
70 |
-
- [Documentation](https://metabox.io
|
71 |
-
- [Report Bugs/Issues](https://github.com/
|
72 |
-
- [Premium Extensions](https://metabox.io)
|
73 |
|
74 |
== Installation ==
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
1. Unzip the download package
|
77 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
78 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
79 |
|
80 |
-
To getting started with the plugin
|
81 |
|
82 |
== Frequently Asked Questions ==
|
83 |
|
@@ -91,646 +133,6 @@ To getting started with the plugin API, please read [this tutorial](https://meta
|
|
91 |
|
92 |
== Changelog ==
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
* Code architecture update:
|
97 |
-
* Add `object_id` property to the meta box object. Used to connect the meta box to the post object. Not heavily used yet.
|
98 |
-
* Add RWMB_Meta_Box_Registry and RWMB_Field_Registry to store all registered meta boxes and fields. Used to future access these objects. Use internally only. 3rd-party code should not use it as it's still experimental and can change in the future.
|
99 |
-
* Deprecated RWMB_Core::get_meta_boxes() due to the meta box registry above. This function was made for internally use only. 3rd-party code should not rely on it.
|
100 |
-
* Add magic method __get to the meta box object to quick access to meta box configuration.
|
101 |
-
* UI update:
|
102 |
-
* Make the field label bold (similar to WordPress settings page).
|
103 |
-
* Increase margin between fields and change color for remove clone button (also reduce minus size)
|
104 |
-
* Remove style for checkbox (default is good).
|
105 |
-
* Improve styles for checkbox/radio list
|
106 |
-
* A little smaller padding for select box. Also remove default size for select[multiple]
|
107 |
-
* Add a little space between the map canvas and the "Find Address" button
|
108 |
-
* Media fields:
|
109 |
-
* Media field update: Hidden field for media fields now no longer disabled. If media field js not loaded properly, code will default to hidden field and process
|
110 |
-
accordingly. Issue #1088.
|
111 |
-
* Better and simpler way to handle HTML file upload using `media_handle_upload` function.
|
112 |
-
* Rewrite JS for "file", simpler and modular. Also fix bug when add/remove items that doesn't toggle the Add more link correctly.
|
113 |
-
* Improve JS code for media field, using MediaList instead of item views (Backbone JS code).
|
114 |
-
* Add support for image sizes in image_advanced and image_upload. Default is thumbnail. Fixes #425.
|
115 |
-
* Clone:
|
116 |
-
* Add new parameter `add_button` for the add new clone button text. Better than use filter.
|
117 |
-
* Fix position for remove clone button in RTL languages
|
118 |
-
* Update margin between clones and set clone placeholder = outer height of the cloned element.
|
119 |
-
* Scripts and styles:
|
120 |
-
* Check condition for enqueueing scripts & styles only in the admin.
|
121 |
-
* Update the time picker library to the latest version (1.6.3) to supports "select" control for time picker. [See demo](http://trentrichardson.com/examples/timepicker/#slider_examples).
|
122 |
-
* Better dependencies for date picker CSS, autocomplete field.
|
123 |
-
* Other improvements:
|
124 |
-
* Remove the static helper class because of a bad OOP code.
|
125 |
-
* Fix get plugin URL symlink when plugin is put in a theme and symlinked. Props @tutv95.
|
126 |
-
* Add support for "region" in the map field to limit autocomplete from wrong entries (to help preventing from entering wrong address or country). See https://developers.google.com/maps/documentation/geocoding/intro#RegionCodes
|
127 |
-
|
128 |
-
= 4.10.4 =
|
129 |
-
* Improvement: Add support for validate user edit and term edit forms (requires MB Term Meta or MB User Meta extension).
|
130 |
-
* Improvement: Add new parameter `label_description` for fields to display a description below field label (name).
|
131 |
-
* Improvement: Add support for edit custom fields in the media modal. Requires `post_type` set to `attachment` and `media_modal` set to true. [See demo](https://github.com/rilwis/meta-box/blob/master/demo/media-modal.php).
|
132 |
-
* Improvement: For WPML users: Add support to hide fields in "Do not translate" mode and disable editing fields in "Copy" mode.
|
133 |
-
* Fix: Users can't select same images for 2 different `image_advanced` fields.
|
134 |
-
* Fix: `max_status` doesn't work.
|
135 |
-
|
136 |
-
= 4.10.3 =
|
137 |
-
* Fix: `force_delete` causes files to be deleted even when set to `false`.
|
138 |
-
* Fix: `max_file_uploads` not working.
|
139 |
-
|
140 |
-
= 4.10.2 =
|
141 |
-
* Improvement: Add `max_file_size` to upload fields (`File_Upload`, `Image_Upload`, `Plupload_Image`).
|
142 |
-
* Improvement: Add support for attributes for file input.
|
143 |
-
* Improvement: Update Polish translation.
|
144 |
-
* Improvement: Add translation support for Key and Value strings (@prop saqibsarwar).
|
145 |
-
* Fix: Shorter width of email field vs. other fields (@prop saqibsarwar).
|
146 |
-
* Fix: Fix cloneable datetime field with timestamp=true.
|
147 |
-
* Fix: Remove margin bottom in select_advanced options.
|
148 |
-
* Fix: Showing the correct selected value for select_advanced field when the option value contains '&' character.
|
149 |
-
* Fix: Fix default values not working with taxonomy and taxonomy_advanced fields.
|
150 |
-
|
151 |
-
= 4.10.1 =
|
152 |
-
* Fix: Fix `image_upload` and `plupload_image` field when select images to upload.
|
153 |
-
|
154 |
-
= 4.10 =
|
155 |
-
* Improvement: Add `video` field type which allows users to upload or select video from the Media Library. See [demo](https://github.com/rilwis/meta-box/blob/master/demo/video.php).
|
156 |
-
* Improvement: Update Turkish. Prop Emre Tuna <tunaemre@windowslive.com>.
|
157 |
-
* Improvement: Use WP 4.6 date picker localization instead of JS localized file to reduce plugin size.
|
158 |
-
* Improvement: Refactor the media fields for better performance. Add `change` event for item list when add, remove or reset.
|
159 |
-
* Fix: `taxonomy_advanced` field now can be cloned.
|
160 |
-
* Fix: Make localize_script works with WP 4.1.
|
161 |
-
|
162 |
-
= 4.9.8 =
|
163 |
-
* Fix: Quick fix for enqueueing validation script
|
164 |
-
|
165 |
-
= 4.9.7 =
|
166 |
-
* Improvement: Re-add change event on media fields to make Conditional Logic extension works with media fields.
|
167 |
-
* Improvement: Add `rwmb_choice_label`, `rwmv_{$field_type}_choice_label` and `rwmb_{field_id}_choice_label` filters for post, user, taxonomy fields, allowing users to customize the labels of choice fields.
|
168 |
-
* Improvement: Change coding styles to follow WordPress Coding Standards.
|
169 |
-
* Various improvements to reduce duplicated code.
|
170 |
-
* Fix: Map field now works in the frontend.
|
171 |
-
* Fix: `std` now works for taxonomy fields.
|
172 |
-
|
173 |
-
= 4.9.6 =
|
174 |
-
* Fix: Wrong CSS selector when cloning wysiwyg field
|
175 |
-
* Fix: Remove preview for oembed field when cloning
|
176 |
-
* Fix: 'std' for taxonomy field now works
|
177 |
-
|
178 |
-
= 4.9.5 =
|
179 |
-
* Fix: Quick fix for wrong field wrapper class which causes color field to render incorrectly
|
180 |
-
|
181 |
-
= 4.9.4 =
|
182 |
-
* Fix: Quick fix for cloning bug
|
183 |
-
|
184 |
-
= 4.9.3 =
|
185 |
-
* Fix: Quick fix saving datetime field
|
186 |
-
|
187 |
-
= 4.9.2 =
|
188 |
-
* Fix: Quick fix validation
|
189 |
-
|
190 |
-
= 4.9.1 =
|
191 |
-
* Fix: Quick fix for `rwmb_meta()` to be better backward compatible
|
192 |
-
|
193 |
-
= 4.9 =
|
194 |
-
* Improvement: Update Chinese language. Add Chinese Taiwan.
|
195 |
-
* Improvement: Add support for Google Maps API key. Default API key is added, however users should replace it with their own key.
|
196 |
-
* Improvement: Add additional methods for jQuery validation module which makes it understand HTML5 "pattern" attribute.
|
197 |
-
* Improvement: Fully WPML compatibility (supported by WPML team)
|
198 |
-
* Improvement: Add placeholders for `key_value` field
|
199 |
-
* Fix: Toggle remove clone buttons for nested groups.
|
200 |
-
* Fix: Error on date field, not save
|
201 |
-
* Fix: Add fix for date/datetime when both inline and timestamp used
|
202 |
-
* Fix: Set default language for date/time picker.
|
203 |
-
* Fix: rwmb_meta for images returns incorrect width/height
|
204 |
-
* Fix: PHP warning when uploading files in Settings Pages extension.
|
205 |
-
* Fix: Blank space in the footer when using plupload_image.
|
206 |
-
* Fix: Cloning wysiwyg when deleting the 1st clone
|
207 |
-
|
208 |
-
= 4.8.7 =
|
209 |
-
* Improvement: Refactor the code to reduce the complexity in the fields' inheritance
|
210 |
-
* Improvement: All HTML 5 input types (week, month, etc.) are supported
|
211 |
-
* Improvement: Optimize the_value function, use recursive call to reduce nested loop. Sub-fields need to define format_single_value only.
|
212 |
-
* Improvement: Use 1 single localization file for jQuery date picker for simplicity
|
213 |
-
* Improvement: Add support for custom marker for map field (param `marker_icon`) in rwmb_meta function
|
214 |
-
* Improvement: Add `limit` option for media fields in `rwmb_meta` function when retrieving meta value.
|
215 |
-
* Improvement: Add `rwmb_option_label` filter for choice fields (user, post, taxonomy) so users can choose which object field is used as label
|
216 |
-
* Improvement: Use `WP_User_Query` for user field which supports more options for querying
|
217 |
-
* Improvement: Optimize code for oembed, also use esc_html__ for better security
|
218 |
-
* Improvement: Compatibility with Meta Box Geolocation
|
219 |
-
* Fix: Fix first option is auto selected in select_advanced field.
|
220 |
-
* Fix: Fix clone issue for color in Meta Box Group extension.
|
221 |
-
* Fix: Fix clone issue for image advanced in Meta Box Group extension.
|
222 |
-
* Fix: Fix not parsing $args to array in helper functions.
|
223 |
-
|
224 |
-
= 4.8.6 =
|
225 |
-
* Improvement: Edit link on media items now opens edit modal
|
226 |
-
* Improvement: Refresh map when sorting meta boxes.
|
227 |
-
* Improvement: Wrap checkbox's description into a <label> to make it clickable to activate/deactivate the checkbox.
|
228 |
-
* Improvement: Remove Spanish language (ES) as it's already translated on translate.wordpress.org
|
229 |
-
* Improvement: Add support for saving zoom in map
|
230 |
-
* Improvement: Prevent output localized strings twice.
|
231 |
-
* Improvement: Add fallback for autoload in PHP 5.2 in case it's disabled.
|
232 |
-
* Improvement: No need to json_encode for custom attributes. User can pass an array to custom attribute
|
233 |
-
* Improvement: Add style for `select2` library to match WordPress admin style
|
234 |
-
* Improvement: Adds min width to select. @prop ahmadawais
|
235 |
-
* Improvement: Added `max_status` option for media type fields. `true` to show status, `false` to hide
|
236 |
-
* Improvement: Add attachment meta data to file info
|
237 |
-
* Fix: Validation for non-Meta Box fields
|
238 |
-
* Fix: advanced_image field after reload page F5 in Firefox
|
239 |
-
* Fix: Cannot read property 'getFullYear' of null
|
240 |
-
* Fix: Empty date converting to 0
|
241 |
-
* Fix: Add missing class for image_select field which prevents setting input's name when cloning.
|
242 |
-
* Fix: Fix bug with blank maps on the front end
|
243 |
-
* Fix: Fix bug with cloning media fields
|
244 |
-
* Fix: Remove empty values in clones and reset index.
|
245 |
-
* Fix: Reset of cloned select fields
|
246 |
-
* Fix: select_advanced with multiple=true adds empty selected option
|
247 |
-
* Fix: No empty option for simple select field
|
248 |
-
* Fix: Empty datetime field with timestamp => true returns January 1, 1970
|
249 |
-
* Fix: For color picker when using with Columns extension
|
250 |
-
* Fix: Fix bug with taxonomy advanced returns all taxonomy items for posts with no meta saved
|
251 |
-
* Fix: Fix bug with taxonomy advanced not saving value when field isn't multiple
|
252 |
-
* Fix: Make radio inline again
|
253 |
-
* Fix: Wrong meta value when using helper function outside the loop
|
254 |
-
* Fix: Validation now works for hidden elements in tabs
|
255 |
-
|
256 |
-
= 4.8.5 =
|
257 |
-
* Improvement: Add localization for Select2 library
|
258 |
-
* Improvement: Range preview output added
|
259 |
-
* Improvement: Add Persian translation and nag fix
|
260 |
-
* Fix: Map has no refresh in collapsed meta boxes
|
261 |
-
* Fix: Fix incorrect URL if the plugin is symlinked.
|
262 |
-
* Fix: Added fix for saved order in object-choice
|
263 |
-
|
264 |
-
= 4.8.4 =
|
265 |
-
* Improvement: Refactor code for plupload_image. Introduces file_upload and image_upload field which acts the same as plupload_image but for files and images.
|
266 |
-
* Improvement: Do not show "Embed is not available" if fields don't have any value
|
267 |
-
* Improvement: Refactor date/time related fields. 'timestamp' now works for date field as well.
|
268 |
-
* Improvement: Add 'inline' mode for date/datetime fields.
|
269 |
-
* Improvement: Add option 'select_all_none' for select/select2 with default = false
|
270 |
-
* Fix: users now can register 2 meta boxes with same field IDs for different post types.
|
271 |
-
* Fix: width of embeded video if $content_width is too large.
|
272 |
-
* Fix: autoloader now works more safely.
|
273 |
-
* Fix: post field doesn't show correct post link
|
274 |
-
* Fix: select field must call field's get_value to get field's value as 'select' is used in many non-inherited classes
|
275 |
-
* Fix: Allows old syntax for `query_args.post_types` for post/user/taxonomy fields
|
276 |
-
* Fix: Do not reset value for hidden field when clone
|
277 |
-
* Fix: Missing Insert into Post button for thickbox_image field
|
278 |
-
* Fix: Date picker cut off by TinyMCE
|
279 |
-
* Fix: CSS for multi months in date picker
|
280 |
-
|
281 |
-
= 4.8.3 =
|
282 |
-
* Improvement: WYSIWYG field now can be cloned. Sorting clone hasn't worked yet.
|
283 |
-
* Fix: 'std' value not working if there is 'divider' or 'heading' field withough 'id'
|
284 |
-
* Fix: helper function not working in AJAX or admin.
|
285 |
-
* Fix: getting plugin's path on Windows system.
|
286 |
-
* Fix: warning get_value of taxonomy field
|
287 |
-
* Fix: guarantee file ids are in an array
|
288 |
-
|
289 |
-
= 4.8.2 =
|
290 |
-
* Fix: re-add code for backward compatibility for helper function
|
291 |
-
* Fix: undefined 'class' attribute for button
|
292 |
-
* Improvement: speedup the helper function
|
293 |
-
|
294 |
-
= 4.8.1 =
|
295 |
-
|
296 |
-
* Fix: select multiple value with post, user and taxonomy
|
297 |
-
* Fix: bug in oembed field
|
298 |
-
* Fix: fix JS/CSS compatibility with WooCommerce
|
299 |
-
* Fix: do not force field ID to lowercase, which can potentially breaks existing fields or fields with ID of CAPS characters.
|
300 |
-
|
301 |
-
= 4.8.0 =
|
302 |
-
|
303 |
-
* Improvement: rewrite the way the plugin loads file, which allows developers to include the plugin into themes/plugins simply by include the main file. The new loading mechanism also uses autoloading feature which prevents loading files twice and saves memory.
|
304 |
-
* Improvement: rewrite `user`, `post`, `taxonomy` fields using the same codebase as they're native WordPress objects and sharing similar options. Also changes the syntax of query parameters for these fields (old syntax still works). Please see docs for details.
|
305 |
-
* Improvement: add `srcset` in the returned value of helper function for image fields
|
306 |
-
* Improvement: better sanitize value for `url` field
|
307 |
-
* Improvement: prevent issues with dashes in field types
|
308 |
-
* Improvement: remove redundant value in checkbox
|
309 |
-
* Improvement: update CSS for date, time fields
|
310 |
-
* Improvement: select2 now updated to 4.0.1
|
311 |
-
* Improvement: optimize code for `file_advanced` and `image_advanced` fields which now submit array of values when saving instead of single CSV value
|
312 |
-
* Improvement: add `collapse` option to `checkbox_list` and `checkbox_tree` in `user`, `taxonomy`, `post` fields which prevents plugin save parent values.
|
313 |
-
* Improvement: secure password field so it is no longer saved in plain text. To check if a password matches the hash, please use `wp_check_password`.
|
314 |
-
* Improvement: change the output of `color` field in the helper function. Now it shows the color instead of hex value.
|
315 |
-
* Improvement: add `color:change` and `color:clear` JavaScript event for detecting changes in `color` field.
|
316 |
-
* Improvement: refactor code for better structure and security
|
317 |
-
* Fix: rewrite the JavaScript for cloning which causes bugs for date field.
|
318 |
-
* Fix: fix missing attributes if value is '0' or 0.
|
319 |
-
* Fix: add missing `class` attribute for fields
|
320 |
-
* Fix: do not auto populate color field with '#'
|
321 |
-
* Fix: wrong callback for fix page template
|
322 |
-
|
323 |
-
|
324 |
-
= 4.7.3 =
|
325 |
-
|
326 |
-
* Improvement: add `change` event for `file_advanced` and `image_advanced` fields.
|
327 |
-
* Improvement: add support for boolean attributes.
|
328 |
-
* Improvement: add support for boolean attributes.
|
329 |
-
* Improvement: add Russian language.
|
330 |
-
* Improvement: changed `wp_get_post_terms` to `get_the_terms` to use WordPress cache.
|
331 |
-
* Improvement: refactored code to make textarea, select use attributes.
|
332 |
-
* Improvement: `fieldset_text` now cloneable. Also removed `rows` option for this field.
|
333 |
-
* Improvement: refactored `has_been_saved()` function.
|
334 |
-
|
335 |
-
= 4.7.2 =
|
336 |
-
|
337 |
-
* Fix: notice undefined index in date, time fields.
|
338 |
-
|
339 |
-
= 4.7.1 =
|
340 |
-
|
341 |
-
* Fix: remove default `maxlength = 30` for text fields.
|
342 |
-
|
343 |
-
= 4.7 =
|
344 |
-
|
345 |
-
* Improvement: add `attributes` for all input fields (text, number, email, ...) so users can add any custom attributes for them. Also added default attributes `required`, `disabled`, `readonly`, `maxlength` and `pattern` for those fields as well. These attributes will be merged into the `attributes`.
|
346 |
-
* Improvement: add `js_options` for color field which allows users to define custom color palettes and other attributes for color picker. See the options in [Iris page](http://automattic.github.io/Iris/).
|
347 |
-
* Fix: fix for file and image uploaded via `file_advanced` and `image_advanced` not showing up.
|
348 |
-
|
349 |
-
= 4.6 =
|
350 |
-
|
351 |
-
* Improvement: the plugin translation is now handled in translate.wordpress.org. While the plugin keeps old translation as backward compatibility, it's recommended to translate everything in translate.wordpress.org. Language packs will be automatically updated by WordPress.
|
352 |
-
* Improvement: rewrite code for `file_advanced` and `image_advanced`, which share the same code base. These fields are now clonable and not autosave (you have to save post to save files)! Props @funkatronic.
|
353 |
-
* Improvement: restyle clone icon, sort clone icon and add clone button for better UI. The new UI now is compatible with `color` and `date` fields
|
354 |
-
* Improvement: separate validation module into 1 class, for better code structure
|
355 |
-
* Improvement: add `pattern` attribute for `url` field
|
356 |
-
* Improvement: improve code quality
|
357 |
-
* Fix: missing "checked" when clone radio
|
358 |
-
* Fix: language file name for Dutch
|
359 |
-
* Fix: oembed not render preview if provider is added via `wp_embed_register_handler`
|
360 |
-
|
361 |
-
= 4.5.7 =
|
362 |
-
* Fix: Always set std as value for hidden field
|
363 |
-
* Fix: `rwmb_meta` now can display rich content from `oembed` field
|
364 |
-
* Fix: Wrong format for `datetime` field
|
365 |
-
* Fix: Check and reset clone index when add/remove/sort clones
|
366 |
-
* Improvement: Optionally display ID attribute for heading and divider
|
367 |
-
* Improvement: Adding new style to date field to match WordPress style
|
368 |
-
* Improvement: Change saving hooks to specific post types to prevent saving images to wrong post
|
369 |
-
|
370 |
-
= 4.5.6 =
|
371 |
-
* Fix: Warning for timestamp for datetime field.
|
372 |
-
* Fix: z-index for color picker.
|
373 |
-
* Fix: Marker title in map
|
374 |
-
|
375 |
-
= 4.5.5 =
|
376 |
-
* Fix: CSS alignment for sort clone icon for field type `group` (require Meta Box Group extension)
|
377 |
-
* Fix: rwmbSelect is not defined
|
378 |
-
|
379 |
-
= 4.5.4 =
|
380 |
-
* Improvement: Add "Select All|None" for `select`, `select_advanced`, `post` fields
|
381 |
-
* Improvement: Add `max_clone` parameter which limits number of clones
|
382 |
-
* Improvement: Add `sort_clone` parameter which allows users to sort (drag and drop) cloned inputs
|
383 |
-
* Improvement: Add Polish language. Thank Michael
|
384 |
-
* Fix: Prevent warning when post type doesn't exist (`post` field)
|
385 |
-
|
386 |
-
= 4.5.3 =
|
387 |
-
* Improvement: Use `wp_json_encode` instead of `json_encode`. Thank Sam Ford.
|
388 |
-
* Fix: Escape value for cloneable fields
|
389 |
-
* Fix: Notice for missing parameters for `rwmb_meta` field for `map`
|
390 |
-
|
391 |
-
|
392 |
-
= 4.5.2 =
|
393 |
-
* Improvement: Add Persian (Farsi) language. Thank Ahmad Azimi.
|
394 |
-
* Improvement: Update Spanish translation. Thank David Perez.
|
395 |
-
* Fix: Cloning text fields
|
396 |
-
* Fix: rwmb_meta works incorrectly for image fields if multiple=false
|
397 |
-
|
398 |
-
= 4.5.1 =
|
399 |
-
* Improvement: Add ability to use multiple post types for `post` field
|
400 |
-
* Fix: Duplicated description for `checkbox` field
|
401 |
-
* Fix: Blank gallery for image fields
|
402 |
-
|
403 |
-
= 4.5 =
|
404 |
-
* Improvement: Separate `esc_meta` method
|
405 |
-
* Improvement: Add ability to use URL to retrieve options for autocomplete field
|
406 |
-
* Improvement: Add `rwmb_get_field` and `rwmb_the_field` functions to get and display field values in the frontend
|
407 |
-
* Improvement: Add field type `custom_html` to display any HTML in the meta box
|
408 |
-
* Improvement: Add field type `key_value` which allows users to add any number of key-value pairs
|
409 |
-
* Improvement: Use single JS file to display Google Maps in the frontend. No more inline Javascript.
|
410 |
-
* Improvement: Code refactor
|
411 |
-
|
412 |
-
= 4.4.3 =
|
413 |
-
* Fix: Incorrect path to loader image for `plupload_image`
|
414 |
-
* Fix: Missing placeholder for `post` field when `field_type` = `select`
|
415 |
-
* Improvement: No errors showing if invalid value is returned from `rwmb_meta_boxes` filter
|
416 |
-
* Improvement: Add filter for add/remove clone buttons text
|
417 |
-
* Improvement: Add French translation
|
418 |
-
|
419 |
-
= 4.4.2 =
|
420 |
-
* Fix: Values of text_list field not showing correctly
|
421 |
-
* Fix: Time picker field cannot select hour > 22, time > 58
|
422 |
-
* Fix: Notice error when showing fields which don't have ID
|
423 |
-
* Fix: Don't return non-existing files or images via rwmb_meta function
|
424 |
-
* Fix: CSS alignment for taxonomy tree
|
425 |
-
* Fix: Placeholder not working for "select" taxonomy
|
426 |
-
* Improvement: Update timepicker to latest version
|
427 |
-
* Improvement: Improve output markup for checkbox field
|
428 |
-
|
429 |
-
= 4.4.1 =
|
430 |
-
* Fix: wrong text domain
|
431 |
-
* Fix: `select_advanced` field not cloning
|
432 |
-
* Fix: cloned emails are not saved
|
433 |
-
* Improvement: Use `post_types` instead of `pages`, accept string for single post type as well. Fallback to `pages` for previous versions.
|
434 |
-
|
435 |
-
= 4.4.0 =
|
436 |
-
* New: 'autocomplete' field.
|
437 |
-
* Improvement: field id is now optional (heading, divider)
|
438 |
-
* Improvement: heading now supports 'description'
|
439 |
-
* Improvement: update select2 library to version 3.5.2
|
440 |
-
* Improvement: coding standards
|
441 |
-
|
442 |
-
= 4.3.11 =
|
443 |
-
* Bug fix: use field id instead of field_name for wysiwyg field
|
444 |
-
* Improvement: allow to sort files
|
445 |
-
* Improvement: use 'meta-box' text domain instead of 'rwmb'
|
446 |
-
* Improvement: coding standards
|
447 |
-
|
448 |
-
= 4.3.10 =
|
449 |
-
* Bug fix: upload & reorder for image fields
|
450 |
-
* Bug fix: not saving meta caused by page template issue
|
451 |
-
* Bug fix: filter names for helper and shortcode callback functions
|
452 |
-
* Bug fix: loads correct locale JS files for jQueryUI date/time picker
|
453 |
-
|
454 |
-
= 4.3.9 =
|
455 |
-
* Bug fix: `text-list` field type
|
456 |
-
* Improvement: better coding styles
|
457 |
-
* Improvement: wysiwyg field is now clonable
|
458 |
-
* Improvement: launch geolocation autocomplete when address field is cloned
|
459 |
-
* Improvement: better cloning for radio, checkbox
|
460 |
-
* Improvement: add more hooks
|
461 |
-
* Improvement: allow child fields to add their own add/remove clone buttons.
|
462 |
-
* Improvement: remove 'clone-group'. Too complicated and not user-friendly.
|
463 |
-
|
464 |
-
= 4.3.8 =
|
465 |
-
* Bug fix: compatibility with PHP 5.2
|
466 |
-
|
467 |
-
= 4.3.7 =
|
468 |
-
* Bug fix: use WP_Query instead of `query_posts` to be compatible with WPML
|
469 |
-
* Bug fix: `get_called_class` function in PHP < 5.3
|
470 |
-
* Bug fix: clone now works for `slider` field
|
471 |
-
* Bug fix: fix cloning URL field
|
472 |
-
* Bug fix: hidden drop area if no max_file_uploads defined
|
473 |
-
* Improvement: added composer.json
|
474 |
-
* Improvement: add Chinese language
|
475 |
-
* Improvement: better check for duplication when save post
|
476 |
-
* Improvement: new `image_select` file, which is "radio image", e.g. select a radio value by selecting image
|
477 |
-
* Improvement: new `file_input` field, which allows to upload files or enter file URL
|
478 |
-
* Improvement: separate core code for meta box and fields
|
479 |
-
* Improvement: allow to add more map options in helper function
|
480 |
-
* Improvement: allow to pass more arguments to "get_terms" function when getting meta value with "rwmb_meta"
|
481 |
-
|
482 |
-
= 4.3.6 =
|
483 |
-
* Bug fix: fatal error in PHP 5.2 (continue)
|
484 |
-
* Improvement: allow register meta boxes via filter
|
485 |
-
|
486 |
-
= 4.3.5 =
|
487 |
-
* Bug fix: fatal error in PHP 5.2
|
488 |
-
* Bug fix: save empty values of clonable fields
|
489 |
-
|
490 |
-
= 4.3.4 =
|
491 |
-
* Bug fix: not show upload button after delete image when reach max_file_upload. #347
|
492 |
-
* Bug fix: autocomplete for map which conflicts with tags (terms) autocomplete
|
493 |
-
* Bug fix: random image order when reorder
|
494 |
-
* Bug fix: undefined index, notices in WordPress 3.6, notice error for oembed field
|
495 |
-
* Improvement: add default location for map field (via `std` param as usual)
|
496 |
-
* Improvement: add `placeholder` for text fields (url, email, etc.)
|
497 |
-
* Improvement: add `multiple` param for helper function to get value of multiple fields
|
498 |
-
* Improvement: `width` & `height` for map in helper function now requires units (allow to set %)
|
499 |
-
* Drop support for WordPress 3.3 (wysiwyg) and < 3.5 (for file & image field which uses new json functions)
|
500 |
-
|
501 |
-
= 4.3.3 =
|
502 |
-
* Bug fix: cannot clear all terms in taxonomy field
|
503 |
-
* Bug fix: potential problem with autosave
|
504 |
-
* Bug fix: cannot save zero string value "0"
|
505 |
-
* Improvement: add Turkish language
|
506 |
-
* Improvement: add taxonomy_advanced field, which saves term IDs as comma separated value in custom field
|
507 |
-
|
508 |
-
= 4.3.2 =
|
509 |
-
* Bug fix: allow to have more than 1 map on a page
|
510 |
-
* Bug fix: use HTTPS for Google Maps to work both in HTTP & HTTPS
|
511 |
-
* Bug fix: allow to clear all terms in taxonomy field
|
512 |
-
* Bug fix: "std" value for select fields is no longer "placeholder"
|
513 |
-
* Improvement: add "placeholder" param for select fields
|
514 |
-
* Improvement: add to helper function ability to show Google Maps in the front end. Check documentation for usage.
|
515 |
-
* Improvement: add spaces between radio inputs
|
516 |
-
* Improvement: add more params to "rwmb_meta" filter
|
517 |
-
* Improvement: using CSS animation for delete image
|
518 |
-
|
519 |
-
= 4.3.1 =
|
520 |
-
* Bug fix: fatal error if ASP open tag is allowed in php.ini
|
521 |
-
|
522 |
-
= 4.3 =
|
523 |
-
* Bug fix: show full size image after upload if thumbnail is not available
|
524 |
-
* Bug fix: new added file not shown
|
525 |
-
* Bug fix: issue with color field disappearing
|
526 |
-
* Bug fix: `max_file_upload` now works for normal `file` & `image` as well
|
527 |
-
* Bug fix: problem with uploading with the advanced fields
|
528 |
-
* Bug fix: file & image advanced not saving
|
529 |
-
* Bug fix: `select_advanced` cloning issue
|
530 |
-
* Bug fix: `plupload_image` ordering
|
531 |
-
* Improvement: add `divider`, `heading`, `button`, `range`, `oembed`, `email`, `post` fields
|
532 |
-
* Improvement: translation for file & image fields
|
533 |
-
* Improvement: add option `default_hidden` to hide meta box by default
|
534 |
-
* Improvement: allow to have multiple maps on the same page
|
535 |
-
* Improvement: file and image advanced now use Underscore.js
|
536 |
-
* Improvement: `slider` filed now has `prefix` and `suffix` for text labels and `js_options` for more JS options
|
537 |
-
* Improvement: WYSIWYS can bypass the `wpautop` using `raw` parameter
|
538 |
-
* Improvement: `color` field now supports new color picker in WP 3.5
|
539 |
-
* Improvement: add `ID` to results returned by `rwmb_meta` when getting meta value of file & image
|
540 |
-
* Improvement: auto use localized version for date & time fields
|
541 |
-
* Improvement: add `timestamp` option to save the datetime as unix timestamp internally
|
542 |
-
* Improvement: add `autosave` option for meta box
|
543 |
-
* Improvement: add `force_delete` option for file and image field
|
544 |
-
* And lots of changes and improvements
|
545 |
-
|
546 |
-
|
547 |
-
= 4.2.4 =
|
548 |
-
* Bug fix: path to Select2 JS and CSS. [Link](http://wordpress.org/support/topic/missing-files-5)
|
549 |
-
* Bug fix: `taxonomy.js` loading
|
550 |
-
* Bug fix: saving in quick mode edit
|
551 |
-
* Improvement: add `before` and `after` attributes to fields that can be used to display custom text
|
552 |
-
* Improvement: add Arabic and Spanish languages
|
553 |
-
* Improvement: add `rwmb*_before_save_post` and `rwmb*_before_save_post` actions before and after save post
|
554 |
-
* Improvement: add autocomplete for geo location in `map` field, add fancy animation to drop marker
|
555 |
-
* Improvemnet: add `url` field
|
556 |
-
|
557 |
-
|
558 |
-
= 4.2.3 =
|
559 |
-
* Bug fix: clone date field. [Link](http://www.deluxeblogtips.com/forums/viewtopic.php?id=299)
|
560 |
-
|
561 |
-
= 4.2.2 =
|
562 |
-
* Bug fix: `time` field doesn't work. [Link](http://wordpress.org/support/topic/time-field-js-wont-run-without-datetime)
|
563 |
-
* Bug fix: wrong JS call for `datetime`. [Link](http://wordpress.org/support/topic/421-datetime)
|
564 |
-
* Improvement: file and images now not deleted from library, *unless* use `force_delete` option
|
565 |
-
* Improvement: add `select_advanced` field, which uses [select2](http://ivaynberg.github.com/select2/) for better UX. Thanks @funkedgeek
|
566 |
-
|
567 |
-
= 4.2.1 =
|
568 |
-
* Bug fix: not save wysiwyg field in full screen mode. [Link](http://www.deluxeblogtips.com/forums/viewtopic.php?id=161)
|
569 |
-
* Bug fix: default value for select/checkbox_list. [Link](http://www.deluxeblogtips.com/forums/viewtopic.php?id=174)
|
570 |
-
* Bug fix: duplicated append test to `date` picker
|
571 |
-
* Bug fix: incorrect enqueue styles, issue #166
|
572 |
-
* Improvement: initial new field type `map`
|
573 |
-
|
574 |
-
= 4.2 =
|
575 |
-
* Bug fix: save only last element of `select` field with `multiple` values. [Link](http://wordpress.org/support/topic/plugin-meta-box-multiple-declaration-for-select-fields-no-longer-working?replies=5#post-3254534)
|
576 |
-
* Improvement: add `js_options` attribute for `date`, `datetime`, `time` fields to adjust jQuery date/datetime picker options. See `demo/demo.php` for usage
|
577 |
-
* Improvement: add `options` attribute for `wysiwyg`. You now can pass arguments same as for `wp_editor` function
|
578 |
-
* Improvement: clone feature now works with `checkbox_list` and `select` with `multiple` values
|
579 |
-
* Improvement: add `rwmb-{$field_type}-wrapper` class to field markup
|
580 |
-
* Improvement: Add [rwmb_meta meta_key="..."] shortcode. Attributes are the same as `rwmb_meta` function.
|
581 |
-
* Code refactored
|
582 |
-
|
583 |
-
= 4.1.11 =
|
584 |
-
* Bug fix: helper function for getting `taxonomy` field type
|
585 |
-
* Bug fix: `multiple` attribute for `select` field type
|
586 |
-
|
587 |
-
= 4.1.10 =
|
588 |
-
* Allow helper functions can be used in admin area
|
589 |
-
* Allow cloned fields to have a uniquely indexed `name` attribute
|
590 |
-
* Add Swedish translation
|
591 |
-
* Allow hidden field has its own value
|
592 |
-
* Taxonomy field now supported by `rwmb_meta` function
|
593 |
-
* Improvement in code format and field normalizing
|
594 |
-
|
595 |
-
= 4.1.9 =
|
596 |
-
* Add helper function to retrieve meta values
|
597 |
-
* Add basic validation (JS based)
|
598 |
-
* Fix image reorder bug
|
599 |
-
* Fix `select_tree` option for taxonomy field
|
600 |
-
* Fix not showing loading image for 1st image using plupload
|
601 |
-
|
602 |
-
= 4.1.8 =
|
603 |
-
* Add missed JS file for thickbox image
|
604 |
-
|
605 |
-
= 4.1.7 =
|
606 |
-
* Quick fix for thickbox image
|
607 |
-
|
608 |
-
= 4.1.6 =
|
609 |
-
* Quick fix for checkbox list and multiple/clonable fields
|
610 |
-
|
611 |
-
= 4.1.5 =
|
612 |
-
* Taxonomy field is now in core
|
613 |
-
* Add demo for including meta boxes for specific posts based on IDs or page templates
|
614 |
-
* Meta box ID is now optional
|
615 |
-
* Add `thickbox_image` field for uploading image with WP style
|
616 |
-
* Fix `guid` for uploaded images
|
617 |
-
|
618 |
-
= 4.1.4 =
|
619 |
-
* Fix taxonomy field
|
620 |
-
|
621 |
-
= 4.1.3 =
|
622 |
-
* Support max_file_uploads for plupload_image
|
623 |
-
* Better enqueue styles & scripts
|
624 |
-
* Store images in correct order after re-order
|
625 |
-
* Fix cloning color, date, time, datetime fields
|
626 |
-
|
627 |
-
= 4.1.2 =
|
628 |
-
* Improve taxonomy field
|
629 |
-
* Add filter to wp_editor
|
630 |
-
* Add more options for time field
|
631 |
-
* Improve plupload_image field
|
632 |
-
* Fix translation, use string for textdomain
|
633 |
-
|
634 |
-
= 4.1.1 =
|
635 |
-
* Fix translation
|
636 |
-
* Change jQueryUI theme to 'smoothness'
|
637 |
-
* Add more demos in the `demo` folder
|
638 |
-
|
639 |
-
= 4.1 =
|
640 |
-
* Added jQuery UI slider field
|
641 |
-
* Added new Plupload file uploader
|
642 |
-
* Added new checkbox list
|
643 |
-
* Fix empty jQuery UI div seen in FF in admin footer area
|
644 |
-
* Fix style for 'side' meta box
|
645 |
-
|
646 |
-
= 4.0.2 =
|
647 |
-
* Reformat code to make more readable
|
648 |
-
* Fix bugs of checkbox field and date field
|
649 |
-
|
650 |
-
= 4.0.1 =
|
651 |
-
* Change format_response() to ajax_response() and use WP_Ajax_Response class to control the ajax response
|
652 |
-
* Use wp_editor() built-in with WP 3.3 (with fallback)
|
653 |
-
|
654 |
-
= 4.0 =
|
655 |
-
* strongly refactor code
|
656 |
-
* create/check better nonce for each meta box
|
657 |
-
* use local JS/CSS libs instead of remote files for better control if conflict occurs
|
658 |
-
* separate field functions (enqueue scripts and styles, add actions, show, save) into separated classes
|
659 |
-
* use filters to let user change HTML of fields
|
660 |
-
* use filters to validate/change field values instead of validation class
|
661 |
-
* don't use Ajax on image upload as it's buggy and complicated. Revert to default upload
|
662 |
-
|
663 |
-
= 3.2.2 =
|
664 |
-
* fix WYSIWYG field for custom post type without 'editor' support. Thanks Jamie, Eugene and Selin Online. (http =//disq.us/2hzgsk)
|
665 |
-
* change some helper function to static as they're shared between objects
|
666 |
-
|
667 |
-
= 3.2.1 =
|
668 |
-
* fix code for getting script's url in Windows
|
669 |
-
* make meta box id is optional
|
670 |
-
|
671 |
-
= 3.2 =
|
672 |
-
* move js and css codes to separated files (rewrite js code for fields, too)
|
673 |
-
* allow to add multiple images to image meta field with selection, modified from "Fast Insert Image" plugin
|
674 |
-
* remove 'style' attibutes for fields as all CSS rules now can be put in the 'meta=box.css' file. All fields now has the class 'rw=$type', and table cells have class 'rwmb=label' and 'rwmb=field'
|
675 |
-
* allow to use file uploader for images as well, regarding http =//disq.us/1k2lwf
|
676 |
-
* when delete uploaded images, they're not deleted from the server (in case you insert them from the media, not the uploader). Also remove hook to delete all attachments when delete post. Regarding http =//disq.us/1nppyi
|
677 |
-
* change hook for adding meta box to 'add_meta_boxes', according Codex. Required WP 3.0+
|
678 |
-
* fix image uploading when custom post type doesn't support "editor"
|
679 |
-
* fix show many alerts when delete files, regarding http =//disq.us/1lolgb
|
680 |
-
* fix js comma missing bug when implement multiple fields with same type
|
681 |
-
* fix order of uploaded images, thank Onur
|
682 |
-
* fix deleting new uploaded image
|
683 |
-
* fix bug when save meta value = zero (0), regarding http =//disq.us/1tg008
|
684 |
-
* some minor changes such as = add 'id' attribute to fields, show uploaded images as thumbnail, add script to header of post.php and post=new.php only
|
685 |
-
|
686 |
-
= 3.1 =
|
687 |
-
* use thickbox for image uploading, allow user edit title, caption or crop, rotate image (credit to Stewart Duffy, idea from Jaace http =//disq.us/1bu64d)
|
688 |
-
* allow to reorder uploaded images (credit to Kai)
|
689 |
-
* save attach ID instead of url (credit to Stewart Duffy)
|
690 |
-
* escape fields value (credit to Stewart Duffy)
|
691 |
-
* add 'style' attribute to fields, allow user quick style fields (like height, width, etc.) (credit to Anders Larsson http =//disq.us/1eg4kp)
|
692 |
-
* wrap ajax callbacks into the class
|
693 |
-
* fix jquery UI conflict (for time picker, color picker, contextual help)
|
694 |
-
* fix notice error for checking post type
|
695 |
-
|
696 |
-
= 3.0.1 =
|
697 |
-
* save uploaded images and files' urls in meta fields
|
698 |
-
* fix date picker bug to not show saved value (http =//disq.us/1cg6mx)
|
699 |
-
* fix check_admin_referer for non=supported post types (http =//goo.gl/B6cah)
|
700 |
-
* refactor code for showing fields
|
701 |
-
|
702 |
-
= 3.0 =
|
703 |
-
* separate functions for checking, displaying and saving each type of field; allow developers easily extend the class
|
704 |
-
* add 'checkbox_list' (credit to Jan Fabry http =//goo.gl/9sDAx), 'color', 'date', 'time' types. The 'taxonomy' type is added as an example of extending class (credit to Manny Fresh http =//goo.gl/goGfm)
|
705 |
-
* show uploaded files as well as allow to add/delete attached files
|
706 |
-
* delete attached files when post is deleted (credit to Kai http =//goo.gl/9gfvd)
|
707 |
-
* validation function MUST return the value instead of true, false
|
708 |
-
* change the way of definition 'radio', 'select' field type to make it more simpler, allow multiple selection of select box
|
709 |
-
* improved some codes, fix code to not show warnings when in debugging mode
|
710 |
-
|
711 |
-
= 2.4.1 =
|
712 |
-
* fix bug of not receiving value for select box
|
713 |
-
|
714 |
-
= 2.4 =
|
715 |
-
* (image upload features are credit to Kai http =//twitter.com/ungestaltbar)
|
716 |
-
* change image upload using meta fields to using default WP gallery
|
717 |
-
* add delete button for images, using ajax
|
718 |
-
* allow to upload multiple images
|
719 |
-
* add validation for meta fields
|
720 |
-
|
721 |
-
= 2.3 =
|
722 |
-
* add wysiwyg editor type, improve check for upload fields, change context and priority attributes to optional
|
723 |
-
|
724 |
-
= 2.2 =
|
725 |
-
* add enctype to post form (fix upload bug), thanks to http =//goo.gl/PWWNf
|
726 |
-
|
727 |
-
= 2.1 =
|
728 |
-
* add file upload, image upload support
|
729 |
-
|
730 |
-
= 2.0 =
|
731 |
-
* oop code, support multiple post types, multiple meta boxes
|
732 |
-
|
733 |
-
= 1.0 =
|
734 |
-
* procedural code
|
735 |
|
736 |
== Upgrade Notice ==
|
1 |
=== Meta Box ===
|
2 |
Contributors: metabox, rilwis, fitwp, f-j-kaiser, funkatronic, PerWiklander, ruanmer, Omnicia
|
3 |
+
Donate link: https://metabox.io/pricing/
|
4 |
Tags: meta-box, custom fields, custom field, meta, meta-boxes, admin, advanced, custom, edit, field, file, image, magic fields, matrix, more fields, Post, repeater, simple fields, text, textarea, type, cms, fields post
|
5 |
+
Requires at least: 4.3
|
6 |
+
Tested up to: 4.9.4
|
7 |
+
Stable tag: 4.14.2
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
|
17 |
|
18 |
With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
|
19 |
|
20 |
+
The plugin requires a little coding, but if you're not familiar with coding or prefer GUI for faster creating custom post types, meta boxes and custom fields, you can use our [Online Generator](https://metabox.io/online-generator/) or use the extensions [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/) or [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/).
|
21 |
|
22 |
### Features
|
23 |
|
24 |
+
#### Create any type of meta data
|
25 |
+
|
26 |
* Create custom meta boxes for posts, pages or any custom post type.
|
27 |
* Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
|
28 |
* Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
|
29 |
* Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
|
30 |
+
|
31 |
+
#### Wide-range of field types and options
|
32 |
+
|
33 |
+
* Supports 40+ built-in [field types](https://docs.metabox.io/field-settings/) for all your needs (text, textarea, wysiwyg/editor, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!). You can also [create your own field type](https://docs.metabox.io/custom-field-type/) easily.
|
34 |
* Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
|
35 |
+
* Powerful [actions](https://docs.metabox.io/actions/) and [filters](https://docs.metabox.io/filters/) that developers can build or change the appearance and behavior in the plugin.
|
36 |
+
|
37 |
+
#### Create meta boxes and custom fields with UI
|
38 |
+
|
39 |
+
The plugin is built mostly for developers with a little coding, but if you prefer GUI for faster creating custom post types, meta boxes and custom fields, the plugin has extensions for that:
|
40 |
+
|
41 |
+
- [Online Generator](https://metabox.io/online-generator/)
|
42 |
+
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/)
|
43 |
+
- [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/)
|
44 |
+
|
45 |
+
<blockquote>To make it easy for all users to create custom meta boxes and custom fields, we have created an <a href="https://metabox.io/online-generator/">Online Generator</a> tool. It has an user-friendly interface with drag and drop features. No custom code anymore!</blockquote>
|
46 |
+
|
47 |
+
#### Developer-friendly
|
48 |
+
|
49 |
+
* Uses the [native WordPress meta data storage](https://docs.metabox.io/database/) and functions for ease of use and fast processing.
|
50 |
+
* [Easily integrate with themes and plugins](https://docs.metabox.io/integration/).
|
51 |
+
* [Works with Composer](https://docs.metabox.io/composer/) if you want to include the plugin in your project.
|
52 |
* Compatible with WPML multilingual plugin (officially supported by WPML team).
|
53 |
|
54 |
+
#### Detailed Documentation
|
55 |
|
56 |
+
We provide regular updated and extensive documentation. Not only technical things, but also tutorials on how to use the plugin better.
|
|
|
|
|
|
|
57 |
|
58 |
+
- [Quick Start Guide](https://docs.metabox.io/quick-start/)
|
59 |
+
- [Creating Meta Boxes](https://docs.metabox.io/creating-meta-boxes/)
|
60 |
+
- [Field Settings](https://docs.metabox.io/field-settings/)
|
61 |
+
- [Displaying Fields](https://docs.metabox.io/displaying-fields/)
|
62 |
+
|
63 |
+
See more documentation [here](https://docs.metabox.io).
|
64 |
|
65 |
### Extensions
|
66 |
|
67 |
+
#### Free Extensions
|
68 |
+
|
|
|
|
|
|
|
69 |
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
|
70 |
+
- [MB Relationships](https://wordpress.org/plugins/mb-relationships/): Create many-to-many relationships from posts to posts.
|
71 |
- [Meta Box Yoast SEO](https://wordpress.org/plugins/meta-box-yoast-seo/): Add content of custom fields to Yoast SEO Content Analysis to have better/correct SEO score.
|
72 |
+
- [MB Rest API](https://metabox.io/plugins/mb-rest-api/): Pull all meta value from posts, terms into the WP REST API responses.
|
73 |
+
- [MB Comment Meta](https://wordpress.org/plugins/mb-comment-meta/): Add custom fields to comments in WordPress. Support all field types and options.
|
74 |
+
- [MB Custom Taxonomy](https://metabox.io/plugins/custom-taxonomy/): Create and manage custom taxonomies with an easy-to-use interface in WordPress.
|
75 |
- [Meta Box Text Limiter](https://wordpress.org/plugins/meta-box-text-limiter/): Limit the number of characters or words entered for text and textarea fields.
|
76 |
+
- [Meta Box – FacetWP Integrator](https://metabox.io/plugins/meta-box-facetwp-integrator/): Integrates Meta Box and FacetWP, makes custom fields searchable and filterable in the frontend.
|
77 |
+
|
78 |
+
#### Premium Extensions
|
79 |
+
|
80 |
- [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): Create custom meta boxes and custom fields in WordPress using the drag-and-drop interface.
|
81 |
+
- [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
|
82 |
+
- [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
|
83 |
+
- [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
|
84 |
+
- [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
|
85 |
+
- [Meta Box Include Exclude](https://metabox.io/plugins/meta-box-include-exclude/): Show/hide meta boxes by ID, page template, taxonomy or custom function.
|
86 |
+
- [MB Frontend Submission](https://metabox.io/plugins/mb-frontend-submission/): Create frontend forms for users to submit custom content. Embed everywhere with shortcode.
|
87 |
+
- [Meta Box Columns](https://metabox.io/plugins/meta-box-columns/): Display fields more beautiful by putting them into 12-columns grid.
|
88 |
+
- [Meta Box Tabs](https://metabox.io/plugins/meta-box-tabs/): Create tabs for meta boxes easily. Support 3 WordPress-native tab styles and tab icon.
|
89 |
+
- [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
|
90 |
+
- [MB Custom Table](https://metabox.io/plugins/mb-custom-table/): Save custom fields data to custom table instead of the default meta tables. Reduce database size and increase performance.
|
91 |
+
- [MB Revision](https://metabox.io/plugins/mb-revision/): Track changes of custom fields with WordPress revision. Save, compare, restore the changes easily.
|
92 |
+
- [MB User Meta](https://metabox.io/plugins/mb-user-meta/): Add custom fields to user profile (user meta) quickly with simple syntax.
|
93 |
+
- [Meta Box Geolocation](https://metabox.io/plugins/meta-box-geolocation/): Automatically and instantly populate location data with the power of Google Maps Geolocation API.
|
94 |
- [Meta Box Template](https://metabox.io/plugins/meta-box-template/): Define custom meta boxes and custom fields easier with templates.
|
95 |
- [Meta Box Tooltip](https://metabox.io/plugins/meta-box-tooltip/): Display help information for fields using beautiful tooltips.
|
96 |
+
- [Meta Box Show Hide](https://metabox.io/plugins/meta-box-show-hide-javascript/): Toggle meta boxes by page template, post format, taxonomy (including category) via Javascript.
|
|
|
|
|
|
|
97 |
|
98 |
See all extensions [here](https://metabox.io/plugins/).
|
99 |
|
100 |
### Plugin Links
|
101 |
|
102 |
- [Project Page](https://metabox.io)
|
103 |
+
- [Documentation](https://docs.metabox.io)
|
104 |
+
- [Report Bugs/Issues](https://github.com/wpmetabox/meta-box/issues)
|
105 |
+
- [Premium Extensions](https://metabox.io/plugins/)
|
106 |
|
107 |
== Installation ==
|
108 |
|
109 |
+
From within WordPress
|
110 |
+
|
111 |
+
1. Visit **Plugins > Add New**
|
112 |
+
1. Search for **Meta Box**
|
113 |
+
1. Click the **Install Now** button to install the plugin
|
114 |
+
1. Click the **Activate** button to activate the plugin
|
115 |
+
|
116 |
+
Manually
|
117 |
+
|
118 |
1. Unzip the download package
|
119 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
120 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
121 |
|
122 |
+
To getting started with the plugin, please read [this tutorial](https://docs.metabox.io/quick-start/).
|
123 |
|
124 |
== Frequently Asked Questions ==
|
125 |
|
133 |
|
134 |
== Changelog ==
|
135 |
|
136 |
+
[See full changelog here](https://github.com/wpmetabox/meta-box/blob/master/CHANGELOG.md).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
138 |
== Upgrade Notice ==
|
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
$upload_dir = wp_upload_dir();
|
6 |
// version
|
7 |
-
define( 'LEARNPRESS_VERSION', '3.0.
|
8 |
|
9 |
define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
|
10 |
|
4 |
*/
|
5 |
$upload_dir = wp_upload_dir();
|
6 |
// version
|
7 |
+
define( 'LEARNPRESS_VERSION', '3.0.7' );
|
8 |
|
9 |
define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
|
10 |
|
@@ -1288,7 +1288,7 @@ function learn_press_currency_symbols() {
|
|
1288 |
'TMT' => 'm',
|
1289 |
'TND' => 'د.ت',
|
1290 |
'TOP' => 'T$',
|
1291 |
-
'TRY' => '&#
|
1292 |
'TTD' => '$',
|
1293 |
'TWD' => 'NT$',
|
1294 |
'TZS' => 'Sh',
|
@@ -1342,17 +1342,17 @@ function learn_press_get_currency_symbol( $currency = '' ) {
|
|
1342 |
*/
|
1343 |
function learn_press_get_page_link( $key ) {
|
1344 |
$page_id = LP()->settings->get( $key . '_page_id' );
|
1345 |
-
|
1346 |
-
$link = apply_filters( 'learn_press_get_page_link', get_permalink( $page_id ), $page_id, $key );
|
1347 |
|
1348 |
-
|
1349 |
-
|
1350 |
-
$
|
|
|
1351 |
}
|
1352 |
|
1353 |
$link = apply_filters( 'learn_press_get_page_' . $key . '_link', $link, $page_id );
|
1354 |
|
1355 |
-
return apply_filters( 'learn-press/get-page-' . $key . '-link', $link, $page_id );
|
1356 |
}
|
1357 |
|
1358 |
|
1288 |
'TMT' => 'm',
|
1289 |
'TND' => 'د.ت',
|
1290 |
'TOP' => 'T$',
|
1291 |
+
'TRY' => '₺',
|
1292 |
'TTD' => '$',
|
1293 |
'TWD' => 'NT$',
|
1294 |
'TZS' => 'Sh',
|
1342 |
*/
|
1343 |
function learn_press_get_page_link( $key ) {
|
1344 |
$page_id = LP()->settings->get( $key . '_page_id' );
|
1345 |
+
$link = '';
|
|
|
1346 |
|
1347 |
+
if ( get_post_status( $page_id ) == 'publish' ) {
|
1348 |
+
$permalink = trailingslashit( get_permalink( $page_id ) );
|
1349 |
+
$permalink = apply_filters( 'learn_press_get_page_link', $permalink, $page_id, $key );
|
1350 |
+
$link = apply_filters( 'learn-press/get-page-link', $permalink, $page_id, $key );
|
1351 |
}
|
1352 |
|
1353 |
$link = apply_filters( 'learn_press_get_page_' . $key . '_link', $link, $page_id );
|
1354 |
|
1355 |
+
return apply_filters( 'learn-press/get-page-' . $key . '-link', trailingslashit( $link ), $page_id );
|
1356 |
}
|
1357 |
|
1358 |
|
@@ -254,7 +254,7 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
254 |
}
|
255 |
|
256 |
if ( $prop === 'status' ) {
|
257 |
-
if ( isset($results['grade']) ) {
|
258 |
$prop = 'grade';
|
259 |
}
|
260 |
}
|
@@ -297,7 +297,10 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
297 |
* @return array
|
298 |
*/
|
299 |
protected function _evaluate_course_by_lesson() {
|
300 |
-
|
|
|
|
|
|
|
301 |
$completing = $this->get_completed_items( LP_LESSON_CPT, true );
|
302 |
if ( $completing[1] ) {
|
303 |
$result = $completing[0] / $completing[1];
|
@@ -311,10 +314,13 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
311 |
'status' => $this->get_status()
|
312 |
);
|
313 |
|
314 |
-
|
|
|
|
|
|
|
315 |
}
|
316 |
|
317 |
-
return $
|
318 |
}
|
319 |
|
320 |
/**
|
@@ -336,7 +342,9 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
336 |
*/
|
337 |
protected function _evaluate_course_by_final_quiz() {
|
338 |
|
339 |
-
|
|
|
|
|
340 |
$course = $this->get_course();
|
341 |
$final_quiz = $course->get_final_quiz();
|
342 |
$result = false;
|
@@ -350,11 +358,13 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
350 |
'grade' => $this->is_finished() ? $this->_is_passed( $percent ) : '',
|
351 |
'status' => $this->get_status()
|
352 |
);
|
|
|
|
|
353 |
|
354 |
-
wp_cache_set(
|
355 |
}
|
356 |
|
357 |
-
return $
|
358 |
}
|
359 |
|
360 |
/**
|
@@ -364,10 +374,12 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
364 |
*/
|
365 |
protected function _evaluate_course_by_quizzes() {
|
366 |
|
367 |
-
|
368 |
|
369 |
-
|
370 |
-
|
|
|
|
|
371 |
$result_of_items = 0;
|
372 |
|
373 |
if ( $items = $this->get_items() ) {
|
@@ -375,22 +387,25 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
375 |
if ( $item->get_type() !== LP_QUIZ_CPT ) {
|
376 |
continue;
|
377 |
}
|
378 |
-
if( $item->get_quiz()->get_data( 'passing_grade' ) ) {
|
379 |
-
|
380 |
-
|
381 |
}
|
382 |
}
|
383 |
-
$result
|
384 |
$data['result'] = $result;
|
385 |
if ( $this->is_finished() ) {
|
386 |
$data['grade'] = $this->_is_passed( $result );
|
387 |
}
|
388 |
}
|
389 |
|
390 |
-
|
|
|
|
|
|
|
391 |
}
|
392 |
|
393 |
-
return $
|
394 |
}
|
395 |
|
396 |
/**
|
@@ -400,22 +415,24 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
400 |
*/
|
401 |
protected function _evaluate_course_by_passed_quizzes() {
|
402 |
|
403 |
-
|
404 |
|
405 |
-
|
406 |
-
|
|
|
|
|
407 |
$result_of_items = 0;
|
408 |
if ( $items = $this->get_items() ) {
|
409 |
foreach ( $items as $item ) {
|
410 |
if ( $item->get_type() !== LP_QUIZ_CPT ) {
|
411 |
continue;
|
412 |
}
|
413 |
-
if( $item->get_quiz()->get_data( 'passing_grade' ) ) {
|
414 |
-
|
415 |
-
|
416 |
}
|
417 |
}
|
418 |
-
$result
|
419 |
$data['result'] = $result;
|
420 |
|
421 |
if ( $this->is_finished() ) {
|
@@ -423,10 +440,13 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
423 |
}
|
424 |
}
|
425 |
|
426 |
-
|
|
|
|
|
|
|
427 |
}
|
428 |
|
429 |
-
return $
|
430 |
}
|
431 |
|
432 |
/**
|
@@ -435,35 +455,39 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
435 |
* @return array
|
436 |
*/
|
437 |
protected function _evaluate_course_by_completed_quizzes() {
|
|
|
438 |
|
439 |
-
if ( false === ( $
|
440 |
$course = $this->get_course();
|
441 |
|
442 |
$data = array( 'result' => 0, 'grade' => '', 'status' => $this->get_status() );
|
443 |
$result = 0;
|
444 |
|
445 |
if ( $items = $this->get_items() ) {
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
$data['result'] = $result;
|
458 |
if ( $this->is_finished() ) {
|
459 |
$data['grade'] = $this->_is_passed( $result );
|
460 |
}
|
461 |
}
|
462 |
|
463 |
-
|
|
|
|
|
|
|
464 |
}
|
465 |
|
466 |
-
return $
|
467 |
}
|
468 |
|
469 |
protected function _is_passed( $result ) {
|
@@ -475,9 +499,9 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
475 |
/**
|
476 |
* Get completed items.
|
477 |
*
|
478 |
-
* @param string $type
|
479 |
-
* @param bool
|
480 |
-
* @param int
|
481 |
*
|
482 |
* @return array|bool|mixed
|
483 |
*/
|
@@ -514,7 +538,7 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
514 |
if ( $item->get_status() == 'completed' ) {
|
515 |
$completed ++;
|
516 |
}
|
517 |
-
|
518 |
//if ( ! $item->is_preview() ) {
|
519 |
$total ++;
|
520 |
//}
|
@@ -531,8 +555,8 @@ class LP_User_Item_Course extends LP_User_Item implements ArrayAccess {
|
|
531 |
/**
|
532 |
* Get items completed by percentage.
|
533 |
*
|
534 |
-
* @param string $type
|
535 |
-
* @param int
|
536 |
*
|
537 |
* @return float|int
|
538 |
*/
|
254 |
}
|
255 |
|
256 |
if ( $prop === 'status' ) {
|
257 |
+
if ( isset( $results['grade'] ) ) {
|
258 |
$prop = 'grade';
|
259 |
}
|
260 |
}
|
297 |
* @return array
|
298 |
*/
|
299 |
protected function _evaluate_course_by_lesson() {
|
300 |
+
|
301 |
+
$cache_key = 'user-course-' . $this->get_user_id() . '-' . $this->get_id();
|
302 |
+
|
303 |
+
if ( false === ( $cached_data = wp_cache_get( $cache_key, 'course-results' ) ) || ! array_key_exists( 'lessons', $cached_data ) ) {
|
304 |
$completing = $this->get_completed_items( LP_LESSON_CPT, true );
|
305 |
if ( $completing[1] ) {
|
306 |
$result = $completing[0] / $completing[1];
|
314 |
'status' => $this->get_status()
|
315 |
);
|
316 |
|
317 |
+
settype( $cached_data, 'array' );
|
318 |
+
$cached_data['lessons'] = $data;
|
319 |
+
|
320 |
+
wp_cache_set( $cache_key, $cached_data, 'course-results' );
|
321 |
}
|
322 |
|
323 |
+
return isset( $cached_data['lessons'] ) ? $cached_data['lessons'] : array();
|
324 |
}
|
325 |
|
326 |
/**
|
342 |
*/
|
343 |
protected function _evaluate_course_by_final_quiz() {
|
344 |
|
345 |
+
$cache_key = 'user-course-' . $this->get_user_id() . '-' . $this->get_id();
|
346 |
+
|
347 |
+
if ( false === ( $cached_data = wp_cache_get( $cache_key, 'course-results' ) ) || ! array_key_exists( 'final-quiz', $cached_data ) ) {
|
348 |
$course = $this->get_course();
|
349 |
$final_quiz = $course->get_final_quiz();
|
350 |
$result = false;
|
358 |
'grade' => $this->is_finished() ? $this->_is_passed( $percent ) : '',
|
359 |
'status' => $this->get_status()
|
360 |
);
|
361 |
+
settype( $cached_data, 'array' );
|
362 |
+
$cached_data['final-quiz'] = $data;
|
363 |
|
364 |
+
wp_cache_set( $cache_key, $cached_data, 'course-results' );
|
365 |
}
|
366 |
|
367 |
+
return isset( $cached_data['final-quiz'] ) ? $cached_data['final-quiz'] : array();
|
368 |
}
|
369 |
|
370 |
/**
|
374 |
*/
|
375 |
protected function _evaluate_course_by_quizzes() {
|
376 |
|
377 |
+
$cache_key = 'user-course-' . $this->get_user_id() . '-' . $this->get_id();
|
378 |
|
379 |
+
if ( ( false === ( $cached_data = wp_cache_get( $cache_key, 'course-results' ) ) ) || ! array_key_exists( 'quizzes', $cached_data ) ) {
|
380 |
+
|
381 |
+
$data = array( 'result' => 0, 'grade' => '', 'status' => $this->get_status() );
|
382 |
+
$result = 0;
|
383 |
$result_of_items = 0;
|
384 |
|
385 |
if ( $items = $this->get_items() ) {
|
387 |
if ( $item->get_type() !== LP_QUIZ_CPT ) {
|
388 |
continue;
|
389 |
}
|
390 |
+
if ( $item->get_quiz()->get_data( 'passing_grade' ) ) {
|
391 |
+
$result += $item->get_results( 'result' );
|
392 |
+
$result_of_items ++;
|
393 |
}
|
394 |
}
|
395 |
+
$result = $result_of_items ? $result / $result_of_items : 0;
|
396 |
$data['result'] = $result;
|
397 |
if ( $this->is_finished() ) {
|
398 |
$data['grade'] = $this->_is_passed( $result );
|
399 |
}
|
400 |
}
|
401 |
|
402 |
+
settype( $cached_data, 'array' );
|
403 |
+
$cached_data['quizzes'] = $data;
|
404 |
+
|
405 |
+
wp_cache_set( $cache_key, $cached_data, 'course-results' );
|
406 |
}
|
407 |
|
408 |
+
return isset( $cached_data['quizzes'] ) ? $cached_data['quizzes'] : array();
|
409 |
}
|
410 |
|
411 |
/**
|
415 |
*/
|
416 |
protected function _evaluate_course_by_passed_quizzes() {
|
417 |
|
418 |
+
$cache_key = 'user-course-' . $this->get_user_id() . '-' . $this->get_id();
|
419 |
|
420 |
+
if ( false === ( $cached_data = wp_cache_get( $cache_key, 'course-results' )) || ! array_key_exists( 'passed-quizzes', $cached_data ) ) {
|
421 |
+
|
422 |
+
$data = array( 'result' => 0, 'grade' => '', 'status' => $this->get_status() );
|
423 |
+
$result = 0;
|
424 |
$result_of_items = 0;
|
425 |
if ( $items = $this->get_items() ) {
|
426 |
foreach ( $items as $item ) {
|
427 |
if ( $item->get_type() !== LP_QUIZ_CPT ) {
|
428 |
continue;
|
429 |
}
|
430 |
+
if ( $item->get_quiz()->get_data( 'passing_grade' ) ) {
|
431 |
+
$result += $item->is_passed() ? $item->get_results( 'result' ) : 0;
|
432 |
+
$result_of_items ++;
|
433 |
}
|
434 |
}
|
435 |
+
$result = $result_of_items ? $result / $result_of_items : 0;
|
436 |
$data['result'] = $result;
|
437 |
|
438 |
if ( $this->is_finished() ) {
|
440 |
}
|
441 |
}
|
442 |
|
443 |
+
settype( $cached_data, 'array' );
|
444 |
+
$cached_data['passed-quizzes'] = $data;
|
445 |
+
|
446 |
+
wp_cache_set( $cache_key, $cached_data, 'course-results' );
|
447 |
}
|
448 |
|
449 |
+
return isset( $cached_data['passed-quizzes'] ) ? $cached_data['passed-quizzes'] : array();
|
450 |
}
|
451 |
|
452 |
/**
|
455 |
* @return array
|
456 |
*/
|
457 |
protected function _evaluate_course_by_completed_quizzes() {
|
458 |
+
$cache_key = 'user-course-' . $this->get_user_id() . '-' . $this->get_id();
|
459 |
|
460 |
+
if ( false === ( $cached_data = wp_cache_get( $cache_key, 'course-results' ) ) || ! array_key_exists( 'completed-quizzes', $cached_data ) ) {
|
461 |
$course = $this->get_course();
|
462 |
|
463 |
$data = array( 'result' => 0, 'grade' => '', 'status' => $this->get_status() );
|
464 |
$result = 0;
|
465 |
|
466 |
if ( $items = $this->get_items() ) {
|
467 |
+
$result_of_items = 0;
|
468 |
+
foreach ( $items as $item ) {
|
469 |
+
if ( $item->get_type() !== LP_QUIZ_CPT ) {
|
470 |
+
continue;
|
471 |
+
}
|
472 |
+
if ( $item->get_quiz()->get_data( 'passing_grade' ) ) {
|
473 |
+
$result += $item->is_passed() ? 1 : 0;
|
474 |
+
$result_of_items ++;
|
475 |
+
}
|
476 |
+
}
|
477 |
+
$result = $result_of_items ? $result * 100 / $result_of_items : 0;
|
478 |
$data['result'] = $result;
|
479 |
if ( $this->is_finished() ) {
|
480 |
$data['grade'] = $this->_is_passed( $result );
|
481 |
}
|
482 |
}
|
483 |
|
484 |
+
settype( $cached_data, 'array' );
|
485 |
+
$cached_data['completed-quizzes'] = $data;
|
486 |
+
|
487 |
+
wp_cache_set( $cache_key, $cached_data, 'course-results' );
|
488 |
}
|
489 |
|
490 |
+
return isset( $cached_data['completed-quizzes'] ) ? $cached_data['completed-quizzes'] : array();
|
491 |
}
|
492 |
|
493 |
protected function _is_passed( $result ) {
|
499 |
/**
|
500 |
* Get completed items.
|
501 |
*
|
502 |
+
* @param string $type - Optional. Filter by type (such lp_quiz, lp_lesson) if passed
|
503 |
+
* @param bool $with_total - Optional. Include total if TRUE
|
504 |
+
* @param int $section_id - Optional. Get in specific section
|
505 |
*
|
506 |
* @return array|bool|mixed
|
507 |
*/
|
538 |
if ( $item->get_status() == 'completed' ) {
|
539 |
$completed ++;
|
540 |
}
|
541 |
+
$completed = apply_filters( 'learn-press/course-item/completed', $completed, $item, $item->get_status() );
|
542 |
//if ( ! $item->is_preview() ) {
|
543 |
$total ++;
|
544 |
//}
|
555 |
/**
|
556 |
* Get items completed by percentage.
|
557 |
*
|
558 |
+
* @param string $type - Optional. Filter by type or not
|
559 |
+
* @param int $section_id - Optional. Get in specific section
|
560 |
*
|
561 |
* @return float|int
|
562 |
*/
|
@@ -135,17 +135,17 @@ class LP_User_Item_Quiz extends LP_User_Item {
|
|
135 |
|
136 |
if ( $questions = $quiz->get_questions() ) {
|
137 |
foreach ( $questions as $question_id ) {
|
138 |
-
$question
|
139 |
-
$answered
|
140 |
-
$check
|
141 |
-
|
142 |
-
|
143 |
|
144 |
-
|
145 |
$result['question_correct'] ++;
|
146 |
$result['user_mark'] += array_key_exists( 'mark', $check ) ? floatval( $check['mark'] ) : $question->get_mark();
|
147 |
} else {
|
148 |
-
|
149 |
$result['question_empty'] ++;
|
150 |
} else {
|
151 |
$result['question_wrong'] ++;
|
@@ -227,7 +227,11 @@ class LP_User_Item_Quiz extends LP_User_Item {
|
|
227 |
public function get_questions_answered( $percent = false ) {
|
228 |
$result = $this->get_results();
|
229 |
if ( $percent ) {
|
230 |
-
|
|
|
|
|
|
|
|
|
231 |
} else {
|
232 |
$return = $result['question_answered'];
|
233 |
}
|
135 |
|
136 |
if ( $questions = $quiz->get_questions() ) {
|
137 |
foreach ( $questions as $question_id ) {
|
138 |
+
$question = LP_Question::get_question( $question_id );
|
139 |
+
$answered = $this->get_question_answer( $question_id );
|
140 |
+
$check = apply_filters( 'learn-press/quiz/check-question-result', $question->check( $answered ), $question_id, $this );
|
141 |
+
$check['type'] = ! isset( $check['type'] ) || ! $check['type'] ? $question->get_type() : $check['type'];
|
142 |
+
$check['answered'] = ! isset( $check['answered'] ) ? $answered !== false : $check['answered'];
|
143 |
|
144 |
+
if ( false !== $check['answered'] && $check['correct'] ) {
|
145 |
$result['question_correct'] ++;
|
146 |
$result['user_mark'] += array_key_exists( 'mark', $check ) ? floatval( $check['mark'] ) : $question->get_mark();
|
147 |
} else {
|
148 |
+
if ( false === $check['answered'] ) {
|
149 |
$result['question_empty'] ++;
|
150 |
} else {
|
151 |
$result['question_wrong'] ++;
|
227 |
public function get_questions_answered( $percent = false ) {
|
228 |
$result = $this->get_results();
|
229 |
if ( $percent ) {
|
230 |
+
if ( $result['question_count'] ) {
|
231 |
+
$return = 0;
|
232 |
+
} else {
|
233 |
+
$return = $result['question_answered'] ? ( $result['question_answered'] / $result['question_count'] ) * 100 : 0;
|
234 |
+
}
|
235 |
} else {
|
236 |
$return = $result['question_answered'];
|
237 |
}
|
@@ -385,7 +385,7 @@ if ( ! class_exists( 'LP_Profile' ) ) {
|
|
385 |
* Get current tab slug in query string.
|
386 |
*
|
387 |
* @param string $default Optional.
|
388 |
-
* @param bool
|
389 |
*
|
390 |
* @return string
|
391 |
*/
|
@@ -614,11 +614,11 @@ if ( ! class_exists( 'LP_Profile' ) ) {
|
|
614 |
* from settings in admin.
|
615 |
*/
|
616 |
if ( ( $user = $this->get_user() ) && ( '' === ( $publicity = $user->get_data( 'profile_publicity' ) ) ) ) {
|
617 |
-
$publicity = array(
|
618 |
'my-dashboard' => LP()->settings()->get( 'profile_publicity.dashboard' ),
|
619 |
'courses' => LP()->settings()->get( 'profile_publicity.courses' ),
|
620 |
'quizzes' => LP()->settings()->get( 'profile_publicity.quizzes' )
|
621 |
-
);
|
622 |
}
|
623 |
|
624 |
if ( $publicity && $tab ) {
|
385 |
* Get current tab slug in query string.
|
386 |
*
|
387 |
* @param string $default Optional.
|
388 |
+
* @param bool $key Optional. True if return the key instead of value.
|
389 |
*
|
390 |
* @return string
|
391 |
*/
|
614 |
* from settings in admin.
|
615 |
*/
|
616 |
if ( ( $user = $this->get_user() ) && ( '' === ( $publicity = $user->get_data( 'profile_publicity' ) ) ) ) {
|
617 |
+
$publicity = apply_filters( 'learn-press/get-publicity-setting', array(
|
618 |
'my-dashboard' => LP()->settings()->get( 'profile_publicity.dashboard' ),
|
619 |
'courses' => LP()->settings()->get( 'profile_publicity.courses' ),
|
620 |
'quizzes' => LP()->settings()->get( 'profile_publicity.quizzes' )
|
621 |
+
) );
|
622 |
}
|
623 |
|
624 |
if ( $publicity && $tab ) {
|
Binary file
|
@@ -1,2528 +1,8223 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version:
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: Polish\n"
|
|
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"
|
15 |
-
"X-Generator: Loco - https://localise.biz/"
|
16 |
|
17 |
-
#:
|
18 |
#, php-format
|
19 |
-
msgid "
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
msgstr
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
msgstr "System Zarządzania Nauczaniem"
|
28 |
-
|
29 |
-
#: learnpress.php:353 learnpress.php:373
|
30 |
-
msgid "LearnPress"
|
31 |
-
msgstr "LearnPress"
|
32 |
|
33 |
-
#:
|
34 |
-
|
35 |
-
|
|
|
36 |
|
37 |
-
#:
|
38 |
-
msgid "
|
39 |
-
msgstr "
|
40 |
|
41 |
-
#:
|
42 |
-
msgid "
|
43 |
-
msgstr "
|
44 |
|
45 |
-
#:
|
46 |
-
|
47 |
-
msgid "
|
48 |
-
msgstr "
|
49 |
|
50 |
-
#: inc/class.
|
51 |
-
msgid "
|
52 |
-
msgstr "
|
53 |
|
54 |
-
#: inc/class
|
55 |
msgid "Access denied!"
|
56 |
-
msgstr "
|
57 |
-
|
58 |
-
#: inc/class.lpr-ajax.php:404
|
59 |
-
msgid "Congratulation ! You have finished this course"
|
60 |
-
msgstr "Gratulacje ! Kurs zaliczony"
|
61 |
-
|
62 |
-
#: inc/class.lpr-ajax.php:407
|
63 |
-
msgid "Sorry! You can not finish this course now"
|
64 |
-
msgstr "Przepraszamy! Nie możesz dokończyć teraz kursu"
|
65 |
|
66 |
-
#: inc/class
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
#: inc/class.lpr-multi-language.php:40 lib/meta-box/inc/common.php:48
|
71 |
-
msgid "Documentation"
|
72 |
-
msgstr "Dokumentacja"
|
73 |
|
74 |
-
#: inc/class
|
75 |
-
msgid "
|
76 |
-
|
|
|
|
|
|
|
77 |
|
78 |
-
#: inc/class
|
79 |
-
|
80 |
-
|
81 |
-
#: templates/archive-course-content.php:25 templates/course_content.php:27
|
82 |
-
msgid "Edit"
|
83 |
-
msgstr "Edytuj"
|
84 |
-
|
85 |
-
#: inc/class.lpr-question-type.php:120
|
86 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:114
|
87 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:146
|
88 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:169
|
89 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:212
|
90 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:237
|
91 |
-
#: lib/meta-box/inc/fields/file-input.php:38
|
92 |
-
msgid "Remove"
|
93 |
-
msgstr "Usuń"
|
94 |
|
95 |
-
#: inc/class
|
96 |
-
|
97 |
-
|
|
|
98 |
|
99 |
-
#: inc/class
|
100 |
-
msgid "
|
101 |
-
msgstr "
|
102 |
|
103 |
-
#: inc/class
|
104 |
-
msgid "
|
105 |
-
msgstr "
|
106 |
|
107 |
-
#: inc/class
|
108 |
#, php-format
|
109 |
-
msgid "
|
110 |
-
msgstr "
|
111 |
|
112 |
-
#: inc/class
|
113 |
-
msgid "
|
114 |
-
msgstr "
|
115 |
|
116 |
-
#: inc/class.
|
117 |
-
|
118 |
-
|
|
|
|
|
119 |
|
120 |
-
#: inc/class.
|
121 |
-
msgid "
|
122 |
-
msgstr "
|
123 |
|
124 |
-
#: inc/class
|
125 |
-
msgid "
|
126 |
-
msgstr "
|
127 |
|
128 |
-
#: inc/class
|
129 |
-
|
130 |
-
|
131 |
-
msgstr "Zostań opiekunem"
|
132 |
|
133 |
-
#: inc/class
|
134 |
-
msgid "
|
135 |
-
msgstr "
|
136 |
|
137 |
-
#: inc/class
|
138 |
-
msgid "
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
-
#: inc/class
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
|
145 |
-
#: inc/class
|
146 |
-
msgid "
|
147 |
-
msgstr "
|
148 |
|
149 |
-
#: inc/class
|
150 |
-
|
151 |
-
|
|
|
152 |
|
153 |
-
#: inc/class
|
154 |
-
|
155 |
-
|
|
|
156 |
|
157 |
-
#: inc/class
|
158 |
-
|
159 |
-
|
|
|
160 |
|
161 |
-
#: inc/class
|
162 |
-
|
163 |
-
|
|
|
164 |
|
165 |
-
#: inc/class
|
166 |
-
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
-
#: inc/
|
170 |
-
msgid "
|
171 |
-
msgstr "
|
172 |
|
173 |
-
#: inc/
|
174 |
-
|
175 |
-
|
176 |
-
msgid "Enabled"
|
177 |
-
msgstr "Włączone"
|
178 |
|
179 |
-
#: inc/
|
180 |
-
|
181 |
-
|
182 |
-
msgid "Disabled"
|
183 |
-
msgstr "Wyłączone"
|
184 |
|
185 |
-
#: inc/
|
186 |
-
msgid "
|
187 |
-
msgstr "
|
188 |
|
189 |
-
#: inc/
|
190 |
-
msgid "
|
191 |
-
msgstr "
|
192 |
|
193 |
-
#: inc/
|
194 |
-
msgid "
|
195 |
-
msgstr "
|
196 |
|
197 |
-
#: inc/
|
198 |
-
|
199 |
-
|
|
|
200 |
|
201 |
-
#: inc/
|
202 |
-
msgid "
|
203 |
-
msgstr "
|
204 |
|
205 |
-
#: inc/
|
|
|
206 |
#, php-format
|
207 |
-
msgid "
|
208 |
-
msgstr "
|
209 |
|
210 |
-
#: inc/
|
211 |
-
msgid "
|
212 |
-
msgstr "
|
213 |
|
214 |
-
#: inc/
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
|
|
|
|
219 |
|
220 |
-
#: inc/
|
221 |
-
msgid "
|
222 |
-
msgstr "
|
223 |
|
224 |
-
#: inc/
|
225 |
-
msgid "
|
226 |
-
msgstr "
|
227 |
|
228 |
-
#: inc/
|
229 |
-
msgid "
|
230 |
-
msgstr "
|
231 |
|
232 |
-
#: inc/
|
233 |
-
msgid "
|
234 |
-
msgstr "
|
235 |
|
236 |
-
#: inc/
|
237 |
-
msgid "
|
238 |
-
msgstr "
|
239 |
|
240 |
-
#: inc/
|
241 |
-
msgid "
|
242 |
-
msgstr "
|
243 |
|
244 |
-
#: inc/
|
245 |
-
msgid "
|
246 |
-
msgstr "
|
247 |
|
248 |
-
#: inc/
|
249 |
-
msgid "
|
|
|
|
|
250 |
msgstr ""
|
251 |
-
"
|
252 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
|
254 |
-
#: inc/
|
255 |
-
|
256 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
-
#: inc/
|
259 |
-
msgid "
|
260 |
-
msgstr "
|
261 |
|
262 |
-
#: inc/
|
263 |
-
msgid "
|
264 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
|
266 |
-
#: inc/
|
267 |
-
msgid "
|
268 |
-
msgstr "
|
269 |
|
270 |
-
#: inc/
|
271 |
-
|
272 |
-
|
|
|
273 |
|
274 |
-
#: inc/
|
275 |
-
msgid "
|
276 |
-
msgstr "
|
277 |
|
278 |
-
#: inc/
|
279 |
-
|
280 |
-
|
|
|
|
|
281 |
|
282 |
-
#: inc/
|
283 |
#, php-format
|
284 |
-
msgid "
|
285 |
-
msgstr "
|
286 |
|
287 |
-
#: inc/
|
288 |
-
msgid ""
|
289 |
-
"
|
290 |
-
"this server’s configuration. If you continue to have problems, please "
|
291 |
-
"try the <a href=\"https://wordpress.org/support/\">support forums</a>."
|
292 |
-
msgstr ""
|
293 |
-
"Nieznany błąd. Cos mogło pójsć nie tak z WordPress.org, lub z konfiguracją "
|
294 |
-
"serwera. Jeżeli problem bedzie się powtarzać napisz na <a href=\"https:"
|
295 |
-
"//wordpress.org/support/\"> forum </a>."
|
296 |
|
297 |
-
#: inc/
|
298 |
-
msgid ""
|
299 |
-
"
|
300 |
-
"contact your server administrator.)"
|
301 |
-
msgstr ""
|
302 |
-
"(WordPress nie mógł ustalić bezpiecznego połączenia z WordPress.oeg. "
|
303 |
-
"Skontaktuj się z administratorem serwera)"
|
304 |
|
305 |
-
#: inc/
|
|
|
|
|
|
|
|
|
306 |
#, php-format
|
307 |
-
msgid "
|
308 |
-
msgstr "
|
309 |
|
310 |
-
#: inc/
|
311 |
-
msgid "
|
312 |
-
msgstr "
|
313 |
|
314 |
-
#: inc/
|
315 |
-
msgid "
|
316 |
-
msgstr "
|
317 |
|
318 |
-
#: inc/
|
319 |
-
msgid "
|
320 |
-
msgstr "
|
321 |
|
322 |
-
#: inc/
|
323 |
-
msgid "
|
324 |
-
msgstr "
|
325 |
|
326 |
-
#: inc/
|
327 |
-
msgid "
|
328 |
-
msgstr "
|
329 |
|
330 |
-
#: inc/
|
331 |
-
msgid "
|
332 |
-
|
|
|
333 |
|
334 |
-
#: inc/
|
335 |
-
msgid "
|
336 |
-
msgstr "
|
337 |
|
338 |
-
#: inc/
|
339 |
-
msgid "
|
340 |
-
msgstr "
|
341 |
|
342 |
-
#: inc/
|
343 |
-
msgid "
|
344 |
-
msgstr "
|
345 |
|
346 |
-
#: inc/
|
347 |
-
msgid "
|
348 |
-
msgstr "
|
349 |
|
350 |
-
#: inc/
|
351 |
-
msgid "
|
352 |
-
msgstr "
|
353 |
|
354 |
-
#: inc/
|
355 |
-
|
356 |
-
|
|
|
357 |
|
358 |
-
#: inc/
|
359 |
-
msgid "
|
360 |
-
msgstr "
|
361 |
|
362 |
-
#: inc/
|
363 |
-
msgid "
|
364 |
-
msgstr "
|
365 |
|
366 |
-
#: inc/
|
367 |
-
msgid "
|
368 |
-
msgstr "
|
369 |
|
370 |
-
#: inc/
|
371 |
-
|
372 |
-
|
373 |
-
msgid "Courses"
|
374 |
-
msgstr "Kursy"
|
375 |
|
376 |
-
#: inc/
|
377 |
-
|
378 |
-
|
|
|
379 |
|
380 |
-
#: inc/
|
381 |
-
|
382 |
-
|
|
|
383 |
|
384 |
-
#: inc/
|
385 |
#, php-format
|
386 |
-
msgid ""
|
387 |
-
"
|
388 |
-
"href=\"%s\">Setting up</a> something right now is a good idea. That's better "
|
389 |
-
"than you <a class=\"lpr-ignore lpr-set-up\">ignore</a> the message."
|
390 |
-
msgstr ""
|
391 |
-
"<strong>LearnPress jest prawie gotowy</strong>. <a class=\"lpr-set-up\" "
|
392 |
-
"href=\"%s\">Ustawienie</a> czegoś bedzie dobrym krokiem. To będzie lepsze "
|
393 |
-
"niz <a class=\"lpr-ignore lpr-set-up\">zignorowanie</a> tej wiadomości."
|
394 |
|
395 |
-
#: inc/
|
396 |
#, php-format
|
397 |
-
msgid ""
|
398 |
-
"
|
399 |
-
"update your permalink structure</a> to something other than the default for "
|
400 |
-
"it to work."
|
401 |
-
msgstr ""
|
402 |
-
"<strong>LearnPress Profile jest prawie gotowy</strong>. Musisz tylko <a "
|
403 |
-
"href=\"%s\">poprawić strukturę linków</a> ustawiając coś innego niż "
|
404 |
-
"podstawowe ustawienia."
|
405 |
|
406 |
-
#: inc/
|
407 |
-
|
408 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
|
410 |
-
#: inc/
|
411 |
-
msgid "
|
412 |
-
msgstr "
|
413 |
|
414 |
-
#: inc/
|
|
|
|
|
|
|
|
|
415 |
msgid "Left"
|
416 |
-
msgstr "
|
417 |
|
418 |
-
#: inc/
|
419 |
msgid "Right"
|
420 |
-
msgstr "
|
421 |
|
422 |
-
#: inc/
|
423 |
msgid "Left with space"
|
424 |
-
msgstr "
|
425 |
|
426 |
-
#: inc/
|
427 |
msgid "Right with space"
|
428 |
-
msgstr "
|
429 |
|
430 |
-
#: inc/
|
431 |
-
msgid "
|
432 |
-
msgstr "
|
433 |
|
434 |
-
#: inc/
|
435 |
-
msgid "
|
436 |
-
msgstr "
|
437 |
|
438 |
-
#: inc/
|
439 |
-
msgid "
|
440 |
-
msgstr "
|
441 |
|
442 |
-
#: inc/
|
443 |
-
msgid "
|
444 |
-
msgstr "
|
445 |
|
446 |
-
#: inc/
|
447 |
-
msgid "
|
448 |
-
msgstr "
|
449 |
|
450 |
-
#: inc/
|
451 |
-
msgid "
|
452 |
-
msgstr "
|
453 |
|
454 |
-
#: inc/
|
455 |
-
|
456 |
-
|
457 |
-
msgstr "Użytkownik <a href=\"%s\">%s</a> chciałby zostać opiekunem."
|
458 |
|
459 |
-
#: inc/
|
460 |
-
|
461 |
-
|
462 |
-
msgstr "Imię i nazwisko: %s"
|
463 |
|
464 |
-
#: inc/
|
465 |
-
|
466 |
-
|
467 |
-
msgstr "E-mail: %s"
|
468 |
|
469 |
-
#: inc/
|
470 |
-
|
471 |
-
|
472 |
-
msgstr "Telefon: %s"
|
473 |
|
474 |
-
#: inc/
|
475 |
-
|
476 |
-
|
477 |
-
msgstr "Akceptacja: %s"
|
478 |
|
479 |
-
#: inc/
|
480 |
-
msgid "
|
481 |
-
msgstr "
|
482 |
|
483 |
-
#: inc/
|
484 |
-
msgid "
|
485 |
-
msgstr "
|
486 |
|
487 |
-
#: inc/
|
488 |
-
msgid "
|
489 |
-
msgstr "
|
490 |
|
491 |
-
#: inc/
|
492 |
-
msgid "
|
493 |
-
msgstr "
|
494 |
|
495 |
-
#: inc/
|
496 |
-
msgid "
|
497 |
-
msgstr ""
|
498 |
-
"Na pewno chcesz wziąć udział ponownie w kursie? Wszystkie wcześniejsze dane "
|
499 |
-
"zostaną skasowane."
|
500 |
|
501 |
-
#: inc/
|
502 |
-
msgid "
|
503 |
-
msgstr ""
|
504 |
-
"Na pewno chcesz wziąć udział ponownie w teście? Wszystkie wcześniejsze dane "
|
505 |
-
"zostaną skasowane."
|
506 |
|
507 |
-
#: inc/
|
508 |
-
msgid "
|
509 |
-
msgstr "
|
510 |
|
511 |
-
#: inc/
|
512 |
-
msgid "
|
513 |
-
msgstr "
|
514 |
|
515 |
-
#: inc/
|
516 |
-
|
517 |
-
|
518 |
-
msgstr "--Wybierz moduł--"
|
519 |
|
520 |
-
#: inc/
|
521 |
-
msgid "
|
522 |
-
msgstr "
|
523 |
|
524 |
-
#: inc/
|
525 |
-
msgid "
|
526 |
-
msgstr "
|
527 |
|
528 |
-
#: inc/
|
529 |
-
msgid "
|
530 |
-
msgstr "
|
531 |
|
532 |
-
#: inc/
|
533 |
-
msgid "
|
534 |
-
msgstr "
|
535 |
|
536 |
-
#: inc/
|
537 |
-
msgid "
|
538 |
-
msgstr "
|
539 |
|
540 |
-
#: inc/
|
541 |
-
msgid "
|
542 |
-
msgstr "
|
543 |
|
544 |
-
#: inc/
|
545 |
-
msgid "
|
546 |
-
msgstr "
|
547 |
|
548 |
-
#: inc/
|
549 |
-
msgid "
|
550 |
-
msgstr "
|
551 |
|
552 |
-
#: inc/
|
553 |
-
msgid "
|
554 |
-
msgstr "
|
555 |
|
556 |
-
#: inc/
|
557 |
-
msgid "
|
558 |
-
msgstr "
|
559 |
|
560 |
-
#: inc/
|
561 |
-
msgid "
|
562 |
-
msgstr "
|
563 |
|
564 |
-
#: inc/
|
565 |
-
msgid "
|
566 |
-
msgstr "
|
567 |
|
568 |
-
#: inc/
|
569 |
-
msgid "
|
570 |
-
msgstr "
|
571 |
|
572 |
-
#: inc/
|
573 |
-
msgid "
|
574 |
-
msgstr "
|
575 |
|
576 |
-
#: inc/
|
577 |
-
msgid "
|
578 |
-
msgstr "
|
579 |
|
580 |
-
#: inc/
|
581 |
-
msgid "
|
582 |
-
msgstr "
|
583 |
|
584 |
-
#: inc/
|
585 |
-
msgid "
|
586 |
-
msgstr "
|
587 |
|
588 |
-
#: inc/
|
589 |
-
msgid "
|
590 |
-
msgstr "
|
591 |
|
592 |
-
#: inc/
|
593 |
-
msgid "
|
594 |
-
msgstr "
|
595 |
|
596 |
-
#: inc/
|
597 |
-
msgid "
|
598 |
-
msgstr "
|
599 |
|
600 |
-
#: inc/
|
601 |
-
|
602 |
-
|
603 |
-
msgstr "Kurs zostanie zakończony za %s."
|
604 |
|
605 |
-
#: inc/
|
606 |
-
|
607 |
-
|
608 |
-
"You have passed %d percent of course and now you can finish this course if "
|
609 |
-
"you want"
|
610 |
-
msgstr ""
|
611 |
-
"Zakończyłeś %d procent kursu i możesz teraz zakończyć go jeśli tego chcesz."
|
612 |
|
613 |
-
#: inc/
|
614 |
-
msgid "
|
615 |
-
msgstr "
|
616 |
|
617 |
-
#: inc/
|
618 |
-
msgid "
|
619 |
-
msgstr "
|
620 |
|
621 |
-
#: inc/
|
622 |
-
msgid "
|
623 |
-
msgstr "
|
624 |
|
625 |
-
#: inc/
|
626 |
-
msgid "
|
627 |
-
msgstr "
|
628 |
|
629 |
-
#: inc/
|
630 |
-
msgid "
|
631 |
-
msgstr "
|
632 |
|
633 |
-
#: inc/
|
634 |
-
msgid "
|
635 |
-
msgstr "
|
636 |
|
637 |
-
#: inc/
|
638 |
-
|
639 |
-
|
640 |
-
msgstr "%s i odpowiedzi poprawnych %d z %d"
|
641 |
|
642 |
-
#: inc/
|
643 |
-
msgid "
|
644 |
-
msgstr "
|
645 |
|
646 |
-
#: inc/
|
647 |
-
msgid "
|
648 |
-
msgstr "
|
649 |
|
650 |
-
#: inc/
|
651 |
-
msgid "
|
652 |
-
msgstr "
|
653 |
|
654 |
-
#: inc/
|
655 |
-
msgid "
|
656 |
-
msgstr "
|
657 |
|
658 |
-
#: inc/
|
659 |
-
msgid "
|
660 |
-
msgstr "
|
661 |
|
662 |
-
#: inc/
|
663 |
-
msgid "
|
664 |
-
msgstr "
|
665 |
|
666 |
-
#: inc/
|
667 |
-
msgid "
|
668 |
-
msgstr "
|
669 |
|
670 |
-
#: inc/
|
671 |
-
|
672 |
-
|
673 |
-
msgstr "Wydajność"
|
674 |
|
675 |
-
#: inc/
|
676 |
-
|
677 |
-
|
678 |
-
msgstr "Social"
|
679 |
|
680 |
-
#: inc/
|
681 |
-
|
682 |
-
|
683 |
-
msgstr "Narzędzia"
|
684 |
|
685 |
-
#: inc/
|
686 |
-
|
687 |
-
|
688 |
-
msgstr "Z %s"
|
689 |
|
690 |
-
#: inc/
|
691 |
-
|
692 |
-
|
693 |
-
msgstr "Zainstaluj %s teraz"
|
694 |
|
695 |
-
#: inc/
|
696 |
-
msgid "
|
697 |
-
msgstr "
|
698 |
|
699 |
-
#: inc/
|
700 |
-
|
701 |
-
|
702 |
-
msgstr "Zaktualizuj %s teraz"
|
703 |
|
704 |
-
#: inc/
|
705 |
-
msgid "
|
706 |
-
msgstr "
|
707 |
|
708 |
-
#: inc/
|
709 |
-
|
710 |
-
|
711 |
-
msgstr "Włączony"
|
712 |
|
713 |
-
#: inc/
|
714 |
-
|
715 |
-
|
716 |
-
msgstr "Włącz"
|
717 |
|
718 |
-
#: inc/
|
719 |
-
|
720 |
-
|
721 |
-
msgstr "M d, R @ H:min"
|
722 |
|
723 |
-
#: inc/
|
724 |
-
msgid "
|
725 |
-
msgstr "
|
726 |
|
727 |
-
#: inc/
|
728 |
-
|
729 |
-
|
730 |
-
msgstr "Ostatnio zaktualizowane:"
|
731 |
|
732 |
-
#: inc/
|
733 |
-
|
734 |
-
|
735 |
-
msgid "%s ago"
|
736 |
-
msgstr "%s temu"
|
737 |
|
738 |
-
#: inc/
|
739 |
-
|
740 |
-
|
741 |
-
msgid "1+ Million"
|
742 |
-
msgstr "ponad 1 milion"
|
743 |
|
744 |
-
#: inc/
|
745 |
-
|
746 |
-
|
747 |
-
msgid "%s Active Installs"
|
748 |
-
msgstr "%s Aktywnych instalacji"
|
749 |
|
750 |
-
#: inc/
|
751 |
-
|
752 |
-
|
753 |
-
msgstr "Nietestowane z Twoją wersją WordPress"
|
754 |
|
755 |
-
#: inc/
|
756 |
-
|
757 |
-
|
758 |
-
msgstr "<strong>Niezgodny</strong> z Twoją wersją WordPress"
|
759 |
|
760 |
-
#: inc/
|
761 |
-
|
762 |
-
|
763 |
-
msgstr "<strong>Zgodny</strong> z Twoją wersją WordPress"
|
764 |
|
765 |
-
#: inc/
|
766 |
-
msgid "
|
767 |
-
msgstr "
|
768 |
|
769 |
-
#: inc/
|
770 |
-
msgid "
|
771 |
-
msgstr "
|
772 |
|
773 |
-
#: inc/
|
774 |
-
msgid "
|
775 |
-
msgstr "
|
776 |
|
777 |
-
#: inc/
|
778 |
-
msgid "
|
779 |
-
msgstr "
|
780 |
|
781 |
-
#: inc/
|
782 |
-
msgid "
|
783 |
-
msgstr "
|
784 |
|
785 |
-
#: inc/
|
786 |
-
msgid "
|
787 |
-
msgstr "
|
788 |
|
789 |
-
#: inc/
|
790 |
-
msgid "
|
791 |
-
msgstr "
|
792 |
|
793 |
-
#: inc/
|
794 |
-
|
795 |
-
|
796 |
-
msgstr "Niemożliwe zlokalizowanie wymaganego folderu (%s)."
|
797 |
|
798 |
-
#: inc/
|
799 |
-
msgid "
|
800 |
-
msgstr "
|
801 |
|
802 |
-
#: inc/
|
803 |
-
msgid "
|
804 |
-
msgstr "
|
805 |
|
806 |
-
#: inc/
|
807 |
-
msgid "
|
808 |
-
msgstr "
|
809 |
|
810 |
-
#: inc/
|
811 |
-
msgid "
|
812 |
-
msgstr "
|
813 |
|
814 |
-
#: inc/
|
815 |
-
msgid "
|
816 |
-
msgstr "
|
817 |
|
818 |
-
#: inc/
|
819 |
-
msgid "
|
820 |
-
msgstr "
|
821 |
|
822 |
-
#: inc/
|
823 |
-
msgid "
|
824 |
-
msgstr "
|
825 |
|
826 |
-
#: inc/
|
827 |
-
msgid "
|
828 |
-
msgstr "
|
829 |
|
830 |
-
#: inc/
|
831 |
-
msgid "
|
832 |
-
msgstr "
|
833 |
|
834 |
-
#: inc/
|
835 |
-
msgid "
|
836 |
-
msgstr ""
|
837 |
-
"Import prostych danych zakończony pomyślnie ! Strona zostanie przeładowana !"
|
838 |
|
839 |
-
#: inc/
|
840 |
-
msgid "
|
841 |
-
msgstr "
|
842 |
|
843 |
-
#: inc/
|
844 |
-
msgid "
|
845 |
-
msgstr "
|
846 |
|
847 |
-
#: inc/
|
848 |
-
msgid ""
|
849 |
-
"
|
850 |
-
"again!"
|
851 |
-
msgstr ""
|
852 |
-
"Nieznany błąd podczas instalacji.aktywacji Dodatku Impor/Eksport. Spróbuj "
|
853 |
-
"ponownie !"
|
854 |
|
855 |
-
#: inc/
|
856 |
-
|
857 |
-
|
858 |
-
"You do not have sufficient permissions to deactivate plugins for this site."
|
859 |
-
msgstr "Nie masz władzy by deaktywawać tego pluginu."
|
860 |
|
861 |
-
#: inc/
|
862 |
-
|
863 |
-
|
864 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:73
|
865 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:97
|
866 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:119
|
867 |
-
msgid "Edit Page"
|
868 |
-
msgstr "Edytuj stronę"
|
869 |
|
870 |
-
#: inc/
|
871 |
-
|
872 |
-
|
873 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:74
|
874 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:98
|
875 |
-
#: inc/admin/settings/class.lpr-settings-pages.php:120
|
876 |
-
msgid "View Page"
|
877 |
-
msgstr "Zobacz stronę"
|
878 |
|
879 |
-
#: inc/
|
880 |
-
msgid "
|
881 |
-
msgstr "
|
882 |
|
883 |
-
#: inc/
|
884 |
-
msgid "
|
885 |
-
msgstr "
|
886 |
|
887 |
-
#: inc/
|
888 |
-
msgid "
|
889 |
-
msgstr "
|
890 |
|
891 |
-
#: inc/
|
892 |
-
msgid "
|
893 |
-
msgstr "
|
894 |
|
895 |
-
#: inc/
|
896 |
-
msgid "
|
897 |
-
msgstr "
|
898 |
|
899 |
-
#: inc/
|
900 |
-
msgid "
|
901 |
-
msgstr "
|
902 |
|
903 |
-
#: inc/
|
904 |
-
msgid "
|
905 |
-
msgstr "
|
906 |
|
907 |
-
#: inc/
|
908 |
-
msgid "
|
909 |
-
msgstr "
|
910 |
|
911 |
-
#: inc/
|
912 |
-
|
913 |
-
|
914 |
-
msgstr "Ogólne"
|
915 |
|
916 |
-
#: inc/
|
917 |
-
|
918 |
-
|
919 |
-
msgstr "Strony"
|
920 |
|
921 |
-
#: inc/
|
922 |
-
|
923 |
-
|
924 |
-
msgstr "Płatności"
|
925 |
|
926 |
-
#: inc/
|
927 |
-
|
928 |
-
|
929 |
-
msgstr "E-maile"
|
930 |
|
931 |
-
#: inc/
|
932 |
-
msgid "
|
933 |
-
msgstr "
|
934 |
|
935 |
-
#: inc/
|
936 |
-
msgid "
|
937 |
-
msgstr "
|
938 |
|
939 |
-
#: inc/
|
940 |
-
msgid "
|
941 |
-
msgstr "
|
942 |
|
943 |
-
#: inc/
|
944 |
-
|
945 |
-
|
946 |
-
msgid "Course"
|
947 |
-
msgstr "Kurs"
|
948 |
|
949 |
-
#: inc/
|
950 |
-
msgid "
|
951 |
-
msgstr "
|
952 |
|
953 |
-
#: inc/
|
954 |
-
msgid "
|
955 |
-
msgstr "
|
956 |
|
957 |
-
#: inc/
|
958 |
-
|
959 |
-
|
960 |
-
"Want full free features? Click <a href=\"%s\">here</a> to install LearnPress "
|
961 |
-
"Add-ons Bundle for free!"
|
962 |
-
msgstr ""
|
963 |
-
"Chcesz więcej? Kliknij <a href=\"%s\">tutaj</a>, aby zainstalować LearnPress "
|
964 |
-
"Add-ons Bundle za darmo !"
|
965 |
|
966 |
-
#: inc/
|
967 |
-
|
968 |
-
|
969 |
-
msgstr "Użytkownik %s został opiekunem"
|
970 |
|
971 |
-
#: inc/
|
972 |
-
msgid ""
|
973 |
-
"
|
974 |
-
" <div class=\"updated\" id=\"learn-press-install-sample-data-"
|
975 |
-
"notice\">\n"
|
976 |
-
" <p>You haven't got any courses yet! Would you like to "
|
977 |
-
"install sample data?</p>\n"
|
978 |
-
" <p>If yes, it requires to install addon named <strong>"
|
979 |
-
"LearnPress Import/Export</strong> but don't worry because it is completely "
|
980 |
-
"automated. [<a href=\"\" class=\"yes\">Yes</a>] [<a "
|
981 |
-
"href=\"\" class=\"no\">No thank!</a>]</p>\n"
|
982 |
-
" </div>"
|
983 |
-
msgstr ""
|
984 |
-
"\n"
|
985 |
-
" <div class=\"updated\" id=\"learn-press-install-sample-data-"
|
986 |
-
"notice\">\n"
|
987 |
-
" <p>Nie dodałeś jeszcze rzadnych kursów ! Niechciałbyś dodać "
|
988 |
-
"jakiś sekcji?</p>\n"
|
989 |
-
" <p>Jeżeli tak to możesz zainstalować dodatek <strong>"
|
990 |
-
"LearnPress Import/Export</strong>, ale nie martw się - jest to całkowicie "
|
991 |
-
"automatyczne . [<a href=\"\" class=\"yes\">Tak</a>] "
|
992 |
-
"[<a href=\"\" class=\"no\">Nie dzięki!</a>]</p>\n"
|
993 |
-
" </div>"
|
994 |
-
|
995 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:31
|
996 |
-
msgid "Do you want to remove this lesson permanently?"
|
997 |
-
msgstr "Czy na pewno chcesz usunąć ten moduł?"
|
998 |
-
|
999 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:32
|
1000 |
-
msgid "Do you want to remove this quiz permanently?"
|
1001 |
-
msgstr "Czy na pewno chcesz usunąć ten test?"
|
1002 |
-
|
1003 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:33
|
1004 |
-
msgid "Do you want to remove this section permanently?"
|
1005 |
-
msgstr "Czy na pewno chcesz usunąć tą sekcję?"
|
1006 |
-
|
1007 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:34
|
1008 |
-
msgid "New quiz added"
|
1009 |
-
msgstr "Nowy test dodany"
|
1010 |
-
|
1011 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:35
|
1012 |
-
msgid "New lesson added"
|
1013 |
-
msgstr "Nowy moduł dodany"
|
1014 |
-
|
1015 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:36
|
1016 |
-
msgid "New section added"
|
1017 |
-
msgstr "Nowa sekcja dodana"
|
1018 |
-
|
1019 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:37
|
1020 |
-
msgid "The lesson removed"
|
1021 |
-
msgstr "Moduł usunięty"
|
1022 |
-
|
1023 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:38
|
1024 |
-
msgid "The quiz removed"
|
1025 |
-
msgstr "Test usunięty"
|
1026 |
-
|
1027 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:39
|
1028 |
-
msgid "The section removed"
|
1029 |
-
msgstr "Sekcja usunięta"
|
1030 |
-
|
1031 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:40
|
1032 |
-
msgid "The ordering completed"
|
1033 |
-
msgstr "Ustawianie kolejności zakończone"
|
1034 |
-
|
1035 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:41
|
1036 |
-
msgid "Lesson added to section complete!"
|
1037 |
-
msgstr "Zakończono dodawanie modułu do sekcji !"
|
1038 |
-
|
1039 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:42
|
1040 |
-
msgid "Quiz added to section complete!"
|
1041 |
-
msgstr "Zakończono dodawanie testy do sekcji !"
|
1042 |
-
|
1043 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:43
|
1044 |
-
#, php-format
|
1045 |
-
msgid "%s updated"
|
1046 |
-
msgstr "%s zaktualizowano"
|
1047 |
-
|
1048 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:44
|
1049 |
-
msgid "Click to quick edit name"
|
1050 |
-
msgstr "Kliknij, aby szybko edytować nazwę"
|
1051 |
-
|
1052 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:96
|
1053 |
-
#: inc/admin/meta-boxes/fields/class.quiz-question.php:121
|
1054 |
-
msgid "Expand All"
|
1055 |
-
msgstr "Rozwiń wszystkie"
|
1056 |
-
|
1057 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:97
|
1058 |
-
#: inc/admin/meta-boxes/fields/class.quiz-question.php:122
|
1059 |
-
msgid "Collapse All"
|
1060 |
-
msgstr "Zwiń wszystkie"
|
1061 |
-
|
1062 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:99
|
1063 |
-
msgid "Outline your course and add content with sections, lessons and quizzes."
|
1064 |
-
msgstr "Określ kurs i dodaj zawartość z sekcjami, modułami oraz testami."
|
1065 |
-
|
1066 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:112
|
1067 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:167
|
1068 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:210
|
1069 |
-
msgid "Expand/Close"
|
1070 |
-
msgstr "Rozwiń/zamknij"
|
1071 |
-
|
1072 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:145
|
1073 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:237
|
1074 |
-
msgid "Click to quick edit"
|
1075 |
-
msgstr "Kliknij i szybko edytuj"
|
1076 |
-
|
1077 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:155
|
1078 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:180
|
1079 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:221
|
1080 |
-
msgid "Add Lesson"
|
1081 |
-
msgstr "Dodaj lekcję"
|
1082 |
-
|
1083 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:156
|
1084 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:181
|
1085 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:222
|
1086 |
-
msgid "Add Quiz"
|
1087 |
-
msgstr "Dodaj test"
|
1088 |
-
|
1089 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:157
|
1090 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:182
|
1091 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:223
|
1092 |
-
msgid "Quick add <span>L</span>esson"
|
1093 |
-
msgstr "Szybkie dodanie <span>M</span>odułu"
|
1094 |
-
|
1095 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:158
|
1096 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:183
|
1097 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:224
|
1098 |
-
msgid "Quick add <span>Q</span>uiz"
|
1099 |
-
msgstr "Szybkie dodanie <span>T</span>estu"
|
1100 |
-
|
1101 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:193
|
1102 |
-
#: inc/admin/meta-boxes/fields/class.course-lesson-quiz.php:201
|
1103 |
-
#: inc/custom-post-types/question.php:164 inc/custom-post-types/quiz.php:187
|
1104 |
-
msgid "Cancel [ESC]"
|
1105 |
-
msgstr "Anuluj [ESC]"
|
1106 |
|
1107 |
-
#: inc/
|
1108 |
-
|
1109 |
-
|
1110 |
-
msgid "Add [Enter]"
|
1111 |
-
msgstr "Dodaj [Enter]"
|
1112 |
|
1113 |
-
#: inc/
|
1114 |
-
msgid "
|
1115 |
-
msgstr "
|
1116 |
|
1117 |
-
#: inc/
|
1118 |
-
msgid "
|
1119 |
-
msgstr "
|
1120 |
|
1121 |
-
#: inc/
|
1122 |
-
msgid "
|
1123 |
-
msgstr "
|
1124 |
|
1125 |
-
#: inc/
|
1126 |
-
msgid "
|
1127 |
-
msgstr "
|
1128 |
|
1129 |
-
#: inc/
|
1130 |
-
msgid "
|
1131 |
-
msgstr "
|
1132 |
|
1133 |
-
#: inc/
|
1134 |
-
msgid "
|
1135 |
-
msgstr "
|
1136 |
|
1137 |
-
#: inc/
|
1138 |
-
msgid "
|
1139 |
-
msgstr "
|
1140 |
|
1141 |
-
#: inc/
|
1142 |
-
msgid "
|
1143 |
-
msgstr "
|
1144 |
|
1145 |
-
#: inc/
|
1146 |
-
|
1147 |
-
|
1148 |
-
msgstr "Poczta"
|
1149 |
|
1150 |
-
#: inc/
|
1151 |
-
|
1152 |
-
|
1153 |
-
#, php-format
|
1154 |
-
msgid "Select a %s"
|
1155 |
-
msgstr "Wybierz %s"
|
1156 |
|
1157 |
-
#: inc/
|
1158 |
-
|
1159 |
-
|
1160 |
-
msgstr "Program kursu"
|
1161 |
|
1162 |
-
#: inc/
|
1163 |
-
msgid ""
|
1164 |
-
"
|
1165 |
-
"Sorting, editing, shortcuts (l and q), it never gets easier with LearnPress."
|
1166 |
-
msgstr ""
|
1167 |
-
"Stwórz kurs, poprzez zaznaczenie stworzonych lekcji i testów lub dodanie "
|
1168 |
-
"któregoś. Sortowanie, edytowanie oraz skróty (l i q), nigdy nie będzie "
|
1169 |
-
"łatwiej."
|
1170 |
|
1171 |
-
#: inc/
|
1172 |
-
msgid "
|
1173 |
-
msgstr "
|
1174 |
|
1175 |
-
#: inc/
|
1176 |
-
msgid "
|
1177 |
-
msgstr "
|
1178 |
|
1179 |
-
#: inc/
|
1180 |
-
msgid "
|
1181 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1182 |
|
1183 |
-
#: inc/
|
1184 |
-
msgid "
|
1185 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1186 |
|
1187 |
-
#: inc/
|
1188 |
-
msgid "
|
1189 |
-
msgstr "
|
1190 |
|
1191 |
-
#: inc/
|
1192 |
-
msgid "
|
1193 |
-
msgstr "
|
1194 |
|
1195 |
-
#: inc/
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
#: inc/admin/settings/class.lpr-settings-emails.php:228
|
1203 |
-
#: inc/admin/settings/class.lpr-settings-payment.php:60
|
1204 |
-
#: inc/admin/sub-menus/add-ons.php:443
|
1205 |
-
msgid "Enable"
|
1206 |
-
msgstr "Włączone"
|
1207 |
|
1208 |
-
#: inc/
|
1209 |
-
msgid "
|
1210 |
-
msgstr "
|
1211 |
|
1212 |
-
#: inc/
|
1213 |
-
|
1214 |
-
|
1215 |
-
#: inc/admin/settings/class.lpr-settings-emails.php:236
|
1216 |
-
msgid "Subject"
|
1217 |
-
msgstr "Wiadomość"
|
1218 |
|
1219 |
-
#: inc/
|
1220 |
-
|
1221 |
-
|
1222 |
-
#: inc/admin/settings/class.lpr-settings-emails.php:240
|
1223 |
-
msgid "Email subject"
|
1224 |
-
msgstr "Temat E-maila"
|
1225 |
|
1226 |
-
#: inc/
|
1227 |
-
|
1228 |
-
|
1229 |
-
#: inc/admin/settings/class.lpr-settings-emails.php:244
|
1230 |
-
msgid "Message"
|
1231 |
-
msgstr "Wiadomość"
|
1232 |
|
1233 |
-
#: inc/
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
msgstr "Placeholders"
|
1238 |
|
1239 |
-
#: inc/
|
1240 |
-
msgid "
|
1241 |
-
msgstr "
|
1242 |
|
1243 |
-
#: inc/
|
1244 |
-
msgid "
|
1245 |
-
msgstr "
|
1246 |
|
1247 |
-
#: inc/
|
1248 |
-
msgid "
|
1249 |
-
msgstr "
|
1250 |
|
1251 |
-
#: inc/
|
1252 |
-
msgid "
|
1253 |
-
msgstr "
|
1254 |
|
1255 |
-
#: inc/
|
1256 |
-
msgid "
|
1257 |
-
msgstr "
|
1258 |
|
1259 |
-
#: inc/
|
1260 |
-
msgid "
|
1261 |
-
msgstr "
|
1262 |
|
1263 |
-
#: inc/
|
1264 |
-
msgid "
|
1265 |
-
msgstr "
|
1266 |
|
1267 |
-
#: inc/
|
1268 |
-
msgid "
|
1269 |
-
msgstr "
|
1270 |
|
1271 |
-
#: inc/
|
1272 |
-
msgid "
|
1273 |
-
|
|
|
|
|
1274 |
|
1275 |
-
#: inc/
|
1276 |
-
msgid "
|
1277 |
-
msgstr "
|
1278 |
|
1279 |
-
#: inc/
|
1280 |
-
msgid "
|
1281 |
-
msgstr "
|
1282 |
|
1283 |
-
#: inc/
|
1284 |
-
msgid "
|
1285 |
-
msgstr "
|
1286 |
|
1287 |
-
#: inc/
|
1288 |
-
msgid "
|
1289 |
-
|
|
|
|
|
|
|
|
|
1290 |
|
1291 |
-
#: inc/
|
1292 |
-
|
1293 |
-
|
1294 |
-
msgid "Ok"
|
1295 |
-
msgstr "Chap nhan"
|
1296 |
|
1297 |
-
#: inc/
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1302 |
|
1303 |
-
#: inc/
|
1304 |
-
msgid "
|
1305 |
-
msgstr "
|
1306 |
|
1307 |
-
#: inc/
|
1308 |
-
|
1309 |
-
|
|
|
1310 |
|
1311 |
-
#: inc/
|
1312 |
-
|
1313 |
-
|
|
|
1314 |
|
1315 |
-
#: inc/
|
1316 |
-
|
1317 |
-
|
|
|
1318 |
|
1319 |
-
#: inc/
|
1320 |
-
msgid "
|
1321 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1322 |
|
1323 |
-
#: inc/
|
1324 |
-
|
1325 |
-
|
|
|
1326 |
|
1327 |
-
#: inc/
|
1328 |
-
|
1329 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1330 |
|
1331 |
-
#: inc/
|
1332 |
-
msgid "
|
1333 |
-
msgstr "
|
|
|
|
|
1334 |
|
1335 |
-
#: inc/
|
1336 |
-
msgid "
|
1337 |
-
msgstr "
|
1338 |
|
1339 |
-
#: inc/
|
1340 |
-
msgid "
|
1341 |
-
msgstr "
|
1342 |
|
1343 |
-
#: inc/
|
1344 |
-
msgid "
|
1345 |
-
msgstr "
|
1346 |
|
1347 |
-
#: inc/
|
1348 |
-
msgid "
|
1349 |
-
msgstr "
|
1350 |
|
1351 |
-
#: inc/
|
1352 |
-
|
1353 |
-
|
|
|
1354 |
|
1355 |
-
#: inc/
|
1356 |
-
msgid "
|
1357 |
-
msgstr "
|
1358 |
|
1359 |
-
#: inc/
|
1360 |
-
msgid "
|
1361 |
-
msgstr "
|
1362 |
|
1363 |
-
#: inc/
|
1364 |
-
msgid "
|
1365 |
-
msgstr "
|
1366 |
|
1367 |
-
#: inc/
|
1368 |
-
msgid "
|
1369 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1370 |
|
1371 |
-
#: inc/
|
1372 |
-
|
1373 |
-
|
|
|
1374 |
|
1375 |
-
#: inc/
|
1376 |
-
msgid "
|
1377 |
-
msgstr "
|
1378 |
|
1379 |
-
#: inc/
|
1380 |
-
msgid "
|
1381 |
-
msgstr "
|
1382 |
|
1383 |
-
#: inc/
|
1384 |
-
|
1385 |
-
|
|
|
1386 |
|
1387 |
-
#: inc/
|
1388 |
-
|
1389 |
-
|
|
|
1390 |
|
1391 |
-
#: inc/
|
1392 |
-
msgid "
|
1393 |
-
msgstr "
|
1394 |
|
1395 |
-
#: inc/
|
1396 |
-
msgid "
|
1397 |
-
msgstr "
|
1398 |
|
1399 |
-
#: inc/
|
1400 |
-
msgid "
|
1401 |
-
msgstr "
|
1402 |
|
1403 |
-
#: inc/
|
1404 |
-
|
1405 |
-
|
|
|
1406 |
|
1407 |
-
#: inc/
|
1408 |
-
msgid "
|
1409 |
-
msgstr "
|
1410 |
|
1411 |
-
#: inc/
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
|
|
|
|
1415 |
|
1416 |
-
#: inc/
|
1417 |
-
|
1418 |
-
|
1419 |
-
msgstr "Pakiet aktywny <span class=\"count\">(%s)</span>"
|
1420 |
|
1421 |
-
#: inc/
|
1422 |
-
|
1423 |
-
|
1424 |
-
msgstr "Więcej <span class=\"count\">(%s)</span>"
|
1425 |
|
1426 |
-
#: inc/
|
1427 |
-
msgid "
|
1428 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1429 |
|
1430 |
-
#: inc/
|
1431 |
-
msgid "
|
1432 |
msgstr ""
|
1433 |
-
"Dodatki są narzędziami które możesz włączyć lub wyłączyć w zależności od "
|
1434 |
-
"potrzeb."
|
1435 |
|
1436 |
-
#: inc/
|
1437 |
msgid ""
|
1438 |
-
"
|
1439 |
-
"
|
1440 |
msgstr ""
|
1441 |
-
"Jeden lub więcej pluginów ma zmieniony status na aktywowany/nie aktywny. "
|
1442 |
-
"Kliknij \"Zatwierdź\" aby zaktualizować"
|
1443 |
|
1444 |
-
#: inc/
|
1445 |
-
msgid "
|
1446 |
-
msgstr "
|
1447 |
|
1448 |
-
#: inc/
|
1449 |
-
msgid "
|
1450 |
msgstr ""
|
1451 |
-
"Instalacja pluginu <i>'{{data.name}}'</i> nie powiodła się. Spróbuj ponownie."
|
1452 |
|
1453 |
-
#: inc/
|
1454 |
-
msgid "
|
1455 |
-
msgstr "
|
1456 |
|
1457 |
-
#: inc/
|
1458 |
-
|
1459 |
-
|
1460 |
-
msgstr "<cite>Przez <a href=\"%s\">%s</a></cite>"
|
1461 |
|
1462 |
-
#: inc/
|
1463 |
-
msgid "
|
1464 |
-
msgstr "
|
1465 |
|
1466 |
-
#: inc/
|
1467 |
-
msgid "
|
1468 |
-
msgstr "
|
1469 |
|
1470 |
-
#: inc/
|
1471 |
-
msgid "
|
1472 |
-
msgstr "
|
1473 |
|
1474 |
-
#: inc/
|
1475 |
-
|
1476 |
-
|
|
|
1477 |
|
1478 |
-
#: inc/
|
1479 |
-
msgid "
|
1480 |
-
|
|
|
|
|
|
|
1481 |
|
1482 |
-
#: inc/
|
1483 |
-
msgid "
|
1484 |
-
msgstr "
|
|
|
|
|
|
|
|
|
1485 |
|
1486 |
-
#: inc/
|
1487 |
-
|
1488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1489 |
|
1490 |
-
#: inc/
|
1491 |
-
msgid "
|
1492 |
-
msgstr "
|
1493 |
|
1494 |
-
#: inc/
|
1495 |
-
|
1496 |
-
|
|
|
1497 |
|
1498 |
-
#: inc/
|
1499 |
-
|
1500 |
-
#: lib/meta-box/inc/fields/autocomplete.php:66
|
1501 |
msgid "Delete"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1502 |
msgstr "Usuń"
|
1503 |
|
1504 |
-
#: inc/
|
1505 |
-
|
1506 |
-
|
|
|
1507 |
|
1508 |
-
#: inc/
|
1509 |
-
|
1510 |
-
|
|
|
1511 |
|
1512 |
-
#: inc/
|
1513 |
-
|
1514 |
-
|
|
|
1515 |
|
1516 |
-
#: inc/
|
1517 |
-
|
1518 |
-
msgid "Select
|
1519 |
-
msgstr "
|
1520 |
|
1521 |
-
#: inc/
|
1522 |
-
|
1523 |
-
|
|
|
1524 |
|
1525 |
-
#: inc/
|
1526 |
-
|
1527 |
-
|
|
|
1528 |
|
1529 |
-
#: inc/
|
1530 |
-
msgid "
|
1531 |
-
msgstr "
|
1532 |
|
1533 |
-
#: inc/
|
1534 |
-
|
1535 |
-
|
1536 |
-
msgstr "Kursy"
|
1537 |
|
1538 |
-
#: inc/
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
|
|
1542 |
|
1543 |
-
#: inc/
|
1544 |
-
msgid "
|
1545 |
-
msgstr "
|
1546 |
|
1547 |
-
#: inc/
|
1548 |
-
msgid "
|
1549 |
-
msgstr "
|
1550 |
|
1551 |
-
#: inc/
|
1552 |
-
msgid "
|
1553 |
-
msgstr "
|
1554 |
|
1555 |
-
#: inc/
|
1556 |
-
|
1557 |
-
msgid "
|
1558 |
-
msgstr "
|
1559 |
|
1560 |
-
#: inc/
|
1561 |
-
msgid "
|
1562 |
-
msgstr "
|
1563 |
|
1564 |
-
#: inc/
|
1565 |
-
|
1566 |
-
|
|
|
1567 |
|
1568 |
-
#: inc/
|
1569 |
-
msgid "
|
1570 |
-
msgstr "
|
1571 |
|
1572 |
-
#: inc/
|
1573 |
-
|
1574 |
-
|
|
|
1575 |
|
1576 |
-
#: inc/
|
1577 |
-
|
1578 |
-
|
|
|
|
|
1579 |
|
1580 |
-
#: inc/
|
1581 |
-
msgid "
|
1582 |
-
msgstr "
|
1583 |
|
1584 |
-
#: inc/
|
1585 |
-
msgid "
|
1586 |
-
msgstr "
|
1587 |
|
1588 |
-
#: inc/
|
1589 |
-
msgid "
|
1590 |
-
msgstr "
|
1591 |
|
1592 |
-
#: inc/
|
1593 |
-
|
1594 |
-
|
|
|
1595 |
|
1596 |
-
#: inc/
|
1597 |
-
|
1598 |
-
|
|
|
|
|
|
|
|
|
1599 |
|
1600 |
-
#: inc/
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
msgstr "Tag"
|
1605 |
|
1606 |
-
#: inc/
|
1607 |
-
|
1608 |
-
|
|
|
|
|
|
|
|
|
1609 |
|
1610 |
-
#: inc/
|
1611 |
-
|
1612 |
-
|
|
|
1613 |
|
1614 |
-
#: inc/
|
1615 |
-
|
1616 |
-
|
|
|
|
|
|
|
|
|
1617 |
|
1618 |
-
#: inc/
|
1619 |
-
|
1620 |
-
|
|
|
1621 |
|
1622 |
-
#: inc/
|
1623 |
-
|
1624 |
-
|
|
|
|
|
|
|
|
|
1625 |
|
1626 |
-
#: inc/
|
1627 |
-
|
1628 |
-
|
|
|
1629 |
|
1630 |
-
#: inc/
|
1631 |
-
|
1632 |
-
|
|
|
|
|
|
|
|
|
1633 |
|
1634 |
-
#: inc/
|
1635 |
-
msgid "
|
1636 |
-
|
|
|
|
|
|
|
1637 |
|
1638 |
-
#: inc/
|
1639 |
-
msgid "
|
1640 |
-
msgstr "
|
1641 |
|
1642 |
-
#: inc/
|
1643 |
-
msgid "
|
1644 |
-
msgstr "
|
1645 |
|
1646 |
-
#: inc/
|
1647 |
-
msgid "
|
1648 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
1649 |
|
1650 |
-
#: inc/
|
1651 |
-
msgid "
|
1652 |
-
msgstr "
|
1653 |
|
1654 |
-
#: inc/
|
1655 |
-
|
1656 |
-
|
|
|
1657 |
|
1658 |
-
#: inc/
|
1659 |
-
|
1660 |
-
|
|
|
1661 |
|
1662 |
-
#: inc/
|
1663 |
-
|
1664 |
-
|
|
|
1665 |
|
1666 |
-
#: inc/
|
1667 |
-
msgid "
|
1668 |
-
msgstr "
|
1669 |
|
1670 |
-
#: inc/
|
1671 |
-
msgid "
|
1672 |
-
msgstr "
|
1673 |
|
1674 |
-
#: inc/
|
1675 |
-
msgid "
|
1676 |
-
msgstr "
|
1677 |
|
1678 |
-
#: inc/
|
1679 |
-
msgid "
|
1680 |
-
msgstr "
|
1681 |
|
1682 |
-
#: inc/
|
1683 |
-
msgid "
|
1684 |
-
msgstr "
|
1685 |
|
1686 |
-
#: inc/
|
1687 |
-
msgid "
|
1688 |
-
msgstr "
|
1689 |
|
1690 |
-
#: inc/
|
1691 |
-
msgid ""
|
1692 |
-
"
|
1693 |
-
"of the last quiz, else the course\n"
|
1694 |
-
" will be assessed by the progress of "
|
1695 |
-
"learning lessons"
|
1696 |
-
msgstr ""
|
1697 |
-
"Jeśli opcja \"test końcowy\" jest zaznaczona, to oczywiście będą oceniane "
|
1698 |
-
"przez wyniku ostatniego testu, ewentualnie kurs będzie rozstrzygany poprzez "
|
1699 |
-
"postęp nauki."
|
1700 |
|
1701 |
-
#: inc/
|
1702 |
-
msgid "
|
1703 |
-
msgstr "
|
1704 |
|
1705 |
-
#: inc/
|
1706 |
-
msgid "
|
1707 |
-
msgstr "
|
1708 |
|
1709 |
-
#: inc/
|
1710 |
-
msgid "
|
1711 |
-
msgstr "
|
1712 |
|
1713 |
-
#: inc/
|
1714 |
-
|
1715 |
-
|
|
|
1716 |
|
1717 |
-
#: inc/
|
1718 |
-
msgid "
|
1719 |
-
msgstr "
|
1720 |
|
1721 |
-
#: inc/
|
1722 |
-
msgid "
|
1723 |
-
msgstr "
|
1724 |
|
1725 |
-
#: inc/
|
1726 |
-
msgid "
|
1727 |
-
msgstr "
|
1728 |
|
1729 |
-
#: inc/
|
1730 |
-
msgid "
|
1731 |
-
msgstr "
|
1732 |
|
1733 |
-
#: inc/
|
1734 |
-
msgid "
|
1735 |
-
msgstr "
|
|
|
|
|
|
|
|
|
1736 |
|
1737 |
-
#: inc/
|
1738 |
-
msgid "
|
1739 |
-
msgstr "
|
1740 |
|
1741 |
-
#: inc/
|
1742 |
msgid ""
|
1743 |
-
"
|
1744 |
-
"
|
1745 |
msgstr ""
|
1746 |
-
"
|
1747 |
-
"
|
1748 |
|
1749 |
-
#: inc/
|
1750 |
-
|
1751 |
-
|
|
|
1752 |
|
1753 |
-
#: inc/
|
1754 |
-
|
1755 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1756 |
|
1757 |
-
#: inc/
|
1758 |
-
msgid "
|
|
|
|
|
1759 |
msgstr ""
|
1760 |
-
"
|
1761 |
-
"
|
1762 |
|
1763 |
-
#: inc/
|
1764 |
-
|
1765 |
-
|
|
|
1766 |
|
1767 |
-
#: inc/
|
1768 |
-
|
1769 |
-
|
|
|
1770 |
|
1771 |
-
#: inc/
|
1772 |
-
msgid "
|
1773 |
-
msgstr "
|
1774 |
|
1775 |
-
#: inc/
|
1776 |
-
msgid "Course
|
1777 |
-
msgstr "
|
1778 |
|
1779 |
-
#: inc/
|
1780 |
-
msgid "
|
1781 |
-
msgstr "
|
1782 |
|
1783 |
-
#: inc/
|
1784 |
-
msgid "
|
1785 |
-
msgstr "
|
1786 |
|
1787 |
-
#: inc/
|
1788 |
-
msgid "
|
1789 |
-
msgstr "
|
1790 |
|
1791 |
-
#: inc/
|
1792 |
-
msgid "
|
1793 |
-
msgstr "
|
1794 |
|
1795 |
-
#: inc/
|
1796 |
-
msgid "
|
1797 |
-
msgstr "
|
1798 |
|
1799 |
-
#: inc/
|
1800 |
-
|
1801 |
-
|
1802 |
-
msgstr "Moduły"
|
1803 |
|
1804 |
-
#: inc/
|
1805 |
-
msgid "
|
1806 |
-
msgstr "
|
1807 |
|
1808 |
-
#: inc/
|
1809 |
-
msgid "
|
1810 |
-
msgstr "
|
1811 |
|
1812 |
-
#: inc/
|
1813 |
-
msgid "
|
1814 |
-
msgstr "
|
1815 |
|
1816 |
-
#: inc/
|
1817 |
-
|
1818 |
-
|
|
|
1819 |
|
1820 |
-
#: inc/
|
1821 |
-
msgid "
|
1822 |
-
msgstr "
|
1823 |
|
1824 |
-
#: inc/
|
1825 |
-
|
1826 |
-
|
|
|
|
|
1827 |
|
1828 |
-
#: inc/
|
1829 |
-
msgid "
|
1830 |
-
msgstr "
|
1831 |
|
1832 |
-
#: inc/
|
1833 |
-
msgid "
|
1834 |
-
msgstr "
|
1835 |
|
1836 |
-
#: inc/
|
1837 |
-
msgid "
|
1838 |
-
msgstr "
|
1839 |
|
1840 |
-
#: inc/
|
1841 |
-
msgid "
|
1842 |
-
msgstr "
|
1843 |
|
1844 |
-
#: inc/
|
1845 |
-
msgid "
|
1846 |
-
msgstr "
|
1847 |
|
1848 |
-
#: inc/
|
1849 |
-
msgid "
|
1850 |
-
msgstr "
|
1851 |
|
1852 |
-
#: inc/
|
1853 |
-
msgid "
|
1854 |
-
msgstr "
|
1855 |
|
1856 |
-
#: inc/
|
1857 |
-
msgid "
|
1858 |
-
msgstr "
|
1859 |
|
1860 |
-
#: inc/
|
1861 |
-
msgid ""
|
1862 |
-
"
|
1863 |
-
"without taking the course"
|
1864 |
-
msgstr ""
|
1865 |
-
"Jeżeli jest to lekcja podglądowa, student może zobaczyć ja bez dołączania do "
|
1866 |
-
"kursu"
|
1867 |
|
1868 |
-
#: inc/
|
1869 |
-
msgid "
|
1870 |
-
msgstr "
|
1871 |
|
1872 |
-
#: inc/
|
1873 |
-
|
1874 |
-
|
|
|
1875 |
|
1876 |
-
#: inc/
|
1877 |
-
msgid "
|
1878 |
-
msgstr "
|
1879 |
|
1880 |
-
#: inc/
|
1881 |
-
msgid "
|
1882 |
-
msgstr "
|
1883 |
|
1884 |
-
#: inc/
|
1885 |
-
|
1886 |
-
|
1887 |
-
msgstr "Zatwierdź"
|
1888 |
|
1889 |
-
#: inc/
|
1890 |
-
msgid "
|
1891 |
-
msgstr "
|
1892 |
|
1893 |
-
#: inc/
|
1894 |
-
msgid "
|
1895 |
-
msgstr "
|
1896 |
|
1897 |
-
#: inc/
|
1898 |
-
msgid "
|
1899 |
-
msgstr "
|
1900 |
|
1901 |
-
#: inc/
|
1902 |
-
msgid "
|
1903 |
-
msgstr "
|
1904 |
|
1905 |
-
#: inc/
|
1906 |
-
msgid "
|
1907 |
-
msgstr "
|
1908 |
|
1909 |
-
#: inc/
|
1910 |
-
#:
|
1911 |
-
msgid "
|
1912 |
-
msgstr "
|
1913 |
|
1914 |
-
#: inc/
|
1915 |
-
msgid "
|
1916 |
-
msgstr "
|
1917 |
|
1918 |
-
#: inc/
|
1919 |
-
msgid "
|
1920 |
-
msgstr "
|
1921 |
|
1922 |
-
#: inc/
|
1923 |
-
msgid "
|
1924 |
-
msgstr "
|
1925 |
|
1926 |
-
#: inc/
|
1927 |
-
msgid "
|
1928 |
-
msgstr "
|
1929 |
|
1930 |
-
#: inc/
|
1931 |
-
|
1932 |
-
|
1933 |
-
msgstr "Zamówienia"
|
1934 |
|
1935 |
-
#: inc/
|
1936 |
-
msgid "
|
1937 |
-
msgstr "
|
1938 |
|
1939 |
-
#: inc/
|
1940 |
-
|
1941 |
-
|
1942 |
-
msgstr "Detale zamówienia"
|
1943 |
|
1944 |
-
#: inc/
|
1945 |
-
|
1946 |
-
|
1947 |
-
msgstr "Podgląd zamówienia"
|
1948 |
|
1949 |
-
#: inc/
|
1950 |
-
msgid "
|
1951 |
-
msgstr "
|
1952 |
|
1953 |
-
#: inc/
|
1954 |
-
msgid "
|
1955 |
-
msgstr "
|
1956 |
|
1957 |
-
#: inc/
|
1958 |
-
msgid "
|
1959 |
-
msgstr "
|
1960 |
|
1961 |
-
#: inc/
|
1962 |
-
msgid "
|
1963 |
-
msgstr "
|
1964 |
|
1965 |
-
#: inc/
|
1966 |
-
msgid "
|
1967 |
-
msgstr "
|
1968 |
|
1969 |
-
#: inc/
|
1970 |
-
msgid "
|
1971 |
-
msgstr "
|
1972 |
|
1973 |
-
#: inc/
|
1974 |
-
msgid "
|
1975 |
-
msgstr "
|
1976 |
|
1977 |
-
#: inc/
|
1978 |
-
|
1979 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1980 |
|
1981 |
-
#: inc/
|
1982 |
-
msgid "
|
1983 |
-
msgstr "
|
1984 |
|
1985 |
-
#: inc/
|
1986 |
-
msgid "
|
1987 |
-
msgstr "
|
1988 |
|
1989 |
-
#: inc/
|
1990 |
-
msgid "
|
1991 |
-
msgstr "
|
1992 |
|
1993 |
-
#: inc/
|
1994 |
-
msgid "
|
1995 |
-
msgstr "
|
1996 |
|
1997 |
-
#: inc/
|
1998 |
-
msgid "
|
1999 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2000 |
|
2001 |
-
#: inc/
|
2002 |
-
|
2003 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2004 |
|
2005 |
-
#:
|
2006 |
-
|
2007 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
|
2009 |
-
#:
|
2010 |
-
msgid "
|
2011 |
-
msgstr "
|
2012 |
|
2013 |
-
#:
|
2014 |
-
msgid "
|
2015 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016 |
|
2017 |
-
#:
|
2018 |
-
msgid "
|
2019 |
-
msgstr "
|
2020 |
|
2021 |
-
#:
|
2022 |
-
msgid "
|
2023 |
-
msgstr "
|
2024 |
|
2025 |
-
#:
|
2026 |
-
msgid "
|
2027 |
-
msgstr "
|
2028 |
|
2029 |
-
#:
|
2030 |
-
|
2031 |
-
|
|
|
2032 |
|
2033 |
-
#:
|
2034 |
-
msgid "
|
2035 |
-
msgstr "
|
2036 |
|
2037 |
-
#:
|
2038 |
-
msgid "
|
2039 |
-
msgstr "
|
2040 |
|
2041 |
-
#:
|
2042 |
-
|
2043 |
-
|
2044 |
-
msgstr "Testy"
|
2045 |
|
2046 |
-
#:
|
2047 |
-
msgid "
|
2048 |
-
msgstr "
|
2049 |
|
2050 |
-
#:
|
2051 |
-
msgid "
|
2052 |
-
msgstr "
|
2053 |
|
2054 |
-
#:
|
2055 |
-
msgid "
|
2056 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2057 |
|
2058 |
-
#:
|
2059 |
-
msgid "
|
2060 |
-
msgstr "
|
2061 |
|
2062 |
-
#:
|
2063 |
-
msgid "
|
2064 |
-
msgstr "
|
2065 |
|
2066 |
-
#:
|
2067 |
-
msgid "
|
2068 |
-
msgstr ""
|
2069 |
-
"Czas trwania kursu (w minutach). Auto zakończenie po upływie czasu. Wpisz 0, "
|
2070 |
-
"by wyłączyć."
|
2071 |
|
2072 |
-
#:
|
2073 |
-
msgid "
|
2074 |
-
msgstr "
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
msgid ""
|
7 |
msgstr ""
|
8 |
+
"Project-Id-Version: \n"
|
9 |
"Report-Msgid-Bugs-To: \n"
|
10 |
+
"POT-Creation-Date: 2018-04-11 09:01+0700\n"
|
11 |
+
"PO-Revision-Date: 2018-04-11 03:28+0000\n"
|
12 |
+
"Last-Translator: admin <phonglq@foobla.com>\n"
|
13 |
"Language-Team: Polish\n"
|
14 |
+
"Language: pl_PL\n"
|
15 |
"MIME-Version: 1.0\n"
|
16 |
"Content-Type: text/plain; charset=UTF-8\n"
|
17 |
"Content-Transfer-Encoding: 8bit\n"
|
18 |
+
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
19 |
+
"|| n%100>=20) ? 1 : 2);\n"
|
20 |
+
"X-Generator: Loco https://localise.biz/"
|
|
|
21 |
|
22 |
+
#: learnpress.php:293
|
23 |
#, php-format
|
24 |
+
msgid ""
|
25 |
+
"LearnPress plugin base directory must be <strong>learnpress/learnpres."
|
26 |
+
"php</strong> (case sensitive) to ensure all functions work properly and "
|
27 |
+
"fully operational (currently <strong>%s</strong>)"
|
28 |
+
msgstr ""
|
29 |
+
"Folder pluginu LeanPress musi się równać <strong>learnpress/learnpress."
|
30 |
+
"php</strong>, aby wszystkie funkcje działały poprawnie! (Obecnie jest to "
|
31 |
+
"<strong>%s</strong>)"
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
+
#: inc/abstract-settings.php:59
|
34 |
+
#: inc/admin/settings/abstract-settings-page.php:48
|
35 |
+
msgid "No setting available."
|
36 |
+
msgstr "Brak ustawień."
|
37 |
|
38 |
+
#: inc/class-lp-ajax.php:109
|
39 |
+
msgid "Sorry! Registration is not allowed on this site."
|
40 |
+
msgstr "Przepraszamy ! Rejestracja jest niedostępna na tej stronie."
|
41 |
|
42 |
+
#: inc/class-lp-ajax.php:113
|
43 |
+
msgid "Bad request."
|
44 |
+
msgstr "Złe żądanie."
|
45 |
|
46 |
+
#: inc/class-lp-ajax.php:192
|
47 |
+
#, php-format
|
48 |
+
msgid "The order %s has been successfully recovered."
|
49 |
+
msgstr "Zamówienie %s zostało odzyskane poprawnie."
|
50 |
|
51 |
+
#: inc/class-lp-ajax.php:246 inc/admin/class-lp-admin-ajax.php:854
|
52 |
+
msgid "Profile picture upload failed"
|
53 |
+
msgstr "Błąd ładowania zdjęcia profilowego"
|
54 |
|
55 |
+
#: inc/class-lp-ajax.php:269
|
56 |
msgid "Access denied!"
|
57 |
+
msgstr "Dostęp zabroniony!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
|
59 |
+
#: inc/class-lp-ajax.php:279
|
60 |
+
#, php-format
|
61 |
+
msgid "You have finished this course \"%s\""
|
62 |
+
msgstr "Ukończyłeś kurs \"%s\""
|
|
|
|
|
|
|
63 |
|
64 |
+
#: inc/class-lp-ajax.php:282
|
65 |
+
msgid ""
|
66 |
+
"Error! You cannot finish this course. Please contact your administrator for "
|
67 |
+
"more information."
|
68 |
+
msgstr ""
|
69 |
+
"Błąd! Nie możesz ukończyć tego kursu. Prosimy o kontakt z administracją."
|
70 |
|
71 |
+
#: inc/class-lp-ajax.php:315
|
72 |
+
msgid "Error! Invalid lesson or failed security check."
|
73 |
+
msgstr "Błąd! Nieprawidłowa lekcja lub blokada zabezpieczeń."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
+
#: inc/class-lp-ajax.php:325
|
76 |
+
#, php-format
|
77 |
+
msgid "Congrats! You have completed \"%s\"."
|
78 |
+
msgstr "Gratulacje! Ukończyłeś \"%s\"."
|
79 |
|
80 |
+
#: inc/class-lp-ajax.php:362
|
81 |
+
msgid "Error! Invalid course or failed security check."
|
82 |
+
msgstr ".Błąd! Nieprawidłowy kurs lub blokada zabezpieczeń."
|
83 |
|
84 |
+
#: inc/class-lp-ajax.php:366
|
85 |
+
msgid "Error!"
|
86 |
+
msgstr "Błąd!"
|
87 |
|
88 |
+
#: inc/class-lp-ajax.php:368
|
89 |
#, php-format
|
90 |
+
msgid "You have retaken the course \"%s\""
|
91 |
+
msgstr "Wziąłeś udział ponownie w kursie \"%s\""
|
92 |
|
93 |
+
#: inc/class-lp-ajax.php:372
|
94 |
+
msgid "Error! You can not retake the course"
|
95 |
+
msgstr "Błąd! Nie możesz wziąć udział ponownie w kursie"
|
96 |
|
97 |
+
#: inc/class-lp-assets.php:52 inc/class-lp-assets.php:59
|
98 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:124
|
99 |
+
#: templates/checkout/payment.php:20
|
100 |
+
msgid "Processing"
|
101 |
+
msgstr "W toku"
|
102 |
|
103 |
+
#: inc/class-lp-assets.php:53 inc/class-lp-assets.php:60
|
104 |
+
msgid "Redirecting"
|
105 |
+
msgstr "Przekierowanie"
|
106 |
|
107 |
+
#: inc/class-lp-assets.php:54
|
108 |
+
msgid "Invalid field"
|
109 |
+
msgstr "Nieprawidłowe pole"
|
110 |
|
111 |
+
#: inc/class-lp-assets.php:55 inc/attributes/course.php:103
|
112 |
+
msgid "Unknown error"
|
113 |
+
msgstr "Nieznany błąd"
|
|
|
114 |
|
115 |
+
#: inc/class-lp-assets.php:56 templates/checkout/payment.php:19
|
116 |
+
msgid "Place order"
|
117 |
+
msgstr "Kupuję i płacę"
|
118 |
|
119 |
+
#: inc/class-lp-backward-plugins.php:40
|
120 |
+
msgid ""
|
121 |
+
"There are some add-ons had gone outdated and might conflict with <strong>"
|
122 |
+
"LearnPress</strong> that need to be deactivated. Please upgrade them to the "
|
123 |
+
"newest version to ensure stability and performance of your site."
|
124 |
+
msgstr ""
|
125 |
+
"Część z dodatków jest za stara lub wywołuje błędy z <strong>"
|
126 |
+
"LearnPress</strong> %s musiało zostać zdezaktywowane. Proszę zaktualizować "
|
127 |
+
"do najnowszej wersji, aby wszystko zaczęło działać prawidłowo."
|
128 |
|
129 |
+
#: inc/class-lp-backward-plugins.php:95
|
130 |
+
#, php-format
|
131 |
+
msgid ""
|
132 |
+
"LearnPress plugin slug should be <strong>%s</strong> to make sure it works "
|
133 |
+
"properly. Currently, it is <strong>%s</strong>. Please correct it's name and "
|
134 |
+
"active again. <a href=\"%s\">Back</a>"
|
135 |
+
msgstr ""
|
136 |
+
"URL pluginu LearnPress powinien być <strong>%s</strong>, aby działał "
|
137 |
+
"poprawnie. Teraz jest <strong>%s</strong>. Proszę poprawić nazwę i aktywować "
|
138 |
+
"ponownie <a href=\"%s\">Wstecz</a>"
|
139 |
|
140 |
+
#: inc/class-lp-breadcrumb.php:125
|
141 |
+
msgid "Error 404"
|
142 |
+
msgstr "Błąd 404 - Strona nie została znaleziona"
|
143 |
|
144 |
+
#: inc/class-lp-breadcrumb.php:224
|
145 |
+
#, php-format
|
146 |
+
msgid "Courses tagged “%s”"
|
147 |
+
msgstr "Kursy oznaczone “%s”"
|
148 |
|
149 |
+
#: inc/class-lp-breadcrumb.php:278
|
150 |
+
#, php-format
|
151 |
+
msgid "Posts tagged “%s”"
|
152 |
+
msgstr "Wpisy oznaczone “%s”"
|
153 |
|
154 |
+
#: inc/class-lp-breadcrumb.php:355
|
155 |
+
#, php-format
|
156 |
+
msgid "Author: %s"
|
157 |
+
msgstr "Autor: %s"
|
158 |
|
159 |
+
#: inc/class-lp-breadcrumb.php:388
|
160 |
+
#, php-format
|
161 |
+
msgid "Search results for “%s”"
|
162 |
+
msgstr "Wyniki wyszukiwania: “%s”"
|
163 |
|
164 |
+
#: inc/class-lp-breadcrumb.php:397
|
165 |
+
#, php-format
|
166 |
+
msgid "Page %d"
|
167 |
+
msgstr "Strona %d"
|
168 |
+
|
169 |
+
#: inc/class-lp-checkout.php:154 inc/class-lp-checkout.php:414
|
170 |
+
msgid "Please enter your email."
|
171 |
+
msgstr "Proszę wpisać adres e-mail."
|
172 |
+
|
173 |
+
#: inc/class-lp-checkout.php:200
|
174 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:64
|
175 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:66
|
176 |
+
#: templates/checkout/form-login.php:63
|
177 |
+
msgid "Username"
|
178 |
+
msgstr "Konto użytkownika"
|
179 |
+
|
180 |
+
#: inc/class-lp-checkout.php:201
|
181 |
+
#: inc/shortcodes/class-lp-shortcode-login-form.php:69
|
182 |
+
#: inc/shortcodes/class-lp-shortcode-login-form.php:71
|
183 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:80
|
184 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:82
|
185 |
+
#: inc/user/class-lp-profile.php:336 templates/checkout/form-login.php:70
|
186 |
+
msgid "Password"
|
187 |
+
msgstr "Hasło"
|
188 |
+
|
189 |
+
#: inc/class-lp-checkout.php:257 inc/class-lp-checkout.php:266
|
190 |
+
#: inc/class-lp-checkout.php:305
|
191 |
+
#, php-format
|
192 |
+
msgid "Error %d: Unable to create order. Please try again."
|
193 |
+
msgstr "Error %d: nie można utworzyć zamówienia. Prosimy spróbować ponownie."
|
194 |
|
195 |
+
#: inc/class-lp-checkout.php:299
|
196 |
+
msgid "Item does not exist!"
|
197 |
+
msgstr "Element nie istnieje!"
|
198 |
|
199 |
+
#: inc/class-lp-checkout.php:329
|
200 |
+
msgid "Unable to checkout. Order creation failed."
|
201 |
+
msgstr "Błąd przy tworzeniu zamówienia."
|
|
|
|
|
202 |
|
203 |
+
#: inc/class-lp-checkout.php:405
|
204 |
+
msgid "Please enter username."
|
205 |
+
msgstr "Wprowadź nazwę użytkownika."
|
|
|
|
|
206 |
|
207 |
+
#: inc/class-lp-checkout.php:409
|
208 |
+
msgid "Please enter user password"
|
209 |
+
msgstr "Proszę podać hasło"
|
210 |
|
211 |
+
#: inc/class-lp-checkout.php:491
|
212 |
+
msgid "No payment method is selected"
|
213 |
+
msgstr "Nie wybrano metody płatności"
|
214 |
|
215 |
+
#: inc/class-lp-checkout.php:531 templates/checkout/empty-cart.php:19
|
216 |
+
msgid "Your cart is currently empty."
|
217 |
+
msgstr "Twój koszyk jest pusty."
|
218 |
|
219 |
+
#: inc/class-lp-checkout.php:550
|
220 |
+
#, php-format
|
221 |
+
msgid "Item \"%s\" is not purchasable."
|
222 |
+
msgstr "Element \"%s\" nie jest do kupienia."
|
223 |
|
224 |
+
#: inc/class-lp-emails.php:124 inc/class-lp-emails.php:131
|
225 |
+
msgid "Cheatin’ huh?"
|
226 |
+
msgstr "Oszukujesz, co?"
|
227 |
|
228 |
+
#: inc/class-lp-forms-handler.php:39 inc/class-lp-forms-handler.php:117
|
229 |
+
#: inc/class-lp-forms-handler.php:200
|
230 |
#, php-format
|
231 |
+
msgid "Field \"%s\" is required."
|
232 |
+
msgstr "Pole \"%s\" jest wymagane."
|
233 |
|
234 |
+
#: inc/class-lp-forms-handler.php:52
|
235 |
+
msgid "Thank you! Your message has been sent."
|
236 |
+
msgstr "Dziękujemy! Twoja wiadomość została wysłana."
|
237 |
|
238 |
+
#: inc/class-lp-forms-handler.php:76
|
239 |
+
msgid "Your email does not exist!"
|
240 |
+
msgstr "Twój email nie istnieje !"
|
241 |
+
|
242 |
+
#: inc/class-lp-forms-handler.php:153
|
243 |
+
msgid "Login successfully."
|
244 |
+
msgstr "Logowanie pomyślne."
|
245 |
|
246 |
+
#: inc/class-lp-forms-handler.php:239
|
247 |
+
msgid "Register successfully."
|
248 |
+
msgstr "Rejestracja pomyślna."
|
249 |
|
250 |
+
#: inc/class-lp-forms-handler.php:266
|
251 |
+
msgid "Password is too short!"
|
252 |
+
msgstr "Hasło jest za krótkie!"
|
253 |
|
254 |
+
#: inc/class-lp-forms-handler.php:270
|
255 |
+
msgid "Password can not have spacing!"
|
256 |
+
msgstr "Hasło nie może zawierać spacji!"
|
257 |
|
258 |
+
#: inc/class-lp-forms-handler.php:274
|
259 |
+
msgid "Password must include at least one letter!"
|
260 |
+
msgstr "Hasło musi zawierać przynajmniej jedną literę!"
|
261 |
|
262 |
+
#: inc/class-lp-forms-handler.php:278
|
263 |
+
msgid "Password must include at least one capitalized letter!"
|
264 |
+
msgstr "Hasło musi zawierać przynajmniej jedną dużą literę!"
|
265 |
|
266 |
+
#: inc/class-lp-forms-handler.php:282
|
267 |
+
msgid "Password must include at least one number!"
|
268 |
+
msgstr "Hasło musi zawierać przynajmniej jedną liczbę!"
|
269 |
|
270 |
+
#: inc/class-lp-forms-handler.php:286
|
271 |
+
msgid "Password must include at least one of these characters ~!@#$%^&*() !"
|
272 |
+
msgstr "Hasło musi zawierać przynajmniej jeden ze znaków ~!@#$%^&*() !"
|
273 |
|
274 |
+
#: inc/class-lp-install.php:473
|
275 |
+
msgid ""
|
276 |
+
"It seems like you have updated LearnPress from an older version and there "
|
277 |
+
"are some outdated courses or data that need to be upgraded."
|
278 |
msgstr ""
|
279 |
+
"Wygląda na to, że zaktualizowałeś LearnPress z jakieś starszej wersji i są "
|
280 |
+
"jakieś nieaktualne kursy, które muszą zostać zaktualizowane."
|
281 |
+
|
282 |
+
#: inc/class-lp-install.php:474
|
283 |
+
msgid "Do not ask again."
|
284 |
+
msgstr "Nie pytaj ponownie."
|
285 |
+
|
286 |
+
#: inc/class-lp-install.php:474
|
287 |
+
msgid "Ok"
|
288 |
+
msgstr "Ok"
|
289 |
|
290 |
+
#: inc/class-lp-install.php:474 inc/lp-core-functions.php:2203
|
291 |
+
#: inc/admin/class-lp-admin-ajax.php:651 inc/admin/class-lp-admin.php:214
|
292 |
+
#: inc/custom-post-types/course.php:818 inc/order/class-lp-order.php:940
|
293 |
+
#: templates/checkout/form-login.php:103
|
294 |
+
msgid "Cancel"
|
295 |
+
msgstr "Zatrzymaj"
|
296 |
+
|
297 |
+
#: inc/class-lp-install.php:475
|
298 |
+
#: inc/admin/views/tools/database/html-upgrade-database.php:17
|
299 |
+
msgid "Upgrade now"
|
300 |
+
msgstr "Aktualizuj"
|
301 |
|
302 |
+
#: inc/class-lp-install.php:475
|
303 |
+
msgid "No, thank!"
|
304 |
+
msgstr "Nie, dzięki!"
|
305 |
|
306 |
+
#: inc/class-lp-install.php:482
|
307 |
+
msgid ""
|
308 |
+
"LearnPress has been updated and the database needs to be upgraded before you "
|
309 |
+
"can work with it. Please notify the site administrator."
|
310 |
+
msgstr ""
|
311 |
+
"LearnPress został zaktualizowany i musi zaktualizować bazę danych zanim "
|
312 |
+
"zaczniesz pracę. Proszę napisz do administratora strony."
|
313 |
+
|
314 |
+
#: inc/class-lp-install.php:501
|
315 |
+
msgid "Thank you for using LearnPress"
|
316 |
+
msgstr "Dziękujemy za używanie LearnPress"
|
317 |
+
|
318 |
+
#: inc/class-lp-multi-language.php:52
|
319 |
+
#: inc/admin/meta-box/fields/list-emails.php:64
|
320 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:14
|
321 |
+
#: inc/admin/views/quiz/question-meta.php:13
|
322 |
+
#: inc/custom-post-types/question.php:277 inc/user/class-lp-profile.php:325
|
323 |
+
msgid "Settings"
|
324 |
+
msgstr "Ustawienia"
|
325 |
|
326 |
+
#: inc/class-lp-multi-language.php:53 inc/libraries/meta-box/inc/core.php:33
|
327 |
+
msgid "Documentation"
|
328 |
+
msgstr "Dokumentacja"
|
329 |
|
330 |
+
#: inc/class-lp-multi-language.php:54
|
331 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:15
|
332 |
+
msgid "Add-ons"
|
333 |
+
msgstr "Dodatki"
|
334 |
|
335 |
+
#: inc/class-lp-page-controller.php:118
|
336 |
+
msgid "You can not view this item or it does not exist!"
|
337 |
+
msgstr "Nie możesz tego zobaczyć lub to nie istnieje!"
|
338 |
|
339 |
+
#: inc/class-lp-page-controller.php:146
|
340 |
+
#: templates/content-question/multi-choice/answer-options.php:17
|
341 |
+
#: templates/content-question/single-choice/answer-options.php:17
|
342 |
+
msgid "Invalid question!"
|
343 |
+
msgstr "Niepoprawne pytanie!"
|
344 |
|
345 |
+
#: inc/class-lp-page-controller.php:390
|
346 |
#, php-format
|
347 |
+
msgid "The user %s is not available!"
|
348 |
+
msgstr "Użytkownik %s nie jest dostępny!"
|
349 |
|
350 |
+
#: inc/class-lp-preview-course.php:44
|
351 |
+
msgid "Preview Course"
|
352 |
+
msgstr "Podgląd kursu"
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
|
354 |
+
#: inc/class-lp-preview-course.php:83 inc/class-lp-preview-course.php:100
|
355 |
+
msgid "Invalid preview item."
|
356 |
+
msgstr "Nieprawidłowy element podglądu."
|
|
|
|
|
|
|
|
|
357 |
|
358 |
+
#: inc/class-lp-preview-course.php:106
|
359 |
+
msgid "Access denied."
|
360 |
+
msgstr "Dostęp zabroniony."
|
361 |
+
|
362 |
+
#: inc/class-lp-preview-course.php:175
|
363 |
#, php-format
|
364 |
+
msgid "You are in preview mode. Continue <a href=\"%s\">editing</a>?"
|
365 |
+
msgstr "Jesteś w trybie podglądu. Kontynuować <a href=\"%s\">edycję</a>?"
|
366 |
|
367 |
+
#: inc/class-lp-query-list-table.php:28 inc/custom-post-types/course.php:211
|
368 |
+
msgid "item"
|
369 |
+
msgstr "element"
|
370 |
|
371 |
+
#: inc/class-lp-query-list-table.php:29
|
372 |
+
msgid "items"
|
373 |
+
msgstr "elementy"
|
374 |
|
375 |
+
#: inc/class-lp-query-list-table.php:140
|
376 |
+
msgid "Displaying {{from}} to {{to}} of {{total}} {{item_name}}."
|
377 |
+
msgstr "Wyświetlanie {{from}} do {{to}} z {{total}} {{item_name}}."
|
378 |
|
379 |
+
#: inc/class-lp-query-list-table.php:142
|
380 |
+
msgid "Displaying {{from}} to {{to}} of {{total}}."
|
381 |
+
msgstr "Wyświetlanie {{from}} do {{to}} z {{total}}."
|
382 |
|
383 |
+
#: inc/class-lp-request-handler.php:144
|
384 |
+
msgid "You have already purchased this course and haven't finished it."
|
385 |
+
msgstr "Już kupiłeś kurs i jeszcze go nie ukończyłeś."
|
386 |
|
387 |
+
#: inc/class-lp-request-handler.php:152
|
388 |
+
msgid ""
|
389 |
+
"You have already purchased this course and the order is still processing..."
|
390 |
+
msgstr "Już kupiłeś kurs, a zamówienie jest przetwarzane...."
|
391 |
|
392 |
+
#: inc/class-lp-request-handler.php:175
|
393 |
+
msgid "You have finished course."
|
394 |
+
msgstr "Zakończyłeś kurs."
|
395 |
|
396 |
+
#: inc/class-lp-request-handler.php:191
|
397 |
+
msgid "You have to purchase the course before enrolling."
|
398 |
+
msgstr "Przed zapisaniem się, musisz zakupić kurs."
|
399 |
|
400 |
+
#: inc/class-lp-request-handler.php:226
|
401 |
+
msgid "Invalid action."
|
402 |
+
msgstr "Nieprawidłowe zachowanie."
|
403 |
|
404 |
+
#: inc/class-lp-request-handler.php:273 inc/cart/class-lp-cart.php:459
|
405 |
+
msgid "Checkout page hasn't been setup"
|
406 |
+
msgstr "Strona zamówienia nie została ustawiona"
|
407 |
|
408 |
+
#: inc/class-lp-request-handler.php:296 inc/course/lp-course-functions.php:1025
|
409 |
+
msgid "Invalid request!"
|
410 |
+
msgstr "Nieprawidłowe żądanie!"
|
411 |
|
412 |
+
#: inc/class-lp-request-handler.php:314
|
413 |
+
#, php-format
|
414 |
+
msgid "Congrats! You have enrolled "%s""
|
415 |
+
msgstr "Gratulacje! Dołączyłeś do "%s""
|
416 |
|
417 |
+
#: inc/class-lp-request-handler.php:340
|
418 |
+
msgid "Checkout page hasn't been setup or page does not exists."
|
419 |
+
msgstr "Strona zamówienia nie jest zainstalowana lub nie istnieje."
|
420 |
|
421 |
+
#: inc/class-lp-request-handler.php:342
|
422 |
+
msgid "Checkout error! Please contact with admin for getting more information."
|
423 |
+
msgstr "Błąd zamawiania! Proszę skontaktować się z administratorem."
|
424 |
|
425 |
+
#: inc/class-lp-shortcodes.php:225
|
426 |
+
msgid "Forgot password?"
|
427 |
+
msgstr "Forgot password?"
|
428 |
|
429 |
+
#: inc/class-lp-shortcodes.php:227
|
430 |
+
msgid "Create new account"
|
431 |
+
msgstr "Create new account"
|
|
|
|
|
432 |
|
433 |
+
#: inc/class-lp-strings.php:16
|
434 |
+
#, php-format
|
435 |
+
msgid "Do you want to redo quiz \"%s\"?"
|
436 |
+
msgstr "Chcesz ponownie przejść test pt. \"%s\"?"
|
437 |
|
438 |
+
#: inc/class-lp-strings.php:17
|
439 |
+
#, php-format
|
440 |
+
msgid "Do you want to complete quiz \"%s\"?"
|
441 |
+
msgstr "Jesteś pewny, że chcesz ukończyć test \"%s\"?"
|
442 |
|
443 |
+
#: inc/class-lp-strings.php:18
|
444 |
#, php-format
|
445 |
+
msgid "Do you want to complete lesson \"%s\"?"
|
446 |
+
msgstr "Chcesz ukończyć lekcję \"%s\"?"
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
|
448 |
+
#: inc/class-lp-strings.php:19
|
449 |
#, php-format
|
450 |
+
msgid "Do you want to finish course \"%s\"?"
|
451 |
+
msgstr "Chcesz ukończyć kurs \"%s\" na obecnym etapie lekcji i testów?"
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
|
453 |
+
#: inc/class-lp-strings.php:20
|
454 |
+
#, php-format
|
455 |
+
msgid "Do you want to retake course \"%s\"?"
|
456 |
+
msgstr "Chcesz wziąć udział ponownie w kursie \"%s\"?"
|
457 |
+
|
458 |
+
#: inc/class-lp-widget.php:213
|
459 |
+
#, php-format
|
460 |
+
msgid "Function %s should be overwritten in child class"
|
461 |
+
msgstr "Funkcja %s powinna zostać nadpisana pod klasą"
|
462 |
+
|
463 |
+
#: inc/lp-core-functions.php:351 inc/lp-template-functions.php:2653
|
464 |
+
#: inc/admin/settings/class-lp-settings-courses.php:150
|
465 |
+
#: inc/course/lp-course-functions.php:531 inc/custom-post-types/lesson.php:181
|
466 |
+
msgid "Lesson"
|
467 |
+
msgstr "Lekcja"
|
468 |
+
|
469 |
+
#: inc/lp-core-functions.php:352 inc/lp-template-functions.php:2643
|
470 |
+
#: inc/admin/settings/class-lp-settings-courses.php:157
|
471 |
+
#: inc/course/lp-course-functions.php:532
|
472 |
+
#: inc/custom-post-types/question.php:320 inc/custom-post-types/quiz.php:92
|
473 |
+
#: templates/profile/tabs/quizzes.php:37
|
474 |
+
msgid "Quiz"
|
475 |
+
msgstr "Test"
|
476 |
+
|
477 |
+
#: inc/lp-core-functions.php:677 inc/admin/class-lp-modal-search-items.php:209
|
478 |
+
#: inc/admin/class-lp-modal-search-users.php:135
|
479 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:77
|
480 |
+
msgid "<"
|
481 |
+
msgstr "<"
|
482 |
+
|
483 |
+
#: inc/lp-core-functions.php:678 inc/admin/class-lp-modal-search-items.php:210
|
484 |
+
#: inc/admin/class-lp-modal-search-users.php:136
|
485 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:86
|
486 |
+
msgid ">"
|
487 |
+
msgstr ">"
|
488 |
+
|
489 |
+
#: inc/lp-core-functions.php:756
|
490 |
+
msgid "Minute(s)"
|
491 |
+
msgstr "Minut(-a)"
|
492 |
+
|
493 |
+
#: inc/lp-core-functions.php:757
|
494 |
+
msgid "Hour(s)"
|
495 |
+
msgstr "Godzin(-a)"
|
496 |
|
497 |
+
#: inc/lp-core-functions.php:758
|
498 |
+
msgid "Day(s)"
|
499 |
+
msgstr "Dni(-dzień)"
|
500 |
|
501 |
+
#: inc/lp-core-functions.php:759
|
502 |
+
msgid "Week(s)"
|
503 |
+
msgstr "Tygodni(-dzień)"
|
504 |
+
|
505 |
+
#: inc/lp-core-functions.php:904
|
506 |
msgid "Left"
|
507 |
+
msgstr "Lewy"
|
508 |
|
509 |
+
#: inc/lp-core-functions.php:905
|
510 |
msgid "Right"
|
511 |
+
msgstr "Prawy"
|
512 |
|
513 |
+
#: inc/lp-core-functions.php:906
|
514 |
msgid "Left with space"
|
515 |
+
msgstr "Po lewej ze spacją"
|
516 |
|
517 |
+
#: inc/lp-core-functions.php:907
|
518 |
msgid "Right with space"
|
519 |
+
msgstr "Po prawej ze spacją"
|
520 |
|
521 |
+
#: inc/lp-core-functions.php:971
|
522 |
+
msgid "Afghan afghani"
|
523 |
+
msgstr "Afghan afghani"
|
524 |
|
525 |
+
#: inc/lp-core-functions.php:972
|
526 |
+
msgid "Albanian lek"
|
527 |
+
msgstr "Albanian lek"
|
528 |
|
529 |
+
#: inc/lp-core-functions.php:973
|
530 |
+
msgid "Algerian dinar"
|
531 |
+
msgstr "Algerian dinar"
|
532 |
|
533 |
+
#: inc/lp-core-functions.php:974
|
534 |
+
msgid "Euro"
|
535 |
+
msgstr "Euro"
|
536 |
|
537 |
+
#: inc/lp-core-functions.php:975
|
538 |
+
msgid "Angolan kwanza"
|
539 |
+
msgstr "Angolan kwanza"
|
540 |
|
541 |
+
#: inc/lp-core-functions.php:976
|
542 |
+
msgid "East Caribbean dollar"
|
543 |
+
msgstr "East Caribbean dollar"
|
544 |
|
545 |
+
#: inc/lp-core-functions.php:977
|
546 |
+
msgid "Argentine peso"
|
547 |
+
msgstr "Argentine peso"
|
|
|
548 |
|
549 |
+
#: inc/lp-core-functions.php:978
|
550 |
+
msgid "Armenian dram"
|
551 |
+
msgstr "Armenian dram"
|
|
|
552 |
|
553 |
+
#: inc/lp-core-functions.php:979
|
554 |
+
msgid "Aruban florin"
|
555 |
+
msgstr "Aruban florin"
|
|
|
556 |
|
557 |
+
#: inc/lp-core-functions.php:980
|
558 |
+
msgid "Australian dollar"
|
559 |
+
msgstr "Australian dollar"
|
|
|
560 |
|
561 |
+
#: inc/lp-core-functions.php:981
|
562 |
+
msgid "Azerbaijani manat"
|
563 |
+
msgstr "Azerbaijani manat"
|
|
|
564 |
|
565 |
+
#: inc/lp-core-functions.php:982
|
566 |
+
msgid "Bahamian dollar"
|
567 |
+
msgstr "Bahamian dollar"
|
568 |
|
569 |
+
#: inc/lp-core-functions.php:983
|
570 |
+
msgid "Bahraini dinar"
|
571 |
+
msgstr "Bahraini dinar"
|
572 |
|
573 |
+
#: inc/lp-core-functions.php:984
|
574 |
+
msgid "Bangladeshi taka"
|
575 |
+
msgstr "Bangladeshi taka"
|
576 |
|
577 |
+
#: inc/lp-core-functions.php:985
|
578 |
+
msgid "Barbadian dollar"
|
579 |
+
msgstr "Barbadian dollar"
|
580 |
|
581 |
+
#: inc/lp-core-functions.php:986
|
582 |
+
msgid "Belarusian ruble"
|
583 |
+
msgstr "Belarusian ruble"
|
|
|
|
|
584 |
|
585 |
+
#: inc/lp-core-functions.php:987
|
586 |
+
msgid "Belizean dollar"
|
587 |
+
msgstr "Belizean dollar"
|
|
|
|
|
588 |
|
589 |
+
#: inc/lp-core-functions.php:988
|
590 |
+
msgid "West African CFA franc"
|
591 |
+
msgstr "West African CFA franc"
|
592 |
|
593 |
+
#: inc/lp-core-functions.php:989
|
594 |
+
msgid "Bermudian dollar"
|
595 |
+
msgstr "Bermudian dollar"
|
596 |
|
597 |
+
#: inc/lp-core-functions.php:990
|
598 |
+
msgid "Bhutanese ngultrum"
|
599 |
+
msgstr "Bhutanese ngultrum"
|
|
|
600 |
|
601 |
+
#: inc/lp-core-functions.php:991
|
602 |
+
msgid "Bolivian boliviano"
|
603 |
+
msgstr "Bolivian boliviano"
|
604 |
|
605 |
+
#: inc/lp-core-functions.php:992
|
606 |
+
msgid "US dollar"
|
607 |
+
msgstr "US dollar"
|
608 |
|
609 |
+
#: inc/lp-core-functions.php:993
|
610 |
+
msgid "Bosnia and Herzegovina convertible mark"
|
611 |
+
msgstr "Bosnia and Herzegovina convertible mark"
|
612 |
|
613 |
+
#: inc/lp-core-functions.php:994
|
614 |
+
msgid "Botswana pula"
|
615 |
+
msgstr "Botswana pula"
|
616 |
|
617 |
+
#: inc/lp-core-functions.php:995
|
618 |
+
msgid "Brazilian real"
|
619 |
+
msgstr "Brazilian real"
|
620 |
|
621 |
+
#: inc/lp-core-functions.php:996
|
622 |
+
msgid "Brunei dollar"
|
623 |
+
msgstr "Brunei dollar"
|
624 |
|
625 |
+
#: inc/lp-core-functions.php:997
|
626 |
+
msgid "Bulgarian lev"
|
627 |
+
msgstr "Bulgarian lev"
|
628 |
|
629 |
+
#: inc/lp-core-functions.php:998
|
630 |
+
msgid "Burmese kyat"
|
631 |
+
msgstr "Burmese kyat"
|
632 |
|
633 |
+
#: inc/lp-core-functions.php:999
|
634 |
+
msgid "Burundian franc"
|
635 |
+
msgstr "Burundian franc"
|
636 |
|
637 |
+
#: inc/lp-core-functions.php:1000
|
638 |
+
msgid "Cambodian riel"
|
639 |
+
msgstr "Cambodian riel"
|
640 |
|
641 |
+
#: inc/lp-core-functions.php:1001
|
642 |
+
msgid "Central African CFA franc"
|
643 |
+
msgstr "Central African CFA franc"
|
644 |
|
645 |
+
#: inc/lp-core-functions.php:1002
|
646 |
+
msgid "Canadian dollar"
|
647 |
+
msgstr "Canadian dollar"
|
648 |
|
649 |
+
#: inc/lp-core-functions.php:1003
|
650 |
+
msgid "Cape Verdean escudo"
|
651 |
+
msgstr "Cape Verdean escudo"
|
652 |
|
653 |
+
#: inc/lp-core-functions.php:1004
|
654 |
+
msgid "Cayman Islands dollar"
|
655 |
+
msgstr "Cayman Islands dollar"
|
656 |
|
657 |
+
#: inc/lp-core-functions.php:1005
|
658 |
+
msgid "Chilean peso"
|
659 |
+
msgstr "Chilean peso"
|
660 |
|
661 |
+
#: inc/lp-core-functions.php:1006
|
662 |
+
msgid "Chinese renminbi"
|
663 |
+
msgstr "Chinese renminbi"
|
664 |
|
665 |
+
#: inc/lp-core-functions.php:1007
|
666 |
+
msgid "Colombian peso"
|
667 |
+
msgstr "Colombian peso"
|
668 |
|
669 |
+
#: inc/lp-core-functions.php:1008
|
670 |
+
msgid "Comorian franc"
|
671 |
+
msgstr "Comorian franc"
|
672 |
|
673 |
+
#: inc/lp-core-functions.php:1009
|
674 |
+
msgid "Congolese franc"
|
675 |
+
msgstr "Congolese franc"
|
676 |
|
677 |
+
#: inc/lp-core-functions.php:1010
|
678 |
+
msgid "New Zealand dollar"
|
679 |
+
msgstr "New Zealand dollar"
|
680 |
|
681 |
+
#: inc/lp-core-functions.php:1011
|
682 |
+
msgid "Costa Rican colón"
|
683 |
+
msgstr "Costa Rican colón"
|
|
|
684 |
|
685 |
+
#: inc/lp-core-functions.php:1012
|
686 |
+
msgid "Croatian kuna"
|
687 |
+
msgstr "Croatian kuna"
|
|
|
|
|
|
|
|
|
688 |
|
689 |
+
#: inc/lp-core-functions.php:1013
|
690 |
+
msgid "Cuban peso"
|
691 |
+
msgstr "Cuban peso"
|
692 |
|
693 |
+
#: inc/lp-core-functions.php:1014
|
694 |
+
msgid "Netherlands Antilles guilder"
|
695 |
+
msgstr "Netherlands Antilles guilder"
|
696 |
|
697 |
+
#: inc/lp-core-functions.php:1015
|
698 |
+
msgid "Czech koruna"
|
699 |
+
msgstr "Czech koruna"
|
700 |
|
701 |
+
#: inc/lp-core-functions.php:1016
|
702 |
+
msgid "Danish krone"
|
703 |
+
msgstr "Danish krone"
|
704 |
|
705 |
+
#: inc/lp-core-functions.php:1017
|
706 |
+
msgid "Djiboutian franc"
|
707 |
+
msgstr "Djiboutian franc"
|
708 |
|
709 |
+
#: inc/lp-core-functions.php:1018
|
710 |
+
msgid "Dominican peso"
|
711 |
+
msgstr "Dominican peso"
|
712 |
|
713 |
+
#: inc/lp-core-functions.php:1019
|
714 |
+
msgid "Egyptian pound"
|
715 |
+
msgstr "Egyptian pound"
|
|
|
716 |
|
717 |
+
#: inc/lp-core-functions.php:1020
|
718 |
+
msgid "Salvadoran colón"
|
719 |
+
msgstr "Salvadoran colón"
|
720 |
|
721 |
+
#: inc/lp-core-functions.php:1021
|
722 |
+
msgid "Eritrean nakfa"
|
723 |
+
msgstr "Eritrean nakfa"
|
724 |
|
725 |
+
#: inc/lp-core-functions.php:1022
|
726 |
+
msgid "Ethiopian birr"
|
727 |
+
msgstr "Ethiopian birr"
|
728 |
|
729 |
+
#: inc/lp-core-functions.php:1023
|
730 |
+
msgid "Falkland Islands pound"
|
731 |
+
msgstr "Falkland Islands pound"
|
732 |
|
733 |
+
#: inc/lp-core-functions.php:1024
|
734 |
+
msgid "Fijian dollar"
|
735 |
+
msgstr "Fijian dollar"
|
736 |
|
737 |
+
#: inc/lp-core-functions.php:1025
|
738 |
+
msgid "CFP franc"
|
739 |
+
msgstr "CFP franc"
|
740 |
|
741 |
+
#: inc/lp-core-functions.php:1026
|
742 |
+
msgid "Gambian dalasi"
|
743 |
+
msgstr "Gambian dalasi"
|
744 |
|
745 |
+
#: inc/lp-core-functions.php:1027
|
746 |
+
msgid "Georgian lari"
|
747 |
+
msgstr "Georgian lari"
|
|
|
748 |
|
749 |
+
#: inc/lp-core-functions.php:1028
|
750 |
+
msgid "Ghanian cedi"
|
751 |
+
msgstr "Ghanian cedi"
|
|
|
752 |
|
753 |
+
#: inc/lp-core-functions.php:1029
|
754 |
+
msgid "Gibraltar pound"
|
755 |
+
msgstr "Gibraltar pound"
|
|
|
756 |
|
757 |
+
#: inc/lp-core-functions.php:1030
|
758 |
+
msgid "Guatemalan quetzal"
|
759 |
+
msgstr "Guatemalan quetzal"
|
|
|
760 |
|
761 |
+
#: inc/lp-core-functions.php:1031
|
762 |
+
msgid "British pound"
|
763 |
+
msgstr "British pound"
|
|
|
764 |
|
765 |
+
#: inc/lp-core-functions.php:1032
|
766 |
+
msgid "Guinean franc"
|
767 |
+
msgstr "Guinean franc"
|
768 |
|
769 |
+
#: inc/lp-core-functions.php:1033
|
770 |
+
msgid "Guyanese dollar"
|
771 |
+
msgstr "Guyanese dollar"
|
|
|
772 |
|
773 |
+
#: inc/lp-core-functions.php:1034
|
774 |
+
msgid "Haitian gourde"
|
775 |
+
msgstr "Haitian gourde"
|
776 |
|
777 |
+
#: inc/lp-core-functions.php:1035
|
778 |
+
msgid "Honduran lempira"
|
779 |
+
msgstr "Honduran lempira"
|
|
|
780 |
|
781 |
+
#: inc/lp-core-functions.php:1036
|
782 |
+
msgid "Hong Kong dollar"
|
783 |
+
msgstr "Hong Kong dollar"
|
|
|
784 |
|
785 |
+
#: inc/lp-core-functions.php:1037
|
786 |
+
msgid "Hungarian forint"
|
787 |
+
msgstr "Hungarian forint"
|
|
|
788 |
|
789 |
+
#: inc/lp-core-functions.php:1038
|
790 |
+
msgid "Icelandic króna"
|
791 |
+
msgstr "Icelandic króna"
|
792 |
|
793 |
+
#: inc/lp-core-functions.php:1039
|
794 |
+
msgid "Indian rupee"
|
795 |
+
msgstr "Indian rupee"
|
|
|
796 |
|
797 |
+
#: inc/lp-core-functions.php:1040
|
798 |
+
msgid "Indonesian rupiah"
|
799 |
+
msgstr "Indonesian rupiah"
|
|
|
|
|
800 |
|
801 |
+
#: inc/lp-core-functions.php:1041
|
802 |
+
msgid "Iranian rial"
|
803 |
+
msgstr "Iranian rial"
|
|
|
|
|
804 |
|
805 |
+
#: inc/lp-core-functions.php:1042
|
806 |
+
msgid "Iraqi dinar"
|
807 |
+
msgstr "Iraqi dinar"
|
|
|
|
|
808 |
|
809 |
+
#: inc/lp-core-functions.php:1043
|
810 |
+
msgid "Israeli new sheqel"
|
811 |
+
msgstr "Israeli new sheqel"
|
|
|
812 |
|
813 |
+
#: inc/lp-core-functions.php:1044
|
814 |
+
msgid "Jamaican dollar"
|
815 |
+
msgstr "Jamaican dollar"
|
|
|
816 |
|
817 |
+
#: inc/lp-core-functions.php:1045
|
818 |
+
msgid "Japanese yen "
|
819 |
+
msgstr "Japanese yen "
|
|
|
820 |
|
821 |
+
#: inc/lp-core-functions.php:1046
|
822 |
+
msgid "Jordanian dinar"
|
823 |
+
msgstr "Jordanian dinar"
|
824 |
|
825 |
+
#: inc/lp-core-functions.php:1047
|
826 |
+
msgid "Kazakhstani tenge"
|
827 |
+
msgstr "Kazakhstani tenge"
|
828 |
|
829 |
+
#: inc/lp-core-functions.php:1048
|
830 |
+
msgid "Kenyan shilling"
|
831 |
+
msgstr "Kenyan shilling"
|
832 |
|
833 |
+
#: inc/lp-core-functions.php:1049
|
834 |
+
msgid "North Korean won"
|
835 |
+
msgstr "North Korean won"
|
836 |
|
837 |
+
#: inc/lp-core-functions.php:1050
|
838 |
+
msgid "Kuwaiti dinar"
|
839 |
+
msgstr "Kuwaiti dinar"
|
840 |
|
841 |
+
#: inc/lp-core-functions.php:1051
|
842 |
+
msgid "Kyrgyzstani som"
|
843 |
+
msgstr "Kyrgyzstani som"
|
844 |
|
845 |
+
#: inc/lp-core-functions.php:1052
|
846 |
+
msgid "South Korean won"
|
847 |
+
msgstr "South Korean won"
|
848 |
|
849 |
+
#: inc/lp-core-functions.php:1053
|
850 |
+
msgid "Lao kip"
|
851 |
+
msgstr "Lao kip"
|
|
|
852 |
|
853 |
+
#: inc/lp-core-functions.php:1054
|
854 |
+
msgid "Latvian lats"
|
855 |
+
msgstr "Latvian lats"
|
856 |
|
857 |
+
#: inc/lp-core-functions.php:1055
|
858 |
+
msgid "Lebanese pound"
|
859 |
+
msgstr "Lebanese pound"
|
860 |
|
861 |
+
#: inc/lp-core-functions.php:1056
|
862 |
+
msgid "Lesotho loti"
|
863 |
+
msgstr "Lesotho loti"
|
864 |
|
865 |
+
#: inc/lp-core-functions.php:1057
|
866 |
+
msgid "Liberian dollar"
|
867 |
+
msgstr "Liberian dollar"
|
868 |
|
869 |
+
#: inc/lp-core-functions.php:1058 inc/lp-core-functions.php:1129
|
870 |
+
msgid "Libyan dinar"
|
871 |
+
msgstr "Libyan dinar"
|
872 |
|
873 |
+
#: inc/lp-core-functions.php:1059
|
874 |
+
msgid "Swiss franc"
|
875 |
+
msgstr "Swiss franc"
|
876 |
|
877 |
+
#: inc/lp-core-functions.php:1060
|
878 |
+
msgid "Lithuanian litas"
|
879 |
+
msgstr "Lithuanian litas"
|
880 |
|
881 |
+
#: inc/lp-core-functions.php:1061
|
882 |
+
msgid "Macanese pataca"
|
883 |
+
msgstr "Macanese pataca"
|
884 |
|
885 |
+
#: inc/lp-core-functions.php:1062
|
886 |
+
msgid "Macedonian denar"
|
887 |
+
msgstr "Macedonian denar"
|
888 |
|
889 |
+
#: inc/lp-core-functions.php:1063
|
890 |
+
msgid "Malagasy ariary"
|
891 |
+
msgstr "Malagasy ariary"
|
|
|
892 |
|
893 |
+
#: inc/lp-core-functions.php:1064
|
894 |
+
msgid "Malawian kwacha"
|
895 |
+
msgstr "Malawian kwacha"
|
896 |
|
897 |
+
#: inc/lp-core-functions.php:1065
|
898 |
+
msgid "Malaysian ringgit"
|
899 |
+
msgstr "Malaysian ringgit"
|
900 |
|
901 |
+
#: inc/lp-core-functions.php:1066
|
902 |
+
msgid "Maldivian rufiyaa"
|
903 |
+
msgstr "Maldivian rufiyaa"
|
|
|
|
|
|
|
|
|
904 |
|
905 |
+
#: inc/lp-core-functions.php:1067
|
906 |
+
msgid "Mauritanian ouguiya"
|
907 |
+
msgstr "Mauritanian ouguiya"
|
|
|
|
|
908 |
|
909 |
+
#: inc/lp-core-functions.php:1068
|
910 |
+
msgid "Mauritian rupee"
|
911 |
+
msgstr "Mauritian rupee"
|
|
|
|
|
|
|
|
|
|
|
912 |
|
913 |
+
#: inc/lp-core-functions.php:1069
|
914 |
+
msgid "Mexican peso"
|
915 |
+
msgstr "Mexican peso"
|
|
|
|
|
|
|
|
|
|
|
916 |
|
917 |
+
#: inc/lp-core-functions.php:1070
|
918 |
+
msgid "Moldovan leu"
|
919 |
+
msgstr "Moldovan leu"
|
920 |
|
921 |
+
#: inc/lp-core-functions.php:1071
|
922 |
+
msgid "Mongolian tugrik"
|
923 |
+
msgstr "Mongolian tugrik"
|
924 |
|
925 |
+
#: inc/lp-core-functions.php:1072
|
926 |
+
msgid "Moroccan dirham"
|
927 |
+
msgstr "Moroccan dirham"
|
928 |
|
929 |
+
#: inc/lp-core-functions.php:1073
|
930 |
+
msgid "Mozambican metical"
|
931 |
+
msgstr "Mozambican metical"
|
932 |
|
933 |
+
#: inc/lp-core-functions.php:1074
|
934 |
+
msgid "Namibian dollar"
|
935 |
+
msgstr "Namibian dollar"
|
936 |
|
937 |
+
#: inc/lp-core-functions.php:1075
|
938 |
+
msgid "Nepalese rupee"
|
939 |
+
msgstr "Nepalese rupee"
|
940 |
|
941 |
+
#: inc/lp-core-functions.php:1076
|
942 |
+
msgid "Nicaraguan córdoba"
|
943 |
+
msgstr "Nicaraguan córdoba"
|
944 |
|
945 |
+
#: inc/lp-core-functions.php:1077
|
946 |
+
msgid "Nigerian naira"
|
947 |
+
msgstr "Nigerian naira"
|
948 |
|
949 |
+
#: inc/lp-core-functions.php:1078
|
950 |
+
msgid "Norwegian krone"
|
951 |
+
msgstr "Norwegian krone"
|
|
|
952 |
|
953 |
+
#: inc/lp-core-functions.php:1079
|
954 |
+
msgid "Omani rial"
|
955 |
+
msgstr "Omani rial"
|
|
|
956 |
|
957 |
+
#: inc/lp-core-functions.php:1080
|
958 |
+
msgid "Pakistani rupee"
|
959 |
+
msgstr "Pakistani rupee"
|
|
|
960 |
|
961 |
+
#: inc/lp-core-functions.php:1081
|
962 |
+
msgid "Panamanian balboa"
|
963 |
+
msgstr "Panamanian balboa"
|
|
|
964 |
|
965 |
+
#: inc/lp-core-functions.php:1082
|
966 |
+
msgid "Papua New Guinea kina"
|
967 |
+
msgstr "Papua New Guinea kina"
|
968 |
|
969 |
+
#: inc/lp-core-functions.php:1083
|
970 |
+
msgid "Paraguayan guarani"
|
971 |
+
msgstr "Paraguayan guarani"
|
972 |
|
973 |
+
#: inc/lp-core-functions.php:1084
|
974 |
+
msgid "Peruvian nuevo sol"
|
975 |
+
msgstr "Peruvian nuevo sol"
|
976 |
|
977 |
+
#: inc/lp-core-functions.php:1085
|
978 |
+
msgid "Philippine peso"
|
979 |
+
msgstr "Philippine peso"
|
|
|
|
|
980 |
|
981 |
+
#: inc/lp-core-functions.php:1086
|
982 |
+
msgid "Polish zloty"
|
983 |
+
msgstr "Polski złoty"
|
984 |
|
985 |
+
#: inc/lp-core-functions.php:1087
|
986 |
+
msgid "Qatari riyal"
|
987 |
+
msgstr "Qatari riyal"
|
988 |
|
989 |
+
#: inc/lp-core-functions.php:1088
|
990 |
+
msgid "Romanian leu"
|
991 |
+
msgstr "Romanian leu"
|
|
|
|
|
|
|
|
|
|
|
992 |
|
993 |
+
#: inc/lp-core-functions.php:1089
|
994 |
+
msgid "Russian ruble"
|
995 |
+
msgstr "Russian ruble"
|
|
|
996 |
|
997 |
+
#: inc/lp-core-functions.php:1090
|
998 |
+
msgid "Rwandan franc"
|
999 |
+
msgstr "Rwandan franc"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1000 |
|
1001 |
+
#: inc/lp-core-functions.php:1091
|
1002 |
+
msgid "Samoan tālā"
|
1003 |
+
msgstr "Samoan tālā"
|
|
|
|
|
1004 |
|
1005 |
+
#: inc/lp-core-functions.php:1092
|
1006 |
+
msgid "São Tomé and Príncipe dobra"
|
1007 |
+
msgstr "São Tomé and Príncipe dobra"
|
1008 |
|
1009 |
+
#: inc/lp-core-functions.php:1093
|
1010 |
+
msgid "Saudi riyal"
|
1011 |
+
msgstr "Saudi riyal"
|
1012 |
|
1013 |
+
#: inc/lp-core-functions.php:1094
|
1014 |
+
msgid "Serbian dinar"
|
1015 |
+
msgstr "Serbian dinar"
|
1016 |
|
1017 |
+
#: inc/lp-core-functions.php:1095
|
1018 |
+
msgid "Seychellois rupee"
|
1019 |
+
msgstr "Seychellois rupee"
|
1020 |
|
1021 |
+
#: inc/lp-core-functions.php:1096
|
1022 |
+
msgid "Sierra Leonean leone"
|
1023 |
+
msgstr "Sierra Leonean leone"
|
1024 |
|
1025 |
+
#: inc/lp-core-functions.php:1097
|
1026 |
+
msgid "Singapore dollar"
|
1027 |
+
msgstr "Singapore dollar"
|
1028 |
|
1029 |
+
#: inc/lp-core-functions.php:1098
|
1030 |
+
msgid "Solomon Islands dollar"
|
1031 |
+
msgstr "Solomon Islands dollar"
|
1032 |
|
1033 |
+
#: inc/lp-core-functions.php:1099
|
1034 |
+
msgid "Somali shilling"
|
1035 |
+
msgstr "Somali shilling"
|
1036 |
|
1037 |
+
#: inc/lp-core-functions.php:1100
|
1038 |
+
msgid "South African rand"
|
1039 |
+
msgstr "South African rand"
|
|
|
1040 |
|
1041 |
+
#: inc/lp-core-functions.php:1101
|
1042 |
+
msgid "Sri Lankan rupee"
|
1043 |
+
msgstr "Sri Lankan rupee"
|
|
|
|
|
|
|
1044 |
|
1045 |
+
#: inc/lp-core-functions.php:1102
|
1046 |
+
msgid "St. Helena pound"
|
1047 |
+
msgstr "St. Helena pound"
|
|
|
1048 |
|
1049 |
+
#: inc/lp-core-functions.php:1103
|
1050 |
+
msgid "Sudanese pound"
|
1051 |
+
msgstr "Sudanese pound"
|
|
|
|
|
|
|
|
|
|
|
1052 |
|
1053 |
+
#: inc/lp-core-functions.php:1104
|
1054 |
+
msgid "Surinamese dollar"
|
1055 |
+
msgstr "Surinamese dollar"
|
1056 |
|
1057 |
+
#: inc/lp-core-functions.php:1105
|
1058 |
+
msgid "Swazi lilangeni"
|
1059 |
+
msgstr "Swazi lilangeni"
|
1060 |
|
1061 |
+
#: inc/lp-core-functions.php:1106
|
1062 |
+
msgid "Swedish krona"
|
1063 |
+
msgstr "Swedish krona"
|
1064 |
+
|
1065 |
+
#: inc/lp-core-functions.php:1107
|
1066 |
+
msgid "Syrian pound"
|
1067 |
+
msgstr "Syrian pound"
|
1068 |
+
|
1069 |
+
#: inc/lp-core-functions.php:1108
|
1070 |
+
msgid "New Taiwan dollar"
|
1071 |
+
msgstr "New Taiwan dollar"
|
1072 |
+
|
1073 |
+
#: inc/lp-core-functions.php:1109
|
1074 |
+
msgid "Tajikistani somoni"
|
1075 |
+
msgstr "Tajikistani somoni"
|
1076 |
+
|
1077 |
+
#: inc/lp-core-functions.php:1110
|
1078 |
+
msgid "Tanzanian shilling"
|
1079 |
+
msgstr "Tanzanian shilling"
|
1080 |
+
|
1081 |
+
#: inc/lp-core-functions.php:1111
|
1082 |
+
msgid "Thai baht "
|
1083 |
+
msgstr "Thai baht "
|
1084 |
+
|
1085 |
+
#: inc/lp-core-functions.php:1112
|
1086 |
+
msgid "Tongan pa’anga"
|
1087 |
+
msgstr "Tongan pa’anga"
|
1088 |
+
|
1089 |
+
#: inc/lp-core-functions.php:1113
|
1090 |
+
msgid "Trinidad and Tobago dollar"
|
1091 |
+
msgstr "Trinidad and Tobago dollar"
|
1092 |
+
|
1093 |
+
#: inc/lp-core-functions.php:1114
|
1094 |
+
msgid "Tunisian dinar"
|
1095 |
+
msgstr "Tunisian dinar"
|
1096 |
+
|
1097 |
+
#: inc/lp-core-functions.php:1115
|
1098 |
+
msgid "Turkish lira"
|
1099 |
+
msgstr "Turkish lira"
|
1100 |
+
|
1101 |
+
#: inc/lp-core-functions.php:1116
|
1102 |
+
msgid "Turkmenistani manat"
|
1103 |
+
msgstr "Turkmenistani manat"
|
1104 |
+
|
1105 |
+
#: inc/lp-core-functions.php:1117
|
1106 |
+
msgid "Ugandan shilling"
|
1107 |
+
msgstr "Ugandan shilling"
|
1108 |
+
|
1109 |
+
#: inc/lp-core-functions.php:1118
|
1110 |
+
msgid "Ukrainian hryvnia"
|
1111 |
+
msgstr "Ukrainian hryvnia"
|
1112 |
+
|
1113 |
+
#: inc/lp-core-functions.php:1119
|
1114 |
+
msgid "United Arab Emirates dirham"
|
1115 |
+
msgstr "United Arab Emirates dirham"
|
1116 |
+
|
1117 |
+
#: inc/lp-core-functions.php:1120
|
1118 |
+
msgid "Uruguayan peso"
|
1119 |
+
msgstr "Uruguayan peso"
|
1120 |
+
|
1121 |
+
#: inc/lp-core-functions.php:1121
|
1122 |
+
msgid "Uzbekistani som"
|
1123 |
+
msgstr "Uzbekistani som"
|
1124 |
+
|
1125 |
+
#: inc/lp-core-functions.php:1122
|
1126 |
+
msgid "Vanuatu vatu"
|
1127 |
+
msgstr "Vanuatu vatu"
|
1128 |
+
|
1129 |
+
#: inc/lp-core-functions.php:1123
|
1130 |
+
msgid "Venezuelan bolivar"
|
1131 |
+
msgstr "Venezuelan bolivar"
|
1132 |
+
|
1133 |
+
#: inc/lp-core-functions.php:1124
|
1134 |
+
msgid "Vietnamese dong"
|
1135 |
+
msgstr "Vietnamese dong"
|
1136 |
+
|
1137 |
+
#: inc/lp-core-functions.php:1125
|
1138 |
+
msgid "Yemeni rial"
|
1139 |
+
msgstr "Yemeni rial"
|
1140 |
+
|
1141 |
+
#: inc/lp-core-functions.php:1126
|
1142 |
+
msgid "Zambian kwacha"
|
1143 |
+
msgstr "Zambian kwacha"
|
1144 |
+
|
1145 |
+
#: inc/lp-core-functions.php:1127
|
1146 |
+
msgid "Zimbabwean dollar"
|
1147 |
+
msgstr "Zimbabwean dollar"
|
1148 |
+
|
1149 |
+
#: inc/lp-core-functions.php:1128
|
1150 |
+
msgid "Jersey pound"
|
1151 |
+
msgstr "Jersey pound"
|
1152 |
+
|
1153 |
+
#: inc/lp-core-functions.php:1415
|
1154 |
+
msgid "week"
|
1155 |
+
msgid_plural "weeks"
|
1156 |
+
msgstr[0] "tydzień"
|
1157 |
+
msgstr[1] "tygodnie"
|
1158 |
+
msgstr[2] "tygodni"
|
1159 |
+
|
1160 |
+
#: inc/lp-core-functions.php:1419
|
1161 |
+
msgid "day"
|
1162 |
+
msgid_plural "days"
|
1163 |
+
msgstr[0] "dzień"
|
1164 |
+
msgstr[1] "dni"
|
1165 |
+
msgstr[2] "dni"
|
1166 |
+
|
1167 |
+
#: inc/lp-core-functions.php:1424
|
1168 |
+
msgid "hour"
|
1169 |
+
msgid_plural "hours"
|
1170 |
+
msgstr[0] "godzina"
|
1171 |
+
msgstr[1] "godziny"
|
1172 |
+
msgstr[2] "godzin"
|
1173 |
+
|
1174 |
+
#: inc/lp-core-functions.php:1428
|
1175 |
+
msgid "minute"
|
1176 |
+
msgid_plural "minutes"
|
1177 |
+
msgstr[0] "minuta"
|
1178 |
+
msgstr[1] "minuty"
|
1179 |
+
msgstr[2] "minut"
|
1180 |
+
|
1181 |
+
#: inc/lp-core-functions.php:1497 inc/admin/views/quiz/editor.php:26
|
1182 |
+
#: inc/admin/views/tools/course/html-course.php:26
|
1183 |
+
#: inc/admin/views/tools/course/html-user.php:26
|
1184 |
+
msgid "Name"
|
1185 |
+
msgstr "Nazwisko i imiona"
|
1186 |
|
1187 |
+
#: inc/lp-core-functions.php:1499
|
1188 |
+
msgid "Your name"
|
1189 |
+
msgstr "Twoje imię i nazwisko"
|
1190 |
+
|
1191 |
+
#: inc/lp-core-functions.php:1505 inc/admin/meta-box/fields/list-emails.php:28
|
1192 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:72
|
1193 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:74
|
1194 |
+
msgid "Email"
|
1195 |
+
msgstr "E-mail"
|
1196 |
+
|
1197 |
+
#: inc/lp-core-functions.php:1507
|
1198 |
+
msgid "Your email address"
|
1199 |
+
msgstr "Twój adres email"
|
1200 |
+
|
1201 |
+
#: inc/lp-core-functions.php:1513
|
1202 |
+
msgid "Phone"
|
1203 |
+
msgstr "Numer telefonu"
|
1204 |
+
|
1205 |
+
#: inc/lp-core-functions.php:1515
|
1206 |
+
msgid "Your phone number"
|
1207 |
+
msgstr "Twój numer telefonu"
|
1208 |
+
|
1209 |
+
#: inc/lp-core-functions.php:1545
|
1210 |
+
msgid "Please enter your name"
|
1211 |
+
msgstr "Wprowadź swoje imię i nazwisko"
|
1212 |
+
|
1213 |
+
#: inc/lp-core-functions.php:1550
|
1214 |
+
msgid "Please enter your email address"
|
1215 |
+
msgstr "Proszę podać swojego emaila"
|
1216 |
+
|
1217 |
+
#: inc/lp-core-functions.php:1558
|
1218 |
+
msgid "Please moderate"
|
1219 |
+
msgstr "Proszę zmoderować"
|
1220 |
+
|
1221 |
+
#: inc/lp-core-functions.php:1569
|
1222 |
+
#, php-format
|
1223 |
+
msgid "The user <a href=\"%s\">%s</a> wants to become a teacher."
|
1224 |
+
msgstr "Użytkownik <a href=\"%s\">%s</a> chciałby być nauczycielem."
|
1225 |
+
|
1226 |
+
#: inc/lp-core-functions.php:1570
|
1227 |
+
#, php-format
|
1228 |
+
msgid "Name: %s"
|
1229 |
+
msgstr "Imię i nazwisko: %s"
|
1230 |
+
|
1231 |
+
#: inc/lp-core-functions.php:1571
|
1232 |
+
#, php-format
|
1233 |
+
msgid "Email: %s"
|
1234 |
+
msgstr "E-mail: %s"
|
1235 |
+
|
1236 |
+
#: inc/lp-core-functions.php:1572
|
1237 |
+
#, php-format
|
1238 |
+
msgid "Phone: %s"
|
1239 |
+
msgstr "Telefon: %s"
|
1240 |
+
|
1241 |
+
#: inc/lp-core-functions.php:1578
|
1242 |
+
#, php-format
|
1243 |
+
msgid "Accept: %s"
|
1244 |
+
msgstr "Akceptacja: %s"
|
1245 |
+
|
1246 |
+
#: inc/lp-core-functions.php:1589
|
1247 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:109
|
1248 |
+
msgid "Your request has been sent! We will get back to you soon!"
|
1249 |
+
msgstr "Twoje zapytanie zostało przesłane! Wkrótce się z Tobą skontaktujemy!"
|
1250 |
+
|
1251 |
+
#: inc/lp-core-functions.php:2202
|
1252 |
+
msgid "OK"
|
1253 |
+
msgstr "OK"
|
1254 |
+
|
1255 |
+
#: inc/lp-core-functions.php:2204
|
1256 |
+
#: inc/libraries/meta-box/inc/fields/checkbox.php:50
|
1257 |
+
msgid "Yes"
|
1258 |
+
msgstr "Tak"
|
1259 |
+
|
1260 |
+
#: inc/lp-core-functions.php:2205
|
1261 |
+
#: inc/libraries/meta-box/inc/fields/checkbox.php:50
|
1262 |
+
#: templates/content-quiz/intro.php:25
|
1263 |
+
msgid "No"
|
1264 |
+
msgstr "Nie"
|
1265 |
+
|
1266 |
+
#: inc/lp-core-functions.php:2450
|
1267 |
+
#, php-format
|
1268 |
+
msgid "Congrats! You've enrolled the course \"%s\"."
|
1269 |
+
msgstr "Gratulacje! Dołączyłeś do kursu \"%s\"."
|
1270 |
+
|
1271 |
+
#: inc/lp-core-functions.php:2483
|
1272 |
+
msgid "Cart"
|
1273 |
+
msgstr "Koszyk"
|
1274 |
+
|
1275 |
+
#: inc/lp-core-functions.php:2487
|
1276 |
+
msgid "Enable cart"
|
1277 |
+
msgstr "Włącz koszyk"
|
1278 |
+
|
1279 |
+
#: inc/lp-core-functions.php:2488
|
1280 |
+
msgid "Check this option to enable user purchase multiple courses at one time."
|
1281 |
+
msgstr ""
|
1282 |
+
"Zaznacz tą opcję, aby umożliwić zamówienie wielu kursów w jednym czasie."
|
1283 |
+
|
1284 |
+
#: inc/lp-core-functions.php:2494
|
1285 |
+
msgid "Add to cart redirect"
|
1286 |
+
msgstr "Dodaj do karty przekierowanie"
|
1287 |
+
|
1288 |
+
#: inc/lp-core-functions.php:2495
|
1289 |
+
msgid "Redirect to checkout immediately after adding course to cart."
|
1290 |
+
msgstr "Przekierowanie do kasy, gdy tylko kurs zostanie dodany do koszyka."
|
1291 |
+
|
1292 |
+
#: inc/lp-core-functions.php:2501
|
1293 |
+
msgid "AJAX add to cart"
|
1294 |
+
msgstr "Dodawanie do koszyka w AJAX"
|
1295 |
+
|
1296 |
+
#: inc/lp-core-functions.php:2502
|
1297 |
+
msgid "Using AJAX to add course to cart."
|
1298 |
+
msgstr "Używaj AJAX w celu dodania kursu do karty."
|
1299 |
+
|
1300 |
+
#: inc/lp-core-functions.php:2508
|
1301 |
+
msgid "Cart page"
|
1302 |
+
msgstr "Strona koszyka"
|
1303 |
+
|
1304 |
+
#: inc/lp-core-functions.php:2646
|
1305 |
+
msgid "Are you sure you want to cancel order?"
|
1306 |
+
msgstr "Jesteś pewny, że chcesz anulować zamówienie?"
|
1307 |
+
|
1308 |
+
#: inc/lp-core-functions.php:2647
|
1309 |
+
msgid "Cancel Order"
|
1310 |
+
msgstr "Anuluj zamówienie"
|
1311 |
+
|
1312 |
+
#: inc/lp-core-functions.php:2702 inc/course/lp-course-functions.php:925
|
1313 |
+
#: inc/user/class-lp-profile.php:833 inc/user/class-lp-profile.php:867
|
1314 |
+
#: inc/user-item/class-lp-user-item.php:344
|
1315 |
+
msgid "Passed"
|
1316 |
+
msgstr "Zdane"
|
1317 |
+
|
1318 |
+
#: inc/lp-core-functions.php:2705 inc/course/lp-course-functions.php:928
|
1319 |
+
#: inc/user/class-lp-profile.php:834 inc/user/class-lp-profile.php:868
|
1320 |
+
#: inc/user-item/class-lp-user-item.php:345
|
1321 |
+
msgid "Failed"
|
1322 |
+
msgstr "Niepowodzenie"
|
1323 |
+
|
1324 |
+
#: inc/lp-core-functions.php:2895
|
1325 |
+
msgctxt "static-page-name"
|
1326 |
+
msgid "Checkout"
|
1327 |
+
msgstr "Koszyk"
|
1328 |
+
|
1329 |
+
#: inc/lp-core-functions.php:2896
|
1330 |
+
msgctxt "static-page-name"
|
1331 |
+
msgid "Courses"
|
1332 |
+
msgstr "Kursy"
|
1333 |
+
|
1334 |
+
#: inc/lp-core-functions.php:2897
|
1335 |
+
msgctxt "static-page-name"
|
1336 |
+
msgid "Profile"
|
1337 |
+
msgstr "Twój profil"
|
1338 |
+
|
1339 |
+
#: inc/lp-core-functions.php:2898
|
1340 |
+
msgctxt "static-page-name"
|
1341 |
+
msgid "Become a Teacher"
|
1342 |
+
msgstr "Zostań nauczycielem"
|
1343 |
+
|
1344 |
+
#: inc/lp-deprecated.php:370 inc/lp-deprecated.php:402
|
1345 |
+
#: inc/admin/lp-admin-actions.php:54 inc/admin/lp-admin-functions.php:818
|
1346 |
+
#: inc/admin/lp-admin-functions.php:983 inc/admin/lp-admin-functions.php:1185
|
1347 |
+
#: inc/admin/lp-admin-functions.php:2066
|
1348 |
+
#: inc/admin/views/statistics/courses.php:27
|
1349 |
+
#: inc/admin/views/statistics/courses.php:42
|
1350 |
+
#: inc/admin/views/statistics/general.php:43
|
1351 |
+
#: inc/admin/views/statistics/general.php:59
|
1352 |
+
#: inc/admin/views/statistics/orders.php:28
|
1353 |
+
#: inc/admin/views/statistics/orders.php:62
|
1354 |
+
#: inc/admin/views/statistics/users.php:29
|
1355 |
+
#: inc/admin/views/statistics/users.php:45
|
1356 |
+
#: inc/libraries/meta-box/inc/fields/select.php:87
|
1357 |
+
#: inc/user/class-lp-profile.php:799 inc/user/class-lp-profile.php:831
|
1358 |
+
#: inc/user/class-lp-profile.php:865
|
1359 |
+
#: templates/widgets/course-info/default.php:44
|
1360 |
+
msgid "All"
|
1361 |
+
msgstr "Wszystkie"
|
1362 |
+
|
1363 |
+
#: inc/lp-deprecated.php:371
|
1364 |
+
msgid "Learning"
|
1365 |
+
msgstr "Szkolenie"
|
1366 |
+
|
1367 |
+
#: inc/lp-deprecated.php:372 inc/custom-post-types/order.php:711
|
1368 |
+
#: inc/user/class-lp-profile.php:284
|
1369 |
+
msgid "Purchased"
|
1370 |
+
msgstr "Zakupiony"
|
1371 |
+
|
1372 |
+
#: inc/lp-deprecated.php:373 inc/lp-deprecated.php:404
|
1373 |
+
#: inc/user/class-lp-profile.php:832 inc/user/class-lp-profile.php:866
|
1374 |
+
#: inc/user-item/class-lp-user-item.php:343
|
1375 |
+
msgid "Finished"
|
1376 |
+
msgstr "Zakończono"
|
1377 |
+
|
1378 |
+
#: inc/lp-deprecated.php:374 inc/user/class-lp-profile.php:277
|
1379 |
+
msgid "Owned"
|
1380 |
+
msgstr "Własne"
|
1381 |
+
|
1382 |
+
#: inc/lp-deprecated.php:403 inc/course/lp-course-functions.php:931
|
1383 |
+
#: inc/user-item/class-lp-user-item.php:339
|
1384 |
+
#: inc/user-item/class-lp-user-item.php:340
|
1385 |
+
#: inc/user-item/class-lp-user-item.php:341
|
1386 |
+
msgid "In Progress"
|
1387 |
+
msgstr "W trakcie"
|
1388 |
+
|
1389 |
+
#: inc/lp-js-template.php:11
|
1390 |
+
msgid "--Select a Lesson--"
|
1391 |
+
msgstr "--Wybierz lekcję--"
|
1392 |
+
|
1393 |
+
#: inc/lp-template-functions.php:55
|
1394 |
+
msgid "Your order is waiting for processing"
|
1395 |
+
msgstr "Twój kurs oczekuje na sprawdzenie"
|
1396 |
+
|
1397 |
+
#: inc/lp-template-functions.php:541
|
1398 |
+
msgid "Overview"
|
1399 |
+
msgstr "Opis"
|
1400 |
+
|
1401 |
+
#: inc/lp-template-functions.php:549 inc/admin/views/course/curriculum.php:15
|
1402 |
+
msgid "Curriculum"
|
1403 |
+
msgstr "Program kursu"
|
1404 |
+
|
1405 |
+
#: inc/lp-template-functions.php:555
|
1406 |
+
#: inc/emails/class-lp-email-cancelled-order-instructor.php:24
|
1407 |
+
#: inc/emails/class-lp-email-enrolled-course-instructor.php:27
|
1408 |
+
#: inc/emails/class-lp-email-finished-course-instructor.php:27
|
1409 |
+
#: inc/emails/class-lp-email-new-order-instructor.php:26
|
1410 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:26
|
1411 |
+
#: templates/single-course/tabs/instructor.php:22
|
1412 |
+
msgid "Instructor"
|
1413 |
+
msgstr "Nauczyciel"
|
1414 |
+
|
1415 |
+
#: inc/lp-template-functions.php:1302
|
1416 |
+
msgid "Course Search Results"
|
1417 |
+
msgstr "Wynik"
|
1418 |
+
|
1419 |
+
#: inc/lp-template-functions.php:1304 inc/admin/class-lp-admin.php:276
|
1420 |
+
#: inc/admin/lp-admin-actions.php:208
|
1421 |
+
#: inc/admin/settings/class-lp-settings-courses.php:12
|
1422 |
+
#: inc/admin/settings/class-lp-settings-profile.php:148
|
1423 |
+
#: inc/admin/settings/class-lp-settings-profile.php:273
|
1424 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:21
|
1425 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:28
|
1426 |
+
#: inc/admin/views/setup/steps/pages.php:22
|
1427 |
+
#: inc/admin/views/tools/course/html-user.php:27
|
1428 |
+
#: inc/custom-post-types/course.php:74 inc/custom-post-types/course.php:76
|
1429 |
+
#: inc/user/class-lp-profile.php:299
|
1430 |
+
msgid "Courses"
|
1431 |
+
msgstr "Kursy"
|
1432 |
+
|
1433 |
+
#: inc/lp-template-functions.php:1437
|
1434 |
+
msgctxt "breadcrumb"
|
1435 |
+
msgid "Home"
|
1436 |
+
msgstr "Strona główna"
|
1437 |
+
|
1438 |
+
#: inc/lp-template-functions.php:2315
|
1439 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:76
|
1440 |
+
#: inc/admin/settings/class-lp-settings-payments.php:125
|
1441 |
+
msgid "Order received"
|
1442 |
+
msgstr "Zamówienie przyjęte"
|
1443 |
+
|
1444 |
+
#: inc/lp-template-functions.php:2331
|
1445 |
+
#, php-format
|
1446 |
+
msgid "Access denied \"%s\""
|
1447 |
+
msgstr "Odmowa dostępu \"%s\""
|
1448 |
+
|
1449 |
+
#: inc/lp-template-functions.php:2381
|
1450 |
+
#, php-format
|
1451 |
+
msgid "Search Results for: “%s”"
|
1452 |
+
msgstr "Wyniki wyszukiwania: “%s”"
|
1453 |
+
|
1454 |
+
#: inc/lp-template-functions.php:2384
|
1455 |
+
#, php-format
|
1456 |
+
msgid " – Page %s"
|
1457 |
+
msgstr " – Strona %s"
|
1458 |
+
|
1459 |
+
#: inc/lp-template-functions.php:2647 inc/lp-template-functions.php:3191
|
1460 |
+
msgid "Final"
|
1461 |
+
msgstr "Kończący"
|
1462 |
+
|
1463 |
+
#: inc/lp-template-functions.php:2656 inc/course/lp-course-functions.php:827
|
1464 |
+
#: inc/custom-post-types/abstract.php:514 inc/custom-post-types/lesson.php:314
|
1465 |
+
#: inc/libraries/meta-box/inc/fields/oembed.php:79
|
1466 |
+
#: templates/single-course/section/item-meta.php:25
|
1467 |
+
msgid "Preview"
|
1468 |
+
msgstr "Podgląd"
|
1469 |
+
|
1470 |
+
#: inc/lp-template-functions.php:2940
|
1471 |
+
msgid "Fill out the form and send us your requesting."
|
1472 |
+
msgstr "Wypełnij formularz i wyślij nam swoje zapytanie."
|
1473 |
+
|
1474 |
+
#: inc/lp-template-functions.php:3199 inc/custom-post-types/quiz.php:388
|
1475 |
+
#, php-format
|
1476 |
+
msgid "%d question"
|
1477 |
+
msgid_plural "%d questions"
|
1478 |
+
msgstr[0] "%d zapytanie"
|
1479 |
+
msgstr[1] "%d zapytania"
|
1480 |
+
msgstr[2] "%d zapytań"
|
1481 |
+
|
1482 |
+
#: inc/lp-template-functions.php:3210
|
1483 |
+
#, php-format
|
1484 |
+
msgctxt "duration"
|
1485 |
+
msgid "%s day"
|
1486 |
+
msgstr "%s dzień"
|
1487 |
+
|
1488 |
+
#: inc/lp-template-functions.php:3211
|
1489 |
+
#, php-format
|
1490 |
+
msgctxt "duration"
|
1491 |
+
msgid "%s hour"
|
1492 |
+
msgstr "%s godzina"
|
1493 |
+
|
1494 |
+
#: inc/lp-template-functions.php:3212
|
1495 |
+
#, php-format
|
1496 |
+
msgctxt "duration"
|
1497 |
+
msgid "%s min"
|
1498 |
+
msgstr "%s minut"
|
1499 |
+
|
1500 |
+
#: inc/lp-template-functions.php:3213
|
1501 |
+
#, php-format
|
1502 |
+
msgctxt "duration"
|
1503 |
+
msgid "%s sec"
|
1504 |
+
msgstr "%s sekunda"
|
1505 |
+
|
1506 |
+
#: inc/lp-template-functions.php:3225 inc/course/lp-course-functions.php:748
|
1507 |
+
msgid "Edit this item"
|
1508 |
+
msgstr "Edytuj ten element"
|
1509 |
+
|
1510 |
+
#: inc/lp-template-functions.php:3280
|
1511 |
+
msgid "Back to class"
|
1512 |
+
msgstr "Wróć do tablicy"
|
1513 |
+
|
1514 |
+
#: inc/lp-template-functions.php:3396
|
1515 |
+
msgid "Popup links color"
|
1516 |
+
msgstr "Popup - kolor linków"
|
1517 |
+
|
1518 |
+
#: inc/lp-template-functions.php:3404
|
1519 |
+
msgid "Popup heading background"
|
1520 |
+
msgstr "Popup - tło nagłówka"
|
1521 |
+
|
1522 |
+
#: inc/lp-template-functions.php:3412
|
1523 |
+
msgid "Popup heading color"
|
1524 |
+
msgstr "Popup - kolor nagłówka"
|
1525 |
+
|
1526 |
+
#: inc/lp-template-functions.php:3424
|
1527 |
+
msgid "Popup curriculum background"
|
1528 |
+
msgstr "Popup - tło programu"
|
1529 |
+
|
1530 |
+
#: inc/lp-template-functions.php:3433
|
1531 |
+
msgid "Popup item color"
|
1532 |
+
msgstr "Popup - kolor elementów"
|
1533 |
+
|
1534 |
+
#: inc/lp-template-functions.php:3441
|
1535 |
+
msgid "Popup active item background"
|
1536 |
+
msgstr "Popup - tło aktywnych elementów"
|
1537 |
+
|
1538 |
+
#: inc/lp-template-functions.php:3449
|
1539 |
+
msgid "Popup active item color"
|
1540 |
+
msgstr "Popup - kolor aktywnych elementów"
|
1541 |
+
|
1542 |
+
#: inc/lp-template-functions.php:3457
|
1543 |
+
msgid "Popup content background"
|
1544 |
+
msgstr "Popup - tło zawartości"
|
1545 |
+
|
1546 |
+
#: inc/lp-template-functions.php:3465
|
1547 |
+
msgid "Popup content color"
|
1548 |
+
msgstr "Popup - kolor zawartości"
|
1549 |
+
|
1550 |
+
#: inc/lp-template-functions.php:3473
|
1551 |
+
msgid "Section heading background"
|
1552 |
+
msgstr "Tło sekcji nagłówka"
|
1553 |
+
|
1554 |
+
#: inc/lp-template-functions.php:3480
|
1555 |
+
msgid "Section heading color"
|
1556 |
+
msgstr "Kolor sekcji nagłówka"
|
1557 |
+
|
1558 |
+
#: inc/lp-template-functions.php:3487
|
1559 |
+
msgid "Section heading bottom color"
|
1560 |
+
msgstr "Kolor stopki sekcji nagłówka"
|
1561 |
+
|
1562 |
+
#: inc/lp-template-functions.php:3495
|
1563 |
+
msgid "Lines color"
|
1564 |
+
msgstr "Kolor lini"
|
1565 |
+
|
1566 |
+
#: inc/lp-template-functions.php:3506
|
1567 |
+
msgid "Profile cover background"
|
1568 |
+
msgstr "Tło okładki profilu"
|
1569 |
+
|
1570 |
+
#: inc/lp-template-functions.php:3514
|
1571 |
+
msgid "Scrollbar"
|
1572 |
+
msgstr "Pasek przewijania"
|
1573 |
+
|
1574 |
+
#: inc/lp-template-functions.php:3523
|
1575 |
+
msgid "Progress bar color"
|
1576 |
+
msgstr "Kolor paska postępu"
|
1577 |
+
|
1578 |
+
#: inc/lp-template-functions.php:3531
|
1579 |
+
msgid "Progress bar active color"
|
1580 |
+
msgstr "Kolor aktywnego paska postępu"
|
1581 |
+
|
1582 |
+
#: inc/lp-webhooks.php:82
|
1583 |
+
#, php-format
|
1584 |
+
msgid "LearnPress webhook %s process completed"
|
1585 |
+
msgstr "Proces LearnPress Webhook %s ukończony"
|
1586 |
+
|
1587 |
+
#: inc/lp-webhooks.php:88
|
1588 |
+
msgid "LearnPress webhook process Complete"
|
1589 |
+
msgstr "Proces LearnPress webhook ukończony"
|
1590 |
+
|
1591 |
+
#: inc/abstracts/abstract-addon.php:185
|
1592 |
+
#, php-format
|
1593 |
+
msgid ""
|
1594 |
+
"<strong>%s</strong> add-on version %s requires <strong>LearnPress</strong> "
|
1595 |
+
"version %s or higher"
|
1596 |
+
msgstr ""
|
1597 |
+
"<strong>%s</strong>dodatek w wersji %s wymaga <strong>LearnPress</strong> w "
|
1598 |
+
"wersji %s lub więcej"
|
1599 |
+
|
1600 |
+
#: inc/abstracts/abstract-addon.php:244
|
1601 |
+
#, php-format
|
1602 |
+
msgid "%s plugin file does not exist."
|
1603 |
+
msgstr "Plik pluginu %s nie istnieje."
|
1604 |
+
|
1605 |
+
#: inc/abstracts/abstract-addon.php:262
|
1606 |
+
#, php-format
|
1607 |
+
msgid "%s plugin class does not exist."
|
1608 |
+
msgstr "Klasa pluginu %s nie istnieje."
|
1609 |
+
|
1610 |
+
#: inc/abstracts/abstract-object-data.php:324
|
1611 |
+
#, php-format
|
1612 |
+
msgid "The following these functions %s do not exists in %s"
|
1613 |
+
msgstr "Poniższe funkcje %s nie istnieją w %s"
|
1614 |
+
|
1615 |
+
#: inc/abstracts/abstract-shortcode-courses.php:142
|
1616 |
+
#: inc/admin/views/tools/course/html-course.php:48
|
1617 |
+
#: templates/content-archive-course.php:74
|
1618 |
+
msgid "No course found."
|
1619 |
+
msgstr "Nie znaleziono kursów."
|
1620 |
+
|
1621 |
+
#: inc/admin/class-lp-admin-ajax.php:175
|
1622 |
+
msgid "Ops! ID not found"
|
1623 |
+
msgstr ""
|
1624 |
+
|
1625 |
+
#: inc/admin/class-lp-admin-ajax.php:204
|
1626 |
+
msgid "Duplicate post fail, please try again"
|
1627 |
+
msgstr ""
|
1628 |
+
|
1629 |
+
#: inc/admin/class-lp-admin-ajax.php:354
|
1630 |
+
msgid "Access denied"
|
1631 |
+
msgstr "Dostęp zabroniony"
|
1632 |
+
|
1633 |
+
#: inc/admin/class-lp-admin-ajax.php:366 inc/admin/class-lp-admin-ajax.php:412
|
1634 |
+
#: templates/order/order-details.php:18
|
1635 |
+
msgid "Invalid order"
|
1636 |
+
msgstr "Niepoprawne zamówienie"
|
1637 |
+
|
1638 |
+
#: inc/admin/class-lp-admin-ajax.php:400
|
1639 |
+
msgid "Permission denied"
|
1640 |
+
msgstr "Odmowa dostępu"
|
1641 |
+
|
1642 |
+
#: inc/admin/class-lp-admin-ajax.php:600 inc/admin/class-lp-admin-ajax.php:773
|
1643 |
+
#: inc/admin/lp-admin-functions.php:253
|
1644 |
+
msgid "Edit Page"
|
1645 |
+
msgstr "Edytuj stronę"
|
1646 |
+
|
1647 |
+
#: inc/admin/class-lp-admin-ajax.php:601 inc/admin/class-lp-admin-ajax.php:775
|
1648 |
+
#: inc/admin/lp-admin-functions.php:255
|
1649 |
+
msgid "View Page"
|
1650 |
+
msgstr "Zobacz Stronę"
|
1651 |
+
|
1652 |
+
#: inc/admin/class-lp-admin-ajax.php:603
|
1653 |
+
msgid "Error! Page creation failed. Please try again."
|
1654 |
+
msgstr "Error! Błąd przy tworzeniu strony. Spróbuj ponownie."
|
1655 |
+
|
1656 |
+
#: inc/admin/class-lp-admin-ajax.php:606
|
1657 |
+
msgid "Empty page name!"
|
1658 |
+
msgstr "Pusta nazwa strony!"
|
1659 |
+
|
1660 |
+
#: inc/admin/class-lp-admin-ajax.php:640
|
1661 |
+
msgid "The required pages are successfully created."
|
1662 |
+
msgstr "Wymagana strona została stworzona poprawnie."
|
1663 |
+
|
1664 |
+
#: inc/admin/class-lp-admin-ajax.php:650
|
1665 |
+
msgid "Please try again."
|
1666 |
+
msgstr "Spróbuj ponownie."
|
1667 |
+
|
1668 |
+
#: inc/admin/class-lp-admin-ajax.php:676
|
1669 |
+
msgid "Successfully import sample data."
|
1670 |
+
msgstr "Poprawnie zaimportowano przykładowe dane."
|
1671 |
+
|
1672 |
+
#: inc/admin/class-lp-admin-ajax.php:676
|
1673 |
+
msgid "View courses"
|
1674 |
+
msgstr "Zobacz kursy"
|
1675 |
+
|
1676 |
+
#: inc/admin/class-lp-admin-ajax.php:680
|
1677 |
+
msgid "Failed to import sample data. Please try again."
|
1678 |
+
msgstr "Import przykładowych danych poszedł źle. Spróbuj ponownie!."
|
1679 |
+
|
1680 |
+
#: inc/admin/class-lp-admin-ajax.php:684
|
1681 |
+
msgid ""
|
1682 |
+
"Unknown error when installing/activating Import/Export add-on. Please try "
|
1683 |
+
"again!"
|
1684 |
+
msgstr ""
|
1685 |
+
"Nieznany błąd podczas instalacji/aktywacji dodatku Importu/Eksportu. Spróbuj "
|
1686 |
+
"ponownie!"
|
1687 |
+
|
1688 |
+
#: inc/admin/class-lp-admin-ajax.php:700 inc/admin/class-lp-admin-ajax.php:721
|
1689 |
+
#: inc/admin/class-lp-admin-ajax.php:741
|
1690 |
+
msgid "You do not have the permission to deactivate plugins on this site."
|
1691 |
+
msgstr ""
|
1692 |
+
"Nie posiadasz wystarczających uprawnień, by wyłączać wtyczki na tej witrynie."
|
1693 |
+
|
1694 |
+
#: inc/admin/class-lp-admin-assets.php:38
|
1695 |
+
msgid "Ooops! Error."
|
1696 |
+
msgstr "Uppps! Błąd."
|
1697 |
+
|
1698 |
+
#: inc/admin/class-lp-admin-assets.php:39
|
1699 |
+
#: inc/emails/class-lp-email-cancelled-order-guest.php:27
|
1700 |
+
#: inc/emails/class-lp-email-completed-order-guest.php:29
|
1701 |
+
#: inc/emails/class-lp-email-new-order-guest.php:27
|
1702 |
+
#: inc/emails/class-lp-email-processing-order-guest.php:27
|
1703 |
+
msgid "Guest"
|
1704 |
+
msgstr "Gość"
|
1705 |
+
|
1706 |
+
#: inc/admin/class-lp-admin-assets.php:45
|
1707 |
+
msgid ""
|
1708 |
+
"Before taking this action, we strongly recommend you should backup your site "
|
1709 |
+
"first before proceeding. Should any issues come at hand, do not hesitate to "
|
1710 |
+
"contact our Support team. Are you sure to proceed the update protocol?"
|
1711 |
+
msgstr ""
|
1712 |
+
|
1713 |
+
#: inc/admin/class-lp-admin-dashboard.php:19
|
1714 |
+
msgid "LearnPress order status"
|
1715 |
+
msgstr "Status zamówień LearnPress"
|
1716 |
+
|
1717 |
+
#: inc/admin/class-lp-admin-dashboard.php:24
|
1718 |
+
msgid "LearnPress status"
|
1719 |
+
msgstr "Status LeadnPress"
|
1720 |
+
|
1721 |
+
#: inc/admin/class-lp-admin-dashboard.php:49
|
1722 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:30
|
1723 |
+
msgid "Total Raised"
|
1724 |
+
msgstr "Łączne"
|
1725 |
+
|
1726 |
+
#: inc/admin/class-lp-admin-dashboard.php:65
|
1727 |
+
#: inc/admin/class-lp-admin-dashboard.php:67
|
1728 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:45
|
1729 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:50
|
1730 |
+
#, php-format
|
1731 |
+
msgid "%d order"
|
1732 |
+
msgid_plural "%d orders"
|
1733 |
+
msgstr[0] "%d zamówień"
|
1734 |
+
msgstr[1] "%d zamówienia"
|
1735 |
+
msgstr[2] "%d zamówień"
|
1736 |
+
|
1737 |
+
#: inc/admin/class-lp-admin-dashboard.php:83
|
1738 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:63
|
1739 |
+
msgid "Created by: "
|
1740 |
+
msgstr "Stworzone przez: "
|
1741 |
+
|
1742 |
+
#: inc/admin/class-lp-admin-menu.php:69
|
1743 |
+
msgid "View Courses"
|
1744 |
+
msgstr "Pokaż kursy"
|
1745 |
+
|
1746 |
+
#: inc/admin/class-lp-admin-menu.php:89
|
1747 |
+
msgid "Learning Management System"
|
1748 |
+
msgstr "System szkoleń"
|
1749 |
+
|
1750 |
+
#: inc/admin/class-lp-admin-menu.php:90 inc/admin/class-lp-admin-menu.php:141
|
1751 |
+
#: inc/admin/class-lp-admin.php:93 inc/admin/class-lp-admin.php:101
|
1752 |
+
#: inc/admin/lp-admin-functions.php:1565
|
1753 |
+
#: inc/admin/settings/class-lp-settings-emails.php:150
|
1754 |
+
msgid "LearnPress"
|
1755 |
+
msgstr "LearnPress"
|
1756 |
+
|
1757 |
+
#: inc/admin/class-lp-admin-tools.php:129
|
1758 |
+
msgid "All courses, lessons, quizzes and questions have been removed"
|
1759 |
+
msgstr "Wszystkie kursy, testy, pytania zostały usunięte"
|
1760 |
+
|
1761 |
+
#: inc/admin/class-lp-admin-tools.php:192
|
1762 |
+
msgid "Outdated data from version older than 1.0 has been removed"
|
1763 |
+
msgstr "Nieaktualne informacje z wersji starszej niż 1.0 zostały usunięte"
|
1764 |
+
|
1765 |
+
#: inc/admin/class-lp-admin.php:179
|
1766 |
+
msgid "Shop Page"
|
1767 |
+
msgstr "Strona sklepu"
|
1768 |
+
|
1769 |
+
#: inc/admin/class-lp-admin.php:183
|
1770 |
+
msgid "Cart Page"
|
1771 |
+
msgstr "Strona koszyka"
|
1772 |
+
|
1773 |
+
#: inc/admin/class-lp-admin.php:187 inc/admin/class-lp-admin.php:579
|
1774 |
+
msgid "Checkout Page"
|
1775 |
+
msgstr "Strona kasy"
|
1776 |
+
|
1777 |
+
#: inc/admin/class-lp-admin.php:191
|
1778 |
+
msgid "My Account Page"
|
1779 |
+
msgstr "Strona konta"
|
1780 |
+
|
1781 |
+
#: inc/admin/class-lp-admin.php:195
|
1782 |
+
msgid "Terms and Conditions Page"
|
1783 |
+
msgstr "Strona regulaminu i zasad"
|
1784 |
+
|
1785 |
+
#: inc/admin/class-lp-admin.php:212
|
1786 |
+
msgid "Account"
|
1787 |
+
msgstr "Konto"
|
1788 |
+
|
1789 |
+
#: inc/admin/class-lp-admin.php:213
|
1790 |
+
msgid "Billing"
|
1791 |
+
msgstr "Wykaz"
|
1792 |
+
|
1793 |
+
#: inc/admin/class-lp-admin.php:215 inc/admin/class-lp-admin.php:278
|
1794 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:22
|
1795 |
+
#: inc/admin/views/setup/steps/pages.php:40
|
1796 |
+
msgid "Checkout"
|
1797 |
+
msgstr "Koszyk"
|
1798 |
+
|
1799 |
+
#: inc/admin/class-lp-admin.php:216
|
1800 |
+
msgid "Confirmation"
|
1801 |
+
msgstr "Potwierdzenie"
|
1802 |
+
|
1803 |
+
#: inc/admin/class-lp-admin.php:217
|
1804 |
+
msgid "Invoice"
|
1805 |
+
msgstr "Faktura"
|
1806 |
+
|
1807 |
+
#: inc/admin/class-lp-admin.php:218
|
1808 |
+
msgid "Levels"
|
1809 |
+
msgstr "Poziomy"
|
1810 |
+
|
1811 |
+
#: inc/admin/class-lp-admin.php:246
|
1812 |
+
msgid "Members"
|
1813 |
+
msgstr "Członkowie"
|
1814 |
+
|
1815 |
+
#: inc/admin/class-lp-admin.php:247
|
1816 |
+
msgid "Activity"
|
1817 |
+
msgstr "Aktywność"
|
1818 |
+
|
1819 |
+
#: inc/admin/class-lp-admin.php:248 templates/checkout/form-register.php:48
|
1820 |
+
#: templates/global/form-register.php:43
|
1821 |
+
msgid "Register"
|
1822 |
+
msgstr "Rejestracja"
|
1823 |
+
|
1824 |
+
#: inc/admin/class-lp-admin.php:249
|
1825 |
+
msgid "Activate"
|
1826 |
+
msgstr "Aktywacja"
|
1827 |
+
|
1828 |
+
#: inc/admin/class-lp-admin.php:277
|
1829 |
+
#: inc/admin/settings/class-lp-settings-profile.php:22
|
1830 |
+
#: inc/admin/views/setup/steps/pages.php:31
|
1831 |
+
msgid "Profile"
|
1832 |
+
msgstr "Twój profil"
|
1833 |
+
|
1834 |
+
#: inc/admin/class-lp-admin.php:279 inc/admin/views/setup/steps/pages.php:49
|
1835 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:121
|
1836 |
+
msgid "Become a Teacher"
|
1837 |
+
msgstr "Zostań nauczycielem"
|
1838 |
+
|
1839 |
+
#: inc/admin/class-lp-admin.php:317
|
1840 |
+
msgid "LearnPress Page"
|
1841 |
+
msgstr "Strona LearnPress"
|
1842 |
+
|
1843 |
+
#: inc/admin/class-lp-admin.php:359
|
1844 |
+
#, php-format
|
1845 |
+
msgid "LearnPress Pages (%d)"
|
1846 |
+
msgstr "Strony LearnPress (%d)"
|
1847 |
+
|
1848 |
+
#: inc/admin/class-lp-admin.php:400
|
1849 |
+
msgctxt "pending-request"
|
1850 |
+
msgid "Accept"
|
1851 |
+
msgstr "Akceptacja"
|
1852 |
+
|
1853 |
+
#: inc/admin/class-lp-admin.php:452
|
1854 |
+
#, php-format
|
1855 |
+
msgid "Pending Request %s"
|
1856 |
+
msgstr "Oczekujące rządanie %s"
|
1857 |
+
|
1858 |
+
#: inc/admin/class-lp-admin.php:473
|
1859 |
+
msgid "Sorry, you are not allowed to edit this user."
|
1860 |
+
msgstr "Przepraszamy, nie jesteś dopuszczony do edycji tego użytkownika."
|
1861 |
+
|
1862 |
+
#: inc/admin/class-lp-admin.php:475
|
1863 |
+
msgid "User has accepted to become a teacher."
|
1864 |
+
msgstr "Użytkownik zaakceptował bycie nauczycielem."
|
1865 |
+
|
1866 |
+
#: inc/admin/class-lp-admin.php:553
|
1867 |
+
#, php-format
|
1868 |
+
msgid ""
|
1869 |
+
"LearnPress requires permalink option <strong>Post name</strong> is enabled. "
|
1870 |
+
"Please enable it <a href=\"%s\">here</a> to ensure that all functions work "
|
1871 |
+
"properly."
|
1872 |
+
msgstr ""
|
1873 |
+
"LeanPress wymaga włączenia opcji bezpośredniego linku <strong>Nazwa "
|
1874 |
+
"postu</strong>. Proszę to włączyć <a href=\"%s\">tutaj</a>, aby umożliwić "
|
1875 |
+
"poprawne działanie tej funkcji."
|
1876 |
+
|
1877 |
+
#: inc/admin/class-lp-admin.php:575
|
1878 |
+
msgid "Profile Page"
|
1879 |
+
msgstr "Strona profilu"
|
1880 |
+
|
1881 |
+
#: inc/admin/class-lp-admin.php:605
|
1882 |
+
#, php-format
|
1883 |
+
msgid "The following required page(s) are currently missing: %s."
|
1884 |
+
msgstr "Brakuje poniższych podstron, które są wymagane: %s."
|
1885 |
+
|
1886 |
+
#: inc/admin/class-lp-admin.php:606
|
1887 |
+
#, php-format
|
1888 |
+
msgid ""
|
1889 |
+
"To ensure all functions work properly, please click <a class=\"button\" "
|
1890 |
+
"id=\"learn-press-create-pages\" href=\"%s\">here</a> to create and set it up "
|
1891 |
+
"automatically."
|
1892 |
+
msgstr ""
|
1893 |
+
"Aby upewnić się, że wszystkie funkcje działają poprawnie kliknij <a "
|
1894 |
+
"class=\"button\" id=\"learn-press-create-pages\" href=\"%s\">tutaj</a>, aby "
|
1895 |
+
"stworzyć i skonfigurować automatycznie."
|
1896 |
+
|
1897 |
+
#: inc/admin/class-lp-admin.php:656
|
1898 |
+
#, php-format
|
1899 |
+
msgid ""
|
1900 |
+
"If you like <strong>LearnPress</strong> please leave us a %s★★"
|
1901 |
+
"★★★%s rating. A huge thanks from LearnPress team for your "
|
1902 |
+
"generous."
|
1903 |
+
msgstr ""
|
1904 |
+
"Jeżeli lubisz <strong>LearnPress</strong> Proszę oceń %s★★★"
|
1905 |
+
"★★%s Nas. Dzięki wielkie."
|
1906 |
+
|
1907 |
+
#: inc/admin/class-lp-admin.php:656
|
1908 |
+
msgid "Thanks :)"
|
1909 |
+
msgstr "Dzięki :)"
|
1910 |
+
|
1911 |
+
#: inc/admin/class-lp-install-sample-data.php:64
|
1912 |
+
msgid "Are you sure you want to install sample course data?"
|
1913 |
+
msgstr "Jesteś pewny, że chcesz zainstalować przykładowa dane?"
|
1914 |
+
|
1915 |
+
#: inc/admin/class-lp-install-sample-data.php:65
|
1916 |
+
msgid "Are you sure you want to delete sample course data?"
|
1917 |
+
msgstr "Jesteś pewny, że chcesz usunąć przykładowe dane?"
|
1918 |
+
|
1919 |
+
#: inc/admin/class-lp-install-sample-data.php:128
|
1920 |
+
#, php-format
|
1921 |
+
msgid "Course \"%s\" has been created"
|
1922 |
+
msgstr "Kurs \"%s\" został ukończony"
|
1923 |
+
|
1924 |
+
#: inc/admin/class-lp-install-sample-data.php:130
|
1925 |
+
#: inc/admin/views/meta-boxes/course/assigned.php:22
|
1926 |
+
#: inc/admin/views/meta-boxes/quiz/assigned.php:28
|
1927 |
+
#: inc/admin/views/meta-boxes/quiz/assigned.php:38
|
1928 |
+
#: inc/custom-post-types/abstract.php:493
|
1929 |
+
#: inc/custom-post-types/abstract.php:502 inc/custom-post-types/lesson.php:349
|
1930 |
+
#: inc/custom-post-types/question.php:359 inc/custom-post-types/quiz.php:369
|
1931 |
+
#: inc/order/class-lp-order.php:933
|
1932 |
+
msgid "View"
|
1933 |
+
msgstr "Podgląd"
|
1934 |
+
|
1935 |
+
#: inc/admin/class-lp-install-sample-data.php:132 inc/attributes/course.php:232
|
1936 |
+
#: inc/custom-post-types/lesson.php:347 inc/custom-post-types/question.php:357
|
1937 |
+
#: inc/custom-post-types/quiz.php:367
|
1938 |
+
#: templates/content-lesson/no-content.php:22
|
1939 |
+
msgid "Edit"
|
1940 |
+
msgstr "Edycja"
|
1941 |
+
|
1942 |
+
#: inc/admin/class-lp-install-sample-data.php:302
|
1943 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:25
|
1944 |
+
msgid "Sample course"
|
1945 |
+
msgstr ""
|
1946 |
+
|
1947 |
+
#: inc/admin/class-lp-install-sample-data.php:605
|
1948 |
+
#: inc/admin/class-lp-install-sample-data.php:613
|
1949 |
+
msgctxt "install-sample-course"
|
1950 |
+
msgid " [TRUE]"
|
1951 |
+
msgstr " [PRAWDA]"
|
1952 |
+
|
1953 |
+
#: inc/admin/class-lp-meta-box-tabs.php:29
|
1954 |
+
msgid "Meta box tabs"
|
1955 |
+
msgstr "Tabelki Meta"
|
1956 |
+
|
1957 |
+
#: inc/admin/class-lp-modal-search-items.php:58
|
1958 |
+
#: inc/admin/class-lp-modal-search-users.php:49
|
1959 |
+
#: inc/admin/views/course/modal-choose-items.php:95
|
1960 |
+
#: inc/admin/views/quiz/modal-choose-items.php:87
|
1961 |
+
msgid "Add"
|
1962 |
+
msgstr "Dodaj"
|
1963 |
+
|
1964 |
+
#: inc/admin/class-lp-modal-search-items.php:59
|
1965 |
+
#: inc/admin/class-lp-modal-search-users.php:50
|
1966 |
+
#: inc/admin/views/meta-boxes/order/details.php:239
|
1967 |
+
msgid "Close"
|
1968 |
+
msgstr "Zamknij"
|
1969 |
+
|
1970 |
+
#: inc/admin/class-lp-modal-search-items.php:60
|
1971 |
+
#: inc/admin/views/modal-search-items.php:11
|
1972 |
+
msgid "Search items"
|
1973 |
+
msgstr "Wyszukaj elementy"
|
1974 |
+
|
1975 |
+
#: inc/admin/class-lp-modal-search-items.php:248
|
1976 |
+
#: inc/admin/class-lp-modal-search-users.php:184
|
1977 |
+
msgid "No item found"
|
1978 |
+
msgstr "Nie znaleziono elementów"
|
1979 |
+
|
1980 |
+
#: inc/admin/class-lp-modal-search-items.php:341
|
1981 |
+
msgid "There are no available lessons for this course, please use "
|
1982 |
+
msgstr "Brak dostępnych lekcji dla tego kursu, proszę użyć "
|
1983 |
+
|
1984 |
+
#: inc/admin/class-lp-modal-search-items.php:342
|
1985 |
+
#: inc/admin/class-lp-modal-search-items.php:346
|
1986 |
+
#: inc/admin/class-lp-modal-search-items.php:350
|
1987 |
+
msgid "Add new item"
|
1988 |
+
msgstr "Dodaj nowy plik"
|
1989 |
+
|
1990 |
+
#: inc/admin/class-lp-modal-search-items.php:345
|
1991 |
+
msgid "There are no available quizzes for this course, please use "
|
1992 |
+
msgstr "Brak dostępnych testów dla tego kursu, proszę użyć "
|
1993 |
+
|
1994 |
+
#: inc/admin/class-lp-modal-search-items.php:349
|
1995 |
+
msgid "There are no available questions for this quiz, please use "
|
1996 |
+
msgstr "Brak dostępnych pytań dla tego testu, proszę użyć "
|
1997 |
+
|
1998 |
+
#: inc/admin/class-lp-modal-search-users.php:51
|
1999 |
+
#: inc/admin/views/modal-search-users.php:10
|
2000 |
+
msgid "Search users"
|
2001 |
+
msgstr "Wyszukaj użytkownika"
|
2002 |
+
|
2003 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:162
|
2004 |
+
msgid "No plugin found."
|
2005 |
+
msgstr "Nie znaleziono żadnych wtyczek."
|
2006 |
+
|
2007 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:296
|
2008 |
+
msgctxt "Plugin installer group title"
|
2009 |
+
msgid "Performance"
|
2010 |
+
msgstr "Wydajność"
|
2011 |
+
|
2012 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:297
|
2013 |
+
msgctxt "Plugin installer group title"
|
2014 |
+
msgid "Social"
|
2015 |
+
msgstr "Social"
|
2016 |
+
|
2017 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:298
|
2018 |
+
msgctxt "Plugin installer group title"
|
2019 |
+
msgid "Tools"
|
2020 |
+
msgstr "Przybory"
|
2021 |
+
|
2022 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:341
|
2023 |
+
#, php-format
|
2024 |
+
msgid "By %s"
|
2025 |
+
msgstr "Od %s"
|
2026 |
+
|
2027 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:362
|
2028 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:255
|
2029 |
+
#, php-format
|
2030 |
+
msgid "Install %s now"
|
2031 |
+
msgstr "Zainstaluj %s"
|
2032 |
+
|
2033 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:362
|
2034 |
+
msgid "Install and Active"
|
2035 |
+
msgstr "Instaluj i aktywuj"
|
2036 |
+
|
2037 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:369
|
2038 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:262
|
2039 |
+
#, php-format
|
2040 |
+
msgid "Update %s now"
|
2041 |
+
msgstr "Aktualizuj %s"
|
2042 |
+
|
2043 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:369
|
2044 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:262
|
2045 |
+
#: inc/admin/views/updates/html-update-message.php:17
|
2046 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:17
|
2047 |
+
msgid "Update Now"
|
2048 |
+
msgstr "Zaktualizuj teraz"
|
2049 |
+
|
2050 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:376
|
2051 |
+
msgctxt "plugin"
|
2052 |
+
msgid "Enabled"
|
2053 |
+
msgstr "Włączona"
|
2054 |
+
|
2055 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:378
|
2056 |
+
msgctxt "plugin"
|
2057 |
+
msgid "Enable"
|
2058 |
+
msgstr "Włącz"
|
2059 |
+
|
2060 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:420
|
2061 |
+
msgid "Enabled"
|
2062 |
+
msgstr "Włączona"
|
2063 |
+
|
2064 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:422
|
2065 |
+
msgid "Disabled"
|
2066 |
+
msgstr "Wyłączony"
|
2067 |
+
|
2068 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:425
|
2069 |
+
msgid "Not Install"
|
2070 |
+
msgstr "Nie zainstalowane"
|
2071 |
+
|
2072 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:454
|
2073 |
+
msgid "Last Updated:"
|
2074 |
+
msgstr "Ostatnio zaktualizowany:"
|
2075 |
+
|
2076 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:455
|
2077 |
+
#: inc/custom-post-types/order.php:779
|
2078 |
+
#, php-format
|
2079 |
+
msgid "%s ago"
|
2080 |
+
msgstr "%s temu"
|
2081 |
+
|
2082 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:461
|
2083 |
+
msgctxt "Active plugin installs"
|
2084 |
+
msgid "1+ Million"
|
2085 |
+
msgstr "Ponad milion"
|
2086 |
+
|
2087 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:465
|
2088 |
+
#, php-format
|
2089 |
+
msgid "%s Active Installs"
|
2090 |
+
msgstr "%s aktywnych instalacji"
|
2091 |
+
|
2092 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:471
|
2093 |
+
#: inc/admin/views/addons/html-loop-plugin.php:54
|
2094 |
+
msgid "Untested with your version of WordPress"
|
2095 |
+
msgstr "Nie testowano z twoją wersją WordPressa"
|
2096 |
+
|
2097 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:473
|
2098 |
+
#: inc/admin/views/addons/html-loop-plugin.php:56
|
2099 |
+
msgid "<strong>Incompatible</strong> with your version of WordPress"
|
2100 |
+
msgstr "<strong>Niekompatybilna</strong> z twoją wersją WordPressa"
|
2101 |
+
|
2102 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:475
|
2103 |
+
#: inc/admin/views/addons/html-loop-plugin.php:58
|
2104 |
+
msgid "<strong>Compatible</strong> with your version of WordPress"
|
2105 |
+
msgstr "<strong>Zgodny</strong> z używaną przez ciebie wersją WordPressa"
|
2106 |
+
|
2107 |
+
#: inc/admin/class-lp-reset-data.php:68
|
2108 |
+
msgid "Data deleted"
|
2109 |
+
msgstr "Dane usunięte"
|
2110 |
+
|
2111 |
+
#: inc/admin/class-lp-reset-data.php:70
|
2112 |
+
msgid "No data found"
|
2113 |
+
msgstr "Nie znaleziono danych"
|
2114 |
+
|
2115 |
+
#: inc/admin/class-lp-setup-wizard.php:72
|
2116 |
+
msgctxt "static-page"
|
2117 |
+
msgid "LP Courses"
|
2118 |
+
msgstr "Podstrona Kursów"
|
2119 |
+
|
2120 |
+
#: inc/admin/class-lp-setup-wizard.php:73
|
2121 |
+
msgctxt "static-page"
|
2122 |
+
msgid "LP Profile"
|
2123 |
+
msgstr "Podstrona Profilu"
|
2124 |
+
|
2125 |
+
#: inc/admin/class-lp-setup-wizard.php:74
|
2126 |
+
msgctxt "static-page"
|
2127 |
+
msgid "LP Checkout"
|
2128 |
+
msgstr "Podstrona Koszyka"
|
2129 |
+
|
2130 |
+
#: inc/admin/class-lp-setup-wizard.php:75
|
2131 |
+
msgctxt "static-page"
|
2132 |
+
msgid "LP Become Teacher"
|
2133 |
+
msgstr "Podstrona Zostań nauczycielem"
|
2134 |
+
|
2135 |
+
#: inc/admin/class-lp-setup-wizard.php:206
|
2136 |
+
msgid "Welcome"
|
2137 |
+
msgstr "Witaj"
|
2138 |
+
|
2139 |
+
#: inc/admin/class-lp-setup-wizard.php:208
|
2140 |
+
#: inc/admin/views/setup/notice-setup.php:5
|
2141 |
+
msgid "Run setup wizard"
|
2142 |
+
msgstr "Zacznij przewodnik instalacji"
|
2143 |
+
|
2144 |
+
#: inc/admin/class-lp-setup-wizard.php:211
|
2145 |
+
#: inc/admin/settings/class-lp-settings-general.php:52
|
2146 |
+
#: inc/admin/settings/class-lp-settings-general.php:57
|
2147 |
+
#: inc/admin/views/setup/steps/currency.php:17
|
2148 |
+
#: inc/admin/views/setup/steps/currency.php:21
|
2149 |
+
msgid "Currency"
|
2150 |
+
msgstr "Waluta"
|
2151 |
+
|
2152 |
+
#: inc/admin/class-lp-setup-wizard.php:217
|
2153 |
+
#: inc/admin/views/setup/steps/pages.php:14
|
2154 |
+
msgid "Static Pages"
|
2155 |
+
msgstr "Strony statyczne"
|
2156 |
+
|
2157 |
+
#: inc/admin/class-lp-setup-wizard.php:221
|
2158 |
+
#: inc/admin/meta-box/fields/payment-order.php:29
|
2159 |
+
#: inc/admin/views/setup/steps/payment.php:16
|
2160 |
+
#: inc/custom-post-types/course.php:721
|
2161 |
+
msgid "Payment"
|
2162 |
+
msgstr "Płatność"
|
2163 |
+
|
2164 |
+
#: inc/admin/class-lp-setup-wizard.php:225
|
2165 |
+
#: inc/admin/settings/class-lp-settings-emails.php:26
|
2166 |
+
#: inc/admin/settings/class-lp-settings-emails.php:155
|
2167 |
+
msgid "Emails"
|
2168 |
+
msgstr "Wiadomości e-mail"
|
2169 |
+
|
2170 |
+
#: inc/admin/class-lp-setup-wizard.php:229 inc/admin/views/setup/content.php:92
|
2171 |
+
#: inc/admin/views/setup/steps/finish.php:12
|
2172 |
+
msgid "Finish"
|
2173 |
+
msgstr "Zakończ"
|
2174 |
+
|
2175 |
+
#: inc/admin/class-lp-setup-wizard.php:346
|
2176 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:91
|
2177 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:95
|
2178 |
+
msgid "Paypal"
|
2179 |
+
msgstr "Paypal"
|
2180 |
+
|
2181 |
+
#: inc/admin/class-lp-setup-wizard.php:347
|
2182 |
+
msgid "Enter your Paypal email address to accept payment via Paypal."
|
2183 |
+
msgstr "Wpisz swój email Paypal aby zaakceptować płatność przez Paypal."
|
2184 |
+
|
2185 |
+
#: inc/admin/class-lp-updater.php:43
|
2186 |
+
#, php-format
|
2187 |
+
msgid "<p>Updated version %s</p>"
|
2188 |
+
msgstr "<p>Zaktualizowana wersja %s</p>"
|
2189 |
+
|
2190 |
+
#: inc/admin/class-lp-updater.php:60
|
2191 |
+
msgid "Successfully updated your database."
|
2192 |
+
msgstr "Zaktualizowano bazę danych."
|
2193 |
+
|
2194 |
+
#: inc/admin/class-lp-upgrader.php:12
|
2195 |
+
msgid "Invalid Data provided."
|
2196 |
+
msgstr "Podano nieprawidłowe dane."
|
2197 |
+
|
2198 |
+
#: inc/admin/class-lp-upgrader.php:13
|
2199 |
+
msgid "Could not access filesystem."
|
2200 |
+
msgstr "Brak dostępu do plików."
|
2201 |
+
|
2202 |
+
#: inc/admin/class-lp-upgrader.php:14
|
2203 |
+
msgid "Filesystem error."
|
2204 |
+
msgstr "Błąd systemu plików."
|
2205 |
+
|
2206 |
+
#: inc/admin/class-lp-upgrader.php:15
|
2207 |
+
msgid "Unable to locate WordPress Root directory."
|
2208 |
+
msgstr "Nie udało się zlokalizować głównego katalogu WordPressa."
|
2209 |
+
|
2210 |
+
#: inc/admin/class-lp-upgrader.php:16
|
2211 |
+
msgid "Unable to locate WordPress Content directory (wp-content)."
|
2212 |
+
msgstr "Nie można zlokalizować katalog zawartości Wordpress (wp-content)"
|
2213 |
+
|
2214 |
+
#: inc/admin/class-lp-upgrader.php:17
|
2215 |
+
msgid "Unable to locate WordPress Plugin directory."
|
2216 |
+
msgstr "Nie udało się zlokalizować katalogu wtyczek WordPressa."
|
2217 |
+
|
2218 |
+
#: inc/admin/class-lp-upgrader.php:18
|
2219 |
+
msgid "Unable to locate WordPress Theme directory."
|
2220 |
+
msgstr "Nie udało się zlokalizować katalogu motywów WordPressa."
|
2221 |
+
|
2222 |
+
#: inc/admin/class-lp-upgrader.php:20
|
2223 |
+
#, php-format
|
2224 |
+
msgid "Unable to locate necessary folder (%s)."
|
2225 |
+
msgstr "Nie udało się zlokalizować wymaganego folderu (%s)."
|
2226 |
+
|
2227 |
+
#: inc/admin/class-lp-upgrader.php:22
|
2228 |
+
msgid "Download failed."
|
2229 |
+
msgstr "Pobieranie nie powiodło się."
|
2230 |
+
|
2231 |
+
#: inc/admin/class-lp-upgrader.php:23
|
2232 |
+
msgid "Installing the latest version…"
|
2233 |
+
msgstr "Instalacja najnowszej wersji…"
|
2234 |
+
|
2235 |
+
#: inc/admin/class-lp-upgrader.php:24
|
2236 |
+
msgid "The package contains no files."
|
2237 |
+
msgstr "Pakiet nie zawiera plików."
|
2238 |
+
|
2239 |
+
#: inc/admin/class-lp-upgrader.php:25
|
2240 |
+
msgid "Destination folder already exists."
|
2241 |
+
msgstr "Docelowy folder już istnieje."
|
2242 |
+
|
2243 |
+
#: inc/admin/class-lp-upgrader.php:26
|
2244 |
+
msgid "Could not create directory."
|
2245 |
+
msgstr "Nie można było utworzyć katalogu."
|
2246 |
+
|
2247 |
+
#: inc/admin/class-lp-upgrader.php:27
|
2248 |
+
msgid "The package could not be installed."
|
2249 |
+
msgstr "Paczka nie mogła zostać zainstalowana."
|
2250 |
+
|
2251 |
+
#: inc/admin/class-lp-upgrader.php:29
|
2252 |
+
msgid "Enabling Maintenance mode…"
|
2253 |
+
msgstr "Włączanie trybu konserwacji…"
|
2254 |
+
|
2255 |
+
#: inc/admin/class-lp-upgrader.php:30
|
2256 |
+
msgid "Disabling Maintenance mode…"
|
2257 |
+
msgstr "Wyłączanie trybu konserwacji…"
|
2258 |
+
|
2259 |
+
#: inc/admin/lp-admin-actions.php:55
|
2260 |
+
#: inc/admin/views/dashboard/plugin-status/html-results.php:31
|
2261 |
+
msgid "Published"
|
2262 |
+
msgstr "Opublikowane"
|
2263 |
+
|
2264 |
+
#: inc/admin/lp-admin-actions.php:56
|
2265 |
+
msgid "Private"
|
2266 |
+
msgstr "Prywatny"
|
2267 |
+
|
2268 |
+
#: inc/admin/lp-admin-actions.php:57
|
2269 |
+
msgid "Pending Review"
|
2270 |
+
msgstr "Oczekujące na przegląd"
|
2271 |
+
|
2272 |
+
#: inc/admin/lp-admin-actions.php:58
|
2273 |
+
msgid "Scheduled"
|
2274 |
+
msgstr "Zaplanowane"
|
2275 |
+
|
2276 |
+
#: inc/admin/lp-admin-actions.php:59
|
2277 |
+
msgid "Draft"
|
2278 |
+
msgstr "Szkice"
|
2279 |
+
|
2280 |
+
#: inc/admin/lp-admin-actions.php:60
|
2281 |
+
msgid "Trash"
|
2282 |
+
msgstr "Wyrzuć"
|
2283 |
+
|
2284 |
+
#: inc/admin/lp-admin-actions.php:138
|
2285 |
+
msgid "LearnPress Plugin"
|
2286 |
+
msgstr "Plugin LearnPress"
|
2287 |
+
|
2288 |
+
#: inc/admin/lp-admin-actions.php:142
|
2289 |
+
msgid "LearnPress Status"
|
2290 |
+
msgstr "Status LearnPress"
|
2291 |
+
|
2292 |
+
#: inc/admin/lp-admin-actions.php:214 inc/custom-post-types/course.php:1253
|
2293 |
+
msgid "Categories"
|
2294 |
+
msgstr "Kategorie"
|
2295 |
+
|
2296 |
+
#: inc/admin/lp-admin-actions.php:219 inc/custom-post-types/course.php:166
|
2297 |
+
msgid "Tags"
|
2298 |
+
msgstr "Tagi"
|
2299 |
+
|
2300 |
+
#: inc/admin/lp-admin-functions.php:32
|
2301 |
+
msgid "Duplicate this course"
|
2302 |
+
msgstr "Duplikuj kurs"
|
2303 |
+
|
2304 |
+
#: inc/admin/lp-admin-functions.php:44
|
2305 |
+
#: inc/admin/meta-box/fields/course-permalink.php:39
|
2306 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:22
|
2307 |
+
#: inc/admin/views/settings/fields/course-permalink.php:31
|
2308 |
+
#: inc/admin/views/statistics/orders.php:47
|
2309 |
+
#: inc/custom-post-types/lesson.php:308 inc/custom-post-types/quiz.php:336
|
2310 |
+
#: templates/checkout/review-order.php:32
|
2311 |
+
#: templates/emails/order-items-table.php:57
|
2312 |
+
#: templates/order/order-details.php:28 templates/profile/tabs/courses.php:32
|
2313 |
+
#: templates/profile/tabs/courses/purchased.php:38
|
2314 |
+
msgid "Course"
|
2315 |
+
msgstr "Kurs"
|
2316 |
+
|
2317 |
+
#: inc/admin/lp-admin-functions.php:52
|
2318 |
+
msgid "Duplicate this quiz"
|
2319 |
+
msgstr "Zduplikuj ten test"
|
2320 |
+
|
2321 |
+
#: inc/admin/lp-admin-functions.php:56
|
2322 |
+
msgid "Duplicate this question"
|
2323 |
+
msgstr "Zduplikuj te pytanie"
|
2324 |
+
|
2325 |
+
#: inc/admin/lp-admin-functions.php:60
|
2326 |
+
msgid "Duplicate this lesson"
|
2327 |
+
msgstr "Zduplikuj te lekcję"
|
2328 |
+
|
2329 |
+
#: inc/admin/lp-admin-functions.php:183
|
2330 |
+
msgid "[ Add a new page ]"
|
2331 |
+
msgstr "[ Dodaj stronę ]"
|
2332 |
+
|
2333 |
+
#: inc/admin/lp-admin-functions.php:206
|
2334 |
+
msgid "Select Page"
|
2335 |
+
msgstr "Wybierz stronę"
|
2336 |
+
|
2337 |
+
#: inc/admin/lp-admin-functions.php:223
|
2338 |
+
msgid "Select a page…"
|
2339 |
+
msgstr "Wybierz stronę…"
|
2340 |
+
|
2341 |
+
#: inc/admin/lp-admin-functions.php:244
|
2342 |
+
msgid "Create"
|
2343 |
+
msgstr "Stwórz"
|
2344 |
+
|
2345 |
+
#: inc/admin/lp-admin-functions.php:247
|
2346 |
+
msgid "New page title"
|
2347 |
+
msgstr "Nowy tytuł strony"
|
2348 |
+
|
2349 |
+
#: inc/admin/lp-admin-functions.php:248
|
2350 |
+
msgid "Ok [Enter]"
|
2351 |
+
msgstr "Ok [Enter]"
|
2352 |
+
|
2353 |
+
#: inc/admin/lp-admin-functions.php:249
|
2354 |
+
msgid "Cancel [ESC]"
|
2355 |
+
msgstr "Anuluj [ESC]"
|
2356 |
+
|
2357 |
+
#: inc/admin/lp-admin-functions.php:333
|
2358 |
+
msgid "Minutes"
|
2359 |
+
msgstr "Minuty"
|
2360 |
+
|
2361 |
+
#: inc/admin/lp-admin-functions.php:374 inc/admin/lp-admin-functions.php:400
|
2362 |
+
msgid "Plain text"
|
2363 |
+
msgstr "Zwykły tekst"
|
2364 |
+
|
2365 |
+
#: inc/admin/lp-admin-functions.php:375 inc/admin/lp-admin-functions.php:401
|
2366 |
+
msgid "HTML"
|
2367 |
+
msgstr "HTML"
|
2368 |
+
|
2369 |
+
#: inc/admin/lp-admin-functions.php:544
|
2370 |
+
#: inc/admin/views/addons/html-loop-theme.php:51
|
2371 |
+
msgid "Get it now"
|
2372 |
+
msgstr "Zrób to teraz"
|
2373 |
+
|
2374 |
+
#: inc/admin/lp-admin-functions.php:546
|
2375 |
+
#: inc/admin/views/addons/html-loop-theme.php:53
|
2376 |
+
msgid "View Demo"
|
2377 |
+
msgstr "Zobacz Demo"
|
2378 |
+
|
2379 |
+
#: inc/admin/lp-admin-functions.php:823
|
2380 |
+
#: inc/admin/views/statistics/courses.php:9
|
2381 |
+
#: inc/admin/views/statistics/general.php:9
|
2382 |
+
#: inc/admin/views/statistics/orders.php:9
|
2383 |
+
#: inc/admin/views/statistics/users.php:9
|
2384 |
+
#: inc/admin/views/statistics/users.php:46
|
2385 |
+
msgid "Instructors"
|
2386 |
+
msgstr "Nauczyciele"
|
2387 |
+
|
2388 |
+
#: inc/admin/lp-admin-functions.php:828
|
2389 |
+
#: inc/admin/views/statistics/courses.php:8
|
2390 |
+
#: inc/admin/views/statistics/general.php:8
|
2391 |
+
#: inc/admin/views/statistics/orders.php:8
|
2392 |
+
#: inc/admin/views/statistics/users.php:8
|
2393 |
+
#: inc/admin/views/statistics/users.php:47
|
2394 |
+
#: inc/admin/views/tools/course/html-course.php:27
|
2395 |
+
#: inc/custom-post-types/course.php:1242 inc/custom-post-types/course.php:1249
|
2396 |
+
msgid "Students"
|
2397 |
+
msgstr "Kursantów"
|
2398 |
+
|
2399 |
+
#: inc/admin/lp-admin-functions.php:988 inc/admin/lp-admin-functions.php:2071
|
2400 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
2401 |
+
#: inc/user/class-lp-profile.php:800
|
2402 |
+
msgid "Publish"
|
2403 |
+
msgstr "Opublikowane"
|
2404 |
+
|
2405 |
+
#: inc/admin/lp-admin-functions.php:993 inc/admin/lp-admin-functions.php:1195
|
2406 |
+
#: inc/admin/lp-admin-functions.php:2076
|
2407 |
+
#: inc/admin/views/statistics/courses.php:44
|
2408 |
+
#: inc/admin/views/statistics/general.php:61
|
2409 |
+
#: inc/admin/views/statistics/orders.php:64 inc/user/class-lp-profile.php:801
|
2410 |
+
msgid "Pending"
|
2411 |
+
msgstr "Oczekujące"
|
2412 |
+
|
2413 |
+
#: inc/admin/lp-admin-functions.php:998 inc/admin/lp-admin-functions.php:2081
|
2414 |
+
#: inc/admin/views/statistics/courses.php:45
|
2415 |
+
#: inc/admin/views/statistics/general.php:62
|
2416 |
+
msgid "Paid"
|
2417 |
+
msgstr "Zapłacone"
|
2418 |
+
|
2419 |
+
#: inc/admin/lp-admin-functions.php:1003 inc/admin/lp-admin-functions.php:2086
|
2420 |
+
#: inc/admin/views/statistics/courses.php:46
|
2421 |
+
#: inc/admin/views/statistics/general.php:63 inc/course/abstract-course.php:719
|
2422 |
+
#: inc/custom-post-types/course.php:1330
|
2423 |
+
msgid "Free"
|
2424 |
+
msgstr "Bezpłatne"
|
2425 |
+
|
2426 |
+
#: inc/admin/lp-admin-functions.php:1190
|
2427 |
+
#: inc/admin/views/statistics/orders.php:63
|
2428 |
+
#: inc/user-item/class-lp-user-item.php:342
|
2429 |
+
#: templates/content-lesson/button-complete.php:36
|
2430 |
+
msgid "Completed"
|
2431 |
+
msgstr "Zakończone"
|
2432 |
+
|
2433 |
+
#: inc/admin/lp-admin-functions.php:1222
|
2434 |
+
msgid "Pending Courses / Publish Courses"
|
2435 |
+
msgstr "Oczekujące kursy / Opublikowane kursy"
|
2436 |
+
|
2437 |
+
#: inc/admin/lp-admin-functions.php:1223
|
2438 |
+
msgid "Free Courses / Priced Courses"
|
2439 |
+
msgstr "Darmowe kursy / Płatne kursy"
|
2440 |
+
|
2441 |
+
#: inc/admin/lp-admin-functions.php:1391
|
2442 |
+
msgid "Installed"
|
2443 |
+
msgstr "Zainstalowana"
|
2444 |
+
|
2445 |
+
#: inc/admin/lp-admin-functions.php:1424
|
2446 |
+
#, php-format
|
2447 |
+
msgid "The user %s has become a teacher"
|
2448 |
+
msgstr "Użytkownik %s został nauczycielem"
|
2449 |
+
|
2450 |
+
#: inc/admin/lp-admin-functions.php:1482
|
2451 |
+
msgid "You haven't got any courses yet! Would you like to import sample data?"
|
2452 |
+
msgstr "Nie masz jeszcze żadnych kursów! Może chciałbyś zaimportować coś?"
|
2453 |
+
|
2454 |
+
#: inc/admin/lp-admin-functions.php:1483
|
2455 |
+
msgid "If yes, please install add-on name"
|
2456 |
+
msgstr "Jeżeli tak, wymagane jest zainstalowanie dodatku"
|
2457 |
+
|
2458 |
+
#: inc/admin/lp-admin-functions.php:1484
|
2459 |
+
msgid "LearnPress Import/Export"
|
2460 |
+
msgstr "LearnPress Import/Export"
|
2461 |
+
|
2462 |
+
#: inc/admin/lp-admin-functions.php:1485
|
2463 |
+
msgid "but don't worry because it is completely automated."
|
2464 |
+
msgstr "ale nie martw się, ponieważ jest to całkowicie automatyczne."
|
2465 |
+
|
2466 |
+
#: inc/admin/lp-admin-functions.php:1486
|
2467 |
+
msgid "Import now"
|
2468 |
+
msgstr "Zaimportuj"
|
2469 |
+
|
2470 |
+
#: inc/admin/lp-admin-functions.php:1487
|
2471 |
+
msgid "No, thanks!"
|
2472 |
+
msgstr "Nie, dzięki!"
|
2473 |
+
|
2474 |
+
#: inc/admin/lp-admin-functions.php:1697
|
2475 |
+
msgid " Copy"
|
2476 |
+
msgstr " Kopiuj"
|
2477 |
+
|
2478 |
+
#: inc/admin/lp-admin-functions.php:1790
|
2479 |
+
#, php-format
|
2480 |
+
msgid "Question id %s does not exist."
|
2481 |
+
msgstr "Pytanie o id %s nie istnieje."
|
2482 |
+
|
2483 |
+
#: inc/admin/lp-admin-functions.php:1793
|
2484 |
+
#, php-format
|
2485 |
+
msgid "Quiz id %s does not exist."
|
2486 |
+
msgstr "Test o id %s nie istnieje."
|
2487 |
+
|
2488 |
+
#: inc/admin/editor/class-lp-admin-editor-course.php:71
|
2489 |
+
#: inc/curds/class-lp-course-curd.php:45
|
2490 |
+
msgid "New Course"
|
2491 |
+
msgstr "Nowy kurs"
|
2492 |
+
|
2493 |
+
#: inc/admin/editor/class-lp-admin-editor-question.php:104
|
2494 |
+
#: inc/curds/class-lp-question-curd.php:46
|
2495 |
+
msgid "New Question"
|
2496 |
+
msgstr "Nowe pytanie"
|
2497 |
+
|
2498 |
+
#: inc/admin/editor/class-lp-admin-editor-quiz.php:45
|
2499 |
+
msgid "Invalid quiz"
|
2500 |
+
msgstr ""
|
2501 |
+
|
2502 |
+
#: inc/admin/editor/class-lp-admin-editor-quiz.php:141
|
2503 |
+
#: inc/curds/class-lp-quiz-curd.php:80 inc/custom-post-types/quiz.php:97
|
2504 |
+
msgid "New Quiz"
|
2505 |
+
msgstr "Nowy test"
|
2506 |
+
|
2507 |
+
#: inc/admin/editor/class-lp-admin-editor-quiz.php:150
|
2508 |
+
#: inc/admin/editor/class-lp-admin-editor-quiz.php:567
|
2509 |
+
msgid "Quiz creation failed."
|
2510 |
+
msgstr "Niepowodzenie w tworzeniu testu."
|
2511 |
+
|
2512 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:255
|
2513 |
+
msgid "Install Now"
|
2514 |
+
msgstr "Instaluj"
|
2515 |
+
|
2516 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:269
|
2517 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:279
|
2518 |
+
#, php-format
|
2519 |
+
msgid "Disable %s now"
|
2520 |
+
msgstr "Wyłącz %s"
|
2521 |
+
|
2522 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:269
|
2523 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:279
|
2524 |
+
msgid "Disable Now"
|
2525 |
+
msgstr "Wyłącz"
|
2526 |
+
|
2527 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:271
|
2528 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:281
|
2529 |
+
#, php-format
|
2530 |
+
msgid "Enable %s now"
|
2531 |
+
msgstr "Włącz %s teraz"
|
2532 |
+
|
2533 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:271
|
2534 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:281
|
2535 |
+
msgid "Enable Now"
|
2536 |
+
msgstr "Włącz teraz"
|
2537 |
+
|
2538 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:286
|
2539 |
+
#, php-format
|
2540 |
+
msgid "Buy %s now"
|
2541 |
+
msgstr "Kup %s teraz"
|
2542 |
+
|
2543 |
+
#: inc/admin/helpers/class-lp-plugins-helper.php:286
|
2544 |
+
msgid "Buy Now"
|
2545 |
+
msgstr "Kup teraz"
|
2546 |
+
|
2547 |
+
#: inc/admin/meta-box/fields/color-schema.php:99
|
2548 |
+
msgid "Save as new"
|
2549 |
+
msgstr "Zapisz jako nowe"
|
2550 |
+
|
2551 |
+
#: inc/admin/meta-box/fields/color-schema.php:101
|
2552 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:100
|
2553 |
+
#: inc/admin/views/tools/course/html-course.php:38
|
2554 |
+
#: inc/admin/views/tools/course/html-user-item.php:28
|
2555 |
+
#: inc/admin/views/tools/course/html-user.php:40
|
2556 |
+
#: inc/widgets/course-filters/tmpl/default.php:85
|
2557 |
+
msgid "Reset"
|
2558 |
+
msgstr "Reset"
|
2559 |
+
|
2560 |
+
#: inc/admin/meta-box/fields/color-schema.php:102
|
2561 |
+
msgid "Use this colors"
|
2562 |
+
msgstr "Użyj tych kolorów"
|
2563 |
+
|
2564 |
+
#: inc/admin/meta-box/fields/color-schema.php:103
|
2565 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:31
|
2566 |
+
#: inc/libraries/meta-box/inc/fields/autocomplete.php:20
|
2567 |
+
#: inc/libraries/meta-box/inc/fields/autocomplete.php:81
|
2568 |
+
#: inc/libraries/meta-box/inc/fields/autocomplete.php:93
|
2569 |
+
msgid "Delete"
|
2570 |
+
msgstr "Kasuj"
|
2571 |
+
|
2572 |
+
#: inc/admin/meta-box/fields/course-permalink.php:22
|
2573 |
+
#: inc/admin/settings/class-lp-settings-courses.php:39
|
2574 |
+
#: inc/admin/views/settings/fields/course-permalink.php:14
|
2575 |
+
msgctxt "default-slug"
|
2576 |
+
msgid "courses"
|
2577 |
+
msgstr "kursy"
|
2578 |
+
|
2579 |
+
#: inc/admin/meta-box/fields/course-permalink.php:23
|
2580 |
+
#: inc/admin/views/settings/fields/course-permalink.php:15
|
2581 |
+
msgctxt "default-slug"
|
2582 |
+
msgid "course"
|
2583 |
+
msgstr "kurs"
|
2584 |
+
|
2585 |
+
#: inc/admin/meta-box/fields/course-permalink.php:34
|
2586 |
+
#: inc/admin/views/settings/fields/course-permalink.php:26
|
2587 |
+
msgid "Default"
|
2588 |
+
msgstr "Domyślna"
|
2589 |
+
|
2590 |
+
#: inc/admin/meta-box/fields/course-permalink.php:44
|
2591 |
+
#: inc/admin/views/settings/fields/course-permalink.php:36
|
2592 |
+
msgid "Courses base"
|
2593 |
+
msgstr "Baza kursów"
|
2594 |
+
|
2595 |
+
#: inc/admin/meta-box/fields/course-permalink.php:49
|
2596 |
+
#: inc/admin/views/settings/fields/course-permalink.php:41
|
2597 |
+
msgid "Courses base with category"
|
2598 |
+
msgstr "Baza kursów na podstawie kategorii"
|
2599 |
+
|
2600 |
+
#: inc/admin/meta-box/fields/course-permalink.php:84
|
2601 |
+
#: inc/admin/views/settings/fields/course-permalink.php:77
|
2602 |
+
msgid "Custom Base"
|
2603 |
+
msgstr "Własny format"
|
2604 |
+
|
2605 |
+
#: inc/admin/meta-box/fields/course-permalink.php:92
|
2606 |
+
#: inc/admin/views/settings/fields/course-permalink.php:84
|
2607 |
+
msgid ""
|
2608 |
+
"Enter a custom base to use. A base <strong>must</strong> be set or WordPress "
|
2609 |
+
"will use default values instead."
|
2610 |
+
msgstr ""
|
2611 |
+
"Wpisz własny format. Format <strong>musi</strong> być wpisany albo WordPress "
|
2612 |
+
"użyje domyślnych ustawień."
|
2613 |
+
|
2614 |
+
#: inc/admin/meta-box/fields/email-content.php:113
|
2615 |
+
#: inc/admin/views/settings/emails/email-template.php:52
|
2616 |
+
#, php-format
|
2617 |
+
msgid ""
|
2618 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
2619 |
+
"%s</code>. <br />Please open the file in an editor program to edit"
|
2620 |
+
msgstr ""
|
2621 |
+
"Ten szablon został nadpisany przez Twój szablon i może zostać znalezione w: "
|
2622 |
+
"<code>%s</code>. <br /> Otwórz plik w edytorze aby go edytować"
|
2623 |
+
|
2624 |
+
#: inc/admin/meta-box/fields/email-content.php:149
|
2625 |
+
#: inc/admin/views/settings/emails/email-template.php:77
|
2626 |
+
msgid "Click on variables to add it into email content."
|
2627 |
+
msgstr "Kliknij na zmienne, aby dodać je do treści emalii."
|
2628 |
+
|
2629 |
+
#: inc/admin/meta-box/fields/google-fonts.php:30
|
2630 |
+
msgid "Fonts"
|
2631 |
+
msgstr "Czcionki"
|
2632 |
+
|
2633 |
+
#: inc/admin/meta-box/fields/google-fonts.php:38
|
2634 |
+
msgid "Font families separated by |, eg: Open Sans|Roboto."
|
2635 |
+
msgstr "Czcionki rozdzielone przez |, np.: Open Sans|Roboto."
|
2636 |
+
|
2637 |
+
#: inc/admin/meta-box/fields/google-fonts.php:40
|
2638 |
+
msgid "Subset"
|
2639 |
+
msgstr "Podzbiór"
|
2640 |
+
|
2641 |
+
#: inc/admin/meta-box/fields/google-fonts.php:48
|
2642 |
+
msgid "Font subsets separated by comma, eg: greek,latin."
|
2643 |
+
msgstr "Czcionka podzbioru oddzielona przez przecinek, np. greek,latin."
|
2644 |
+
|
2645 |
+
#: inc/admin/meta-box/fields/image-dimensions.php:32
|
2646 |
+
#: inc/admin/views/settings/fields/image-size.php:13
|
2647 |
+
msgid "px"
|
2648 |
+
msgstr "pikseli"
|
2649 |
+
|
2650 |
+
#: inc/admin/meta-box/fields/list-emails.php:29
|
2651 |
+
#: inc/admin/meta-box/fields/payment-order.php:31
|
2652 |
+
#: inc/admin/views/setup/setup-stripe.php:11
|
2653 |
+
msgid "Description"
|
2654 |
+
msgstr "Opis"
|
2655 |
+
|
2656 |
+
#: inc/admin/meta-box/fields/list-emails.php:30
|
2657 |
+
#: inc/admin/meta-box/fields/payment-order.php:32
|
2658 |
+
#: inc/admin/views/meta-boxes/order/details.php:58
|
2659 |
+
#: inc/custom-post-types/order.php:714
|
2660 |
+
#: templates/emails/order-items-table.php:44
|
2661 |
+
#: templates/emails/plain/order-items-table.php:30
|
2662 |
+
#: templates/profile/tabs/orders/list.php:34
|
2663 |
+
msgid "Status"
|
2664 |
+
msgstr "Status"
|
2665 |
+
|
2666 |
+
#: inc/admin/meta-box/fields/list-emails.php:71
|
2667 |
+
msgid ""
|
2668 |
+
"You can enable/disable each email by clicking on the status icon or apply "
|
2669 |
+
"status for all emails by clicking these buttons"
|
2670 |
+
msgstr ""
|
2671 |
+
"Możesz włączyć/wyłączyć każdy email poprzez kliknięcie na ikonkę statusu "
|
2672 |
+
"albo zaakceptować dla wszystkich emaili klikając na ten przycisk"
|
2673 |
+
|
2674 |
+
#: inc/admin/meta-box/fields/list-emails.php:74
|
2675 |
+
msgid "Enable all"
|
2676 |
+
msgstr "Włącz wszystkie"
|
2677 |
+
|
2678 |
+
#: inc/admin/meta-box/fields/list-emails.php:77
|
2679 |
+
msgid "Disable all"
|
2680 |
+
msgstr "Wyłącz wszystkie"
|
2681 |
+
|
2682 |
+
#: inc/admin/meta-box/fields/payment-order.php:30
|
2683 |
+
#: inc/admin/views/tools/course/html-course.php:25
|
2684 |
+
#: inc/admin/views/tools/course/html-user.php:25
|
2685 |
+
msgid "ID"
|
2686 |
+
msgstr "ID"
|
2687 |
+
|
2688 |
+
#: inc/admin/pointers/pointers.php:66
|
2689 |
+
msgid "Course Curriculum"
|
2690 |
+
msgstr "Program kursu"
|
2691 |
+
|
2692 |
+
#: inc/admin/pointers/pointers.php:67
|
2693 |
+
msgid ""
|
2694 |
+
"Build a course by selecting created lessons and quizzes or adding new ones. "
|
2695 |
+
"You can easily sort, edit, shortcut (l and q). With LearnPress, it's never "
|
2696 |
+
"been easier."
|
2697 |
+
msgstr ""
|
2698 |
+
"Stwórz kurs wybierając stworzone lekcję oraz testy lub dodając nowe. "
|
2699 |
+
"Sortowanie, edycja, skróty - nigdy nie było to prostsze."
|
2700 |
+
|
2701 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:22
|
2702 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:88
|
2703 |
+
msgid "Advanced"
|
2704 |
+
msgstr "Zaawansowane"
|
2705 |
+
|
2706 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:53
|
2707 |
+
msgid "Enable custom colors"
|
2708 |
+
msgstr "Użyj własnych kolorów"
|
2709 |
+
|
2710 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:57
|
2711 |
+
msgid "Use color schema for main colors."
|
2712 |
+
msgstr "Użyj schematu kolorów głównych kolorów."
|
2713 |
+
|
2714 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:60
|
2715 |
+
msgid "Color schema"
|
2716 |
+
msgstr "Schemat kolorów"
|
2717 |
+
|
2718 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:66
|
2719 |
+
msgid "Load css"
|
2720 |
+
msgstr "Załaduj css"
|
2721 |
+
|
2722 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:70
|
2723 |
+
msgid "Load default stylesheet for LearnPress."
|
2724 |
+
msgstr "Załaduj domyślne style dla LearnPress."
|
2725 |
+
|
2726 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:73
|
2727 |
+
msgid "Debug mode"
|
2728 |
+
msgstr "Tryb debugowania"
|
2729 |
+
|
2730 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:77
|
2731 |
+
msgid "Turn on/off debug mode for developer."
|
2732 |
+
msgstr "Włącz/Wyłącz tryb debugowania dla developerów."
|
2733 |
+
|
2734 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:80
|
2735 |
+
msgid "Hard cache"
|
2736 |
+
msgstr "Pamięć Podręczna"
|
2737 |
+
|
2738 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:84
|
2739 |
+
msgid "Enable hard cache"
|
2740 |
+
msgstr "Włącz pamięć podręczną"
|
2741 |
+
|
2742 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:88
|
2743 |
+
#, php-format
|
2744 |
+
msgid ""
|
2745 |
+
"Enable cache for static content such as content and settings of course, "
|
2746 |
+
"lesson, quiz. <a href=\"%s\">%s</a>"
|
2747 |
+
msgstr ""
|
2748 |
+
"Włącz pamięć podręczną dla statycznych elementów contentu i ustawień kursu, "
|
2749 |
+
"lekcji i testu. <a href=\"%s\">%s</a>"
|
2750 |
+
|
2751 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:91
|
2752 |
+
msgid "Others"
|
2753 |
+
msgstr ""
|
2754 |
+
|
2755 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:95
|
2756 |
+
msgid "Enable lesson video"
|
2757 |
+
msgstr ""
|
2758 |
+
|
2759 |
+
#: inc/admin/settings/class-lp-settings-advanced.php:99
|
2760 |
+
msgid ""
|
2761 |
+
"When this option is enabled, the first video embed in lesson content will be "
|
2762 |
+
"detected and move to the top."
|
2763 |
+
msgstr ""
|
2764 |
+
|
2765 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:36
|
2766 |
+
#: inc/admin/settings/class-lp-settings-courses.php:66
|
2767 |
+
#: inc/admin/settings/class-lp-settings-general.php:16
|
2768 |
+
#: inc/admin/settings/class-lp-settings-general.php:40
|
2769 |
+
#: inc/admin/settings/class-lp-settings-payments.php:55
|
2770 |
+
#: inc/admin/settings/class-lp-settings-profile.php:53
|
2771 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:26
|
2772 |
+
#: inc/custom-post-types/course.php:532 inc/user/class-lp-profile.php:330
|
2773 |
+
msgid "General"
|
2774 |
+
msgstr "Generalne"
|
2775 |
+
|
2776 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:59
|
2777 |
+
#: inc/admin/settings/class-lp-settings-payments.php:87
|
2778 |
+
msgid "Auto enroll"
|
2779 |
+
msgstr "Automatyczne dołączenie"
|
2780 |
+
|
2781 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:60
|
2782 |
+
#: inc/admin/settings/class-lp-settings-payments.php:91
|
2783 |
+
msgid "Auto enroll a user after they buy a course."
|
2784 |
+
msgstr "Wyłącz auto dołączenie użytkowników po zakupie kursu."
|
2785 |
+
|
2786 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:66
|
2787 |
+
#: inc/admin/settings/class-lp-settings-payments.php:81
|
2788 |
+
msgid "Checkout page"
|
2789 |
+
msgstr "Strona podsumowania"
|
2790 |
+
|
2791 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:72
|
2792 |
+
msgid "Checkout Endpoints"
|
2793 |
+
msgstr "Zamówienie - punkty końcowe"
|
2794 |
+
|
2795 |
+
#: inc/admin/settings/class-lp-settings-courses.php:24
|
2796 |
+
#: inc/custom-post-types/course.php:87
|
2797 |
+
msgctxt "slug"
|
2798 |
+
msgid "courses"
|
2799 |
+
msgstr "kursy"
|
2800 |
+
|
2801 |
+
#: inc/admin/settings/class-lp-settings-courses.php:68
|
2802 |
+
#: inc/admin/settings/class-lp-settings-general.php:42
|
2803 |
+
#: inc/admin/settings/class-lp-settings-profile.php:55
|
2804 |
+
msgid "General settings."
|
2805 |
+
msgstr "Generalne ustawienia."
|
2806 |
+
|
2807 |
+
#: inc/admin/settings/class-lp-settings-courses.php:71
|
2808 |
+
msgid "Review course before publishing"
|
2809 |
+
msgstr "Sprawdź kurs przed publikacją"
|
2810 |
+
|
2811 |
+
#: inc/admin/settings/class-lp-settings-courses.php:72
|
2812 |
+
msgid "The course needs to be reviewed by admin before it can be published."
|
2813 |
+
msgstr "Kurs musi zostać zweryfikowany przez admina przed jego opublikowaniem."
|
2814 |
+
|
2815 |
+
#: inc/admin/settings/class-lp-settings-courses.php:78
|
2816 |
+
msgid "Enable editing published course"
|
2817 |
+
msgstr "Włącz możliwość edycji opublikowanych kursów"
|
2818 |
+
|
2819 |
+
#: inc/admin/settings/class-lp-settings-courses.php:79
|
2820 |
+
msgid ""
|
2821 |
+
"Allow instructors to edit the course which were published without review.<br "
|
2822 |
+
"/> If this option is disabled, the course status will be changed to Pending "
|
2823 |
+
"Review when the instructor update course."
|
2824 |
+
msgstr ""
|
2825 |
+
"Upoważnij nauczycieli do edycji kursów któe są opublikowane bez akceptacji."
|
2826 |
+
"<br /> Jeżeli ta opcja jest wyłączona, status kursu będzie zmieniony na "
|
2827 |
+
"\"oczekujący opinii\" kiedy nauczyciel zaktualizuje kurs."
|
2828 |
+
|
2829 |
+
#: inc/admin/settings/class-lp-settings-courses.php:99
|
2830 |
+
msgid "Archive"
|
2831 |
+
msgstr "Na stronach archiwum"
|
2832 |
+
|
2833 |
+
#: inc/admin/settings/class-lp-settings-courses.php:101
|
2834 |
+
msgid "Those settings are applied to archive course page."
|
2835 |
+
msgstr "Te ustawienia są dedykowane stronie listy kursów."
|
2836 |
+
|
2837 |
+
#: inc/admin/settings/class-lp-settings-courses.php:104
|
2838 |
+
msgid "Courses Page"
|
2839 |
+
msgstr "Strona kursów"
|
2840 |
+
|
2841 |
+
#: inc/admin/settings/class-lp-settings-courses.php:110
|
2842 |
+
#: inc/admin/settings/class-lp-settings-profile.php:108
|
2843 |
+
msgid "Courses limit"
|
2844 |
+
msgstr "Limit kursów"
|
2845 |
+
|
2846 |
+
#: inc/admin/settings/class-lp-settings-courses.php:111
|
2847 |
+
msgid "Number of courses displayed per page."
|
2848 |
+
msgstr "Liczba kursów wyświetlana na stronę."
|
2849 |
+
|
2850 |
+
#: inc/admin/settings/class-lp-settings-courses.php:126
|
2851 |
+
#: inc/admin/settings/class-lp-settings-courses.php:180
|
2852 |
+
msgid "Single course"
|
2853 |
+
msgstr "Pojedynczy kurs"
|
2854 |
+
|
2855 |
+
#: inc/admin/settings/class-lp-settings-courses.php:128
|
2856 |
+
msgid "Those settings are applied to single course page."
|
2857 |
+
msgstr "Te ustawienia są dedykowane stronie pojedynczego kursu."
|
2858 |
+
|
2859 |
+
#: inc/admin/settings/class-lp-settings-courses.php:132
|
2860 |
+
msgid "Course category base"
|
2861 |
+
msgstr "Bazowa kategoria kursu"
|
2862 |
+
|
2863 |
+
#: inc/admin/settings/class-lp-settings-courses.php:138
|
2864 |
+
msgid "Course tag base"
|
2865 |
+
msgstr "Baza etykiety kursu"
|
2866 |
+
|
2867 |
+
#: inc/admin/settings/class-lp-settings-courses.php:144
|
2868 |
+
msgid "Single course permalink"
|
2869 |
+
msgstr "Link do pojedynczego kursu"
|
2870 |
+
|
2871 |
+
#: inc/admin/settings/class-lp-settings-courses.php:164
|
2872 |
+
msgid "Enrolled students number"
|
2873 |
+
msgstr "Liczba kursantów"
|
2874 |
+
|
2875 |
+
#: inc/admin/settings/class-lp-settings-courses.php:167
|
2876 |
+
msgid ""
|
2877 |
+
"Displays a fake numbers of enrolled students. Disable to show the real value."
|
2878 |
+
msgstr ""
|
2879 |
+
"Wyświetl fałszywą liczę kursantów. Wyłącz, aby pokazać prawdziwą liczbę."
|
2880 |
+
|
2881 |
+
#: inc/admin/settings/class-lp-settings-courses.php:175
|
2882 |
+
msgid "Course thumbnails"
|
2883 |
+
msgstr "Miniaturka kursu"
|
2884 |
+
|
2885 |
+
#: inc/admin/settings/class-lp-settings-courses.php:177
|
2886 |
+
msgid "Thumbnail generation for archive/single course."
|
2887 |
+
msgstr "Miniaturka generowana dla listy kursów/pojedynczego kursu."
|
2888 |
+
|
2889 |
+
#: inc/admin/settings/class-lp-settings-courses.php:184
|
2890 |
+
#: inc/admin/settings/class-lp-settings-courses.php:206
|
2891 |
+
msgid "Turn on/off courses extra thumbnail."
|
2892 |
+
msgstr "Włącz/Wyłącz miniaturki kursów."
|
2893 |
+
|
2894 |
+
#: inc/admin/settings/class-lp-settings-courses.php:187
|
2895 |
+
#: inc/admin/settings/class-lp-settings-courses.php:209
|
2896 |
+
msgid "Thumbnail dimensions"
|
2897 |
+
msgstr "Wymiary miniaturki"
|
2898 |
+
|
2899 |
+
#: inc/admin/settings/class-lp-settings-courses.php:202
|
2900 |
+
msgid "Archive course"
|
2901 |
+
msgstr "Lista kursów"
|
2902 |
+
|
2903 |
+
#: inc/admin/settings/class-lp-settings-emails.php:64
|
2904 |
+
msgid "General options"
|
2905 |
+
msgstr "Opcje ogólne"
|
2906 |
+
|
2907 |
+
#: inc/admin/settings/class-lp-settings-emails.php:112
|
2908 |
+
msgid "Email options"
|
2909 |
+
msgstr "Opcje emaila"
|
2910 |
+
|
2911 |
+
#: inc/admin/settings/class-lp-settings-emails.php:114
|
2912 |
+
#: inc/admin/views/settings/emails/general.php:17
|
2913 |
+
msgid ""
|
2914 |
+
"The following options affect the sender (email address and name) used in "
|
2915 |
+
"LearnPress emails."
|
2916 |
+
msgstr ""
|
2917 |
+
"Poniższe opcje wpływają na nadawcę (email, adres oraz nazwisko) używanego w "
|
2918 |
+
"emailach LearnPress."
|
2919 |
+
|
2920 |
+
#: inc/admin/settings/class-lp-settings-emails.php:117
|
2921 |
+
msgid "From name"
|
2922 |
+
msgstr "Nazwa adresata"
|
2923 |
+
|
2924 |
+
#: inc/admin/settings/class-lp-settings-emails.php:123
|
2925 |
+
msgid "From email"
|
2926 |
+
msgstr "Email adresata"
|
2927 |
+
|
2928 |
+
#: inc/admin/settings/class-lp-settings-emails.php:129
|
2929 |
+
msgid "Send email in background"
|
2930 |
+
msgstr "Wyślij emaila w tle"
|
2931 |
+
|
2932 |
+
#: inc/admin/settings/class-lp-settings-emails.php:133
|
2933 |
+
msgid "Defer transaction email and runs in background."
|
2934 |
+
msgstr "Odrocz email transakcji i działaj w tle."
|
2935 |
+
|
2936 |
+
#: inc/admin/settings/class-lp-settings-emails.php:136
|
2937 |
+
msgid "Email template"
|
2938 |
+
msgstr "Szablon emaila"
|
2939 |
+
|
2940 |
+
#: inc/admin/settings/class-lp-settings-emails.php:140
|
2941 |
+
#: inc/admin/views/settings/emails/general.php:40
|
2942 |
+
msgid "Header image"
|
2943 |
+
msgstr "Obraz nagłówka"
|
2944 |
+
|
2945 |
+
#: inc/admin/settings/class-lp-settings-emails.php:145
|
2946 |
+
#: inc/admin/views/settings/emails/general.php:43
|
2947 |
+
msgid "The image will be displayed in the top of the email."
|
2948 |
+
msgstr "Ten obrazek zostanie wyświetlony na początku emaila."
|
2949 |
+
|
2950 |
+
#: inc/admin/settings/class-lp-settings-emails.php:148
|
2951 |
+
#: inc/admin/views/settings/emails/general.php:47
|
2952 |
+
msgid "Footer text"
|
2953 |
+
msgstr "Tekst stopki"
|
2954 |
+
|
2955 |
+
#: inc/admin/settings/class-lp-settings-emails.php:152
|
2956 |
+
msgid "The texts display in the bottom of email."
|
2957 |
+
msgstr "Tekst wyświetlany w stopce emaila."
|
2958 |
+
|
2959 |
+
#: inc/admin/settings/class-lp-settings-general.php:45
|
2960 |
+
msgid "Logout redirect"
|
2961 |
+
msgstr "Przekierowanie przy wylogowaniu"
|
2962 |
+
|
2963 |
+
#: inc/admin/settings/class-lp-settings-general.php:49
|
2964 |
+
msgid "The page where user will be redirected to after logging out."
|
2965 |
+
msgstr "Strona na którą użytkownik zostanie przekierowany po wylogowaniu."
|
2966 |
+
|
2967 |
+
#: inc/admin/settings/class-lp-settings-general.php:54
|
2968 |
+
msgid "Setting up your currency unit and its formatting."
|
2969 |
+
msgstr "Ustaw swoją jednostkę walutową i formatowanie."
|
2970 |
+
|
2971 |
+
#: inc/admin/settings/class-lp-settings-general.php:65
|
2972 |
+
#: inc/admin/views/setup/steps/currency.php:37
|
2973 |
+
msgid "Currency position"
|
2974 |
+
msgstr "Pozycja waluty"
|
2975 |
+
|
2976 |
+
#: inc/admin/settings/class-lp-settings-general.php:72
|
2977 |
+
#: inc/admin/views/setup/steps/currency.php:51
|
2978 |
+
msgid "Thousands Separator"
|
2979 |
+
msgstr "Separator tysięcy"
|
2980 |
+
|
2981 |
+
#: inc/admin/settings/class-lp-settings-general.php:78
|
2982 |
+
#: inc/admin/views/setup/steps/currency.php:56
|
2983 |
+
msgid "Decimals Separator"
|
2984 |
+
msgstr "Separator jedności dziesiętnych"
|
2985 |
+
|
2986 |
+
#: inc/admin/settings/class-lp-settings-general.php:84
|
2987 |
+
#: inc/admin/views/setup/steps/currency.php:61
|
2988 |
+
msgid "Number of Decimals"
|
2989 |
+
msgstr "Liczba znaków po przecinku"
|
2990 |
+
|
2991 |
+
#: inc/admin/settings/class-lp-settings-pages.php:16
|
2992 |
+
msgid "Pages"
|
2993 |
+
msgstr "Strony"
|
2994 |
+
|
2995 |
+
#: inc/admin/settings/class-lp-settings-pages.php:28
|
2996 |
+
msgid "Become a teacher"
|
2997 |
+
msgstr "Zostań nauczycielem"
|
2998 |
+
|
2999 |
+
#: inc/admin/settings/class-lp-settings-pages.php:39
|
3000 |
+
msgid "Become a teacher page"
|
3001 |
+
msgstr "Strona Zostań nauczycielem"
|
3002 |
+
|
3003 |
+
#: inc/admin/settings/class-lp-settings-pages.php:45
|
3004 |
+
msgid "Instructors registration"
|
3005 |
+
msgstr ""
|
3006 |
+
|
3007 |
+
#: inc/admin/settings/class-lp-settings-pages.php:46
|
3008 |
+
msgid "Create option for instructors registration."
|
3009 |
+
msgstr ""
|
3010 |
+
|
3011 |
+
#: inc/admin/settings/class-lp-settings-payments.php:28
|
3012 |
+
#: inc/admin/settings/class-lp-settings-payments.php:137
|
3013 |
+
msgid "Payments"
|
3014 |
+
msgstr "Płatności"
|
3015 |
+
|
3016 |
+
#: inc/admin/settings/class-lp-settings-payments.php:94
|
3017 |
+
msgid "Enable guest checkout"
|
3018 |
+
msgstr "Włącz koszyk Gościa"
|
3019 |
+
|
3020 |
+
#: inc/admin/settings/class-lp-settings-payments.php:98
|
3021 |
+
msgid "Enable user buy course as a Guest."
|
3022 |
+
msgstr "Uruchm możliwość zakupu kursu, gdy użytkownik jest Gościem."
|
3023 |
+
|
3024 |
+
#: inc/admin/settings/class-lp-settings-payments.php:101
|
3025 |
+
msgid "Enable login in checkout"
|
3026 |
+
msgstr "Włącz Login w koszyku"
|
3027 |
+
|
3028 |
+
#: inc/admin/settings/class-lp-settings-payments.php:105
|
3029 |
+
msgid "Enable login form in checkout page."
|
3030 |
+
msgstr "Włącz formularz logowania na stronie koszyka."
|
3031 |
+
|
3032 |
+
#: inc/admin/settings/class-lp-settings-payments.php:108
|
3033 |
+
msgid "Enable registration in checkout"
|
3034 |
+
msgstr "Włącz rejestrację w koszyku"
|
3035 |
+
|
3036 |
+
#: inc/admin/settings/class-lp-settings-payments.php:112
|
3037 |
+
msgid "Enable registration form in checkout page."
|
3038 |
+
msgstr "Włącz formularz rejestracyjny na stronie koszyka."
|
3039 |
+
|
3040 |
+
#: inc/admin/settings/class-lp-settings-payments.php:121
|
3041 |
+
msgid "Endpoints"
|
3042 |
+
msgstr "Punkty końcowe"
|
3043 |
+
|
3044 |
+
#: inc/admin/settings/class-lp-settings-payments.php:128
|
3045 |
+
msgid "lp-order-received"
|
3046 |
+
msgstr "lp-order-received"
|
3047 |
+
|
3048 |
+
#: inc/admin/settings/class-lp-settings-payments.php:130
|
3049 |
+
#, php-format
|
3050 |
+
msgid ""
|
3051 |
+
"Unique slug in checkout page to displays order details. Example: http:"
|
3052 |
+
"//example.com/lp-checkout/%s/"
|
3053 |
+
msgstr ""
|
3054 |
+
"Unikalny URL strony koszyka pozwoli wyświetlić detale zamówienia. Na "
|
3055 |
+
"przykład http://example.com/lp-checkout/%s/"
|
3056 |
+
|
3057 |
+
#: inc/admin/settings/class-lp-settings-payments.php:139
|
3058 |
+
msgid ""
|
3059 |
+
"All available payments are listed here. Drag and drop the payments to re-"
|
3060 |
+
"order."
|
3061 |
+
msgstr ""
|
3062 |
+
"Wszystkie możliwe sposoby płatności są wylistowane tutaj. Przeciągnij i "
|
3063 |
+
"upuść by zmienić kolejność."
|
3064 |
+
|
3065 |
+
#: inc/admin/settings/class-lp-settings-payments.php:142
|
3066 |
+
msgid "Payment order"
|
3067 |
+
msgstr "Kolejność płatności"
|
3068 |
+
|
3069 |
+
#: inc/admin/settings/class-lp-settings-profile.php:58
|
3070 |
+
msgid "Profile page"
|
3071 |
+
msgstr "Strona profilu"
|
3072 |
+
|
3073 |
+
#: inc/admin/settings/class-lp-settings-profile.php:64
|
3074 |
+
msgid "Add link to admin bar"
|
3075 |
+
msgstr "Dodaj link do panelu admina"
|
3076 |
+
|
3077 |
+
#: inc/admin/settings/class-lp-settings-profile.php:70
|
3078 |
+
msgid "Text link"
|
3079 |
+
msgstr "Tekst odnośnika"
|
3080 |
+
|
3081 |
+
#: inc/admin/settings/class-lp-settings-profile.php:75
|
3082 |
+
msgid "If empty, please enter the name of the page used for profile."
|
3083 |
+
msgstr "Jeżeli puste, tekst jest nazwany stroną profilową."
|
3084 |
+
|
3085 |
+
#: inc/admin/settings/class-lp-settings-profile.php:88
|
3086 |
+
msgid "Target link"
|
3087 |
+
msgstr "Cel linku"
|
3088 |
+
|
3089 |
+
#: inc/admin/settings/class-lp-settings-profile.php:93
|
3090 |
+
msgid "Open in same the window"
|
3091 |
+
msgstr "Otwórz w tym samym oknie"
|
3092 |
+
|
3093 |
+
#: inc/admin/settings/class-lp-settings-profile.php:94
|
3094 |
+
msgid "Open in a new window"
|
3095 |
+
msgstr "Otwórz w nowym oknie"
|
3096 |
+
|
3097 |
+
#: inc/admin/settings/class-lp-settings-profile.php:113
|
3098 |
+
msgid "Number of courses displayed per page in profile."
|
3099 |
+
msgstr "Liczba kursów wyświetlana na stronę w profilu."
|
3100 |
+
|
3101 |
+
#: inc/admin/settings/class-lp-settings-profile.php:116
|
3102 |
+
msgid "Enable login form"
|
3103 |
+
msgstr "Włącz formularz logowania"
|
3104 |
+
|
3105 |
+
#: inc/admin/settings/class-lp-settings-profile.php:120
|
3106 |
+
msgid "Enable login from profile if the user is not logged in."
|
3107 |
+
msgstr "Włącz formularz logowania jeżeli użytkownik nie jest zalogowany."
|
3108 |
+
|
3109 |
+
#: inc/admin/settings/class-lp-settings-profile.php:123
|
3110 |
+
msgid "Enable register form"
|
3111 |
+
msgstr "Włącz rejestrację"
|
3112 |
+
|
3113 |
+
#: inc/admin/settings/class-lp-settings-profile.php:127
|
3114 |
+
msgid "Enable register from profile if the user is not logged in."
|
3115 |
+
msgstr "Włącz formularz rejestracyjny dla niezalogowanych użytkowników."
|
3116 |
+
|
3117 |
+
#: inc/admin/settings/class-lp-settings-profile.php:135
|
3118 |
+
msgid "Sub tab slugs"
|
3119 |
+
msgstr "URL pod zakładki"
|
3120 |
+
|
3121 |
+
#: inc/admin/settings/class-lp-settings-profile.php:137
|
3122 |
+
msgid "The slugs of tabs display in profile page. Each tab should be unique."
|
3123 |
+
msgstr ""
|
3124 |
+
"URL zakładki wyświetlany na stronie profilu. Każda zakładka powinna być inna."
|
3125 |
+
|
3126 |
+
#: inc/admin/settings/class-lp-settings-profile.php:140
|
3127 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:16
|
3128 |
+
#: inc/user/class-lp-profile.php:293
|
3129 |
+
msgid "Dashboard"
|
3130 |
+
msgstr "Panel"
|
3131 |
+
|
3132 |
+
#: inc/admin/settings/class-lp-settings-profile.php:145
|
3133 |
+
#: inc/admin/settings/class-lp-settings-profile.php:153
|
3134 |
+
#: inc/admin/settings/class-lp-settings-profile.php:161
|
3135 |
+
#: inc/admin/settings/class-lp-settings-profile.php:169
|
3136 |
+
#: inc/admin/settings/class-lp-settings-profile.php:177
|
3137 |
+
#: inc/admin/settings/class-lp-settings-profile.php:196
|
3138 |
+
#: inc/admin/settings/class-lp-settings-profile.php:204
|
3139 |
+
#: inc/admin/settings/class-lp-settings-profile.php:212
|
3140 |
+
#: inc/admin/settings/class-lp-settings-profile.php:220
|
3141 |
+
#, php-format
|
3142 |
+
msgid "Example link is %s"
|
3143 |
+
msgstr "Przykładowym linkiem jest %s"
|
3144 |
+
|
3145 |
+
#: inc/admin/settings/class-lp-settings-profile.php:156
|
3146 |
+
#: inc/admin/settings/class-lp-settings-profile.php:290
|
3147 |
+
#: inc/custom-post-types/quiz.php:90 inc/custom-post-types/quiz.php:91
|
3148 |
+
#: inc/custom-post-types/quiz.php:95 inc/user/class-lp-profile.php:306
|
3149 |
+
#: templates/widgets/course-info/default.php:34
|
3150 |
+
msgid "Quizzes"
|
3151 |
+
msgstr "Testy"
|
3152 |
+
|
3153 |
+
#: inc/admin/settings/class-lp-settings-profile.php:164
|
3154 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:22
|
3155 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:29
|
3156 |
+
#: inc/custom-post-types/order.php:842 inc/custom-post-types/order.php:843
|
3157 |
+
#: inc/custom-post-types/order.php:847 inc/user/class-lp-profile.php:312
|
3158 |
+
msgid "Orders"
|
3159 |
+
msgstr "Zamówienia"
|
3160 |
+
|
3161 |
+
#: inc/admin/settings/class-lp-settings-profile.php:172
|
3162 |
+
#: inc/admin/views/meta-boxes/order/details.php:37
|
3163 |
+
#: inc/user/class-lp-profile.php:318
|
3164 |
+
msgid "Order details"
|
3165 |
+
msgstr "Detale zamówienia"
|
3166 |
+
|
3167 |
+
#: inc/admin/settings/class-lp-settings-profile.php:186
|
3168 |
+
msgid "Settings Tab"
|
3169 |
+
msgstr "Zakładka stawień"
|
3170 |
+
|
3171 |
+
#: inc/admin/settings/class-lp-settings-profile.php:188
|
3172 |
+
msgid "The slugs of sections in settings tab. Each slugs should be unique."
|
3173 |
+
msgstr "URL sekcji w ustawieniach. Każdy URL powinien być inny."
|
3174 |
+
|
3175 |
+
#: inc/admin/settings/class-lp-settings-profile.php:191
|
3176 |
+
msgid "Slug"
|
3177 |
+
msgstr "Uproszczona nazwa elementu strony"
|
3178 |
+
|
3179 |
+
#: inc/admin/settings/class-lp-settings-profile.php:199
|
3180 |
+
msgid "Basic Information"
|
3181 |
+
msgstr "Podstawowe informacje"
|
3182 |
+
|
3183 |
+
#: inc/admin/settings/class-lp-settings-profile.php:207
|
3184 |
+
#: inc/admin/settings/class-lp-settings-profile.php:228
|
3185 |
+
#: inc/user/class-lp-profile.php:348
|
3186 |
+
msgid "Avatar"
|
3187 |
+
msgstr "Avatar"
|
3188 |
+
|
3189 |
+
#: inc/admin/settings/class-lp-settings-profile.php:215
|
3190 |
+
msgid "Change Password"
|
3191 |
+
msgstr "Zmień hasło"
|
3192 |
+
|
3193 |
+
#: inc/admin/settings/class-lp-settings-profile.php:230
|
3194 |
+
msgid "User avatar settings."
|
3195 |
+
msgstr "Ustawienia avatara użytkownika."
|
3196 |
+
|
3197 |
+
#: inc/admin/settings/class-lp-settings-profile.php:233
|
3198 |
+
msgid "Enable custom avatar"
|
3199 |
+
msgstr "Umożliw edycje avatara"
|
3200 |
+
|
3201 |
+
#: inc/admin/settings/class-lp-settings-profile.php:239
|
3202 |
+
msgid "Size"
|
3203 |
+
msgstr "Wymiar"
|
3204 |
+
|
3205 |
+
#: inc/admin/settings/class-lp-settings-profile.php:253
|
3206 |
+
msgid "The height and width of avatar should be equal."
|
3207 |
+
msgstr "Wysokość i szerokość avatara muszą być równe."
|
3208 |
+
|
3209 |
+
#: inc/admin/settings/class-lp-settings-profile.php:261
|
3210 |
+
#: inc/user/class-lp-profile.php:357
|
3211 |
+
msgid "Publicity"
|
3212 |
+
msgstr "Rozgłos"
|
3213 |
+
|
3214 |
+
#: inc/admin/settings/class-lp-settings-profile.php:263
|
3215 |
+
msgid "Publicity and sharing user profile content."
|
3216 |
+
msgstr "Rozgłos i dzielenie się zawartością profilu użytkownika."
|
3217 |
+
|
3218 |
+
#: inc/admin/settings/class-lp-settings-profile.php:266
|
3219 |
+
#: templates/profile/tabs/settings/publicity.php:38
|
3220 |
+
msgid "My dashboard"
|
3221 |
+
msgstr "Mój panel"
|
3222 |
+
|
3223 |
+
#: inc/admin/settings/class-lp-settings-profile.php:270
|
3224 |
+
#: templates/profile/tabs/settings/publicity.php:43
|
3225 |
+
msgid ""
|
3226 |
+
"Public user profile content, if this option is turn off then other sections "
|
3227 |
+
"in profile also become invisible."
|
3228 |
+
msgstr ""
|
3229 |
+
"Publikacja zawartości profilu użytkownika, jeżeli ta opcja jest wyłączona, "
|
3230 |
+
"inne sekcje profilu również są niewidoczne."
|
3231 |
+
|
3232 |
+
#: inc/admin/settings/class-lp-settings-profile.php:277
|
3233 |
+
msgid "Public user profile courses."
|
3234 |
+
msgstr "Publikuj kursy profilu użytkownika."
|
3235 |
+
|
3236 |
+
#: inc/admin/settings/class-lp-settings-profile.php:277
|
3237 |
+
msgid "Allow user to turn on/off sharing profile course option"
|
3238 |
+
msgstr ""
|
3239 |
+
"Włącz opcję uruchamiania/wyłączania przez użytkowników dzielenia się kursami "
|
3240 |
+
"użytkowników"
|
3241 |
+
|
3242 |
+
#: inc/admin/settings/class-lp-settings-profile.php:294
|
3243 |
+
msgid "Public user profile quizzes."
|
3244 |
+
msgstr "Upublicznij testy użytkownika."
|
3245 |
+
|
3246 |
+
#: inc/admin/settings/class-lp-settings-profile.php:294
|
3247 |
+
msgid "Allow user to turn on/off sharing profile quizzes option"
|
3248 |
+
msgstr ""
|
3249 |
+
"Włącz opcję uruchamiania/wyłączania przez użytkowników dzielenia się testami "
|
3250 |
+
"użytkowników"
|
3251 |
+
|
3252 |
+
#: inc/admin/settings/email-groups/class-lp-settings-become-teacher-emails.php:22
|
3253 |
+
msgid "Become an Instructor"
|
3254 |
+
msgstr "Zostań instruktorem"
|
3255 |
+
|
3256 |
+
#: inc/admin/settings/email-groups/class-lp-settings-cancelled-order-emails.php:24
|
3257 |
+
msgid "Cancelled Order"
|
3258 |
+
msgstr "Anuluj zamówienie"
|
3259 |
+
|
3260 |
+
#: inc/admin/settings/email-groups/class-lp-settings-completed-order-emails.php:23
|
3261 |
+
msgid "Completed Order"
|
3262 |
+
msgstr "Zakończ zamówienie"
|
3263 |
+
|
3264 |
+
#: inc/admin/settings/email-groups/class-lp-settings-course-review-emails.php:23
|
3265 |
+
msgid "Review Course"
|
3266 |
+
msgstr "Sprawdź kurs"
|
3267 |
+
|
3268 |
+
#: inc/admin/settings/email-groups/class-lp-settings-enrolled-course-emails.php:26
|
3269 |
+
msgid "Enrolled Course"
|
3270 |
+
msgstr "Dołączenie do kursu"
|
3271 |
+
|
3272 |
+
#: inc/admin/settings/email-groups/class-lp-settings-finished-course-emails.php:26
|
3273 |
+
msgid "Finished Course"
|
3274 |
+
msgstr "Zakończone kursy"
|
3275 |
+
|
3276 |
+
#: inc/admin/settings/email-groups/class-lp-settings-new-order-emails.php:24
|
3277 |
+
msgid "New Order"
|
3278 |
+
msgstr "Nowe zamówienie"
|
3279 |
+
|
3280 |
+
#: inc/admin/settings/email-groups/class-lp-settings-processing-order-emails.php:22
|
3281 |
+
msgid "Processing Order"
|
3282 |
+
msgstr "Zamówienie oczekujące"
|
3283 |
+
|
3284 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:16
|
3285 |
+
msgid "LearnPress Add-ons"
|
3286 |
+
msgstr "Dodatki LearnPress"
|
3287 |
+
|
3288 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:30
|
3289 |
+
#, php-format
|
3290 |
+
msgid "Installed (%d)"
|
3291 |
+
msgstr "Zainstalowane (%d)"
|
3292 |
+
|
3293 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:31
|
3294 |
+
#, php-format
|
3295 |
+
msgid "Get more (%d)"
|
3296 |
+
msgstr "Zdobądź więcej (%d)"
|
3297 |
+
|
3298 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:32
|
3299 |
+
#, php-format
|
3300 |
+
msgid "Themes (%d)"
|
3301 |
+
msgstr "Szablony (%d)"
|
3302 |
+
|
3303 |
+
#: inc/admin/sub-menus/class-lp-submenu-addons.php:55
|
3304 |
+
msgid "Search..."
|
3305 |
+
msgstr "Wyszukaj..."
|
3306 |
+
|
3307 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:15
|
3308 |
+
msgid "LearnPress Settings"
|
3309 |
+
msgstr "Ustawienia LearnPress"
|
3310 |
+
|
3311 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:63
|
3312 |
+
#: inc/emails/class-lp-email-new-course.php:28
|
3313 |
+
#: inc/emails/class-lp-email-new-course.php:35
|
3314 |
+
msgid "New course"
|
3315 |
+
msgstr "Nowy kurs"
|
3316 |
+
|
3317 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:95
|
3318 |
+
msgid "Save settings"
|
3319 |
+
msgstr "Zapisz zmiany"
|
3320 |
+
|
3321 |
+
#: inc/admin/sub-menus/class-lp-submenu-settings.php:99
|
3322 |
+
msgid "Do you want to restore all settings to default?"
|
3323 |
+
msgstr "Czy chcesz przywrócić wszystkie ustawienia do fabrycznych?"
|
3324 |
+
|
3325 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:15
|
3326 |
+
msgid "Statistics"
|
3327 |
+
msgstr "Statystyki"
|
3328 |
+
|
3329 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:16
|
3330 |
+
msgid "LearnPress Statistics"
|
3331 |
+
msgstr "Statystyki LearnPress"
|
3332 |
+
|
3333 |
+
#: inc/admin/sub-menus/class-lp-submenu-statistics.php:27
|
3334 |
+
msgid "Users"
|
3335 |
+
msgstr "Użytkownicy"
|
3336 |
+
|
3337 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:13
|
3338 |
+
msgid "Tools"
|
3339 |
+
msgstr "Opcje"
|
3340 |
+
|
3341 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:14
|
3342 |
+
msgid "LearnPress Tools"
|
3343 |
+
msgstr "Narzędzia LearnPress"
|
3344 |
+
|
3345 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:20
|
3346 |
+
msgid "Template"
|
3347 |
+
msgstr "Szablon"
|
3348 |
+
|
3349 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:21
|
3350 |
+
msgid "Database"
|
3351 |
+
msgstr "Baza danych"
|
3352 |
+
|
3353 |
+
#: inc/admin/sub-menus/class-lp-submenu-tools.php:23
|
3354 |
+
msgid "Cache"
|
3355 |
+
msgstr "Pamięć podręczna"
|
3356 |
+
|
3357 |
+
#: inc/admin/views/html-admin-notice-templates.php:31
|
3358 |
+
#, php-format
|
3359 |
+
msgid ""
|
3360 |
+
"There is a new update of LearnPress. You may need to update your theme "
|
3361 |
+
"<strong>(%s)</strong> to avoid outdated template files."
|
3362 |
+
msgstr ""
|
3363 |
+
"Jest nowa wersja LeadPress. Powinieneś zaktualizować swój szablon <strong>"
|
3364 |
+
"(%s)</strong> by poprawić nieaktualne pliki."
|
3365 |
+
|
3366 |
+
#: inc/admin/views/html-admin-notice-templates.php:32
|
3367 |
+
#, php-format
|
3368 |
+
msgid ""
|
3369 |
+
"This is not a bug, don't worry. Read more about Outdated template files "
|
3370 |
+
"notice <a href=\"%s\" target=\"_blank\">here</a>."
|
3371 |
+
msgstr ""
|
3372 |
+
"To nie błąd - spokojnie ;). Poczytaj więcej o nieaktualnych plikach "
|
3373 |
+
"szablonu<a href=\"%s\" target=\"_blank\">tutaj</a>."
|
3374 |
+
|
3375 |
+
#: inc/admin/views/html-admin-notice-templates.php:40
|
3376 |
+
msgid "View list of outdated templates"
|
3377 |
+
msgstr "Zobacz listę nieaktualnych szablonów"
|
3378 |
+
|
3379 |
+
#: inc/admin/views/addons/html-loop-plugin.php:37
|
3380 |
+
#, php-format
|
3381 |
+
msgid "<cite>By %s</cite>"
|
3382 |
+
msgstr "<cite>Przez %s</cite>"
|
3383 |
+
|
3384 |
+
#: inc/admin/views/addons/html-loop-plugin.php:43
|
3385 |
+
msgid "Version: "
|
3386 |
+
msgstr "Wersja: "
|
3387 |
+
|
3388 |
+
#: inc/admin/views/addons/html-loop-theme.php:30
|
3389 |
+
msgid "$"
|
3390 |
+
msgstr "$"
|
3391 |
+
|
3392 |
+
#: inc/admin/views/addons/html-loop-theme.php:33
|
3393 |
+
msgid " sales"
|
3394 |
+
msgstr " wyprzedaż"
|
3395 |
+
|
3396 |
+
#: inc/admin/views/addons/html-plugins-installed.php:18
|
3397 |
+
msgid "There is no add-on installed."
|
3398 |
+
msgstr "Brak zainstalowanych dodatków."
|
3399 |
+
|
3400 |
+
#: inc/admin/views/addons/html-plugins-installed.php:25
|
3401 |
+
msgid "Installed add-ons"
|
3402 |
+
msgstr "Zainstalowane dodatki"
|
3403 |
+
|
3404 |
+
#: inc/admin/views/addons/html-plugins-more.php:20
|
3405 |
+
msgid "There is no available add-ons."
|
3406 |
+
msgstr "Brak dostępnych dodatków."
|
3407 |
+
|
3408 |
+
#: inc/admin/views/addons/html-plugins-more.php:28
|
3409 |
+
msgid "Free add-ons"
|
3410 |
+
msgstr "Darmowe dodatki"
|
3411 |
+
|
3412 |
+
#: inc/admin/views/addons/html-plugins-more.php:33
|
3413 |
+
msgid "Premium add-ons"
|
3414 |
+
msgstr "Dodatki premium"
|
3415 |
+
|
3416 |
+
#: inc/admin/views/addons/html-themes.php:20
|
3417 |
+
msgid "No related themes."
|
3418 |
+
msgstr "Brak powiązanych szablonów."
|
3419 |
+
|
3420 |
+
#: inc/admin/views/addons/html-themes.php:30
|
3421 |
+
msgid "Education Support"
|
3422 |
+
msgstr "Wsparcie edukacji"
|
3423 |
+
|
3424 |
+
#: inc/admin/views/addons/html-themes.php:34
|
3425 |
+
msgid "Other"
|
3426 |
+
msgstr "Inne"
|
3427 |
+
|
3428 |
+
#: inc/admin/views/course/editor.php:37
|
3429 |
+
msgid "Something went wrong! Please reload to continue editing curriculum."
|
3430 |
+
msgstr "Coś poszło nie tak! Załaduj ponownie aby edytować program."
|
3431 |
+
|
3432 |
+
#: inc/admin/views/course/modal-choose-items.php:54
|
3433 |
+
#: inc/admin/views/quiz/modal-choose-items.php:52
|
3434 |
+
#: inc/custom-post-types/course.php:214 inc/custom-post-types/quiz.php:177
|
3435 |
+
msgid "Selected items"
|
3436 |
+
msgstr "Wybrane elementy"
|
3437 |
+
|
3438 |
+
#: inc/admin/views/course/modal-choose-items.php:72
|
3439 |
+
#: inc/admin/views/quiz/modal-choose-items.php:64
|
3440 |
+
msgid "Type here to search item"
|
3441 |
+
msgstr "Wpisz tutaj, aby wyszukać element"
|
3442 |
+
|
3443 |
+
#: inc/admin/views/course/modal-choose-items.php:78
|
3444 |
+
#: inc/admin/views/quiz/modal-choose-items.php:69
|
3445 |
+
msgid "No item found."
|
3446 |
+
msgstr "Nie znaleziono elementów."
|
3447 |
+
|
3448 |
+
#: inc/admin/views/course/modal-choose-items.php:96
|
3449 |
+
#: inc/admin/views/quiz/modal-choose-items.php:88
|
3450 |
+
msgid "Adding"
|
3451 |
+
msgstr "Dodawanie"
|
3452 |
+
|
3453 |
+
#: inc/admin/views/course/new-section.php:17
|
3454 |
+
msgid "Create a new section"
|
3455 |
+
msgstr "Stwórz nową sekcję"
|
3456 |
+
|
3457 |
+
#: inc/admin/views/course/pagination.php:18
|
3458 |
+
#: inc/admin/views/quiz/pagination.php:16
|
3459 |
+
msgctxt "page-navigation"
|
3460 |
+
msgid "Previous"
|
3461 |
+
msgstr "Wstecz"
|
3462 |
+
|
3463 |
+
#: inc/admin/views/course/pagination.php:20
|
3464 |
+
#: inc/admin/views/quiz/pagination.php:18
|
3465 |
+
msgctxt "page-navigation"
|
3466 |
+
msgid "Next"
|
3467 |
+
msgstr "Dalej"
|
3468 |
+
|
3469 |
+
#: inc/admin/views/course/section-item.php:36
|
3470 |
+
msgid "Remove from course"
|
3471 |
+
msgstr "Usuń z kursu"
|
3472 |
+
|
3473 |
+
#: inc/admin/views/course/section-item.php:40
|
3474 |
+
#: inc/admin/views/quiz/question-actions.php:48
|
3475 |
+
msgid "Delete permanently"
|
3476 |
+
msgstr "Usuń całkowicie"
|
3477 |
+
|
3478 |
+
#: inc/admin/views/course/section.php:20
|
3479 |
+
msgid "Enter the name section"
|
3480 |
+
msgstr "Wpisz nazwę sekcji"
|
3481 |
+
|
3482 |
+
#: inc/admin/views/course/section.php:34
|
3483 |
+
msgid "Describe about this section"
|
3484 |
+
msgstr ""
|
3485 |
+
|
3486 |
+
#: inc/admin/views/course/section.php:52
|
3487 |
+
msgid "Select items"
|
3488 |
+
msgstr "Wybierz elementy"
|
3489 |
+
|
3490 |
+
#: inc/admin/views/course/section.php:56
|
3491 |
+
msgid "Are you sure?"
|
3492 |
+
msgstr "Jesteś pewien?"
|
3493 |
+
|
3494 |
+
#: inc/admin/views/dashboard/plugin-status/html-no-data.php:4
|
3495 |
+
msgid "No results found"
|
3496 |
+
msgstr "Brak znalezionych wyników"
|
3497 |
+
|
3498 |
+
#: inc/admin/views/dashboard/plugin-status/html-results.php:17
|
3499 |
+
msgid "Downloaded"
|
3500 |
+
msgstr "Pobrano"
|
3501 |
+
|
3502 |
+
#: inc/admin/views/dashboard/plugin-status/html-results.php:18
|
3503 |
+
msgid "Active Installed"
|
3504 |
+
msgstr "Aktywuj zainstalowane"
|
3505 |
+
|
3506 |
+
#: inc/admin/views/dashboard/plugin-status/html-results.php:32
|
3507 |
+
msgid "Updated"
|
3508 |
+
msgstr "Zaktualizowano"
|
3509 |
+
|
3510 |
+
#: inc/admin/views/dashboard/plugin-status/html-results.php:33
|
3511 |
+
msgid "Current Version"
|
3512 |
+
msgstr "Obecna wersja"
|
3513 |
+
|
3514 |
+
#: inc/admin/views/meta-boxes/tabs.php:93
|
3515 |
+
msgid "Initializing..."
|
3516 |
+
msgstr "Inicjowanie..."
|
3517 |
+
|
3518 |
+
#: inc/admin/views/meta-boxes/course/assigned.php:27
|
3519 |
+
#: inc/admin/views/meta-boxes/quiz/assigned.php:49
|
3520 |
+
#: inc/custom-post-types/lesson.php:353 inc/custom-post-types/question.php:362
|
3521 |
+
#: inc/custom-post-types/quiz.php:374
|
3522 |
+
msgid "Not assigned yet"
|
3523 |
+
msgstr "Jeszcze nie przypisano"
|
3524 |
+
|
3525 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:25
|
3526 |
+
msgid "Your course is pending for reviewing"
|
3527 |
+
msgstr "Kurs oczekuje na sprawdzenie"
|
3528 |
+
|
3529 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:27
|
3530 |
+
msgid ""
|
3531 |
+
"Your course will not be submitted for reviewing until you check 'Submit for "
|
3532 |
+
"Review'"
|
3533 |
+
msgstr ""
|
3534 |
+
"Twój kurs nie zostanie przesłany do sprawdzenia dopóki nie zaznaczysz 'Zgłoś "
|
3535 |
+
"do recenzji'"
|
3536 |
+
|
3537 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:31
|
3538 |
+
msgid "Submit for Review"
|
3539 |
+
msgstr "Wyślij do zatwierdzenia"
|
3540 |
+
|
3541 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:34
|
3542 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:42
|
3543 |
+
msgid "Message to Reviewer"
|
3544 |
+
msgstr "Wiadomość do recenzenta"
|
3545 |
+
|
3546 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:40
|
3547 |
+
msgid ""
|
3548 |
+
"Warning! Your course will become Pending Review for admins to review before "
|
3549 |
+
"it can be published when you update."
|
3550 |
+
msgstr ""
|
3551 |
+
"Uwaga! Twój kurs będzie udostępniony do przeglądu dla administratorów przed "
|
3552 |
+
"uch opublikowaniem."
|
3553 |
+
|
3554 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:48
|
3555 |
+
msgid "This course is pending for reviewing"
|
3556 |
+
msgstr "Kurs oczekuje na sprawdzenie"
|
3557 |
+
|
3558 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:51
|
3559 |
+
msgid "Message to Instructor"
|
3560 |
+
msgstr "Wiadomość do nauczyciela"
|
3561 |
+
|
3562 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:7
|
3563 |
+
#, php-format
|
3564 |
+
msgid "%d review"
|
3565 |
+
msgid_plural "%d reviews"
|
3566 |
+
msgstr[0] "%d recenzja"
|
3567 |
+
msgstr[1] "%d recenzje"
|
3568 |
+
msgstr[2] "%d recenzji"
|
3569 |
+
|
3570 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:9
|
3571 |
+
msgid "This course has not got any reviews yet"
|
3572 |
+
msgstr "Kurs nie uzyskał jeszcze żadnych opinii"
|
3573 |
+
|
3574 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
3575 |
+
msgid "Rejected"
|
3576 |
+
msgstr "Odrzucone"
|
3577 |
+
|
3578 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
3579 |
+
msgid "Submit for review"
|
3580 |
+
msgstr "Zatwierdź, aby ocenić"
|
3581 |
+
|
3582 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:40
|
3583 |
+
msgid "View less"
|
3584 |
+
msgstr "Zobacz mniej"
|
3585 |
+
|
3586 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:42
|
3587 |
+
msgid "View all"
|
3588 |
+
msgstr "Pokaż wszystko"
|
3589 |
+
|
3590 |
+
#: inc/admin/views/meta-boxes/order/actions.php:19
|
3591 |
+
#: inc/admin/views/quiz/editor.php:28
|
3592 |
+
#: inc/admin/views/tools/course/html-course.php:28
|
3593 |
+
#: inc/admin/views/tools/course/html-user.php:28
|
3594 |
+
msgid "Actions"
|
3595 |
+
msgstr "Akcje"
|
3596 |
+
|
3597 |
+
#: inc/admin/views/meta-boxes/order/actions.php:20
|
3598 |
+
msgid "Trigger action of current order status"
|
3599 |
+
msgstr "Czynność wyzwalająca status obecnego zamówienia"
|
3600 |
+
|
3601 |
+
#: inc/admin/views/meta-boxes/order/actions.php:29
|
3602 |
+
msgid "Delete Permanently"
|
3603 |
+
msgstr "Usuń trwale"
|
3604 |
+
|
3605 |
+
#: inc/admin/views/meta-boxes/order/actions.php:31
|
3606 |
+
msgid "Move to Trash"
|
3607 |
+
msgstr "Przenieś do kosza"
|
3608 |
+
|
3609 |
+
#: inc/admin/views/meta-boxes/order/details.php:26
|
3610 |
+
#, php-format
|
3611 |
+
msgid "Order %s"
|
3612 |
+
msgstr "Zamówienie %s"
|
3613 |
+
|
3614 |
+
#: inc/admin/views/meta-boxes/order/details.php:39
|
3615 |
+
#: inc/admin/views/statistics/orders.php:46 inc/custom-post-types/order.php:712
|
3616 |
+
#: templates/checkout/order-received.php:35
|
3617 |
+
#: templates/profile/tabs/courses.php:33 templates/profile/tabs/quizzes.php:38
|
3618 |
+
#: templates/profile/tabs/courses/purchased.php:39
|
3619 |
+
#: templates/profile/tabs/orders/list.php:33
|
3620 |
+
msgid "Date"
|
3621 |
+
msgstr "Data"
|
3622 |
+
|
3623 |
+
#: inc/admin/views/meta-boxes/order/details.php:73
|
3624 |
+
msgid "Customers"
|
3625 |
+
msgstr "Klienci"
|
3626 |
+
|
3627 |
+
#: inc/admin/views/meta-boxes/order/details.php:79
|
3628 |
+
#: inc/admin/views/meta-boxes/order/details.php:100
|
3629 |
+
#: inc/admin/views/meta-boxes/order/details.php:207
|
3630 |
+
msgid "Add multi users"
|
3631 |
+
msgstr "Dodaj multi użytkowników"
|
3632 |
+
|
3633 |
+
#: inc/admin/views/meta-boxes/order/details.php:82
|
3634 |
+
#: inc/admin/views/meta-boxes/order/details.php:193
|
3635 |
+
#: inc/admin/views/meta-boxes/order/details.php:202
|
3636 |
+
msgid "Customer"
|
3637 |
+
msgstr "Klient"
|
3638 |
+
|
3639 |
+
#: inc/admin/views/meta-boxes/order/details.php:93
|
3640 |
+
#: inc/admin/views/meta-boxes/order/details.php:198
|
3641 |
+
msgid "Change"
|
3642 |
+
msgstr "Zmień"
|
3643 |
+
|
3644 |
+
#: inc/admin/views/meta-boxes/order/details.php:98
|
3645 |
+
msgid "- Or -"
|
3646 |
+
msgstr "- Lub -"
|
3647 |
+
|
3648 |
+
#: inc/admin/views/meta-boxes/order/details.php:105
|
3649 |
+
msgid ""
|
3650 |
+
"In order to change the order user, please change the order status to "
|
3651 |
+
"'Pending'."
|
3652 |
+
msgstr "W celu zmiany zlecenia, zmień status na 'Oczekujący' lub 'Zakończony'."
|
3653 |
+
|
3654 |
+
#: inc/admin/views/meta-boxes/order/details.php:114
|
3655 |
+
#: templates/order/recover-form.php:22
|
3656 |
+
msgid "Order key"
|
3657 |
+
msgstr "Klucz zamówienia"
|
3658 |
+
|
3659 |
+
#: inc/admin/views/meta-boxes/order/details.php:118
|
3660 |
+
msgid "Order Items"
|
3661 |
+
msgstr "Zamów przedmiot"
|
3662 |
+
|
3663 |
+
#: inc/admin/views/meta-boxes/order/details.php:123
|
3664 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:434
|
3665 |
+
msgid "Item"
|
3666 |
+
msgstr "Pozycja"
|
3667 |
+
|
3668 |
+
#: inc/admin/views/meta-boxes/order/details.php:124
|
3669 |
+
msgid "Cost"
|
3670 |
+
msgstr "Koszt"
|
3671 |
+
|
3672 |
+
#: inc/admin/views/meta-boxes/order/details.php:125
|
3673 |
+
#: templates/emails/order-items-table.php:58
|
3674 |
+
msgid "Quantity"
|
3675 |
+
msgstr "Liczba sztuk"
|
3676 |
+
|
3677 |
+
#: inc/admin/views/meta-boxes/order/details.php:126
|
3678 |
+
msgid "Amount"
|
3679 |
+
msgstr "Kwota"
|
3680 |
+
|
3681 |
+
#: inc/admin/views/meta-boxes/order/details.php:136
|
3682 |
+
msgid "No order items"
|
3683 |
+
msgstr "Brak zamówionych elementów"
|
3684 |
+
|
3685 |
+
#: inc/admin/views/meta-boxes/order/details.php:142
|
3686 |
+
msgid "Sub Total"
|
3687 |
+
msgstr "Całość"
|
3688 |
+
|
3689 |
+
#: inc/admin/views/meta-boxes/order/details.php:156
|
3690 |
+
#: inc/custom-post-types/order.php:713 templates/checkout/order-received.php:41
|
3691 |
+
#: templates/checkout/review-order.php:33
|
3692 |
+
#: templates/checkout/review-order.php:162
|
3693 |
+
#: templates/emails/order-items-table.php:87
|
3694 |
+
#: templates/emails/plain/order-items-table.php:60
|
3695 |
+
#: templates/order/order-details.php:29 templates/order/order-details.php:85
|
3696 |
+
#: templates/profile/tabs/orders/list.php:35
|
3697 |
+
msgid "Total"
|
3698 |
+
msgstr "Suma"
|
3699 |
+
|
3700 |
+
#: inc/admin/views/meta-boxes/order/details.php:172
|
3701 |
+
msgid "Add Item"
|
3702 |
+
msgstr "Dodaj pozycję"
|
3703 |
+
|
3704 |
+
#: inc/admin/views/meta-boxes/order/details.php:175
|
3705 |
+
msgid ""
|
3706 |
+
"In order to change the order item, please change the order status to "
|
3707 |
+
"'Pending'."
|
3708 |
+
msgstr ""
|
3709 |
+
"W celu zmiany zlecenia elementów, użytkownik zmienia status na "
|
3710 |
+
"\"Oczekujący\"."
|
3711 |
+
|
3712 |
+
#: inc/admin/views/meta-boxes/order/details.php:178
|
3713 |
+
msgid "Calculate Total"
|
3714 |
+
msgstr "Wylicz sumę"
|
3715 |
+
|
3716 |
+
#: inc/admin/views/meta-boxes/order/details.php:186
|
3717 |
+
msgid "Customer Note"
|
3718 |
+
msgstr "Notatka kupującego"
|
3719 |
+
|
3720 |
+
#: inc/admin/views/meta-boxes/order/details.php:233
|
3721 |
+
msgid "Type here to search the course"
|
3722 |
+
msgstr "Wpisz tutaj, aby wyszukać kurs"
|
3723 |
+
|
3724 |
+
#: inc/admin/views/meta-boxes/order/details.php:236
|
3725 |
+
msgid "No results"
|
3726 |
+
msgstr "Brak wyników"
|
3727 |
+
|
3728 |
+
#: inc/admin/views/meta-boxes/order/order-item.php:17
|
3729 |
+
msgid "delete"
|
3730 |
+
msgstr "usuń"
|
3731 |
+
|
3732 |
+
#: inc/admin/views/question/actions.php:12
|
3733 |
+
msgid "Question Answers"
|
3734 |
+
msgstr "Odpowiedzi na pytania"
|
3735 |
+
|
3736 |
+
#: inc/admin/views/question/answer.php:18
|
3737 |
+
#: inc/admin/views/quiz/question-answer.php:19
|
3738 |
+
msgid "Answer Text"
|
3739 |
+
msgstr "Tekst odpowiedzi"
|
3740 |
+
|
3741 |
+
#: inc/admin/views/question/answer.php:19
|
3742 |
+
msgid "Correct answer"
|
3743 |
+
msgstr "Poprawna odpowiedź"
|
3744 |
+
|
3745 |
+
#: inc/admin/views/question/answer.php:35
|
3746 |
+
#: inc/admin/views/quiz/question-answer.php:34
|
3747 |
+
msgid "Add option"
|
3748 |
+
msgstr "Dodaj opcję"
|
3749 |
+
|
3750 |
+
#: inc/admin/views/quiz/editor.php:16
|
3751 |
+
#: inc/admin/views/quiz/modal-choose-items.php:55
|
3752 |
+
#: inc/custom-post-types/question.php:170 inc/custom-post-types/quiz.php:337
|
3753 |
+
#: templates/content-quiz/intro.php:36
|
3754 |
+
msgid "Questions"
|
3755 |
+
msgstr "Pytania"
|
3756 |
+
|
3757 |
+
#: inc/admin/views/quiz/editor.php:27 inc/admin/views/settings/payments.php:24
|
3758 |
+
#: inc/custom-post-types/question.php:321
|
3759 |
+
msgid "Type"
|
3760 |
+
msgstr "Typ"
|
3761 |
+
|
3762 |
+
#: inc/admin/views/quiz/editor.php:42
|
3763 |
+
msgid " Create a new question"
|
3764 |
+
msgstr " Stwórz nową sekcję"
|
3765 |
+
|
3766 |
+
#: inc/admin/views/quiz/editor.php:49
|
3767 |
+
msgid "Add as New"
|
3768 |
+
msgstr "Dodaj jako nowe"
|
3769 |
+
|
3770 |
+
#: inc/admin/views/quiz/editor.php:59
|
3771 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:38
|
3772 |
+
#: inc/libraries/meta-box/inc/fields/select.php:87
|
3773 |
+
msgid "Select"
|
3774 |
+
msgstr "Jednokrotnego wyboru"
|
3775 |
+
|
3776 |
+
#: inc/admin/views/quiz/editor.php:85
|
3777 |
+
msgid "Something went wrong! Please reload to continue editing quiz questions."
|
3778 |
+
msgstr "Coś poszło nie tak! Załaduj ponownie, aby edytować pytania testowe."
|
3779 |
+
|
3780 |
+
#: inc/admin/views/quiz/question-actions.php:44
|
3781 |
+
msgid "Remove from quiz"
|
3782 |
+
msgstr "Usuń z testu"
|
3783 |
+
|
3784 |
+
#: inc/admin/views/quiz/question-answer.php:20
|
3785 |
+
msgid "Is Correct?"
|
3786 |
+
msgstr "Jest poprawne?"
|
3787 |
+
|
3788 |
+
#: inc/admin/views/quiz/question-meta.php:18
|
3789 |
+
#: inc/question/class-lp-question.php:412
|
3790 |
+
msgid "Question Content"
|
3791 |
+
msgstr "Treść pytania"
|
3792 |
+
|
3793 |
+
#: inc/admin/views/quiz/question-meta.php:30
|
3794 |
+
#: inc/custom-post-types/question.php:281
|
3795 |
+
msgid "Mark for this question"
|
3796 |
+
msgstr "Ocena tego pytania"
|
3797 |
+
|
3798 |
+
#: inc/admin/views/quiz/question-meta.php:36
|
3799 |
+
#: inc/custom-post-types/question.php:285
|
3800 |
+
msgid "Mark for choosing the right answer."
|
3801 |
+
msgstr "Ocena za wybranie odpowiedniej odpowiedzi."
|
3802 |
+
|
3803 |
+
#: inc/admin/views/quiz/question-meta.php:42
|
3804 |
+
#: inc/custom-post-types/question.php:290
|
3805 |
+
msgid "Question Explanation"
|
3806 |
+
msgstr "Wytłumaczenie pytania"
|
3807 |
+
|
3808 |
+
#: inc/admin/views/quiz/question-meta.php:50
|
3809 |
+
#: inc/custom-post-types/question.php:293
|
3810 |
+
msgid ""
|
3811 |
+
"Explain why an option is true and other is false. The text will be shown "
|
3812 |
+
"when user click on 'Check answer' button."
|
3813 |
+
msgstr ""
|
3814 |
+
"Wyjaśnij dlaczego opcja jest poprawna lub błędna. Tekst zostanie pokazany "
|
3815 |
+
"kiedy użytkownik kliknie przycisk \"Sprawdź odpowiedź\"."
|
3816 |
+
|
3817 |
+
#: inc/admin/views/quiz/question-meta.php:56
|
3818 |
+
#: inc/custom-post-types/question.php:297
|
3819 |
+
msgid "Question Hint"
|
3820 |
+
msgstr "Podpowiedź do pytania"
|
3821 |
+
|
3822 |
+
#: inc/admin/views/quiz/question-meta.php:63
|
3823 |
+
#: inc/custom-post-types/question.php:300
|
3824 |
+
msgid ""
|
3825 |
+
"Instruction for user to select the right answer. The text will be shown when "
|
3826 |
+
"users click the 'Hint' button."
|
3827 |
+
msgstr ""
|
3828 |
+
"Instrukcja dla użytkownika jak dać poprawną odpowiedź. Tekst zostanie "
|
3829 |
+
"pokazany kiedy użytkownik kliknie \"Sprawdź\"."
|
3830 |
+
|
3831 |
+
#: inc/admin/views/settings/payments.php:17
|
3832 |
+
#: inc/admin/views/settings/emails/become-a-teacher-request.php:25
|
3833 |
+
#: inc/admin/views/setup/setup-paypal.php:17
|
3834 |
+
#: inc/admin/views/setup/setup-stripe.php:3
|
3835 |
+
#: inc/emails/class-lp-email-new-course.php:131
|
3836 |
+
#: inc/emails/class-lp-email-published-course.php:122
|
3837 |
+
#: inc/emails/class-lp-email-rejected-course.php:119
|
3838 |
+
#: inc/emails/class-lp-email-updated-course.php:164
|
3839 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:136
|
3840 |
+
#: inc/emails/class-lp-email-user-order-completed.php:137
|
3841 |
+
#: inc/emails/class-lp-email.php:982
|
3842 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:131
|
3843 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:133
|
3844 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:133
|
3845 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:498
|
3846 |
+
msgid "Enable"
|
3847 |
+
msgstr "Włącz"
|
3848 |
+
|
3849 |
+
#: inc/admin/views/settings/payments.php:27
|
3850 |
+
msgid "Basic"
|
3851 |
+
msgstr "Podstawowa"
|
3852 |
+
|
3853 |
+
#: inc/admin/views/settings/payments.php:28
|
3854 |
+
msgid "Security"
|
3855 |
+
msgstr "Ochrona"
|
3856 |
+
|
3857 |
+
#: inc/admin/views/settings/payments.php:33
|
3858 |
+
msgid "Email Address"
|
3859 |
+
msgstr "Adres email"
|
3860 |
+
|
3861 |
+
#: inc/admin/views/settings/payments.php:42
|
3862 |
+
msgid "API Username"
|
3863 |
+
msgstr "API Username"
|
3864 |
+
|
3865 |
+
#: inc/admin/views/settings/payments.php:49
|
3866 |
+
msgid "API Password"
|
3867 |
+
msgstr "API Password"
|
3868 |
+
|
3869 |
+
#: inc/admin/views/settings/payments.php:56
|
3870 |
+
msgid "API Signature"
|
3871 |
+
msgstr "API Signature"
|
3872 |
+
|
3873 |
+
#: inc/admin/views/settings/payments.php:68
|
3874 |
+
#: inc/admin/views/setup/setup-paypal.php:34
|
3875 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:524
|
3876 |
+
msgid "Sandbox Mode"
|
3877 |
+
msgstr "Sandbox Mode"
|
3878 |
+
|
3879 |
+
#: inc/admin/views/settings/payments.php:76
|
3880 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:540
|
3881 |
+
msgid "Sandbox Email Address"
|
3882 |
+
msgstr "Sandbox Email Address"
|
3883 |
+
|
3884 |
+
#: inc/admin/views/settings/payments.php:85
|
3885 |
+
msgid "Sandbox API Username"
|
3886 |
+
msgstr "Sandbox API Username"
|
3887 |
+
|
3888 |
+
#: inc/admin/views/settings/payments.php:93
|
3889 |
+
msgid "Sandbox API Password"
|
3890 |
+
msgstr "Sandbox API Password"
|
3891 |
+
|
3892 |
+
#: inc/admin/views/settings/payments.php:101
|
3893 |
+
msgid "Sandbox API Signature"
|
3894 |
+
msgstr "Sandbox API Signature"
|
3895 |
+
|
3896 |
+
#: inc/admin/views/settings/setting-field.php:96
|
3897 |
+
msgid ""
|
3898 |
+
"The settings of this image size have been disabled because its values are "
|
3899 |
+
"being overwritten by a filter."
|
3900 |
+
msgstr ""
|
3901 |
+
"Ustawienia rozmiaru tej grafiki zostały wyłączone ponieważ wartości zostały "
|
3902 |
+
"nadpisane przez filter."
|
3903 |
+
|
3904 |
+
#: inc/admin/views/settings/setting-field.php:108
|
3905 |
+
msgid "Hard Crop?"
|
3906 |
+
msgstr "Przyciąć?"
|
3907 |
+
|
3908 |
+
#: inc/admin/views/settings/emails/become-a-teacher-request.php:29
|
3909 |
+
msgid "Send notification when a user signs up to be a teacher"
|
3910 |
+
msgstr "Wyślij powiadomienie kiedy użytkownik chce zostać nauczycielem"
|
3911 |
+
|
3912 |
+
#: inc/admin/views/settings/emails/become-a-teacher-request.php:33
|
3913 |
+
#: inc/emails/class-lp-email-new-course.php:154
|
3914 |
+
#: inc/emails/class-lp-email-published-course.php:128
|
3915 |
+
#: inc/emails/class-lp-email-rejected-course.php:125
|
3916 |
+
#: inc/emails/class-lp-email-updated-course.php:170
|
3917 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:142
|
3918 |
+
#: inc/emails/class-lp-email-user-order-completed.php:143
|
3919 |
+
#: inc/emails/class-lp-email.php:1005
|
3920 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:137
|
3921 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:139
|
3922 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:139
|
3923 |
+
msgid "Subject"
|
3924 |
+
msgstr "Temat"
|
3925 |
+
|
3926 |
+
#: inc/admin/views/settings/emails/become-a-teacher-request.php:37
|
3927 |
+
msgid "Email subject"
|
3928 |
+
msgstr "Temat e-mail"
|
3929 |
+
|
3930 |
+
#: inc/admin/views/settings/emails/become-a-teacher-request.php:41
|
3931 |
+
msgid "Message"
|
3932 |
+
msgstr "Wiadomość 1"
|
3933 |
+
|
3934 |
+
#: inc/admin/views/settings/emails/email-template.php:6
|
3935 |
+
#: inc/admin/views/settings/emails/_email-template.php:3
|
3936 |
+
#: inc/emails/class-lp-email-new-course.php:188
|
3937 |
+
#: inc/emails/class-lp-email-published-course.php:162
|
3938 |
+
#: inc/emails/class-lp-email-rejected-course.php:159
|
3939 |
+
#: inc/emails/class-lp-email-updated-course.php:204
|
3940 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:176
|
3941 |
+
#: inc/emails/class-lp-email-user-order-completed.php:177
|
3942 |
+
#: inc/emails/class-lp-email.php:1039
|
3943 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:171
|
3944 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:173
|
3945 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:173
|
3946 |
+
msgid "Email content"
|
3947 |
+
msgstr "Zawartość wiadomości"
|
3948 |
+
|
3949 |
+
#: inc/admin/views/settings/emails/email-template.php:13
|
3950 |
+
#: inc/admin/views/settings/emails/_email-template.php:11
|
3951 |
+
msgid "HTML template"
|
3952 |
+
msgstr "Szablon HTML"
|
3953 |
+
|
3954 |
+
#: inc/admin/views/settings/emails/email-template.php:14
|
3955 |
+
#: inc/admin/views/settings/emails/_email-template.php:12
|
3956 |
+
msgid "Plain text template"
|
3957 |
+
msgstr "Szablon zwykłego tekstu"
|
3958 |
+
|
3959 |
+
#: inc/admin/views/settings/emails/email-template.php:87
|
3960 |
+
#: inc/admin/views/settings/emails/_email-template.php:78
|
3961 |
+
#, php-format
|
3962 |
+
msgid ""
|
3963 |
+
"To override and edit this email template copy <code>%s</code> to your theme "
|
3964 |
+
"folder: <code>%s</code>."
|
3965 |
+
msgstr ""
|
3966 |
+
"Aby nadpisać i edytować szablon skopiuj <code>%s</code> do katalogu motywu: "
|
3967 |
+
"<code>%s</code>."
|
3968 |
+
|
3969 |
+
#: inc/admin/views/settings/emails/general.php:15
|
3970 |
+
msgid "Email Options"
|
3971 |
+
msgstr "Opcje e-mail"
|
3972 |
+
|
3973 |
+
#: inc/admin/views/settings/emails/general.php:23
|
3974 |
+
msgid "From Name"
|
3975 |
+
msgstr "Imię i nazwisko nadawcy"
|
3976 |
+
|
3977 |
+
#: inc/admin/views/settings/emails/general.php:29
|
3978 |
+
msgid "From Email"
|
3979 |
+
msgstr "Od (e-mail)"
|
3980 |
+
|
3981 |
+
#: inc/admin/views/settings/emails/general.php:36
|
3982 |
+
msgid "Email Template"
|
3983 |
+
msgstr "Szablon Email"
|
3984 |
+
|
3985 |
+
#: inc/admin/views/settings/emails/general.php:50
|
3986 |
+
msgid "The texts display in the bottom of email"
|
3987 |
+
msgstr "Tekst wyświetlany na dole emaila"
|
3988 |
+
|
3989 |
+
#: inc/admin/views/settings/emails/_email-template.php:36
|
3990 |
+
#, php-format
|
3991 |
+
msgid ""
|
3992 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
3993 |
+
"%s</code>. Please open the file in an editor program to edit"
|
3994 |
+
msgstr ""
|
3995 |
+
"Ten szablon został nadpisany przez Twój szablon i może zostać znaleziony: "
|
3996 |
+
"<code>%s</code>. Proszę otwórz plik i skoryguj"
|
3997 |
+
|
3998 |
+
#: inc/admin/views/settings/emails/_email-template.php:63
|
3999 |
+
#, php-format
|
4000 |
+
msgid ""
|
4001 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
4002 |
+
"%s</code>."
|
4003 |
+
msgstr ""
|
4004 |
+
"Ten szablon jest nadpisywany przez twój motyw i można go znaleźć tu: <code>"
|
4005 |
+
"%s</code>."
|
4006 |
+
|
4007 |
+
#: inc/admin/views/settings/emails/_email-template.php:68
|
4008 |
+
msgid "Delete template file"
|
4009 |
+
msgstr "Skasuj szablon"
|
4010 |
+
|
4011 |
+
#: inc/admin/views/settings/emails/_email-template.php:83
|
4012 |
+
msgid "Copy file to theme"
|
4013 |
+
msgstr "Skopiuj plik do katalogu motywu"
|
4014 |
+
|
4015 |
+
#: inc/admin/views/settings/emails/_email-template.php:89
|
4016 |
+
msgid "File not found."
|
4017 |
+
msgstr "Nie znaleziono pliku."
|
4018 |
+
|
4019 |
+
#: inc/admin/views/settings/fields/image-size.php:18
|
4020 |
+
msgid "Crop?"
|
4021 |
+
msgstr "Przyciąć?"
|
4022 |
+
|
4023 |
+
#: inc/admin/views/setup/content.php:47
|
4024 |
+
msgid "Skip to prev step"
|
4025 |
+
msgstr "Przeskocz do poprzedniego etapu"
|
4026 |
+
|
4027 |
+
#: inc/admin/views/setup/content.php:60
|
4028 |
+
msgid "Skip to next step"
|
4029 |
+
msgstr "Przeskocz do następnego etapu"
|
4030 |
+
|
4031 |
+
#: inc/admin/views/setup/content.php:67
|
4032 |
+
#: inc/admin/views/setup/steps/finish.php:29
|
4033 |
+
msgid "Back to Dashboard"
|
4034 |
+
msgstr "Wróć do tablicy"
|
4035 |
+
|
4036 |
+
#: inc/admin/views/setup/content.php:75
|
4037 |
+
#: inc/admin/views/updates/update-screen.php:46
|
4038 |
+
#: inc/custom-post-types/course.php:213 inc/custom-post-types/quiz.php:176
|
4039 |
+
#: templates/checkout/form.php:89 templates/checkout/payment.php:132
|
4040 |
+
msgid "Back"
|
4041 |
+
msgstr "Wróć"
|
4042 |
+
|
4043 |
+
#: inc/admin/views/setup/content.php:86
|
4044 |
+
#: templates/content-quiz/buttons/continue.php:26
|
4045 |
+
#: templates/single-course/buttons/continue.php:23
|
4046 |
+
msgid "Continue"
|
4047 |
+
msgstr "Kontynuuj"
|
4048 |
+
|
4049 |
+
#: inc/admin/views/setup/footer.php:15
|
4050 |
+
#, php-format
|
4051 |
+
msgid "LearnPress %s. Designed by @ThimPress."
|
4052 |
+
msgstr "LearnPress %s. Stworzone przez @ThimPress."
|
4053 |
+
|
4054 |
+
#: inc/admin/views/setup/header.php:17
|
4055 |
+
msgid "LearnPress › Setup Wizard"
|
4056 |
+
msgstr "LearnPress › Przewodnik instalacji"
|
4057 |
+
|
4058 |
+
#: inc/admin/views/setup/notice-setup.php:2
|
4059 |
+
msgid "<strong>LearnPress has just successfully installed.</strong>"
|
4060 |
+
msgstr "<strong>LearnPress został zainstalowany.</strong>"
|
4061 |
+
|
4062 |
+
#: inc/admin/views/setup/notice-setup.php:6
|
4063 |
+
msgid "Skip"
|
4064 |
+
msgstr "Przeskocz"
|
4065 |
+
|
4066 |
+
#: inc/admin/views/setup/setup-paypal.php:24
|
4067 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:504
|
4068 |
+
msgid "Paypal Email"
|
4069 |
+
msgstr "Email Paypal"
|
4070 |
+
|
4071 |
+
#: inc/admin/views/setup/setup-paypal.php:29
|
4072 |
+
msgid "Your Paypal email in live mode."
|
4073 |
+
msgstr "Twój email Paypal w trybie na żywo."
|
4074 |
+
|
4075 |
+
#: inc/admin/views/setup/setup-paypal.php:39
|
4076 |
+
#, php-format
|
4077 |
+
msgid ""
|
4078 |
+
"For testing purpose with Paypal sandbox mode. Create an account <a "
|
4079 |
+
"href=\"%s\">here</a>!"
|
4080 |
+
msgstr ""
|
4081 |
+
"Dla testy możesz użyć trybu Paypal sandbox. Stwórz konto <a href=\"%s\">"
|
4082 |
+
"tutaj</a>!"
|
4083 |
+
|
4084 |
+
#: inc/admin/views/setup/setup-paypal.php:44
|
4085 |
+
msgid "Paypal Sandbox Email"
|
4086 |
+
msgstr "Paypal Sandbox Email"
|
4087 |
+
|
4088 |
+
#: inc/admin/views/setup/setup-paypal.php:49
|
4089 |
+
msgid "Your Paypal email in sandbox mode."
|
4090 |
+
msgstr "Twój email Paypal w trybie sandbox."
|
4091 |
+
|
4092 |
+
#: inc/admin/views/setup/setup-stripe.php:7
|
4093 |
+
#: inc/widgets/course-attributes/course-attributes.php:11
|
4094 |
+
#: inc/widgets/course-filters/course-filters.php:11
|
4095 |
+
#: inc/widgets/course-info/course-info.php:46
|
4096 |
+
#: inc/widgets/course-progress/course-progress.php:46
|
4097 |
+
#: inc/widgets/featured-courses/featured-courses.php:45
|
4098 |
+
#: inc/widgets/popular-courses/popular-courses.php:46
|
4099 |
+
#: inc/widgets/recent-courses/recent-courses.php:46
|
4100 |
+
msgid "Title"
|
4101 |
+
msgstr "Tytuł"
|
4102 |
+
|
4103 |
+
#: inc/admin/views/setup/setup-stripe.php:15
|
4104 |
+
msgid "Live secret key"
|
4105 |
+
msgstr "Klucz live secret"
|
4106 |
+
|
4107 |
+
#: inc/admin/views/setup/setup-stripe.php:19
|
4108 |
+
msgid "Live publish key"
|
4109 |
+
msgstr "Klucz live publish"
|
4110 |
+
|
4111 |
+
#: inc/admin/views/setup/setup-stripe.php:24
|
4112 |
+
msgid "Test mode"
|
4113 |
+
msgstr "Tryb testowy"
|
4114 |
+
|
4115 |
+
#: inc/admin/views/setup/setup-stripe.php:28
|
4116 |
+
msgid "Test secret key"
|
4117 |
+
msgstr "Przetestuj Secret Key"
|
4118 |
+
|
4119 |
+
#: inc/admin/views/setup/setup-stripe.php:32
|
4120 |
+
msgid "Test publish key"
|
4121 |
+
msgstr "Przetestyj Publish Key"
|
4122 |
+
|
4123 |
+
#: inc/admin/views/setup/steps/emails.php:12
|
4124 |
+
msgid "Emails system"
|
4125 |
+
msgstr "System emaili"
|
4126 |
+
|
4127 |
+
#: inc/admin/views/setup/steps/emails.php:14
|
4128 |
+
msgid "Emails are sent to users or teachers for each particular action."
|
4129 |
+
msgstr "Emaile są wysyłane do użytkownika lub nauczyciela po każdej akcji."
|
4130 |
+
|
4131 |
+
#: inc/admin/views/setup/steps/emails.php:15
|
4132 |
+
msgid "You can enable/disable each email in LearnPress settings later."
|
4133 |
+
msgstr ""
|
4134 |
+
"Możesz włączyć/wyłączyć wysyłanie emaili w ustawieniach LearnPress później."
|
4135 |
+
|
4136 |
+
#: inc/admin/views/setup/steps/emails.php:16
|
4137 |
+
msgid "But in right now, you can enable all emails to see how emails work."
|
4138 |
+
msgstr "Ale teraz, możesz włączyć wszystkie emaile by sprawdzić jak to działa."
|
4139 |
+
|
4140 |
+
#: inc/admin/views/setup/steps/emails.php:17
|
4141 |
+
msgid "You can skip to next step if you don’t want to."
|
4142 |
+
msgstr "Jeżeli chcesz, to możesz przeskoczyć do kolejnego etapu."
|
4143 |
+
|
4144 |
+
#: inc/admin/views/setup/steps/emails.php:22
|
4145 |
+
msgid "Enable emails"
|
4146 |
+
msgstr "Włącz emaile"
|
4147 |
+
|
4148 |
+
#: inc/admin/views/setup/steps/finish.php:14
|
4149 |
+
msgid "Congrats! You are almost done with your settings."
|
4150 |
+
msgstr "Gratulacje! Prawie skończyłeś ustawianie."
|
4151 |
+
|
4152 |
+
#: inc/admin/views/setup/steps/finish.php:16
|
4153 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:2
|
4154 |
+
msgid "What's next?"
|
4155 |
+
msgstr "Co dalej?"
|
4156 |
+
|
4157 |
+
#: inc/admin/views/setup/steps/finish.php:22
|
4158 |
+
msgid "Install sample course"
|
4159 |
+
msgstr "Zainstaluj przykładowy kurs"
|
4160 |
+
|
4161 |
+
#: inc/admin/views/setup/steps/finish.php:25
|
4162 |
+
msgid "Create new course"
|
4163 |
+
msgstr "Stwórz nowy kurs"
|
4164 |
+
|
4165 |
+
#: inc/admin/views/setup/steps/finish.php:27
|
4166 |
+
msgid "Visit your site"
|
4167 |
+
msgstr "Odwiedź swoją stronę"
|
4168 |
+
|
4169 |
+
#: inc/admin/views/setup/steps/pages.php:16
|
4170 |
+
msgid ""
|
4171 |
+
"The pages will display content of LP's necessary pages, such as: Courses, "
|
4172 |
+
"Checkout, Profile"
|
4173 |
+
msgstr ""
|
4174 |
+
"Podstrony będą wyświetlały zawartość wymaganych podstron jak: Kursy, Koszy, "
|
4175 |
+
"Profil"
|
4176 |
+
|
4177 |
+
#: inc/admin/views/setup/steps/pages.php:17
|
4178 |
+
#, php-format
|
4179 |
+
msgid ""
|
4180 |
+
"If you are not sure, click <a href=\"%s\" id=\"create-pages\">here</a> to "
|
4181 |
+
"create pages automatically."
|
4182 |
+
msgstr ""
|
4183 |
+
"Jeżeli nie jesteś pewny, kliknij <a href=\"%s\" id=\"create-pages\">tutaj</a>"
|
4184 |
+
" by stworzyć podstrony automatycznie."
|
4185 |
+
|
4186 |
+
#: inc/admin/views/setup/steps/pages.php:23
|
4187 |
+
msgid "Page will display all courses inside."
|
4188 |
+
msgstr "Strona wyświetlająca wszystkie zawarte kursy."
|
4189 |
+
|
4190 |
+
#: inc/admin/views/setup/steps/pages.php:32
|
4191 |
+
msgid "Page will display content of user profile."
|
4192 |
+
msgstr "Strona wyświetlająca zawartość profilu użytkownika."
|
4193 |
+
|
4194 |
+
#: inc/admin/views/setup/steps/pages.php:41
|
4195 |
+
msgid "Page will display content of form for processing checkout."
|
4196 |
+
msgstr "Strona wyświetlająca zawartość procesu płatności."
|
4197 |
+
|
4198 |
+
#: inc/admin/views/setup/steps/pages.php:50
|
4199 |
+
msgid "Page will display the form for submitting request to become a teacher."
|
4200 |
+
msgstr "Strona wyświetlająca formularz zgłoszeń \"zostań nauczycielem\"."
|
4201 |
+
|
4202 |
+
#: inc/admin/views/setup/steps/welcome.php:12
|
4203 |
+
msgid "Welcome to LearnPress"
|
4204 |
+
msgstr "Witamy w LearnPress"
|
4205 |
+
|
4206 |
+
#: inc/admin/views/setup/steps/welcome.php:14
|
4207 |
+
msgid "Thanks for choosing LearnPress to sell your courses online!"
|
4208 |
+
msgstr "Dziękujemy za wybranie LearnPress w celu sprzedaży kursów online!"
|
4209 |
+
|
4210 |
+
#: inc/admin/views/setup/steps/welcome.php:16
|
4211 |
+
msgid ""
|
4212 |
+
"Setup Wizard helps you config some basic information before publishing your "
|
4213 |
+
"site."
|
4214 |
+
msgstr ""
|
4215 |
+
"Przewodnik instalacji pomoże Tobie ustawić podstawowe informacje dotyczące "
|
4216 |
+
"witryny."
|
4217 |
+
|
4218 |
+
#: inc/admin/views/statistics/courses.php:18
|
4219 |
+
#: inc/admin/views/statistics/general.php:33
|
4220 |
+
#: inc/admin/views/statistics/orders.php:19
|
4221 |
+
#: inc/admin/views/statistics/users.php:19
|
4222 |
+
msgid "Last 7 Days"
|
4223 |
+
msgstr "Ostatnie 7 dni"
|
4224 |
+
|
4225 |
+
#: inc/admin/views/statistics/courses.php:21
|
4226 |
+
#: inc/admin/views/statistics/general.php:36
|
4227 |
+
#: inc/admin/views/statistics/orders.php:22
|
4228 |
+
#: inc/admin/views/statistics/users.php:22
|
4229 |
+
msgid "Last 30 Days"
|
4230 |
+
msgstr "Ostatnie 30 dni"
|
4231 |
+
|
4232 |
+
#: inc/admin/views/statistics/courses.php:24
|
4233 |
+
#: inc/admin/views/statistics/general.php:40
|
4234 |
+
#: inc/admin/views/statistics/orders.php:25
|
4235 |
+
#: inc/admin/views/statistics/users.php:26
|
4236 |
+
msgid "Last 12 Months"
|
4237 |
+
msgstr "Ostatnie 12 miesięcy"
|
4238 |
+
|
4239 |
+
#: inc/admin/views/statistics/courses.php:31
|
4240 |
+
#: inc/admin/views/statistics/general.php:47
|
4241 |
+
#: inc/admin/views/statistics/orders.php:32
|
4242 |
+
#: inc/admin/views/statistics/users.php:33
|
4243 |
+
msgid "From"
|
4244 |
+
msgstr "Od"
|
4245 |
+
|
4246 |
+
#: inc/admin/views/statistics/courses.php:33
|
4247 |
+
#: inc/admin/views/statistics/general.php:49
|
4248 |
+
#: inc/admin/views/statistics/orders.php:34
|
4249 |
+
#: inc/admin/views/statistics/users.php:35
|
4250 |
+
msgid "To"
|
4251 |
+
msgstr "Do"
|
4252 |
+
|
4253 |
+
#: inc/admin/views/statistics/courses.php:36
|
4254 |
+
#: inc/admin/views/statistics/general.php:53
|
4255 |
+
#: inc/admin/views/statistics/orders.php:37
|
4256 |
+
#: inc/admin/views/statistics/users.php:39
|
4257 |
+
msgid "Go"
|
4258 |
+
msgstr "Go"
|
4259 |
+
|
4260 |
+
#: inc/admin/views/statistics/courses.php:43
|
4261 |
+
#: inc/admin/views/statistics/general.php:60
|
4262 |
+
msgid "Public"
|
4263 |
+
msgstr "Publiczny"
|
4264 |
+
|
4265 |
+
#: inc/admin/views/statistics/orders.php:44
|
4266 |
+
msgid "Sale by"
|
4267 |
+
msgstr "W sprzedaży przez"
|
4268 |
+
|
4269 |
+
#: inc/admin/views/statistics/orders.php:48
|
4270 |
+
msgid "Course Category"
|
4271 |
+
msgstr "Kategoria kursu"
|
4272 |
+
|
4273 |
+
#: inc/admin/views/statistics/orders.php:51
|
4274 |
+
msgid "Select a course"
|
4275 |
+
msgstr "Wybierz kurs"
|
4276 |
+
|
4277 |
+
#: inc/admin/views/statistics/orders.php:55
|
4278 |
+
msgid "Select a course category"
|
4279 |
+
msgstr "Wybierz kategorię kursu"
|
4280 |
+
|
4281 |
+
#: inc/admin/views/tools/html-cache.php:12
|
4282 |
+
msgid "LearnPress hard cache"
|
4283 |
+
msgstr "Cache LearnPress"
|
4284 |
+
|
4285 |
+
#: inc/admin/views/tools/html-cache.php:13
|
4286 |
+
msgid ""
|
4287 |
+
"Hard cache is build-in tool of LearnPress for caching of static content such "
|
4288 |
+
"as course, lesson, quiz."
|
4289 |
+
msgstr ""
|
4290 |
+
"Pamięć podręczna wbudowana w LearnPress do trzymania statycznych zawartości "
|
4291 |
+
"jak kursy, lekcje, testy."
|
4292 |
+
|
4293 |
+
#: inc/admin/views/tools/html-cache.php:14
|
4294 |
+
msgid ""
|
4295 |
+
"When caching is enabled, the content will be cached when course is accessed "
|
4296 |
+
"in the first time."
|
4297 |
+
msgstr ""
|
4298 |
+
"Jak pamięć jest aktywna, zawartość jest zapisywana kiedy kurs uruchamiany "
|
4299 |
+
"jest po raz pierwszy."
|
4300 |
+
|
4301 |
+
#: inc/admin/views/tools/html-cache.php:15
|
4302 |
+
msgid ""
|
4303 |
+
"And it will not change in all later accesses until the cache is cleared."
|
4304 |
+
msgstr "Nie będzie ona zmieniana do momentu wyczyszczenia pamięci podręcznej."
|
4305 |
+
|
4306 |
+
#: inc/admin/views/tools/html-cache.php:16
|
4307 |
+
msgid ""
|
4308 |
+
"If the content is not changed after updating course, click the button below "
|
4309 |
+
"to flush the cache and apply changes."
|
4310 |
+
msgstr ""
|
4311 |
+
"Jeżeli zawartość nie zostanie zmieniona po aktualizacji kursu, kliknij na "
|
4312 |
+
"przycisk poniżej, aby wyczyścić pamięć i zapisać zmiany."
|
4313 |
+
|
4314 |
+
#: inc/admin/views/tools/html-cache.php:21
|
4315 |
+
msgid "Enable/Disable hard cache"
|
4316 |
+
msgstr "Włącz/wyłącz pamięć podręczną"
|
4317 |
+
|
4318 |
+
#: inc/admin/views/tools/html-cache.php:25
|
4319 |
+
#: inc/admin/views/tools/html-cache.php:28
|
4320 |
+
msgid "Clear cache"
|
4321 |
+
msgstr "Wyczyść pamięć podręczną"
|
4322 |
+
|
4323 |
+
#: inc/admin/views/tools/html-cache.php:26
|
4324 |
+
msgid "Cleaning..."
|
4325 |
+
msgstr "Czyszczenie..."
|
4326 |
+
|
4327 |
+
#: inc/admin/views/tools/html-template.php:30
|
4328 |
+
#, php-format
|
4329 |
+
msgid "Override Templates (%s)"
|
4330 |
+
msgstr "Nadpisz Szablon (%s)"
|
4331 |
+
|
4332 |
+
#: inc/admin/views/tools/html-template.php:38
|
4333 |
+
msgid "File"
|
4334 |
+
msgstr "Plik"
|
4335 |
+
|
4336 |
+
#: inc/admin/views/tools/html-template.php:41
|
4337 |
+
#, php-format
|
4338 |
+
msgid "All (%d)"
|
4339 |
+
msgstr "Wszystkie (%d)"
|
4340 |
+
|
4341 |
+
#: inc/admin/views/tools/html-template.php:49
|
4342 |
+
#, php-format
|
4343 |
+
msgid "Outdated (%d)"
|
4344 |
+
msgstr "Przeterminowane (%d)"
|
4345 |
+
|
4346 |
+
#: inc/admin/views/tools/html-template.php:51
|
4347 |
+
#, php-format
|
4348 |
+
msgid "Unversioned (%d)"
|
4349 |
+
msgstr "Bez wersji (%d)"
|
4350 |
+
|
4351 |
+
#: inc/admin/views/tools/html-template.php:55
|
4352 |
+
msgid "Version"
|
4353 |
+
msgstr "Wersja"
|
4354 |
+
|
4355 |
+
#: inc/admin/views/tools/html-template.php:57
|
4356 |
+
msgid "Core version"
|
4357 |
+
msgstr "Wersja silnika"
|
4358 |
+
|
4359 |
+
#: inc/admin/views/tools/html-template.php:89
|
4360 |
+
msgid "There is no template file has overwritten"
|
4361 |
+
msgstr "Żadne pliki szablonu nie były nadpisane"
|
4362 |
+
|
4363 |
+
#: inc/admin/views/tools/course/html-course.php:12
|
4364 |
+
msgid "Reset course user data"
|
4365 |
+
msgstr "Reset użytkowników kursu"
|
4366 |
+
|
4367 |
+
#: inc/admin/views/tools/course/html-course.php:14
|
4368 |
+
msgid "Search results only show course have user data."
|
4369 |
+
msgstr "Szukanie wyników pokazuje tylko kursy z danymi użytkownika."
|
4370 |
+
|
4371 |
+
#: inc/admin/views/tools/course/html-course.php:18
|
4372 |
+
#: inc/admin/views/tools/course/html-user.php:18 templates/search-form.php:29
|
4373 |
+
msgid "Search"
|
4374 |
+
msgstr "Wyszukaj"
|
4375 |
+
|
4376 |
+
#: inc/admin/views/tools/course/html-course.php:39
|
4377 |
+
#: inc/admin/views/tools/course/html-user.php:47
|
4378 |
+
msgid "Done"
|
4379 |
+
msgstr "Zrobione"
|
4380 |
+
|
4381 |
+
#: inc/admin/views/tools/course/html-course.php:40
|
4382 |
+
#: inc/admin/views/tools/course/html-user.php:48
|
4383 |
+
msgid "Resetting..."
|
4384 |
+
msgstr "Resetowanie..."
|
4385 |
+
|
4386 |
+
#: inc/admin/views/tools/course/html-course.php:47
|
4387 |
+
msgid "Please enter at least 3 characters to searching courses."
|
4388 |
+
msgstr "Wpisz przynajmniej 3 znaki aby wyszukać kursy."
|
4389 |
+
|
4390 |
+
#: inc/admin/views/tools/course/html-course.php:49
|
4391 |
+
msgid "Searching course..."
|
4392 |
+
msgstr "Szukanie kursów..."
|
4393 |
+
|
4394 |
+
#: inc/admin/views/tools/course/html-course.php:57
|
4395 |
+
#: inc/admin/views/tools/course/html-user-item.php:35
|
4396 |
+
#: inc/admin/views/tools/course/html-user.php:65
|
4397 |
+
msgid "Remove all users from this course?"
|
4398 |
+
msgstr "Usunąć wszystkich użytkowników z kursu?"
|
4399 |
+
|
4400 |
+
#: inc/admin/views/tools/course/html-user-item.php:12
|
4401 |
+
msgid "Reset item data for an user"
|
4402 |
+
msgstr "Zresetuj dane dla użytkownika"
|
4403 |
+
|
4404 |
+
#: inc/admin/views/tools/course/html-user-item.php:14
|
4405 |
+
#: inc/admin/views/tools/course/html-user.php:14
|
4406 |
+
msgid "Search results only show users have course data."
|
4407 |
+
msgstr "Szukanie wyników pokazuje tylko użytkowników z danymi kursu."
|
4408 |
+
|
4409 |
+
#: inc/admin/views/tools/course/html-user-item.php:18
|
4410 |
+
msgid "User ID or Email"
|
4411 |
+
msgstr "ID użytkownika lub Email"
|
4412 |
+
|
4413 |
+
#: inc/admin/views/tools/course/html-user-item.php:19
|
4414 |
+
msgid "Item ID (ID of quiz or lesson)"
|
4415 |
+
msgstr "ID elementu (ID testu lub lekcji)"
|
4416 |
+
|
4417 |
+
#: inc/admin/views/tools/course/html-user.php:12
|
4418 |
+
msgid "Reset course data by user"
|
4419 |
+
msgstr "Reset danych kursu przez użytkownika"
|
4420 |
+
|
4421 |
+
#: inc/admin/views/tools/course/html-user.php:46
|
4422 |
+
msgid "Reset all"
|
4423 |
+
msgstr "Zresetuj wszystkie"
|
4424 |
+
|
4425 |
+
#: inc/admin/views/tools/course/html-user.php:55
|
4426 |
+
msgid "Please enter at least 3 characters to searching users."
|
4427 |
+
msgstr "Wpisz przynajmniej 3 znaki aby wyszukać użytkowników."
|
4428 |
+
|
4429 |
+
#: inc/admin/views/tools/course/html-user.php:56
|
4430 |
+
msgid "No user found."
|
4431 |
+
msgstr "Nie znaleziono użytkowników."
|
4432 |
+
|
4433 |
+
#: inc/admin/views/tools/course/html-user.php:57
|
4434 |
+
msgid "Searching user..."
|
4435 |
+
msgstr "Wyszukiwanie użytkowników..."
|
4436 |
+
|
4437 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:16
|
4438 |
+
msgid "Install Sample Data"
|
4439 |
+
msgstr "Zainstaluj przykładowe dane"
|
4440 |
+
|
4441 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:17
|
4442 |
+
msgid ""
|
4443 |
+
"Create a <strong>Sample course</strong> with lessons and quizzes. The "
|
4444 |
+
"content will be filled with <strong>Lorem</strong> text."
|
4445 |
+
msgstr ""
|
4446 |
+
"Stwórz <strong>Przykładowy kurs</strong> z lekcjami i testami. Zawartość "
|
4447 |
+
"zostanie wypełniona przez <strong>Lorem Ipsum</strong>."
|
4448 |
+
|
4449 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:19
|
4450 |
+
msgid "Options"
|
4451 |
+
msgstr "Opcje"
|
4452 |
+
|
4453 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:23
|
4454 |
+
msgid "Course name"
|
4455 |
+
msgstr ""
|
4456 |
+
|
4457 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:28
|
4458 |
+
msgid "Random number of sections in range"
|
4459 |
+
msgstr "Losowa liczba sekcji w zakresie"
|
4460 |
+
|
4461 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:35
|
4462 |
+
msgid "Random number of items in range (each section)"
|
4463 |
+
msgstr "Losowa liczba elementów w zakresie (każda sekcja)"
|
4464 |
+
|
4465 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:42
|
4466 |
+
msgid "Random number of questions in range (each quiz)"
|
4467 |
+
msgstr "Losowa liczba pytań w zakresie (każdy test)"
|
4468 |
+
|
4469 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:49
|
4470 |
+
msgid "Random number of answers in range (each question)"
|
4471 |
+
msgstr "Losowa liczba odpowiedzi w zakresie (każde pytanie)"
|
4472 |
+
|
4473 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:60
|
4474 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:63
|
4475 |
+
msgid "Install"
|
4476 |
+
msgstr "Instaluj"
|
4477 |
+
|
4478 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:61
|
4479 |
+
msgid "Installing..."
|
4480 |
+
msgstr "Instalowanie..."
|
4481 |
+
|
4482 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:65
|
4483 |
+
msgid "Show options"
|
4484 |
+
msgstr "Pokaż opcje"
|
4485 |
+
|
4486 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:67
|
4487 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:71
|
4488 |
+
msgid "Delete sample course"
|
4489 |
+
msgstr "Usuń przykładowy kurs"
|
4490 |
+
|
4491 |
+
#: inc/admin/views/tools/database/html-install-sample-data.php:68
|
4492 |
+
msgid "Deleting..."
|
4493 |
+
msgstr "Usuwanie..."
|
4494 |
+
|
4495 |
+
#: inc/admin/views/tools/database/html-remove-database.php:12
|
4496 |
+
msgid "Remove current Data"
|
4497 |
+
msgstr "Usuń obecne dane"
|
4498 |
+
|
4499 |
+
#: inc/admin/views/tools/database/html-remove-database.php:13
|
4500 |
+
msgid "Remove all courses, lessons, quizzes and questions."
|
4501 |
+
msgstr "Usuń wszystkie kursy, lekcje, testy i pytania."
|
4502 |
+
|
4503 |
+
#: inc/admin/views/tools/database/html-remove-database.php:16
|
4504 |
+
msgid "Be careful before using this action!"
|
4505 |
+
msgstr "Bądź uważny podczas korzystania z tej funkcji!"
|
4506 |
+
|
4507 |
+
#: inc/admin/views/tools/database/html-remove-database.php:20
|
4508 |
+
#: inc/admin/views/tools/database/html-remove-outdated-data.php:20
|
4509 |
+
msgid "Check this box and click this button again to confirm."
|
4510 |
+
msgstr "Zaznacz ten box oraz kliknij przycisk ponownie by potwierdzić."
|
4511 |
+
|
4512 |
+
#: inc/admin/views/tools/database/html-remove-database.php:23
|
4513 |
+
#: inc/admin/views/tools/database/html-remove-outdated-data.php:23
|
4514 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:40
|
4515 |
+
#: templates/profile/tabs/settings/avatar.php:60
|
4516 |
+
msgid "Remove"
|
4517 |
+
msgstr "Usuń"
|
4518 |
+
|
4519 |
+
#: inc/admin/views/tools/database/html-remove-outdated-data.php:12
|
4520 |
+
msgid "Remove outdated Data"
|
4521 |
+
msgstr "Usuń nieaktualne dane"
|
4522 |
+
|
4523 |
+
#: inc/admin/views/tools/database/html-remove-outdated-data.php:13
|
4524 |
+
msgid ""
|
4525 |
+
"Remove all courses, lessons, quizzes and questions from version older than 1."
|
4526 |
+
"0."
|
4527 |
+
msgstr ""
|
4528 |
+
"Usuń wszystkie kursy, lekcje, testy oraz pytania starsze niż z wersji 1.0."
|
4529 |
+
|
4530 |
+
#: inc/admin/views/tools/database/html-remove-outdated-data.php:16
|
4531 |
+
msgid ""
|
4532 |
+
"Be careful before using this action! Only use this action in case all "
|
4533 |
+
"outdated data has been upgraded."
|
4534 |
+
msgstr ""
|
4535 |
+
"Uważaj korzystając z tej akcji! Skorzystaj z tego tylko gdy wszystkie "
|
4536 |
+
"nieaktualne dane muszą zostać zaktualizowane."
|
4537 |
+
|
4538 |
+
#: inc/admin/views/tools/database/html-upgrade-database.php:12
|
4539 |
+
msgid "Upgrade Database"
|
4540 |
+
msgstr "Zaktualizuj bazę danych"
|
4541 |
+
|
4542 |
+
#: inc/admin/views/tools/database/html-upgrade-database.php:13
|
4543 |
+
msgid ""
|
4544 |
+
"Force upgrade database to latest version. Please be careful before taking "
|
4545 |
+
"this action."
|
4546 |
+
msgstr ""
|
4547 |
+
|
4548 |
+
#: inc/admin/views/updates/html-update-message.php:12
|
4549 |
+
msgid ""
|
4550 |
+
"<strong>LearnPress update</strong> – We need to update your database to the "
|
4551 |
+
"latest version."
|
4552 |
+
msgstr ""
|
4553 |
+
"<strong>Aktualizacja LearnPress</strong> - potrzebujemy zaktualizować Twoją "
|
4554 |
+
"bazę danych do najnowszej wersji."
|
4555 |
+
|
4556 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:14
|
4557 |
+
#, php-format
|
4558 |
+
msgid "Welcome to LearnPress %s"
|
4559 |
+
msgstr ""
|
4560 |
+
|
4561 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:15
|
4562 |
+
msgid ""
|
4563 |
+
"This is a <strong>BIG UPDATE</strong> and it allows you to do so much more!"
|
4564 |
+
msgstr ""
|
4565 |
+
|
4566 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:16
|
4567 |
+
msgid ""
|
4568 |
+
"If there's any issue, please be sure to backup your site, update your theme, "
|
4569 |
+
"contact supporter."
|
4570 |
+
msgstr ""
|
4571 |
+
|
4572 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:20
|
4573 |
+
msgid "Check what's new"
|
4574 |
+
msgstr ""
|
4575 |
+
|
4576 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:22
|
4577 |
+
msgid "Get support now"
|
4578 |
+
msgstr ""
|
4579 |
+
|
4580 |
+
#: inc/admin/views/updates/html-upgrade-message-3.0.0.php:24
|
4581 |
+
msgid "Got it!"
|
4582 |
+
msgstr ""
|
4583 |
+
|
4584 |
+
#: inc/admin/views/updates/update-screen.php:17
|
4585 |
+
msgid "LearnPress › Update Database"
|
4586 |
+
msgstr "LearnPress › Zaktualizuj bazę danych"
|
4587 |
+
|
4588 |
+
#: inc/admin/views/updates/update-screen.php:36
|
4589 |
+
msgid "LearnPress Update Database"
|
4590 |
+
msgstr "Aktualizacja bazy danych LearnPress"
|
4591 |
+
|
4592 |
+
#: inc/admin/views/updates/update-screen.php:38
|
4593 |
+
msgid "Before updating please ensure your site data is already backed up!"
|
4594 |
+
msgstr "Zanim zaktualizujesz, upewnij się, że masz kopię zapasową!"
|
4595 |
+
|
4596 |
+
#: inc/admin/views/updates/update-screen.php:43
|
4597 |
+
msgid "Run Updater"
|
4598 |
+
msgstr "Uruchom aktualizację"
|
4599 |
+
|
4600 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:1
|
4601 |
+
msgid "Update Database"
|
4602 |
+
msgstr "Zaktualizuj bazę danych"
|
4603 |
+
|
4604 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:4
|
4605 |
+
msgid "Update custom post type"
|
4606 |
+
msgstr "Zaktualizuj standardowy typ postu"
|
4607 |
+
|
4608 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:7
|
4609 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:10
|
4610 |
+
msgid "Update post meta"
|
4611 |
+
msgstr "Zaktualizuj meta postu"
|
4612 |
+
|
4613 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:14
|
4614 |
+
msgid "Updating! Please do not close this page until the work is done"
|
4615 |
+
msgstr "Aktualizowanie! Proszę nie zamykać tej strony do momentu ukończenia"
|
4616 |
+
|
4617 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:18
|
4618 |
+
msgid "Rollback"
|
4619 |
+
msgstr "Przywrócenie"
|
4620 |
+
|
4621 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:1
|
4622 |
+
msgid "Upgrade completed successfully!"
|
4623 |
+
msgstr "Aktualizacja przeszła poprawnie!"
|
4624 |
+
|
4625 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:5
|
4626 |
+
msgid "Manage courses"
|
4627 |
+
msgstr "Zarządzaj kursami"
|
4628 |
+
|
4629 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:8
|
4630 |
+
msgid "Create a new course"
|
4631 |
+
msgstr "Stwórz nowy kurs"
|
4632 |
+
|
4633 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:11
|
4634 |
+
msgid "Setting up your LearnPress"
|
4635 |
+
msgstr "Ustaw swojego LearnPress"
|
4636 |
+
|
4637 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:14
|
4638 |
+
msgid "Manage add-ons"
|
4639 |
+
msgstr "Zarządzaj dodatkami"
|
4640 |
+
|
4641 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:1
|
4642 |
+
msgid "Welcome to LearnPress!"
|
4643 |
+
msgstr "Witamy w LearnPress!"
|
4644 |
+
|
4645 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:2
|
4646 |
+
msgid "Thank you for choosing LearnPress to sell your courses online!"
|
4647 |
+
msgstr "Dziękujemy za wybranie LearnPress, aby sprzedawać swoje kursy online!"
|
4648 |
+
|
4649 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:3
|
4650 |
+
#, php-format
|
4651 |
+
msgid ""
|
4652 |
+
"In version <strong>%s</strong> of LearnPress we have a big update and need "
|
4653 |
+
"to upgrade your database to ensure system works properly."
|
4654 |
+
msgstr ""
|
4655 |
+
"W wersji <strong>%s</strong> Leadnpress wprowadziliśmy bardzo duże "
|
4656 |
+
"aktualizacje, stąd musisz zaktualizować swoją bazę danych, aby wszystko "
|
4657 |
+
"grało."
|
4658 |
+
|
4659 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:4
|
4660 |
+
msgid ""
|
4661 |
+
"We are very careful in upgrading the database but be sure to backup your "
|
4662 |
+
"database before upgrading to avoid possible risks."
|
4663 |
+
msgstr ""
|
4664 |
+
"Jesteśmy bardzo uważni przy aktualizacji bazy, jednak dla pewności zrób jej "
|
4665 |
+
"kopię przed rozpoczęciem aktualizacji."
|
4666 |
+
|
4667 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:5
|
4668 |
+
msgid "Click <strong>Yes, upgrade!</strong> button to start."
|
4669 |
+
msgstr "Kliknij <strong>Tak, zaktualizuj!</strong> aby zacząć."
|
4670 |
+
|
4671 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:7
|
4672 |
+
msgid "No, back to Admin"
|
4673 |
+
msgstr "Nie, wróć do Admina"
|
4674 |
+
|
4675 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:8
|
4676 |
+
msgid "Yes, upgrade!"
|
4677 |
+
msgstr "Tak, zaktualizuj!"
|
4678 |
+
|
4679 |
+
#: inc/admin/views/updates/0.9/update-wizard.php:6
|
4680 |
+
#: inc/admin/views/updates/0.9/update-wizard.php:19
|
4681 |
+
#, php-format
|
4682 |
+
msgid "LearnPress update version %s"
|
4683 |
+
msgstr "Aktualizacja LearnPress do wersji %s"
|
4684 |
+
|
4685 |
+
#: inc/attributes/course.php:137 inc/attributes/course.php:295
|
4686 |
+
#: inc/attributes/course.php:308 inc/attributes/course.php:310
|
4687 |
+
msgid "Attributes"
|
4688 |
+
msgstr "Atrybuty"
|
4689 |
+
|
4690 |
+
#: inc/attributes/course.php:207
|
4691 |
+
msgid "No terms found."
|
4692 |
+
msgstr "Nie znaleziono warunków."
|
4693 |
+
|
4694 |
+
#: inc/attributes/course.php:231
|
4695 |
+
#, php-format
|
4696 |
+
msgid "Edit “%s”"
|
4697 |
+
msgstr "Edytuj “%s”"
|
4698 |
+
|
4699 |
+
#: inc/attributes/course.php:238
|
4700 |
+
msgid "Clear"
|
4701 |
+
msgstr "Wyczyść"
|
4702 |
+
|
4703 |
+
#: inc/attributes/course.php:253
|
4704 |
+
msgid "Terms"
|
4705 |
+
msgstr "Warunki"
|
4706 |
+
|
4707 |
+
#: inc/attributes/course.php:306 inc/attributes/course.php:309
|
4708 |
+
msgid "Attribute"
|
4709 |
+
msgstr "Atrybuty"
|
4710 |
+
|
4711 |
+
#: inc/attributes/course.php:311
|
4712 |
+
msgid "Add New Attribute"
|
4713 |
+
msgstr "Dodaj nowy atrybut"
|
4714 |
+
|
4715 |
+
#: inc/attributes/course.php:312
|
4716 |
+
msgid "All Attributes"
|
4717 |
+
msgstr "Wszystkie atrybuty"
|
4718 |
+
|
4719 |
+
#: inc/attributes/course.php:356
|
4720 |
+
#, php-format
|
4721 |
+
msgid "Search Course %s"
|
4722 |
+
msgstr "Wyszukaj kurs %s"
|
4723 |
+
|
4724 |
+
#: inc/attributes/course.php:357
|
4725 |
+
#, php-format
|
4726 |
+
msgid "All Course %s"
|
4727 |
+
msgstr "Wszystkie kursy %s"
|
4728 |
+
|
4729 |
+
#: inc/attributes/course.php:358
|
4730 |
+
#, php-format
|
4731 |
+
msgid "Parent Course %s"
|
4732 |
+
msgstr "Rodzic kursu %s"
|
4733 |
+
|
4734 |
+
#: inc/attributes/course.php:359
|
4735 |
+
#, php-format
|
4736 |
+
msgid "Parent Course %s:"
|
4737 |
+
msgstr "Rodzic kursu %s:"
|
4738 |
+
|
4739 |
+
#: inc/attributes/course.php:360
|
4740 |
+
#, php-format
|
4741 |
+
msgid "Edit Course %s"
|
4742 |
+
msgstr "Edytuj kurs %s"
|
4743 |
+
|
4744 |
+
#: inc/attributes/course.php:361
|
4745 |
+
#, php-format
|
4746 |
+
msgid "Update Course %s"
|
4747 |
+
msgstr "Zaktualizuj kurs %s"
|
4748 |
+
|
4749 |
+
#: inc/attributes/course.php:362
|
4750 |
+
#, php-format
|
4751 |
+
msgid "Add New Course %s"
|
4752 |
+
msgstr "Dodaj nowy kurs %s"
|
4753 |
+
|
4754 |
+
#: inc/attributes/course.php:363
|
4755 |
+
#, php-format
|
4756 |
+
msgid "New Course %s"
|
4757 |
+
msgstr "Nowy kurs %s"
|
4758 |
+
|
4759 |
+
#: inc/attributes/course.php:364
|
4760 |
+
#, php-format
|
4761 |
+
msgid "No "Course %s" found"
|
4762 |
+
msgstr "Brak "Kursu %s" found"
|
4763 |
+
|
4764 |
+
#: inc/background-process/class-lp-background-query-items.php:83
|
4765 |
+
msgid "WP query plugins error!"
|
4766 |
+
msgstr "Błąd zapytania wtyczki WP!"
|
4767 |
+
|
4768 |
+
#: inc/background-process/class-lp-background-query-items.php:86
|
4769 |
+
msgid "WP query plugins empty!"
|
4770 |
+
msgstr "Puste zapytanie wtyczki WP!"
|
4771 |
+
|
4772 |
+
#: inc/cart/class-lp-cart.php:119
|
4773 |
+
msgid "Get cart should not be called before the wp_loaded action."
|
4774 |
+
msgstr "Koszyk nie powinien być wywoływany przed akcją wp_loaded."
|
4775 |
+
|
4776 |
+
#: inc/cart/class-lp-cart.php:144
|
4777 |
+
msgid "Sorry! This course is not purchasable."
|
4778 |
+
msgstr "Przepraszamy, ale ten kurs nie jest do kupienia."
|
4779 |
+
|
4780 |
+
#: inc/cart/class-lp-cart.php:149
|
4781 |
+
msgid "Sorry! The number of enrolled students has reached limit"
|
4782 |
+
msgstr "Przepraszamy! Liczba kursantów osiągnęła limit"
|
4783 |
+
|
4784 |
+
#: inc/cart/class-lp-cart.php:281
|
4785 |
+
#, php-format
|
4786 |
+
msgid ""
|
4787 |
+
"%s has been removed from your cart because it can no longer be purchased."
|
4788 |
+
msgstr "%s został usunięty z koszyka, ponieważ nie jest więcej kupiony."
|
4789 |
+
|
4790 |
+
#: inc/course/abstract-course.php:527
|
4791 |
+
msgid "You enrolled"
|
4792 |
+
msgstr "Dołączyłeś"
|
4793 |
+
|
4794 |
+
#: inc/course/abstract-course.php:531
|
4795 |
+
#, php-format
|
4796 |
+
msgctxt "students-html"
|
4797 |
+
msgid "You and one student enrolled"
|
4798 |
+
msgid_plural ""
|
4799 |
+
"You and <span class=\"course-students-number\">%1$s</span> students enrolled"
|
4800 |
+
msgstr[0] "Ty i jeden kursant dołączyliście"
|
4801 |
+
msgstr[1] ""
|
4802 |
+
"Ty i <span class=\"course-students-number\">%1$s</span> kursantów dołączyło"
|
4803 |
+
msgstr[2] ""
|
4804 |
+
"Ty i <span class=\"course-students-number\">%1$s</span> kursantów dołączyło"
|
4805 |
+
|
4806 |
+
#: inc/course/abstract-course.php:541
|
4807 |
+
#, php-format
|
4808 |
+
msgctxt "students-html"
|
4809 |
+
msgid "One student enrolled"
|
4810 |
+
msgid_plural ""
|
4811 |
+
"<span class=\"course-students-number\">%1$s</span> students enrolled"
|
4812 |
+
msgstr[0] "Jeden kursant dołączył"
|
4813 |
+
msgstr[1] ""
|
4814 |
+
"<span class=\"course-students-number\">%1$s</span> kursantów dołączyło"
|
4815 |
+
msgstr[2] ""
|
4816 |
+
"<span class=\"course-students-number\">%1$s</span> kursantów dołączyło"
|
4817 |
+
|
4818 |
+
#: inc/course/abstract-course.php:544
|
4819 |
+
msgid "No student enrolled"
|
4820 |
+
msgstr "Brak kursantów"
|
4821 |
+
|
4822 |
+
#: inc/course/abstract-course.php:799 inc/course/abstract-course.php:817
|
4823 |
+
#: inc/lesson/class-lp-lesson.php:103 inc/quiz/class-lp-quiz.php:516
|
4824 |
+
#, php-format
|
4825 |
+
msgid "The function %s doesn't exist"
|
4826 |
+
msgstr "Funkcja %s nie istnieje"
|
4827 |
+
|
4828 |
+
#: inc/course/abstract-course.php:1178
|
4829 |
+
#, php-format
|
4830 |
+
msgid "%d of %d items completed"
|
4831 |
+
msgstr "%d z %d elementów ukońćzonych"
|
4832 |
+
|
4833 |
+
#: inc/course/abstract-course.php:1181 inc/course/abstract-course.php:1183
|
4834 |
+
#, php-format
|
4835 |
+
msgid "%d%% completed"
|
4836 |
+
msgstr "%d%% ukończony"
|
4837 |
+
|
4838 |
+
#: inc/course/abstract-course.php:1651
|
4839 |
+
#, php-format
|
4840 |
+
msgid "This course will end within next %s"
|
4841 |
+
msgstr "Ten kurs zostanie ukończony w przeciągu następnych %s"
|
4842 |
+
|
4843 |
+
#: inc/course/abstract-course.php:1758
|
4844 |
+
msgctxt "Text of Buy this course with external link"
|
4845 |
+
msgid "Buy this course"
|
4846 |
+
msgstr ""
|
4847 |
+
|
4848 |
+
#: inc/course/abstract-course.php:1808
|
4849 |
+
msgid "Tags: "
|
4850 |
+
msgstr "Tagi: "
|
4851 |
+
|
4852 |
+
#: inc/course/lp-course-functions.php:169
|
4853 |
+
msgctxt "slug"
|
4854 |
+
msgid "uncategorized"
|
4855 |
+
msgstr "bez-kategorii"
|
4856 |
+
|
4857 |
+
#: inc/course/lp-course-functions.php:217
|
4858 |
+
#, php-format
|
4859 |
+
msgid "The course %d does not exists"
|
4860 |
+
msgstr "Kurs %d nie istnieje"
|
4861 |
+
|
4862 |
+
#: inc/course/lp-course-functions.php:830
|
4863 |
+
msgid "Permalink only available if the item is already assigned to a course."
|
4864 |
+
msgstr "Link jest widoczny wyłącznie, gdy przystąpiłeś do kursu."
|
4865 |
+
|
4866 |
+
#: inc/course/lp-course-functions.php:1039
|
4867 |
+
#, php-format
|
4868 |
+
msgid "Welcome back, %s"
|
4869 |
+
msgstr "Witamy spowrotem, %s"
|
4870 |
+
|
4871 |
+
#: inc/curds/class-lp-course-curd.php:27
|
4872 |
+
msgid "Course does not exist."
|
4873 |
+
msgstr "Kurs nie istnieje."
|
4874 |
+
|
4875 |
+
#: inc/curds/class-lp-course-curd.php:105
|
4876 |
+
#: inc/curds/class-lp-lesson-curd.php:101
|
4877 |
+
#: inc/curds/class-lp-question-curd.php:161
|
4878 |
+
#: inc/curds/class-lp-quiz-curd.php:146
|
4879 |
+
msgid "<p>Op! ID not found</p>"
|
4880 |
+
msgstr "<p>Ups! ID nie znalezione </p>"
|
4881 |
+
|
4882 |
+
#: inc/curds/class-lp-course-curd.php:109
|
4883 |
+
msgid "<p>Op! The course does not exist</p>"
|
4884 |
+
msgstr "<p>Op! Kurs nie istnieje!</p>"
|
4885 |
+
|
4886 |
+
#: inc/curds/class-lp-course-curd.php:114
|
4887 |
+
msgid "<p>Sorry! You don't have permission to duplicate this course</p>"
|
4888 |
+
msgstr "<p Sorry! nie masz dostępu do duplikowanie tego kursu</p>"
|
4889 |
+
|
4890 |
+
#: inc/curds/class-lp-course-curd.php:120
|
4891 |
+
msgid "<p>Sorry! Failed to duplicate course!</p>"
|
4892 |
+
msgstr "<p>Przepraszamy! Błąd duplikowania!!</p>"
|
4893 |
+
|
4894 |
+
#: inc/curds/class-lp-lesson-curd.php:34
|
4895 |
+
msgid "New Lesson"
|
4896 |
+
msgstr "Nowa lekcja"
|
4897 |
+
|
4898 |
+
#: inc/curds/class-lp-lesson-curd.php:105
|
4899 |
+
msgid "<p>Op! The lesson does not exist</p>"
|
4900 |
+
msgstr "<p>Ups ! Lekcja nie istnieje</p>"
|
4901 |
+
|
4902 |
+
#: inc/curds/class-lp-lesson-curd.php:110
|
4903 |
+
msgid "<p>Sorry! You don't have permission to duplicate this lesson</p>"
|
4904 |
+
msgstr "<p>Przepraszamy! Nie masz praw do skopiowania tej lekcji</p>"
|
4905 |
+
|
4906 |
+
#: inc/curds/class-lp-lesson-curd.php:117
|
4907 |
+
msgid "<p>Sorry! Failed to duplicate lesson!</p>"
|
4908 |
+
msgstr "<p>Przepraszamy! Przy kopiowaniu lekcji wystąpił błąd!</p>"
|
4909 |
+
|
4910 |
+
#: inc/curds/class-lp-lesson-curd.php:138
|
4911 |
+
#, php-format
|
4912 |
+
msgid "Invalid lesson with ID \"%d\"."
|
4913 |
+
msgstr "Nieprawidłowa lekcja o ID \"%d\"."
|
4914 |
+
|
4915 |
+
#: inc/curds/class-lp-order-curd.php:430
|
4916 |
+
#, php-format
|
4917 |
+
msgid "Invalid order with ID \"%d\"."
|
4918 |
+
msgstr "Nieprawidłowe zamówienie o ID \"%d\"."
|
4919 |
+
|
4920 |
+
#: inc/curds/class-lp-order-curd.php:485
|
4921 |
+
#: templates/checkout/order-received.php:61
|
4922 |
+
msgid "Invalid order."
|
4923 |
+
msgstr "Niepoprawne zamówienie."
|
4924 |
+
|
4925 |
+
#: inc/curds/class-lp-order-curd.php:489
|
4926 |
+
msgid "Order is already assigned."
|
4927 |
+
msgstr "Zamówienie zostało już przydzielone."
|
4928 |
+
|
4929 |
+
#: inc/curds/class-lp-order-curd.php:495
|
4930 |
+
msgid "User does not exist."
|
4931 |
+
msgstr "Użytkownik nie istnieje."
|
4932 |
+
|
4933 |
+
#: inc/curds/class-lp-question-curd.php:28
|
4934 |
+
msgid "Question does not exist."
|
4935 |
+
msgstr "Pytanie nie istnieje."
|
4936 |
+
|
4937 |
+
#: inc/curds/class-lp-question-curd.php:165
|
4938 |
+
msgid "<p>Op! The question does not exist</p>"
|
4939 |
+
msgstr "<p>Ups! Pytanie nie istnieje</p>"
|
4940 |
+
|
4941 |
+
#: inc/curds/class-lp-question-curd.php:170
|
4942 |
+
msgid "<p>Sorry! You don't have permission to duplicate this question</p>"
|
4943 |
+
msgstr "<p Sorry! nie masz dostępu do duplikowanie tego pytania</p>"
|
4944 |
+
|
4945 |
+
#: inc/curds/class-lp-question-curd.php:180
|
4946 |
+
msgid "<p>Sorry! Failed to duplicate question!</p>"
|
4947 |
+
msgstr "<p>Przepraszamy! Przy kopiowaniu pytania wystąpił błąd!</p>"
|
4948 |
+
|
4949 |
+
#: inc/curds/class-lp-question-curd.php:241
|
4950 |
+
#, php-format
|
4951 |
+
msgid "Invalid question with ID \"%d\"."
|
4952 |
+
msgstr "Nieprawidłowe pytanie o ID \"%d\"."
|
4953 |
+
|
4954 |
+
#: inc/curds/class-lp-quiz-curd.php:29
|
4955 |
+
msgid "Quiz does not exist."
|
4956 |
+
msgstr "Test nie istnieje."
|
4957 |
+
|
4958 |
+
#: inc/curds/class-lp-quiz-curd.php:44
|
4959 |
+
#, php-format
|
4960 |
+
msgid "Invalid quiz with ID \"%d\"."
|
4961 |
+
msgstr "Nieprawidłowe test o ID \"%d\"."
|
4962 |
+
|
4963 |
+
#: inc/curds/class-lp-quiz-curd.php:150
|
4964 |
+
msgid "<p>Op! The quiz does not exist</p>"
|
4965 |
+
msgstr "<p>Ups! Test nie istnieje</p>"
|
4966 |
+
|
4967 |
+
#: inc/curds/class-lp-quiz-curd.php:155
|
4968 |
+
msgid "<p>Sorry! You have not permission to duplicate this quiz</p>"
|
4969 |
+
msgstr "<p Sorry! nie masz dostępu do duplikowanie tego testu</p>"
|
4970 |
+
|
4971 |
+
#: inc/curds/class-lp-quiz-curd.php:162
|
4972 |
+
msgid "<p>Sorry! Failed to duplicate quiz!</p>"
|
4973 |
+
msgstr "<p>Przepraszamy! Przy kopiowaniu testu wystąpił błąd!</p>"
|
4974 |
+
|
4975 |
+
#: inc/curds/class-lp-user-curd.php:1079 inc/curds/class-lp-user-curd.php:1237
|
4976 |
+
msgid "course"
|
4977 |
+
msgstr "kurs"
|
4978 |
+
|
4979 |
+
#: inc/curds/class-lp-user-curd.php:1080 inc/curds/class-lp-user-curd.php:1238
|
4980 |
+
msgid "courses"
|
4981 |
+
msgstr "kursy"
|
4982 |
+
|
4983 |
+
#: inc/curds/class-lp-user-curd.php:1379
|
4984 |
+
msgid "quiz"
|
4985 |
+
msgstr "test"
|
4986 |
+
|
4987 |
+
#: inc/curds/class-lp-user-curd.php:1380
|
4988 |
+
msgid "quizzes"
|
4989 |
+
msgstr "testy"
|
4990 |
+
|
4991 |
+
#: inc/curds/class-lp-user-curd.php:1437
|
4992 |
+
msgid "Please provide a valid email address."
|
4993 |
+
msgstr "Proszę podać poprawny adres email."
|
4994 |
+
|
4995 |
+
#: inc/curds/class-lp-user-curd.php:1441
|
4996 |
+
msgid ""
|
4997 |
+
"An account is already registered with your email address. Please log in."
|
4998 |
+
msgstr "Konto o tym emailu już istnieje. Zaloguj się."
|
4999 |
+
|
5000 |
+
#: inc/curds/class-lp-user-curd.php:1447
|
5001 |
+
msgid "Please enter a valid account username."
|
5002 |
+
msgstr "Proszę podać poprawną nazwę użytkownika."
|
5003 |
+
|
5004 |
+
#: inc/curds/class-lp-user-curd.php:1451
|
5005 |
+
msgid ""
|
5006 |
+
"An account is already registered with that username. Please choose another."
|
5007 |
+
msgstr "Konto z tą nazwą użytkownika już istnieje. Proszę wybrać inną."
|
5008 |
+
|
5009 |
+
#: inc/curds/class-lp-user-curd.php:1463
|
5010 |
+
msgid "Failed to create user"
|
5011 |
+
msgstr "Błąd tworzenia użytkownika"
|
5012 |
+
|
5013 |
+
#: inc/curds/class-lp-user-item-curd.php:21
|
5014 |
+
msgid "Quiz does not exists."
|
5015 |
+
msgstr "Test nie istnieje."
|
5016 |
+
|
5017 |
+
#: inc/curds/class-lp-user-item-curd.php:34
|
5018 |
+
msgid "Invalid quiz."
|
5019 |
+
msgstr "Nieprawidłowy test."
|
5020 |
+
|
5021 |
+
#: inc/custom-post-types/abstract.php:473
|
5022 |
+
#: inc/custom-post-types/abstract.php:476
|
5023 |
+
msgid "updated."
|
5024 |
+
msgstr "zaktualizowane."
|
5025 |
+
|
5026 |
+
#: inc/custom-post-types/abstract.php:474
|
5027 |
+
msgid "Custom field updated."
|
5028 |
+
msgstr "Niestandardowe pole zaktualizowane."
|
5029 |
+
|
5030 |
+
#: inc/custom-post-types/abstract.php:475
|
5031 |
+
msgid "Custom field deleted."
|
5032 |
+
msgstr "Niestandardowe pole usunięte."
|
5033 |
+
|
5034 |
+
#: inc/custom-post-types/abstract.php:478
|
5035 |
+
#, php-format
|
5036 |
+
msgid "Lesson restored to revision from %s"
|
5037 |
+
msgstr "Lekcja przywrócona do podglądu z %s"
|
5038 |
+
|
5039 |
+
#: inc/custom-post-types/abstract.php:479
|
5040 |
+
msgid "published."
|
5041 |
+
msgstr "opublikowane."
|
5042 |
+
|
5043 |
+
#: inc/custom-post-types/abstract.php:480
|
5044 |
+
msgid "saved."
|
5045 |
+
msgstr "zapisane."
|
5046 |
+
|
5047 |
+
#: inc/custom-post-types/abstract.php:481
|
5048 |
+
msgid "submitted."
|
5049 |
+
msgstr "zatwierdzono."
|
5050 |
+
|
5051 |
+
#: inc/custom-post-types/abstract.php:483
|
5052 |
+
#, php-format
|
5053 |
+
msgid "scheduled for: <strong>%1$s</strong>."
|
5054 |
+
msgstr "zaplanowane na: <strong>%1$s</strong>."
|
5055 |
+
|
5056 |
+
#: inc/custom-post-types/abstract.php:485
|
5057 |
+
msgid "M j, Y @ G:i"
|
5058 |
+
msgstr "M j, Y @ G:i"
|
5059 |
+
|
5060 |
+
#: inc/custom-post-types/abstract.php:487
|
5061 |
+
msgid "draft updated."
|
5062 |
+
msgstr "wersja robocza zaktualizowana."
|
5063 |
+
|
5064 |
+
#: inc/custom-post-types/course.php:72
|
5065 |
+
msgctxt "Post Type General Name"
|
5066 |
+
msgid "Courses"
|
5067 |
+
msgstr "Kursy"
|
5068 |
+
|
5069 |
+
#: inc/custom-post-types/course.php:73
|
5070 |
+
msgctxt "Post Type Singular Name"
|
5071 |
+
msgid "Course"
|
5072 |
+
msgstr "Kurs"
|
5073 |
+
|
5074 |
+
#: inc/custom-post-types/course.php:75
|
5075 |
+
msgid "Parent Item:"
|
5076 |
+
msgstr "Rodzic elementu:"
|
5077 |
+
|
5078 |
+
#: inc/custom-post-types/course.php:77
|
5079 |
+
msgid "View Course"
|
5080 |
+
msgstr "Zobacz kurs"
|
5081 |
+
|
5082 |
+
#: inc/custom-post-types/course.php:78
|
5083 |
+
msgid "Add New Course"
|
5084 |
+
msgstr "Dodaj nowy kurs"
|
5085 |
+
|
5086 |
+
#: inc/custom-post-types/course.php:79 inc/custom-post-types/lesson.php:185
|
5087 |
+
#: inc/custom-post-types/order.php:849 inc/custom-post-types/question.php:173
|
5088 |
+
msgid "Add New"
|
5089 |
+
msgstr "Dodaj nowy"
|
5090 |
+
|
5091 |
+
#: inc/custom-post-types/course.php:80
|
5092 |
+
msgid "Edit Course"
|
5093 |
+
msgstr "Edytuj kurs"
|
5094 |
+
|
5095 |
+
#: inc/custom-post-types/course.php:81
|
5096 |
+
msgid "Update Course"
|
5097 |
+
msgstr "Zaktualizuj kurs"
|
5098 |
+
|
5099 |
+
#: inc/custom-post-types/course.php:82
|
5100 |
+
msgid "Search Courses"
|
5101 |
+
msgstr "Wyszukaj kursy"
|
5102 |
+
|
5103 |
+
#: inc/custom-post-types/course.php:83
|
5104 |
+
#, php-format
|
5105 |
+
msgid ""
|
5106 |
+
"You haven't had any courses yet. Click <a href=\"%s\">Add new</a> to start"
|
5107 |
+
msgstr ""
|
5108 |
+
"Nie masz jeszcze żadnych kursów. Kliknij <a href=\"%s\">Dodaj nowy</a> aby "
|
5109 |
+
"zacząć"
|
5110 |
+
|
5111 |
+
#: inc/custom-post-types/course.php:84
|
5112 |
+
msgid "No course found in Trash"
|
5113 |
+
msgstr "Nie znaleziono kursów w śmieciach"
|
5114 |
+
|
5115 |
+
#: inc/custom-post-types/course.php:124 inc/custom-post-types/course.php:126
|
5116 |
+
msgid "Course Categories"
|
5117 |
+
msgstr "Kategorie kursu"
|
5118 |
+
|
5119 |
+
#: inc/custom-post-types/course.php:127 inc/custom-post-types/course.php:128
|
5120 |
+
msgid "Category"
|
5121 |
+
msgstr "Kategoria"
|
5122 |
+
|
5123 |
+
#: inc/custom-post-types/course.php:129
|
5124 |
+
msgid "Add New Course Category"
|
5125 |
+
msgstr "Dodaj nową kategorie kursu"
|
5126 |
+
|
5127 |
+
#: inc/custom-post-types/course.php:130
|
5128 |
+
msgid "All Categories"
|
5129 |
+
msgstr "Wszystkie Kategorie"
|
5130 |
+
|
5131 |
+
#: inc/custom-post-types/course.php:141
|
5132 |
+
msgctxt "slug"
|
5133 |
+
msgid "course-category"
|
5134 |
+
msgstr "etykieta-kategorii"
|
5135 |
+
|
5136 |
+
#: inc/custom-post-types/course.php:152
|
5137 |
+
msgid "Course Tags"
|
5138 |
+
msgstr "Etykiety kursów"
|
5139 |
+
|
5140 |
+
#: inc/custom-post-types/course.php:153 inc/custom-post-types/question.php:146
|
5141 |
+
#: inc/custom-post-types/question.php:147 inc/updates/_update-from-0.9.php:1194
|
5142 |
+
#: inc/updates/_update-from-0.9.php:1195 inc/updates/_update-from-0.9.php:1196
|
5143 |
+
#: inc/updates/_update-from-0.9.php:1217 inc/updates/_update-from-0.9.php:1218
|
5144 |
+
msgid "Tag"
|
5145 |
+
msgstr "Tag"
|
5146 |
+
|
5147 |
+
#: inc/custom-post-types/course.php:154
|
5148 |
+
msgid "Search Course Tags"
|
5149 |
+
msgstr "Wyszukaj tagi kursów"
|
5150 |
+
|
5151 |
+
#: inc/custom-post-types/course.php:155
|
5152 |
+
msgid "Popular Course Tags"
|
5153 |
+
msgstr "Popularne etykiety kursów"
|
5154 |
+
|
5155 |
+
#: inc/custom-post-types/course.php:156
|
5156 |
+
msgid "All Course Tags"
|
5157 |
+
msgstr "Wszystkie etykiety kursu"
|
5158 |
+
|
5159 |
+
#: inc/custom-post-types/course.php:159
|
5160 |
+
msgid "Edit Course Tag"
|
5161 |
+
msgstr "Edytuj tag kursu"
|
5162 |
+
|
5163 |
+
#: inc/custom-post-types/course.php:160
|
5164 |
+
msgid "Update Course Tag"
|
5165 |
+
msgstr "Zaktualizuj etykietę kursu"
|
5166 |
+
|
5167 |
+
#: inc/custom-post-types/course.php:161
|
5168 |
+
msgid "Add New Course Tag"
|
5169 |
+
msgstr "Dodaj nową etykietę kursu"
|
5170 |
+
|
5171 |
+
#: inc/custom-post-types/course.php:162
|
5172 |
+
msgid "New Course Tag Name"
|
5173 |
+
msgstr "Etykieta nowego kursu"
|
5174 |
+
|
5175 |
+
#: inc/custom-post-types/course.php:163
|
5176 |
+
msgid "Separate tags with commas"
|
5177 |
+
msgstr "Oddzielaj tagi przecinkiem"
|
5178 |
+
|
5179 |
+
#: inc/custom-post-types/course.php:164
|
5180 |
+
msgid "Add or remove tags"
|
5181 |
+
msgstr "Dodaj lub usuń tagi"
|
5182 |
+
|
5183 |
+
#: inc/custom-post-types/course.php:165
|
5184 |
+
msgid "Choose from the most used tags"
|
5185 |
+
msgstr "Wybierz z najczęściej używanych tagów"
|
5186 |
+
|
5187 |
+
#: inc/custom-post-types/course.php:175
|
5188 |
+
msgctxt "slug"
|
5189 |
+
msgid "course-tag"
|
5190 |
+
msgstr "etykieta-kursu"
|
5191 |
+
|
5192 |
+
#: inc/custom-post-types/course.php:212
|
5193 |
+
msgid "Create a new"
|
5194 |
+
msgstr "Stwórz nowy"
|
5195 |
+
|
5196 |
+
#: inc/custom-post-types/course.php:345
|
5197 |
+
msgid "Sorry! You can not update a course while it is being viewed!"
|
5198 |
+
msgstr "Sorry! Nie możesz załadować kursu, kiedy ten jest przeglądany!"
|
5199 |
+
|
5200 |
+
#: inc/custom-post-types/course.php:516
|
5201 |
+
msgid "Course Settings"
|
5202 |
+
msgstr "Ustawienia kursu"
|
5203 |
+
|
5204 |
+
#: inc/custom-post-types/course.php:538 inc/custom-post-types/lesson.php:312
|
5205 |
+
#: inc/custom-post-types/quiz.php:253 inc/custom-post-types/quiz.php:338
|
5206 |
+
#: templates/content-quiz/intro.php:28
|
5207 |
+
msgid "Duration"
|
5208 |
+
msgstr "Czas trwania"
|
5209 |
+
|
5210 |
+
#: inc/custom-post-types/course.php:541
|
5211 |
+
msgid "The duration of the course."
|
5212 |
+
msgstr "Czas trwania kursu."
|
5213 |
+
|
5214 |
+
#: inc/custom-post-types/course.php:545
|
5215 |
+
msgid "Maximum Students"
|
5216 |
+
msgstr "Max kursantów"
|
5217 |
+
|
5218 |
+
#: inc/custom-post-types/course.php:548
|
5219 |
+
msgid "Maximum number of students who can enroll in this course."
|
5220 |
+
msgstr "Maksymalna liczba kursantów, którzy mogą dołączyć do kursu."
|
5221 |
+
|
5222 |
+
#: inc/custom-post-types/course.php:552
|
5223 |
+
msgid "Students Enrolled"
|
5224 |
+
msgstr "Uczestnicy"
|
5225 |
+
|
5226 |
+
#: inc/custom-post-types/course.php:555
|
5227 |
+
msgid "How many students have taken this course."
|
5228 |
+
msgstr "Ilu kursantów już wzięło udział w kursie."
|
5229 |
+
|
5230 |
+
#: inc/custom-post-types/course.php:566
|
5231 |
+
msgid "Re-take Course"
|
5232 |
+
msgstr "Spróbuj ponownie"
|
5233 |
+
|
5234 |
+
#: inc/custom-post-types/course.php:570
|
5235 |
+
msgid ""
|
5236 |
+
"How many times the user can re-take this course. Set to 0 to disable re-"
|
5237 |
+
"taking"
|
5238 |
+
msgstr ""
|
5239 |
+
"Ile razy kursant może wziąć udział ponownie w kursie. Wybierz 0, aby wyłączyć"
|
5240 |
+
|
5241 |
+
#: inc/custom-post-types/course.php:574
|
5242 |
+
msgid "Featured"
|
5243 |
+
msgstr "Polecany"
|
5244 |
+
|
5245 |
+
#: inc/custom-post-types/course.php:577
|
5246 |
+
msgid "Set course as featured."
|
5247 |
+
msgstr "Ustaw kurs jako polecany."
|
5248 |
+
|
5249 |
+
#: inc/custom-post-types/course.php:581
|
5250 |
+
msgid "Block Lessons Content"
|
5251 |
+
msgstr "Blokuj treść Lekcji"
|
5252 |
+
|
5253 |
+
#: inc/custom-post-types/course.php:584
|
5254 |
+
msgid "Block lessons content when completed course."
|
5255 |
+
msgstr ""
|
5256 |
+
|
5257 |
+
#: inc/custom-post-types/course.php:588
|
5258 |
+
msgid "External Link to buy Course"
|
5259 |
+
msgstr "Link zewnętrzny, aby kupić kurs"
|
5260 |
+
|
5261 |
+
#: inc/custom-post-types/course.php:591
|
5262 |
+
msgid "Redirect to this url when you press button buy this course."
|
5263 |
+
msgstr "Przekieruj na ten URL kiedy klikniesz na przycisk \"kup ten kurs\"."
|
5264 |
+
|
5265 |
+
#: inc/custom-post-types/course.php:619
|
5266 |
+
msgid "The method to assess the result of a student for a course."
|
5267 |
+
msgstr "Metoda oceniania kursantów podczas kursu."
|
5268 |
+
|
5269 |
+
#: inc/custom-post-types/course.php:622
|
5270 |
+
msgid ""
|
5271 |
+
"<br /><strong>Note! </strong>No final quiz in course, please add a final quiz"
|
5272 |
+
msgstr ""
|
5273 |
+
"<br /><strong>Wiadomość! </strong>Brak testu kończącego, proszę dodaj go"
|
5274 |
+
|
5275 |
+
#: inc/custom-post-types/course.php:639
|
5276 |
+
msgid ""
|
5277 |
+
"This is conditional \"passing grade\" of Final quiz will apply for result of "
|
5278 |
+
"this course. When you change it here, the \"passing grade\" also change with "
|
5279 |
+
"new value for the Final quiz."
|
5280 |
+
msgstr ""
|
5281 |
+
"Warunkiem zaliczenia tego kursu jest złożenie oceny końcowej z testu "
|
5282 |
+
"końcowego. Kiedy zmienisz to tutaj, \"ocena pozytywna\" również zmieni się z "
|
5283 |
+
"nową wartością do końcowego testu."
|
5284 |
+
|
5285 |
+
#: inc/custom-post-types/course.php:645
|
5286 |
+
msgid ""
|
5287 |
+
"<p>Evaluate by number of lessons completed per number of total lessons.</p>"
|
5288 |
+
msgstr "<p>Na podstawie liczby lekcji ukończonych do łącznej liczby testów</p>"
|
5289 |
+
|
5290 |
+
#: inc/custom-post-types/course.php:646
|
5291 |
+
msgid ""
|
5292 |
+
"E.g: Course has 10 lessons and user completed 5 lessons then the result = "
|
5293 |
+
"5/10 = 50.%"
|
5294 |
+
msgstr ""
|
5295 |
+
"Na przykład kurs ma 10 lekcji, użytkownik ukończył 5, to wynik to = 5/10 = "
|
5296 |
+
"50%"
|
5297 |
+
|
5298 |
+
#: inc/custom-post-types/course.php:647
|
5299 |
+
msgid ""
|
5300 |
+
"Evaluate by results of final quiz in course. You have to add a quiz into end "
|
5301 |
+
"of course."
|
5302 |
+
msgstr ""
|
5303 |
+
"Na podstawie wyniku testu kończącego kurs. Musisz dodać test na końcu kursu."
|
5304 |
+
|
5305 |
+
#: inc/custom-post-types/course.php:648
|
5306 |
+
msgid ""
|
5307 |
+
"Evaluate by achieved points of completed quizzes per total point of all "
|
5308 |
+
"quizzes."
|
5309 |
+
msgstr ""
|
5310 |
+
"Na podstawie średniej ilości punktów z testów ukończonych do łączne liczby "
|
5311 |
+
"możliwych punktów z wszystkich testów."
|
5312 |
+
|
5313 |
+
#: inc/custom-post-types/course.php:649
|
5314 |
+
msgid ""
|
5315 |
+
"Evaluate by achieved points of quizzes passed per total point of all quizzes."
|
5316 |
+
msgstr ""
|
5317 |
+
"Na podstawie średniej ilości punktów z testów zdanych do łączne liczby "
|
5318 |
+
"możliwych punktów z wszystkich testów."
|
5319 |
+
|
5320 |
+
#: inc/custom-post-types/course.php:650
|
5321 |
+
msgid ""
|
5322 |
+
"<p>Evaluate by number of quizzes completed per number of total quizzes.</p>"
|
5323 |
+
msgstr ""
|
5324 |
+
"<p>Na podstawie liczby ukończonych testów do łącznej liczby testów.</p>"
|
5325 |
+
|
5326 |
+
#: inc/custom-post-types/course.php:651
|
5327 |
+
msgid ""
|
5328 |
+
"<p>E.g: Course has 10 quizzes and user completed 5 quizzes then the result = "
|
5329 |
+
"5/10 = 50%.</p>"
|
5330 |
+
msgstr ""
|
5331 |
+
"<p>Na przykład kurs ma 10 testów, użytkownik ukończył 5, to wynik to = 5/10 "
|
5332 |
+
"= 50%.</p>"
|
5333 |
+
|
5334 |
+
#: inc/custom-post-types/course.php:658
|
5335 |
+
msgid "Assessment"
|
5336 |
+
msgstr "Ocena"
|
5337 |
+
|
5338 |
+
#: inc/custom-post-types/course.php:664
|
5339 |
+
msgid "Course result"
|
5340 |
+
msgstr "Wynik kursu"
|
5341 |
+
|
5342 |
+
#: inc/custom-post-types/course.php:669
|
5343 |
+
msgid "Evaluate via lessons"
|
5344 |
+
msgstr "Na podstawie lekcji"
|
5345 |
+
|
5346 |
+
#: inc/custom-post-types/course.php:671
|
5347 |
+
msgid "Evaluate via results of the final quiz"
|
5348 |
+
msgstr "Na podstawie testu kończącego"
|
5349 |
+
|
5350 |
+
#: inc/custom-post-types/course.php:674
|
5351 |
+
msgid "Evaluate via results of quizzes"
|
5352 |
+
msgstr "Na podstawie wyniku testów"
|
5353 |
+
|
5354 |
+
#: inc/custom-post-types/course.php:676
|
5355 |
+
msgid "Evaluate via results of quizzes passed"
|
5356 |
+
msgstr "Na podstawie zaliczonych testów"
|
5357 |
+
|
5358 |
+
#: inc/custom-post-types/course.php:678
|
5359 |
+
msgid "Evaluate via quizzes"
|
5360 |
+
msgstr "Na podstawie testów"
|
5361 |
+
|
5362 |
+
#: inc/custom-post-types/course.php:685
|
5363 |
+
msgid "Passing condition value"
|
5364 |
+
msgstr "Próg zdawalności"
|
5365 |
+
|
5366 |
+
#: inc/custom-post-types/course.php:690
|
5367 |
+
msgid ""
|
5368 |
+
"The percentage of quiz result or completed lessons to finish the course."
|
5369 |
+
msgstr "Minimalna liczba procent z testu, aby ukończyć pozytywnie kurs."
|
5370 |
+
|
5371 |
+
#: inc/custom-post-types/course.php:753
|
5372 |
+
#, php-format
|
5373 |
+
msgid ""
|
5374 |
+
"This course requires enrollment and the suggested price is <strong>"
|
5375 |
+
"%s</strong>"
|
5376 |
+
msgstr "Kurs wymaga rejestracji, a sugerowana cena wynosi <strong>%s</strong>"
|
5377 |
+
|
5378 |
+
#: inc/custom-post-types/course.php:761
|
5379 |
+
msgid "This course is free."
|
5380 |
+
msgstr "Ten kurs jest darmowy."
|
5381 |
+
|
5382 |
+
#: inc/custom-post-types/course.php:768
|
5383 |
+
#, php-format
|
5384 |
+
msgid "Course price in <strong>%s</strong> currency."
|
5385 |
+
msgstr "Cena kursu w <strong>%s</strong>."
|
5386 |
+
|
5387 |
+
#: inc/custom-post-types/course.php:782 inc/custom-post-types/course.php:1243
|
5388 |
+
#: inc/custom-post-types/course.php:1250
|
5389 |
+
#: templates/emails/order-items-table.php:59
|
5390 |
+
msgid "Price"
|
5391 |
+
msgstr "Cena"
|
5392 |
+
|
5393 |
+
#: inc/custom-post-types/course.php:792
|
5394 |
+
msgid "Sale Price"
|
5395 |
+
msgstr "Cena sprzedaży"
|
5396 |
+
|
5397 |
+
#: inc/custom-post-types/course.php:799
|
5398 |
+
#, php-format
|
5399 |
+
msgid "Course sale price in <strong>%s</strong> currency."
|
5400 |
+
msgstr "Cena kursu w<strong>%s</strong>."
|
5401 |
+
|
5402 |
+
#: inc/custom-post-types/course.php:800
|
5403 |
+
msgid "Leave blank to remove sale price."
|
5404 |
+
msgstr "Zostaw puste by usunąć cenę sprzedaży."
|
5405 |
+
|
5406 |
+
#: inc/custom-post-types/course.php:802
|
5407 |
+
msgid "Schedule"
|
5408 |
+
msgstr "Harmonogram"
|
5409 |
+
|
5410 |
+
#: inc/custom-post-types/course.php:807
|
5411 |
+
msgid "Sale start date"
|
5412 |
+
msgstr "Data rozpoczęcia sprzedaży"
|
5413 |
+
|
5414 |
+
#: inc/custom-post-types/course.php:815
|
5415 |
+
msgid "Sale end date"
|
5416 |
+
msgstr "Data zakończenia sprzedaży"
|
5417 |
+
|
5418 |
+
#: inc/custom-post-types/course.php:827
|
5419 |
+
msgid "Price set by Admin"
|
5420 |
+
msgstr "Cena ustalona przez Administratora"
|
5421 |
+
|
5422 |
+
#: inc/custom-post-types/course.php:831
|
5423 |
+
msgid "Not set"
|
5424 |
+
msgstr "Nie wybrano"
|
5425 |
+
|
5426 |
+
#: inc/custom-post-types/course.php:834
|
5427 |
+
msgid "Course Suggestion Price"
|
5428 |
+
msgstr "Sugerowana cena kursu"
|
5429 |
+
|
5430 |
+
#: inc/custom-post-types/course.php:839
|
5431 |
+
msgid "The course price you want to suggest for admin to set."
|
5432 |
+
msgstr "Sugerowana cena kursu do zatwierdzenia przez admina."
|
5433 |
+
|
5434 |
+
#: inc/custom-post-types/course.php:850
|
5435 |
+
msgid "No require enrollment"
|
5436 |
+
msgstr "Nie wymaga dołączenia"
|
5437 |
+
|
5438 |
+
#: inc/custom-post-types/course.php:853
|
5439 |
+
msgid "Require users logged in to study or public to all."
|
5440 |
+
msgstr "Czy wymagać od użytkowników rejestracji/zalogowania."
|
5441 |
+
|
5442 |
+
#: inc/custom-post-types/course.php:893 inc/custom-post-types/course.php:899
|
5443 |
+
#: inc/custom-post-types/course.php:1240 inc/custom-post-types/course.php:1247
|
5444 |
+
#: inc/custom-post-types/lesson.php:307 inc/custom-post-types/question.php:319
|
5445 |
+
#: inc/custom-post-types/quiz.php:335
|
5446 |
+
msgid "Author"
|
5447 |
+
msgstr "Autor"
|
5448 |
+
|
5449 |
+
#: inc/custom-post-types/course.php:921
|
5450 |
+
msgid "Review Logs"
|
5451 |
+
msgstr "Sprawdź opinie"
|
5452 |
+
|
5453 |
+
#: inc/custom-post-types/course.php:970
|
5454 |
+
msgid "Course Video"
|
5455 |
+
msgstr "Wideo kursu"
|
5456 |
+
|
5457 |
+
#: inc/custom-post-types/course.php:975
|
5458 |
+
msgid "Video ID"
|
5459 |
+
msgstr "ID Wideo"
|
5460 |
+
|
5461 |
+
#: inc/custom-post-types/course.php:978
|
5462 |
+
msgid "The ID of Youtube or Vimeo video"
|
5463 |
+
msgstr "ID filmiku na Youtube lub Vimeo"
|
5464 |
+
|
5465 |
+
#: inc/custom-post-types/course.php:982
|
5466 |
+
msgid "Video Type"
|
5467 |
+
msgstr "Typ Wideo"
|
5468 |
+
|
5469 |
+
#: inc/custom-post-types/course.php:985
|
5470 |
+
msgid "Chose video type"
|
5471 |
+
msgstr "Wybierz typ Wideo"
|
5472 |
+
|
5473 |
+
#: inc/custom-post-types/course.php:988
|
5474 |
+
msgid "Youtube"
|
5475 |
+
msgstr "Youtube"
|
5476 |
+
|
5477 |
+
#: inc/custom-post-types/course.php:989
|
5478 |
+
msgid "Vimeo"
|
5479 |
+
msgstr "Vimeo"
|
5480 |
+
|
5481 |
+
#: inc/custom-post-types/course.php:993
|
5482 |
+
msgid "Embed width"
|
5483 |
+
msgstr "Szerokość osadzenia"
|
5484 |
+
|
5485 |
+
#: inc/custom-post-types/course.php:996
|
5486 |
+
msgid "Set width of embed"
|
5487 |
+
msgstr "Wybierz szerokość osadzenia"
|
5488 |
+
|
5489 |
+
#: inc/custom-post-types/course.php:1000
|
5490 |
+
msgid "Embed height"
|
5491 |
+
msgstr "Wysokość osadzenia"
|
5492 |
+
|
5493 |
+
#: inc/custom-post-types/course.php:1003
|
5494 |
+
msgid "Set height of embed"
|
5495 |
+
msgstr "Wybierz wysokość osadzenia"
|
5496 |
+
|
5497 |
+
#: inc/custom-post-types/course.php:1125
|
5498 |
+
msgid "Course has been approved by Reviewer"
|
5499 |
+
msgstr "Kurs został zaakceptowany przez Recenzenta"
|
5500 |
+
|
5501 |
+
#: inc/custom-post-types/course.php:1130
|
5502 |
+
msgid "Course has been rejected by Reviewer"
|
5503 |
+
msgstr "Kurs został odrzucony przez Recenzenta"
|
5504 |
+
|
5505 |
+
#: inc/custom-post-types/course.php:1135
|
5506 |
+
#, php-format
|
5507 |
+
msgid "Course has been submitted by %s"
|
5508 |
+
msgstr "Kurs został złożony przez %s"
|
5509 |
+
|
5510 |
+
#: inc/custom-post-types/course.php:1140
|
5511 |
+
msgid "Course has been updated by Reviewer"
|
5512 |
+
msgstr "Kurs został zaktualizowany przez Recenzenta"
|
5513 |
+
|
5514 |
+
#: inc/custom-post-types/course.php:1241 inc/custom-post-types/course.php:1248
|
5515 |
+
msgid "Content"
|
5516 |
+
msgstr "Zawartość"
|
5517 |
+
|
5518 |
+
#: inc/custom-post-types/course.php:1302
|
5519 |
+
#, php-format
|
5520 |
+
msgid "%d section"
|
5521 |
+
msgid_plural "%d sections"
|
5522 |
+
msgstr[0] "%d sekcja"
|
5523 |
+
msgstr[1] "%d sekcje"
|
5524 |
+
msgstr[2] "%d sekcji"
|
5525 |
+
|
5526 |
+
#: inc/custom-post-types/course.php:1302
|
5527 |
+
msgid "0 section"
|
5528 |
+
msgstr "0 sekcji"
|
5529 |
+
|
5530 |
+
#: inc/custom-post-types/course.php:1304
|
5531 |
+
#: templates/widgets/featured-courses/default.php:86
|
5532 |
+
#: templates/widgets/popular-courses/default.php:81
|
5533 |
+
#: templates/widgets/recent-courses/default.php:86
|
5534 |
+
#, php-format
|
5535 |
+
msgid "%d lesson"
|
5536 |
+
msgid_plural "%d lessons"
|
5537 |
+
msgstr[0] "Jedna lekcja"
|
5538 |
+
msgstr[1] "%d lekcja"
|
5539 |
+
msgstr[2] "%d lekcje"
|
5540 |
+
|
5541 |
+
#: inc/custom-post-types/course.php:1304
|
5542 |
+
msgid "0 lesson"
|
5543 |
+
msgstr "0 lekcji"
|
5544 |
+
|
5545 |
+
#: inc/custom-post-types/course.php:1306
|
5546 |
+
#, php-format
|
5547 |
+
msgid "%d quiz"
|
5548 |
+
msgid_plural "%d quizzes"
|
5549 |
+
msgstr[0] "%d test"
|
5550 |
+
msgstr[1] "%d testy"
|
5551 |
+
msgstr[2] "%d testów"
|
5552 |
+
|
5553 |
+
#: inc/custom-post-types/course.php:1306
|
5554 |
+
msgid "0 quiz"
|
5555 |
+
msgstr "0 testów"
|
5556 |
+
|
5557 |
+
#: inc/custom-post-types/course.php:1313
|
5558 |
+
msgid "No content"
|
5559 |
+
msgstr "Brak treści"
|
5560 |
+
|
5561 |
+
#: inc/custom-post-types/course.php:1333
|
5562 |
+
msgid "No required enroll"
|
5563 |
+
msgstr "Nie wymagane dołączenie"
|
5564 |
+
|
5565 |
+
#: inc/custom-post-types/lesson.php:95 inc/custom-post-types/question.php:64
|
5566 |
+
#: inc/custom-post-types/quiz.php:64
|
5567 |
+
#, php-format
|
5568 |
+
msgid "Unassigned %s"
|
5569 |
+
msgstr "Nieprzypisany %s"
|
5570 |
+
|
5571 |
+
#: inc/custom-post-types/lesson.php:111
|
5572 |
+
#, php-format
|
5573 |
+
msgid "Preview %s"
|
5574 |
+
msgstr "Podgląd %s"
|
5575 |
+
|
5576 |
+
#: inc/custom-post-types/lesson.php:128
|
5577 |
+
#, php-format
|
5578 |
+
msgid "No Preview %s"
|
5579 |
+
msgstr "Brak podglądu %s"
|
5580 |
+
|
5581 |
+
#: inc/custom-post-types/lesson.php:179 inc/custom-post-types/lesson.php:180
|
5582 |
+
#: inc/custom-post-types/lesson.php:183
|
5583 |
+
#: templates/widgets/course-info/default.php:29
|
5584 |
+
msgid "Lessons"
|
5585 |
+
msgstr "Lekcje"
|
5586 |
+
|
5587 |
+
#: inc/custom-post-types/lesson.php:182
|
5588 |
+
msgid "Add New Lesson"
|
5589 |
+
msgstr "Dodaj nową lekcję"
|
5590 |
+
|
5591 |
+
#: inc/custom-post-types/lesson.php:184
|
5592 |
+
msgid "View Lesson"
|
5593 |
+
msgstr "Zobacz lekcję"
|
5594 |
+
|
5595 |
+
#: inc/custom-post-types/lesson.php:186
|
5596 |
+
msgid "Edit Lesson"
|
5597 |
+
msgstr "Edytuj lekcję"
|
5598 |
+
|
5599 |
+
#: inc/custom-post-types/lesson.php:187
|
5600 |
+
msgid "Update Lesson"
|
5601 |
+
msgstr "Zaktualizuj lekcję"
|
5602 |
+
|
5603 |
+
#: inc/custom-post-types/lesson.php:188
|
5604 |
+
msgid "Search Lessons"
|
5605 |
+
msgstr "Wyszukaj lekcje"
|
5606 |
+
|
5607 |
+
#: inc/custom-post-types/lesson.php:189
|
5608 |
+
msgid "No lesson found"
|
5609 |
+
msgstr "Nie znaleziono lekcji"
|
5610 |
+
|
5611 |
+
#: inc/custom-post-types/lesson.php:190
|
5612 |
+
msgid "No lesson found in Trash"
|
5613 |
+
msgstr "Nie znaleziono lekcji w śmieciach"
|
5614 |
+
|
5615 |
+
#: inc/custom-post-types/lesson.php:224
|
5616 |
+
msgid "Lesson Settings"
|
5617 |
+
msgstr "Ustawienia lekcji"
|
5618 |
+
|
5619 |
+
#: inc/custom-post-types/lesson.php:228
|
5620 |
+
msgid "Lesson Duration"
|
5621 |
+
msgstr "Czas trwania lekcji"
|
5622 |
+
|
5623 |
+
#: inc/custom-post-types/lesson.php:232
|
5624 |
+
msgid "Duration of the lesson. Set 0 to disable."
|
5625 |
+
msgstr "Czas trwania lekcji. Wybierz 0, aby wyłączyć."
|
5626 |
+
|
5627 |
+
#: inc/custom-post-types/lesson.php:236
|
5628 |
+
msgid "Preview Lesson"
|
5629 |
+
msgstr "Podgląd lekcji"
|
5630 |
+
|
5631 |
+
#: inc/custom-post-types/lesson.php:239
|
5632 |
+
msgid ""
|
5633 |
+
"If this is a preview lesson, then student can view this lesson content "
|
5634 |
+
"without taking the course."
|
5635 |
+
msgstr ""
|
5636 |
+
"Jeżeli włączona jest lekcja demonstracyjna, to każdy kursant może zobaczyć "
|
5637 |
+
"zawartość lekcji, bez dołączenia do kursu."
|
5638 |
+
|
5639 |
+
#: inc/custom-post-types/lesson.php:311
|
5640 |
+
msgid "Format"
|
5641 |
+
msgstr "Format"
|
5642 |
+
|
5643 |
+
#: inc/custom-post-types/lesson.php:366
|
5644 |
+
msgid "Standard"
|
5645 |
+
msgstr "Standardowy"
|
5646 |
+
|
5647 |
+
#: inc/custom-post-types/lesson.php:448
|
5648 |
+
msgid "Please enter the title of the lesson"
|
5649 |
+
msgstr "Proszę podać tytuł lekcji"
|
5650 |
+
|
5651 |
+
#: inc/custom-post-types/lesson.php:490 inc/custom-post-types/question.php:513
|
5652 |
+
#: inc/custom-post-types/quiz.php:610
|
5653 |
+
msgid "Assigned"
|
5654 |
+
msgstr "Przydzielony"
|
5655 |
+
|
5656 |
+
#: inc/custom-post-types/order.php:489
|
5657 |
+
msgid "Order number, user name, user email, course name etc..."
|
5658 |
+
msgstr "Numer zamówienia, nazwa użytkownika, email, nazwa kursu itd..."
|
5659 |
+
|
5660 |
+
#: inc/custom-post-types/order.php:575
|
5661 |
+
msgid "Processing..."
|
5662 |
+
msgstr "Przetwarzanie ..."
|
5663 |
+
|
5664 |
+
#: inc/custom-post-types/order.php:592 inc/custom-post-types/order.php:595
|
5665 |
+
msgid "Apply"
|
5666 |
+
msgstr "Włącz"
|
5667 |
+
|
5668 |
+
#: inc/custom-post-types/order.php:633 inc/custom-post-types/order.php:848
|
5669 |
+
msgid "View Order"
|
5670 |
+
msgstr "Zobacz zamówienie"
|
5671 |
+
|
5672 |
+
#: inc/custom-post-types/order.php:641
|
5673 |
+
msgid "View child orders"
|
5674 |
+
msgstr "Zobacz pod zamówienia"
|
5675 |
+
|
5676 |
+
#: inc/custom-post-types/order.php:709 inc/custom-post-types/order.php:844
|
5677 |
+
#: templates/profile/tabs/orders/list.php:32
|
5678 |
+
msgid "Order"
|
5679 |
+
msgstr "Zamówienie"
|
5680 |
+
|
5681 |
+
#: inc/custom-post-types/order.php:710
|
5682 |
+
msgid "Student"
|
5683 |
+
msgstr "Kursant"
|
5684 |
+
|
5685 |
+
#: inc/custom-post-types/order.php:762 inc/order/class-lp-order.php:508
|
5686 |
+
msgid "(Guest)"
|
5687 |
+
msgstr "(Gość)"
|
5688 |
+
|
5689 |
+
#: inc/custom-post-types/order.php:793
|
5690 |
+
msgid "Course does not exist"
|
5691 |
+
msgstr "Kurs nie istnieje"
|
5692 |
+
|
5693 |
+
#: inc/custom-post-types/order.php:807
|
5694 |
+
msgid "(No item)"
|
5695 |
+
msgstr "(brak elementów)"
|
5696 |
+
|
5697 |
+
#: inc/custom-post-types/order.php:815
|
5698 |
+
#, php-format
|
5699 |
+
msgid "Pay via <strong>%s</strong>"
|
5700 |
+
msgstr "Zapłacone przez <strong>%s</strong>"
|
5701 |
+
|
5702 |
+
#: inc/custom-post-types/order.php:845
|
5703 |
+
msgid "Add New Order"
|
5704 |
+
msgstr "Dodaj nowe zamówienie"
|
5705 |
+
|
5706 |
+
#: inc/custom-post-types/order.php:846 inc/custom-post-types/order.php:929
|
5707 |
+
#: templates/order/order-details.php:23
|
5708 |
+
msgid "Order Details"
|
5709 |
+
msgstr "Szczegóły zamówienia"
|
5710 |
+
|
5711 |
+
#: inc/custom-post-types/order.php:850
|
5712 |
+
msgid "Update Order"
|
5713 |
+
msgstr "Zaktualizuj zamówienie"
|
5714 |
+
|
5715 |
+
#: inc/custom-post-types/order.php:851
|
5716 |
+
msgid "Search Orders"
|
5717 |
+
msgstr "Wyszukaj zamówienia"
|
5718 |
+
|
5719 |
+
#: inc/custom-post-types/order.php:852
|
5720 |
+
msgid "No order found"
|
5721 |
+
msgstr "Brak zamówień"
|
5722 |
+
|
5723 |
+
#: inc/custom-post-types/order.php:853
|
5724 |
+
msgid "No order found in Trash"
|
5725 |
+
msgstr "Brak zamówień w Śmieciach"
|
5726 |
+
|
5727 |
+
#: inc/custom-post-types/order.php:930
|
5728 |
+
msgid "Order Actions"
|
5729 |
+
msgstr "Akcje zamówienia"
|
5730 |
+
|
5731 |
+
#: inc/custom-post-types/question.php:145 inc/updates/_update-from-0.9.php:1216
|
5732 |
+
msgid "Question Tag"
|
5733 |
+
msgstr "Etykieta pytania"
|
5734 |
+
|
5735 |
+
#: inc/custom-post-types/question.php:148 inc/updates/_update-from-0.9.php:1197
|
5736 |
+
#: inc/updates/_update-from-0.9.php:1219
|
5737 |
+
msgid "Add New Tag"
|
5738 |
+
msgstr "Dodaj nowy znacznik /tag"
|
5739 |
+
|
5740 |
+
#: inc/custom-post-types/question.php:149 inc/updates/_update-from-0.9.php:1198
|
5741 |
+
#: inc/updates/_update-from-0.9.php:1220
|
5742 |
+
msgid "All Tags"
|
5743 |
+
msgstr "Wszystkie znaczniki /tagi"
|
5744 |
+
|
5745 |
+
#: inc/custom-post-types/question.php:167
|
5746 |
+
#: inc/custom-post-types/question.php:168
|
5747 |
+
msgid "Question Bank"
|
5748 |
+
msgstr "Zaktualizuj pytanie"
|
5749 |
+
|
5750 |
+
#: inc/custom-post-types/question.php:169
|
5751 |
+
#: templates/content-quiz/progress.php:43
|
5752 |
+
msgid "Question"
|
5753 |
+
msgstr "Pytanie"
|
5754 |
+
|
5755 |
+
#: inc/custom-post-types/question.php:171
|
5756 |
+
msgid "View Question"
|
5757 |
+
msgstr "Zobacz Pytanie"
|
5758 |
+
|
5759 |
+
#: inc/custom-post-types/question.php:172
|
5760 |
+
msgid "Add New Question"
|
5761 |
+
msgstr "Dodaj Nowe Pytanie"
|
5762 |
+
|
5763 |
+
#: inc/custom-post-types/question.php:174
|
5764 |
+
msgid "Edit Question"
|
5765 |
+
msgstr "Edytuj Pytanie"
|
5766 |
+
|
5767 |
+
#: inc/custom-post-types/question.php:175
|
5768 |
+
msgid "Update Question"
|
5769 |
+
msgstr "Zaktualizuj pytanie"
|
5770 |
+
|
5771 |
+
#: inc/custom-post-types/question.php:176
|
5772 |
+
msgid "Search Questions"
|
5773 |
+
msgstr "Wyszukaj pytania"
|
5774 |
+
|
5775 |
+
#: inc/custom-post-types/question.php:177
|
5776 |
+
msgid "No questions found"
|
5777 |
+
msgstr "Nie znaleziono pytań"
|
5778 |
+
|
5779 |
+
#: inc/custom-post-types/question.php:178
|
5780 |
+
msgid "No questions found in trash"
|
5781 |
+
msgstr "Nie znaleziono pytań w śmieciach"
|
5782 |
+
|
5783 |
+
#: inc/custom-post-types/quiz.php:93
|
5784 |
+
msgid "Add New Quiz"
|
5785 |
+
msgstr "Dodaj nowy test"
|
5786 |
+
|
5787 |
+
#: inc/custom-post-types/quiz.php:94
|
5788 |
+
msgid "Edit Quiz"
|
5789 |
+
msgstr "Edytuj test"
|
5790 |
+
|
5791 |
+
#: inc/custom-post-types/quiz.php:96
|
5792 |
+
msgid "View Quiz"
|
5793 |
+
msgstr "Zobacz test"
|
5794 |
|
5795 |
+
#: inc/custom-post-types/quiz.php:98
|
5796 |
+
msgid "Update Quiz"
|
5797 |
+
msgstr "Zaktualizuj test"
|
5798 |
|
5799 |
+
#: inc/custom-post-types/quiz.php:99
|
5800 |
+
msgid "Search Quizzes"
|
5801 |
+
msgstr "Wyszukaj testy"
|
5802 |
|
5803 |
+
#: inc/custom-post-types/quiz.php:100
|
5804 |
+
#, php-format
|
5805 |
+
msgid ""
|
5806 |
+
"You haven't had any quizzes yet. Click <a href=\"%s\">Add new</a> to start"
|
5807 |
+
msgstr ""
|
5808 |
+
"Nie masz jeszcze żadnych testów. Kliknij <a href=\"%s\">Dodaj nowy</a> aby "
|
5809 |
+
"zacząć"
|
|
|
|
|
|
|
|
|
|
|
5810 |
|
5811 |
+
#: inc/custom-post-types/quiz.php:101
|
5812 |
+
msgid "No quiz found in Trash"
|
5813 |
+
msgstr "Nie znaleziono testów w śmieciach"
|
5814 |
|
5815 |
+
#: inc/custom-post-types/quiz.php:174
|
5816 |
+
msgid "Option"
|
5817 |
+
msgstr "Opcja"
|
|
|
|
|
|
|
5818 |
|
5819 |
+
#: inc/custom-post-types/quiz.php:216
|
5820 |
+
msgid "General Settings"
|
5821 |
+
msgstr "Ogólne Ustawienia"
|
|
|
|
|
|
|
5822 |
|
5823 |
+
#: inc/custom-post-types/quiz.php:222
|
5824 |
+
msgid "Show Questions"
|
5825 |
+
msgstr "Pokaż pytania"
|
|
|
|
|
|
|
5826 |
|
5827 |
+
#: inc/custom-post-types/quiz.php:223
|
5828 |
+
msgid ""
|
5829 |
+
"Show list of questions while doing quiz as ordered numbers (1, 2, 3, etc)."
|
5830 |
+
msgstr "Pokaż listę pytań zgodnie z porządkiem w teście (1, 2, 3, itd.)."
|
|
|
5831 |
|
5832 |
+
#: inc/custom-post-types/quiz.php:229
|
5833 |
+
msgid "Review Questions"
|
5834 |
+
msgstr "Przejrzyj pytania"
|
5835 |
|
5836 |
+
#: inc/custom-post-types/quiz.php:232
|
5837 |
+
msgid "Allow re-viewing questions after completing quiz."
|
5838 |
+
msgstr "Umożliw ponowne przeglądnięcie pytań po zakończonym teście."
|
5839 |
|
5840 |
+
#: inc/custom-post-types/quiz.php:236
|
5841 |
+
msgid "Show Correct Answer"
|
5842 |
+
msgstr "Pokaż poprawne odpowiedzi"
|
5843 |
|
5844 |
+
#: inc/custom-post-types/quiz.php:239
|
5845 |
+
msgid "Show correct answer when reviewing questions."
|
5846 |
+
msgstr "Pokaż poprawna odpowiedź po zobaczeniu pytania."
|
5847 |
|
5848 |
+
#: inc/custom-post-types/quiz.php:254
|
5849 |
+
msgid "Duration of the quiz. Set 0 to disable."
|
5850 |
+
msgstr "Czas trwania testu. Wybierz 0, aby wyłączyć."
|
5851 |
|
5852 |
+
#: inc/custom-post-types/quiz.php:262
|
5853 |
+
msgid "Passing Grade (<span>%</span>)"
|
5854 |
+
msgstr "Wymagany próg (<span>%</span>)"
|
5855 |
|
5856 |
+
#: inc/custom-post-types/quiz.php:263
|
5857 |
+
msgid "Requires user reached this point to pass the quiz."
|
5858 |
+
msgstr "Wymagana ilość punktów, aby kursant zdał test."
|
5859 |
|
5860 |
+
#: inc/custom-post-types/quiz.php:272
|
5861 |
+
msgid "Re-take"
|
5862 |
+
msgstr "Weź udział ponownie"
|
5863 |
|
5864 |
+
#: inc/custom-post-types/quiz.php:275
|
5865 |
+
msgid ""
|
5866 |
+
"How many times the user can re-take this quiz. Set to 0 to disable re-taking"
|
5867 |
+
msgstr ""
|
5868 |
+
"Ile razu użytkownik może wziąć udział w teście. Wybierz 0, aby wyłączyć"
|
5869 |
|
5870 |
+
#: inc/custom-post-types/quiz.php:280
|
5871 |
+
msgid "Archive History"
|
5872 |
+
msgstr "Zarchiwizuj historię"
|
5873 |
|
5874 |
+
#: inc/custom-post-types/quiz.php:283
|
5875 |
+
msgid "Archive quiz results for each time."
|
5876 |
+
msgstr "Zarchiwizuj wyniki testów za każdym razem."
|
5877 |
|
5878 |
+
#: inc/custom-post-types/quiz.php:297
|
5879 |
+
msgid "Show Check Answer"
|
5880 |
+
msgstr "Pokaż Sprawdź odpowiedź"
|
5881 |
|
5882 |
+
#: inc/custom-post-types/quiz.php:300
|
5883 |
+
msgid ""
|
5884 |
+
"Show button to check answer while doing quiz ( 0 = Disabled, -1 = Unlimited, "
|
5885 |
+
"N = Number of check )."
|
5886 |
+
msgstr ""
|
5887 |
+
"Pokaż przycisk sprawdzający odpowiedź w trakcie testu (0 = wyłączone, -1 = "
|
5888 |
+
"bez limitu, N = Liczba sprawdzeń)."
|
5889 |
|
5890 |
+
#: inc/custom-post-types/quiz.php:306
|
5891 |
+
msgid "Show Hint"
|
5892 |
+
msgstr "Pokaż wskazówkę"
|
|
|
|
|
5893 |
|
5894 |
+
#: inc/custom-post-types/quiz.php:309
|
5895 |
+
msgid ""
|
5896 |
+
"Show button to hint answer while doing quiz ( 0 = Disabled, -1 = Unlimited, "
|
5897 |
+
"N = Number of check )."
|
5898 |
+
msgstr ""
|
5899 |
+
"Pokaż przycisk dający wskazówkę w trakcie testu (0 = wyłączone, -1 = bez "
|
5900 |
+
"limitu, N = Liczba sprawdzeń)."
|
5901 |
+
|
5902 |
+
#: inc/custom-post-types/quiz.php:388
|
5903 |
+
msgid "This quiz has no questions"
|
5904 |
+
msgstr "Ten test nie ma pytań"
|
5905 |
+
|
5906 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:27
|
5907 |
+
msgid "Request"
|
5908 |
+
msgstr "Wymagane"
|
5909 |
+
|
5910 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:28
|
5911 |
+
#: inc/emails/class-lp-email-instructor-accepted.php:27
|
5912 |
+
msgid "Become an instructor email."
|
5913 |
+
msgstr "Email Zostań instruktorem."
|
5914 |
+
|
5915 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:30
|
5916 |
+
#: inc/emails/class-lp-email-instructor-accepted.php:29
|
5917 |
+
msgid "[{{site_title}}] Request to become an instructor"
|
5918 |
+
msgstr "[{{site_title}}] Poproś o zostanie instruktorem"
|
5919 |
+
|
5920 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:31
|
5921 |
+
#: inc/emails/class-lp-email-instructor-accepted.php:30
|
5922 |
+
msgid "Become an instructor"
|
5923 |
+
msgstr "Zostań nauczycielem"
|
5924 |
+
|
5925 |
+
#: inc/emails/class-lp-email-cancelled-order-admin.php:27
|
5926 |
+
#: inc/emails/class-lp-email-enrolled-course-admin.php:28
|
5927 |
+
#: inc/emails/class-lp-email-finished-course-admin.php:28
|
5928 |
+
#: inc/emails/class-lp-email-new-order-admin.php:27
|
5929 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:26
|
5930 |
+
msgid "Admin"
|
5931 |
+
msgstr "Admin"
|
5932 |
+
|
5933 |
+
#: inc/emails/class-lp-email-cancelled-order-admin.php:28
|
5934 |
+
msgid "Send email to admin when order has been cancelled."
|
5935 |
+
msgstr "Wyślij emaila do admina, kiedy zamówienie zostanie anulowane."
|
5936 |
+
|
5937 |
+
#: inc/emails/class-lp-email-cancelled-order-admin.php:30
|
5938 |
+
#: inc/emails/class-lp-email-cancelled-order-instructor.php:27
|
5939 |
+
msgid "Order placed on {{order_date}} has been cancelled"
|
5940 |
+
msgstr "Zamówienie z dnia {{order_date}} zostało anulowane"
|
5941 |
+
|
5942 |
+
#: inc/emails/class-lp-email-cancelled-order-admin.php:31
|
5943 |
+
#: inc/emails/class-lp-email-cancelled-order-instructor.php:28
|
5944 |
+
msgid "User order has been cancelled"
|
5945 |
+
msgstr "Zamówienie użytkownika zostało anulowane"
|
5946 |
+
|
5947 |
+
#: inc/emails/class-lp-email-cancelled-order-guest.php:28
|
5948 |
+
msgid "Send email to guest when order has been cancelled."
|
5949 |
+
msgstr "Wyślij emaila do gościa, gdy zamówienie zostanie anulowane."
|
5950 |
+
|
5951 |
+
#: inc/emails/class-lp-email-cancelled-order-guest.php:30
|
5952 |
+
#: inc/emails/class-lp-email-cancelled-order-user.php:30
|
5953 |
+
msgid "Your order on {{order_date}} has been cancelled"
|
5954 |
+
msgstr "Twoje zamówienie z dnia {{order_date}} zostało anulowane"
|
5955 |
+
|
5956 |
+
#: inc/emails/class-lp-email-cancelled-order-guest.php:31
|
5957 |
+
#: inc/emails/class-lp-email-cancelled-order-user.php:31
|
5958 |
+
msgid "Your order has been cancelled"
|
5959 |
+
msgstr "Twoje zamówienie zostało anulowane"
|
5960 |
+
|
5961 |
+
#: inc/emails/class-lp-email-cancelled-order-instructor.php:25
|
5962 |
+
msgid "Send email to course instructor when order has been cancelled"
|
5963 |
+
msgstr "Wyślij emaila do instruktora, kiedy zamówienie zostanie anulowane"
|
5964 |
+
|
5965 |
+
#: inc/emails/class-lp-email-cancelled-order-user.php:27
|
5966 |
+
#: inc/emails/class-lp-email-completed-order-user.php:29
|
5967 |
+
#: inc/emails/class-lp-email-enrolled-course-user.php:27
|
5968 |
+
#: inc/emails/class-lp-email-finished-course-user.php:27
|
5969 |
+
#: inc/emails/class-lp-email-new-order-user.php:27
|
5970 |
+
#: inc/emails/class-lp-email-processing-order-user.php:26
|
5971 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:26
|
5972 |
+
msgid "User"
|
5973 |
+
msgstr "Użytkownik"
|
5974 |
|
5975 |
+
#: inc/emails/class-lp-email-cancelled-order-user.php:28
|
5976 |
+
msgid "Send email to user when order has been cancelled."
|
5977 |
+
msgstr "Wyślij emaila do użytkownika, kiedy zamówienie zostanie anulowane."
|
5978 |
|
5979 |
+
#: inc/emails/class-lp-email-completed-order-guest.php:30
|
5980 |
+
#: inc/emails/class-lp-email-new-order-guest.php:28
|
5981 |
+
msgid "Send email to the user who has bought course as guest."
|
5982 |
+
msgstr "Wyślij emaila do użytkownika który kupił kurs jako gość."
|
5983 |
|
5984 |
+
#: inc/emails/class-lp-email-completed-order-guest.php:32
|
5985 |
+
#: inc/emails/class-lp-email-completed-order-user.php:32
|
5986 |
+
msgid "Your order on {{order_date}} has completed"
|
5987 |
+
msgstr "Twoje zamówienie z dnia {{order_date}} zostało ukończone"
|
5988 |
|
5989 |
+
#: inc/emails/class-lp-email-completed-order-guest.php:33
|
5990 |
+
#: inc/emails/class-lp-email-completed-order-user.php:33
|
5991 |
+
msgid "Your order has completed"
|
5992 |
+
msgstr "Twoje zamówienie zostało zakończone"
|
5993 |
|
5994 |
+
#: inc/emails/class-lp-email-completed-order-user.php:30
|
5995 |
+
msgid "Send email to the user who has bought course when order is completed."
|
5996 |
+
msgstr ""
|
5997 |
+
"Wyślij emaila do użytkownika, który kupił kurs kiedy zamówienie zostanie "
|
5998 |
+
"ukończone."
|
5999 |
+
|
6000 |
+
#: inc/emails/class-lp-email-enrolled-course-admin.php:29
|
6001 |
+
msgid "Send this email to admin when user has enrolled course."
|
6002 |
+
msgstr "Wyślij tego emaila do admina, gdy użytkownik dołączy do kursu."
|
6003 |
+
|
6004 |
+
#: inc/emails/class-lp-email-enrolled-course-admin.php:30
|
6005 |
+
#: inc/emails/class-lp-email-enrolled-course-instructor.php:30
|
6006 |
+
msgid "{{user_display_name}} has enrolled course"
|
6007 |
+
msgstr "{{user_display_name}} dołączył do kursu"
|
6008 |
+
|
6009 |
+
#: inc/emails/class-lp-email-enrolled-course-admin.php:31
|
6010 |
+
#: inc/emails/class-lp-email-enrolled-course-instructor.php:31
|
6011 |
+
msgid "User has enrolled course"
|
6012 |
+
msgstr "Użytkownik dołączył do kursu"
|
6013 |
+
|
6014 |
+
#: inc/emails/class-lp-email-enrolled-course-instructor.php:28
|
6015 |
+
msgid "Send this email to instructor when they have enrolled course."
|
6016 |
+
msgstr "Wyślij emaila do instruktora, kiedy dołączą do kursu."
|
6017 |
+
|
6018 |
+
#: inc/emails/class-lp-email-enrolled-course-user.php:28
|
6019 |
+
msgid "Send this email to user when they have enrolled course."
|
6020 |
+
msgstr "Wyślij emaila do użytkownika, kiedy ten dołączy do kursu."
|
6021 |
+
|
6022 |
+
#: inc/emails/class-lp-email-enrolled-course-user.php:30
|
6023 |
+
msgid "[{{site_title}}] You have enrolled in course"
|
6024 |
+
msgstr "[{{site_title}}] Dołączyłeś do kursu"
|
6025 |
+
|
6026 |
+
#: inc/emails/class-lp-email-enrolled-course-user.php:31
|
6027 |
+
msgid "You have enrolled course"
|
6028 |
+
msgstr "Dołączyłeś do kursu"
|
6029 |
+
|
6030 |
+
#: inc/emails/class-lp-email-finished-course-admin.php:29
|
6031 |
+
msgid "Send this email to admin when user has finished course."
|
6032 |
+
msgstr "Wyślij tego emaila do admina, kiedy użytkownik ukończy kurs."
|
6033 |
+
|
6034 |
+
#: inc/emails/class-lp-email-finished-course-admin.php:30
|
6035 |
+
#: inc/emails/class-lp-email-finished-course-instructor.php:30
|
6036 |
+
msgid "{{user_display_name}} has finished course"
|
6037 |
+
msgstr "{{user_display_name}} ukończył kurs"
|
6038 |
+
|
6039 |
+
#: inc/emails/class-lp-email-finished-course-admin.php:31
|
6040 |
+
#: inc/emails/class-lp-email-finished-course-instructor.php:31
|
6041 |
+
msgid "User has finished course"
|
6042 |
+
msgstr "Użytkownik ukończył kurs"
|
6043 |
+
|
6044 |
+
#: inc/emails/class-lp-email-finished-course-instructor.php:28
|
6045 |
+
msgid "Send this email to instructor when they have finished course."
|
6046 |
+
msgstr "Wyślij tego emaila do instruktora, kiedy ktoś ukończy kurs."
|
6047 |
+
|
6048 |
+
#: inc/emails/class-lp-email-finished-course-user.php:28
|
6049 |
+
msgid "Send this email to user when they have finished course."
|
6050 |
+
msgstr "Wyślij tego emaila do użytkownika, kiedy ukończy kurs."
|
6051 |
+
|
6052 |
+
#: inc/emails/class-lp-email-finished-course-user.php:30
|
6053 |
+
msgid "[{{site_title}}] You have finished course"
|
6054 |
+
msgstr "[{{site_title}}] Ukończyłeś kurs"
|
6055 |
+
|
6056 |
+
#: inc/emails/class-lp-email-finished-course-user.php:31
|
6057 |
+
msgid "You have finished course"
|
6058 |
+
msgstr "Ukończyłeś kurs"
|
6059 |
+
|
6060 |
+
#: inc/emails/class-lp-email-instructor-accepted.php:26
|
6061 |
+
msgid "Accepted"
|
6062 |
+
msgstr "Zaakceptowane"
|
6063 |
+
|
6064 |
+
#: inc/emails/class-lp-email-new-course.php:29
|
6065 |
+
msgid "Email settings when a new course is submitted for review."
|
6066 |
+
msgstr "Ustawienia emaila kiedy nowy kurs został dodany do sprawdzenia."
|
6067 |
+
|
6068 |
+
#: inc/emails/class-lp-email-new-course.php:34
|
6069 |
+
msgid ""
|
6070 |
+
"[{{site_title}}] New course has been submitted for review ({{course_name}})"
|
6071 |
+
msgstr "[{{site_title}}] Nowy kurs dodany do przejrzenia ({{course_name}})"
|
6072 |
|
6073 |
+
#: inc/emails/class-lp-email-new-course.php:137
|
6074 |
+
#: inc/emails/class-lp-email.php:988
|
6075 |
+
msgid "Recipient(s)"
|
6076 |
+
msgstr "Odbiorcy"
|
6077 |
|
6078 |
+
#: inc/emails/class-lp-email-new-course.php:141
|
6079 |
+
#: inc/emails/class-lp-email.php:992
|
6080 |
+
#, php-format
|
6081 |
+
msgid "Email recipient(s) (separated by comma), default: <code>%s</code>."
|
6082 |
+
msgstr ""
|
6083 |
+
"Adresaci emaili (przedzieleni przecinkami - domyślnie: <code>%s</code>."
|
6084 |
+
|
6085 |
+
#: inc/emails/class-lp-email-new-course.php:158
|
6086 |
+
#: inc/emails/class-lp-email-published-course.php:132
|
6087 |
+
#: inc/emails/class-lp-email-rejected-course.php:129
|
6088 |
+
#: inc/emails/class-lp-email-updated-course.php:174
|
6089 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:146
|
6090 |
+
#: inc/emails/class-lp-email-user-order-completed.php:147
|
6091 |
+
#: inc/emails/class-lp-email.php:1009
|
6092 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:141
|
6093 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:143
|
6094 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:143
|
6095 |
+
#, php-format
|
6096 |
+
msgid "Email subject, default: <code>%s</code>."
|
6097 |
+
msgstr "Temat emaila, domyślnie <code>%s</code>."
|
6098 |
+
|
6099 |
+
#: inc/emails/class-lp-email-new-course.php:171
|
6100 |
+
#: inc/emails/class-lp-email-published-course.php:145
|
6101 |
+
#: inc/emails/class-lp-email-rejected-course.php:142
|
6102 |
+
#: inc/emails/class-lp-email-updated-course.php:187
|
6103 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:159
|
6104 |
+
#: inc/emails/class-lp-email-user-order-completed.php:160
|
6105 |
+
#: inc/emails/class-lp-email.php:1022
|
6106 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:154
|
6107 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:156
|
6108 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:156
|
6109 |
+
msgid "Heading"
|
6110 |
+
msgstr "Nagłówek"
|
6111 |
+
|
6112 |
+
#: inc/emails/class-lp-email-new-course.php:175
|
6113 |
+
#: inc/emails/class-lp-email-published-course.php:149
|
6114 |
+
#: inc/emails/class-lp-email-rejected-course.php:146
|
6115 |
+
#: inc/emails/class-lp-email-updated-course.php:191
|
6116 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:163
|
6117 |
+
#: inc/emails/class-lp-email-user-order-completed.php:164
|
6118 |
+
#: inc/emails/class-lp-email.php:1026
|
6119 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:158
|
6120 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:160
|
6121 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:160
|
6122 |
+
#, php-format
|
6123 |
+
msgid "Email heading, default: <code>%s</code>."
|
6124 |
+
msgstr "Nagłówek emaila, domyślnie <code>%s</code>."
|
6125 |
+
|
6126 |
+
#: inc/emails/class-lp-email-new-order-admin.php:28
|
6127 |
+
msgid "Send email to admin when new order is placed."
|
6128 |
+
msgstr "Wyślij emaila do admina, gdy złożone zostanie nowe zamówienie."
|
6129 |
+
|
6130 |
+
#: inc/emails/class-lp-email-new-order-admin.php:30
|
6131 |
+
#: inc/emails/class-lp-email-new-order-instructor.php:29
|
6132 |
+
msgid "New order placed on {{order_date}}"
|
6133 |
+
msgstr "Nowe zamówienie z dnia {{order_date}}"
|
6134 |
+
|
6135 |
+
#: inc/emails/class-lp-email-new-order-admin.php:31
|
6136 |
+
#: inc/emails/class-lp-email-new-order-instructor.php:30
|
6137 |
+
msgid "New user order"
|
6138 |
+
msgstr "Nowe zamówienie użytkownika"
|
6139 |
+
|
6140 |
+
#: inc/emails/class-lp-email-new-order-guest.php:30
|
6141 |
+
#: inc/emails/class-lp-email-new-order-user.php:30
|
6142 |
+
#: inc/emails/class-lp-email-processing-order-guest.php:30
|
6143 |
+
#: inc/emails/class-lp-email-processing-order-user.php:29
|
6144 |
+
msgid "Your order placed on {{order_date}}"
|
6145 |
+
msgstr "Twoje zamówienie z dnia {{order_date}}"
|
6146 |
+
|
6147 |
+
#: inc/emails/class-lp-email-new-order-guest.php:31
|
6148 |
+
#: inc/emails/class-lp-email-new-order-user.php:31
|
6149 |
+
#: inc/emails/class-lp-email-processing-order-guest.php:31
|
6150 |
+
#: inc/emails/class-lp-email-processing-order-user.php:30
|
6151 |
+
msgid "Thank you for your order"
|
6152 |
+
msgstr "Dziękujemy za zamówienie"
|
6153 |
+
|
6154 |
+
#: inc/emails/class-lp-email-new-order-instructor.php:27
|
6155 |
+
msgid "Send email to course's instructor when user has purchased course."
|
6156 |
+
msgstr "Wyślij emaila do instruktora, gdy użytkownik zakupi kurs."
|
6157 |
+
|
6158 |
+
#: inc/emails/class-lp-email-new-order-user.php:28
|
6159 |
+
msgid "Send email to the user who has bought course."
|
6160 |
+
msgstr "Wyślij emaila do użytkownika, który zakupił kurs."
|
6161 |
+
|
6162 |
+
#: inc/emails/class-lp-email-processing-order-guest.php:28
|
6163 |
+
msgid ""
|
6164 |
+
"Send email to user who has purchased course as a Guest when the order is "
|
6165 |
+
"processing."
|
6166 |
+
msgstr ""
|
6167 |
+
"Wyślij emaila do użytkownika, który zakupił kurs jako gość, kiedy zamówienie "
|
6168 |
+
"jest przetwarzane."
|
6169 |
|
6170 |
+
#: inc/emails/class-lp-email-processing-order-user.php:27
|
6171 |
+
msgid "Send email to user who has bought course whe the order is processing."
|
6172 |
+
msgstr ""
|
6173 |
+
"Wyślij emaila do użytkownika, który kupił kurs, kiedy zamówienie jest "
|
6174 |
+
"przetwarzane."
|
6175 |
|
6176 |
+
#: inc/emails/class-lp-email-published-course.php:28
|
6177 |
+
msgid "Approved course"
|
6178 |
+
msgstr "Zaakceptowanie kursu"
|
6179 |
|
6180 |
+
#: inc/emails/class-lp-email-published-course.php:29
|
6181 |
+
msgid "Settings for email when a course is approved."
|
6182 |
+
msgstr "Ustawienia emaili, gdy kurs został zaakceptowany."
|
6183 |
|
6184 |
+
#: inc/emails/class-lp-email-published-course.php:34
|
6185 |
+
msgid "[{{site_title}}] Your course {{course_name}} has been approved"
|
6186 |
+
msgstr "[{{site_title}}] Twój kurs {course_name} został zaakceptowany"
|
6187 |
|
6188 |
+
#: inc/emails/class-lp-email-published-course.php:35
|
6189 |
+
msgid "Course approved"
|
6190 |
+
msgstr "Kurs zaakcetowany"
|
6191 |
|
6192 |
+
#: inc/emails/class-lp-email-rejected-course.php:28
|
6193 |
+
#: inc/emails/class-lp-email-rejected-course.php:35
|
6194 |
+
msgid "Rejected course"
|
6195 |
+
msgstr "Odrzucenie kursu"
|
6196 |
|
6197 |
+
#: inc/emails/class-lp-email-rejected-course.php:29
|
6198 |
+
msgid "Settings for email when a course is rejected."
|
6199 |
+
msgstr "Ustawienia emaili, gdy kurs został odrzucony."
|
6200 |
|
6201 |
+
#: inc/emails/class-lp-email-rejected-course.php:34
|
6202 |
+
msgid "[{{site_title}}] Your course {{course_name}} has been rejected"
|
6203 |
+
msgstr "[{{site_title}}] Twój kurs {{course_name}} został odrzucony"
|
6204 |
|
6205 |
+
#: inc/emails/class-lp-email-updated-course.php:32
|
6206 |
+
msgid "Updated course"
|
6207 |
+
msgstr "Zaktualizuj kurs"
|
6208 |
|
6209 |
+
#: inc/emails/class-lp-email-updated-course.php:33
|
6210 |
+
msgid "Send this email to users have purchased when the course is updated."
|
6211 |
+
msgstr ""
|
6212 |
+
"Wyślij tego email do użytkowników którzy zakupili kurs, kiedy ten zostanie "
|
6213 |
+
"zaktualizowany."
|
6214 |
+
|
6215 |
+
#: inc/emails/class-lp-email-updated-course.php:38
|
6216 |
+
msgid "[{{site_title}}] The course ({{course_name}}) has just been updated."
|
6217 |
+
msgstr "[{{site_title}}] Kurs ({{course_name}}) został zaktualizowany."
|
6218 |
+
|
6219 |
+
#: inc/emails/class-lp-email-updated-course.php:39
|
6220 |
+
msgid "Update course"
|
6221 |
+
msgstr "Aktualizacja kursu"
|
6222 |
+
|
6223 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:26
|
6224 |
+
msgid "User order changed status"
|
6225 |
+
msgstr "Zamiana statusu zamówienia"
|
6226 |
+
|
6227 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:27
|
6228 |
+
msgid "Send email to user when the order status is changed"
|
6229 |
+
msgstr "Wyślij emaila do użytkownika, kiedy zamówienie zmieni status"
|
6230 |
+
|
6231 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:32
|
6232 |
+
msgid "Your order {{order_date}} status has just been changed"
|
6233 |
+
msgstr "Twoje zamówienie {{order_date}} zmieniło swój status"
|
6234 |
+
|
6235 |
+
#: inc/emails/class-lp-email-user-order-changed-status.php:33
|
6236 |
+
msgid "Your order {{order_number}} status has just been changed"
|
6237 |
+
msgstr "Twoje zamówienie {{order_number}} zmieniło swój status"
|
6238 |
+
|
6239 |
+
#: inc/emails/class-lp-email-user-order-completed.php:27
|
6240 |
+
msgid "User order completed"
|
6241 |
+
msgstr "Ukończenie zamówienie"
|
6242 |
+
|
6243 |
+
#: inc/emails/class-lp-email-user-order-completed.php:28
|
6244 |
+
msgid "Send email to user when the order is completed"
|
6245 |
+
msgstr "Wyślij emaila do użytkownika, kiedy zamówienie zostało zakończone"
|
6246 |
+
|
6247 |
+
#: inc/emails/class-lp-email-user-order-completed.php:33
|
6248 |
+
msgid "Your order {{order_date}} is completed"
|
6249 |
+
msgstr "Twoje zamówienie {{order_date}} zostało ukończone"
|
6250 |
+
|
6251 |
+
#: inc/emails/class-lp-email-user-order-completed.php:34
|
6252 |
+
msgid "Your order {{order_number}} is completed"
|
6253 |
+
msgstr "Twoje zamówienie {{order_number}} zostało ukończone"
|
6254 |
+
|
6255 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:27
|
6256 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:27
|
6257 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:27
|
6258 |
+
msgid "Send this email to user when a user finished a course."
|
6259 |
+
msgstr "Wyślij wiadomość email do użytkownika, kiedy użytkownik ukończy kurs."
|
6260 |
+
|
6261 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:30
|
6262 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:32
|
6263 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:32
|
6264 |
+
msgid "[{{site_title}}] You have finished this course ({{course_name}})"
|
6265 |
+
msgstr "[{{site_title}}] Ukończyłeś ten kurs ({{course_name}})"
|
6266 |
+
|
6267 |
+
#: inc/emails/_bk/class-lp-email-finished-course-admin.php:31
|
6268 |
+
#: inc/emails/_bk/class-lp-email-finished-course-instructor.php:33
|
6269 |
+
#: inc/emails/_bk/class-lp-email-finished-course-user.php:33
|
6270 |
+
msgid "Finished course"
|
6271 |
+
msgstr "Zakończenie kursu"
|
6272 |
+
|
6273 |
+
#: inc/gateways/class-lp-gateway-abstract.php:244
|
6274 |
+
msgid "%s has been deprecated. Please use % instead of."
|
6275 |
+
msgstr "% s jest przestarzałe. Proszę użyć % ."
|
6276 |
+
|
6277 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:92
|
6278 |
+
msgid "Make payment via Paypal."
|
6279 |
+
msgstr "Zrób płatność przez Paypal."
|
6280 |
+
|
6281 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:96
|
6282 |
+
msgid "Pay with Paypal"
|
6283 |
+
msgstr "Zapłać z PayPal"
|
6284 |
+
|
6285 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:242
|
6286 |
+
msgid "Error: order ID and key were not found in \"custom\"."
|
6287 |
+
msgstr ""
|
6288 |
+
"Błąd: ID zamówienia oraz jego klucz nie zostały znalezione w \"domyślnych\"."
|
6289 |
|
6290 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:250
|
6291 |
+
#, php-format
|
6292 |
+
msgid "Error: Order Keys do not match %s and %s."
|
6293 |
+
msgstr "Błąd: Klucz zamówienia nie pasuje - %s oraz %s."
|
6294 |
|
6295 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:379
|
6296 |
+
msgid "IPN payment completed"
|
6297 |
+
msgstr "Płatność BPP (Błyskawiczne powiadamianie o płatności) zakończona"
|
6298 |
|
6299 |
+
#: inc/gateways/paypal/paypal-ipn/ipn.php:52
|
6300 |
+
msgid "Order on "
|
6301 |
+
msgstr "Zamówienie na "
|
6302 |
|
6303 |
+
#: inc/libraries/wp-background-process.php:421
|
6304 |
+
#, php-format
|
6305 |
+
msgid "Every %d minutes"
|
6306 |
+
msgstr "Co %d minut(-y)"
|
6307 |
|
6308 |
+
#: inc/libraries/meta-box/inc/core.php:34
|
6309 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:26
|
6310 |
+
msgid "Extensions"
|
6311 |
+
msgstr "Dodatki"
|
6312 |
|
6313 |
+
#: inc/libraries/meta-box/inc/field.php:351
|
6314 |
+
msgid "+ Add more"
|
6315 |
+
msgstr "+ Dodaj więcej"
|
6316 |
|
6317 |
+
#: inc/libraries/meta-box/inc/validation.php:47
|
6318 |
+
msgid "Please correct the errors highlighted below and try again."
|
6319 |
+
msgstr "Prosze popraw podświetlone błędy i spróbuj ponownie."
|
6320 |
|
6321 |
+
#: inc/libraries/meta-box/inc/about/about.php:50
|
6322 |
+
msgid "About"
|
6323 |
+
msgstr ""
|
6324 |
|
6325 |
+
#: inc/libraries/meta-box/inc/about/about.php:59
|
6326 |
+
#: inc/libraries/meta-box/inc/about/about.php:60
|
6327 |
+
msgid "Welcome to Meta Box"
|
6328 |
+
msgstr ""
|
6329 |
|
6330 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:13
|
6331 |
+
msgid "Getting Started With Online Generator"
|
6332 |
+
msgstr ""
|
6333 |
|
6334 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:14
|
6335 |
+
msgid ""
|
6336 |
+
"The fastest way to getting started with Meta Box is use our online generator "
|
6337 |
+
"to generate meta boxes with custom fields. It provides a friendly UI for you "
|
6338 |
+
"to create meta boxes and custom fields just by drag and drop fields."
|
6339 |
+
msgstr ""
|
6340 |
|
6341 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:16
|
6342 |
+
msgid "online generator"
|
6343 |
+
msgstr ""
|
|
|
6344 |
|
6345 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:18
|
6346 |
+
msgid "Go to Online Generator"
|
6347 |
+
msgstr ""
|
|
|
6348 |
|
6349 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:22
|
6350 |
+
msgid "Understand The Basics"
|
6351 |
+
msgstr ""
|
6352 |
+
|
6353 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:23
|
6354 |
+
msgid ""
|
6355 |
+
"Meta Box doesn't have any admin page for configuration or settings. Instead "
|
6356 |
+
"of that, it provides a very powerful API to speed up the process of creating "
|
6357 |
+
"meta boxes and custom fields. It might take you a little time at first, but "
|
6358 |
+
"then you'll love the way it work because it helps you do and customize "
|
6359 |
+
"almost everything."
|
6360 |
+
msgstr ""
|
6361 |
|
6362 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:24
|
6363 |
+
msgid "Learn More"
|
6364 |
msgstr ""
|
|
|
|
|
6365 |
|
6366 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:27
|
6367 |
msgid ""
|
6368 |
+
"Wanna see more features that transform your WordPress website into a "
|
6369 |
+
"powerful CMS? Check out some extensions below:"
|
6370 |
msgstr ""
|
|
|
|
|
6371 |
|
6372 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:29
|
6373 |
+
msgid "Meta Box Group"
|
6374 |
+
msgstr ""
|
6375 |
|
6376 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:30
|
6377 |
+
msgid "Meta Box Conditional Logic"
|
6378 |
msgstr ""
|
|
|
6379 |
|
6380 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:31
|
6381 |
+
msgid "MB Settings Page"
|
6382 |
+
msgstr ""
|
6383 |
|
6384 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:32
|
6385 |
+
msgid "MB Term Meta"
|
6386 |
+
msgstr ""
|
|
|
6387 |
|
6388 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:34
|
6389 |
+
msgid "More Extensions"
|
6390 |
+
msgstr ""
|
6391 |
|
6392 |
+
#: inc/libraries/meta-box/inc/about/sections/getting-started.php:39
|
6393 |
+
msgid "Go to MetaBox.IO →"
|
6394 |
+
msgstr ""
|
6395 |
|
6396 |
+
#: inc/libraries/meta-box/inc/about/sections/tabs.php:11
|
6397 |
+
msgid "Getting Started"
|
6398 |
+
msgstr ""
|
6399 |
|
6400 |
+
#: inc/libraries/meta-box/inc/about/sections/welcome.php:13
|
6401 |
+
#, php-format
|
6402 |
+
msgid "Welcome to %1$s %2$s"
|
6403 |
+
msgstr ""
|
6404 |
|
6405 |
+
#: inc/libraries/meta-box/inc/about/sections/welcome.php:16
|
6406 |
+
msgid ""
|
6407 |
+
"This plugin is a lightweight and powerful toolkit that helps you to create "
|
6408 |
+
"custom meta boxes and custom fields in WordPress fast and easy. Follow the "
|
6409 |
+
"instruction below to get started."
|
6410 |
+
msgstr ""
|
6411 |
|
6412 |
+
#: inc/libraries/meta-box/inc/fields/button.php:32
|
6413 |
+
msgid "Click me"
|
6414 |
+
msgstr "Kliknij mnie"
|
6415 |
+
|
6416 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:19
|
6417 |
+
msgid "Select File"
|
6418 |
+
msgstr "Zaznacz plik"
|
6419 |
|
6420 |
+
#: inc/libraries/meta-box/inc/fields/file.php:21
|
6421 |
+
#, php-format
|
6422 |
+
msgid "You may only upload maximum %d file"
|
6423 |
+
msgstr "Możesz wysłać maksymalnie %d plik"
|
6424 |
+
|
6425 |
+
#: inc/libraries/meta-box/inc/fields/file.php:23
|
6426 |
+
#, php-format
|
6427 |
+
msgid "You may only upload maximum %d files"
|
6428 |
+
msgstr "Możesz wysłać maksymalnie %d pliki/plików"
|
6429 |
|
6430 |
+
#: inc/libraries/meta-box/inc/fields/file.php:79
|
6431 |
+
msgid "Error: Cannot delete file"
|
6432 |
+
msgstr "Błąd: Nie można usunąć pliku"
|
6433 |
|
6434 |
+
#: inc/libraries/meta-box/inc/fields/file.php:93
|
6435 |
+
msgctxt "file upload"
|
6436 |
+
msgid "+ Add new file"
|
6437 |
+
msgstr "+ Dodaj nowy plik"
|
6438 |
|
6439 |
+
#: inc/libraries/meta-box/inc/fields/file.php:143
|
6440 |
+
msgctxt "file upload"
|
|
|
6441 |
msgid "Delete"
|
6442 |
+
msgstr "Kasuj"
|
6443 |
+
|
6444 |
+
#: inc/libraries/meta-box/inc/fields/file.php:144
|
6445 |
+
msgctxt "file upload"
|
6446 |
+
msgid "Edit"
|
6447 |
+
msgstr "Edycja"
|
6448 |
+
|
6449 |
+
#: inc/libraries/meta-box/inc/fields/input-list.php:92
|
6450 |
+
msgid "Select All / None"
|
6451 |
+
msgstr "Wybierz wszystkie/żadne"
|
6452 |
+
|
6453 |
+
#: inc/libraries/meta-box/inc/fields/key-value.php:126
|
6454 |
+
msgid "Key"
|
6455 |
+
msgstr "Klucz"
|
6456 |
+
|
6457 |
+
#: inc/libraries/meta-box/inc/fields/key-value.php:127
|
6458 |
+
msgid "Value"
|
6459 |
+
msgstr "Wartość"
|
6460 |
+
|
6461 |
+
#: inc/libraries/meta-box/inc/fields/map.php:62
|
6462 |
+
msgid "Find Address"
|
6463 |
+
msgstr "Wyszukaj adres"
|
6464 |
+
|
6465 |
+
#: inc/libraries/meta-box/inc/fields/media.php:24
|
6466 |
+
msgctxt "media"
|
6467 |
+
msgid "+ Add Media"
|
6468 |
+
msgstr "+ Dodaj Media"
|
6469 |
+
|
6470 |
+
#: inc/libraries/meta-box/inc/fields/media.php:25
|
6471 |
+
msgctxt "media"
|
6472 |
+
msgid " file"
|
6473 |
+
msgstr " plik"
|
6474 |
+
|
6475 |
+
#: inc/libraries/meta-box/inc/fields/media.php:26
|
6476 |
+
msgctxt "media"
|
6477 |
+
msgid " files"
|
6478 |
+
msgstr " pliki"
|
6479 |
+
|
6480 |
+
#: inc/libraries/meta-box/inc/fields/media.php:27
|
6481 |
+
msgctxt "media"
|
6482 |
+
msgid "Remove"
|
6483 |
msgstr "Usuń"
|
6484 |
|
6485 |
+
#: inc/libraries/meta-box/inc/fields/media.php:28
|
6486 |
+
msgctxt "media"
|
6487 |
+
msgid "Edit"
|
6488 |
+
msgstr "Edycja"
|
6489 |
|
6490 |
+
#: inc/libraries/meta-box/inc/fields/media.php:29
|
6491 |
+
msgctxt "media"
|
6492 |
+
msgid "View"
|
6493 |
+
msgstr "Podgląd"
|
6494 |
|
6495 |
+
#: inc/libraries/meta-box/inc/fields/media.php:30
|
6496 |
+
msgctxt "media"
|
6497 |
+
msgid "No Title"
|
6498 |
+
msgstr "Brak tytułu"
|
6499 |
|
6500 |
+
#: inc/libraries/meta-box/inc/fields/media.php:33
|
6501 |
+
msgctxt "media"
|
6502 |
+
msgid "Select Files"
|
6503 |
+
msgstr "Wybierz pliki"
|
6504 |
|
6505 |
+
#: inc/libraries/meta-box/inc/fields/media.php:34
|
6506 |
+
msgctxt "media"
|
6507 |
+
msgid "or"
|
6508 |
+
msgstr "lub"
|
6509 |
|
6510 |
+
#: inc/libraries/meta-box/inc/fields/media.php:35
|
6511 |
+
msgctxt "media"
|
6512 |
+
msgid "Drop files here to upload"
|
6513 |
+
msgstr "Upuść pliki tutaj aby załadować"
|
6514 |
|
6515 |
+
#: inc/libraries/meta-box/inc/fields/oembed.php:64
|
6516 |
+
msgid "Embed HTML not available."
|
6517 |
+
msgstr "Osadzenie HTML nie jest możliwe."
|
6518 |
|
6519 |
+
#: inc/libraries/meta-box/inc/fields/post.php:37
|
6520 |
+
msgid "Select a post"
|
6521 |
+
msgstr "Wybierz post"
|
|
|
6522 |
|
6523 |
+
#: inc/libraries/meta-box/inc/fields/post.php:42
|
6524 |
+
#: inc/libraries/meta-box/inc/fields/taxonomy.php:52
|
6525 |
+
#, php-format
|
6526 |
+
msgid "Select a %s"
|
6527 |
+
msgstr "Wybierz %s"
|
6528 |
|
6529 |
+
#: inc/libraries/meta-box/inc/fields/select-advanced.php:45
|
6530 |
+
msgid "Select an item"
|
6531 |
+
msgstr "Wybierz element"
|
6532 |
|
6533 |
+
#: inc/libraries/meta-box/inc/fields/select.php:87
|
6534 |
+
msgid "None"
|
6535 |
+
msgstr "Brak"
|
6536 |
|
6537 |
+
#: inc/libraries/meta-box/inc/fields/taxonomy.php:47
|
6538 |
+
msgid "Select a term"
|
6539 |
+
msgstr "Wybierz wartość"
|
6540 |
|
6541 |
+
#: inc/libraries/meta-box/inc/fields/thickbox-image.php:55
|
6542 |
+
msgctxt "image upload"
|
6543 |
+
msgid "Upload Images"
|
6544 |
+
msgstr "Wyślij obrazki"
|
6545 |
|
6546 |
+
#: inc/libraries/meta-box/inc/fields/user.php:30
|
6547 |
+
msgid "Select an user"
|
6548 |
+
msgstr "Wybierz użytkownika"
|
6549 |
|
6550 |
+
#: inc/order/class-lp-order.php:198 inc/order/class-lp-order.php:217
|
6551 |
+
#: templates/checkout/order-received.php:25
|
6552 |
+
msgid "Thank you. Your order has been received."
|
6553 |
+
msgstr "Dziękujemy. Otrzymaliśmy Twoje zamówienie."
|
6554 |
|
6555 |
+
#: inc/order/class-lp-order.php:389
|
6556 |
+
msgid "Removed"
|
6557 |
+
msgstr "Usunięte"
|
6558 |
|
6559 |
+
#: inc/order/class-lp-order.php:506
|
6560 |
+
#, php-format
|
6561 |
+
msgid "%s (Guest)"
|
6562 |
+
msgstr "%s (Gość)"
|
6563 |
|
6564 |
+
#: inc/order/class-lp-order.php:986
|
6565 |
+
#, php-format
|
6566 |
+
msgctxt "full name"
|
6567 |
+
msgid "%1$s"
|
6568 |
+
msgstr "%1$s"
|
6569 |
|
6570 |
+
#: inc/order/class-lp-order.php:1027
|
6571 |
+
msgid "No user assigned"
|
6572 |
+
msgstr "Żaden użytkownik nie przystąpił"
|
6573 |
|
6574 |
+
#: inc/order/class-lp-order.php:1102
|
6575 |
+
msgid "Order on"
|
6576 |
+
msgstr "Zamówienie z"
|
6577 |
|
6578 |
+
#: inc/order/lp-order-functions.php:67
|
6579 |
+
msgid "Invalid order ID when updating."
|
6580 |
+
msgstr "Błędne ID zamówienia podczas aktualizacji."
|
6581 |
|
6582 |
+
#: inc/order/lp-order-functions.php:705
|
6583 |
+
msgctxt "Order status"
|
6584 |
+
msgid "Pending Payment"
|
6585 |
+
msgstr "Oczekuje płatności"
|
6586 |
|
6587 |
+
#: inc/order/lp-order-functions.php:710
|
6588 |
+
#, php-format
|
6589 |
+
msgid "Pending Payment <span class=\"count\">(%s)</span>"
|
6590 |
+
msgid_plural "Pending Payment <span class=\"count\">(%s)</span>"
|
6591 |
+
msgstr[0] "Oczekująca płatność <span class=\"count\">(%s)</span>"
|
6592 |
+
msgstr[1] "Oczekujące płatności <span class=\"count\">(%s)</span>"
|
6593 |
+
msgstr[2] "Oczekujących płatności <span class=\"count\">(%s)</span>"
|
6594 |
|
6595 |
+
#: inc/order/lp-order-functions.php:713
|
6596 |
+
msgctxt "Order status"
|
6597 |
+
msgid "Processing"
|
6598 |
+
msgstr "W toku"
|
|
|
6599 |
|
6600 |
+
#: inc/order/lp-order-functions.php:718
|
6601 |
+
#, php-format
|
6602 |
+
msgid "Processing <span class=\"count\">(%s)</span>"
|
6603 |
+
msgid_plural "Processing <span class=\"count\">(%s)</span>"
|
6604 |
+
msgstr[0] "Przetwarzanie <span class=\"count\">(%s)</span>"
|
6605 |
+
msgstr[1] "Przetwarzanie <span class=\"count\">(%s)</span>"
|
6606 |
+
msgstr[2] "Przetwarzanie <span class=\"count\">(%s)</span>"
|
6607 |
|
6608 |
+
#: inc/order/lp-order-functions.php:721
|
6609 |
+
msgctxt "Order status"
|
6610 |
+
msgid "Completed"
|
6611 |
+
msgstr "Zakończone"
|
6612 |
|
6613 |
+
#: inc/order/lp-order-functions.php:726
|
6614 |
+
#, php-format
|
6615 |
+
msgid "Completed <span class=\"count\">(%s)</span>"
|
6616 |
+
msgid_plural "Completed <span class=\"count\">(%s)</span>"
|
6617 |
+
msgstr[0] "Ukończono <span class=\"count\">(%s)</span>"
|
6618 |
+
msgstr[1] "Ukończono <span class=\"count\">(%s)</span>"
|
6619 |
+
msgstr[2] "Ukończono <span class=\"count\">(%s)</span>"
|
6620 |
|
6621 |
+
#: inc/order/lp-order-functions.php:729
|
6622 |
+
msgctxt "Order status"
|
6623 |
+
msgid "Cancelled"
|
6624 |
+
msgstr "Anulowane"
|
6625 |
|
6626 |
+
#: inc/order/lp-order-functions.php:734
|
6627 |
+
#, php-format
|
6628 |
+
msgid "Cancelled <span class=\"count\">(%s)</span>"
|
6629 |
+
msgid_plural "Cancelled <span class=\"count\">(%s)</span>"
|
6630 |
+
msgstr[0] "Anulowano <span class=\"count\">(%s)</span>"
|
6631 |
+
msgstr[1] "Anulowano <span class=\"count\">(%s)</span>"
|
6632 |
+
msgstr[2] "Anulowano <span class=\"count\">(%s)</span>"
|
6633 |
|
6634 |
+
#: inc/order/lp-order-functions.php:737
|
6635 |
+
msgctxt "Order status"
|
6636 |
+
msgid "Failed"
|
6637 |
+
msgstr "Niepowodzenie"
|
6638 |
|
6639 |
+
#: inc/order/lp-order-functions.php:742
|
6640 |
+
#, php-format
|
6641 |
+
msgid "Failed <span class=\"count\">(%s)</span>"
|
6642 |
+
msgid_plural "Failed <span class=\"count\">(%s)</span>"
|
6643 |
+
msgstr[0] "Nie powiodło się <span class=\"count\">(%s)</span>"
|
6644 |
+
msgstr[1] "Nie powiodło się <span class=\"count\">(%s)</span>"
|
6645 |
+
msgstr[2] "Nie powiodło się <span class=\"count\">(%s)</span>"
|
6646 |
|
6647 |
+
#: inc/order/lp-order-functions.php:751
|
6648 |
+
msgid ""
|
6649 |
+
"Order received in case user buy a course but doesn't finalise the order."
|
6650 |
+
msgstr ""
|
6651 |
+
"Otrzymane zamówienie w przypadku, gdy użytkownik zakupi kurs, ale nie "
|
6652 |
+
"sfinalizuje zamówienia."
|
6653 |
|
6654 |
+
#: inc/order/lp-order-functions.php:752
|
6655 |
+
msgid "Payment received and the order is awaiting fulfillment."
|
6656 |
+
msgstr "Płatność otrzymana, a zamówienie oczekuje na wykonanie."
|
6657 |
|
6658 |
+
#: inc/order/lp-order-functions.php:753
|
6659 |
+
msgid "Order fulfilled and complete."
|
6660 |
+
msgstr "Zamówienie spełnione i zakończone."
|
6661 |
|
6662 |
+
#: inc/order/lp-order-functions.php:754
|
6663 |
+
msgid "The order is cancelled by an admin or the customer."
|
6664 |
+
msgstr "Zamówienie zostało anulowane przez admina lub użytkownika."
|
6665 |
+
|
6666 |
+
#: inc/order/lp-order-functions.php:794
|
6667 |
+
#, php-format
|
6668 |
+
msgid "Order number <strong>%s</strong> not found"
|
6669 |
+
msgstr "Numer zamówienia <strong>%s</strong> - nie znielubiono"
|
6670 |
|
6671 |
+
#: inc/order/lp-order-functions.php:797
|
6672 |
+
msgid "Order cancelled by customer"
|
6673 |
+
msgstr "Zamówienie anulowane przez klienta"
|
6674 |
|
6675 |
+
#: inc/order/lp-order-functions.php:800
|
6676 |
+
#, php-format
|
6677 |
+
msgid "Order number <strong>%s</strong> has been cancelled"
|
6678 |
+
msgstr "Numer zamówienia <strong>%s</strong> - zostało anulowane"
|
6679 |
|
6680 |
+
#: inc/order/lp-order-functions.php:803
|
6681 |
+
#, php-format
|
6682 |
+
msgid "Order number <strong>%s</strong> can not be cancelled"
|
6683 |
+
msgstr "Numer zamówienia <strong>%s</strong> - nie można anulować"
|
6684 |
|
6685 |
+
#: inc/order/lp-order-functions.php:838
|
6686 |
+
#, php-format
|
6687 |
+
msgid "You have enrolled in this course. <a href=\"%s\">Order details</a>"
|
6688 |
+
msgstr "Dołączyłeś do tego kursu. <a href=\"%s\">Szczegóły zamówienia</a>"
|
6689 |
|
6690 |
+
#: inc/question/class-lp-question-true-or-false.php:51
|
6691 |
+
msgid "True"
|
6692 |
+
msgstr "Prawda"
|
6693 |
|
6694 |
+
#: inc/question/class-lp-question-true-or-false.php:56
|
6695 |
+
msgid "False"
|
6696 |
+
msgstr "Fałsz"
|
6697 |
|
6698 |
+
#: inc/question/class-lp-question.php:285
|
6699 |
+
msgid "True Or False"
|
6700 |
+
msgstr "Prawda/fałsz"
|
6701 |
|
6702 |
+
#: inc/question/class-lp-question.php:286
|
6703 |
+
msgid "Multi Choice"
|
6704 |
+
msgstr "Wielokrotnego wyboru"
|
6705 |
|
6706 |
+
#: inc/question/class-lp-question.php:287
|
6707 |
+
msgid "Single Choice"
|
6708 |
+
msgstr "Jednokrotnego wyboru"
|
6709 |
|
6710 |
+
#: inc/question/class-lp-question.php:567
|
6711 |
+
msgid "New Option"
|
6712 |
+
msgstr "Nowa opcja"
|
6713 |
|
6714 |
+
#: inc/question/class-lp-question.php:585
|
6715 |
+
msgid "First option"
|
6716 |
+
msgstr "Pierwsza opcja"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6717 |
|
6718 |
+
#: inc/question/class-lp-question.php:590
|
6719 |
+
msgid "Second option"
|
6720 |
+
msgstr "Druga opcja"
|
6721 |
|
6722 |
+
#: inc/question/class-lp-question.php:595
|
6723 |
+
msgid "Third option"
|
6724 |
+
msgstr "Trzecia opcja"
|
6725 |
|
6726 |
+
#: inc/quiz/class-lp-quiz-factory.php:471
|
6727 |
+
msgid "Something went wrong!"
|
6728 |
+
msgstr "Coś poszło nie tak!"
|
6729 |
|
6730 |
+
#: inc/quiz/class-lp-quiz.php:422 templates/content-quiz/intro.php:25
|
6731 |
+
#: templates/content-quiz/progress.php:53
|
6732 |
+
msgid "Unlimited"
|
6733 |
+
msgstr "Bez limitu"
|
6734 |
|
6735 |
+
#: inc/quiz/class-lp-quiz.php:459
|
6736 |
+
msgid "Finish quiz"
|
6737 |
+
msgstr "Ukończ quiz"
|
6738 |
|
6739 |
+
#: inc/quiz/class-lp-quiz.php:460
|
6740 |
+
msgid "Are you sure you want to finish this quiz?"
|
6741 |
+
msgstr "Jesteś pewny, że chcesz ukończyć test?"
|
6742 |
|
6743 |
+
#: inc/quiz/class-lp-quiz.php:463
|
6744 |
+
msgid "Retake quiz"
|
6745 |
+
msgstr "Weź udział ponownie w teście"
|
6746 |
|
6747 |
+
#: inc/quiz/class-lp-quiz.php:464
|
6748 |
+
msgid "Are you sure you want to retake this quiz?"
|
6749 |
+
msgstr "Jesteś pewny, że chcesz wziąć udział ponownie w teście?"
|
6750 |
|
6751 |
+
#: inc/quiz/class-lp-quiz.php:467
|
6752 |
+
msgid "Time's up!"
|
6753 |
+
msgstr "Koniec czasu!"
|
6754 |
+
|
6755 |
+
#: inc/quiz/class-lp-quiz.php:468
|
6756 |
+
msgid "The time is up! Your quiz will automate come to finish"
|
6757 |
+
msgstr "Czas się skończył! Test zostaje automatycznie ukończony"
|
6758 |
|
6759 |
+
#: inc/quiz/class-lp-quiz.php:470
|
6760 |
+
msgid "Congrats! You have finished this quiz"
|
6761 |
+
msgstr "Brawo! Ukończyłeś test"
|
6762 |
|
6763 |
+
#: inc/quiz/class-lp-quiz.php:471
|
6764 |
msgid ""
|
6765 |
+
"Congrats! You have re-taken this quiz. Please wait a moment and the page "
|
6766 |
+
"will reload"
|
6767 |
msgstr ""
|
6768 |
+
"Brawo! Wziąłeś udział ponownie w teście. Odczekaj sekundę i strona się "
|
6769 |
+
"przeładuje"
|
6770 |
|
6771 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:39
|
6772 |
+
#, php-format
|
6773 |
+
msgid "Please %s to send your request!"
|
6774 |
+
msgstr "Proszę %s, aby wysłać swoje zlecenie!"
|
6775 |
|
6776 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:39
|
6777 |
+
msgctxt "become-teacher-form"
|
6778 |
+
msgid "login"
|
6779 |
+
msgstr "login"
|
6780 |
+
|
6781 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:42
|
6782 |
+
msgid "Your have already sent the request. Please wait for approvement."
|
6783 |
+
msgstr "Już wysłałeś zlecenie. Proszę poczekać na akceptację."
|
6784 |
+
|
6785 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:44
|
6786 |
+
msgid "You are a teacher!"
|
6787 |
+
msgstr "Jesteś instruktorem!"
|
6788 |
+
|
6789 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:103
|
6790 |
+
msgid "Please login to fill in this form."
|
6791 |
+
msgstr "Proszę się zalogować aby wypełnić formularz."
|
6792 |
+
|
6793 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:106
|
6794 |
+
msgid "You are a teacher now."
|
6795 |
+
msgstr "Zostałeś nauczycielem."
|
6796 |
+
|
6797 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:112
|
6798 |
+
msgid "Your role is allowed to create a course."
|
6799 |
+
msgstr "Masz uprawnienia, aby stworzyć kurs."
|
6800 |
+
|
6801 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:122
|
6802 |
+
msgid "Fill in your information and send us to become a teacher."
|
6803 |
+
msgstr "Wypełni swoje informacje oraz wyślij aby zostać nauczycielem."
|
6804 |
+
|
6805 |
+
#: inc/shortcodes/class-lp-shortcode-become-a-teacher.php:123
|
6806 |
+
#: templates/global/become-teacher-form/button.php:19
|
6807 |
+
msgid "Submit"
|
6808 |
+
msgstr "Zatwierdź"
|
6809 |
+
|
6810 |
+
#: inc/shortcodes/class-lp-shortcode-course-curriculum.php:44
|
6811 |
+
msgid "Invalid course."
|
6812 |
+
msgstr "Niepoprawny kurs."
|
6813 |
+
|
6814 |
+
#: inc/shortcodes/class-lp-shortcode-login-form.php:39
|
6815 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:41
|
6816 |
+
#, php-format
|
6817 |
+
msgid "Your are logged in as %s. <a href=\"%s\">Log out</a>?"
|
6818 |
+
msgstr "Jesteś zalogowany jako %s. <a href=\"%s\">Wylogować</a>?"
|
6819 |
+
|
6820 |
+
#: inc/shortcodes/class-lp-shortcode-login-form.php:61
|
6821 |
+
#: inc/shortcodes/class-lp-shortcode-login-form.php:63
|
6822 |
+
msgid "Username or email"
|
6823 |
+
msgstr "Login lub email"
|
6824 |
|
6825 |
+
#: inc/shortcodes/class-lp-shortcode-register-form.php:86
|
6826 |
+
msgid ""
|
6827 |
+
"The password should be at least twelve characters long. To make it stronger, "
|
6828 |
+
"use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )"
|
6829 |
msgstr ""
|
6830 |
+
"Hasło powinno zawierać co najmniej 12 znaków. Aby było silniejsze, użyj "
|
6831 |
+
"zarówno małych jak i dużych znaków, numeru i symbolu jak ! \" ? $ % ^ & )"
|
6832 |
|
6833 |
+
#: inc/updates/_update-from-0.9.php:1206
|
6834 |
+
msgctxt "Permalink Slug"
|
6835 |
+
msgid "lesson-tag"
|
6836 |
+
msgstr "etykieta lekcji"
|
6837 |
|
6838 |
+
#: inc/updates/_update-from-0.9.php:1228
|
6839 |
+
msgctxt "Permalink Slug"
|
6840 |
+
msgid "question-tag"
|
6841 |
+
msgstr "pytanie-etykieta"
|
6842 |
|
6843 |
+
#: inc/user/abstract-lp-user.php:360
|
6844 |
+
msgid "You cannot start a quiz in preview mode."
|
6845 |
+
msgstr "Nie możesz rozpocząć testy w trybie podglądu."
|
6846 |
|
6847 |
+
#: inc/user/abstract-lp-user.php:367
|
6848 |
+
msgid "Course does not exist or does not contain the quiz"
|
6849 |
+
msgstr "Kurs nie istnieje lub nie zawiera testu"
|
6850 |
|
6851 |
+
#: inc/user/abstract-lp-user.php:372
|
6852 |
+
msgid "User has already finished the course of this quiz"
|
6853 |
+
msgstr "Użytkownik ukończył już kurs dla tego testu"
|
6854 |
|
6855 |
+
#: inc/user/abstract-lp-user.php:378
|
6856 |
+
msgid "User has started or completed quiz"
|
6857 |
+
msgstr "Użytkownik już rozpoczął lub zakończył test"
|
6858 |
|
6859 |
+
#: inc/user/abstract-lp-user.php:385
|
6860 |
+
msgid "You have to login for starting quiz."
|
6861 |
+
msgstr "Musisz się zalogować aby rozpocząć test."
|
6862 |
|
6863 |
+
#: inc/user/abstract-lp-user.php:402
|
6864 |
+
msgid "Start quiz failed!"
|
6865 |
+
msgstr "Błąd rozpoczęcia testu!"
|
6866 |
|
6867 |
+
#: inc/user/abstract-lp-user.php:439
|
6868 |
+
msgid "Course is not exists or does not contain the quiz"
|
6869 |
+
msgstr "Kurs nie istnieje lub nie zawiera testu"
|
6870 |
|
6871 |
+
#: inc/user/abstract-lp-user.php:444
|
6872 |
+
msgid "User has already finished course of this quiz"
|
6873 |
+
msgstr "Użytkownik ukończył już test dla tego kursu"
|
|
|
6874 |
|
6875 |
+
#: inc/user/abstract-lp-user.php:450
|
6876 |
+
msgid "User has completed quiz"
|
6877 |
+
msgstr "Użytkownik ukończył test"
|
6878 |
|
6879 |
+
#: inc/user/abstract-lp-user.php:492
|
6880 |
+
msgid "Course does not exist or does not contain the quiz."
|
6881 |
+
msgstr "Kurs nie istnieje lub nie zawiera testu."
|
6882 |
|
6883 |
+
#: inc/user/abstract-lp-user.php:497
|
6884 |
+
msgid "You can not redo a quiz in a finished course."
|
6885 |
+
msgstr "Nie możesz zrobić ponownie testu w już ukończonym kursie."
|
6886 |
|
6887 |
+
#: inc/user/abstract-lp-user.php:503
|
6888 |
+
#, php-format
|
6889 |
+
msgid "%s::%s - User has not completed quiz."
|
6890 |
+
msgstr "%s::%s - Użytkownik nie ukończył testu."
|
6891 |
|
6892 |
+
#: inc/user/abstract-lp-user.php:1082
|
6893 |
+
msgid "You can not hint question."
|
6894 |
+
msgstr "Nie możesz otrzymać podpowiedzi do pytania."
|
6895 |
|
6896 |
+
#: inc/user/abstract-lp-user.php:1549 inc/user/abstract-lp-user.php:1896
|
6897 |
+
#: inc/user/abstract-lp-user.php:1908
|
6898 |
+
#, php-format
|
6899 |
+
msgid "The role %s for user doesn't exist"
|
6900 |
+
msgstr "Rola %s dla użytkowników nie istnieje"
|
6901 |
|
6902 |
+
#: inc/user/abstract-lp-user.php:2215
|
6903 |
+
msgid "You can not complete a preview lesson."
|
6904 |
+
msgstr "Nie możesz rozpocząć testy w trybie podglądu."
|
6905 |
|
6906 |
+
#: inc/user/abstract-lp-user.php:2242
|
6907 |
+
msgid "You have already completed this lesson"
|
6908 |
+
msgstr "Już ukończyłeś tą lekcję"
|
6909 |
|
6910 |
+
#: inc/user/abstract-lp-user.php:2612 inc/user/abstract-lp-user.php:2616
|
6911 |
+
msgid "Failed to enroll course."
|
6912 |
+
msgstr "Błąd przystępowania do kursu."
|
6913 |
|
6914 |
+
#: inc/user/abstract-lp-user.php:2620
|
6915 |
+
msgid "Please login to enroll course."
|
6916 |
+
msgstr "Proszę się zalogować, aby przystąpić do kursu."
|
6917 |
|
6918 |
+
#: inc/user/class-lp-profile.php:84
|
6919 |
+
msgid "Account information updated successful."
|
6920 |
+
msgstr "Informacje o koncie zostały zakutalizowane."
|
6921 |
|
6922 |
+
#: inc/user/class-lp-profile.php:85
|
6923 |
+
msgid "Account avatar updated successful."
|
6924 |
+
msgstr "Avatar konta został zaktualizowany."
|
6925 |
|
6926 |
+
#: inc/user/class-lp-profile.php:86
|
6927 |
+
msgid "Password updated successful."
|
6928 |
+
msgstr "Hasło zaktualizowane poprawnie."
|
6929 |
|
6930 |
+
#: inc/user/class-lp-profile.php:87
|
6931 |
+
msgid "Account publicity updated successful."
|
6932 |
+
msgstr "Rozgłos konta został zaktualizowany."
|
6933 |
|
6934 |
+
#: inc/user/class-lp-profile.php:835 inc/user-item/class-lp-user-item.php:352
|
6935 |
+
msgid "Not enrolled"
|
6936 |
+
msgstr "Nie przystąpiono"
|
|
|
|
|
|
|
|
|
6937 |
|
6938 |
+
#: inc/user/class-lp-user-factory.php:355
|
6939 |
+
msgid "Every 3 Minutes"
|
6940 |
+
msgstr "Co 3 minuty"
|
6941 |
|
6942 |
+
#: inc/user/lp-user-functions.php:151
|
6943 |
+
msgctxt "User role"
|
6944 |
+
msgid "Instructor"
|
6945 |
+
msgstr "Nauczyciel"
|
6946 |
|
6947 |
+
#: inc/user/lp-user-functions.php:360
|
6948 |
+
msgid "Want to become an instructor?"
|
6949 |
+
msgstr "Chcesz być nauczycielem?"
|
6950 |
|
6951 |
+
#: inc/user/lp-user-functions.php:834
|
6952 |
+
msgid "Only"
|
6953 |
+
msgstr "Tylko"
|
6954 |
|
6955 |
+
#: inc/user/lp-user-functions.php:834
|
6956 |
+
msgid "images accepted for upload"
|
6957 |
+
msgstr "obrazek zaakceptowano do załądowania"
|
|
|
6958 |
|
6959 |
+
#: inc/user/lp-user-functions.php:843
|
6960 |
+
msgid "Images must be under"
|
6961 |
+
msgstr "Zdjęcia muszą być poniżej"
|
6962 |
|
6963 |
+
#: inc/user/lp-user-functions.php:843
|
6964 |
+
msgid "MB in size"
|
6965 |
+
msgstr "MB w rozmiarze"
|
6966 |
|
6967 |
+
#: inc/user/lp-user-functions.php:851
|
6968 |
+
msgid "Please select an image for upload"
|
6969 |
+
msgstr "Wybierz zdjęcie, aby załadować"
|
6970 |
|
6971 |
+
#: inc/user/lp-user-functions.php:880
|
6972 |
+
msgid "Image is uploaded success"
|
6973 |
+
msgstr "Wczytano obrazek"
|
6974 |
|
6975 |
+
#: inc/user/lp-user-functions.php:880
|
6976 |
+
msgid "Error in uploading image"
|
6977 |
+
msgstr "Błąd przy wczytywaniu zdjęcia"
|
6978 |
|
6979 |
+
#: inc/user/lp-user-functions.php:906 inc/user/lp-user-functions.php:937
|
6980 |
+
#: inc/user/lp-user-functions.php:953 inc/user/lp-user-functions.php:960
|
6981 |
+
msgid "Thumbnail of image profile not created"
|
6982 |
+
msgstr "Brak miniaturki zdjęcia profilowego"
|
6983 |
|
6984 |
+
#: inc/user/lp-user-functions.php:924
|
6985 |
+
msgid "Error in cropping user picture profile"
|
6986 |
+
msgstr "Błąd przycinania zdjęcia profilowego"
|
6987 |
|
6988 |
+
#: inc/user/lp-user-functions.php:979
|
6989 |
+
msgid "Profile picture is changed"
|
6990 |
+
msgstr "Zdjęcie profilowe zostało zmienione"
|
6991 |
|
6992 |
+
#: inc/user/lp-user-functions.php:1023 inc/user/lp-user-functions.php:1510
|
6993 |
+
msgid "Old password incorrect!"
|
6994 |
+
msgstr "Stare hasło niepoprawne!"
|
6995 |
|
6996 |
+
#: inc/user/lp-user-functions.php:1037 inc/user/lp-user-functions.php:1517
|
6997 |
+
msgid "Confirmation password incorrect!"
|
6998 |
+
msgstr "Potwierdzenie hasła niepoprawne!"
|
6999 |
|
7000 |
+
#: inc/user/lp-user-functions.php:1056
|
7001 |
+
msgid "Your changes are saved"
|
7002 |
+
msgstr "Twoja zmiana została zapisana"
|
|
|
7003 |
|
7004 |
+
#: inc/user/lp-user-functions.php:1064
|
7005 |
+
msgid "Error in update your profile info"
|
7006 |
+
msgstr "Błąd przy wczytywaniu zdjęcia profilowego"
|
7007 |
|
7008 |
+
#: inc/user/lp-user-functions.php:1198
|
7009 |
+
msgid "Please login to enroll this course"
|
7010 |
+
msgstr "Zaloguj się, aby dołączyć do kursu"
|
|
|
7011 |
|
7012 |
+
#: inc/user/lp-user-functions.php:1216
|
7013 |
+
msgid "You have already finished course"
|
7014 |
+
msgstr "Już ukończyłeś ten kurs"
|
|
|
7015 |
|
7016 |
+
#: inc/user/lp-user-functions.php:1219
|
7017 |
+
msgid "You have already enrolled in this course"
|
7018 |
+
msgstr "Już dołączyłeś do tego kursu"
|
7019 |
|
7020 |
+
#: inc/user-item/class-lp-user-item-quiz.php:335
|
7021 |
+
msgid "Check question has reached limit."
|
7022 |
+
msgstr "Osiągnięto limit sprawzdania pytania."
|
7023 |
|
7024 |
+
#: inc/user-item/class-lp-user-item-quiz.php:337
|
7025 |
+
msgid "You have already checked this question."
|
7026 |
+
msgstr "Już sprawdziłeś te pytanie."
|
7027 |
|
7028 |
+
#: inc/widgets/course-attributes/course-attributes.php:14
|
7029 |
+
msgid "Course attributes"
|
7030 |
+
msgstr "Atrybuty kursu"
|
7031 |
|
7032 |
+
#: inc/widgets/course-filters/course-filters.php:14
|
7033 |
+
msgid "Course filters"
|
7034 |
+
msgstr "Filtry kursu"
|
7035 |
|
7036 |
+
#: inc/widgets/course-filters/course-filters.php:17
|
7037 |
+
msgid "Filter by"
|
7038 |
+
msgstr "Filtruj przez"
|
7039 |
|
7040 |
+
#: inc/widgets/course-filters/course-filters.php:24
|
7041 |
+
msgid "Attribute operation"
|
7042 |
+
msgstr "Operator atrybutu"
|
7043 |
|
7044 |
+
#: inc/widgets/course-filters/course-filters.php:29
|
7045 |
+
#: inc/widgets/course-filters/course-filters.php:39
|
7046 |
+
msgid "And"
|
7047 |
+
msgstr "I"
|
7048 |
+
|
7049 |
+
#: inc/widgets/course-filters/course-filters.php:30
|
7050 |
+
#: inc/widgets/course-filters/course-filters.php:40
|
7051 |
+
msgid "Or"
|
7052 |
+
msgstr "Lub"
|
7053 |
|
7054 |
+
#: inc/widgets/course-filters/course-filters.php:34
|
7055 |
+
msgid "Value operation"
|
7056 |
+
msgstr "Wartość operatora"
|
7057 |
|
7058 |
+
#: inc/widgets/course-filters/course-filters.php:44
|
7059 |
+
msgid "Ajax filter"
|
7060 |
+
msgstr "Filtr Ajax"
|
7061 |
|
7062 |
+
#: inc/widgets/course-filters/course-filters.php:48
|
7063 |
+
msgid "Use ajax to fetch content while filtering"
|
7064 |
+
msgstr "Użyj ajax by ustawić treść przy filtrowaniu"
|
7065 |
|
7066 |
+
#: inc/widgets/course-filters/course-filters.php:51
|
7067 |
+
msgid "Button filter"
|
7068 |
+
msgstr "Przycisk filtru"
|
7069 |
|
7070 |
+
#: inc/widgets/course-filters/course-filters.php:55
|
7071 |
+
msgid "If checked, user has to click this button to start filtering"
|
7072 |
+
msgstr ""
|
7073 |
+
"Jeżeli zaznaczone, użytkownik musi kliknąć w przycisk aby przefiltrować"
|
7074 |
+
|
7075 |
+
#: inc/widgets/course-filters/tmpl/default.php:83
|
7076 |
+
msgid "Filter"
|
7077 |
+
msgstr "Filtr"
|
7078 |
+
|
7079 |
+
#: inc/widgets/course-info/course-info.php:49
|
7080 |
+
msgid "Course Info"
|
7081 |
+
msgstr "Informacje o kursie"
|
7082 |
+
|
7083 |
+
#: inc/widgets/course-info/course-info.php:52
|
7084 |
+
#: inc/widgets/course-progress/course-progress.php:52
|
7085 |
+
#: inc/widgets/featured-courses/featured-courses.php:95
|
7086 |
+
#: inc/widgets/popular-courses/popular-courses.php:96
|
7087 |
+
#: inc/widgets/recent-courses/recent-courses.php:96
|
7088 |
+
msgid "CSS Class"
|
7089 |
+
msgstr "Klasa CSS"
|
7090 |
+
|
7091 |
+
#: inc/widgets/course-progress/course-progress.php:49
|
7092 |
+
msgid "Course Progress"
|
7093 |
+
msgstr "Postęp kursu"
|
7094 |
+
|
7095 |
+
#: inc/widgets/featured-courses/featured-courses.php:48
|
7096 |
+
msgid "Featured Courses"
|
7097 |
+
msgstr "Opis kursu"
|
7098 |
|
7099 |
+
#: inc/widgets/featured-courses/featured-courses.php:51
|
7100 |
+
#: inc/widgets/popular-courses/popular-courses.php:52
|
7101 |
+
#: inc/widgets/recent-courses/recent-courses.php:52
|
7102 |
+
msgid "Show teacher"
|
7103 |
+
msgstr "Pokaż nauczyciela"
|
7104 |
+
|
7105 |
+
#: inc/widgets/featured-courses/featured-courses.php:57
|
7106 |
+
#: inc/widgets/popular-courses/popular-courses.php:58
|
7107 |
+
#: inc/widgets/recent-courses/recent-courses.php:58
|
7108 |
+
msgid "Show lesson"
|
7109 |
+
msgstr "Pokaż lekcje"
|
7110 |
+
|
7111 |
+
#: inc/widgets/featured-courses/featured-courses.php:63
|
7112 |
+
#: inc/widgets/popular-courses/popular-courses.php:64
|
7113 |
+
#: inc/widgets/recent-courses/recent-courses.php:64
|
7114 |
+
msgid "Show Thumbnail"
|
7115 |
+
msgstr "Pokaż miniaturkę"
|
7116 |
+
|
7117 |
+
#: inc/widgets/featured-courses/featured-courses.php:69
|
7118 |
+
#: inc/widgets/popular-courses/popular-courses.php:70
|
7119 |
+
#: inc/widgets/recent-courses/recent-courses.php:70
|
7120 |
+
msgid "Limit"
|
7121 |
+
msgstr "Limit"
|
7122 |
+
|
7123 |
+
#: inc/widgets/featured-courses/featured-courses.php:76
|
7124 |
+
#: inc/widgets/popular-courses/popular-courses.php:77
|
7125 |
+
#: inc/widgets/recent-courses/recent-courses.php:77
|
7126 |
+
msgid "Description Length"
|
7127 |
+
msgstr "Długość opisu"
|
7128 |
+
|
7129 |
+
#: inc/widgets/featured-courses/featured-courses.php:83
|
7130 |
+
#: inc/widgets/popular-courses/popular-courses.php:84
|
7131 |
+
#: inc/widgets/recent-courses/recent-courses.php:84
|
7132 |
+
msgid "Show Enrolled Students"
|
7133 |
+
msgstr "Pokaż osoby, które przystąpiły"
|
7134 |
+
|
7135 |
+
#: inc/widgets/featured-courses/featured-courses.php:89
|
7136 |
+
#: inc/widgets/popular-courses/popular-courses.php:90
|
7137 |
+
#: inc/widgets/recent-courses/recent-courses.php:90
|
7138 |
+
msgid "Show Price"
|
7139 |
+
msgstr "Pokaż cenę"
|
7140 |
+
|
7141 |
+
#: inc/widgets/featured-courses/featured-courses.php:101
|
7142 |
+
#: inc/widgets/popular-courses/popular-courses.php:102
|
7143 |
+
#: inc/widgets/recent-courses/recent-courses.php:102
|
7144 |
+
msgid "Go to Courses"
|
7145 |
+
msgstr "Idź do kursu"
|
7146 |
+
|
7147 |
+
#: inc/widgets/popular-courses/popular-courses.php:49
|
7148 |
+
msgid "Popular Courses"
|
7149 |
+
msgstr "Popularne kursy"
|
7150 |
+
|
7151 |
+
#: inc/widgets/recent-courses/recent-courses.php:49
|
7152 |
+
msgid "Recent Courses"
|
7153 |
+
msgstr "Nowe kursy"
|
7154 |
+
|
7155 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:50
|
7156 |
+
msgid ""
|
7157 |
+
"\n"
|
7158 |
+
msgstr ""
|
7159 |
+
"\n"
|
7160 |
|
7161 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:83
|
7162 |
+
#, python-format
|
7163 |
+
msgid " %s=\"%s\""
|
7164 |
+
msgstr " %s=\"%s\""
|
7165 |
+
|
7166 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:100
|
7167 |
+
#, python-format
|
7168 |
+
msgid "</%s>%s"
|
7169 |
+
msgstr "</%s>%s"
|
7170 |
+
|
7171 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:102
|
7172 |
+
#, python-format
|
7173 |
+
msgid "/>%s"
|
7174 |
+
msgstr "/>%s"
|
7175 |
+
|
7176 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/input.py:1832
|
7177 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/input.py:1893
|
7178 |
+
#, python-format
|
7179 |
+
msgid "Cycle: %s"
|
7180 |
+
msgstr "Akceptacja: %s"
|
7181 |
|
7182 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:358
|
7183 |
+
msgid "_MBCS"
|
7184 |
+
msgstr "_MBCS"
|
7185 |
|
7186 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:423
|
7187 |
+
msgid "/safeseh"
|
7188 |
+
msgstr "/safeseh"
|
7189 |
+
|
7190 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:473
|
7191 |
+
msgid "/FS"
|
7192 |
+
msgstr "/FS"
|
7193 |
+
|
7194 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:543
|
7195 |
+
#, python-format
|
7196 |
+
msgid "/DEF:\"%s\""
|
7197 |
+
msgstr "/DEF:\"%s\""
|
7198 |
|
7199 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:575
|
7200 |
+
msgid "/OUT:"
|
7201 |
+
msgstr "/OUT:"
|
7202 |
|
7203 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:578
|
7204 |
+
msgid "/PDB:"
|
7205 |
+
msgstr "/PDB:"
|
7206 |
|
7207 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:581
|
7208 |
+
msgid "/PGD:"
|
7209 |
+
msgstr "/PGD:"
|
7210 |
|
7211 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:604
|
7212 |
+
#, python-format
|
7213 |
+
msgid "/STACK:%s%s"
|
7214 |
+
msgstr "/STACK:%s%s"
|
7215 |
|
7216 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:643
|
7217 |
+
msgid "/DYNAMICBASE"
|
7218 |
+
msgstr "/DYNAMICBASE"
|
7219 |
|
7220 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:650
|
7221 |
+
msgid "/NXCOMPAT"
|
7222 |
+
msgstr "/NXCOMPAT"
|
7223 |
|
7224 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:692
|
7225 |
+
msgid "/MANIFESTUAC:NO"
|
7226 |
+
msgstr "/MANIFESTUAC:NO"
|
|
|
7227 |
|
7228 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:740
|
7229 |
+
msgid "/ALLOWISOLATION"
|
7230 |
+
msgstr "/ALLOWISOLATION"
|
7231 |
|
7232 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py:785
|
7233 |
+
msgid "/I"
|
7234 |
+
msgstr "/I"
|
7235 |
|
7236 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py:72
|
7237 |
+
msgid "|"
|
7238 |
+
msgstr "|"
|
7239 |
+
|
7240 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py:76
|
7241 |
+
msgid "||"
|
7242 |
+
msgstr "||"
|
7243 |
+
|
7244 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py:276
|
7245 |
+
#, python-format
|
7246 |
+
msgid "\\U%04x"
|
7247 |
+
msgstr "\\U%04x"
|
7248 |
+
|
7249 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py:988
|
7250 |
+
msgid ".name"
|
7251 |
+
msgstr ".name"
|
7252 |
+
|
7253 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py:999
|
7254 |
+
msgid ".path"
|
7255 |
+
msgstr ".path"
|
7256 |
+
|
7257 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py:1066
|
7258 |
+
msgid "$("
|
7259 |
+
msgstr "$("
|
7260 |
+
|
7261 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:478
|
7262 |
+
#, python-format
|
7263 |
+
msgid "-isysroot %s"
|
7264 |
+
msgstr "-isysroot %s"
|
7265 |
+
|
7266 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:481
|
7267 |
+
msgid "-Wconstant-conversion"
|
7268 |
+
msgstr "-Wconstant-conversion"
|
7269 |
+
|
7270 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:484
|
7271 |
+
msgid "-funsigned-char"
|
7272 |
+
msgstr "-funsigned-char"
|
7273 |
+
|
7274 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:487
|
7275 |
+
msgid "-fasm-blocks"
|
7276 |
+
msgstr "-fasm-blocks"
|
7277 |
+
|
7278 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:491
|
7279 |
+
msgid "-mdynamic-no-pic"
|
7280 |
+
msgstr "-mdynamic-no-pic"
|
7281 |
+
|
7282 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:499
|
7283 |
+
msgid "-mpascal-strings"
|
7284 |
+
msgstr "-mpascal-strings"
|
7285 |
+
|
7286 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:506
|
7287 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:510
|
7288 |
+
msgid "-gdwarf-2"
|
7289 |
+
msgstr "-gdwarf-2"
|
7290 |
+
|
7291 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:515
|
7292 |
+
msgid "-fstrict-aliasing"
|
7293 |
+
msgstr "-fstrict-aliasing"
|
7294 |
+
|
7295 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:517
|
7296 |
+
msgid "-fno-strict-aliasing"
|
7297 |
+
msgstr "-fno-strict-aliasing"
|
7298 |
+
|
7299 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:520
|
7300 |
+
msgid "-fvisibility=hidden"
|
7301 |
+
msgstr "-fvisibility=hidden"
|
7302 |
+
|
7303 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:523
|
7304 |
+
msgid "-Werror"
|
7305 |
+
msgstr "-Werror"
|
7306 |
+
|
7307 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:526
|
7308 |
+
msgid "-Wnewline-eof"
|
7309 |
+
msgstr "-Wnewline-eof"
|
7310 |
+
|
7311 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:533
|
7312 |
+
msgid "-flto"
|
7313 |
+
msgstr "-flto"
|
7314 |
+
|
7315 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:556
|
7316 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:814
|
7317 |
+
msgid "-arch "
|
7318 |
+
msgstr "-arch "
|
7319 |
+
|
7320 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:560
|
7321 |
+
msgid "-msse3"
|
7322 |
+
msgstr "-msse3"
|
7323 |
+
|
7324 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:563
|
7325 |
+
msgid "-mssse3"
|
7326 |
+
msgstr "-mssse3"
|
7327 |
+
|
7328 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:565
|
7329 |
+
msgid "-msse4.1"
|
7330 |
+
msgstr "-msse4.1"
|
7331 |
+
|
7332 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:567
|
7333 |
+
msgid "-msse4.2"
|
7334 |
+
msgstr "-msse4.2"
|
7335 |
+
|
7336 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:578
|
7337 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:832
|
7338 |
+
msgid "-F"
|
7339 |
+
msgstr "-F"
|
7340 |
+
|
7341 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:588
|
7342 |
+
msgid "-ansi"
|
7343 |
+
msgstr "-ansi"
|
7344 |
+
|
7345 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:605
|
7346 |
+
#, python-format
|
7347 |
+
msgid "-std=%s"
|
7348 |
+
msgstr "-std=%s"
|
7349 |
+
|
7350 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:610
|
7351 |
+
msgid "-fno-rtti"
|
7352 |
+
msgstr "-fno-rtti"
|
7353 |
+
|
7354 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:612
|
7355 |
+
msgid "-fno-exceptions"
|
7356 |
+
msgstr "-fno-exceptions"
|
7357 |
+
|
7358 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:614
|
7359 |
+
msgid "-fvisibility-inlines-hidden"
|
7360 |
+
msgstr "-fvisibility-inlines-hidden"
|
7361 |
+
|
7362 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:616
|
7363 |
+
msgid "-fno-threadsafe-statics"
|
7364 |
+
msgstr "-fno-threadsafe-statics"
|
7365 |
+
|
7366 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:619
|
7367 |
+
msgid "-Wno-invalid-offsetof"
|
7368 |
+
msgstr "-Wno-invalid-offsetof"
|
7369 |
+
|
7370 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:639
|
7371 |
+
msgid "-fobjc-gc"
|
7372 |
+
msgstr "-fobjc-gc"
|
7373 |
+
|
7374 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:641
|
7375 |
+
msgid "-fobjc-gc-only"
|
7376 |
+
msgstr "-fobjc-gc-only"
|
7377 |
+
|
7378 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:645
|
7379 |
+
msgid "-fobjc-arc"
|
7380 |
+
msgstr "-fobjc-arc"
|
7381 |
+
|
7382 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:650
|
7383 |
+
msgid "-Wobjc-missing-property-synthesis"
|
7384 |
+
msgstr "-Wobjc-missing-property-synthesis"
|
7385 |
+
|
7386 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:670
|
7387 |
+
msgid "-fobjc-call-cxx-cdtors"
|
7388 |
+
msgstr "-fobjc-call-cxx-cdtors"
|
7389 |
+
|
7390 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:782
|
7391 |
+
msgid "-Wl,-dead_strip"
|
7392 |
+
msgstr "-Wl,-dead_strip"
|
7393 |
+
|
7394 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:785
|
7395 |
+
msgid "-Wl,-prebind"
|
7396 |
+
msgstr "-Wl,-prebind"
|
7397 |
+
|
7398 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:795
|
7399 |
+
msgid "-isysroot "
|
7400 |
+
msgstr "-isysroot "
|
7401 |
+
|
7402 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:798
|
7403 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:817
|
7404 |
+
msgid "-L"
|
7405 |
+
msgstr "-L"
|
7406 |
+
|
7407 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:801
|
7408 |
+
msgid "-Wl,-order_file "
|
7409 |
+
msgstr "-Wl,-order_file "
|
7410 |
+
|
7411 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:821
|
7412 |
+
msgid "-install_name "
|
7413 |
+
msgstr "-install_name "
|
7414 |
+
|
7415 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:824
|
7416 |
+
msgid "-Wl,-rpath,"
|
7417 |
+
msgstr "-Wl,-rpath,"
|
7418 |
+
|
7419 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:840
|
7420 |
+
msgid "-lpkstart"
|
7421 |
+
msgstr "-lpkstart"
|
7422 |
+
|
7423 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:843
|
7424 |
+
msgid "/System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit"
|
7425 |
+
msgstr "/System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit"
|
7426 |
+
|
7427 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:844
|
7428 |
+
msgid "-fapplication-extension"
|
7429 |
+
msgstr "-fapplication-extension"
|
7430 |
+
|
7431 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:845
|
7432 |
+
msgid "-Xlinker -rpath -Xlinker @executable_path/../../Frameworks"
|
7433 |
+
msgstr "-Xlinker -rpath -Xlinker @executable_path/../../Frameworks"
|
7434 |
+
|
7435 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:937
|
7436 |
+
#, python-format
|
7437 |
+
msgid "echo STRIP\\(%s\\)"
|
7438 |
+
msgstr "echo STRIP\\(%s\\)"
|
7439 |
+
|
7440 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:938
|
7441 |
+
#, python-format
|
7442 |
+
msgid "strip %s %s"
|
7443 |
+
msgstr "strip %s %s"
|
7444 |
+
|
7445 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:956
|
7446 |
+
#, python-format
|
7447 |
+
msgid "echo DSYMUTIL\\(%s\\)"
|
7448 |
+
msgstr "echo DSYMUTIL\\(%s\\)"
|
7449 |
+
|
7450 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:957
|
7451 |
+
#, python-format
|
7452 |
+
msgid "dsymutil %s -o %s"
|
7453 |
+
msgstr "dsymutil %s -o %s"
|
7454 |
+
|
7455 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:1594
|
7456 |
+
#, python-format
|
7457 |
+
msgid "echo POSTBUILD\\(%s\\) %s"
|
7458 |
+
msgstr "echo POSTBUILD\\(%s\\) %s"
|
7459 |
+
|
7460 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/__init__.py:364
|
7461 |
+
msgid "USERPROFILE"
|
7462 |
+
msgstr "USERPROFILE"
|
7463 |
+
|
7464 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py:663
|
7465 |
+
msgid "all"
|
7466 |
+
msgstr "wszystkie"
|
7467 |
+
|
7468 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/android.py:450
|
7469 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:955
|
7470 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1081
|
7471 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1123
|
7472 |
+
#, python-format
|
7473 |
+
msgid "$(%s)"
|
7474 |
+
msgstr "$(%s)"
|
7475 |
+
|
7476 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py:376
|
7477 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py:377
|
7478 |
+
msgid "${"
|
7479 |
+
msgstr "${"
|
7480 |
+
|
7481 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py:223
|
7482 |
+
msgid "1"
|
7483 |
+
msgstr "1"
|
7484 |
+
|
7485 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1252
|
7486 |
+
msgid "$(OBJS)"
|
7487 |
+
msgstr "$(OBJS)"
|
7488 |
+
|
7489 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1471
|
7490 |
+
#, python-format
|
7491 |
+
msgid "-Wl,-rpath=\\$$ORIGIN/lib.%s/"
|
7492 |
+
msgstr "-Wl,-rpath=\\$$ORIGIN/lib.%s/"
|
7493 |
+
|
7494 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1472
|
7495 |
+
#, python-format
|
7496 |
+
msgid "-Wl,-rpath-link=\\$(builddir)/lib.%s/"
|
7497 |
+
msgstr "-Wl,-rpath-link=\\$(builddir)/lib.%s/"
|
7498 |
+
|
7499 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1500
|
7500 |
+
msgid "$(TARGET_POSTBUILDS_$(BUILDTYPE))"
|
7501 |
+
msgstr "$(TARGET_POSTBUILDS_$(BUILDTYPE))"
|
7502 |
+
|
7503 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1961
|
7504 |
+
msgid "BUILDTYPE="
|
7505 |
+
msgstr "BUILDTYPE="
|
7506 |
+
|
7507 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py:2946
|
7508 |
+
msgid "Label"
|
7509 |
+
msgstr "Label"
|
7510 |
+
|
7511 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py:3109
|
7512 |
+
#, python-format
|
7513 |
+
msgid "%%(%s)"
|
7514 |
+
msgstr "%%(%s)"
|
7515 |
+
|
7516 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py:1181
|
7517 |
+
#, python-format
|
7518 |
+
msgid "-Wl,-rpath=\\$$ORIGIN/%s"
|
7519 |
+
msgstr "-Wl,-rpath=\\$$ORIGIN/%s"
|
7520 |
+
|
7521 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py:1182
|
7522 |
+
#, python-format
|
7523 |
+
msgid "-Wl,-rpath-link=%s"
|
7524 |
+
msgstr "-Wl,-rpath-link=%s"
|
7525 |
+
|
7526 |
+
#: node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py:1415
|
7527 |
+
#, python-format
|
7528 |
+
msgid "export %s=%s;"
|
7529 |
+
msgstr "export %s=%s;"
|
7530 |
+
|
7531 |
+
#: templates/search-form.php:26
|
7532 |
+
msgid "Search course..."
|
7533 |
+
msgstr "Wyszukaj kurs..."
|
7534 |
+
|
7535 |
+
#: templates/checkout/form-logged-in.php:27
|
7536 |
+
#, php-format
|
7537 |
+
msgid "Logged in as <a href=\"%1$s\">%2$s</a>."
|
7538 |
+
msgstr "Zalogowano się jako <a href=\"%1$s\">%2$s</a>."
|
7539 |
|
7540 |
+
#: templates/checkout/form-logged-in.php:30
|
7541 |
+
msgid "Log out of this account"
|
7542 |
+
msgstr "Wyloguj się z tego konta"
|
7543 |
|
7544 |
+
#: templates/checkout/form-logged-in.php:30
|
7545 |
+
msgid "Log out »"
|
7546 |
+
msgstr "Log out »"
|
7547 |
|
7548 |
+
#: templates/checkout/form-login.php:34
|
7549 |
+
msgid "Returning customer"
|
7550 |
+
msgstr "Powracający klient"
|
|
|
|
|
7551 |
|
7552 |
+
#: templates/checkout/form-login.php:35
|
7553 |
+
msgid "I am a returning customer."
|
7554 |
+
msgstr "Jestem powracającym kl
|