From 0f973128753afb715731351db89ab662b05f0f55 Mon Sep 17 00:00:00 2001 From: Alex Grsm Date: Mon, 14 Nov 2022 22:42:50 +0200 Subject: [PATCH] switchLang and menu are finished --- .ecrc | 3 + .editorconfig | 13 + .gitignore | 3 + .htmlhintrc | 4 + .jshintrc | 15 + .prettierrc.json | 12 + .stylelintrc.json | 745 +++ .vscode/extensions.json | 3 + .vscode/snippets/html.json | 151 + gulpfile.js | 327 ++ package.json | 72 + src/img/logo.svg | 6 + src/img/search.svg | 5 + src/img/svg/angle-down.svg | 3 + src/img/svg/icon.svg | 74 + src/index.html | 17 + src/js/_components.js | 9 + src/js/_functions.js | 86 + src/js/_vars.js | 6 + src/js/_vendor.js | 2 + src/js/components/langdropdown.js | 27 + src/js/components/supermenu.js | 35 + src/js/functions/burger.js | 42 + src/js/functions/check-viewport.js | 23 + src/js/functions/disable-scroll.js | 14 + src/js/functions/enable-scroll.js | 18 + src/js/functions/fix-fullheight.js | 11 + src/js/functions/header-height.js | 4 + src/js/functions/mobile-check.js | 17 + src/js/functions/throttle.js | 27 + src/js/functions/validate-forms.js | 65 + src/js/main.js | 4 + src/js/vendor/focus-visible.js | 304 ++ src/js/vendor/jquery.hoverIntent.min.js | 9 + src/js/vendor/superfish.min.js | 10 + src/partials/footer.html | 5 + src/partials/head.html | 17 + src/partials/header.html | 66 + src/resources/favicon.ico | Bin 0 -> 318 bytes src/resources/fonts/MontserratBold.woff2 | Bin 0 -> 62324 bytes src/resources/fonts/MontserratLight.woff2 | Bin 0 -> 61024 bytes src/resources/fonts/MontserratMedium.woff2 | Bin 0 -> 61680 bytes src/resources/fonts/MontserratRegular.woff2 | Bin 0 -> 61260 bytes src/resources/fonts/MontserratSemiBold.woff2 | Bin 0 -> 61588 bytes src/resources/mail.php | 69 + src/resources/phpmailer/Exception.php | 40 + src/resources/phpmailer/PHPMailer.php | 5041 ++++++++++++++++++ src/resources/phpmailer/SMTP.php | 1456 +++++ src/scss/_fonts.scss | 5 + src/scss/_mixins.scss | 9 + src/scss/_settings.scss | 107 + src/scss/_vars.scss | 13 + src/scss/components/_header.scss | 18 + src/scss/components/_langdropdown.scss | 97 + src/scss/components/_menu.scss | 64 + src/scss/main.scss | 14 + src/scss/mixins/_breakpoint.scss | 31 + src/scss/mixins/_burger.scss | 65 + src/scss/mixins/_checkbox.scss | 56 + src/scss/mixins/_disable-mob-hover.scss | 7 + src/scss/mixins/_flex.scss | 25 + src/scss/mixins/_font-face.scss | 10 + src/scss/mixins/_layout.scss | 43 + src/scss/mixins/_mini.scss | 60 + src/scss/mixins/_tabs.scss | 13 + src/scss/vendor.scss | 12 + src/scss/vendor/normalize.css | 379 ++ 67 files changed, 9888 insertions(+) create mode 100644 .ecrc create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .htmlhintrc create mode 100644 .jshintrc create mode 100644 .prettierrc.json create mode 100644 .stylelintrc.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/snippets/html.json create mode 100644 gulpfile.js create mode 100644 package.json create mode 100644 src/img/logo.svg create mode 100644 src/img/search.svg create mode 100644 src/img/svg/angle-down.svg create mode 100644 src/img/svg/icon.svg create mode 100644 src/index.html create mode 100644 src/js/_components.js create mode 100644 src/js/_functions.js create mode 100644 src/js/_vars.js create mode 100644 src/js/_vendor.js create mode 100644 src/js/components/langdropdown.js create mode 100644 src/js/components/supermenu.js create mode 100644 src/js/functions/burger.js create mode 100644 src/js/functions/check-viewport.js create mode 100644 src/js/functions/disable-scroll.js create mode 100644 src/js/functions/enable-scroll.js create mode 100644 src/js/functions/fix-fullheight.js create mode 100644 src/js/functions/header-height.js create mode 100644 src/js/functions/mobile-check.js create mode 100644 src/js/functions/throttle.js create mode 100644 src/js/functions/validate-forms.js create mode 100644 src/js/main.js create mode 100644 src/js/vendor/focus-visible.js create mode 100644 src/js/vendor/jquery.hoverIntent.min.js create mode 100644 src/js/vendor/superfish.min.js create mode 100644 src/partials/footer.html create mode 100644 src/partials/head.html create mode 100644 src/partials/header.html create mode 100644 src/resources/favicon.ico create mode 100644 src/resources/fonts/MontserratBold.woff2 create mode 100644 src/resources/fonts/MontserratLight.woff2 create mode 100644 src/resources/fonts/MontserratMedium.woff2 create mode 100644 src/resources/fonts/MontserratRegular.woff2 create mode 100644 src/resources/fonts/MontserratSemiBold.woff2 create mode 100644 src/resources/mail.php create mode 100644 src/resources/phpmailer/Exception.php create mode 100644 src/resources/phpmailer/PHPMailer.php create mode 100644 src/resources/phpmailer/SMTP.php create mode 100644 src/scss/_fonts.scss create mode 100644 src/scss/_mixins.scss create mode 100644 src/scss/_settings.scss create mode 100644 src/scss/_vars.scss create mode 100644 src/scss/components/_header.scss create mode 100644 src/scss/components/_langdropdown.scss create mode 100644 src/scss/components/_menu.scss create mode 100644 src/scss/main.scss create mode 100644 src/scss/mixins/_breakpoint.scss create mode 100644 src/scss/mixins/_burger.scss create mode 100644 src/scss/mixins/_checkbox.scss create mode 100644 src/scss/mixins/_disable-mob-hover.scss create mode 100644 src/scss/mixins/_flex.scss create mode 100644 src/scss/mixins/_font-face.scss create mode 100644 src/scss/mixins/_layout.scss create mode 100644 src/scss/mixins/_mini.scss create mode 100644 src/scss/mixins/_tabs.scss create mode 100644 src/scss/vendor.scss create mode 100644 src/scss/vendor/normalize.css diff --git a/.ecrc b/.ecrc new file mode 100644 index 0000000..92d6da1 --- /dev/null +++ b/.ecrc @@ -0,0 +1,3 @@ +{ + "exclude": ["node_modules", "app", "vendor", "gulpfile.js", "package.json", ".stylelintrc", "\\.md$", "\\.php$"] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d12634 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..125a667 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/app +package-lock.json diff --git a/.htmlhintrc b/.htmlhintrc new file mode 100644 index 0000000..2e054d7 --- /dev/null +++ b/.htmlhintrc @@ -0,0 +1,4 @@ +{ + "attr-lowercase": false, + "doctype-first": false +} diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..80a085e --- /dev/null +++ b/.jshintrc @@ -0,0 +1,15 @@ +{ + "camelcase": true, + "indent": 4, + "undef": true, + "quotmark": false, + "maxlen": 120, + "trailing": true, + "curly": true, + "strict": false, + "browser": true, + "devel": true, + "jquery": true, + "esversion": 9, + "node": true +} \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..bf3e71f --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,12 @@ +{ + "printWidth": 120, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "bracketSpacing": true, + "jsxBracketSameLine": false, + "arrowParens": "avoid", + "proseWrap": "always" +} diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..1a2015e --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,745 @@ +{ + "extends": "stylelint-config-standard-scss", + "plugins": [ + "stylelint-order" + ], + "rules": { + "order/order": [ + "custom-properties", + "dollar-variables", + { + "type": "at-rule", + "name": "include", + "hasBlock": false + }, + "declarations", + { + "type": "rule", + "selector": "&::before" + }, + { + "type": "rule", + "selector": "&::after" + }, + "rules", + { + "type": "rule", + "selector": "&:link" + }, + { + "type": "rule", + "selector": "&:visited" + }, + { + "type": "rule", + "selector": "&:focus" + }, + { + "type": "rule", + "selector": "&:hover" + }, + { + "type": "rule", + "selector": "&:active" + }, + { + "type": "rule", + "selector": "&:disabled" + }, + { + "type": "rule", + "selector": "&:first-child" + }, + { + "type": "rule", + "selector": "&:last-child" + }, + { + "type": "rule", + "selector": "&:nth-child.+" + }, + { + "type": "rule", + "selector": "&\\[[^\\[\\]]+\\]" + }, + { + "type": "rule", + "selector": "&\\..+" + }, + { + "type": "rule", + "selector": "&--.+" + }, + { + "type": "rule", + "selector": ".* &" + }, + { + "type": "at-rule", + "name": "include", + "hasBlock": true + }, + "at-rules" + ], + "order/properties-alphabetical-order": null, + "order/properties-order": [ + [ + "all", + "print-color-adjust", + "appearance", + "counter-increment", + "counter-reset", + "content", + "quotes", + "position", + "left", + "right", + "top", + "bottom", + "z-index", + "display", + "columns", + "column-width", + "column-count", + "column-fill", + "column-gap", + "column-rule", + "column-rule-style", + "column-rule-width", + "column-rule-color", + "column-span", + "break-after", + "break-before", + "break-inside", + "page-break-after", + "page-break-before", + "page-break-inside", + "orphans", + "widows", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-flow", + "flex-direction", + "flex-wrap", + "place-content", + "place-items", + "place-self", + "align-content", + "align-items", + "align-self", + "justify-content", + "justify-items", + "justify-self", + "order", + "clear", + "float", + "grid", + "grid-area", + "grid-auto-columns", + "grid-auto-flow", + "grid-auto-rows", + "grid-column", + "grid-column-end", + "grid-column-gap", + "grid-column-start", + "grid-gap", + "grid-row", + "grid-row-end", + "grid-row-gap", + "grid-row-start", + "grid-template", + "grid-template-areas", + "grid-template-columns", + "grid-template-rows", + "list-style", + "list-style-type", + "list-style-position", + "list-style-image", + "caption-side", + "empty-cells", + "table-layout", + "vertical-align", + "clip-path", + "mask", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-position-x", + "mask-position-y", + "mask-repeat", + "mask-repeat-x", + "mask-repeat-y", + "mask-size", + "mask-type", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "contain", + "overflow", + "overflow-x", + "overflow-y", + "overflow-anchor", + "overflow-wrap", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-before", + "margin-end", + "margin-after", + "margin-start", + "margin-collapse", + "margin-top-collapse", + "margin-bottom-collapse", + "margin-before-collapse", + "margin-after-collapse", + "outline", + "outline-style", + "outline-width", + "outline-color", + "outline-offset", + "outline-radius", + "outline-radius-topleft", + "outline-radius-topright", + "outline-radius-bottomright", + "outline-radius-bottomleft", + "border", + "border-style", + "border-width", + "border-color", + "border-top", + "border-top-style", + "border-top-width", + "border-top-color", + "border-right", + "border-right-style", + "border-right-width", + "border-right-color", + "border-bottom", + "border-bottom-style", + "border-bottom-width", + "border-bottom-color", + "border-left", + "border-left-style", + "border-left-width", + "border-left-color", + "border-before", + "border-before-style", + "border-before-width", + "border-before-color", + "border-end", + "border-end-style", + "border-end-width", + "border-end-color", + "border-after", + "border-after-style", + "border-after-width", + "border-after-color", + "border-start", + "border-start-style", + "border-start-width", + "border-start-color", + "border-collapse", + "border-image", + "border-image-source", + "border-image-slice", + "border-image-width", + "border-image-outset", + "border-image-repeat", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-spacing", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-before", + "padding-end", + "padding-after", + "padding-start", + "width", + "height", + "min-width", + "min-height", + "max-width", + "max-height", + "box-decoration-break", + "box-shadow", + "box-sizing", + "src", + "font", + "font-family", + "font-weight", + "font-style", + "font-display", + "font-feature-settings", + "font-kerning", + "font-smoothing", + "font-stretch", + "font-synthesis", + "font-variant", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-size", + "font-size-adjust", + "unicode-bidi", + "unicode-range", + "line-break", + "line-height", + "letter-spacing", + "word-break", + "word-spacing", + "word-wrap", + "white-space", + "hyphens", + "tab-size", + "text-align", + "text-align-last", + "text-combine-upright", + "text-decoration", + "text-decoration-style", + "text-decoration-line", + "text-decoration-color", + "text-decoration-skip", + "text-emphasis", + "text-emphasis-style", + "text-emphasis-color", + "text-emphasis-position", + "text-fill-color", + "text-indent", + "text-justify", + "text-orientation", + "text-overflow", + "text-rendering", + "text-security", + "text-shadow", + "text-size-adjust", + "text-stroke", + "text-stroke-width", + "text-stroke-color", + "text-transform", + "text-underline-position", + "direction", + "writing-mode", + "ruby-align", + "ruby-position", + "color", + "caret-color", + "tap-highlight-color", + "d", + "x", + "y", + "cx", + "cy", + "r", + "rx", + "ry", + "fill", + "fill-opacity", + "fill-rule", + "stroke", + "stroke-dasharray", + "stroke-dashoffset", + "stroke-linecap", + "stroke-linejoin", + "stroke-miterlimit", + "stroke-opacity", + "stroke-width", + "alignment-baseline", + "baseline-shift", + "dominant-baseline", + "clip-rule", + "color-interpolation", + "color-interpolation-filters", + "color-rendering", + "flood-color", + "flood-opacity", + "lighting-color", + "marker", + "marker-end", + "marker-mid", + "marker-start", + "paint-order", + "shape-rendering", + "stop-color", + "stop-opacity", + "text-anchor", + "offset", + "offset-position", + "offset-path", + "offset-distance", + "offset-anchor", + "offset-rotate", + "background", + "background-image", + "background-position", + "background-position-x", + "background-position-y", + "background-size", + "background-repeat", + "background-repeat-x", + "background-repeat-y", + "background-origin", + "background-clip", + "background-attachment", + "background-color", + "background-blend-mode", + "image-orientation", + "image-rendering", + "object-fit", + "object-position", + "opacity", + "visibility", + "filter", + "isolation", + "mix-blend-mode", + "zoom", + "backface-visibility", + "perspective", + "perspective-origin", + "perspective-origin-x", + "perspective-origin-y", + "transform", + "transform-box", + "transform-origin", + "transform-origin-x", + "transform-origin-y", + "transform-origin-z", + "transform-style", + "transition", + "transition-property", + "transition-duration", + "transition-delay", + "transition-timing-function", + "animation", + "animation-name", + "animation-duration", + "animation-delay", + "animation-timing-function", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "animation-play-state", + "will-change", + "cursor", + "pointer-events", + "touch-action", + "user-drag", + "user-focus", + "user-select", + "user-zoom", + "resize", + "scroll-behavior", + "scroll-snap-coordinate", + "scroll-snap-destination", + "scroll-snap-type", + "scroll-snap-type-x", + "scroll-snap-type-y" + ], + { + "unspecified": "bottomAlphabetical" + } + ], + "at-rule-empty-line-before": [ + "always", + { + "except": [ + "blockless-after-same-name-blockless", + "first-nested" + ], + "ignore": [ + "after-comment" + ], + "ignoreAtRules": [ + "else" + ] + } + ], + "at-rule-name-case": "lower", + "at-rule-name-newline-after": null, + "at-rule-name-space-after": "always-single-line", + "at-rule-no-unknown": null, + "at-rule-no-vendor-prefix": true, + "at-rule-semicolon-newline-after": "always", + "at-rule-semicolon-space-before": "never", + "block-closing-brace-empty-line-before": "never", + "block-closing-brace-newline-after": [ + "always", + { + "ignoreAtRules": [ + "if", + "else" + ] + } + ], + "block-closing-brace-newline-before": "always-multi-line", + "block-closing-brace-space-after": "always-single-line", + "block-closing-brace-space-before": "always-single-line", + "block-no-empty": [ + true, + { + "severity": "warning" + } + ], + "block-opening-brace-newline-after": "always-multi-line", + "block-opening-brace-newline-before": "never-single-line", + "block-opening-brace-space-after": "always-single-line", + "block-opening-brace-space-before": "always", + "color-hex-case": "lower", + "color-hex-length": "short", + "color-named": "never", + "color-no-hex": null, + "color-no-invalid-hex": true, + "comment-empty-line-before": [ + "always", + { + "except": [ + "first-nested" + ], + "ignore": [ + "after-comment", + "stylelint-commands" + ] + } + ], + "comment-no-empty": null, + "comment-whitespace-inside": "always", + "custom-media-pattern": null, + "custom-property-empty-line-before": [ + "always", + { + "except": [ + "after-custom-property", + "first-nested" + ], + "ignore": [ + "after-comment", + "inside-single-line-block" + ] + } + ], + "custom-property-pattern": null, + "declaration-bang-space-after": "never", + "declaration-bang-space-before": "always", + "declaration-block-no-duplicate-properties": true, + "declaration-block-no-redundant-longhand-properties": true, + "declaration-block-no-shorthand-property-overrides": true, + "declaration-block-semicolon-newline-after": "always-multi-line", + "declaration-block-semicolon-newline-before": "never-multi-line", + "declaration-block-semicolon-space-after": "always-single-line", + "declaration-block-semicolon-space-before": "never", + "declaration-block-single-line-max-declarations": 0, + "declaration-block-trailing-semicolon": "always", + "declaration-colon-newline-after": "always-multi-line", + "declaration-colon-space-after": "always-single-line", + "declaration-colon-space-before": "never", + "declaration-empty-line-before": [ + "always", + { + "except": [ + "after-declaration", + "first-nested" + ], + "ignore": [ + "after-comment", + "inside-single-line-block" + ] + } + ], + "declaration-no-important": [ + true, + { + "severity": "warning" + } + ], + "font-family-name-quotes": "always-unless-keyword", + "font-family-no-duplicate-names": true, + "font-weight-notation": "numeric", + "function-calc-no-unspaced-operator": true, + "function-comma-newline-after": "always-multi-line", + "function-comma-newline-before": "never-multi-line", + "function-comma-space-after": "always-single-line", + "function-comma-space-before": "never", + "function-linear-gradient-no-nonstandard-direction": true, + "function-max-empty-lines": 0, + "function-name-case": "lower", + "function-parentheses-newline-inside": "always-multi-line", + "function-parentheses-space-inside": "never-single-line", + "function-url-no-scheme-relative": true, + "function-url-quotes": "always", + "function-whitespace-after": "always", + "indentation": 2, + "keyframe-declaration-no-important": true, + "length-zero-no-unit": true, + "max-empty-lines": 1, + "max-line-length": 120, + "max-nesting-depth": null, + "media-feature-colon-space-after": "always", + "media-feature-colon-space-before": "never", + "media-feature-name-case": "lower", + "media-feature-name-no-unknown": true, + "media-feature-name-no-vendor-prefix": true, + "media-feature-parentheses-space-inside": "never", + "media-feature-range-operator-space-after": "always", + "media-feature-range-operator-space-before": "always", + "media-query-list-comma-newline-after": "always-multi-line", + "media-query-list-comma-newline-before": "never-multi-line", + "media-query-list-comma-space-after": "always-single-line", + "media-query-list-comma-space-before": "never", + "no-descending-specificity": null, + "no-duplicate-selectors": true, + "no-empty-source": [ + true, + { + "severity": "warning" + } + ], + "no-eol-whitespace": true, + "no-extra-semicolons": true, + "no-invalid-double-slash-comments": true, + "no-missing-end-of-source-newline": null, + "no-unknown-animations": true, + "number-leading-zero": "always", + "number-max-precision": 5, + "number-no-trailing-zeros": true, + "property-case": "lower", + "property-no-unknown": [ + true, + { + "checkPrefixed": true + } + ], + "property-no-vendor-prefix": null, + "rule-empty-line-before": [ + "always-multi-line", + { + "except": [ + "first-nested" + ], + "ignore": [ + "after-comment" + ] + } + ], + "selector-attribute-brackets-space-inside": "never", + "selector-attribute-operator-space-after": "never", + "selector-attribute-operator-space-before": "never", + "selector-attribute-quotes": "always", + "selector-class-pattern": null, + "selector-combinator-space-after": "always", + "selector-combinator-space-before": "always", + "selector-descendant-combinator-no-non-space": true, + "selector-id-pattern": null, + "selector-list-comma-newline-after": "always", + "selector-list-comma-newline-before": "never-multi-line", + "selector-list-comma-space-after": "always-single-line", + "selector-list-comma-space-before": "never", + "selector-max-attribute": null, + "selector-max-class": null, + "selector-max-combinators": null, + "selector-max-compound-selectors": null, + "selector-max-empty-lines": 0, + "selector-max-id": 1, + "selector-max-specificity": null, + "selector-max-type": null, + "selector-max-universal": null, + "selector-nested-pattern": null, + "selector-no-qualifying-type": null, + "selector-no-vendor-prefix": true, + "selector-pseudo-class-case": "lower", + "selector-pseudo-class-no-unknown": true, + "selector-pseudo-class-parentheses-space-inside": "never", + "selector-pseudo-element-case": "lower", + "selector-pseudo-element-colon-notation": "double", + "selector-pseudo-element-no-unknown": true, + "selector-type-case": "lower", + "selector-type-no-unknown": true, + "shorthand-property-no-redundant-values": true, + "string-no-newline": true, + "string-quotes": "double", + "time-min-milliseconds": 10, + "unit-case": "lower", + "unit-no-unknown": true, + "value-keyword-case": "lower", + "value-list-comma-newline-after": "always-multi-line", + "value-list-comma-newline-before": "never-multi-line", + "value-list-comma-space-after": "always-single-line", + "value-list-comma-space-before": "never", + "value-list-max-empty-lines": 0, + "value-no-vendor-prefix": true, + "scss/at-else-closing-brace-newline-after": "always-last-in-chain", + "scss/at-else-closing-brace-space-after": "always-intermediate", + "scss/at-else-empty-line-before": "never", + "scss/at-else-if-parentheses-space-before": "always", + "scss/at-extend-no-missing-placeholder": null, + "scss/at-function-parentheses-space-before": "never", + "scss/at-function-pattern": null, + "scss/at-if-closing-brace-newline-after": "always-last-in-chain", + "scss/at-if-closing-brace-space-after": "always-intermediate", + "scss/at-import-no-partial-leading-underscore": true, + "scss/at-import-partial-extension-blacklist": null, + "scss/at-mixin-argumentless-call-parentheses": "never", + "scss/at-mixin-parentheses-space-before": "never", + "scss/at-mixin-pattern": null, + "scss/at-rule-no-unknown": true, + "scss/declaration-nested-properties": "never", + "scss/declaration-nested-properties-no-divided-groups": null, + "scss/dollar-variable-colon-newline-after": "always-multi-line", + "scss/dollar-variable-colon-space-after": "always-single-line", + "scss/dollar-variable-colon-space-before": "never", + "scss/dollar-variable-empty-line-before": [ + "always", + { + "except": [ + "after-dollar-variable", + "first-nested" + ], + "ignore": [ + "after-comment", + "inside-single-line-block" + ] + } + ], + "scss/dollar-variable-no-missing-interpolation": null, + "scss/dollar-variable-pattern": null, + "scss/double-slash-comment-empty-line-before": [ + "always", + { + "except": [ + "first-nested" + ], + "ignore": [ + "between-comments", + "stylelint-commands" + ] + } + ], + "scss/double-slash-comment-inline": null, + "scss/double-slash-comment-whitespace-inside": "always", + "scss/media-feature-value-dollar-variable": null, + "scss/operator-no-newline-after": null, + "scss/operator-no-newline-before": null, + "scss/operator-no-unspaced": true, + "scss/partial-no-import": null, + "scss/percent-placeholder-pattern": null, + "scss/selector-no-redundant-nesting-selector": true + }, + "overrides": [{ + "files": ["src/scss/*/**.scss"], + "customSyntax": "postcss-scss" + }] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0684a6c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Syler.sass-indented","stylelint.vscode-stylelint","jerryhong.autofilename","EditorConfig.EditorConfig", "htmlhint.vscode-htmlhint", "ritwickdey.LiveServer", "dbaeumer.vscode-eslint", "rebornix.project-snippets"] +} diff --git a/.vscode/snippets/html.json b/.vscode/snippets/html.json new file mode 100644 index 0000000..c495dab --- /dev/null +++ b/.vscode/snippets/html.json @@ -0,0 +1,151 @@ +{ + "svguse": { + "scope": "html", + "prefix": "g-use", + "body": [ + "", + " ", + "" + ], + "description": "Snippet for use svg sprites" + }, + "burger": { + "scope": "html", + "prefix": "g-burger", + "body": [ + "" + ], + "description": "Snippet for burger btn" + }, + "checkbox": { + "scope": "html", + "prefix": "g-checkbox", + "body": [ + "" + ], + "description": "Snippet for custom checkbox" + }, + "navigation": { + "scope": "html", + "prefix": "g-nav", + "body": [ + "" + ], + "description": "Snippet for navigation" + }, + "social": { + "scope": "html", + "prefix": "g-social", + "body": [ + "" + ], + "description": "Snippet for social links" + }, + "basicform": { + "prefix": "g-form", + "body": [ + "
", + " ", + " ", + "
" + ], + "description": "Snippet for basic form" + }, + "basicswiper": { + "prefix": "g-swiper", + "body": [ + "
", + "
", + "
", + "
", + "
", + "
" + ], + "description": "Snippet for basic swiper structure" + }, + "graph modal Btn": { + "prefix": "g-graph-btn", + "body": [ + "" + ], + "description": "Snippet for graph-modal btn" + }, + "graph modal Structure": { + "prefix": "g-graph-modal", + "body": [ + "
", + "
", + " ", + "
$2
", + "
", + "
" + ], + "description": "Snippet for graph-modal basic structure" + }, + "picture": { + "prefix": "g-picture", + "body": [ + "", + " ", + " \"$3\"", + "" + ], + "description": "Snippet for basic logo structure" + }, + "svgimg": { + "scope": "html", + "prefix": "g-svgimg", + "body": [ + "\"$3\"" + ], + "description": "Snippet for simple html svg images" + }, + "tooltip": { + "prefix": "g-tooltip", + "body": [ + "", + " ", + " ", + " Тултип: ", + " $3", + " ", + "" + ], + "description": "Snippet for tooltip" + }, + "tabs html sctructure": { + "prefix": "g-tabs", + "body": [ + "
", + " ", + "
", + "
$5
", + "
$6
", + "
$7
", + "
", + "
" + ], + "description": "Snippet for basic tabs structure" + } +} diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..092639b --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,327 @@ +const { + src, + dest, + series, + watch +} = require('gulp'); +const autoprefixer = require('gulp-autoprefixer'); +const cleanCSS = require('gulp-clean-css'); +const del = require('del'); +const browserSync = require('browser-sync').create(); +const sass = require('sass'); +const gulpSass = require('gulp-sass'); +const svgSprite = require('gulp-svg-sprite'); +const svgmin = require('gulp-svgmin'); +const cheerio = require('gulp-cheerio'); +const replace = require('gulp-replace'); +const fileInclude = require('gulp-file-include'); +const rev = require('gulp-rev'); +const revRewrite = require('gulp-rev-rewrite'); +const revDel = require('gulp-rev-delete-original'); +const htmlmin = require('gulp-htmlmin'); +const gulpif = require('gulp-if'); +const notify = require('gulp-notify'); +const image = require('gulp-imagemin'); +const { + readFileSync +} = require('fs'); +const typograf = require('gulp-typograf'); +const webp = require('gulp-webp'); +const mainSass = gulpSass(sass); +const webpackStream = require('webpack-stream'); +const plumber = require('gulp-plumber'); +const path = require('path'); +const zip = require('gulp-zip'); +const rootFolder = path.basename(path.resolve()); + +// paths +const srcFolder = './src'; +const buildFolder = './app'; +const paths = { + srcSvg: `${srcFolder}/img/svg/**.svg`, + srcImgFolder: `${srcFolder}/img`, + buildImgFolder: `${buildFolder}/img`, + srcScss: `${srcFolder}/scss/**/*.scss`, + buildCssFolder: `${buildFolder}/css`, + srcFullJs: `${srcFolder}/js/**/*.js`, + srcMainJs: `${srcFolder}/js/main.js`, + buildJsFolder: `${buildFolder}/js`, + srcPartialsFolder: `${srcFolder}/partials`, + resourcesFolder: `${srcFolder}/resources`, +}; + +let isProd = false; // dev by default + +const clean = () => { + return del([buildFolder]) +} + +//svg sprite +const svgSprites = () => { + return src(paths.srcSvg) + .pipe( + svgmin({ + js2svg: { + pretty: true, + }, + }) + ) + .pipe( + cheerio({ + run: function ($) { + $('[fill]').removeAttr('fill'); + $('[stroke]').removeAttr('stroke'); + $('[style]').removeAttr('style'); + }, + parserOptions: { + xmlMode: true + }, + }) + ) + .pipe(replace('>', '>')) + .pipe(svgSprite({ + mode: { + stack: { + sprite: "../sprite.svg" + } + }, + })) + .pipe(dest(paths.buildImgFolder)); +} + +// scss styles +const styles = () => { + return src(paths.srcScss, { sourcemaps: !isProd }) + .pipe(plumber( + notify.onError({ + title: "SCSS", + message: "Error: <%= error.message %>" + }) + )) + .pipe(mainSass()) + .pipe(autoprefixer({ + cascade: false, + grid: true, + overrideBrowserslist: ["last 5 versions"] + })) + .pipe(gulpif(isProd, cleanCSS({ + level: 2 + }))) + .pipe(dest(paths.buildCssFolder, { sourcemaps: '.' })) + .pipe(browserSync.stream()); +}; + +// styles backend +const stylesBackend = () => { + return src(paths.srcScss) + .pipe(plumber( + notify.onError({ + title: "SCSS", + message: "Error: <%= error.message %>" + }) + )) + .pipe(mainSass()) + .pipe(autoprefixer({ + cascade: false, + grid: true, + overrideBrowserslist: ["last 5 versions"] + })) + .pipe(dest(paths.buildCssFolder)) + .pipe(browserSync.stream()); +}; + +// scripts +const scripts = () => { + return src(paths.srcMainJs) + .pipe(plumber( + notify.onError({ + title: "JS", + message: "Error: <%= error.message %>" + }) + )) + .pipe(webpackStream({ + mode: isProd ? 'production' : 'development', + output: { + filename: 'main.js', + }, + module: { + rules: [{ + test: /\.m?js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: [ + ['@babel/preset-env', { + targets: "defaults" + }] + ] + } + } + }] + }, + devtool: !isProd ? 'source-map' : false + })) + .on('error', function (err) { + console.error('WEBPACK ERROR', err); + this.emit('end'); + }) + .pipe(dest(paths.buildJsFolder)) + .pipe(browserSync.stream()); +} + +// scripts backend +const scriptsBackend = () => { + return src(paths.srcMainJs) + .pipe(plumber( + notify.onError({ + title: "JS", + message: "Error: <%= error.message %>" + }) + )) + .pipe(webpackStream({ + mode: 'development', + output: { + filename: 'main.js', + }, + module: { + rules: [{ + test: /\.m?js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: [ + ['@babel/preset-env', { + targets: "defaults" + }] + ] + } + } + }] + }, + devtool: false + })) + .on('error', function (err) { + console.error('WEBPACK ERROR', err); + this.emit('end'); + }) + .pipe(dest(paths.buildJsFolder)) + .pipe(browserSync.stream()); +} + +const resources = () => { + return src(`${paths.resourcesFolder}/**`) + .pipe(dest(buildFolder)) +} + +const images = () => { + return src([`${paths.srcImgFolder}/**/**.{jpg,jpeg,png,svg}`]) + .pipe(gulpif(isProd, image([ + image.mozjpeg({ + quality: 80, + progressive: true + }), + image.optipng({ + optimizationLevel: 2 + }), + ]))) + .pipe(dest(paths.buildImgFolder)) +}; + +const webpImages = () => { + return src([`${paths.srcImgFolder}/**/**.{jpg,jpeg,png}`]) + .pipe(webp()) + .pipe(dest(paths.buildImgFolder)) +}; + +const htmlInclude = () => { + return src([`${srcFolder}/*.html`]) + .pipe(fileInclude({ + prefix: '@', + basepath: '@file' + })) + .pipe(typograf({ + locale: ['ru', 'en-US'] + })) + .pipe(dest(buildFolder)) + .pipe(browserSync.stream()); +} + +const watchFiles = () => { + browserSync.init({ + server: { + baseDir: `${buildFolder}` + }, + }); + + watch(paths.srcScss, styles); + watch(paths.srcFullJs, scripts); + watch(`${paths.srcPartialsFolder}/*.html`, htmlInclude); + watch(`${srcFolder}/*.html`, htmlInclude); + watch(`${paths.resourcesFolder}/**`, resources); + watch(`${paths.srcImgFolder}/**/**.{jpg,jpeg,png,svg}`, images); + watch(`${paths.srcImgFolder}/**/**.{jpg,jpeg,png}`, webpImages); + watch(paths.srcSvg, svgSprites); +} + +const cache = () => { + return src(`${buildFolder}/**/*.{css,js,svg,png,jpg,jpeg,webp,woff2}`, { + base: buildFolder + }) + .pipe(rev()) + .pipe(revDel()) + .pipe(dest(buildFolder)) + .pipe(rev.manifest('rev.json')) + .pipe(dest(buildFolder)); +}; + +const rewrite = () => { + const manifest = readFileSync('app/rev.json'); + src(`${paths.buildCssFolder}/*.css`) + .pipe(revRewrite({ + manifest + })) + .pipe(dest(paths.buildCssFolder)); + return src(`${buildFolder}/**/*.html`) + .pipe(revRewrite({ + manifest + })) + .pipe(dest(buildFolder)); +} + +const htmlMinify = () => { + return src(`${buildFolder}/**/*.html`) + .pipe(htmlmin({ + collapseWhitespace: true + })) + .pipe(dest(buildFolder)); +} + +const zipFiles = (done) => { + del.sync([`${buildFolder}/*.zip`]); + return src(`${buildFolder}/**/*.*`, {}) + .pipe(plumber( + notify.onError({ + title: "ZIP", + message: "Error: <%= error.message %>" + }) + )) + .pipe(zip(`${rootFolder}.zip`)) + .pipe(dest(buildFolder)); +} + +const toProd = (done) => { + isProd = true; + done(); +}; + +exports.default = series(clean, htmlInclude, scripts, styles, resources, images, webpImages, svgSprites, watchFiles); + +exports.backend = series(clean, htmlInclude, scriptsBackend, stylesBackend, resources, images, webpImages, svgSprites) + +exports.build = series(toProd, clean, htmlInclude, scripts, styles, resources, images, webpImages, svgSprites, htmlMinify); + +exports.cache = series(cache, rewrite); + +exports.zip = zipFiles; diff --git a/package.json b/package.json new file mode 100644 index 0000000..fb679d0 --- /dev/null +++ b/package.json @@ -0,0 +1,72 @@ +{ + "name": "gulp-builder", + "version": "2.1.0", + "description": "gulp-builder for weblayout", + "main": "gulpfile.js", + "scripts": { + "html": "node-w3c-validator -f lint -evH -i app/**/*.html", + "dev": "gulp", + "build": "gulp build", + "cache": "gulp cache", + "backend": "gulp backend", + "zip": "gulp zip", + "code": "editorconfig-checker" + }, + "author": "MaxGraph", + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", + "babel-loader": "^9.1.0", + "browser-sync": "^2.27.10", + "del": "^6.0.0", + "editorconfig-checker": "^4.0.2", + "gulp": "^4.0.2", + "gulp-autoprefixer": "^8.0.0", + "gulp-cheerio": "^1.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-cli": "^2.3.0", + "gulp-file-include": "^2.3.0", + "gulp-htmlmin": "^5.0.1", + "gulp-if": "^3.0.0", + "gulp-imagemin": "^7.1.0", + "gulp-notify": "^4.0.0", + "gulp-plumber": "^1.2.1", + "gulp-replace": "^1.1.3", + "gulp-rev": "^9.0.0", + "gulp-rev-delete-original": "^0.2.3", + "gulp-rev-rewrite": "^5.0.0", + "gulp-sass": "^5.1.0", + "gulp-svg-sprite": "^2.0.1", + "gulp-svgmin": "^4.1.0", + "gulp-typograf": "^4.0.3", + "gulp-webp": "^4.0.1", + "gulp-zip": "^5.1.0", + "node-w3c-validator": "^2.0.2", + "postcss": "^8.4.19", + "postcss-scss": "^4.0.5", + "sass": "^1.56.1", + "stylelint": "^14.15.0", + "stylelint-config-standard-scss": "^6.1.0", + "stylelint-order": "^5.0.0", + "typograf": "^6.15.1", + "webpack": "^5.75.0", + "webpack-stream": "^7.0.0" + }, + "dependencies": { + "@popperjs/core": "^2.11.6", + "aos": "^2.3.4", + "graph-modal": "^1.0.6", + "graph-tabs": "^1.0.2", + "inputmask": "^5.0.7", + "jquery": "^3.6.1", + "just-validate": "^3.8.1", + "mmenu-js": "^9.2.0", + "rellax": "^1.12.1", + "simplebar": "^5.3.9", + "smooth-scroll": "^16.1.3", + "superfish": "^1.7.10", + "swiped-events": "^1.1.6", + "swiper": "^8.4.4" + } +} diff --git a/src/img/logo.svg b/src/img/logo.svg new file mode 100644 index 0000000..090e23e --- /dev/null +++ b/src/img/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/img/search.svg b/src/img/search.svg new file mode 100644 index 0000000..e465581 --- /dev/null +++ b/src/img/search.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/img/svg/angle-down.svg b/src/img/svg/angle-down.svg new file mode 100644 index 0000000..95cd278 --- /dev/null +++ b/src/img/svg/angle-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/img/svg/icon.svg b/src/img/svg/icon.svg new file mode 100644 index 0000000..e2b7c28 --- /dev/null +++ b/src/img/svg/icon.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..09a4c2f --- /dev/null +++ b/src/index.html @@ -0,0 +1,17 @@ + + + +@include('partials/head.html') + + +
+ @include('partials/header.html') +
+ +
+ @include('partials/footer.html') + +
+ + + diff --git a/src/js/_components.js b/src/js/_components.js new file mode 100644 index 0000000..b9ffbe4 --- /dev/null +++ b/src/js/_components.js @@ -0,0 +1,9 @@ +import langDropDown from './components/langdropdown'; +import superMenu from './components/superMenu'; + +window.addEventListener('DOMContentLoaded', () => { + // 'use strict'; + + langDropDown(); + superMenu(); +}); diff --git a/src/js/_functions.js b/src/js/_functions.js new file mode 100644 index 0000000..4fe392c --- /dev/null +++ b/src/js/_functions.js @@ -0,0 +1,86 @@ +// Данный файл - лишь собрание подключений готовых компонентов. +// Рекомендуется создавать отдельный файл в папке components и подключать все там + +// Определение операционной системы на мобильных +// import { mobileCheck } from "./functions/mobile-check"; +// console.log(mobileCheck()) + +// Определение ширины экрана +// import { isMobile, isTablet, isDesktop } from './functions/check-viewport'; +// if (isDesktop()) { +// console.log('...') +// } + +// Троттлинг функции (для ресайза, ввода в инпут, скролла и т.д.) +// import { throttle } from './functions/throttle'; +// let yourFunc = () => { console.log('throttle') }; +// let func = throttle(yourFunc); +// window.addEventListener('resize', func); + +// Фикс фулскрин-блоков +// import './functions/fix-fullheight'; + +// Реализация бургер-меню +// import { burger } from './functions/burger'; + +// Реализация остановки скролла (не забудьте вызвать функцию) +// import { disableScroll } from './functions/disable-scroll'; + +// Реализация включения скролла (не забудьте вызвать функцию) +// import { enableScroll } from './functions/enable-scroll'; + +// Реализация модального окна +// import GraphModal from 'graph-modal'; +// const modal = new GraphModal(); + +// Реализация табов +// import GraphTabs from 'graph-tabs'; +// const tabs = new GraphTabs('tab'); + +// Получение высоты шапки сайта (не забудьте вызвать функцию) +// import { getHeaderHeight } from './functions/header-height'; + +// Подключение плагина кастом-скролла +// import 'simplebar'; + +// Подключение плагина для позиционирования тултипов +// import { createPopper, right} from '@popperjs/core'; +// createPopper(el, tooltip, { +// placement: 'right' +// }); + +// Подключение свайпера +// import Swiper, { Navigation, Pagination } from 'swiper'; +// Swiper.use([Navigation, Pagination]); +// const swiper = new Swiper(el, { +// slidesPerView: 'auto', +// }); + +// Подключение анимаций по скроллу +// import AOS from 'aos'; +// AOS.init(); + +// Подключение параллакса блоков при скролле +// import Rellax from 'rellax'; +// const rellax = new Rellax('.rellax'); + +// Подключение плавной прокрутки к якорям +// import SmoothScroll from 'smooth-scroll'; +// const scroll = new SmoothScroll('a[href*="#"]'); + +// Подключение событий свайпа на мобильных +// import 'swiped-events'; +// document.addEventListener('swiped', function(e) { +// console.log(e.target); +// console.log(e.detail); +// console.log(e.detail.dir); +// }); + +// import { validateForms } from './functions/validate-forms'; +// const rules1 = [...]; + +// const afterForm = () => { +// console.log('Произошла отправка, тут можно писать любые действия'); +// }; + +// validateForms('.form-1', rules1, afterForm); diff --git a/src/js/_vars.js b/src/js/_vars.js new file mode 100644 index 0000000..33a04cb --- /dev/null +++ b/src/js/_vars.js @@ -0,0 +1,6 @@ +export default { + windowEl: window, + documentEl: document, + htmlEl: document.documentElement, + bodyEl: document.body, +} diff --git a/src/js/_vendor.js b/src/js/_vendor.js new file mode 100644 index 0000000..1293970 --- /dev/null +++ b/src/js/_vendor.js @@ -0,0 +1,2 @@ +// import './vendor/focus-visible.js'; +// import './vendor/jquery.hoverIntent.min.js'; diff --git a/src/js/components/langdropdown.js b/src/js/components/langdropdown.js new file mode 100644 index 0000000..8137804 --- /dev/null +++ b/src/js/components/langdropdown.js @@ -0,0 +1,27 @@ +import $ from 'jquery'; + +const langDropDown = () => { + const selected = $('.selected'); + const dropdown = $('.dropdown-list'); + const optionList = $('.dropdown-list li'); + + selected.on('click', function () { + dropdown.toggleClass('active'); + selected.toggleClass('active'); + + if (dropdown.hasClass('active') && selected.hasClass('active')) { + optionList.on('click', function () { + if (optionList.hasClass('active')) { + $(this).siblings().removeClass('active'); + } else { + $(this).addClass('active'); + } + dropdown.removeClass('active'); + selected.removeClass('active'); + selected.children('span').html($(this).html()); + }); + } + }); +}; + +export default langDropDown; diff --git a/src/js/components/supermenu.js b/src/js/components/supermenu.js new file mode 100644 index 0000000..d305b2e --- /dev/null +++ b/src/js/components/supermenu.js @@ -0,0 +1,35 @@ +import $ from 'jquery'; +window.jQuery = $; +window.$ = $; +import '../vendor/jquery.hoverIntent.min.js'; + + +/* + * jQuery Superfish Menu Plugin - v1.7.10 + * Copyright (c) 2018 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + + !function(a,b){"use strict";var c=function(){var c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},d=function(){var b=/^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent);return b&&a("html").css("cursor","pointer").on("click",a.noop),b}(),e=function(){var a=document.documentElement.style;return"behavior"in a&&"fill"in a&&/iemobile/i.test(navigator.userAgent)}(),f=function(){return!!b.PointerEvent}(),g=function(a,b,d){var e,f=c.menuClass;b.cssArrows&&(f+=" "+c.menuArrowClass),e=d?"addClass":"removeClass",a[e](f)},h=function(b,d){return b.find("li."+d.pathClass).slice(0,d.pathLevels).addClass(d.hoverClass+" "+c.bcClass).filter(function(){return a(this).children(d.popUpSelector).hide().show().length}).removeClass(d.pathClass)},i=function(a,b){var d=b?"addClass":"removeClass";a.children("a")[d](c.anchorClass)},j=function(a){var b=a.css("ms-touch-action"),c=a.css("touch-action");c=c||b,c="pan-y"===c?"auto":"pan-y",a.css({"ms-touch-action":c,"touch-action":c})},k=function(a){return a.closest("."+c.menuClass)},l=function(a){return k(a).data("sfOptions")},m=function(){var b=a(this),c=l(b);clearTimeout(c.sfTimer),b.siblings().superfish("hide").end().superfish("show")},n=function(b){b.retainPath=a.inArray(this[0],b.$path)>-1,this.superfish("hide"),this.parents("."+b.hoverClass).length||(b.onIdle.call(k(this)),b.$path.length&&a.proxy(m,b.$path)())},o=function(){var b=a(this),c=l(b);d?a.proxy(n,b,c)():(clearTimeout(c.sfTimer),c.sfTimer=setTimeout(a.proxy(n,b,c),c.delay))},p=function(b){var c=a(this),d=l(c),e=c.siblings(b.data.popUpSelector);return d.onHandleTouch.call(e)===!1?this:void(e.length>0&&e.is(":hidden")&&(c.one("click.superfish",!1),"MSPointerDown"===b.type||"pointerdown"===b.type?c.trigger("focus"):a.proxy(m,c.parent("li"))()))},q=function(b,c){var g="li:has("+c.popUpSelector+")";a.fn.hoverIntent&&!c.disableHI?b.hoverIntent(m,o,g):b.on("mouseenter.superfish",g,m).on("mouseleave.superfish",g,o);var h="MSPointerDown.superfish";f&&(h="pointerdown.superfish"),d||(h+=" touchend.superfish"),e&&(h+=" mousedown.superfish"),b.on("focusin.superfish","li",m).on("focusout.superfish","li",o).on(h,"a",c,p)};return{hide:function(b){if(this.length){var c=this,d=l(c);if(!d)return this;var e=d.retainPath===!0?d.$path:"",f=c.find("li."+d.hoverClass).add(this).not(e).removeClass(d.hoverClass).children(d.popUpSelector),g=d.speedOut;if(b&&(f.show(),g=0),d.retainPath=!1,d.onBeforeHide.call(f)===!1)return this;f.stop(!0,!0).animate(d.animationOut,g,function(){var b=a(this);d.onHide.call(b)})}return this},show:function(){var a=l(this);if(!a)return this;var b=this.addClass(a.hoverClass),c=b.children(a.popUpSelector);return a.onBeforeShow.call(c)===!1?this:(c.stop(!0,!0).animate(a.animation,a.speed,function(){a.onShow.call(c)}),this)},destroy:function(){return this.each(function(){var b,d=a(this),e=d.data("sfOptions");return!!e&&(b=d.find(e.popUpSelector).parent("li"),clearTimeout(e.sfTimer),g(d,e),i(b),j(d),d.off(".superfish").off(".hoverIntent"),b.children(e.popUpSelector).attr("style",function(a,b){if("undefined"!=typeof b)return b.replace(/display[^;]+;?/g,"")}),e.$path.removeClass(e.hoverClass+" "+c.bcClass).addClass(e.pathClass),d.find("."+e.hoverClass).removeClass(e.hoverClass),e.onDestroy.call(d),void d.removeData("sfOptions"))})},init:function(b){return this.each(function(){var d=a(this);if(d.data("sfOptions"))return!1;var e=a.extend({},a.fn.superfish.defaults,b),f=d.find(e.popUpSelector).parent("li");e.$path=h(d,e),d.data("sfOptions",e),g(d,e,!0),i(f,!0),j(d),q(d,e),f.not("."+c.bcClass).superfish("hide",!0),e.onInit.call(this)})}}}();a.fn.superfish=function(b,d){return c[b]?c[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?a.error("Method "+b+" does not exist on jQuery.fn.superfish"):c.init.apply(this,arguments)},a.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:a.noop,onBeforeShow:a.noop,onShow:a.noop,onBeforeHide:a.noop,onHide:a.noop,onIdle:a.noop,onDestroy:a.noop,onHandleTouch:a.noop}}(jQuery,window); + + + +const superMenu = () => { + + $(".main-nav .sf-menu").superfish({ + cssArrows: false, + hoverClass: 'sfHover', + popUpSelector: 'ul.sub-menu', + animation: {opacity:'show', height:'show'}, + speed: 'fast', + delay: 300, + }); + + $('.sf-with-ul').append(''); + +}; + +export default superMenu; diff --git a/src/js/functions/burger.js b/src/js/functions/burger.js new file mode 100644 index 0000000..1a5fdaa --- /dev/null +++ b/src/js/functions/burger.js @@ -0,0 +1,42 @@ +import { disableScroll } from '../functions/disable-scroll'; +import { enableScroll } from '../functions/enable-scroll'; + +(function(){ + const burger = document?.querySelector('[data-burger]'); + const menu = document?.querySelector('[data-menu]'); + const menuItems = document?.querySelectorAll('[data-menu-item]'); + const overlay = document?.querySelector('[data-menu-overlay]'); + + burger?.addEventListener('click', (e) => { + burger?.classList.toggle('burger--active'); + menu?.classList.toggle('menu--active'); + + if (menu?.classList.contains('menu--active')) { + burger?.setAttribute('aria-expanded', 'true'); + burger?.setAttribute('aria-label', 'Закрыть меню'); + disableScroll(); + } else { + burger?.setAttribute('aria-expanded', 'false'); + burger?.setAttribute('aria-label', 'Открыть меню'); + enableScroll(); + } + }); + + overlay?.addEventListener('click', () => { + burger?.setAttribute('aria-expanded', 'false'); + burger?.setAttribute('aria-label', 'Открыть меню'); + burger.classList.remove('burger--active'); + menu.classList.remove('menu--active'); + enableScroll(); + }); + + menuItems?.forEach(el => { + el.addEventListener('click', () => { + burger?.setAttribute('aria-expanded', 'false'); + burger?.setAttribute('aria-label', 'Открыть меню'); + burger.classList.remove('burger--active'); + menu.classList.remove('menu--active'); + enableScroll(); + }); + }); +})(); diff --git a/src/js/functions/check-viewport.js b/src/js/functions/check-viewport.js new file mode 100644 index 0000000..72f3320 --- /dev/null +++ b/src/js/functions/check-viewport.js @@ -0,0 +1,23 @@ +export const isMobile = () => { + if (window.innerWidth < 768) { + return true; + } + + return false; +}; + +export const isTablet = () => { + if (window.innerWidth >= 769 && window.innerWidth <= 1024) { + return true; + } + + return false; +}; + +export const isDesktop = () => { + if (window.innerWidth > 1025) { + return true; + } + + return false; +}; diff --git a/src/js/functions/disable-scroll.js b/src/js/functions/disable-scroll.js new file mode 100644 index 0000000..c6c92d4 --- /dev/null +++ b/src/js/functions/disable-scroll.js @@ -0,0 +1,14 @@ +import vars from '../_vars'; + +export const disableScroll = () => { + const fixBlocks = document?.querySelectorAll('.fixed-block'); + const pagePosition = window.scrollY; + const paddingOffset = `${(window.innerWidth - vars.bodyEl.offsetWidth)}px`; + + vars.htmlEl.style.scrollBehavior = 'none'; + fixBlocks.forEach(el => { el.style.paddingRight = paddingOffset; }); + vars.bodyEl.style.paddingRight = paddingOffset; + vars.bodyEl.classList.add('dis-scroll'); + vars.bodyEl.dataset.position = pagePosition; + vars.bodyEl.style.top = `-${pagePosition}px`; +} diff --git a/src/js/functions/enable-scroll.js b/src/js/functions/enable-scroll.js new file mode 100644 index 0000000..7cf452a --- /dev/null +++ b/src/js/functions/enable-scroll.js @@ -0,0 +1,18 @@ +import vars from '../_vars'; + +export const enableScroll = () => { + const fixBlocks = document?.querySelectorAll('.fixed-block'); + const body = document.body; + const pagePosition = parseInt(vars.bodyEl.dataset.position, 10); + fixBlocks.forEach(el => { el.style.paddingRight = '0px'; }); + vars.bodyEl.style.paddingRight = '0px'; + + vars.bodyEl.style.top = 'auto'; + vars.bodyEl.classList.remove('dis-scroll'); + window.scroll({ + top: pagePosition, + left: 0 + }); + vars.bodyEl.removeAttribute('data-position'); + vars.htmlEl.style.scrollBehavior = 'smooth'; +} diff --git a/src/js/functions/fix-fullheight.js b/src/js/functions/fix-fullheight.js new file mode 100644 index 0000000..cfdee08 --- /dev/null +++ b/src/js/functions/fix-fullheight.js @@ -0,0 +1,11 @@ +import { throttle } from './throttle'; +const fixFullheight = () => { + let vh = window.innerHeight; + document.documentElement.style.setProperty('--vh', `${vh}px`); +}; + +let fixHeight = throttle(fixFullheight); + +fixHeight(); + +window.addEventListener('resize', fixHeight); diff --git a/src/js/functions/header-height.js b/src/js/functions/header-height.js new file mode 100644 index 0000000..547d429 --- /dev/null +++ b/src/js/functions/header-height.js @@ -0,0 +1,4 @@ +export const getHeaderHeight = () => { + const headerHeight = document?.querySelector('.header').offsetHeight; + document.querySelector(':root').style.setProperty('--header-height', `${headerHeight}px`); +} diff --git a/src/js/functions/mobile-check.js b/src/js/functions/mobile-check.js new file mode 100644 index 0000000..f55ad32 --- /dev/null +++ b/src/js/functions/mobile-check.js @@ -0,0 +1,17 @@ +import vars from '../_vars'; + +export const mobileCheck = () => { + const userAgent = navigator.userAgent || navigator.vendor || window.opera; + + if (/android/i.test(userAgent)) { + vars.htmlEl.classList.add('page--android'); + return "Android"; + } + + if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { + vars.htmlEl.classList.add('page--ios'); + return "iOS"; + } + + return "unknown"; +}; diff --git a/src/js/functions/throttle.js b/src/js/functions/throttle.js new file mode 100644 index 0000000..cdcc6eb --- /dev/null +++ b/src/js/functions/throttle.js @@ -0,0 +1,27 @@ +export const throttle = (func, delay = 250) => { + let isThrottled = false; + let savedArgs = null; + let savedThis = null; + + return function wrap(...args) { + if (isThrottled) { + savedArgs = args, + savedThis = this; + return; + } + + func.apply(this, args); + isThrottled = true; + + setTimeout(() => { + isThrottled = false; + + if (savedThis) { + wrap.apply(savedThis, savedArgs); + savedThis = null; + savedArgs = null; + } + + }, delay); + } +}; diff --git a/src/js/functions/validate-forms.js b/src/js/functions/validate-forms.js new file mode 100644 index 0000000..30dc1c2 --- /dev/null +++ b/src/js/functions/validate-forms.js @@ -0,0 +1,65 @@ +import JustValidate from 'just-validate'; +import Inputmask from "inputmask"; + +export const validateForms = (selector, rules, afterSend) => { + const form = document?.querySelector(selector); + const telSelector = form?.querySelector('input[type="tel"]'); + + if (!form) { + console.error('Нет такого селектора!'); + return false; + } + + if (!rules) { + console.error('Вы не передали правила валидации!'); + return false; + } + + if (telSelector) { + const inputMask = new Inputmask('+7 (999) 999-99-99'); + inputMask.mask(telSelector); + + for (let item of rules) { + if (item.tel) { + item.rules.push({ + rule: 'function', + validator: function() { + const phone = telSelector.inputmask.unmaskedvalue(); + return phone.length === 10; + }, + errorMessage: item.telError + }); + } + } + } + + const validation = new JustValidate(selector); + + for (let item of rules) { + validation + .addField(item.ruleSelector, item.rules); + } + + validation.onSuccess((ev) => { + let formData = new FormData(ev.target); + + let xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + if (afterSend) { + afterSend(); + } + console.log('Отправлено'); + } + } + } + + xhr.open('POST', 'mail.php', true); + xhr.send(formData); + + ev.target.reset(); + }) + +}; diff --git a/src/js/main.js b/src/js/main.js new file mode 100644 index 0000000..3453627 --- /dev/null +++ b/src/js/main.js @@ -0,0 +1,4 @@ +import './_vendor'; +import vars from './_vars'; +import './_functions'; +import './_components'; diff --git a/src/js/vendor/focus-visible.js b/src/js/vendor/focus-visible.js new file mode 100644 index 0000000..9053155 --- /dev/null +++ b/src/js/vendor/focus-visible.js @@ -0,0 +1,304 @@ +/** + * Applies the :focus-visible polyfill at the given scope. + * A scope in this case is either the top-level Document or a Shadow Root. + * + * @param {(Document|ShadowRoot)} scope + * @see https://github.com/WICG/focus-visible + */ +function applyFocusVisiblePolyfill(scope) { + var hadKeyboardEvent = true; + var hadFocusVisibleRecently = false; + var hadFocusVisibleRecentlyTimeout = null; + + var inputTypesAllowlist = { + text: true, + search: true, + url: true, + tel: true, + email: true, + password: true, + number: true, + date: true, + month: true, + week: true, + time: true, + datetime: true, + 'datetime-local': true + }; + + /** + * Helper function for legacy browsers and iframes which sometimes focus + * elements like document, body, and non-interactive SVG. + * @param {Element} el + */ + function isValidFocusTarget(el) { + if ( + el && + el !== document && + el.nodeName !== 'HTML' && + el.nodeName !== 'BODY' && + 'classList' in el && + 'contains' in el.classList + ) { + return true; + } + return false; + } + + /** + * Computes whether the given element should automatically trigger the + * `focus-visible` class being added, i.e. whether it should always match + * `:focus-visible` when focused. + * @param {Element} el + * @return {boolean} + */ + function focusTriggersKeyboardModality(el) { + var type = el.type; + var tagName = el.tagName; + + if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { + return true; + } + + if (tagName === 'TEXTAREA' && !el.readOnly) { + return true; + } + + if (el.isContentEditable) { + return true; + } + + return false; + } + + /** + * Add the `focus-visible` class to the given element if it was not added by + * the author. + * @param {Element} el + */ + function addFocusVisibleClass(el) { + if (el.classList.contains('focus-visible')) { + return; + } + el.classList.add('focus-visible'); + el.setAttribute('data-focus-visible-added', ''); + } + + /** + * Remove the `focus-visible` class from the given element if it was not + * originally added by the author. + * @param {Element} el + */ + function removeFocusVisibleClass(el) { + if (!el.hasAttribute('data-focus-visible-added')) { + return; + } + el.classList.remove('focus-visible'); + el.removeAttribute('data-focus-visible-added'); + } + + /** + * If the most recent user interaction was via the keyboard; + * and the key press did not include a meta, alt/option, or control key; + * then the modality is keyboard. Otherwise, the modality is not keyboard. + * Apply `focus-visible` to any current active element and keep track + * of our keyboard modality state with `hadKeyboardEvent`. + * @param {KeyboardEvent} e + */ + function onKeyDown(e) { + if (e.metaKey || e.altKey || e.ctrlKey) { + return; + } + + if (isValidFocusTarget(scope.activeElement)) { + addFocusVisibleClass(scope.activeElement); + } + + hadKeyboardEvent = true; + } + + /** + * If at any point a user clicks with a pointing device, ensure that we change + * the modality away from keyboard. + * This avoids the situation where a user presses a key on an already focused + * element, and then clicks on a different element, focusing it with a + * pointing device, while we still think we're in keyboard modality. + * @param {Event} e + */ + function onPointerDown(e) { + hadKeyboardEvent = false; + } + + /** + * On `focus`, add the `focus-visible` class to the target if: + * - the target received focus as a result of keyboard navigation, or + * - the event target is an element that will likely require interaction + * via the keyboard (e.g. a text box) + * @param {Event} e + */ + function onFocus(e) { + // Prevent IE from focusing the document or HTML element. + if (!isValidFocusTarget(e.target)) { + return; + } + + if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { + addFocusVisibleClass(e.target); + } + } + + /** + * On `blur`, remove the `focus-visible` class from the target. + * @param {Event} e + */ + function onBlur(e) { + if (!isValidFocusTarget(e.target)) { + return; + } + + if ( + e.target.classList.contains('focus-visible') || + e.target.hasAttribute('data-focus-visible-added') + ) { + // To detect a tab/window switch, we look for a blur event followed + // rapidly by a visibility change. + // If we don't see a visibility change within 100ms, it's probably a + // regular focus change. + hadFocusVisibleRecently = true; + window.clearTimeout(hadFocusVisibleRecentlyTimeout); + hadFocusVisibleRecentlyTimeout = window.setTimeout(function() { + hadFocusVisibleRecently = false; + }, 100); + removeFocusVisibleClass(e.target); + } + } + + /** + * If the user changes tabs, keep track of whether or not the previously + * focused element had .focus-visible. + * @param {Event} e + */ + function onVisibilityChange(e) { + if (document.visibilityState === 'hidden') { + // If the tab becomes active again, the browser will handle calling focus + // on the element (Safari actually calls it twice). + // If this tab change caused a blur on an element with focus-visible, + // re-apply the class when the user switches back to the tab. + if (hadFocusVisibleRecently) { + hadKeyboardEvent = true; + } + addInitialPointerMoveListeners(); + } + } + + /** + * Add a group of listeners to detect usage of any pointing devices. + * These listeners will be added when the polyfill first loads, and anytime + * the window is blurred, so that they are active when the window regains + * focus. + */ + function addInitialPointerMoveListeners() { + document.addEventListener('mousemove', onInitialPointerMove); + document.addEventListener('mousedown', onInitialPointerMove); + document.addEventListener('mouseup', onInitialPointerMove); + document.addEventListener('pointermove', onInitialPointerMove); + document.addEventListener('pointerdown', onInitialPointerMove); + document.addEventListener('pointerup', onInitialPointerMove); + document.addEventListener('touchmove', onInitialPointerMove); + document.addEventListener('touchstart', onInitialPointerMove); + document.addEventListener('touchend', onInitialPointerMove); + } + + function removeInitialPointerMoveListeners() { + document.removeEventListener('mousemove', onInitialPointerMove); + document.removeEventListener('mousedown', onInitialPointerMove); + document.removeEventListener('mouseup', onInitialPointerMove); + document.removeEventListener('pointermove', onInitialPointerMove); + document.removeEventListener('pointerdown', onInitialPointerMove); + document.removeEventListener('pointerup', onInitialPointerMove); + document.removeEventListener('touchmove', onInitialPointerMove); + document.removeEventListener('touchstart', onInitialPointerMove); + document.removeEventListener('touchend', onInitialPointerMove); + } + + /** + * When the polfyill first loads, assume the user is in keyboard modality. + * If any event is received from a pointing device (e.g. mouse, pointer, + * touch), turn off keyboard modality. + * This accounts for situations where focus enters the page from the URL bar. + * @param {Event} e + */ + function onInitialPointerMove(e) { + // Work around a Safari quirk that fires a mousemove on whenever the + // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ + if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { + return; + } + + hadKeyboardEvent = false; + removeInitialPointerMoveListeners(); + } + + // For some kinds of state, we are interested in changes at the global scope + // only. For example, global pointer input, global key presses and global + // visibility change should affect the state at every scope: + document.addEventListener('keydown', onKeyDown, true); + document.addEventListener('mousedown', onPointerDown, true); + document.addEventListener('pointerdown', onPointerDown, true); + document.addEventListener('touchstart', onPointerDown, true); + document.addEventListener('visibilitychange', onVisibilityChange, true); + + addInitialPointerMoveListeners(); + + // For focus and blur, we specifically care about state changes in the local + // scope. This is because focus / blur events that originate from within a + // shadow root are not re-dispatched from the host element if it was already + // the active element in its own scope: + scope.addEventListener('focus', onFocus, true); + scope.addEventListener('blur', onBlur, true); + + // We detect that a node is a ShadowRoot by ensuring that it is a + // DocumentFragment and also has a host property. This check covers native + // implementation and polyfill implementation transparently. If we only cared + // about the native implementation, we could just check if the scope was + // an instance of a ShadowRoot. + if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) { + // Since a ShadowRoot is a special kind of DocumentFragment, it does not + // have a root element to add a class to. So, we add this attribute to the + // host element instead: + scope.host.setAttribute('data-js-focus-visible', ''); + } else if (scope.nodeType === Node.DOCUMENT_NODE) { + document.documentElement.classList.add('js-focus-visible'); + document.documentElement.setAttribute('data-js-focus-visible', ''); + } +} + +// It is important to wrap all references to global window and document in +// these checks to support server-side rendering use cases +// @see https://github.com/WICG/focus-visible/issues/199 +if (typeof window !== 'undefined' && typeof document !== 'undefined') { + // Make the polyfill helper globally available. This can be used as a signal + // to interested libraries that wish to coordinate with the polyfill for e.g., + // applying the polyfill to a shadow root: + window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill; + + // Notify interested libraries of the polyfill's presence, in case the + // polyfill was loaded lazily: + var event; + + try { + event = new CustomEvent('focus-visible-polyfill-ready'); + } catch (error) { + // IE11 does not support using CustomEvent as a constructor directly: + event = document.createEvent('CustomEvent'); + event.initCustomEvent('focus-visible-polyfill-ready', false, false, {}); + } + + window.dispatchEvent(event); +} + +if (typeof document !== 'undefined') { + // Apply the polyfill to the global document, so that no JavaScript + // coordination is required to use the polyfill in the top-level document: + applyFocusVisiblePolyfill(document); +} diff --git a/src/js/vendor/jquery.hoverIntent.min.js b/src/js/vendor/jquery.hoverIntent.min.js new file mode 100644 index 0000000..270354a --- /dev/null +++ b/src/js/vendor/jquery.hoverIntent.min.js @@ -0,0 +1,9 @@ +/*! + * hoverIntent v1.10.2 // 2020.04.28 // jQuery v1.7.0+ + * http://briancherne.github.io/jquery-hoverIntent/ + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007-2019 Brian Cherne + */ +!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery"],factory):"object"==typeof module&&module.exports?module.exports=factory(require("jquery")):jQuery&&!jQuery.fn.hoverIntent&&factory(jQuery)}(function($){"use strict";function track(ev){cX=ev.pageX,cY=ev.pageY}function isFunction(value){return"function"==typeof value}var cX,cY,_cfg={interval:100,sensitivity:6,timeout:0},INSTANCE_COUNT=0,compare=function(ev,$el,s,cfg){if(Math.sqrt((s.pX-cX)*(s.pX-cX)+(s.pY-cY)*(s.pY-cY))-1,this.superfish("hide"),this.parents("."+b.hoverClass).length||(b.onIdle.call(k(this)),b.$path.length&&a.proxy(m,b.$path)())},o=function(){var b=a(this),c=l(b);d?a.proxy(n,b,c)():(clearTimeout(c.sfTimer),c.sfTimer=setTimeout(a.proxy(n,b,c),c.delay))},p=function(b){var c=a(this),d=l(c),e=c.siblings(b.data.popUpSelector);return d.onHandleTouch.call(e)===!1?this:void(e.length>0&&e.is(":hidden")&&(c.one("click.superfish",!1),"MSPointerDown"===b.type||"pointerdown"===b.type?c.trigger("focus"):a.proxy(m,c.parent("li"))()))},q=function(b,c){var g="li:has("+c.popUpSelector+")";a.fn.hoverIntent&&!c.disableHI?b.hoverIntent(m,o,g):b.on("mouseenter.superfish",g,m).on("mouseleave.superfish",g,o);var h="MSPointerDown.superfish";f&&(h="pointerdown.superfish"),d||(h+=" touchend.superfish"),e&&(h+=" mousedown.superfish"),b.on("focusin.superfish","li",m).on("focusout.superfish","li",o).on(h,"a",c,p)};return{hide:function(b){if(this.length){var c=this,d=l(c);if(!d)return this;var e=d.retainPath===!0?d.$path:"",f=c.find("li."+d.hoverClass).add(this).not(e).removeClass(d.hoverClass).children(d.popUpSelector),g=d.speedOut;if(b&&(f.show(),g=0),d.retainPath=!1,d.onBeforeHide.call(f)===!1)return this;f.stop(!0,!0).animate(d.animationOut,g,function(){var b=a(this);d.onHide.call(b)})}return this},show:function(){var a=l(this);if(!a)return this;var b=this.addClass(a.hoverClass),c=b.children(a.popUpSelector);return a.onBeforeShow.call(c)===!1?this:(c.stop(!0,!0).animate(a.animation,a.speed,function(){a.onShow.call(c)}),this)},destroy:function(){return this.each(function(){var b,d=a(this),e=d.data("sfOptions");return!!e&&(b=d.find(e.popUpSelector).parent("li"),clearTimeout(e.sfTimer),g(d,e),i(b),j(d),d.off(".superfish").off(".hoverIntent"),b.children(e.popUpSelector).attr("style",function(a,b){if("undefined"!=typeof b)return b.replace(/display[^;]+;?/g,"")}),e.$path.removeClass(e.hoverClass+" "+c.bcClass).addClass(e.pathClass),d.find("."+e.hoverClass).removeClass(e.hoverClass),e.onDestroy.call(d),void d.removeData("sfOptions"))})},init:function(b){return this.each(function(){var d=a(this);if(d.data("sfOptions"))return!1;var e=a.extend({},a.fn.superfish.defaults,b),f=d.find(e.popUpSelector).parent("li");e.$path=h(d,e),d.data("sfOptions",e),g(d,e,!0),i(f,!0),j(d),q(d,e),f.not("."+c.bcClass).superfish("hide",!0),e.onInit.call(this)})}}}();a.fn.superfish=function(b,d){return c[b]?c[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?a.error("Method "+b+" does not exist on jQuery.fn.superfish"):c.init.apply(this,arguments)},a.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:a.noop,onBeforeShow:a.noop,onShow:a.noop,onBeforeHide:a.noop,onHide:a.noop,onIdle:a.noop,onDestroy:a.noop,onHandleTouch:a.noop}}(jQuery,window); \ No newline at end of file diff --git a/src/partials/footer.html b/src/partials/footer.html new file mode 100644 index 0000000..2d8cf2f --- /dev/null +++ b/src/partials/footer.html @@ -0,0 +1,5 @@ +
+
+
+ +





























diff --git a/src/partials/head.html b/src/partials/head.html new file mode 100644 index 0000000..03e3860 --- /dev/null +++ b/src/partials/head.html @@ -0,0 +1,17 @@ + + + + + + + Cametet + + + + + + + + + + diff --git a/src/partials/header.html b/src/partials/header.html new file mode 100644 index 0000000..b09825e --- /dev/null +++ b/src/partials/header.html @@ -0,0 +1,66 @@ + diff --git a/src/resources/favicon.ico b/src/resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..630f88787d7e536d75d81ae48f3a33f6e56b2185 GIT binary patch literal 318 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 dOErb7&N>61NBXB7NC$zc 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⊂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 h1+$a{wO6GnD@a7G6#XG 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 z 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 literal 0 HcmV?d00001 diff --git a/src/resources/fonts/MontserratSemiBold.woff2 b/src/resources/fonts/MontserratSemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cc41acf28cd588bf1997bab91337b8e7c2fbced7 GIT binary patch literal 61588 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
" into an array of name/address pairs. + * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available. + * Note that quotes in the name part are removed. + * + * @see http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation + * + * @param string $addrstr The address list string + * @param bool $useimap Whether to use the IMAP extension to parse the list + * @param string $charset The charset to use when decoding the address list string. + * + * @return array + */ + public static function parseAddresses($addrstr, $useimap = true, $charset = self::CHARSET_ISO88591) + { + $addresses = []; + if ($useimap && function_exists('imap_rfc822_parse_adrlist')) { + //Use this built-in parser if it's available + $list = imap_rfc822_parse_adrlist($addrstr, ''); + // Clear any potential IMAP errors to get rid of notices being thrown at end of script. + imap_errors(); + foreach ($list as $address) { + if ( + '.SYNTAX-ERROR.' !== $address->host && + static::validateAddress($address->mailbox . '@' . $address->host) + ) { + //Decode the name part if it's present and encoded + if ( + property_exists($address, 'personal') && + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + defined('MB_CASE_UPPER') && + preg_match('/^=\?.*\?=$/s', $address->personal) + ) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $address->personal = str_replace('_', '=20', $address->personal); + //Decode the name + $address->personal = mb_decode_mimeheader($address->personal); + mb_internal_encoding($origCharset); + } + + $addresses[] = [ + 'name' => (property_exists($address, 'personal') ? $address->personal : ''), + 'address' => $address->mailbox . '@' . $address->host, + ]; + } + } + } else { + //Use this simpler parser + $list = explode(',', $addrstr); + foreach ($list as $address) { + $address = trim($address); + //Is there a separate name part? + if (strpos($address, '<') === false) { + //No separate name, just use the whole thing + if (static::validateAddress($address)) { + $addresses[] = [ + 'name' => '', + 'address' => $address, + ]; + } + } else { + list($name, $email) = explode('<', $address); + $email = trim(str_replace('>', '', $email)); + $name = trim($name); + if (static::validateAddress($email)) { + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + //If this name is encoded, decode it + if (defined('MB_CASE_UPPER') && preg_match('/^=\?.*\?=$/s', $name)) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $name = str_replace('_', '=20', $name); + //Decode the name + $name = mb_decode_mimeheader($name); + mb_internal_encoding($origCharset); + } + $addresses[] = [ + //Remove any surrounding quotes and spaces from the name + 'name' => trim($name, '\'" '), + 'address' => $email, + ]; + } + } + } + } + + return $addresses; + } + + /** + * Set the From and FromName properties. + * + * @param string $address + * @param string $name + * @param bool $auto Whether to also set the Sender address, defaults to true + * + * @throws Exception + * + * @return bool + */ + public function setFrom($address, $name = '', $auto = true) + { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + //Don't validate now addresses with IDN. Will be done in send(). + $pos = strrpos($address, '@'); + if ( + (false === $pos) + || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported()) + && !static::validateAddress($address)) + ) { + $error_message = sprintf( + '%s (From): %s', + $this->lang('invalid_address'), + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto && empty($this->Sender)) { + $this->Sender = $address; + } + + return true; + } + + /** + * Return the Message-ID header of the last email. + * Technically this is the value from the last time the headers were created, + * but it's also the message ID of the last sent message except in + * pathological cases. + * + * @return string + */ + public function getLastMessageID() + { + return $this->lastMessageID; + } + + /** + * Check that a string looks like an email address. + * Validation patterns supported: + * * `auto` Pick best pattern automatically; + * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0; + * * `pcre` Use old PCRE implementation; + * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; + * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. + * * `noregex` Don't use a regex: super fast, really dumb. + * Alternatively you may pass in a callable to inject your own validator, for example: + * + * ```php + * PHPMailer::validateAddress('user@example.com', function($address) { + * return (strpos($address, '@') !== false); + * }); + * ``` + * + * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator. + * + * @param string $address The email address to check + * @param string|callable $patternselect Which pattern to use + * + * @return bool + */ + public static function validateAddress($address, $patternselect = null) + { + if (null === $patternselect) { + $patternselect = static::$validator; + } + //Don't allow strings as callables, see SECURITY.md and CVE-2021-3603 + if (is_callable($patternselect) && !is_string($patternselect)) { + return call_user_func($patternselect, $address); + } + //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 + if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) { + return false; + } + switch ($patternselect) { + case 'pcre': //Kept for BC + case 'pcre8': + /* + * A more complex and more permissive version of the RFC5322 regex on which FILTER_VALIDATE_EMAIL + * is based. + * In addition to the addresses allowed by filter_var, also permits: + * * dotless domains: `a@b` + * * comments: `1234 @ local(blah) .machine .example` + * * quoted elements: `'"test blah"@example.org'` + * * numeric TLDs: `a@b.123` + * * unbracketed IPv4 literals: `a@192.168.0.1` + * * IPv6 literals: 'first.last@[IPv6:a1::]' + * Not all of these will necessarily work for sending! + * + * @see http://squiloople.com/2009/12/20/email-address-validation/ + * @copyright 2009-2010 Michael Rushton + * Feel free to use and redistribute this code. But please keep this copyright notice. + */ + return (bool) preg_match( + '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . + '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . + '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . + '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . + '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . + '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . + '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . + '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . + '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', + $address + ); + case 'html5': + /* + * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. + * + * @see https://html.spec.whatwg.org/#e-mail-state-(type=email) + */ + return (bool) preg_match( + '/^[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])?)*$/sD', + $address + ); + case 'php': + default: + return filter_var($address, FILTER_VALIDATE_EMAIL) !== false; + } + } + + /** + * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the + * `intl` and `mbstring` PHP extensions. + * + * @return bool `true` if required functions for IDN support are present + */ + public static function idnSupported() + { + return function_exists('idn_to_ascii') && function_exists('mb_convert_encoding'); + } + + /** + * Converts IDN in given email address to its ASCII form, also known as punycode, if possible. + * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet. + * This function silently returns unmodified address if: + * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form) + * - Conversion to punycode is impossible (e.g. required PHP functions are not available) + * or fails for any reason (e.g. domain contains characters not allowed in an IDN). + * + * @see PHPMailer::$CharSet + * + * @param string $address The email address to convert + * + * @return string The encoded address in ASCII form + */ + public function punyencodeAddress($address) + { + //Verify we have required functions, CharSet, and at-sign. + $pos = strrpos($address, '@'); + if ( + !empty($this->CharSet) && + false !== $pos && + static::idnSupported() + ) { + $domain = substr($address, ++$pos); + //Verify CharSet string is a valid one, and domain properly encoded in this CharSet. + if ($this->has8bitChars($domain) && @mb_check_encoding($domain, $this->CharSet)) { + //Convert the domain from whatever charset it's in to UTF-8 + $domain = mb_convert_encoding($domain, self::CHARSET_UTF8, $this->CharSet); + //Ignore IDE complaints about this line - method signature changed in PHP 5.4 + $errorcode = 0; + if (defined('INTL_IDNA_VARIANT_UTS46')) { + //Use the current punycode standard (appeared in PHP 7.2) + $punycode = idn_to_ascii( + $domain, + \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | + \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, + \INTL_IDNA_VARIANT_UTS46 + ); + } elseif (defined('INTL_IDNA_VARIANT_2003')) { + //Fall back to this old, deprecated/removed encoding + $punycode = idn_to_ascii($domain, $errorcode, \INTL_IDNA_VARIANT_2003); + } else { + //Fall back to a default we don't know about + $punycode = idn_to_ascii($domain, $errorcode); + } + if (false !== $punycode) { + return substr($address, 0, $pos) . $punycode; + } + } + } + + return $address; + } + + /** + * Create a message and send it. + * Uses the sending method specified by $Mailer. + * + * @throws Exception + * + * @return bool false on error - See the ErrorInfo property for details of the error + */ + public function send() + { + try { + if (!$this->preSend()) { + return false; + } + + return $this->postSend(); + } catch (Exception $exc) { + $this->mailHeader = ''; + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Prepare a message for sending. + * + * @throws Exception + * + * @return bool + */ + public function preSend() + { + if ( + 'smtp' === $this->Mailer + || ('mail' === $this->Mailer && (\PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0)) + ) { + //SMTP mandates RFC-compliant line endings + //and it's also used with mail() on Windows + static::setLE(self::CRLF); + } else { + //Maintain backward compatibility with legacy Linux command line mailers + static::setLE(PHP_EOL); + } + //Check for buggy PHP versions that add a header with an incorrect line break + if ( + 'mail' === $this->Mailer + && ((\PHP_VERSION_ID >= 70000 && \PHP_VERSION_ID < 70017) + || (\PHP_VERSION_ID >= 70100 && \PHP_VERSION_ID < 70103)) + && ini_get('mail.add_x_header') === '1' + && stripos(PHP_OS, 'WIN') === 0 + ) { + trigger_error($this->lang('buggy_php'), E_USER_WARNING); + } + + try { + $this->error_count = 0; //Reset errors + $this->mailHeader = ''; + + //Dequeue recipient and Reply-To addresses with IDN + foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { + $params[1] = $this->punyencodeAddress($params[1]); + call_user_func_array([$this, 'addAnAddress'], $params); + } + if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { + throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL); + } + + //Validate From, Sender, and ConfirmReadingTo addresses + foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) { + $this->$address_kind = trim($this->$address_kind); + if (empty($this->$address_kind)) { + continue; + } + $this->$address_kind = $this->punyencodeAddress($this->$address_kind); + if (!static::validateAddress($this->$address_kind)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $address_kind, + $this->$address_kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + } + + //Set whether the message is multipart/alternative + if ($this->alternativeExists()) { + $this->ContentType = static::CONTENT_TYPE_MULTIPART_ALTERNATIVE; + } + + $this->setMessageType(); + //Refuse to send an empty message unless we are specifically allowing it + if (!$this->AllowEmpty && empty($this->Body)) { + throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); + } + + //Trim subject consistently + $this->Subject = trim($this->Subject); + //Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) + $this->MIMEHeader = ''; + $this->MIMEBody = $this->createBody(); + //createBody may have added some headers, so retain them + $tempheaders = $this->MIMEHeader; + $this->MIMEHeader = $this->createHeader(); + $this->MIMEHeader .= $tempheaders; + + //To capture the complete message when using mail(), create + //an extra header list which createHeader() doesn't fold in + if ('mail' === $this->Mailer) { + if (count($this->to) > 0) { + $this->mailHeader .= $this->addrAppend('To', $this->to); + } else { + $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); + } + $this->mailHeader .= $this->headerLine( + 'Subject', + $this->encodeHeader($this->secureHeader($this->Subject)) + ); + } + + //Sign with DKIM if enabled + if ( + !empty($this->DKIM_domain) + && !empty($this->DKIM_selector) + && (!empty($this->DKIM_private_string) + || (!empty($this->DKIM_private) + && static::isPermittedPath($this->DKIM_private) + && file_exists($this->DKIM_private) + ) + ) + ) { + $header_dkim = $this->DKIM_Add( + $this->MIMEHeader . $this->mailHeader, + $this->encodeHeader($this->secureHeader($this->Subject)), + $this->MIMEBody + ); + $this->MIMEHeader = static::stripTrailingWSP($this->MIMEHeader) . static::$LE . + static::normalizeBreaks($header_dkim) . static::$LE; + } + + return true; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Actually send a message via the selected mechanism. + * + * @throws Exception + * + * @return bool + */ + public function postSend() + { + try { + //Choose the mailer and send through it + switch ($this->Mailer) { + case 'sendmail': + case 'qmail': + return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + default: + $sendMethod = $this->Mailer . 'Send'; + if (method_exists($this, $sendMethod)) { + return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody); + } + + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + } + } catch (Exception $exc) { + if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) { + $this->smtp->reset(); + } + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + } + + return false; + } + + /** + * Send mail using the $Sendmail program. + * + * @see PHPMailer::$Sendmail + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function sendmailSend($header, $body) + { + if ($this->Mailer === 'qmail') { + $this->edebug('Sending with qmail'); + } else { + $this->edebug('Sending with sendmail'); + } + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) { + if ($this->Mailer === 'qmail') { + $sendmailFmt = '%s -f%s'; + } else { + $sendmailFmt = '%s -oi -f%s -t'; + } + } else { + //allow sendmail to choose a default envelope sender. It may + //seem preferable to force it to use the From header as with + //SMTP, but that introduces new problems (see + //), and + //it has historically worked this way. + $sendmailFmt = '%s -oi -t'; + } + + $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); + $this->edebug('Sendmail path: ' . $this->Sendmail); + $this->edebug('Sendmail command: ' . $sendmail); + $this->edebug('Envelope sender: ' . $this->Sender); + $this->edebug("Headers: {$header}"); + + if ($this->SingleTo) { + foreach ($this->SingleToArray as $toAddr) { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + $this->edebug("To: {$toAddr}"); + fwrite($mail, 'To: ' . $toAddr . "\n"); + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + ($result === 0), + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $this->doCallback( + ($result === 0), + $this->to, + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + + return true; + } + + /** + * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters. + * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows. + * + * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report + * + * @param string $string The string to be validated + * + * @return bool + */ + protected static function isShellSafe($string) + { + //Future-proof + if ( + escapeshellcmd($string) !== $string + || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) + ) { + return false; + } + + $length = strlen($string); + + for ($i = 0; $i < $length; ++$i) { + $c = $string[$i]; + + //All other characters have a special meaning in at least one common shell, including = and +. + //Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here. + //Note that this does permit non-Latin alphanumeric characters based on the current locale. + if (!ctype_alnum($c) && strpos('@_-.', $c) === false) { + return false; + } + } + + return true; + } + + /** + * Check whether a file path is of a permitted type. + * Used to reject URLs and phar files from functions that access local file paths, + * such as addAttachment. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function isPermittedPath($path) + { + //Matches scheme definition from https://tools.ietf.org/html/rfc3986#section-3.1 + return !preg_match('#^[a-z][a-z\d+.-]*://#i', $path); + } + + /** + * Check whether a file path is safe, accessible, and readable. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function fileIsAccessible($path) + { + if (!static::isPermittedPath($path)) { + return false; + } + $readable = file_exists($path); + //If not a UNC path (expected to start with \\), check read permission, see #2069 + if (strpos($path, '\\\\') !== 0) { + $readable = $readable && is_readable($path); + } + return $readable; + } + + /** + * Send mail using the PHP mail() function. + * + * @see http://www.php.net/manual/en/book.mail.php + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function mailSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + + $toArr = []; + foreach ($this->to as $toaddr) { + $toArr[] = $this->addrFormat($toaddr); + } + $to = implode(', ', $toArr); + + $params = null; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + if (!empty($this->Sender) && static::validateAddress($this->Sender)) { + if (self::isShellSafe($this->Sender)) { + $params = sprintf('-f%s', $this->Sender); + } + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + } + $result = false; + if ($this->SingleTo && count($toArr) > 1) { + foreach ($toArr as $toAddr) { + $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + $result, + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + } + } else { + $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); + $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if (!$result) { + throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL); + } + + return true; + } + + /** + * Get an instance to use for SMTP operations. + * Override this function to load your own SMTP implementation, + * or set one with setSMTPInstance. + * + * @return SMTP + */ + public function getSMTPInstance() + { + if (!is_object($this->smtp)) { + $this->smtp = new SMTP(); + } + + return $this->smtp; + } + + /** + * Provide an instance to use for SMTP operations. + * + * @return SMTP + */ + public function setSMTPInstance(SMTP $smtp) + { + $this->smtp = $smtp; + + return $this->smtp; + } + + /** + * Send mail via SMTP. + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * + * @see PHPMailer::setSMTPInstance() to use a different class. + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function smtpSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + $bad_rcpt = []; + if (!$this->smtpConnect($this->SMTPOptions)) { + throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + //Sender already validated in preSend() + if ('' === $this->Sender) { + $smtp_from = $this->From; + } else { + $smtp_from = $this->Sender; + } + if (!$this->smtp->mail($smtp_from)) { + $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); + throw new Exception($this->ErrorInfo, self::STOP_CRITICAL); + } + + $callbacks = []; + //Attempt to send to all recipients + foreach ([$this->to, $this->cc, $this->bcc] as $togroup) { + foreach ($togroup as $to) { + if (!$this->smtp->recipient($to[0], $this->dsn)) { + $error = $this->smtp->getError(); + $bad_rcpt[] = ['to' => $to[0], 'error' => $error['detail']]; + $isSent = false; + } else { + $isSent = true; + } + + $callbacks[] = ['issent' => $isSent, 'to' => $to[0], 'name' => $to[1]]; + } + } + + //Only send the DATA command if we have viable recipients + if ((count($this->all_recipients) > count($bad_rcpt)) && !$this->smtp->data($header . $body)) { + throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL); + } + + $smtp_transaction_id = $this->smtp->getLastTransactionID(); + + if ($this->SMTPKeepAlive) { + $this->smtp->reset(); + } else { + $this->smtp->quit(); + $this->smtp->close(); + } + + foreach ($callbacks as $cb) { + $this->doCallback( + $cb['issent'], + [[$cb['to'], $cb['name']]], + [], + [], + $this->Subject, + $body, + $this->From, + ['smtp_transaction_id' => $smtp_transaction_id] + ); + } + + //Create error message for any bad addresses + if (count($bad_rcpt) > 0) { + $errstr = ''; + foreach ($bad_rcpt as $bad) { + $errstr .= $bad['to'] . ': ' . $bad['error']; + } + throw new Exception($this->lang('recipients_failed') . $errstr, self::STOP_CONTINUE); + } + + return true; + } + + /** + * Initiate a connection to an SMTP server. + * Returns false if the operation failed. + * + * @param array $options An array of options compatible with stream_context_create() + * + * @throws Exception + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @return bool + */ + public function smtpConnect($options = null) + { + if (null === $this->smtp) { + $this->smtp = $this->getSMTPInstance(); + } + + //If no options are provided, use whatever is set in the instance + if (null === $options) { + $options = $this->SMTPOptions; + } + + //Already connected? + if ($this->smtp->connected()) { + return true; + } + + $this->smtp->setTimeout($this->Timeout); + $this->smtp->setDebugLevel($this->SMTPDebug); + $this->smtp->setDebugOutput($this->Debugoutput); + $this->smtp->setVerp($this->do_verp); + $hosts = explode(';', $this->Host); + $lastexception = null; + + foreach ($hosts as $hostentry) { + $hostinfo = []; + if ( + !preg_match( + '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', + trim($hostentry), + $hostinfo + ) + ) { + $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry)); + //Not a valid host entry + continue; + } + //$hostinfo[1]: optional ssl or tls prefix + //$hostinfo[2]: the hostname + //$hostinfo[3]: optional port number + //The host string prefix can temporarily override the current setting for SMTPSecure + //If it's not specified, the default value is used + + //Check the host name is a valid name or IP address before trying to use it + if (!static::isValidHost($hostinfo[2])) { + $this->edebug($this->lang('invalid_host') . ' ' . $hostinfo[2]); + continue; + } + $prefix = ''; + $secure = $this->SMTPSecure; + $tls = (static::ENCRYPTION_STARTTLS === $this->SMTPSecure); + if ('ssl' === $hostinfo[1] || ('' === $hostinfo[1] && static::ENCRYPTION_SMTPS === $this->SMTPSecure)) { + $prefix = 'ssl://'; + $tls = false; //Can't have SSL and TLS at the same time + $secure = static::ENCRYPTION_SMTPS; + } elseif ('tls' === $hostinfo[1]) { + $tls = true; + //TLS doesn't use a prefix + $secure = static::ENCRYPTION_STARTTLS; + } + //Do we need the OpenSSL extension? + $sslext = defined('OPENSSL_ALGO_SHA256'); + if (static::ENCRYPTION_STARTTLS === $secure || static::ENCRYPTION_SMTPS === $secure) { + //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled + if (!$sslext) { + throw new Exception($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); + } + } + $host = $hostinfo[2]; + $port = $this->Port; + if ( + array_key_exists(3, $hostinfo) && + is_numeric($hostinfo[3]) && + $hostinfo[3] > 0 && + $hostinfo[3] < 65536 + ) { + $port = (int) $hostinfo[3]; + } + if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { + try { + if ($this->Helo) { + $hello = $this->Helo; + } else { + $hello = $this->serverHostname(); + } + $this->smtp->hello($hello); + //Automatically enable TLS encryption if: + //* it's not disabled + //* we have openssl extension + //* we are not already using SSL + //* the server offers STARTTLS + if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) { + $tls = true; + } + if ($tls) { + if (!$this->smtp->startTLS()) { + throw new Exception($this->lang('connect_host')); + } + //We must resend EHLO after TLS negotiation + $this->smtp->hello($hello); + } + if ( + $this->SMTPAuth && !$this->smtp->authenticate( + $this->Username, + $this->Password, + $this->AuthType, + $this->oauth + ) + ) { + throw new Exception($this->lang('authenticate')); + } + + return true; + } catch (Exception $exc) { + $lastexception = $exc; + $this->edebug($exc->getMessage()); + //We must have connected, but then failed TLS or Auth, so close connection nicely + $this->smtp->quit(); + } + } + } + //If we get here, all connection attempts have failed, so close connection hard + $this->smtp->close(); + //As we've caught all exceptions, just report whatever the last one was + if ($this->exceptions && null !== $lastexception) { + throw $lastexception; + } + + return false; + } + + /** + * Close the active SMTP session if one exists. + */ + public function smtpClose() + { + if ((null !== $this->smtp) && $this->smtp->connected()) { + $this->smtp->quit(); + $this->smtp->close(); + } + } + + /** + * Set the language for error messages. + * The default language is English. + * + * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") + * Optionally, the language code can be enhanced with a 4-character + * script annotation and/or a 2-character country annotation. + * @param string $lang_path Path to the language file directory, with trailing separator (slash) + * Do not set this from user input! + * + * @return bool Returns true if the requested language was loaded, false otherwise. + */ + public function setLanguage($langcode = 'en', $lang_path = '') + { + //Backwards compatibility for renamed language codes + $renamed_langcodes = [ + 'br' => 'pt_br', + 'cz' => 'cs', + 'dk' => 'da', + 'no' => 'nb', + 'se' => 'sv', + 'rs' => 'sr', + 'tg' => 'tl', + 'am' => 'hy', + ]; + + if (array_key_exists($langcode, $renamed_langcodes)) { + $langcode = $renamed_langcodes[$langcode]; + } + + //Define full set of translatable strings in English + $PHPMAILER_LANG = [ + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'buggy_php' => 'Your version of PHP is affected by a bug that may result in corrupted messages.' . + ' To fix it, switch to sending using SMTP, disable the mail.add_x_header option in' . + ' your php.ini, switch to MacOS or Linux, or upgrade your PHP to version 7.0.17+ or 7.1.3+.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'data_not_accepted' => 'SMTP Error: data not accepted.', + 'empty_message' => 'Message body empty', + 'encoding' => 'Unknown encoding: ', + 'execute' => 'Could not execute: ', + 'extension_missing' => 'Extension missing: ', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'from_failed' => 'The following From address failed: ', + 'instantiate' => 'Could not instantiate mail function.', + 'invalid_address' => 'Invalid address: ', + 'invalid_header' => 'Invalid header name or value', + 'invalid_hostentry' => 'Invalid hostentry: ', + 'invalid_host' => 'Invalid host: ', + 'mailer_not_supported' => ' mailer is not supported.', + 'provide_address' => 'You must provide at least one recipient email address.', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'signing' => 'Signing Error: ', + 'smtp_code' => 'SMTP code: ', + 'smtp_code_ex' => 'Additional SMTP info: ', + 'smtp_connect_failed' => 'SMTP connect() failed.', + 'smtp_detail' => 'Detail: ', + 'smtp_error' => 'SMTP server error: ', + 'variable_set' => 'Cannot set or reset variable: ', + ]; + if (empty($lang_path)) { + //Calculate an absolute path so it can work if CWD is not here + $lang_path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR; + } + + //Validate $langcode + $foundlang = true; + $langcode = strtolower($langcode); + if ( + !preg_match('/^(?P[a-z]{2})(?P

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ȓ!bR@Z+=Ch=*M8 zLcU$0;5*0)1;Qgd5AcT;$?*MT{d5l#rm!T%ih3iikN3jPIKSfz((Ox)!v%9EC9VT! z_nj2l4Q5%#iO8Q0qEtr5&9tR%@wGcup@&8%1FIcmCgICre<12K*oqsYk?9vsLmHhm z(hS|Gm{p|Oxltm^wL0>nBl2k71iWzvUcELGbfuyC6hc`0*~byyF9^{;ddq!W7u;e7 z2b|i)6Xhiu}dZOhbhwDN)oLaDA)?cFmSUxP5U#(U5KV*SCwU zV8@&ALa4O#9Foj`j*Ki*6Dhvjq1EbqIk7D!Q13TJ-xc8S)n_(#FID;0U(EtX=KSV9 z`_4@?Q?;qz!#n^~JRRUO6G_IVGVyJ$k>0JYf;cwi^lE3Erp5eLH$SjB(u*CzjnO(3 zjn)ZEmOy&4r@H zwz_|eI-4n<9(8~E=F5`H>G_mbxZYqP4d-j&pBj-Y_or~gdDrGDc4dXCvRqkN$p#Tn zMm2+URbHM$$zcTN8RUQ@Rzap$POAjn!FoX#^Kyt$@%2GL_xTYFH8x%o!HxsVsNxlf z&9~@nF{^N;pZ!`4x24ga?d*m1Q6sC+BDekb_V3XFG1vqpHrxO2%};i6b(BjjhiS}< zN1u8FB%=4DF1-o0;m^u*V|BXbaXml|$3~xRVk`vfiF1Dqk0^^;N(O-*F?d1OIh%BA z~x@(!-(*!cbmG=y#`;q1v?3pv#OKKrA$|E|PFCM-sYzkd=a@i%X!!vluOF z-oV(%#tqSl($7PtO0rXBN}EX{Gl01>g7>&qn8SpNz9%hfi}4yThNv@cd33b+DI#he zA7G(TW*(zOyA53mGCs+d zxyI*Mt6uOz)fN2@0cF=x$vZh5AWQ5ptfW93>Z~5QT_y^fOrnTgDwjK@MBx{9%D@oX zX<>>01hMFY0@(5fs|&$iUe5hV0lOLlV_Z4d;8$@HhF8xY{n;zJSV**vCWXaB8y)4D z8{z|M*rcnna~xNSH7X$ZoNUKcf$Uz`j*7Yh0k>rvD$lwToNyah5nT~I8;ENBLu3V* zQPnFDu8-&;{ypaG6$wm}D_Z?yJp-^Y?gq2cF8%fI^}#&CpsZH=HABjDE044X8v`Ha zC!((#4vKzd=VoFV2=Pji!%%dK~I_O?~v4K(i zVB?^%)$UmwErq-@E)FPbX2U>MPVSJ3A~;S+YnEpoaLi?B)t-?Y`ZRb?1P2^q z?fW|PHM&+78G!{k_j3b|v;@X^`XPfKW9J*rzdd?-myQ)Jh8CX1UB6CO3QLMMdV^PcB%TPi&hg-5aOI=1qQmmv=i*;V;?dFy9sB3#y(890y-S+*_FKWszVWkt2uEi@D%Tl;NsILsr-6W$SfnjD3mp!rKMkO zB>ehp^S)=iut2Sv!zn(Vox8peIBe2XMfE_f6KCbpR4B8((Bd?VxAc;UuLunzhytHMZCwhJdQw|0179g zr!F(RB!9zJAmPU?E#Ip_z6TyYvo4BX&nPMr5lRi_PSu;w@cH}`NP@nw710inG2D5ns_0&`x`wfnPM2k78k zUSHYZbTa%P5^)F)-+@4G?~}{CV=kzwY^$nntL%aT*UtLJ8o%Gs7`W~mJ)-Yce>z*i zD2+h#*`k03!absk7=Fx0KHx2IJ{x2OQ+oyB{&Y%-KGn-N9>5}#+>yW#vKrgvi^%1UrgD#Syy0!X?71!&U8e!qgt?xR= zuZ(xXe=|~Z?8;c@caV9tHz^HtiGM@?NblkK6~xiU-{c2m@~>pK2fgsr=ixe{<-1(# z_gGf%b2O~B*Lt*oEk_fu9=@S<2%S2*xz}CgSa{2P%h{a9vyJnhHC)7bBj&_y13^1C z>1VFg2U3XD;W_W;LCms2>Rx-MfZyRwnVQ{-wz}2K^fsUn7_{y+5Xj%u#CEX>F`;YX`@m~Rg8vkdQ9#&H`nfULjQc><|h*`a>n|w&k3E^+&ZT-ug zn@>#&>Rz1RKMylYt0bo&>=~CgJZ#O-W^H|B@H+&2i=k5rYuJ`5@3GbNTXs2!!EryA z)9VuOHU*+p>Zs;E`)uIj44>9RIt%F3EM-?Xy7pw1-~MI=vfG`YD(gyBP%#aHC@bD% zs=fhd&rU9b%^g~Hg6^kK+P;h<1>&OH=u;M=lL(+7Z`R0gc6c)=T26z&vp>b=6Hs)~ zhdanFW9@4FKg89m#8!JTRx$I_4UJn1uJBiQG!X%2qfT7a@Oub^D$j4e_ z4v~xzOJz2p!9Ze@iX}`1U}%ah+D){kdsVL3JM0XzI22j-?dSHCgJa0caKQY3ya`pd zy>HI6omTI`(-h$?2`#k8_bZ)n&A7bZ^JnWb(`b?X*y9kt&ldHJjer+0GFzgx-`6_E z&#CF5zmAq{(mY?l5Vi=it9iWDJYb$moyD(hKH@_{aBMNAqLVg6W~UmbTxCfZ%O1ad z^$&xkO(uVa8luD$=ZGc$k|y-1GHw9Z-_Q?^fSNTu6vK+QEygIEDPC@#q8Thx$MPy7 zX)J&8Dq!y65Bh)bP{KvaKm-Zc;fC8M;)R{p z#B**h#Ex2`=vdb1^>mrg(WvEIk%FcGb&8B5Cx1}zs`%H{hjh{oZ<{DH?1ZoIe6(%{hDNVdgb2;ts0N1j^a&*DM+3(;(R zq)Sal{0Xpzmr?(EU@Eb8qn+-U_m02$#ZkkiV}_1jZ*D43tFoWAh}j)bO{ogbuf8PE z=r3QT<$G0NEdF7Wn4VklPHY^p-L-517l{=juvnj~y(htcB$2)&!M-Pvzn^Qm>}&n3 zw();_9X_mg$DjgiT`L2w4;pnFXnNbLJ__axInze1r`9#}ZjkwFE`dY&+oH|_zQw}) z3b@7oAeZU`=I|?O`I;X9@1+YF3#R+|*Z3gV;ljmzhz)yl6l1YcV`5ugYmdz(HMPT4 z)x)(lqg9v9n3@r0qy}?jvcl5)VJqYW!MavRH=DcV6`bFG{dQmLo3=EQ2{iKuL}IQ2 zf{&)|9Ki1!OkLWOo?MoF4QL)6kud>-j)5g}Qfo*bLDR?Y%a}FY#kO%kj4V;QjO z$`bFQSV~CG>AY8JP$OFw0b(d&{f|44$y61`#6T${T@JB$%xr^zSc%islaNImXto<< z+|A{Kkd~Pd!J!fEcB$u4DZsFJ-#m+k910ZZb*)CDK9kWI@r+KN3G%HOy(u8Txm=vj zPkEPs|5?i5Y>0dY_I3EsYHxDH2rO@n*&|)25%4oEr0D8awVi+>2DpKv?0IoX>%iPYd*}-Cc3;Z599V z*nMMwg@zYmWQHP%b;oyHF&>qEtT(H7^67$a;xuh=wSE3I9OfO;jT^K+oa5R+8;slm z3G21m7NxpeX@_7BBn2<%{9X{){t$1QAAV}X0EPJB==xA#^L^b1?R$FmBRDq}gNzPo zBMJqZR6YY6-}VEF+y{WAB3Nl#Z4<24xWxB1^@6ssP{KcMZWpj&nm>(iEmg*bFHr{L zFD@$g#5MP7R=4lrq{YFhQ;>l#{BXn4zx%F~-=wv0U~V*A@LKz7JDo(_mv*P4eBHP0 z?%RNQ7aV+Py9)B3`0gx;Tkn#p?>R0RCNDR!CODLV)@q0UC8=Gm6>M}q!#x97-fA2x z*Hq$TKxx7q>)%W{CX7^dbqn7kh1cf2$V|`NKkxm__SVh zUXZZMjTPSQmC}rEqcM=}eC|%KC|RcHjq->$iVVF^;4*Myzr$|m?=q1@vli>|`;oq8 zEtD3UIXqgf;91QavBbjVkg%LXT6n+)8lDH41DHbWNilZLZ5W3eVHTI!*ne5K`Nd7Y za=2FS-g2G&`et&uJuWb4{2ZAT773|{$;RsV|CDJi{?j42T}}6`WAJN>T3Yw@P{7~3 zyYmT7h+nNy``aWWX>a?s={3mcBn6=F)R|PzVze=OGlq^z%+V!w)X=Li1}RRA@)b!8 z_n{2e$T38 zxYO@dBPs~Quam6MO-rWr@(&H}!bUO{ z4gRKXHMc+_EBtE00dLcJ41W+~MGeC0+w@GnTpbD?pLJg7TzD#bdOqX4GeBfM{^Y#y z{5*R>xbVaYtt#NK60OB6BdwpZ+4a+c!GPx5<0VW#hS^t^LN?BCinW@raK}66g3f9D zuO&rxd;x)+)!O~A*ps5hvG0|fm8T#l#9EsFd?dkpZNKMw0S1PUMFeFC#}kSfk#M`X z9sC!O_lrb6(Kl>M|Cbw1#d0?N1vT-78XKew##4e%y`uFc-&7-^l8u-0-O9{PFLDJc zgeAIzfKs%m}}B!%v*@2ai0 zPu}KwZNh9S;(AEysr0B#T&h(t8D=h}+N1JJtD9xvv$gPHXu2MzPsVonygd)Lzh-)8 zVB2-?`UcI0*-xPlSo%|oQmtgMamd`rD`j|KFjTimCfsBZNopCJfJOCuIPtu}(1!Y4 z%cs`mCON=Qplh;QlegqRCn)~(rS_a2d8z;B5%xN_7)%}_VcgBRS=~J$yi$ZB& z`?Vc<`VY(D=g&}sOr0-S?G8aOG_Xk)xyeGfNfxmQOocG!(&~zewrY$y9f$2|oh<=N zv&K9*cKHjo953JU59>hFYDj)!o&kJTt$X)Yvgxe|D0Ou{u)LyhF;}1+raz?NN`7J#MK zTYwcZSx|)b<=5uq!==!efj;+OXj+(U`Lqqpgc{)I(5;xJUy*^OxjdB5tml07`dqHQ zv^5`0wrao4*M(IGu-)W9e%+U35ENjh)YO=7z7L9;e$=326C5Jhz`Vbo(h@>RJzKemUvAXD3@oMmlB;flk!VQ8xD|lBl*#EmbW8dBh zEVcI}XdHkIPtZsWa5+%lR0(B`#2y3sWrC$_ZYAva=#Jytuai*BwSauKw}X(JKPpzi zftQZF+bModfTfBJ4?l4lSv9=LPu-8xjx!_0P#y7fBs9*Ta&acEW?_v1SYnAS!7m+IqjT8tYPVHx z3z8o7Z#5lvZu1_4z8G>9*dXeo_tCx_rXN13(AB_H?_OG4B<~v9I8Qldx8{?N91l_L zt|wcaLh*g$dlJgdG}TH(f==&=qxWKuy3L7 zeGH$y4L{h>gJzLld{3tUChRwu?A(&)(z&5C#%br6X3~$&6(z%#&L`E#omKaAzbMtS z+4m&}cNK1=fhrNdeeBO!LQE_3T^C_b;Ep#aVHLR5hU@p#N<-nXI@B|Sj~DQ^B=nto zuKoXS_`hMH&*Epc=p+ zbNyNqbvM*x}ZI%eW5LHO|~_*UP?N zjZIfq#T(Ky;A%pKGjg~8eh#{Dl=SCpdR(Gzn7+PYGL!F^P+UaFK*_u4hF2n^aw@FD zu{kgN(M)!I2=2|uV(~fXBJ7*R`@{4Fa>P_;u;WrjH%N(5)(+TZ&_La|?WkS|>oT?- zb}&pQX{wk)AR`XBi7bH(9b%NVOrwiD?X*oZB%6;6jz*fT39-mokF6j_OecXZq2z9l zrKurDJqhZFsUAb2PbyEY($QBeIRqq#2|~$p9@|C(IqK*nO&~LN{3WC!ROgfQ<{MR$ z5XjJBjWCTa@=I$QI`L!LHb3Vg=H}u7bO4DVa&<1POf%bsNxf4?nrZ?WI>?JrzV%om zIjX0?%g-JgreWN2R4;^e8M_dM*h-GNjcu-dvF)&fVLC}$P%?DTrF=XA$bt6ftsvnT zjeiP*&chQFp9xoR1I|-t(0W2Aovub7%#qk+2O5+MY|PH6F3>dz^hDc(bOXb5lBSwK zh7P*O(@vWh#pD^r$x*k&{jus)%_B~aeVPX9=p;=g)dVth&_&+Mj?_lPGtj+y{y6Tb zg8RsO&X}US`=~5E8|FZ;I3`DsSJ{fd&5#@F-l;S9(6e^xmfUsXkvm;vcO|o zXdp)&oumn5)DfQzMavv@1&Kl+Lx&h;0n_Lrf5O^=;=yol2S`QMk{&eH=Fm<&DF%9Y zxH^|srdf(vpwy98^>*R60gaHMgS;5)b$G0q9Mw~>7yDbS?pp~q3-XUVxHjIA`L^{}k=HpP5!np-@&Su(2?sVpyZDNkC83 zAEX;J5a>eIa#jL)n%0II4d!z7$6Uw5LayAEzCx~f@^VTP>5vnxxw9fO@|xUvR)RKjOZZU!M`y1M{-D^TV}|*^|noop1gD1?U z4DpD4M?D{4UB>$1AOe0CSx(tV8G*c*V*E&$g9rS0F(ZyOsdS- zG?HyxFyEk3+D<7+%LUqs#d{$9CyY_T^bmcgNJMT7-+8Dq8F?4yYU4^9>En|M+%c`B z5|17pqgUOrJp;^+*Cd`ddX2IYv%dFbI|lZwT;| z$Q4~y`I}dcuym(LR=N1%XFm$b)1)S9y&|3vrleeuqhTQPrMI}(7pmjXY`4762?$AWZ^9#zRe zS4C~VaQ6->-&exsDuHwXy+ZC;YqBC4cZER@rCC=r4LLYE{co-ZLueXcaRAJh43C)S z?(H9^(srCaA2A-GtWr9f`WY1il_vUX{lY;F1nELnxr&rhKG0R#)M#ifzVPSKousG@ zvhzY{tOoMP`x+=g{0&+wC0r!aGG^kq$ra6+HdQ#`@``@9JgB(MA@Dwn-qKv-wvDFb zv>27uX>ByQmb159*yVBK)=hzAW!BZRtm5;Jn5qIO@^ z>YfU*uY#sk)h3`#jXD*ol4(yqw+BypxT4D{e{UWzx>6(y?l+*950`fv{*kT*kXKbIa9|L|8#Mj#A+867GgAC9jyMpyn;D?!kwrcSdmu*c+ zRRUcVwS7T$a_0oK*d0B3ol})iRw=NN%BUFVngsMj{Xx1x1A#7N!EL*yl=4BlN}C!D z<_h)UR5>RlD5)4}Lm-iBPa#b4K<864e>>uCrc1~)9VmULYWdpTFO=jcvA9ehU0%qU(Dd3i9jTwX5#SlO3E6k`36 zhT#K)CO1x#JMk12n~msBpMtyB)GNExfTGCfb8>hf^pB9LJfcaL6KQWU&JVD3hlaA5 zCVTQOT8^+36tBeZijrML>{U~=)(?Mp>xObay2}9?>K?3MczJ!0ZTLM!i{SrHO?qF(f$e9X_7*Ljmxl9-QYu&;IZGV;E)STwUsB%_DN-V1&Zl!fx8zi(1Y*q z&AYLtSQiA$!|Pe=F0P)3<XX|}%JEdG;Yv5Rz0X>utQ*m9z)C=m)z-r-M-Rgxt-E!7syaOE+3>jYL z-mgk3+={*p3e?!6-&Hr3g`|_@I@vC@kLf{u4K$;e>QBRXSqHV7iG3b*o4}DNJO<4D zli<$zRWNrHaVFv?n*b%5_=k6h_|gLg1=Wjlh>k3sOQMG(M7+uLl?+V0*W45hcX?rsJz{AMRg6O#gYNIIplVvwbM?3P zDReAAf;#v|^SkumpUv;|!9NEoL*xb&x<~m#8UU?A`CODkSYZZTqT$aP8R+K#Nl}`Z z${Si^jVXZ*b~xY^F0n8<0F>Xn3)1AoRJ%Mt)qJ1Q3v;+ZmmoeVZ?`as zFs8sE0v=Hah#`&yL`ay13>9f)kc9>vIT$cuNqerlVWVdmG`8`ZqQ>fj*dCZjViyM# zZ2U}%+`jsTJ+PfWdQ9B0&b^hn5AX{#}yKU$J-IkkS8s_6eDuo*;z0tV6_kU)6~5_aAM2Da?8pxWWi%-dgp@c*n5}G&3*C{cd`m_9>`TGKj|8T6f3_s!cEZ~M!oI5;9=%6EYBn4n>4>P`L5QtUmQL9w9I%uWL zJWTnOQ9Y!*rm`BzEHH!(FhI{DORB=mp@r`tX{!%u*uwZtIXqm-1oEiW^geJN`^m#n zj^bz<0f3=1f<+ZLKJ&^5W)?-2owJjRpkve|FM1Fv4t$Ma>7vd(d=P>Me$k_SSM1dt ze-QnKa00VSP(yU-rSeD)v zA-)8cTybl-BWc5jX7P;1*0ONRxUh!3bLq%XYR&3c(*fPF)b6wi^p&1hpO{3@4}qbu zQp1mkNHtnKmIP4FVTxVG%q9qSw5Uy5>WLAYaHvr*(SQqX!;l%K}%V9Dc?cT z+!Ik9l;Nix0@cCv+$jL``HblYu6WQzq&-%JnL`WH@WPo|42lqu_89hFKPXlaVli-c ztik5s)smI1_99pqx}%MZZcV~{572@;;V3tPL5mzzC%ZOWJwz0tyr0jfs%M6Ef}Cfg z94YT|S&d{C7{Ue^pl6XKRbl1O!gr9gibMK(8-B#!`NA}jVryy0y>wBW(Qyw(Ywi=! z&sn%da3`T*!7_zM_kx|2`0*%=r{zpj@-?|7a!D>Xtv9k z8Fc3T12vKgx0ol)J%1v6D#A>eJr$6yGsKil{CHAH-h#W7&Ij#ho(!V zYX<$1Gc<0WYS1b2+elBCIkYg1!^7DQ>J|lvNPGMj!o<(8IWuog-TD|C;4|2(WW~0s zrfw1f>pSx1acdd5HmfTy2(dQ+S&OPRZq|5*IhPrF`W9|> z2fng(#baqY@}Bmy4BHk!sC%e|Rdy1AA2ARBA{Dm6;ePDKh(3ryc)Q)?eJ-53F)+54 z4Q*xb(+V)KWqVUg`mDE%L^TeHbf#j&h zYcOFhM~a79jxm4$LYxcGm}da2VhkXF075+1!&49)eF0ewBcaTjQ8^~|I>6D5q`M+Y z5~Zwa4=hVrHWLtxQ%^HBKjoBaabNLNVyub3?IIl?*Ke=bBraf_*1v`HM}_Slt-J zfGSCoS;#B}FX4&I8u4!r=Mum;fm*RyU~VXJD(1h*P##o%3^X6q+Y(}X)JS!!gV|QX zgVtZwgL*IOG>4-);vDcrdFKO}9xOm6U7~Atm(HfrV;*#TuG}EY!1k7%= zpFET}li{o^QXf=n?+YuO^`OqitQu33K4-V*ARZ(LA@4*2GN7|$A0)blT>eOLu4$vy z9{665VX3_z$FC_p!4r9SBvHv8c6*2WJ@fn7K~zheo}{9cT2SjLD?wFI_A|FUKa=F< zdo-(Yp;$SpxX-LghI=+O;!&72%FcSY_3zB3#8D5Ufg;wB)rmJux+LmJRKJB$nt#NetpKw~u%$x^$S zNq()O`8FdeBj-gcNG0_M3(v7B%u@O+qh@}|`Hw&sU@C5OhMN=P)vJxQh$O)0`ppHU7NZVso404j1 zXF)t7gODl`Asry391Y?`5$TPdyJIbQGWd4Migk5LPAUQy@904$V66%z#Z)9ok8&fp zZh9;t-2}{@q4Tk0t%m98*P-CbN*SphX|u3+{8nw>f(E(xOm= zPaYXKIi8$Kr3uEcWV)(zugcw=xcHz*5z`gBDqBbjr6Waxk|R@k?|c}X5|ji4t70H2 zl|?7ht?6TIU@B$A(u{=J;}&NlxLO0A&5~O5r+J{FGx!e`h3eho>>?mQ(%&}6?HJ@F zm1&AupxwRxjL`rFz)a!Ls0^G-F}=h|(l7692w_yVsxGv{X|kvu<+$ljN*DV1w}bXk_fBXiqBiLzAPOz{)ol2#pR9_H2Rj!vamAFP#J zRS8yJqVcK~<-p-t=uV={$eI=%Op%sG)y~m&90{B8IY%cL{v%9%+(cC@Wxh6LeWFH` zqS^EwnuXA5`ot(48Y#NZ;MgIzp@mHtjR;GxUDPbB5r`gHPXfO)7`mz#61mc+!KSNX z8WOI$U-;E;Jr+RS+QF+EHd6D#;L~m|;m)th@ zpam;e#t+8zn5HRxR|-;sjN`1fFHcaXG9}(x(*VF|T~T%(iBr%TRpX;^zMK=YM|vEZ zL8H)v=~~5fevB%`cE*(pO*bW(GzcLn_Q?2%s9tRsqmb{d_yw=Wx^WA530kH1Ra#b^ za-VkwDxXs`d~HVDduFUT810UCM8xM+QoAdL{0j2Qd*ZYe=qfeRZgOqq)e=&PquQW1 zUp>rZyal&bI)#2Pn{to4>?f-ar6-~R7EOv7s6mu*KBF1(6*mO za-W6IsX^xdTr?XxDQHc|9UCByeS{4Ei&Wy4Rj{O6W=lhbojsy>?0%yL5mH!dowCS7 zuBd@H`Un}SB9*!ezrm)i+0sy@zaMRHIW?O2kG{l_@k9Gm7^6o!?Iy#lS#6R zdoA*C`a-|@S^~>7!R$&{`nighcwM(_h8^}mC+6s06YdEdESUb!_{Yr%PpD`;(M6pVnztXG%fS-Y~SC@yPq% zoT7mPW6f7>iQbOMw&7z?<+A;l(`B@~aY$J@q7yYKtBXVD-FN0EGt8c^S$k)R?cpP0 zPe6V$)%aWeTfid{_-!~`0kEgS+cqx?6CW$EwJX=f_chnw?ykq`PG4>Ka763axZKk= zdTi)@yq>ax6K}8qGVDK5>S_sK)IUC=znte|qBffJXt?zLA+HGa^E>1F*ctbk`Mqmd z*FAG%?ud3}e%yO&sPOIb7$UR5w(x^=Fb55aCdR==vRlRgtf6O9}* zo87azS$py_taT=R}Hp8iVXN5=P_EPdaThFigZ@8Jo{5Zc~JWl2FJ z33&F4Pk0r&?U#-BV%oyR+M8?1zvI{rt-{eAt8SX}u_73(*9dEQT2)e-Tf~U+HFLaM z?6xRs6Y@RZ)n01pEK5=zTeOKwJ^sDA0RgZEfKC5>qkd@cOPTl*@I~g&2l(FimZ`qH zzxF4v02lxQV6uS49F2i=9hl1uFdm^uR`?TA5T4@FSnuv>XkF5 z$npQI#OtO1O8MRk6%q$Ll~eNT(3n7*B^~1m?W$m87SSeo$iOs;236=w>vlojBZ1aU zIfzAidgXl~;!^0@Syi!KXjDd6cXGLN2$3&*y4so}YZw2QKa3|`zqND=0dG89A+89J z_S*SdC9U}tB?dv&@VFu0zWta?a8Q{xOFmBemR3T=^PMu$XwUT5*vAB0?Q>o!LDp7B zJ?ziVn;%t(NLF6?Q-XVtC>7Jydt~NXTtpOyBg$GtBE2VVg;3ej?ks%rv}UXpf$yIW zmYPC*7R%?X#)5BON;AIQZqfKHlf?Frr{UjLJNi5$pC1Z6Euaw_DDc{>|Hv1)War%H zS+0mh57E>5Tpqs-b8-JX9)ETzMo59T3~H;xk;W2JRFTi@Jz>ieMg~C(U#w%ZTkR!; zzp($=yh4+&2zIFUV11T#qBXBO`SoJ*!o~H7<48N>ht?f>4snD%T{+wyT>AA%<+rW# z>P2Zqd#nQnGO8h}Wa->lE`N;4lPMP7M?^EjWO&ojZE6{`tlg6L*KDbMNGhm6^!(s` zzGf2rTq~u#&@i@t@T_$N@0H{Kz!!LuoaB!UElB$9NAtsRHaYHM-RjWincBpOLQ+G-}3&Q8lbi>ZTNsbo;;JFgkRZ z)}0d>(WXJ|bvQ{qH_IcUSoh#86B7ZO7sT01l!~lYvmfa-LKBKa&3Rd4 zS#C~mPO;`ejECvhYu;oBy%9?-;LAwu5q%6?UHzk%v}J1v(2UDdg=%JH6=z#|pI z66M>RKge%Cx?RJd^xZEBwH*oi{r%f4n$hKGEyhPSn*sQSFwRn2J7y?yW# zxgbEp{v(w;QYwSj;+o93xYjJCQ))>Sal{^jy;CfbFC)ccy&3rSe5FMqu`JJM_ghPw zCC4e`+fRn-uTh)fJo1_*>C_5BG`cLz?2$S|jy{*F63|iM)09laeJN_a5<*=|yN(8T zNWh-8Qm1~5RW-=xv+|VI>>!>b+%v?@NKKNyb`2CM~);z1<ep?uwqf30iWLB$t-kHo&N`MLP-oj2((5&KC~ z#P?C&Y@s zeWfVuypqXk>({|4N%kvwb((M36&b5Z*B$#YkhzG$l_9Zcr}{3yNIG*yz{f39-_r+a zz-K8Z3DJv3+AwJGF={Y{4T#Uha|kerD73}P=g7!WRXRH0sA9Ozk3L!k$tEqy+; z9toV7H0>mgF9?x=9O0Ea=fbFTq+pLQA}Nea)`-cEIvWyD1|h1Fh)k?JMxpx|twf<= zNj?`+xLZhzMUXe36lvN2Px^k{rCi-YLT72Q7LO+IoS^0rBiGOr zv01J@_L(w3V2e32S!F9OCAq<@DcR(L`Q)QjYG!g`GO2~tUs9!G?*7eGY+4Jg>&nTF zu=fii%wdW$GEA3>ggh-2q;WyW@?)cvNW=%pxwiIUT#G7SPSqw-JB-I`-`V_^TY`9{o7Sxs`@D#+}Rr&DroQWKEz?;u?Dq_FzW)onJAjz`Zy3Wh&Bx zreE6{sOHjsnnwp{h=ys?Os7KN3eMcT6N)W`Rm?v{)(#`AopUM*CiPD;;;4NV}}vrU%00@Z4V-FG37 z2i&K?Gx#WYfc@^vfoHq3$Gs%fR+rD_;cg$5%aV>{#6LbHRu4aH>AEX6wA#zXMfxfu z+7D&Fy8rR8RR@!-E%_}^_Yy-MzTZxt=`Kfd!XAF9OMAO(Uk|gN($Z$+;Ft^La9uxG z_ms=tvwp5RW7>W?n}A z#$X_a%G(L2&t=Vf9riiwYuLkAo%;McbP}XRW#_s8UKXHtlw_en}Ps% z7YO~(e)sev1l|1@J=Z&N`F=dfEc*HEZ)?AR-6eDi(l1Os`9P6=(a1E@PoO!s`^8BQ zq@PH1Ouk?{=GZ?41Yn(E-NA(Q6}+jx-reds=8 zC+pIFXYmL0Q3l!Ts+rnT(5Jz!S$CTyqU`?&(<;7 z`vhF08iP{<`is!b<*j*oTLfCv(+PSv*G-DTGS48(| z*Vw}z^|&WR((&G+iq^HK&ex@T&--?KAg_Aeo8A^vY;nbxP~t!WUsta4Pc5x<`tp6V z3^mIvtL$>hMGPO$)CwwO^D|pgX=RmHQDs$CR}-_^>Uvjw?`x>BrkZ2*p_bSVy-b|{ zYx>mZzVx;BI_j*e?t1F2ul~3VG}utXjWpU=<4rW#RMXA$t=V|ZHQ)CZT1+XGTDnZx zwDfWrnOWI=G2ftuY1!-!r_1f}`uu=|GA^Xjbi=f4$MyUmjN&BC@}jKjrtSJ+oaSZS z_T#*67I+{~7#xwcEE0vrU~%|52}BZ^LamEd2c5xWm1Ec4RU@Oi0O9iZ(S05F>8Gg` zQ?Is;ZvB8zq^B=#05qu2(8$=t)Xdz%(kff_{_1WUTRVG)9FB6*yW#9jTsOn+M);&h z87j|Jk-KB?^a(gG#t%M4=`X@){>J>Wg zm1NH>h?1CcAF1HFFs|{^crEZER4RGOD1>DP@M|dhqaY|B} z#Rikb=Aht)IG$DZ;nJ0nv5Bdfxdqhp?@}NDAs9h1oFFNhVL4tX5=*2qxk9N@YqX5h2bIBO zu{p>Hge;j{p+upT1l+!(vHf#KS&o_ zxc0v%+$*qB1x4;W5>P`QzR))nU`vo-3aYYxNTJDZbL||QToOfTDQ;89`=iTf)uvrm zhfZC(<@D&)=TB4inQZg@t`Kb_&Y4bLwbDB@r~t zgLOU-7?OH%g=(u%F!Xac!l%;N`i#S4{^yDdgC`I>?}AxJ9Cgedd!2TMN--odg-W9{ zm@GDD>P*fTB%`}dWpag5rA}FcjQgSWhN?Gq$|e)jcKU2)Zei(|F|7Yd&t15zW>+Lt z?{1l_wEEt9%MjWi!S(3YWtZem3-M5=p*?aNG+@V`>!;ca09f1D+SxleIspO@f)Nz! z1Wu3?&9EFV%o2k4+(++y_8=0MD3es#SSph%lq%GzZc|&g?ws;=2EiV8I);}~TU0_| zDb1+lkFQlud6lZ52tWkIa01Et7norPjz)cx&KR7fFl_Q+|ITE#SZ#KP)8+O+pfETB zi9$1j|64qPNFr0HG&+OHVsp4WSnIz52t|7OV$i_Q$k@cx%-q7#%G$=(&fdY%$vNbG zupic2ahTnPj9Ln;lOq#L`srB=t>=vtXqo(>gf+~$fQoVw=OdTHLmwo%iGHQG*d3NV zZRjuOzdM_jMwI=NxomBRmNyT=%kSaV_Rcho?Obg(aC#nbm!$K)%8k2$8{(0pElHa? z4K-tA04PF7wG1&5PHVi8AGK_A8|P-TvFmivM#cD9%@(JkMw+~qo`o=T>ln~#HRM}E zqwAlB_-Ga8mK5wqD%CAH_GgfM~vC>tc)r)oF)91wZni!3aW*bdQ*q81H(TMly>aC%IhdXOdaK^1Sw}t%^EZrI7Z@!KE53Jx*xg%hSsq`2%5{diTGIQcjvFn@P62vcSrsm zWAR~;3p&k?+*Ex(mJT1+1D}~Fv98-}OPeW;o23OgWYfSH5P$nf2jhtHcF9Xb-=^CU zsJV?xJZA?e3;U@0@iOmjZ3cL0QHrwW+Kl!{?3O5t>Lht=7;nq&$!B-u?u_#x0s1}4 zknj-Dg%eies1Hw#C}pN0d$LJrmlUiS@`DB6MA2^Sp$+h#YGvFlzhPX1ZWkGQ!ipq%_un@?{NX9CSI4SbN*Yqs!hB{D0v zl3D6L!U-mq+MEb?ks6k^GAo}+C-Vv3PQtz@laCuj+=`$`3Ui2O2nN@A1a7V%Tc0Cd zQMVH87B=yG616{OhL&y0>91GVl=6Hg>!_%2-L#<6Q=eitxNa)B*Tue56 z8htT(IMq=@6rk_%?C1CjA=PgOb+veH@-4~am6n@ofu~U}8uZaa8nv|Fmy@Kcg=LLf?L!6`Vc0lB>{>eg&0h ziYTPVArVK;R=H^;gv(CvzkDp}E8sdlJQ!cHGcQNBd7O))xJd3D%@{$sGPEwsr!!SV z9gn?nj>;>m1wZ;KZnt?X%DgQcGoiyV27XGsuw%Q;bM97?FwxKL^oKby;tcZ@O*8#r zo{VCdc2l}IpdsY$%-Zrax{rwhRyL=I3P(`Pz!W$^0R&y61wak10leF{xE#NSX_2y> zyAzYjBTcxJX`rsc5fmFLk4R8mTaa~S!KyeyapR?|xT$!qxc%6+d6B~p?Xc`L%K0&BJ8EFn#_RPb zYIk*|!?-x2)O5~~pX^x5(aB%l))uza4ka6Qi(1E%AOwoxx&Vs1tC3KsLbVk+N_Q@T z!0_-zH&=T)8V3Ucb!Iw=Hr%$81N7YQw~gh&5$GDHp(sUmi*9#jGEA_$`MnVcrP!(p z?VjO0j8Dv=vWBgC>h-?dQ*U>(!;<4@Rix26R_XHX()Ldw;czfrTknsTqa6a`JKI1G z4$>o^x)eX8{I{;#P5N_?)N(JW_3K;^zF(8M zSs{w`L4@R@6QYrADm<*JRO4z9j1{+{hx9z8{+4%T5B(c-$`|U2#-XGC*19zf!`9JKr0Rb>4;pcFaP}x51>+cMx^`tP^?k75;!k*8ObqSLp^+FSYYXrhSCg9(HUU z?U5xS3&aZ=XrSpP5^TB$)^rao!MqXmNOa9os8a*jN-XhDrIl7vxGFBhSs53`T#VW0 zKNSs#c%rFc1WKf=H;t&F2?E(uQKk2^_aIq^)8QNJut)~FQSo)$L z3C4RMD<-RnCY!1rO)8DY_ON5?W%n#PXZvl(mc&qN+G*tL9jvkEOdD`V?OPd0o3Lih z#8>tK#I`D}Y8UML#sVb+66|~FDpY9U68Jy>3RuQPqWV!FBIb3Cm^t0Cn}UjzfK{~_ zuXY0Bd*$b&d{AUnq9WyV{S(keS;k}(-wNe2dZ?@BvW>ieb&jXP=%5~&U6WOR842tA ztw}R|2K%4t7|?-lQGY(P*#P6P!&sVpr1}<12WdQ)f<63HI&vGec(gmL9t;t5`FDr zaNBN&m`oB=sijf$71aO9(?bd_ErR)7TSHf3IBkrd>hBr!=T;Lu-Xm++1B-IBZQB4T zr+h$O2yy5;to}*6iC2i9Oc})$Z6=*+c%<+(9^2DBv_$BNdeqx^edcbFa3g2|f7bC5 zZ|j0%1fzh7@<&iU(*Wb@#+ZQ>7{>%qq8}3EPn5(sx1{=$x|nz$qu7FIt33)x{~~be zV{7ZDDTcR0kC(MUxuRRfyqjyb7UxV7mM(O_{UK`209^zNeYqy8cQqcx2u8;kRDyn4 zJXH^43Nq1#pX-!$p(?{rl*c$)iKvk=X{5LjAJ**6=^ZEHx+dXr{nw;e3J(_fIzvXY zo+)L|d3RA71(n<@#$T(Cl85RnRMvk>+N6jNd>hv>*<&(Q!q0Wxx+eB93T}BGV==bc zrVx$C&#=yo0NrdyB&{+tX}!p{w!o5B52 znTS(T)55zZL1QY474vHBg{l!ZAT#49gnH9%QZlz+p-$XF>@IeP5||r!)3p#zE4) zJaE`)dn$}lcBiuVihgaSo*i`9QKzt$20F}9n%O}u@vpJoUvz1*h~K6>1DJ?B_8caW zDbO&KC{w2p8Lt-G&I` zg6ZZ1F;!Hp0YHRtQKtz&gmF=)2|$E#QKtz&1$CCN#ZSERI?tIfN=44QC`K4#iWycA zUn6}TRV=WM%yo>IVTu*Zv4+*LF)d<*`7WkGZu_pM9+mHxJyA&pi$fLFP^D$#C&j9!Ib2p43iFj6f*cp&l!0U-B5 zo(Uv?BPEyYyn6r&IN(8E{}WCCt^sfW0eAo) zzzqNa0D$Lh$)>xM9PV^5c+#Hp;E-cj zAMH1rM7Rd_Nldrxtb1~1XHAH6aC7Z=`~RA4XRl8wcq_G@MvTCp?C86iy*b#S7q zm>1`xvP$If+IF!#psm`?!WF_++Ai??jv-WoeT10LBWaRHtD53VByWM61iQn9|pp^it*EUgkg}*Z7=ck$z|D zzLnC;rlSCWd*hJA?Ze`Zj5#tuVJLDa0tghAmxC}?IyWJN9hN*pL9+=8OQ~!hi84YU zw`>%Uj*ZWfWfc*!P`BAsu$W-06^a-mP^8PqA2I)Yu9%jBQ%0GUC|6w0dqITq8CnKd zA+b!C-J(95pJbDpG20H>e(RlKVM^RG@W+?)^69LyY~FE#gc-?OM)3@7mG0-vO{P~| z{$h(<^HGhtWgJFurrETLIIU#k8bIS_dFXc^s4DsFgN2Sh(hg;R{$u;@Bvtbt&9{FH zb3PtIK8=Cf<=g5}4lh5^jbXQU7U%+Pn#MbSu?5|U@A1LEqEfM(P+ z_29AK+s(JC@>^|qQiiCX@aD%Sv)QL)ILcphJLuD2o&Ene@qyHr<`&|j44 t@cOZz)gg1n%6_^lnIp-fAVKb>tBR5wBTB$|@h$Y0m8PrD{hz%0I{_`GMb`iT literal 0 HcmV?d00001 diff --git a/src/resources/mail.php b/src/resources/mail.php new file mode 100644 index 0000000..bd276da --- /dev/null +++ b/src/resources/mail.php @@ -0,0 +1,69 @@ + $value ) { + if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { + $body .= " + " . ( ($c = !$c) ? '':'' ) . " + $key + $value + + "; + } +} + +$body = "$body
"; + +// Настройки PHPMailer +$mail = new PHPMailer\PHPMailer\PHPMailer(); + +try { + $mail->isSMTP(); + $mail->CharSet = "UTF-8"; + $mail->SMTPAuth = true; + + // Настройки вашей почты + $mail->Host = 'smtp.gmail.com'; // SMTP сервера вашей почты + $mail->Username = ''; // Логин на почте + $mail->Password = ''; // Пароль на почте + $mail->SMTPSecure = 'ssl'; + $mail->Port = 465; + + $mail->setFrom('', 'Заявка с вашего сайта'); // Адрес самой почты и имя отправителя + + // Получатель письма + $mail->addAddress(''); + + // Прикрипление файлов к письму + if (!empty($file['name'][0])) { + for ($ct = 0; $ct < count($file['tmp_name']); $ct++) { + $uploadfile = tempnam(sys_get_temp_dir(), sha1($file['name'][$ct])); + $filename = $file['name'][$ct]; + if (move_uploaded_file($file['tmp_name'][$ct], $uploadfile)) { + $mail->addAttachment($uploadfile, $filename); + $rfile[] = "Файл $filename прикреплён"; + } else { + $rfile[] = "Не удалось прикрепить файл $filename"; + } + } + } + + // Отправка сообщения + $mail->isHTML(true); + $mail->Subject = $title; + $mail->Body = $body; + + $mail->send(); + +} catch (Exception $e) { + $status = "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}"; +} diff --git a/src/resources/phpmailer/Exception.php b/src/resources/phpmailer/Exception.php new file mode 100644 index 0000000..52eaf95 --- /dev/null +++ b/src/resources/phpmailer/Exception.php @@ -0,0 +1,40 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer exception handler. + * + * @author Marcus Bointon + */ +class Exception extends \Exception +{ + /** + * Prettify error message output. + * + * @return string + */ + public function errorMessage() + { + return '' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "
\n"; + } +} diff --git a/src/resources/phpmailer/PHPMailer.php b/src/resources/phpmailer/PHPMailer.php new file mode 100644 index 0000000..e1b0c88 --- /dev/null +++ b/src/resources/phpmailer/PHPMailer.php @@ -0,0 +1,5041 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer - PHP email creation and transport class. + * + * @author Marcus Bointon (Synchro/coolbru) + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + */ +class PHPMailer +{ + const CHARSET_ASCII = 'us-ascii'; + const CHARSET_ISO88591 = 'iso-8859-1'; + const CHARSET_UTF8 = 'utf-8'; + + const CONTENT_TYPE_PLAINTEXT = 'text/plain'; + const CONTENT_TYPE_TEXT_CALENDAR = 'text/calendar'; + const CONTENT_TYPE_TEXT_HTML = 'text/html'; + const CONTENT_TYPE_MULTIPART_ALTERNATIVE = 'multipart/alternative'; + const CONTENT_TYPE_MULTIPART_MIXED = 'multipart/mixed'; + const CONTENT_TYPE_MULTIPART_RELATED = 'multipart/related'; + + const ENCODING_7BIT = '7bit'; + const ENCODING_8BIT = '8bit'; + const ENCODING_BASE64 = 'base64'; + const ENCODING_BINARY = 'binary'; + const ENCODING_QUOTED_PRINTABLE = 'quoted-printable'; + + const ENCRYPTION_STARTTLS = 'tls'; + const ENCRYPTION_SMTPS = 'ssl'; + + const ICAL_METHOD_REQUEST = 'REQUEST'; + const ICAL_METHOD_PUBLISH = 'PUBLISH'; + const ICAL_METHOD_REPLY = 'REPLY'; + const ICAL_METHOD_ADD = 'ADD'; + const ICAL_METHOD_CANCEL = 'CANCEL'; + const ICAL_METHOD_REFRESH = 'REFRESH'; + const ICAL_METHOD_COUNTER = 'COUNTER'; + const ICAL_METHOD_DECLINECOUNTER = 'DECLINECOUNTER'; + + /** + * Email priority. + * Options: null (default), 1 = High, 3 = Normal, 5 = low. + * When null, the header is not set at all. + * + * @var int|null + */ + public $Priority; + + /** + * The character set of the message. + * + * @var string + */ + public $CharSet = self::CHARSET_ISO88591; + + /** + * The MIME Content-type of the message. + * + * @var string + */ + public $ContentType = self::CONTENT_TYPE_PLAINTEXT; + + /** + * The message encoding. + * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". + * + * @var string + */ + public $Encoding = self::ENCODING_8BIT; + + /** + * Holds the most recent mailer error message. + * + * @var string + */ + public $ErrorInfo = ''; + + /** + * The From email address for the message. + * + * @var string + */ + public $From = ''; + + /** + * The From name of the message. + * + * @var string + */ + public $FromName = ''; + + /** + * The envelope sender of the message. + * This will usually be turned into a Return-Path header by the receiver, + * and is the address that bounces will be sent to. + * If not empty, will be passed via `-f` to sendmail or as the 'MAIL FROM' value over SMTP. + * + * @var string + */ + public $Sender = ''; + + /** + * The Subject of the message. + * + * @var string + */ + public $Subject = ''; + + /** + * An HTML or plain text message body. + * If HTML then call isHTML(true). + * + * @var string + */ + public $Body = ''; + + /** + * The plain-text message body. + * This body can be read by mail clients that do not have HTML email + * capability such as mutt & Eudora. + * Clients that can read HTML will view the normal Body. + * + * @var string + */ + public $AltBody = ''; + + /** + * An iCal message part body. + * Only supported in simple alt or alt_inline message types + * To generate iCal event structures, use classes like EasyPeasyICS or iCalcreator. + * + * @see http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ + * @see http://kigkonsult.se/iCalcreator/ + * + * @var string + */ + public $Ical = ''; + + /** + * Value-array of "method" in Contenttype header "text/calendar" + * + * @var string[] + */ + protected static $IcalMethods = [ + self::ICAL_METHOD_REQUEST, + self::ICAL_METHOD_PUBLISH, + self::ICAL_METHOD_REPLY, + self::ICAL_METHOD_ADD, + self::ICAL_METHOD_CANCEL, + self::ICAL_METHOD_REFRESH, + self::ICAL_METHOD_COUNTER, + self::ICAL_METHOD_DECLINECOUNTER, + ]; + + /** + * The complete compiled MIME message body. + * + * @var string + */ + protected $MIMEBody = ''; + + /** + * The complete compiled MIME message headers. + * + * @var string + */ + protected $MIMEHeader = ''; + + /** + * Extra headers that createHeader() doesn't fold in. + * + * @var string + */ + protected $mailHeader = ''; + + /** + * Word-wrap the message body to this number of chars. + * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. + * + * @see static::STD_LINE_LENGTH + * + * @var int + */ + public $WordWrap = 0; + + /** + * Which method to use to send mail. + * Options: "mail", "sendmail", or "smtp". + * + * @var string + */ + public $Mailer = 'mail'; + + /** + * The path to the sendmail program. + * + * @var string + */ + public $Sendmail = '/usr/sbin/sendmail'; + + /** + * Whether mail() uses a fully sendmail-compatible MTA. + * One which supports sendmail's "-oi -f" options. + * + * @var bool + */ + public $UseSendmailOptions = true; + + /** + * The email address that a reading confirmation should be sent to, also known as read receipt. + * + * @var string + */ + public $ConfirmReadingTo = ''; + + /** + * The hostname to use in the Message-ID header and as default HELO string. + * If empty, PHPMailer attempts to find one with, in order, + * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value + * 'localhost.localdomain'. + * + * @see PHPMailer::$Helo + * + * @var string + */ + public $Hostname = ''; + + /** + * An ID to be used in the Message-ID header. + * If empty, a unique id will be generated. + * You can set your own, but it must be in the format "", + * as defined in RFC5322 section 3.6.4 or it will be ignored. + * + * @see https://tools.ietf.org/html/rfc5322#section-3.6.4 + * + * @var string + */ + public $MessageID = ''; + + /** + * The message Date to be used in the Date header. + * If empty, the current date will be added. + * + * @var string + */ + public $MessageDate = ''; + + /** + * SMTP hosts. + * Either a single hostname or multiple semicolon-delimited hostnames. + * You can also specify a different port + * for each host by using this format: [hostname:port] + * (e.g. "smtp1.example.com:25;smtp2.example.com"). + * You can also specify encryption type, for example: + * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). + * Hosts will be tried in order. + * + * @var string + */ + public $Host = 'localhost'; + + /** + * The default SMTP server port. + * + * @var int + */ + public $Port = 25; + + /** + * The SMTP HELO/EHLO name used for the SMTP connection. + * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find + * one with the same method described above for $Hostname. + * + * @see PHPMailer::$Hostname + * + * @var string + */ + public $Helo = ''; + + /** + * What kind of encryption to use on the SMTP connection. + * Options: '', static::ENCRYPTION_STARTTLS, or static::ENCRYPTION_SMTPS. + * + * @var string + */ + public $SMTPSecure = ''; + + /** + * Whether to enable TLS encryption automatically if a server supports it, + * even if `SMTPSecure` is not set to 'tls'. + * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. + * + * @var bool + */ + public $SMTPAutoTLS = true; + + /** + * Whether to use SMTP authentication. + * Uses the Username and Password properties. + * + * @see PHPMailer::$Username + * @see PHPMailer::$Password + * + * @var bool + */ + public $SMTPAuth = false; + + /** + * Options array passed to stream_context_create when connecting via SMTP. + * + * @var array + */ + public $SMTPOptions = []; + + /** + * SMTP username. + * + * @var string + */ + public $Username = ''; + + /** + * SMTP password. + * + * @var string + */ + public $Password = ''; + + /** + * SMTP auth type. + * Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2, attempted in that order if not specified. + * + * @var string + */ + public $AuthType = ''; + + /** + * An instance of the PHPMailer OAuth class. + * + * @var OAuth + */ + protected $oauth; + + /** + * The SMTP server timeout in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * + * @var int + */ + public $Timeout = 300; + + /** + * Comma separated list of DSN notifications + * 'NEVER' under no circumstances a DSN must be returned to the sender. + * If you use NEVER all other notifications will be ignored. + * 'SUCCESS' will notify you when your mail has arrived at its destination. + * 'FAILURE' will arrive if an error occurred during delivery. + * 'DELAY' will notify you if there is an unusual delay in delivery, but the actual + * delivery's outcome (success or failure) is not yet decided. + * + * @see https://tools.ietf.org/html/rfc3461 See section 4.1 for more information about NOTIFY + */ + public $dsn = ''; + + /** + * SMTP class debug output mode. + * Debug output level. + * Options: + * @see SMTP::DEBUG_OFF: No output + * @see SMTP::DEBUG_CLIENT: Client messages + * @see SMTP::DEBUG_SERVER: Client and server messages + * @see SMTP::DEBUG_CONNECTION: As SERVER plus connection status + * @see SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed + * + * @see SMTP::$do_debug + * + * @var int + */ + public $SMTPDebug = 0; + + /** + * How to handle debug output. + * Options: + * * `echo` Output plain-text as-is, appropriate for CLI + * * `html` Output escaped, line breaks converted to `
`, appropriate for browser output + * * `error_log` Output to error log as configured in php.ini + * By default PHPMailer will use `echo` if run from a `cli` or `cli-server` SAPI, `html` otherwise. + * Alternatively, you can provide a callable expecting two params: a message string and the debug level: + * + * ```php + * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; + * ``` + * + * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` + * level output is used: + * + * ```php + * $mail->Debugoutput = new myPsr3Logger; + * ``` + * + * @see SMTP::$Debugoutput + * + * @var string|callable|\Psr\Log\LoggerInterface + */ + public $Debugoutput = 'echo'; + + /** + * Whether to keep the SMTP connection open after each message. + * If this is set to true then the connection will remain open after a send, + * and closing the connection will require an explicit call to smtpClose(). + * It's a good idea to use this if you are sending multiple messages as it reduces overhead. + * See the mailing list example for how to use it. + * + * @var bool + */ + public $SMTPKeepAlive = false; + + /** + * Whether to split multiple to addresses into multiple messages + * or send them all in one message. + * Only supported in `mail` and `sendmail` transports, not in SMTP. + * + * @var bool + * + * @deprecated 6.0.0 PHPMailer isn't a mailing list manager! + */ + public $SingleTo = false; + + /** + * Storage for addresses when SingleTo is enabled. + * + * @var array + */ + protected $SingleToArray = []; + + /** + * Whether to generate VERP addresses on send. + * Only applicable when sending via SMTP. + * + * @see https://en.wikipedia.org/wiki/Variable_envelope_return_path + * @see http://www.postfix.org/VERP_README.html Postfix VERP info + * + * @var bool + */ + public $do_verp = false; + + /** + * Whether to allow sending messages with an empty body. + * + * @var bool + */ + public $AllowEmpty = false; + + /** + * DKIM selector. + * + * @var string + */ + public $DKIM_selector = ''; + + /** + * DKIM Identity. + * Usually the email address used as the source of the email. + * + * @var string + */ + public $DKIM_identity = ''; + + /** + * DKIM passphrase. + * Used if your key is encrypted. + * + * @var string + */ + public $DKIM_passphrase = ''; + + /** + * DKIM signing domain name. + * + * @example 'example.com' + * + * @var string + */ + public $DKIM_domain = ''; + + /** + * DKIM Copy header field values for diagnostic use. + * + * @var bool + */ + public $DKIM_copyHeaderFields = true; + + /** + * DKIM Extra signing headers. + * + * @example ['List-Unsubscribe', 'List-Help'] + * + * @var array + */ + public $DKIM_extraHeaders = []; + + /** + * DKIM private key file path. + * + * @var string + */ + public $DKIM_private = ''; + + /** + * DKIM private key string. + * + * If set, takes precedence over `$DKIM_private`. + * + * @var string + */ + public $DKIM_private_string = ''; + + /** + * Callback Action function name. + * + * The function that handles the result of the send email action. + * It is called out by send() for each email sent. + * + * Value can be any php callable: http://www.php.net/is_callable + * + * Parameters: + * bool $result result of the send action + * array $to email addresses of the recipients + * array $cc cc email addresses + * array $bcc bcc email addresses + * string $subject the subject + * string $body the email body + * string $from email address of sender + * string $extra extra information of possible use + * "smtp_transaction_id' => last smtp transaction id + * + * @var string + */ + public $action_function = ''; + + /** + * What to put in the X-Mailer header. + * Options: An empty string for PHPMailer default, whitespace/null for none, or a string to use. + * + * @var string|null + */ + public $XMailer = ''; + + /** + * Which validator to use by default when validating email addresses. + * May be a callable to inject your own validator, but there are several built-in validators. + * The default validator uses PHP's FILTER_VALIDATE_EMAIL filter_var option. + * + * @see PHPMailer::validateAddress() + * + * @var string|callable + */ + public static $validator = 'php'; + + /** + * An instance of the SMTP sender class. + * + * @var SMTP + */ + protected $smtp; + + /** + * The array of 'to' names and addresses. + * + * @var array + */ + protected $to = []; + + /** + * The array of 'cc' names and addresses. + * + * @var array + */ + protected $cc = []; + + /** + * The array of 'bcc' names and addresses. + * + * @var array + */ + protected $bcc = []; + + /** + * The array of reply-to names and addresses. + * + * @var array + */ + protected $ReplyTo = []; + + /** + * An array of all kinds of addresses. + * Includes all of $to, $cc, $bcc. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * + * @var array + */ + protected $all_recipients = []; + + /** + * An array of names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $all_recipients + * and one of $to, $cc, or $bcc. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * @see PHPMailer::$all_recipients + * + * @var array + */ + protected $RecipientsQueue = []; + + /** + * An array of reply-to names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $ReplyTo. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$ReplyTo + * + * @var array + */ + protected $ReplyToQueue = []; + + /** + * The array of attachments. + * + * @var array + */ + protected $attachment = []; + + /** + * The array of custom headers. + * + * @var array + */ + protected $CustomHeader = []; + + /** + * The most recent Message-ID (including angular brackets). + * + * @var string + */ + protected $lastMessageID = ''; + + /** + * The message's MIME type. + * + * @var string + */ + protected $message_type = ''; + + /** + * The array of MIME boundary strings. + * + * @var array + */ + protected $boundary = []; + + /** + * The array of available text strings for the current language. + * + * @var array + */ + protected $language = []; + + /** + * The number of errors encountered. + * + * @var int + */ + protected $error_count = 0; + + /** + * The S/MIME certificate file path. + * + * @var string + */ + protected $sign_cert_file = ''; + + /** + * The S/MIME key file path. + * + * @var string + */ + protected $sign_key_file = ''; + + /** + * The optional S/MIME extra certificates ("CA Chain") file path. + * + * @var string + */ + protected $sign_extracerts_file = ''; + + /** + * The S/MIME password for the key. + * Used only if the key is encrypted. + * + * @var string + */ + protected $sign_key_pass = ''; + + /** + * Whether to throw exceptions for errors. + * + * @var bool + */ + protected $exceptions = false; + + /** + * Unique ID used for message ID and boundaries. + * + * @var string + */ + protected $uniqueid = ''; + + /** + * The PHPMailer Version number. + * + * @var string + */ + const VERSION = '6.5.3'; + + /** + * Error severity: message only, continue processing. + * + * @var int + */ + const STOP_MESSAGE = 0; + + /** + * Error severity: message, likely ok to continue processing. + * + * @var int + */ + const STOP_CONTINUE = 1; + + /** + * Error severity: message, plus full stop, critical error reached. + * + * @var int + */ + const STOP_CRITICAL = 2; + + /** + * The SMTP standard CRLF line break. + * If you want to change line break format, change static::$LE, not this. + */ + const CRLF = "\r\n"; + + /** + * "Folding White Space" a white space string used for line folding. + */ + const FWS = ' '; + + /** + * SMTP RFC standard line ending; Carriage Return, Line Feed. + * + * @var string + */ + protected static $LE = self::CRLF; + + /** + * The maximum line length supported by mail(). + * + * Background: mail() will sometimes corrupt messages + * with headers headers longer than 65 chars, see #818. + * + * @var int + */ + const MAIL_MAX_LINE_LENGTH = 63; + + /** + * The maximum line length allowed by RFC 2822 section 2.1.1. + * + * @var int + */ + const MAX_LINE_LENGTH = 998; + + /** + * The lower maximum line length allowed by RFC 2822 section 2.1.1. + * This length does NOT include the line break + * 76 means that lines will be 77 or 78 chars depending on whether + * the line break format is LF or CRLF; both are valid. + * + * @var int + */ + const STD_LINE_LENGTH = 76; + + /** + * Constructor. + * + * @param bool $exceptions Should we throw external exceptions? + */ + public function __construct($exceptions = null) + { + if (null !== $exceptions) { + $this->exceptions = (bool) $exceptions; + } + //Pick an appropriate debug output format automatically + $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html'); + } + + /** + * Destructor. + */ + public function __destruct() + { + //Close any open SMTP connection nicely + $this->smtpClose(); + } + + /** + * Call mail() in a safe_mode-aware fashion. + * Also, unless sendmail_path points to sendmail (or something that + * claims to be sendmail), don't pass params (not a perfect fix, + * but it will do). + * + * @param string $to To + * @param string $subject Subject + * @param string $body Message Body + * @param string $header Additional Header(s) + * @param string|null $params Params + * + * @return bool + */ + private function mailPassthru($to, $subject, $body, $header, $params) + { + //Check overloading of mail function to avoid double-encoding + if (ini_get('mbstring.func_overload') & 1) { + $subject = $this->secureHeader($subject); + } else { + $subject = $this->encodeHeader($this->secureHeader($subject)); + } + //Calling mail() with null params breaks + $this->edebug('Sending with mail()'); + $this->edebug('Sendmail path: ' . ini_get('sendmail_path')); + $this->edebug("Envelope sender: {$this->Sender}"); + $this->edebug("To: {$to}"); + $this->edebug("Subject: {$subject}"); + $this->edebug("Headers: {$header}"); + if (!$this->UseSendmailOptions || null === $params) { + $result = @mail($to, $subject, $body, $header); + } else { + $this->edebug("Additional params: {$params}"); + $result = @mail($to, $subject, $body, $header, $params); + } + $this->edebug('Result: ' . ($result ? 'true' : 'false')); + return $result; + } + + /** + * Output debugging info via a user-defined method. + * Only generates output if debug output is enabled. + * + * @see PHPMailer::$Debugoutput + * @see PHPMailer::$SMTPDebug + * + * @param string $str + */ + protected function edebug($str) + { + if ($this->SMTPDebug <= 0) { + return; + } + //Is this a PSR-3 logger? + if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { + $this->Debugoutput->debug($str); + + return; + } + //Avoid clash with built-in function names + if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) { + call_user_func($this->Debugoutput, $str, $this->SMTPDebug); + + return; + } + switch ($this->Debugoutput) { + case 'error_log': + //Don't output, just log + /** @noinspection ForgottenDebugOutputInspection */ + error_log($str); + break; + case 'html': + //Cleans up output a bit for a better looking, HTML-safe output + echo htmlentities( + preg_replace('/[\r\n]+/', '', $str), + ENT_QUOTES, + 'UTF-8' + ), "
\n"; + break; + case 'echo': + default: + //Normalize line breaks + $str = preg_replace('/\r\n|\r/m', "\n", $str); + echo gmdate('Y-m-d H:i:s'), + "\t", + //Trim trailing space + trim( + //Indent for readability, except for trailing break + str_replace( + "\n", + "\n \t ", + trim($str) + ) + ), + "\n"; + } + } + + /** + * Sets message type to HTML or plain. + * + * @param bool $isHtml True for HTML mode + */ + public function isHTML($isHtml = true) + { + if ($isHtml) { + $this->ContentType = static::CONTENT_TYPE_TEXT_HTML; + } else { + $this->ContentType = static::CONTENT_TYPE_PLAINTEXT; + } + } + + /** + * Send messages using SMTP. + */ + public function isSMTP() + { + $this->Mailer = 'smtp'; + } + + /** + * Send messages using PHP's mail() function. + */ + public function isMail() + { + $this->Mailer = 'mail'; + } + + /** + * Send messages using $Sendmail. + */ + public function isSendmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'sendmail')) { + $this->Sendmail = '/usr/sbin/sendmail'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'sendmail'; + } + + /** + * Send messages using qmail. + */ + public function isQmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'qmail')) { + $this->Sendmail = '/var/qmail/bin/qmail-inject'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'qmail'; + } + + /** + * Add a "To" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addAddress($address, $name = '') + { + return $this->addOrEnqueueAnAddress('to', $address, $name); + } + + /** + * Add a "CC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('cc', $address, $name); + } + + /** + * Add a "BCC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addBCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('bcc', $address, $name); + } + + /** + * Add a "Reply-To" address. + * + * @param string $address The email address to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addReplyTo($address, $name = '') + { + return $this->addOrEnqueueAnAddress('Reply-To', $address, $name); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer + * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still + * be modified after calling this function), addition of such addresses is delayed until send(). + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addOrEnqueueAnAddress($kind, $address, $name) + { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + $pos = strrpos($address, '@'); + if (false === $pos) { + //At-sign is missing. + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $params = [$kind, $address, $name]; + //Enqueue addresses with IDN until we know the PHPMailer::$CharSet. + if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) { + if ('Reply-To' !== $kind) { + if (!array_key_exists($address, $this->RecipientsQueue)) { + $this->RecipientsQueue[$address] = $params; + + return true; + } + } elseif (!array_key_exists($address, $this->ReplyToQueue)) { + $this->ReplyToQueue[$address] = $params; + + return true; + } + + return false; + } + + //Immediately add standard addresses without IDN. + return call_user_func_array([$this, 'addAnAddress'], $params); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addAnAddress($kind, $address, $name = '') + { + if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) { + $error_message = sprintf( + '%s: %s', + $this->lang('Invalid recipient kind'), + $kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if (!static::validateAddress($address)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ('Reply-To' !== $kind) { + if (!array_key_exists(strtolower($address), $this->all_recipients)) { + $this->{$kind}[] = [$address, $name]; + $this->all_recipients[strtolower($address)] = true; + + return true; + } + } elseif (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = [$address, $name]; + + return true; + } + + return false; + } + + /** + * Parse and validate a string containing one or more RFC822-style comma-separated email addresses + * of the form "display name