| @@ -0,0 +1,8 @@ | |||||
| # Default ignored files | |||||
| /shelf/ | |||||
| /workspace.xml | |||||
| # Datasource local storage ignored files | |||||
| /dataSources/ | |||||
| /dataSources.local.xml | |||||
| # Editor-based HTTP Client requests | |||||
| /httpRequests/ | |||||
| @@ -0,0 +1,4 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="Encoding" addBOMForNewFiles="with NO BOM" /> | |||||
| </project> | |||||
| @@ -0,0 +1,8 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="ProjectModuleManager"> | |||||
| <modules> | |||||
| <module fileurl="file://$PROJECT_DIR$/.idea/zenitPlatformAtmosSet1.iml" filepath="$PROJECT_DIR$/.idea/zenitPlatformAtmosSet1.iml" /> | |||||
| </modules> | |||||
| </component> | |||||
| </project> | |||||
| @@ -0,0 +1,6 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="PhpProjectSharedConfiguration" php_language_level="7.1"> | |||||
| <option name="suggestChangeDefaultLanguageLevel" value="false" /> | |||||
| </component> | |||||
| </project> | |||||
| @@ -0,0 +1,12 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <module type="WEB_MODULE" version="4"> | |||||
| <component name="NewModuleRootManager"> | |||||
| <content url="file://$MODULE_DIR$"> | |||||
| <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" /> | |||||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="zenit\PlatformAtmosSet1\" /> | |||||
| <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" /> | |||||
| </content> | |||||
| <orderEntry type="inheritedJdk" /> | |||||
| <orderEntry type="sourceFolder" forTests="false" /> | |||||
| </component> | |||||
| </module> | |||||
| @@ -0,0 +1,44 @@ | |||||
| { | |||||
| "name": "zenit/atmos-set-1", | |||||
| "description": "Theme Atmos by Zenit Design", | |||||
| "version": "2.4.1", | |||||
| "type": "shopware-platform-plugin", | |||||
| "license": "proprietary", | |||||
| "authors": [ | |||||
| { | |||||
| "name": "Zenit Design", | |||||
| "homepage": "https://zenit.design", | |||||
| "role": "Manufacturer" | |||||
| } | |||||
| ], | |||||
| "require": { | |||||
| "shopware/core": "^6.3", | |||||
| "shopware/storefront": "^6.3" | |||||
| }, | |||||
| "extra": { | |||||
| "shopware-plugin-class": "zenit\\PlatformAtmosSet1\\zenitPlatformAtmosSet1", | |||||
| "plugin-icon": "src/Resources/config/plugin.png", | |||||
| "copyright": "(c) by Zenit Design", | |||||
| "label": { | |||||
| "de-DE": "Theme Atmos | Pro - Set 1 Diäko", | |||||
| "en-GB": "Theme Atmos | Pro - Set 1 Diäko" | |||||
| }, | |||||
| "description": { | |||||
| "de-DE": "Theme Atmos | Pro - Set 1 Diäko", | |||||
| "en-GB": "Theme Atmos | Pro - Set 1 Diäko" | |||||
| }, | |||||
| "manufacturerLink": { | |||||
| "de-DE": "https://store.shopware.com/zenit-design.html", | |||||
| "en-GB": "https://store.shopware.com/en/zenit-design.html" | |||||
| }, | |||||
| "supportLink": { | |||||
| "de-DE": "https://help.zenit.design", | |||||
| "en-GB": "https://help.zenit.design" | |||||
| } | |||||
| }, | |||||
| "autoload": { | |||||
| "psr-4": { | |||||
| "zenit\\PlatformAtmosSet1\\": "src/" | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,57 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||||
| <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| width="205.523px" height="91px" viewBox="0 0 205.523 91" enable-background="new 0 0 205.523 91" xml:space="preserve"> | |||||
| <g> | |||||
| <path fill="#FFFFFF" d="M11.466,62.599c-1.753-0.841-3.144-2.068-4.173-3.681c-1.026-1.612-1.541-3.472-1.541-5.573 | |||||
| c0-3.461,1.367-6.218,4.102-8.277c2.736-2.056,6.743-3.084,12.025-3.084h8.486v-0.562c0-3.084-0.762-5.305-2.28-6.661 | |||||
| c-1.521-1.355-3.892-2.032-7.118-2.032c-1.776,0-3.354,0.138-4.732,0.42c-1.379,0.281-2.909,0.701-4.591,1.262 | |||||
| c-0.376,0.093-0.68,0.14-0.913,0.14c-0.701,0-1.309-0.257-1.822-0.771c-0.516-0.513-0.77-1.145-0.77-1.892 | |||||
| c0-1.264,0.604-2.15,1.82-2.665c3.974-1.684,8.019-2.525,12.131-2.525c3.227,0,5.949,0.656,8.17,1.963 | |||||
| c2.221,1.309,3.856,3.005,4.908,5.084c1.052,2.081,1.578,4.337,1.578,6.767v19.844c0,0.888-0.315,1.637-0.947,2.244 | |||||
| c-0.631,0.606-1.391,0.912-2.279,0.912c-0.89,0-1.638-0.305-2.243-0.912c-0.607-0.606-0.911-1.355-0.911-2.244v-1.824 | |||||
| c-3.461,3.554-7.855,5.33-13.184,5.33C15.124,63.86,13.219,63.44,11.466,62.599z M25.526,56.744 | |||||
| c1.916-1.005,3.529-2.254,4.838-3.751v-5.891h-7.645c-7.06,0-10.588,1.848-10.588,5.539c0,1.685,0.572,3.041,1.718,4.067 | |||||
| c1.146,1.028,3.051,1.543,5.716,1.543C21.621,58.252,23.609,57.75,25.526,56.744z"/> | |||||
| <path fill="#FFFFFF" d="M48.734,54.606v-21.74h-4.979c-0.374,0-0.688-0.126-0.944-0.384c-0.26-0.257-0.388-0.573-0.388-0.946 | |||||
| c0-0.467,0.211-0.865,0.632-1.193l9.535-9.326c0.42-0.421,0.817-0.631,1.192-0.631c0.374,0,0.689,0.14,0.947,0.42 | |||||
| c0.257,0.282,0.385,0.609,0.385,0.982v5.61h7.924c0.794,0,1.447,0.257,1.963,0.77c0.517,0.514,0.771,1.169,0.771,1.964 | |||||
| c0,0.748-0.256,1.392-0.771,1.928c-0.516,0.538-1.169,0.805-1.963,0.805h-7.924v21.178c0,1.822,0.433,2.979,1.298,3.472 | |||||
| c0.865,0.49,1.95,0.736,3.261,0.736c0.935,0,1.87-0.141,2.806-0.421c0.185-0.046,0.384-0.093,0.594-0.142 | |||||
| c0.211-0.043,0.479-0.068,0.809-0.068c0.653,0,1.237,0.246,1.751,0.734c0.516,0.492,0.771,1.088,0.771,1.789 | |||||
| c0,1.076-0.538,1.894-1.612,2.455c-1.824,0.84-3.763,1.262-5.818,1.262C52.148,63.86,48.734,60.774,48.734,54.606z"/> | |||||
| <path fill="#FFFFFF" d="M74.328,62.599c-0.606-0.605-0.912-1.354-0.912-2.244V30.274c0-0.888,0.306-1.648,0.912-2.28 | |||||
| c0.607-0.631,1.355-0.946,2.245-0.946c0.887,0,1.646,0.315,2.278,0.946c0.63,0.631,0.946,1.392,0.946,2.28v2.875 | |||||
| c1.308-1.87,2.887-3.411,4.733-4.627c1.846-1.216,4.242-1.824,7.188-1.824c2.619,0,4.861,0.702,6.73,2.103 | |||||
| c1.87,1.403,3.203,3.109,3.998,5.12c2.898-4.814,7.198-7.223,12.902-7.223c2.617,0,4.804,0.656,6.557,1.963 | |||||
| c1.753,1.309,3.05,2.994,3.891,5.05c0.844,2.057,1.264,4.206,1.264,6.45v20.195c0,0.888-0.315,1.637-0.946,2.244 | |||||
| c-0.63,0.606-1.392,0.912-2.277,0.912c-0.89,0-1.638-0.305-2.245-0.912c-0.607-0.606-0.91-1.355-0.91-2.244V41.422 | |||||
| c0-3.038-0.538-5.27-1.614-6.696c-1.074-1.426-2.922-2.138-5.538-2.138c-2.385,0-4.36,0.62-5.927,1.859 | |||||
| c-1.565,1.237-2.957,2.862-4.171,4.872v21.036c0,0.889-0.315,1.638-0.946,2.244c-0.631,0.607-1.393,0.912-2.278,0.912 | |||||
| c-0.888,0-1.638-0.304-2.244-0.912c-0.608-0.605-0.913-1.354-0.913-2.244V41.422c0-3.038-0.538-5.27-1.611-6.696 | |||||
| c-1.076-1.426-2.921-2.138-5.54-2.138c-2.384,0-4.359,0.62-5.925,1.859c-1.566,1.237-2.957,2.862-4.172,4.872v21.036 | |||||
| c0,0.889-0.316,1.638-0.946,2.244c-0.631,0.607-1.392,0.912-2.278,0.912C75.684,63.511,74.936,63.207,74.328,62.599z"/> | |||||
| <path fill="#FFFFFF" d="M144.094,61.547c-2.707-1.542-4.803-3.728-6.272-6.557c-1.473-2.826-2.206-6.065-2.206-9.712 | |||||
| c0-3.645,0.733-6.881,2.206-9.711c1.471-2.827,3.565-5.014,6.272-6.557c2.712-1.542,5.866-2.313,9.473-2.313 | |||||
| c3.55,0,6.681,0.771,9.396,2.313c2.709,1.543,4.813,3.729,6.31,6.557c1.496,2.83,2.246,6.066,2.246,9.711 | |||||
| c0,3.647-0.75,6.886-2.246,9.712c-1.496,2.829-3.601,5.015-6.31,6.557c-2.715,1.543-5.846,2.313-9.396,2.313 | |||||
| C149.961,63.86,146.806,63.09,144.094,61.547z M159.067,56.709c1.752-0.888,3.2-2.291,4.351-4.206 | |||||
| c1.144-1.917,1.714-4.35,1.714-7.293c0-2.898-0.57-5.306-1.714-7.223c-1.149-1.917-2.599-3.307-4.351-4.172 | |||||
| c-1.754-0.864-3.588-1.297-5.5-1.297c-1.968,0-3.826,0.434-5.576,1.297c-1.756,0.866-3.189,2.256-4.315,4.172 | |||||
| c-1.119,1.917-1.682,4.324-1.682,7.223c0,2.943,0.563,5.376,1.682,7.293c1.126,1.916,2.561,3.318,4.315,4.206 | |||||
| c1.75,0.888,3.608,1.332,5.576,1.332C155.479,58.041,157.313,57.599,159.067,56.709z"/> | |||||
| <path fill="#FFFFFF" d="M179.224,60.706c-0.79-0.563-1.192-1.333-1.192-2.314c0-0.746,0.258-1.402,0.772-1.963 | |||||
| c0.514-0.562,1.17-0.842,1.968-0.842c0.42,0,0.84,0.096,1.26,0.281c1.493,0.654,2.991,1.169,4.486,1.544 | |||||
| c1.496,0.374,3.181,0.562,5.054,0.562c5.188,0,7.779-1.66,7.779-4.979c0-1.075-0.598-1.894-1.789-2.454 | |||||
| c-1.188-0.563-3.142-1.191-5.854-1.893c-2.76-0.655-5.038-1.334-6.84-2.035c-1.799-0.701-3.342-1.764-4.626-3.19 | |||||
| c-1.287-1.426-1.928-3.306-1.928-5.645c0-3.272,1.18-5.936,3.543-7.993c2.354-2.059,5.735-3.086,10.134-3.086 | |||||
| c3.598,0,6.984,0.585,10.162,1.753c0.658,0.188,1.16,0.539,1.513,1.052c0.346,0.516,0.524,1.051,0.524,1.612 | |||||
| c0,0.749-0.271,1.402-0.809,1.963c-0.539,0.562-1.205,0.842-1.994,0.842c-0.236,0-0.539-0.046-0.914-0.141 | |||||
| c-2.711-0.841-5.377-1.262-7.993-1.262c-2.526,0-4.502,0.456-5.932,1.368c-1.421,0.91-2.137,2.092-2.137,3.54 | |||||
| c0,1.404,0.656,2.431,1.963,3.086c1.311,0.656,3.346,1.286,6.104,1.893c2.758,0.702,5.002,1.392,6.729,2.068 | |||||
| c1.734,0.678,3.215,1.741,4.457,3.19c1.237,1.45,1.858,3.39,1.858,5.819c0,2.994-1.184,5.471-3.54,7.435 | |||||
| c-2.363,1.963-5.695,2.944-9.993,2.944C187.316,63.86,183.06,62.81,179.224,60.706z"/> | |||||
| </g> | |||||
| <rect x="73.738" y="87" fill="#D9AB98" width="53" height="4"/> | |||||
| </svg> | |||||
| @@ -0,0 +1,57 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||||
| <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| width="205.523px" height="91px" viewBox="0 0 205.523 91" enable-background="new 0 0 205.523 91" xml:space="preserve"> | |||||
| <g> | |||||
| <path fill="#333333" d="M11.466,62.599c-1.753-0.841-3.144-2.068-4.173-3.681c-1.026-1.612-1.541-3.472-1.541-5.573 | |||||
| c0-3.461,1.367-6.218,4.102-8.277c2.736-2.056,6.743-3.084,12.025-3.084h8.486v-0.562c0-3.084-0.762-5.305-2.28-6.661 | |||||
| c-1.521-1.355-3.892-2.032-7.118-2.032c-1.776,0-3.354,0.138-4.732,0.42c-1.379,0.281-2.909,0.701-4.591,1.262 | |||||
| c-0.376,0.093-0.68,0.14-0.913,0.14c-0.701,0-1.309-0.257-1.822-0.771c-0.516-0.513-0.77-1.145-0.77-1.892 | |||||
| c0-1.264,0.604-2.15,1.82-2.665c3.974-1.684,8.019-2.525,12.131-2.525c3.227,0,5.949,0.656,8.17,1.963 | |||||
| c2.221,1.309,3.856,3.005,4.908,5.084c1.052,2.081,1.578,4.337,1.578,6.767v19.844c0,0.888-0.315,1.637-0.947,2.244 | |||||
| c-0.631,0.606-1.391,0.912-2.279,0.912c-0.89,0-1.638-0.305-2.243-0.912c-0.607-0.606-0.911-1.355-0.911-2.244v-1.824 | |||||
| c-3.461,3.554-7.855,5.33-13.184,5.33C15.124,63.86,13.219,63.44,11.466,62.599z M25.526,56.744 | |||||
| c1.916-1.005,3.529-2.254,4.838-3.751v-5.891h-7.645c-7.06,0-10.588,1.848-10.588,5.539c0,1.685,0.572,3.041,1.718,4.067 | |||||
| c1.146,1.028,3.051,1.543,5.716,1.543C21.621,58.252,23.609,57.75,25.526,56.744z"/> | |||||
| <path fill="#333333" d="M48.734,54.606v-21.74h-4.979c-0.374,0-0.688-0.126-0.944-0.384c-0.26-0.257-0.388-0.573-0.388-0.946 | |||||
| c0-0.467,0.211-0.865,0.632-1.193l9.535-9.326c0.42-0.421,0.817-0.631,1.192-0.631c0.374,0,0.689,0.14,0.947,0.42 | |||||
| c0.257,0.282,0.385,0.609,0.385,0.982v5.61h7.924c0.794,0,1.447,0.257,1.963,0.77c0.517,0.514,0.771,1.169,0.771,1.964 | |||||
| c0,0.748-0.256,1.392-0.771,1.928c-0.516,0.538-1.169,0.805-1.963,0.805h-7.924v21.178c0,1.822,0.433,2.979,1.298,3.472 | |||||
| c0.865,0.49,1.95,0.736,3.261,0.736c0.935,0,1.87-0.141,2.806-0.421c0.185-0.046,0.384-0.093,0.594-0.142 | |||||
| c0.211-0.043,0.479-0.068,0.809-0.068c0.653,0,1.237,0.246,1.751,0.734c0.516,0.492,0.771,1.088,0.771,1.789 | |||||
| c0,1.076-0.538,1.894-1.612,2.455c-1.824,0.84-3.763,1.262-5.818,1.262C52.148,63.86,48.734,60.774,48.734,54.606z"/> | |||||
| <path fill="#333333" d="M74.328,62.599c-0.606-0.605-0.912-1.354-0.912-2.244V30.274c0-0.888,0.306-1.648,0.912-2.28 | |||||
| c0.607-0.631,1.355-0.946,2.245-0.946c0.887,0,1.646,0.315,2.278,0.946c0.63,0.631,0.946,1.392,0.946,2.28v2.875 | |||||
| c1.308-1.87,2.887-3.411,4.733-4.627c1.846-1.216,4.242-1.824,7.188-1.824c2.619,0,4.861,0.702,6.73,2.103 | |||||
| c1.87,1.403,3.203,3.109,3.998,5.12c2.898-4.814,7.198-7.223,12.902-7.223c2.617,0,4.804,0.656,6.557,1.963 | |||||
| c1.753,1.309,3.05,2.994,3.891,5.05c0.844,2.057,1.264,4.206,1.264,6.45v20.195c0,0.888-0.315,1.637-0.946,2.244 | |||||
| c-0.63,0.606-1.392,0.912-2.277,0.912c-0.89,0-1.638-0.305-2.245-0.912c-0.607-0.606-0.91-1.355-0.91-2.244V41.422 | |||||
| c0-3.038-0.538-5.27-1.614-6.696c-1.074-1.426-2.922-2.138-5.538-2.138c-2.385,0-4.36,0.62-5.927,1.859 | |||||
| c-1.565,1.237-2.957,2.862-4.171,4.872v21.036c0,0.889-0.315,1.638-0.946,2.244c-0.631,0.607-1.393,0.912-2.278,0.912 | |||||
| c-0.888,0-1.638-0.304-2.244-0.912c-0.608-0.605-0.913-1.354-0.913-2.244V41.422c0-3.038-0.538-5.27-1.611-6.696 | |||||
| c-1.076-1.426-2.921-2.138-5.54-2.138c-2.384,0-4.359,0.62-5.925,1.859c-1.566,1.237-2.957,2.862-4.172,4.872v21.036 | |||||
| c0,0.889-0.316,1.638-0.946,2.244c-0.631,0.607-1.392,0.912-2.278,0.912C75.684,63.511,74.936,63.207,74.328,62.599z"/> | |||||
| <path fill="#333333" d="M144.094,61.547c-2.707-1.542-4.803-3.728-6.272-6.557c-1.473-2.826-2.206-6.065-2.206-9.712 | |||||
| c0-3.645,0.733-6.881,2.206-9.711c1.471-2.827,3.565-5.014,6.272-6.557c2.712-1.542,5.866-2.313,9.473-2.313 | |||||
| c3.55,0,6.681,0.771,9.396,2.313c2.709,1.543,4.813,3.729,6.31,6.557c1.496,2.83,2.246,6.066,2.246,9.711 | |||||
| c0,3.647-0.75,6.886-2.246,9.712c-1.496,2.829-3.601,5.015-6.31,6.557c-2.715,1.543-5.846,2.313-9.396,2.313 | |||||
| C149.961,63.86,146.806,63.09,144.094,61.547z M159.067,56.709c1.752-0.888,3.2-2.291,4.351-4.206 | |||||
| c1.144-1.917,1.714-4.35,1.714-7.293c0-2.898-0.57-5.306-1.714-7.223c-1.149-1.917-2.599-3.307-4.351-4.172 | |||||
| c-1.754-0.864-3.588-1.297-5.5-1.297c-1.968,0-3.826,0.434-5.576,1.297c-1.756,0.866-3.189,2.256-4.315,4.172 | |||||
| c-1.119,1.917-1.682,4.324-1.682,7.223c0,2.943,0.563,5.376,1.682,7.293c1.126,1.916,2.561,3.318,4.315,4.206 | |||||
| c1.75,0.888,3.608,1.332,5.576,1.332C155.479,58.041,157.313,57.599,159.067,56.709z"/> | |||||
| <path fill="#333333" d="M179.224,60.706c-0.79-0.563-1.192-1.333-1.192-2.314c0-0.746,0.258-1.402,0.772-1.963 | |||||
| c0.514-0.562,1.17-0.842,1.968-0.842c0.42,0,0.84,0.096,1.26,0.281c1.493,0.654,2.991,1.169,4.486,1.544 | |||||
| c1.496,0.374,3.181,0.562,5.054,0.562c5.188,0,7.779-1.66,7.779-4.979c0-1.075-0.598-1.894-1.789-2.454 | |||||
| c-1.188-0.563-3.142-1.191-5.854-1.893c-2.76-0.655-5.038-1.334-6.84-2.035c-1.799-0.701-3.342-1.764-4.626-3.19 | |||||
| c-1.287-1.426-1.928-3.306-1.928-5.645c0-3.272,1.18-5.936,3.543-7.993c2.354-2.059,5.735-3.086,10.134-3.086 | |||||
| c3.598,0,6.984,0.585,10.162,1.753c0.658,0.188,1.16,0.539,1.513,1.052c0.346,0.516,0.524,1.051,0.524,1.612 | |||||
| c0,0.749-0.271,1.402-0.809,1.963c-0.539,0.562-1.205,0.842-1.994,0.842c-0.236,0-0.539-0.046-0.914-0.141 | |||||
| c-2.711-0.841-5.377-1.262-7.993-1.262c-2.526,0-4.502,0.456-5.932,1.368c-1.421,0.91-2.137,2.092-2.137,3.54 | |||||
| c0,1.404,0.656,2.431,1.963,3.086c1.311,0.656,3.346,1.286,6.104,1.893c2.758,0.702,5.002,1.392,6.729,2.068 | |||||
| c1.734,0.678,3.215,1.741,4.457,3.19c1.237,1.45,1.858,3.39,1.858,5.819c0,2.994-1.184,5.471-3.54,7.435 | |||||
| c-2.363,1.963-5.695,2.944-9.993,2.944C187.316,63.86,183.06,62.81,179.224,60.706z"/> | |||||
| </g> | |||||
| <rect x="73.738" y="87" fill="#D9AB98" width="53" height="4"/> | |||||
| </svg> | |||||
| @@ -0,0 +1,118 @@ | |||||
| // spawntree | |||||
| // overwriting date picker function | |||||
| let spwnIncludedDays = [0,2,3,4,5,6]; | |||||
| let spawnDateInputValue = ""; | |||||
| let fp; | |||||
| const inputSameDayDelivery = $("#shippingMethod67f8c7d3ecdb4ad7802bf8eb55c9b13b"); | |||||
| const inputShopPickup = $("#shippingMethod0f44c72f7560450caf061922daeb1602"); | |||||
| const inputDPD = $("#shippingMethod8c6d913e29c14c3cb3c6429724efaab8"); | |||||
| $(document).ready(function() { | |||||
| let dpInput = $(".confirm-delivery-date #dtgs-datepicker-inputfield"); | |||||
| if (dpInput.length) { | |||||
| fp = document.querySelector("#dtgs-datepicker-inputfield")._flatpickr; | |||||
| dpInput.prop('disabled', true); | |||||
| $("<div id='spwn-delivery'><p></p><div class='spwn-delivery--time'></div></div>").insertAfter(".confirm-delivery-date"); | |||||
| fp.config.onChange.push(function() { | |||||
| manipulateDateInputValue(); | |||||
| }); | |||||
| // If Austria and same day delivery is checked change to DPD | |||||
| if ($(".confirm-address-shipping").data("iso") === "AT") { | |||||
| inputDPD.attr('checked', true).trigger("click"); | |||||
| // No same day delivery | |||||
| inputSameDayDelivery.parents(".shipping-method").hide(); | |||||
| // No shop | |||||
| inputShopPickup.parents(".shipping-method").hide(); | |||||
| } | |||||
| // Call changeDelivery | |||||
| $("[name='shippingMethodId']").on('change', () => { | |||||
| changeDelivery(fp); | |||||
| }); | |||||
| changeDelivery(fp); | |||||
| } | |||||
| }); | |||||
| function manipulateDateInputValue() { | |||||
| spawnDateInputValue = $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(); | |||||
| if (inputSameDayDelivery.is(':checked')) { | |||||
| // If same day delivery is checked, select time | |||||
| $("#spwn-delivery .spwn-delivery--time span.active").trigger("click"); | |||||
| } | |||||
| } | |||||
| function changeDelivery(fp) { | |||||
| $("body").on("click", "#spwn-delivery .spwn-delivery--time span", function() { | |||||
| $("#spwn-delivery .spwn-delivery--time span").removeClass("active"); | |||||
| $(this).addClass("active"); | |||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(spawnDateInputValue + " " + $(this).text()); | |||||
| }); | |||||
| if ($(".confirm-address-shipping").data("iso") !== "AT") { | |||||
| if (inputShopPickup.is(':checked')) { | |||||
| // Abholung im Ladengeschäft | |||||
| console.log("Abholung"); | |||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val('Abholung im Ladengeschäft'); | |||||
| $(".confirm-delivery-date").hide(); | |||||
| $("#spwn-delivery p").text("Die bestellten Produkte stehen zur Abholung in unserem Ladengeschäft in Hamburg für Sie bereit."); | |||||
| } else if (inputSameDayDelivery.is(':checked')) { | |||||
| // Abendzustellung | |||||
| console.log("Abendzustellung"); | |||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(''); | |||||
| spwnIncludedDays = [1,2,3,4,5]; | |||||
| setIncludedDays("evening", fp, 0); | |||||
| $("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); | |||||
| $("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); | |||||
| if (spawnDateInputValue === "" || spawnDateInputValue.indexOf("Uhr") === -1) { | |||||
| manipulateDateInputValue(); | |||||
| } | |||||
| } else { | |||||
| // DPD | |||||
| console.log("DPD"); | |||||
| spwnIncludedDays = [2,3,4,5,6]; | |||||
| setIncludedDays("dpd", fp, 1); | |||||
| $("#spwn-delivery p").text("DPD gewählt. Die Zustellung erfolgt zwischen 7 und 13 Uhr."); | |||||
| } | |||||
| } else { | |||||
| console.log("DPD AT"); | |||||
| spwnIncludedDays = [3,4]; | |||||
| setIncludedDays("dpd", fp, 2); | |||||
| $("#spwn-delivery p").text("DPD gewählt. Die Zustellung erfolgt zwischen 7 und 18 Uhr."); | |||||
| } | |||||
| } | |||||
| function setIncludedDays(delivery, fp, addDays) { | |||||
| let spwnDateTemp = new Date(); | |||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); | |||||
| let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); | |||||
| if (delivery === "evening" && spwnTime > 1300) { | |||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | |||||
| } else if (delivery === "dpd" && spwnTime > 1400) { | |||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | |||||
| } | |||||
| let spwnDate = fp.formatDate(spwnDateTemp, "d.m.Y"); | |||||
| fp.set("minDate", spwnDate); | |||||
| fp.set("enable", [ | |||||
| function(date) { | |||||
| let day = date.getDate(); | |||||
| let month = date.getMonth(); | |||||
| month = month + 1; | |||||
| if((String(day)).length===1) | |||||
| day='0'+day; | |||||
| if((String(month)).length===1) | |||||
| month='0'+month; | |||||
| let formattedDate = day + '.' + month + '.' + date.getFullYear(); | |||||
| //Excluded Dates | |||||
| if($.inArray(formattedDate, dtgsDeliveryDateExcludedDates) > -1) { | |||||
| return false; | |||||
| } | |||||
| // Datum auf Bereich Montag = 0, Sonntag = 7 bringen | |||||
| return spwnIncludedDays.indexOf(((date.getDay() + 6) % 7) + 1) !== -1; | |||||
| } | |||||
| ]); | |||||
| } | |||||
| @@ -0,0 +1,7 @@ | |||||
| @import 'layout/header'; | |||||
| @import 'component/card'; | |||||
| @import 'component/cms-block'; | |||||
| @import 'component/cms-element'; | |||||
| @import 'component/product-box'; | |||||
| @import 'page/checkout/cart'; | |||||
| @import 'page/product-detail/product-detail'; | |||||
| @@ -0,0 +1,195 @@ | |||||
| .card-title:not(.cart-table-header) { | |||||
| font-size: 22px; | |||||
| line-height: 24px; | |||||
| color: #222; | |||||
| font-weight: 500; | |||||
| border: none; | |||||
| } | |||||
| .cart-table-header { | |||||
| color: #222; | |||||
| } | |||||
| .card-actions { | |||||
| .btn { | |||||
| font-size: 16px; | |||||
| line-height: 18px; | |||||
| color: $sw-color-brand-primary; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| text-transform: uppercase; | |||||
| letter-spacing: 1px; | |||||
| padding: 14px 30px; | |||||
| &:hover { | |||||
| background-color: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| } | |||||
| .cart-item-img { | |||||
| border: none; | |||||
| padding: 0; | |||||
| object-fit: cover; | |||||
| } | |||||
| .cart-item-remove { | |||||
| .btn { | |||||
| background-color: transparent; | |||||
| border: none; | |||||
| transform: translateY(-8px); | |||||
| .icon { | |||||
| width: 21px; | |||||
| height: 21px; | |||||
| svg { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .cart-offcanvas { | |||||
| .offcanvas-close { | |||||
| min-height: 54px; | |||||
| background: #E9F4FC; | |||||
| border-color: #E9F4FC; | |||||
| color: $sw-color-brand-primary; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-transform: uppercase; | |||||
| .icon { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| } | |||||
| .offcanvas-cart-header { | |||||
| font-size: 44px; | |||||
| font-weight: bold; | |||||
| letter-spacing: 0; | |||||
| line-height: 44px; | |||||
| font-weight: normal; | |||||
| .offcanvas-cart-header-count { | |||||
| color: #222222; | |||||
| font-family: $sw-font-family-base; | |||||
| font-size: 15px; | |||||
| letter-spacing: 0; | |||||
| line-height: 20px; | |||||
| font-weight: normal; | |||||
| } | |||||
| } | |||||
| .offcanvas-cart-items { | |||||
| .spwn-customized-products { | |||||
| margin-bottom: 20px; | |||||
| display: flex; | |||||
| grid-gap: 15px; | |||||
| padding: 14px 18px 1px; | |||||
| border-radius: 3px; | |||||
| background: rgba(#86B04B, 0.15); | |||||
| color: #86B04B; | |||||
| .icon { | |||||
| min-width: 22px; | |||||
| align-self: auto; | |||||
| color: #86B04B; | |||||
| } | |||||
| } | |||||
| .cart-item { | |||||
| &.is-discountable-item { | |||||
| border-radius: 3px; | |||||
| background-color: #E9F4FC; | |||||
| } | |||||
| .cart-item-img { | |||||
| border: none; | |||||
| } | |||||
| .cart-item-remove { | |||||
| .btn-light { | |||||
| border: none; | |||||
| background: transparent; | |||||
| transform: translateY(6px); | |||||
| .icon { | |||||
| width: 24px; | |||||
| height: 24px; | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .spwn-add-customized-products { | |||||
| .spwn-add-customized-products-detail { | |||||
| position: relative; | |||||
| margin: 55px 20px 0; | |||||
| padding: 16px 21px; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| border-radius: 3px; | |||||
| font-size: 16px; | |||||
| font-weight: 500; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-align: center; | |||||
| text-transform: uppercase; | |||||
| color: $sw-color-brand-primary; | |||||
| display: block; | |||||
| &:hover { | |||||
| text-decoration: none; | |||||
| background-color: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| &:before { | |||||
| position: absolute; | |||||
| top: -55px; | |||||
| left: 50%; | |||||
| transform: translateX(-50%); | |||||
| content: ''; | |||||
| display: inline-block; | |||||
| width: 50px; | |||||
| height: 50px; | |||||
| background: linear-gradient($sw-color-brand-primary 0 0), linear-gradient($sw-color-brand-primary 0 0); | |||||
| background-position: center; | |||||
| background-size: 50% 2px, 2px 50%; | |||||
| background-repeat: no-repeat; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .offcanvas-cart-actions { | |||||
| .js-offcanvas-cart-promotion { | |||||
| .form-control { | |||||
| padding-left: 0; | |||||
| border-bottom: 2px solid $sw-color-brand-primary; | |||||
| } | |||||
| .btn { | |||||
| background: transparent; | |||||
| border: none; | |||||
| border-bottom: 2px solid $sw-color-brand-primary; | |||||
| padding-right: 0; | |||||
| .icon { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| } | |||||
| } | |||||
| .btn-primary { | |||||
| margin-top: 36px; | |||||
| background: transparent; | |||||
| color: $sw-color-brand-primary; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1px; | |||||
| line-height: 18px; | |||||
| text-align: center; | |||||
| text-transform: uppercase; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| padding: 12px 12px; | |||||
| &:hover { | |||||
| background: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| .btn-link { | |||||
| margin-top: 20px; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-transform: uppercase; | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,44 @@ | |||||
| .aku-cms-factory-element { | |||||
| height: 100%; | |||||
| .hero-icons { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| grid-gap: 50px; | |||||
| .dicon { | |||||
| width: 100%; | |||||
| max-width: 120px; | |||||
| text-align: center; | |||||
| .icon-title { | |||||
| position: relative; | |||||
| display: inline-block; | |||||
| border: 2px solid #222; | |||||
| padding: 10px 12px; | |||||
| text-align: center; | |||||
| &:before { | |||||
| content: ''; | |||||
| position: absolute; | |||||
| width: 0; | |||||
| height: 0; | |||||
| border-left: 10px solid transparent; | |||||
| border-right: 10px solid transparent; | |||||
| border-top: 10px solid #222; | |||||
| border-bottom: 10px solid transparent; | |||||
| right: 11%; | |||||
| bottom: -21px; | |||||
| } | |||||
| &:after { | |||||
| content: ""; | |||||
| width: 0px; | |||||
| height: 0px; | |||||
| position: absolute; | |||||
| border-left: 10px solid transparent; | |||||
| border-right: 10px solid transparent; | |||||
| border-top: 10px solid #fff; | |||||
| border-bottom: 10px solid transparent; | |||||
| right: 11%; | |||||
| bottom: -18px; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,25 @@ | |||||
| .cms-element-product-listing-actions { | |||||
| .custom-select { | |||||
| border-bottom-color: $sw-color-brand-primary; | |||||
| border-bottom-width: 2px; | |||||
| font-size: 18px; | |||||
| } | |||||
| } | |||||
| .cms-element-product-listing { | |||||
| .textbox { | |||||
| background-color: #E9F4FC; | |||||
| border-radius: 3px; | |||||
| padding-top: 40px; | |||||
| padding-left: 40px; | |||||
| padding-right: 15%; | |||||
| padding-bottom: 40px; | |||||
| height: 100%; | |||||
| h2 { | |||||
| margin-bottom: 24px; | |||||
| } | |||||
| a.btn { | |||||
| margin: 20px 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,34 @@ | |||||
| .product-box { | |||||
| &.highlight { | |||||
| background-color: #E9F4FC; | |||||
| } | |||||
| .product-name { | |||||
| font-size: 18px; | |||||
| line-height: 20px; | |||||
| height: auto; | |||||
| } | |||||
| .product-info { | |||||
| min-height: 110px; | |||||
| } | |||||
| .product-price-info { | |||||
| position: absolute; | |||||
| width: 100%; | |||||
| bottom: 16px; | |||||
| margin: 0; | |||||
| line-height: 16px; | |||||
| .product-price-wrapper { | |||||
| font-size: 15px; | |||||
| .product-price { | |||||
| color: $sw-color-brand-primary; | |||||
| font-size: 18px; | |||||
| } | |||||
| } | |||||
| } | |||||
| .product-description { | |||||
| height: auto; | |||||
| } | |||||
| .product-price-unit, | |||||
| .product-cheapest-price { | |||||
| display: none; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,54 @@ | |||||
| .header-main { | |||||
| .header-cart-btn { | |||||
| .header-cart-total { | |||||
| margin-right: 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| .header-actions-col { | |||||
| @media (min-width: 992px) { | |||||
| position: absolute; | |||||
| top: 0; | |||||
| right: 0; | |||||
| } | |||||
| } | |||||
| .header-nav-col { | |||||
| max-width: 950px; | |||||
| margin-top: 45px; | |||||
| margin-left: auto; | |||||
| } | |||||
| .header-single-line { | |||||
| .navigation-flyout { | |||||
| top: 36px; | |||||
| &.is-open { | |||||
| @media (min-width: 992px) { | |||||
| padding-top: 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .nav-header > .container { | |||||
| padding-left: 0; | |||||
| padding-right: 0; | |||||
| } | |||||
| .main-navigation-menu { | |||||
| justify-content: space-between; | |||||
| } | |||||
| .main-navigation-divider { | |||||
| display: none; | |||||
| } | |||||
| .main-navigation-link { | |||||
| font-size: 16px; | |||||
| font-weight: 500; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-transform: uppercase; | |||||
| padding: 0; | |||||
| } | |||||
| @@ -0,0 +1,77 @@ | |||||
| /* | |||||
| Override variable defaults | |||||
| ================================================== | |||||
| This file is used to override default SCSS variables from the Shopware Storefront or Bootstrap. | |||||
| Because of the !default flags, theme variable overrides have to be declared beforehand. | |||||
| https://getbootstrap.com/docs/4.0/getting-started/theming/#variable-defaults | |||||
| */ | |||||
| body { | |||||
| background: #fff; | |||||
| } | |||||
| h1 { | |||||
| line-height: 54px !important; | |||||
| } | |||||
| .cms-block { | |||||
| .category { | |||||
| font-size: 16px; | |||||
| font-weight: 500; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-transform: uppercase; | |||||
| ; | |||||
| } | |||||
| } | |||||
| .sv-vbadge-vb3fx { | |||||
| z-index: 999 !important; | |||||
| } | |||||
| .product-image.is-standard { | |||||
| object-fit: cover !important; | |||||
| font-family: "object-fit: cover;" !important; | |||||
| } | |||||
| .btn-outline-primary { | |||||
| border: 2px solid #33548C !important; | |||||
| border-radius: 3px; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1px; | |||||
| text-transform: uppercase; | |||||
| padding: 5px 32px !important; | |||||
| } | |||||
| input.custom-number[type=number] { | |||||
| border-bottom: 2px solid $sw-color-brand-primary; | |||||
| } | |||||
| .product-wishlist .icon-wishlist svg { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| @media (min-width: 992px) { | |||||
| .is-act-confirmpage { | |||||
| .checkout { | |||||
| .checkout-main { | |||||
| margin-left: 0 !important; | |||||
| flex: 0 0 100% !important; | |||||
| max-width: 100% !important; | |||||
| } | |||||
| .checkout-additional { | |||||
| margin-left: 0 !important; | |||||
| flex: 0 0 66.6666666667% !important; | |||||
| max-width: 66.6666666667% !important; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @media (min-width: 576px) { | |||||
| .modal-dialog { | |||||
| max-width: 800px !important; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,105 @@ | |||||
| .is-act-cartpage { | |||||
| .checkout { | |||||
| .spwn-add-customized-products { | |||||
| width: 100%; | |||||
| .spwn-add-customized-products-detail { | |||||
| position: relative; | |||||
| margin: 55px 20px 0; | |||||
| padding: 26px 21px; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| border-radius: 3px; | |||||
| font-size: 16px; | |||||
| font-weight: 500; | |||||
| letter-spacing: 1.6px; | |||||
| line-height: 18px; | |||||
| text-align: center; | |||||
| text-transform: uppercase; | |||||
| color: $sw-color-brand-primary; | |||||
| display: block; | |||||
| span { | |||||
| display: block; | |||||
| max-width: 415px; | |||||
| margin: 0 auto; | |||||
| } | |||||
| &:hover { | |||||
| text-decoration: none; | |||||
| background-color: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| &:before { | |||||
| position: absolute; | |||||
| top: -55px; | |||||
| left: 50%; | |||||
| transform: translateX(-50%); | |||||
| content: ''; | |||||
| display: inline-block; | |||||
| width: 50px; | |||||
| height: 50px; | |||||
| background: linear-gradient($sw-color-brand-primary 0 0), linear-gradient($sw-color-brand-primary 0 0); | |||||
| background-position: center; | |||||
| background-size: 50% 2px, 2px 50%; | |||||
| background-repeat: no-repeat; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .checkout-aside-container { | |||||
| background-color: #E9F4FC; | |||||
| padding-top: 1rem; | |||||
| padding-bottom: 2rem; | |||||
| a[data-toggle="modal"] { | |||||
| color: #222; | |||||
| text-decoration: underline; | |||||
| &:hover { | |||||
| text-decoration: none; | |||||
| } | |||||
| } | |||||
| .checkout-aside-summary-total { | |||||
| border-top: 1px solid #B1C3D9; | |||||
| } | |||||
| dd.checkout-aside-summary-total { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| .checkout-aside-action { | |||||
| padding-left: 1rem; | |||||
| padding-right: 1rem; | |||||
| .cart-add-promotion { | |||||
| padding-left: 0; | |||||
| border-bottom: 2px solid $sw-color-brand-primary; | |||||
| .form-control { | |||||
| font-size: 18px; | |||||
| padding-left: 0; | |||||
| &::-webkit-input-placeholder { | |||||
| color: #222; | |||||
| } | |||||
| } | |||||
| } | |||||
| .btn { | |||||
| background: transparent; | |||||
| border: none; | |||||
| padding-right: 0; | |||||
| .icon { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| } | |||||
| .btn-primary { | |||||
| margin-top: 36px; | |||||
| background: transparent; | |||||
| color: $sw-color-brand-primary; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1px; | |||||
| line-height: 18px; | |||||
| text-align: center; | |||||
| text-transform: uppercase; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| padding: 12px 12px; | |||||
| &:hover { | |||||
| background: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,99 @@ | |||||
| .is-ctl-product { | |||||
| .product-detail-media { | |||||
| padding-right: 40px; | |||||
| .gallery-slider-image { | |||||
| width: 100%; | |||||
| } | |||||
| .aku-cms-factory-element { | |||||
| display: flex; | |||||
| .thumbnail-container { | |||||
| max-width: 75px; | |||||
| margin-right: 25px; | |||||
| figure { | |||||
| margin: 10px 0; | |||||
| img { | |||||
| max-width: 55px; | |||||
| margin-bottom: 10px; | |||||
| } | |||||
| figcaption { | |||||
| font-family: $sw-font-family-base; | |||||
| font-size: 15px; | |||||
| line-height: 20px; | |||||
| color: #222; | |||||
| text-align: center; | |||||
| } | |||||
| } | |||||
| } | |||||
| .product-info { | |||||
| width: 100%; | |||||
| figure { | |||||
| position: relative; | |||||
| margin-top: 50px; | |||||
| img { | |||||
| width: 100%; | |||||
| } | |||||
| figcaption { | |||||
| position: absolute; | |||||
| left: 10px; | |||||
| bottom: 10px; | |||||
| background-color: #fff; | |||||
| font-family: $sw-font-family-headline; | |||||
| font-size: 60px; | |||||
| line-height: 54px; | |||||
| color: $sw-color-brand-primary; | |||||
| padding: 15px 20px; | |||||
| } | |||||
| &:first-child { | |||||
| margin-top: 0; | |||||
| } | |||||
| } | |||||
| p { | |||||
| margin-bottom: 0.5rem; | |||||
| } | |||||
| a[data-toggle="modal"] { | |||||
| text-decoration: underline; | |||||
| cursor: pointer; | |||||
| &:hover { | |||||
| text-decoration: none; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .product-detail-buy { | |||||
| border-radius: 3px; | |||||
| background-color: #E9F4FC; | |||||
| padding-top: 40px; | |||||
| .product-detail-name { | |||||
| font-size: 60px; | |||||
| line-height: 54px; | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| .product-detail-price { | |||||
| color: $sw-color-brand-primary; | |||||
| } | |||||
| .product-detail-tax-link { | |||||
| color: #222; | |||||
| text-decoration: underline; | |||||
| &:hover { | |||||
| text-decoration: none; | |||||
| } | |||||
| } | |||||
| .btn-primary { | |||||
| background: transparent; | |||||
| color: $sw-color-brand-primary; | |||||
| font-size: 16px; | |||||
| font-weight: 600; | |||||
| letter-spacing: 1px; | |||||
| line-height: 18px; | |||||
| text-align: center; | |||||
| text-transform: uppercase; | |||||
| border: 2px solid $sw-color-brand-primary; | |||||
| padding: 12px 12px; | |||||
| &:hover { | |||||
| background: $sw-color-brand-primary; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,45 @@ | |||||
| <?xml version="1.0" encoding="utf-8" ?> | |||||
| <cms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/Framework/App/Cms/Schema/cms-1.0.xsd"> | |||||
| <blocks> | |||||
| <block> | |||||
| <!-- A unique technical name for your block. We recommend to use a shorthand prefix for your company, e.g. "Swag" for shopware AG. --> | |||||
| <name>swag-gallery-buybox-abnehmplan</name> | |||||
| <!-- The category your block is associated with. See the XSD for available categories. --> | |||||
| <category>commerce</category> | |||||
| <!-- Your block's label which will be shown in the CMS module in the Administration. --> | |||||
| <label>Gallery and buybox for weight loss plan products</label> | |||||
| <label lang="de-DE">Galerie und Buybox für Abnehmplan-Produkte</label> | |||||
| <!-- The slots that your block holds which again hold CMS elements. --> | |||||
| <slots> | |||||
| <!-- A slot requires a unique name and a type which refers to the CMS element it shows. Right now you can only use the CMS elements provided by Shopware but at a later point you will be able to add custom elements too. --> | |||||
| <slot name="left" type="text"> | |||||
| <!-- The slot requires some basic configuration. The following config-value elements highly depend on which element the slot holds. --> | |||||
| <config> | |||||
| <!-- The following config-value will be interpreted as 'verticalAlign: { source: "static", value: "top"}' in the JavaScript. --> | |||||
| <config-value name="vertical-align" source="static" value="top"/> | |||||
| </config> | |||||
| </slot> | |||||
| <slot name="right" type="image"> | |||||
| <config> | |||||
| <config-value name="display-mode" source="static" value="auto"/> | |||||
| <config-value name="vertical-align" source="static" value="top"/> | |||||
| </config> | |||||
| </slot> | |||||
| </slots> | |||||
| <!-- Each block comes with a default configuration which is pre-filled and customizable when adding a block to a section in the CMS module in the Administration. --> | |||||
| <default-config> | |||||
| <margin-top>20px</margin-top> | |||||
| <margin-right>20px</margin-right> | |||||
| <margin-bottom>20px</margin-bottom> | |||||
| <margin-left>20px</margin-left> | |||||
| <!-- The sizing mode of your block. Allowed values are "boxed" or "full_width". --> | |||||
| <sizing-mode>boxed</sizing-mode> | |||||
| </default-config> | |||||
| </block> | |||||
| </blocks> | |||||
| </cms> | |||||
| @@ -0,0 +1,9 @@ | |||||
| <div class="sw-cms-preview-swag-image-text-reversed"> | |||||
| <div> | |||||
| <h2>Lorem ipsum dolor</h2> | |||||
| <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p> | |||||
| </div> | |||||
| <!-- Alternatively you might e.g. also use a base64 encoded preview image instead of an external resource. --> | |||||
| <img src="https://example.com/preview.jpg" alt="Preview image"> | |||||
| </div> | |||||
| @@ -0,0 +1,35 @@ | |||||
| /* | |||||
| * Styling of your block preview in the CMS sidebar | |||||
| */ | |||||
| .sw-cms-preview-swag-image-text-reversed { | |||||
| display: grid; | |||||
| grid-template-columns: 1fr 1fr; | |||||
| grid-column-gap: 20px; | |||||
| padding: 15px; | |||||
| } | |||||
| /* | |||||
| * Styling of your block in the CMS editor | |||||
| * Pattern: sw-cms-block-${block.name}-component | |||||
| */ | |||||
| .sw-cms-block-swag-image-text-reversed-component { | |||||
| display: grid; | |||||
| grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); | |||||
| grid-gap: 40px; | |||||
| } | |||||
| /* | |||||
| * Each slot will have an additional class | |||||
| * Pattern: sw-cms-slot-${slot.name} | |||||
| */ | |||||
| .sw-cms-block-swag-image-text-reversed-component .sw-cms-slot-left { | |||||
| } | |||||
| /* | |||||
| * Each slot will have an additional class | |||||
| * Pattern: sw-cms-slot-${slot.name} | |||||
| */ | |||||
| .sw-cms-block-swag-image-text-reversed-component .sw-cms-slot-right { | |||||
| } | |||||
| @@ -0,0 +1,40 @@ | |||||
| {% block block_gallery_buybox %} | |||||
| {% block block_gallery_buybox_column_left %} | |||||
| {% set element = block.slots.getSlot('left') %} | |||||
| {% set config = element.fieldConfig.elements %} | |||||
| <div class="col-lg-7 product-detail-media" data-cms-element-id="{{ element.id }}"> | |||||
| {% block block_gallery_buybox_column_left_inner %} | |||||
| {% sw_include "@Storefront/storefront/element/cms-element-" ~ element.type ~ ".html.twig" ignore missing | |||||
| with { | |||||
| 'isProduct': config.sliderItems.value == 'product.media' and config.sliderItems.source == 'mapped' | |||||
| } %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block block_gallery_buybox_column_right %} | |||||
| {% set element = block.slots.getSlot('right') %} | |||||
| <div class="col-lg-5 product-detail-buy js-sticky" data-sticky-buybox="true"> | |||||
| {# ... add headline here #} | |||||
| {% block page_product_detail_headline %} | |||||
| <div class="row product-detail-headline"> | |||||
| {% sw_include '@Storefront/storefront/page/product-detail/headline.html.twig' %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {# ... add short description #} | |||||
| {% block zen_page_product_detail_short_description %} | |||||
| {% if page.product.translated.metaDescription and theme_config('zen-product-details-short-description') %} | |||||
| <div class="product-detail-short-description"> | |||||
| {{ page.product.translated.metaDescription|raw }} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block block_gallery_buybox_column_right_inner %} | |||||
| {% sw_include "@Storefront/storefront/element/cms-element-" ~ element.type ~ ".html.twig" ignore missing %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,21 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget.html.twig' %} | |||||
| {% block buy_widget_price %} | |||||
| <div class="product-detail-price-container"> | |||||
| {% if page.product.translated.customFields.deposittype %} | |||||
| <div class="product-detail-deposittype"> | |||||
| {{ page.product.translated.customFields.deposittype }} | |||||
| </div> | |||||
| {% endif %} | |||||
| {{ parent() }} | |||||
| {% if page.product.translated.customFields.deposit %} | |||||
| {% set deposit = page.product.translated.customFields.deposit|currency %} | |||||
| <div class="product-detail-deposit"> | |||||
| {{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({ | |||||
| '%deposit%': deposit | |||||
| })|sw_sanitize }} | |||||
| </div> | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,74 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/checkout/offcanvas-cart.html.twig' %} | |||||
| {# Start added by spawntree #} | |||||
| {% block component_offcanvas_cart_items %} | |||||
| {% set customizedProductsCount = 0 %} | |||||
| {% set customizedProductsCountTemp = 0 %} | |||||
| {% set addCustomizedProducts = 0 %} | |||||
| {# copy from SpnoSortBasket #} | |||||
| {% set sortBasketConfig = context.extensions.SpnoSortBasket %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined %} | |||||
| {% set customizedProductsCount = customizedProductsCount + lineItem.quantity %} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| <div class="offcanvas-cart-items"> | |||||
| {# spawntree start #} | |||||
| {% if customizedProductsCount == 1 || customizedProductsCount == 2 %} | |||||
| <div class="spwn-customized-products"> | |||||
| {% sw_icon 'checkmark-circle' %} | |||||
| <div class="spwn-customized-products--text"> | |||||
| {% if customizedProductsCount == 1 %} | |||||
| <p>Ihr Abnehmplan wurde erfolgreich zum Warenkorb hinzugefügt – ein guter Start!</p> | |||||
| <p>Wählen Sie bis zu 2 weitere Pläne für Ihr optimales Abnehmprogramm und sparen Sie ab 150 € Bestellsumme die Versandkosten.</p> | |||||
| {% elseif customizedProductsCount == 2 %} | |||||
| <p>Ihr zweiter Abnehmplan wurde zum Warenkorb hinzugefügt - Sie sparen die Versandkosten!</p> | |||||
| <p>Wählen Sie einen weiteren Plan für Ihr optimales, mehrwöchiges Abnehmprogramm.</p> | |||||
| {% endif %} | |||||
| </div> | |||||
| </div> | |||||
| {% endif %} | |||||
| {# spawntree end #} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {# spawntree start #} | |||||
| {% if lineItem.payload.customFields.spwn_discountable_box %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined and customizedProductsCount < 3 %} | |||||
| {% set customizedProductsCountTemp = customizedProductsCountTemp + lineItem.quantity %} | |||||
| {% if customizedProductsCountTemp == customizedProductsCount %} | |||||
| {% set addCustomizedProducts = customizedProductsCount %} | |||||
| {% endif %} | |||||
| {% endif %} | |||||
| {% block component_offcanvas_cart_item %} | |||||
| {% sw_include '@Storefront/storefront/component/checkout/offcanvas-item.html.twig' with { | |||||
| data: { | |||||
| addCustomizedProducts: addCustomizedProducts | |||||
| } | |||||
| } %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {# spawntree end #} | |||||
| {% endfor %} | |||||
| {% set addCustomizedProducts = 0 %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% if not lineItem.payload.customFields.spwn_discountable_box %} | |||||
| {{ block ('component_offcanvas_cart_item') }} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block component_offcanvas_cart_actions_promotion_submit %} | |||||
| <div class="input-group-append"> | |||||
| <button class="btn btn-secondary" | |||||
| type="submit" | |||||
| id="addPromotionOffcanvasCart"> | |||||
| {% sw_icon 'arrow-head-right' %} | |||||
| </button> | |||||
| </div> | |||||
| {% endblock %} | |||||
| {# End added by spawntree #} | |||||
| @@ -0,0 +1,69 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/checkout/offcanvas-item.html.twig' %} | |||||
| {# Start added by spawntree #} | |||||
| {% block component_offcanvas_cart_item_container %} | |||||
| {% if isCustomizedProduct %} | |||||
| {% set isNested = false %} | |||||
| {% for child in lineItem.children %} | |||||
| {% if child.type == 'product' %} | |||||
| {% set label = child.label %} | |||||
| {% set referencedId = child.referencedId %} | |||||
| {% set productNumber = lineItem.payload|merge({ 'productNumber': child.payload.productNumber }) %} | |||||
| {% if child.cover.url %} | |||||
| {% set cover = child.cover %} | |||||
| {% endif %} | |||||
| {% do lineItem.setLabel(label) %} | |||||
| {% do lineItem.setCover(cover) %} | |||||
| {% do lineItem.setReferencedId(referencedId) %} | |||||
| {% do lineItem.setPayload(productNumber) %} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| {% endif %} | |||||
| {% set isDiscountableItem = false %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined %} | |||||
| {% set isDiscountableItem = true %} | |||||
| {% endif %} | |||||
| <div class="cart-item cart-item-{{ type }}{% if isDiscount %} is-discount{% endif %}{{ cartItemClasses }} js-cart-item{% if isDiscountableItem %} is-discountable-item{% endif %}"> | |||||
| <div class="row cart-item-row"> | |||||
| {{ block('component_offcanvas_product_image') }} | |||||
| {{ block('component_offcanvas_product_details') }} | |||||
| {{ block('component_offcanvas_product_remove') }} | |||||
| {{ block('component_offcanvas_children') }} | |||||
| </div> | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block component_offcanvas_children %} | |||||
| {% if isNested %} | |||||
| {# @deprecated tag:v6.5.0 - block will be removed, use `component_offcanvas_item_children` in `@Storefront/storefront/component/checkout/offcanvas-item-children.html.twig` instead #} | |||||
| {% block component_offcanvas_cart_item_children %} | |||||
| {% sw_include childrenTemplate %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {% set addCustomizedProducts = addCustomizedProducts | default(0) %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined and addCustomizedProducts !== 0 %} | |||||
| <div class="spwn-add-customized-products"> | |||||
| <a href="/Abnehmprogramme/6-Tage-Abnehmprogramme/" class="spwn-add-customized-products-detail">Fügen Sie einen weiteren Plan hinzu für ihr optimales Abnehmprogramm</a> | |||||
| {% if addCustomizedProducts == 1 %} | |||||
| <a href="/Abnehmprogramme/6-Tage-Abnehmprogramme/" class="spwn-add-customized-products-detail">Fügen Sie einen weiteren Plan hinzu für ihr optimales Abnehmprogramm</a> | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {# coming from AtlProductConfigurator #} | |||||
| {% block cart_item_variant_characteristics %} | |||||
| <div class="cart-item-characteristics"> | |||||
| {% for input in lineItem.payload.atlProductConfigurator %} | |||||
| <div> | |||||
| <span class="cart-item-characteristics-option">{{ input.value }}</span> | |||||
| </div> | |||||
| {% endfor %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {# End added by spawntree #} | |||||
| @@ -0,0 +1,162 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/product/card/box-standard.html.twig' %} | |||||
| {% block component_product_box %} | |||||
| {% if product %} | |||||
| {% set name = product.translated.name %} | |||||
| {% set id = product.id %} | |||||
| {% set cover = product.cover.media %} | |||||
| {% set variation = product.variation %} | |||||
| <div class="card product-box box-{{ layout }}{% if product.markAsTopseller %} highlight{% endif %}"> | |||||
| {% block component_product_box_content %} | |||||
| <div class="card-body"> | |||||
| {% block component_product_box_badges %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/badges.html.twig' %} | |||||
| {% endblock %} | |||||
| {% block component_product_box_rich_snippets %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/meta.html.twig' %} | |||||
| {% endblock %} | |||||
| {% block component_product_box_image %} | |||||
| {# fallback if display mode is not set #} | |||||
| {% set displayMode = displayMode ?: 'standard' %} | |||||
| {# set display mode 'cover' for box-image with default display mode #} | |||||
| {% if layout == 'image' and displayMode == 'standard' %} | |||||
| {% set displayMode = 'cover' %} | |||||
| {% endif %} | |||||
| <div class="product-image-wrapper is-{{ displayMode }}"> | |||||
| <a href="{{ seoUrl('frontend.detail.page', {'productId': id}) }}" | |||||
| title="{{ name }}" | |||||
| class="product-image-link is-{{ displayMode }}"> | |||||
| {% if cover.url %} | |||||
| {% set attributes = { | |||||
| 'class': 'product-image is-'~displayMode, | |||||
| 'alt': (cover.translated.alt ?: name), | |||||
| 'title': (cover.translated.title ?: name) | |||||
| } %} | |||||
| {% if displayMode == 'cover' or displayMode == 'contain' %} | |||||
| {% set attributes = attributes|merge({ 'data-object-fit': displayMode }) %} | |||||
| {% endif %} | |||||
| {# ... enables lazy loading for images #} | |||||
| {% if config('zenitPlatformAtmos.config.lazyloading') %} | |||||
| {% set attributes = attributes|merge({ 'loading': 'lazy' }) %} | |||||
| {% endif %} | |||||
| {% sw_thumbnails 'product-image-thumbnails' with { | |||||
| media: cover, | |||||
| sizes: { | |||||
| 'xs': '701px', | |||||
| 'sm': '515px', | |||||
| 'md': '627px', | |||||
| 'lg': '533px', | |||||
| 'xl': '484px' | |||||
| } | |||||
| } %} | |||||
| {% else %} | |||||
| <div class="product-image-placeholder"> | |||||
| {% sw_icon 'placeholder' style { | |||||
| 'size': 'fluid' | |||||
| } %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% block zen_component_product_box_image_switch %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/zen-cover-switch.html.twig' %} | |||||
| {% endblock %} | |||||
| </a> | |||||
| {% if config('core.cart.wishlistEnabled') %} | |||||
| {% if theme_config('zen-product-listing-card-rating-position') is not same as ('overlay-top-right') or (theme_config('zen-product-listing-card-rating-position') is same as ('overlay-top-right') and theme_config('zen-product-listing-card-actions') is not same as ('overlay')) %} | |||||
| {% block component_product_box_wishlist_action %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with { | |||||
| appearance: 'circle', | |||||
| productId: id | |||||
| } %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {% endif %} | |||||
| {% block zen_component_product_box_action_overlay_rating %} | |||||
| {% if config('core.listing.showReview') and theme_config('zen-product-listing-card-rating-position') is not same as ('default') %} | |||||
| <div class="product-rating"> | |||||
| {% if product.ratingAverage %} | |||||
| {% sw_include '@Storefront/storefront/component/review/rating.html.twig' with { | |||||
| points: product.ratingAverage, | |||||
| style: 'text-primary' | |||||
| } %} | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block zen_component_product_box_action_overlay %} | |||||
| {% if theme_config('zen-product-listing-card-actions') is same as ('overlay') %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/action.html.twig' %} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block component_product_box_info %} | |||||
| <div class="product-info"> | |||||
| {% block component_product_box_rating %} | |||||
| {% if theme_config('zen-product-listing-card-rating-position') is same as ('default') %} | |||||
| {{ parent() }} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block component_product_box_name %} | |||||
| <a href="{{ seoUrl('frontend.detail.page', {'productId': id}) }}" | |||||
| class="product-name" | |||||
| title="{{ name }}"> | |||||
| {{ name }} | |||||
| </a> | |||||
| {% endblock %} | |||||
| {% block component_product_box_variant_characteristics %} | |||||
| {% if theme_config('zen-product-listing-card-variant-characteristics') %} | |||||
| {{ parent() }} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block component_product_box_description %} | |||||
| <div class="product-description"> | |||||
| {{ product.customFields.custom_productteaser_category|striptags|raw }} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block component_product_box_price %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/price-unit.html.twig' %} | |||||
| {% endblock %} | |||||
| {% block component_product_box_action %} | |||||
| {% if theme_config('zen-product-listing-card-actions') is not same as ('overlay') %} | |||||
| {{ parent() }} | |||||
| {% endif %} | |||||
| {% if config('core.cart.wishlistEnabled') %} | |||||
| {% if theme_config('zen-product-listing-card-rating-position') is same as ('overlay-top-right') and theme_config('zen-product-listing-card-actions') is same as ('overlay') %} | |||||
| {% block zen_component_product_box_wishlist_action %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with { | |||||
| appearance: 'circle', | |||||
| productId: id | |||||
| } %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,55 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/product/card/price-unit.html.twig' %} | |||||
| {% block component_product_box_price %} | |||||
| <div class="product-price-wrapper"> | |||||
| {% set price = real %} | |||||
| <div class="product-cheapest-price"> | |||||
| {% if cheapest.unitPrice != real.unitPrice %} | |||||
| <div>{{ "listing.cheapestPriceLabel"|trans|sw_sanitize }}<span class="product-cheapest-price-price"> {{ cheapest.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}</span></div> | |||||
| {% endif %} | |||||
| </div> | |||||
| {% if displayFrom %} | |||||
| {{ "listing.listingTextFrom"|trans|sw_sanitize }} | |||||
| {% endif %} | |||||
| {% set isListPrice = price.listPrice.percentage > 0 %} | |||||
| <span class="product-price{% if isListPrice and not displayFrom %} with-list-price{% endif %}"> | |||||
| {{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }} | |||||
| {% if isListPrice and not displayFrom %} | |||||
| {% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %} | |||||
| {% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %} | |||||
| {% set hideStrikeTrough = beforeListPriceSnippetExists or afterListPriceSnippetExists %} | |||||
| <span class="list-price{% if hideStrikeTrough %} list-price-no-line-through{% endif %}"> | |||||
| {% if beforeListPriceSnippetExists %}{{ "listing.beforeListPrice"|trans|trim|sw_sanitize }}{% endif %} | |||||
| <span class="list-price-price">{{ price.listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span> | |||||
| {% if afterListPriceSnippetExists %}{{ "listing.afterListPrice"|trans|trim|sw_sanitize }}{% endif %} | |||||
| <span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': price.listPrice.percentage })|sw_sanitize }}</span> | |||||
| </span> | |||||
| {% endif %} | |||||
| </span> | |||||
| <span>{{ product.customFields.custom_productteaser_price|trans }} € pro Tag</span> | |||||
| </div> | |||||
| {% if product.translated.customFields.deposittype %} | |||||
| <div class="product-deposittype"> | |||||
| {{ product.translated.customFields.deposittype }} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% if product.translated.customFields.deposit %} | |||||
| {% set deposit = product.translated.customFields.deposit|currency %} | |||||
| <div class="product-deposit"> | |||||
| <small> | |||||
| {{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({ | |||||
| '%deposit%': deposit | |||||
| })|sw_sanitize }} | |||||
| </small> | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,41 @@ | |||||
| {% sw_extends '@Storefront/storefront/component/product/listing.html.twig' %} | |||||
| {% block element_product_listing_row %} | |||||
| <div class="row cms-listing-row js-listing-wrapper"> | |||||
| {% if page.footer.navigation.active.customFields.custom_listing_textbox_text is defined %} | |||||
| <div class="cms-listing-col col-xl-6 col-lg-8 col-12"> | |||||
| <div class="card textbox d-flex justify-content-center"> | |||||
| <div class="inner"> | |||||
| {{ page.footer.navigation.active.customFields.custom_listing_textbox_text|trans|sw_sanitize }} | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| {% endif %} | |||||
| {% if searchResult.total > 0 %} | |||||
| {% block element_product_listing_col %} | |||||
| {% for product in searchResult %} | |||||
| <div class="cms-listing-col {{ listingColumns }}"> | |||||
| {% block element_product_listing_box %} | |||||
| {% sw_include '@Storefront/storefront/component/product/card/box.html.twig' with { | |||||
| 'layout': boxLayout, | |||||
| 'displayMode': displayMode | |||||
| } %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endfor %} | |||||
| {% endblock %} | |||||
| {% else %} | |||||
| {% block element_product_listing_col_empty %} | |||||
| <div class="cms-listing-col col-12"> | |||||
| {% block element_product_listing_col_empty_alert %} | |||||
| {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with { | |||||
| type: 'info', | |||||
| content: 'listing.emptyResultMessage'|trans|sw_sanitize | |||||
| } %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,7 @@ | |||||
| {% sw_extends '@Storefront/storefront/layout/footer/footer.html.twig' %} | |||||
| {% block layout_footer_copyright %} | |||||
| <div class="footer-copyright"> | |||||
| {{ "footer.copyrightInfo"|trans|sw_sanitize }} | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,63 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/checkout/cart/index.html.twig' %} | |||||
| {% block page_checkout_cart_add_promotion_submit %} | |||||
| <div class="input-group-append"> | |||||
| <button class="btn btn-secondary" | |||||
| type="submit" | |||||
| id="addPromotion"> | |||||
| {% sw_icon 'arrow-head-right' %} | |||||
| </button> | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block page_checkout_cart_product_table %} | |||||
| {% set customizedProductsCount = 0 %} | |||||
| {% set customizedProductsCountTemp = 0 %} | |||||
| {% set addCustomizedProducts = 0 %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined %} | |||||
| {% set customizedProductsCount = customizedProductsCount + lineItem.quantity %} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| <div class="card checkout-product-table"> | |||||
| <div class="card-body"> | |||||
| {% block page_checkout_cart_table_header %} | |||||
| {% sw_include '@Storefront/storefront/page/checkout/cart/cart-product-header.html.twig' %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_cart_table_items %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% if lineItem.payload.customFields.spwn_discountable_box %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined and customizedProductsCount < 3 %} | |||||
| {% set customizedProductsCountTemp = customizedProductsCountTemp + lineItem.quantity %} | |||||
| {% if customizedProductsCountTemp == customizedProductsCount %} | |||||
| {% set addCustomizedProducts = customizedProductsCount %} | |||||
| {% endif %} | |||||
| {% endif %} | |||||
| {% block page_checkout_cart_table_item %} | |||||
| {% block page_checkout_item %} | |||||
| {% sw_include '@Storefront/storefront/page/checkout/checkout-item.html.twig' with { | |||||
| data: { | |||||
| addCustomizedProducts: addCustomizedProducts | |||||
| } | |||||
| } %} | |||||
| {% endblock %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| {% set addCustomizedProducts = 0 %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% if not lineItem.payload.customFields.spwn_discountable_box %} | |||||
| {{ block ('page_checkout_item') }} | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,50 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/checkout/checkout-item.html.twig' %} | |||||
| {% block page_checkout_item_info_variant_characteristics %} | |||||
| <div class="cart-item-details-characteristics"> | |||||
| {% for input in lineItem.payload.atlProductConfigurator %} | |||||
| <div> | |||||
| <span class="cart-item-details-characteristics-option">{{ input.value }}</span> | |||||
| </div> | |||||
| {% endfor %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block page_checkout_item_info_label %} | |||||
| {% if lineItem.type == PRODUCT_LINE_ITEM_TYPE %} | |||||
| <a href="{{ seoUrl('frontend.detail.page', {'productId': lineItem.referencedId}) }}" | |||||
| class="cart-item-label" | |||||
| title="{{ label }}" | |||||
| {% if controllerAction is same as('confirmPage') %} | |||||
| data-toggle="modal" | |||||
| data-modal-class="quickview-modal" | |||||
| data-url="{{ path('widgets.quickview.minimal',{ 'productId': lineItem.referencedId }) }}" | |||||
| {% endif %} | |||||
| > | |||||
| {{ label|u.truncate(60, '...', false) }} | |||||
| </a> | |||||
| {% else %} | |||||
| <div class="cart-item-label"> | |||||
| {{ label|u.truncate(60, '...', false) }} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_item_children_template %} | |||||
| {% if isNested %} | |||||
| {# @deprecated tag:v6.5.0 - block will be moved to `@Storefront/storefront/page/checkout/checkout-item-children.html.twig` #} | |||||
| {% block page_checkout_item_children %} | |||||
| {% sw_include childrenTemplate %} | |||||
| {% endblock %} | |||||
| {% endif %} | |||||
| {% set addCustomizedProducts = addCustomizedProducts | default(0) %} | |||||
| {% if lineItem.payload is defined and lineItem.payload.customFields is defined and | |||||
| lineItem.payload.customFields.spwn_discountable_box is defined and addCustomizedProducts !== 0 %} | |||||
| <div class="spwn-add-customized-products"> | |||||
| <a href="/Abnehmprogramme/6-Tage-Abnehmprogramme/" class="spwn-add-customized-products-detail"><span>Fügen Sie einen weiteren Plan hinzu für ihr optimales Abnehmprogramm</span></a> | |||||
| {% if addCustomizedProducts == 1 %} | |||||
| <a href="/Abnehmprogramme/6-Tage-Abnehmprogramme/" class="spwn-add-customized-products-detail"><span>Fügen Sie einen weiteren Plan hinzu für ihr optimales Abnehmprogramm</span></a> | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,17 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/checkout/confirm/confirm-address.html.twig' %} | |||||
| {% block page_checkout_confirm_address_shipping_data %} | |||||
| <div class="confirm-address-shipping" data-iso="{{ shippingAddress.country.iso }}"> | |||||
| {% if billingAddress.id is same as(shippingAddress.id) %} | |||||
| {% block page_checkout_confirm_address_shipping_data_equal %} | |||||
| <p> | |||||
| {{ "checkout.addressEqualText"|trans|sw_sanitize }} | |||||
| </p> | |||||
| {% endblock %} | |||||
| {% else %} | |||||
| {% sw_include '@Storefront/storefront/component/address/address.html.twig' with { | |||||
| 'address': shippingAddress | |||||
| } %} | |||||
| {% endif %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,112 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/checkout/confirm/index.html.twig' %} | |||||
| {% block page_checkout_confirm_tos %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_product_table %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_additional %} | |||||
| {% if config('core.cart.showCustomerComment') %} | |||||
| <div class="checkout-additional"> | |||||
| <div class="confirm-product"> | |||||
| {% block page_checkout_confirm_table_container %} | |||||
| <div class="card"> | |||||
| <div class="card-body"> | |||||
| {% block page_checkout_confirm_table_header %} | |||||
| {% sw_include '@Storefront/storefront/page/checkout/confirm/confirm-product-header.html.twig' %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_table_items %} | |||||
| {% for lineItem in page.cart.lineItems %} | |||||
| {% block page_checkout_confirm_table_item %} | |||||
| {% sw_include '@Storefront/storefront/page/checkout/confirm/confirm-item.html.twig' %} | |||||
| {% endblock %} | |||||
| {% endfor %} | |||||
| {% endblock %} | |||||
| </div> | |||||
| </div> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% block page_checkout_finish_customer_comment %} | |||||
| <div class="card checkout-card"> | |||||
| <div class="card-body"> | |||||
| {% block page_checkout_confirm_customer_comment_header %} | |||||
| <div class="card-title"> | |||||
| {{ "checkout.customerCommentHeader"|trans|sw_sanitize }} | |||||
| </div> | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_customer_comment_control %} | |||||
| <div class="checkout-customer-comment-control"> | |||||
| {% block page_checkout_confirm_customer_comment_control_textfield_label %} | |||||
| <label class="form-label" for="{{ constant('Shopware\\Core\\Checkout\\Order\\SalesChannel\\OrderService::CUSTOMER_COMMENT_KEY') }}"> | |||||
| {{ "checkout.customerCommentLabel"|trans|sw_sanitize }} | |||||
| </label> | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_customer_comment_control_textfield %} | |||||
| <textarea class="form-control" | |||||
| placeholder="{{ "checkout.customerCommentPlaceholder"|trans|sw_sanitize }}" | |||||
| id="{{ constant('Shopware\\Core\\Checkout\\Order\\SalesChannel\\OrderService::CUSTOMER_COMMENT_KEY') }}" | |||||
| form="confirmOrderForm" | |||||
| name="{{ constant('Shopware\\Core\\Checkout\\Order\\SalesChannel\\OrderService::CUSTOMER_COMMENT_KEY') }}"></textarea> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| </div> | |||||
| </div> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| {% block page_checkout_aside_actions %} | |||||
| <div class="checkout-aside-action"> | |||||
| {% block page_checkout_confirm_tos_control %} | |||||
| <div class="custom-control custom-checkbox"> | |||||
| {% block page_checkout_confirm_tos_control_checkbox %} | |||||
| <input type="checkbox" | |||||
| class="checkout-confirm-tos-checkbox custom-control-input{% if formViolations.getViolations('/tos') is not empty %} is-invalid{% endif %}" | |||||
| required="required" | |||||
| id="tos" | |||||
| form="confirmOrderForm" | |||||
| name="tos"/> | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_tos_control_label %} | |||||
| <label for="tos" | |||||
| class="checkout-confirm-tos-label custom-control-label"> | |||||
| {{ "checkout.confirmTerms"|trans({ | |||||
| '%url%': path('frontend.cms.page',{ id: config('core.basicInformation.tosPage') }) | |||||
| })|raw }} | |||||
| </label> | |||||
| {% endblock %} | |||||
| </div> | |||||
| {% endblock %} | |||||
| <form id="confirmOrderForm" | |||||
| action="{{ path('frontend.checkout.finish.order') }}" | |||||
| data-form-csrf-handler="true" | |||||
| data-form-preserver="true" | |||||
| data-form-submit-loader="true" | |||||
| method="post"> | |||||
| {% block page_checkout_aside_actions_csrf %} | |||||
| {{ sw_csrf('frontend.checkout.finish.order') }} | |||||
| {% endblock %} | |||||
| {% block page_checkout_confirm_form_submit %} | |||||
| <button id="confirmFormSubmit" | |||||
| class="btn btn-primary btn-block btn-lg" | |||||
| form="confirmOrderForm" | |||||
| {% if page.cart.errors.blockOrder %} | |||||
| disabled | |||||
| {% endif %} | |||||
| type="submit"> | |||||
| {{ "checkout.confirmSubmit"|trans|sw_sanitize }} | |||||
| </button> | |||||
| {% endblock %} | |||||
| </form> | |||||
| </div> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,25 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/checkout/summary/summary-shipping.html.twig' %} | |||||
| {% block page_checkout_summary_shippings %} | |||||
| {% for delivery in summary.deliveries %} | |||||
| {% block page_checkout_summary_shipping %} | |||||
| {% block page_checkout_summary_shipping_label %} | |||||
| <dt class="col-7 checkout-aside-summary-label"> | |||||
| <a class="product-detail-tax-link" | |||||
| href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}" | |||||
| title="{{ "checkout.summaryShipping"|trans|sw_sanitize }}" | |||||
| data-toggle="modal" | |||||
| data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"> | |||||
| {{ "checkout.summaryShipping"|trans|sw_sanitize }} | |||||
| </a> | |||||
| </dt> | |||||
| {% endblock %} | |||||
| {% block page_checkout_summary_shipping_value %} | |||||
| <dd class="col-5 checkout-aside-summary-value"> | |||||
| {{ delivery.shippingCosts.totalPrice|currency }}{{ "general.star"|trans|sw_sanitize }} | |||||
| </dd> | |||||
| {% endblock %} | |||||
| {% endblock %} | |||||
| {% endfor %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,16 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %} | |||||
| {% block page_product_detail_description_content_text %} | |||||
| {{ parent() }} | |||||
| {% if product.customFields.custom_weightlossplan_day1_image is defined %} | |||||
| {{ product.customFields.custom_weightlossplan_day1_image }} | |||||
| {% endif %} | |||||
| {% if product.customFields.custom_weightlossplan_day1_notice is defined %} | |||||
| {{ product.customFields.custom_weightlossplan_day1_notice|trans }} | |||||
| {% endif %} | |||||
| {% if product.customFields.custom_weightlossplan_day1_shake is defined %} | |||||
| {{ product.customFields.custom_weightlossplan_day1_shake|trans }} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,18 @@ | |||||
| {% sw_extends '@Storefront/storefront/page/product-detail/index.html.twig' %} | |||||
| {% block page_product_detail_content %} | |||||
| {{ parent() }} | |||||
| {% if page.product.customFields.custom_weightlossplan_day1_image is defined %} | |||||
| {% set day1ImageId = page.product.customFields.custom_weightlossplan_day1_image %} | |||||
| {% set mediaCollection = searchMedia([day1ImageId], context.context) %} | |||||
| {% set day1Image = mediaCollection.get(day1ImageId) %} | |||||
| <div class="day1Image"> | |||||
| <img src="{{ day1Image.url }}"> | |||||
| </div> | |||||
| {% endif %} | |||||
| {% if page.product.customFields.custom_weightlossplan_day1_shake is defined %} | |||||
| Shake: {{ page.product.customFields.custom_weightlossplan_day1_shake|trans }} | |||||
| {% endif %} | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,70 @@ | |||||
| <?php declare(strict_types=1); | |||||
| namespace zenit\PlatformAtmosSet1; | |||||
| use Shopware\Core\Framework\Context; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter; | |||||
| use Shopware\Core\Framework\Plugin\Context\UpdateContext; | |||||
| use Shopware\Storefront\Framework\ThemeInterface; | |||||
| use Shopware\Core\Framework\Plugin; | |||||
| class zenitPlatformAtmosSet1 extends Plugin implements ThemeInterface | |||||
| { | |||||
| /** | |||||
| * @var Context | |||||
| */ | |||||
| private $context; | |||||
| public function getThemeConfigPath(): string | |||||
| { | |||||
| return 'theme.json'; | |||||
| } | |||||
| public function postUpdate(UpdateContext $updateContext): void | |||||
| { | |||||
| parent::postUpdate($updateContext); | |||||
| $this->updateThemeDuplicates(); | |||||
| } | |||||
| private function updateThemeDuplicates(): void | |||||
| { | |||||
| $this->context = Context::createDefaultContext(); | |||||
| $criteriaTheme = new Criteria(); | |||||
| $criteriaTheme->addFilter(new EqualsFilter('technicalName', 'zenitPlatformAtmosSet1')); | |||||
| /** @var EntityRepository $themeRepo */ | |||||
| $themeRepo = $this->container->get('theme.repository'); | |||||
| $parentTheme = $themeRepo->search($criteriaTheme, $this->context)->first(); | |||||
| if (!$parentTheme) { | |||||
| return; | |||||
| } | |||||
| $criteriaThemeDuplicates = new Criteria(); | |||||
| $criteriaThemeDuplicates->addFilter(new EqualsFilter('parentThemeId', $parentTheme->get('id'))); | |||||
| $resultThemeDuplicates = $themeRepo->search($criteriaThemeDuplicates, $this->context)->getElements(); | |||||
| if (!$resultThemeDuplicates) { | |||||
| return; | |||||
| } | |||||
| foreach ($resultThemeDuplicates as $themeDuplicate) { | |||||
| $data = [ | |||||
| 'id' => $themeDuplicate->get('id'), | |||||
| 'baseConfig' => $parentTheme->get('baseConfig') | |||||
| ]; | |||||
| if (!$themeDuplicate->get('previewMediaId')) { | |||||
| $data['previewMediaId'] = $parentTheme->get('previewMediaId'); | |||||
| } | |||||
| $themeRepo->update([$data], $this->context); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,44 @@ | |||||
| { | |||||
| "name": "zenit/atmos-set-2", | |||||
| "description": "Theme Atmos by Zenit Design", | |||||
| "version": "2.4.1", | |||||
| "type": "shopware-platform-plugin", | |||||
| "license": "proprietary", | |||||
| "authors": [ | |||||
| { | |||||
| "name": "Zenit Design", | |||||
| "homepage": "https://zenit.design", | |||||
| "role": "Manufacturer" | |||||
| } | |||||
| ], | |||||
| "require": { | |||||
| "shopware/core": "^6.3", | |||||
| "shopware/storefront": "^6.3" | |||||
| }, | |||||
| "extra": { | |||||
| "shopware-plugin-class": "zenit\\PlatformAtmosSet2\\zenitPlatformAtmosSet2", | |||||
| "plugin-icon": "src/Resources/config/plugin.png", | |||||
| "copyright": "(c) by Zenit Design", | |||||
| "label": { | |||||
| "de-DE": "Theme Atmos | Pro - Set 2", | |||||
| "en-GB": "Theme Atmos | Pro - Set 2" | |||||
| }, | |||||
| "description": { | |||||
| "de-DE": "Theme Atmos | Pro - Set 2", | |||||
| "en-GB": "Theme Atmos | Pro - Set 2" | |||||
| }, | |||||
| "manufacturerLink": { | |||||
| "de-DE": "https://store.shopware.com/zenit-design.html", | |||||
| "en-GB": "https://store.shopware.com/en/zenit-design.html" | |||||
| }, | |||||
| "supportLink": { | |||||
| "de-DE": "https://help.zenit.design", | |||||
| "en-GB": "https://help.zenit.design" | |||||
| } | |||||
| }, | |||||
| "autoload": { | |||||
| "psr-4": { | |||||
| "zenit\\PlatformAtmosSet2\\": "src/" | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,57 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||||
| <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| width="205.523px" height="91px" viewBox="0 0 205.523 91" enable-background="new 0 0 205.523 91" xml:space="preserve"> | |||||
| <g> | |||||
| <path fill="#FFFFFF" d="M11.466,62.6c-1.753-0.842-3.144-2.068-4.173-3.682c-1.024-1.611-1.541-3.473-1.541-5.572 | |||||
| c0-3.461,1.367-6.219,4.104-8.278c2.734-2.056,6.743-3.084,12.023-3.084h8.486v-0.562c0-3.084-0.762-5.305-2.28-6.661 | |||||
| c-1.521-1.355-3.892-2.032-7.118-2.032c-1.774,0-3.354,0.138-4.73,0.42c-1.379,0.281-2.909,0.701-4.591,1.262 | |||||
| c-0.376,0.093-0.682,0.14-0.913,0.14c-0.701,0-1.311-0.257-1.822-0.771c-0.516-0.513-0.77-1.145-0.77-1.892 | |||||
| c0-1.264,0.604-2.15,1.818-2.665c3.976-1.684,8.021-2.525,12.131-2.525c3.229,0,5.949,0.656,8.17,1.963 | |||||
| c2.223,1.309,3.856,3.005,4.908,5.084c1.054,2.081,1.578,4.337,1.578,6.767v19.843c0,0.889-0.313,1.638-0.947,2.244 | |||||
| c-0.631,0.605-1.391,0.912-2.277,0.912c-0.892,0-1.64-0.306-2.243-0.912c-0.607-0.605-0.911-1.354-0.911-2.244v-1.824 | |||||
| c-3.461,3.555-7.854,5.33-13.184,5.33C15.124,63.859,13.219,63.439,11.466,62.6z M25.526,56.744 | |||||
| c1.916-1.006,3.529-2.254,4.838-3.751v-5.892h-7.645c-7.062,0-10.59,1.849-10.59,5.539c0,1.686,0.572,3.041,1.72,4.066 | |||||
| c1.146,1.027,3.051,1.543,5.716,1.543C21.621,58.252,23.609,57.75,25.526,56.744z"/> | |||||
| <path fill="#FFFFFF" d="M48.734,54.605V32.865h-4.979c-0.374,0-0.688-0.126-0.942-0.384c-0.262-0.257-0.39-0.573-0.39-0.946 | |||||
| c0-0.467,0.211-0.865,0.634-1.193l9.533-9.326c0.42-0.421,0.817-0.631,1.192-0.631c0.374,0,0.689,0.14,0.947,0.42 | |||||
| c0.257,0.282,0.385,0.609,0.385,0.982v5.61h7.924c0.794,0,1.447,0.257,1.963,0.77c0.519,0.514,0.771,1.169,0.771,1.964 | |||||
| c0,0.748-0.256,1.392-0.771,1.928c-0.516,0.538-1.169,0.805-1.963,0.805h-7.924v21.178c0,1.821,0.433,2.979,1.298,3.474 | |||||
| c0.865,0.488,1.95,0.734,3.261,0.734c0.937,0,1.87-0.143,2.808-0.421c0.185-0.046,0.384-0.095,0.594-0.144 | |||||
| c0.211-0.043,0.479-0.066,0.809-0.066c0.653,0,1.237,0.244,1.751,0.732c0.518,0.492,0.771,1.088,0.771,1.789 | |||||
| c0,1.076-0.538,1.896-1.612,2.455c-1.823,0.84-3.763,1.262-5.816,1.262C52.148,63.859,48.734,60.773,48.734,54.605z"/> | |||||
| <path fill="#FFFFFF" d="M74.328,62.6c-0.604-0.604-0.912-1.354-0.912-2.244V30.274c0-0.888,0.308-1.648,0.912-2.28 | |||||
| c0.607-0.631,1.355-0.946,2.245-0.946c0.887,0,1.646,0.315,2.278,0.946c0.63,0.631,0.944,1.392,0.944,2.28v2.875 | |||||
| c1.31-1.87,2.889-3.411,4.733-4.627s4.242-1.824,7.188-1.824c2.619,0,4.861,0.702,6.73,2.104c1.87,1.403,3.203,3.109,3.998,5.12 | |||||
| c2.898-4.814,7.198-7.223,12.902-7.223c2.615,0,4.804,0.656,6.557,1.963c1.753,1.309,3.05,2.994,3.891,5.05 | |||||
| c0.846,2.057,1.266,4.206,1.266,6.45v20.193c0,0.89-0.315,1.639-0.946,2.244c-0.63,0.606-1.392,0.912-2.277,0.912 | |||||
| c-0.89,0-1.638-0.305-2.245-0.912c-0.605-0.604-0.908-1.354-0.908-2.244V41.422c0-3.038-0.538-5.27-1.614-6.696 | |||||
| c-1.074-1.426-2.922-2.138-5.538-2.138c-2.385,0-4.36,0.62-5.927,1.859c-1.565,1.237-2.957,2.862-4.171,4.872v21.037 | |||||
| c0,0.89-0.315,1.639-0.946,2.244c-0.631,0.606-1.394,0.912-2.278,0.912c-0.888,0-1.638-0.305-2.244-0.912 | |||||
| c-0.606-0.604-0.912-1.354-0.912-2.244V41.422c0-3.038-0.537-5.27-1.61-6.696c-1.076-1.426-2.921-2.138-5.54-2.138 | |||||
| c-2.384,0-4.359,0.62-5.925,1.859c-1.566,1.237-2.957,2.862-4.172,4.872v21.037c0,0.89-0.316,1.639-0.946,2.244 | |||||
| c-0.631,0.606-1.394,0.912-2.278,0.912C75.684,63.512,74.936,63.207,74.328,62.6z"/> | |||||
| <path fill="#FFFFFF" d="M144.094,61.547c-2.707-1.542-4.805-3.729-6.272-6.557c-1.473-2.826-2.206-6.065-2.206-9.712 | |||||
| c0-3.645,0.733-6.881,2.206-9.711c1.471-2.827,3.565-5.014,6.272-6.557c2.712-1.542,5.864-2.313,9.473-2.313 | |||||
| c3.55,0,6.681,0.771,9.396,2.313c2.709,1.543,4.813,3.729,6.312,6.557c1.496,2.83,2.246,6.066,2.246,9.711 | |||||
| c0,3.647-0.75,6.886-2.246,9.712c-1.496,2.828-3.603,5.015-6.312,6.557c-2.715,1.543-5.846,2.313-9.396,2.313 | |||||
| C149.961,63.859,146.806,63.09,144.094,61.547z M159.067,56.709c1.752-0.889,3.2-2.291,4.351-4.206 | |||||
| c1.146-1.917,1.714-4.351,1.714-7.293c0-2.898-0.568-5.306-1.714-7.223c-1.147-1.917-2.599-3.307-4.351-4.172 | |||||
| c-1.754-0.864-3.588-1.297-5.5-1.297c-1.968,0-3.826,0.434-5.576,1.297c-1.756,0.866-3.188,2.256-4.315,4.172 | |||||
| c-1.117,1.917-1.682,4.324-1.682,7.223c0,2.942,0.563,5.376,1.682,7.293c1.128,1.916,2.563,3.317,4.315,4.206 | |||||
| c1.75,0.889,3.608,1.332,5.576,1.332C155.479,58.041,157.313,57.6,159.067,56.709z"/> | |||||
| <path fill="#FFFFFF" d="M179.224,60.706c-0.79-0.563-1.192-1.333-1.192-2.313c0-0.746,0.258-1.401,0.772-1.963 | |||||
| c0.514-0.563,1.17-0.843,1.968-0.843c0.42,0,0.84,0.097,1.26,0.281c1.493,0.653,2.991,1.169,4.486,1.544 | |||||
| c1.496,0.374,3.181,0.563,5.054,0.563c5.188,0,7.779-1.66,7.779-4.979c0-1.075-0.6-1.895-1.789-2.454 | |||||
| c-1.188-0.563-3.144-1.19-5.854-1.894c-2.76-0.654-5.038-1.334-6.84-2.035c-1.799-0.7-3.342-1.763-4.626-3.189 | |||||
| c-1.287-1.426-1.928-3.306-1.928-5.645c0-3.272,1.18-5.936,3.543-7.993c2.354-2.059,5.733-3.086,10.134-3.086 | |||||
| c3.598,0,6.984,0.585,10.162,1.753c0.658,0.188,1.16,0.539,1.513,1.052c0.348,0.516,0.524,1.051,0.524,1.612 | |||||
| c0,0.749-0.271,1.402-0.811,1.963c-0.539,0.562-1.205,0.842-1.992,0.842c-0.236,0-0.539-0.046-0.914-0.141 | |||||
| c-2.711-0.841-5.377-1.262-7.993-1.262c-2.526,0-4.502,0.456-5.934,1.368c-1.421,0.91-2.137,2.092-2.137,3.54 | |||||
| c0,1.404,0.656,2.431,1.963,3.086c1.313,0.656,3.348,1.286,6.104,1.893c2.758,0.702,5.002,1.392,6.729,2.068 | |||||
| c1.734,0.678,3.215,1.741,4.457,3.19c1.237,1.449,1.858,3.391,1.858,5.818c0,2.994-1.186,5.472-3.54,7.436 | |||||
| c-2.363,1.963-5.695,2.943-9.993,2.943C187.316,63.859,183.06,62.811,179.224,60.706z"/> | |||||
| </g> | |||||
| <rect x="73.738" y="87" fill="#E87D00" width="53" height="4"/> | |||||
| </svg> | |||||
| @@ -0,0 +1,57 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |||||
| <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| width="205.523px" height="91px" viewBox="0 0 205.523 91" enable-background="new 0 0 205.523 91" xml:space="preserve"> | |||||
| <g> | |||||
| <path fill="#333333" d="M11.466,62.599c-1.753-0.841-3.144-2.068-4.173-3.681c-1.026-1.612-1.541-3.472-1.541-5.573 | |||||
| c0-3.461,1.367-6.218,4.102-8.277c2.736-2.056,6.743-3.084,12.025-3.084h8.486v-0.562c0-3.084-0.762-5.305-2.28-6.661 | |||||
| c-1.521-1.355-3.892-2.032-7.118-2.032c-1.776,0-3.354,0.138-4.732,0.42c-1.379,0.281-2.909,0.701-4.591,1.262 | |||||
| c-0.376,0.093-0.68,0.14-0.913,0.14c-0.701,0-1.309-0.257-1.822-0.771c-0.516-0.513-0.77-1.145-0.77-1.892 | |||||
| c0-1.264,0.604-2.15,1.82-2.665c3.974-1.684,8.019-2.525,12.131-2.525c3.227,0,5.949,0.656,8.17,1.963 | |||||
| c2.221,1.309,3.856,3.005,4.908,5.084c1.052,2.081,1.578,4.337,1.578,6.767v19.844c0,0.888-0.315,1.637-0.947,2.244 | |||||
| c-0.631,0.606-1.391,0.912-2.279,0.912c-0.89,0-1.638-0.305-2.243-0.912c-0.607-0.606-0.911-1.355-0.911-2.244v-1.824 | |||||
| c-3.461,3.554-7.855,5.33-13.184,5.33C15.124,63.86,13.219,63.44,11.466,62.599z M25.526,56.744 | |||||
| c1.916-1.005,3.529-2.254,4.838-3.751v-5.891h-7.645c-7.06,0-10.588,1.848-10.588,5.539c0,1.685,0.572,3.041,1.718,4.067 | |||||
| c1.146,1.028,3.051,1.543,5.716,1.543C21.621,58.252,23.609,57.75,25.526,56.744z"/> | |||||
| <path fill="#333333" d="M48.734,54.606v-21.74h-4.979c-0.374,0-0.688-0.126-0.944-0.384c-0.26-0.257-0.388-0.573-0.388-0.946 | |||||
| c0-0.467,0.211-0.865,0.632-1.193l9.535-9.326c0.42-0.421,0.817-0.631,1.192-0.631c0.374,0,0.689,0.14,0.947,0.42 | |||||
| c0.257,0.282,0.385,0.609,0.385,0.982v5.61h7.924c0.794,0,1.447,0.257,1.963,0.77c0.517,0.514,0.771,1.169,0.771,1.964 | |||||
| c0,0.748-0.256,1.392-0.771,1.928c-0.516,0.538-1.169,0.805-1.963,0.805h-7.924v21.178c0,1.822,0.433,2.979,1.298,3.472 | |||||
| c0.865,0.49,1.95,0.736,3.261,0.736c0.935,0,1.87-0.141,2.806-0.421c0.185-0.046,0.384-0.093,0.594-0.142 | |||||
| c0.211-0.043,0.479-0.068,0.809-0.068c0.653,0,1.237,0.246,1.751,0.734c0.516,0.492,0.771,1.088,0.771,1.789 | |||||
| c0,1.076-0.538,1.894-1.612,2.455c-1.824,0.84-3.763,1.262-5.818,1.262C52.148,63.86,48.734,60.774,48.734,54.606z"/> | |||||
| <path fill="#333333" d="M74.328,62.599c-0.606-0.605-0.912-1.354-0.912-2.244V30.274c0-0.888,0.306-1.648,0.912-2.28 | |||||
| c0.607-0.631,1.355-0.946,2.245-0.946c0.887,0,1.646,0.315,2.278,0.946c0.63,0.631,0.946,1.392,0.946,2.28v2.875 | |||||
| c1.308-1.87,2.887-3.411,4.733-4.627c1.846-1.216,4.242-1.824,7.188-1.824c2.619,0,4.861,0.702,6.73,2.103 | |||||
| c1.87,1.403,3.203,3.109,3.998,5.12c2.898-4.814,7.198-7.223,12.902-7.223c2.617,0,4.804,0.656,6.557,1.963 | |||||
| c1.753,1.309,3.05,2.994,3.891,5.05c0.844,2.057,1.264,4.206,1.264,6.45v20.195c0,0.888-0.315,1.637-0.946,2.244 | |||||
| c-0.63,0.606-1.392,0.912-2.277,0.912c-0.89,0-1.638-0.305-2.245-0.912c-0.607-0.606-0.91-1.355-0.91-2.244V41.422 | |||||
| c0-3.038-0.538-5.27-1.614-6.696c-1.074-1.426-2.922-2.138-5.538-2.138c-2.385,0-4.36,0.62-5.927,1.859 | |||||
| c-1.565,1.237-2.957,2.862-4.171,4.872v21.036c0,0.889-0.315,1.638-0.946,2.244c-0.631,0.607-1.393,0.912-2.278,0.912 | |||||
| c-0.888,0-1.638-0.304-2.244-0.912c-0.608-0.605-0.913-1.354-0.913-2.244V41.422c0-3.038-0.538-5.27-1.611-6.696 | |||||
| c-1.076-1.426-2.921-2.138-5.54-2.138c-2.384,0-4.359,0.62-5.925,1.859c-1.566,1.237-2.957,2.862-4.172,4.872v21.036 | |||||
| c0,0.889-0.316,1.638-0.946,2.244c-0.631,0.607-1.392,0.912-2.278,0.912C75.684,63.511,74.936,63.207,74.328,62.599z"/> | |||||
| <path fill="#333333" d="M144.094,61.547c-2.707-1.542-4.803-3.728-6.272-6.557c-1.473-2.826-2.206-6.065-2.206-9.712 | |||||
| c0-3.645,0.733-6.881,2.206-9.711c1.471-2.827,3.565-5.014,6.272-6.557c2.712-1.542,5.866-2.313,9.473-2.313 | |||||
| c3.55,0,6.681,0.771,9.396,2.313c2.709,1.543,4.813,3.729,6.31,6.557c1.496,2.83,2.246,6.066,2.246,9.711 | |||||
| c0,3.647-0.75,6.886-2.246,9.712c-1.496,2.829-3.601,5.015-6.31,6.557c-2.715,1.543-5.846,2.313-9.396,2.313 | |||||
| C149.961,63.86,146.806,63.09,144.094,61.547z M159.067,56.709c1.752-0.888,3.2-2.291,4.351-4.206 | |||||
| c1.144-1.917,1.714-4.35,1.714-7.293c0-2.898-0.57-5.306-1.714-7.223c-1.149-1.917-2.599-3.307-4.351-4.172 | |||||
| c-1.754-0.864-3.588-1.297-5.5-1.297c-1.968,0-3.826,0.434-5.576,1.297c-1.756,0.866-3.189,2.256-4.315,4.172 | |||||
| c-1.119,1.917-1.682,4.324-1.682,7.223c0,2.943,0.563,5.376,1.682,7.293c1.126,1.916,2.561,3.318,4.315,4.206 | |||||
| c1.75,0.888,3.608,1.332,5.576,1.332C155.479,58.041,157.313,57.599,159.067,56.709z"/> | |||||
| <path fill="#333333" d="M179.224,60.706c-0.79-0.563-1.192-1.333-1.192-2.314c0-0.746,0.258-1.402,0.772-1.963 | |||||
| c0.514-0.562,1.17-0.842,1.968-0.842c0.42,0,0.84,0.096,1.26,0.281c1.493,0.654,2.991,1.169,4.486,1.544 | |||||
| c1.496,0.374,3.181,0.562,5.054,0.562c5.188,0,7.779-1.66,7.779-4.979c0-1.075-0.598-1.894-1.789-2.454 | |||||
| c-1.188-0.563-3.142-1.191-5.854-1.893c-2.76-0.655-5.038-1.334-6.84-2.035c-1.799-0.701-3.342-1.764-4.626-3.19 | |||||
| c-1.287-1.426-1.928-3.306-1.928-5.645c0-3.272,1.18-5.936,3.543-7.993c2.354-2.059,5.735-3.086,10.134-3.086 | |||||
| c3.598,0,6.984,0.585,10.162,1.753c0.658,0.188,1.16,0.539,1.513,1.052c0.346,0.516,0.524,1.051,0.524,1.612 | |||||
| c0,0.749-0.271,1.402-0.809,1.963c-0.539,0.562-1.205,0.842-1.994,0.842c-0.236,0-0.539-0.046-0.914-0.141 | |||||
| c-2.711-0.841-5.377-1.262-7.993-1.262c-2.526,0-4.502,0.456-5.932,1.368c-1.421,0.91-2.137,2.092-2.137,3.54 | |||||
| c0,1.404,0.656,2.431,1.963,3.086c1.311,0.656,3.346,1.286,6.104,1.893c2.758,0.702,5.002,1.392,6.729,2.068 | |||||
| c1.734,0.678,3.215,1.741,4.457,3.19c1.237,1.45,1.858,3.39,1.858,5.819c0,2.994-1.184,5.471-3.54,7.435 | |||||
| c-2.363,1.963-5.695,2.944-9.993,2.944C187.316,63.86,183.06,62.81,179.224,60.706z"/> | |||||
| </g> | |||||
| <rect x="73.738" y="87" fill="#E87D00" width="53" height="4"/> | |||||
| </svg> | |||||
| @@ -0,0 +1,8 @@ | |||||
| /* | |||||
| Override variable defaults | |||||
| ================================================== | |||||
| This file is used to override default SCSS variables from the Shopware Storefront or Bootstrap. | |||||
| Because of the !default flags, theme variable overrides have to be declared beforehand. | |||||
| https://getbootstrap.com/docs/4.0/getting-started/theming/#variable-defaults | |||||
| */ | |||||
| @@ -0,0 +1,70 @@ | |||||
| <?php declare(strict_types=1); | |||||
| namespace zenit\PlatformAtmosSet2; | |||||
| use Shopware\Core\Framework\Context; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria; | |||||
| use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter; | |||||
| use Shopware\Core\Framework\Plugin\Context\UpdateContext; | |||||
| use Shopware\Storefront\Framework\ThemeInterface; | |||||
| use Shopware\Core\Framework\Plugin; | |||||
| class zenitPlatformAtmosSet2 extends Plugin implements ThemeInterface | |||||
| { | |||||
| /** | |||||
| * @var Context | |||||
| */ | |||||
| private $context; | |||||
| public function getThemeConfigPath(): string | |||||
| { | |||||
| return 'theme.json'; | |||||
| } | |||||
| public function postUpdate(UpdateContext $updateContext): void | |||||
| { | |||||
| parent::postUpdate($updateContext); | |||||
| $this->updateThemeDuplicates(); | |||||
| } | |||||
| private function updateThemeDuplicates(): void | |||||
| { | |||||
| $this->context = Context::createDefaultContext(); | |||||
| $criteriaTheme = new Criteria(); | |||||
| $criteriaTheme->addFilter(new EqualsFilter('technicalName', 'zenitPlatformAtmosSet2')); | |||||
| /** @var EntityRepository $themeRepo */ | |||||
| $themeRepo = $this->container->get('theme.repository'); | |||||
| $parentTheme = $themeRepo->search($criteriaTheme, $this->context)->first(); | |||||
| if (!$parentTheme) { | |||||
| return; | |||||
| } | |||||
| $criteriaThemeDuplicates = new Criteria(); | |||||
| $criteriaThemeDuplicates->addFilter(new EqualsFilter('parentThemeId', $parentTheme->get('id'))); | |||||
| $resultThemeDuplicates = $themeRepo->search($criteriaThemeDuplicates, $this->context)->getElements(); | |||||
| if (!$resultThemeDuplicates) { | |||||
| return; | |||||
| } | |||||
| foreach ($resultThemeDuplicates as $themeDuplicate) { | |||||
| $data = [ | |||||
| 'id' => $themeDuplicate->get('id'), | |||||
| 'baseConfig' => $parentTheme->get('baseConfig') | |||||
| ]; | |||||
| if (!$themeDuplicate->get('previewMediaId')) { | |||||
| $data['previewMediaId'] = $parentTheme->get('previewMediaId'); | |||||
| } | |||||
| $themeRepo->update([$data], $this->context); | |||||
| } | |||||
| } | |||||
| } | |||||