custom/plugins/TrustedShops/src/TrustedShops.php line 9

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace TrustedShops;
  3. use Shopware\Core\Framework\Plugin;
  4. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  5. use Shopware\Core\System\SystemConfig\SystemConfigService;
  6. class TrustedShops extends Plugin
  7. {
  8.     public function install(InstallContext $installContext): void
  9.     {
  10.         $this->installDefaultConfig();
  11.         parent::install($installContext);
  12.     }
  13.     protected function installDefaultConfig(): void
  14.     {
  15.         /** @var SystemConfigService $systemConfig */
  16.         $systemConfig $this->container->get(SystemConfigService::class);
  17.         $domain $this->getName() . '.config.';
  18.         $defaultConfig = [
  19.             'tsId' => '',
  20.             'tsTrustbadgeExpertMode' => false,
  21.             'tsTrustbadgeVariant' => 'reviews',
  22.             'tsTrustbadgeOffsetY' => 0,
  23.             'tsExpertTrustbadeCode' => "<script type=\"text/javascript\">
  24. (function () {
  25.     var _tsid = '%tsid%';
  26.     _tsConfig = {
  27.         'yOffset': '0', /* offset from page bottom */
  28.         'variant': 'default', /* reviews, default, custom, custom_reviews */
  29.         'customElementId': '', /* required for variants custom and custom_reviews */
  30.         'trustcardDirection': '', /* for custom variants: topRight, topLeft, bottomRight, bottomLeft */
  31.         'customBadgeWidth': '', /* for custom variants: 40 - 90 (in pixels) */
  32.         'customBadgeHeight': '', /* for custom variants: 40 - 90 (in pixels) */
  33.         'disableResponsive': 'false', /* deactivate responsive behaviour */
  34.         'disableTrustbadge': 'false', /* deactivate Trustbadge® */
  35.         'responsive': {
  36.             'variant': '', /* floating, custom */
  37.             'customElementId': '' /* required for variant custom */
  38.         }
  39.     };
  40.     var _ts = document.createElement('script');
  41.     _ts.type = 'text/javascript';
  42.     _ts.charset = 'utf-8';
  43.     _ts.async = true;
  44.     _ts.src = '//widgets.trustedshops.com/js/' + _tsid + '.js';
  45.     var __ts = document.getElementsByTagName('script')[0];
  46.     __ts.parentNode.insertBefore(_ts, __ts);
  47. })();
  48. </script>",
  49.             'tsReviewStickerActive' => false,
  50.             'tsReviewStickerExpertMode' => false,
  51.             'tsReviewStickerFontType' => 'Arial',
  52.             'tsReviewStickerReviewCount' => 5,
  53.             'tsReviewStickerMinRating' => 3.0,
  54.             'tsReviewStickerBackgroundColor' => '#ffdc0f',
  55.             'tsExpertReviewStickerCode' => "<script type=\"text/javascript\">
  56. (function() {
  57.     _tsRatingConfig = {
  58.         tsid: '%tsid%',
  59.         variant: 'testimonial',
  60.         theme: 'light',
  61.         reviews: '5',
  62.         betterThan: '3.0',
  63.         richSnippets: 'off',
  64.         backgroundColor: '#ffdc0f',
  65.         linkColor: '#000000',
  66.         quotationMarkColor: '#FFFFFF',
  67.         fontFamily: 'Arial',
  68.         reviewMinLength: '10'
  69.     };
  70.     var scripts = document.getElementsByTagName('SCRIPT'),
  71.         me = scripts[scripts.length - 1];
  72.     var _ts = document.createElement('SCRIPT');
  73.     _ts.type = 'text/javascript';
  74.     _ts.async = true;
  75.     _ts.src =
  76.         '//widgets.trustedshops.com/reviews/tsSticker/tsSticker.js';
  77.     me.parentNode.insertBefore(_ts, me);
  78.     _tsRatingConfig.script = _ts;
  79. })();
  80. </script>",
  81.             'tsExpertReviewStickerJquerySelector' => '',
  82.             'tsRichSnippetsActive' => false,
  83.             'tsRichSnippetsPageTypeCategory' => false,
  84.             'tsRichSnippetsPageTypeProduct' => false,
  85.             'tsRichSnippetsPageTypeStart' => false,
  86.             'tsRichSnippetsExpertMode' => false,
  87.             'tsExpertRichSnippetsCode' => "<script type=\"application/ld+json\">
  88. {
  89.     \"@context\": \"http://schema.org\",
  90.     \"@type\": \"Organization\",
  91.     \"name\": \"%shopname%\",
  92.     \"aggregateRating\" : {
  93.         \"@type\": \"AggregateRating\",
  94.         \"ratingValue\" : \"%result%\",
  95.         \"bestRating\" : \"%max%\",
  96.         \"ratingCount\" : \"%count%\"
  97.     }
  98. }
  99. </script>",
  100.             'tsProductReviewsActive' => false,
  101.             'tsProductReviewsTabActive' => false,
  102.             'tsProductReviewsTabName' => 'Trusted Shops Bewertungen',
  103.             'tsProductReviewsTabExpertMode' => false,
  104.             'tsProductReviewsTabBorderColor' => '#0DBEDC',
  105.             'tsProductReviewsTabStarColor' => '#FFDC0F',
  106.             'tsProductReviewsTabBackgroundColor' => '#FFFFFF',
  107.             'tsProductReviewsTabStarSize' => 15,
  108.             'tsExpertProductReviewsTabCode' => "<script type=\"text/javascript\">
  109. (function () {
  110.     _tsProductReviewsConfig = {
  111.         tsid: '%tsid%',
  112.         sku: ['%sku%'],
  113.         variant: 'productreviews',
  114.         borderColor: '#0DBEDC',
  115.         backgroundColor: '#ffffff',
  116.         element: '#ts_product_sticker',
  117.         locale: '%locale%',
  118.         starColor: '#FFDC0F',
  119.         starSize: '15px',
  120.         richSnippets: 'off',
  121.         ratingSummary: 'false', 
  122.         maxHeight: '1200px',
  123.         hideEmptySticker: 'false',
  124.         introtext: 'What our customers say about us:'
  125.         /* optional */
  126.     };
  127.     var scripts = document.getElementsByTagName('SCRIPT'),
  128.     me = scripts[scripts.length - 1];
  129.     var _ts = document.createElement('SCRIPT');
  130.     _ts.type = 'text/javascript';
  131.     _ts.async = true;
  132.     _ts.charset = 'utf-8';
  133.     _ts.src ='//widgets.trustedshops.com/reviews/tsSticker/tsProductSticker.js';
  134.     me.parentNode.insertBefore(_ts, me);
  135.     _tsProductReviewsConfig.script = _ts;
  136. })();
  137. </script>",
  138.             'tsExpertProductReviewsTabJquerySelector' => '',
  139.             'tsProductRatingStarsCategoryActive' => false,
  140.             'tsProductRatingStarsDetailsActive' => false,
  141.             'tsProductRatingStarsExpertMode' => false,
  142.             'tsProductRatingStarsHideEmptyRatings' => false,
  143.             'tsProductRatingStarsStarColor' => '#FFDC0F',
  144.             'tsProductRatingStarsStarSize' => 15,
  145.             'tsProductRatingStarsFontSize' => 12,
  146.             'tsExpertProductRatingStarsCode' => "<script type=\"text/javascript\" src=\"//widgets.trustedshops.com/reviews/tsSticker/tsProductStickerSummary.js\"></script>
  147. <script type=\"text/javascript\">
  148. (function() {
  149.     var summaryBadge = new productStickerSummary();
  150.     summaryBadge.showSummary(
  151.         {
  152.             'tsId': \"%tsid%\",
  153.             'sku': ['%sku%'],
  154.             'element': '#ts_product_widget_position',
  155.             'starColor' : '#FFDC0F',
  156.             'starSize' : '14px',
  157.             'fontSize' : '12px',
  158.             'showRating' : 'true' ,
  159.             'scrollToReviews' : 'false' ,
  160.             'enablePlaceholder': 'true'
  161.         }
  162.     );
  163. })();
  164. </script>",
  165.             'tsExpertProductRatingStarsJquerySelector' => '',
  166.             'tsAvailableProductDeliveryTime' => 'default',
  167.             'tsNotAvailableProductDeliveryTime' => 'default',
  168.             'tsAvailableProductDeliveryTimeDays' => 4,
  169.             'tsNotAvailableProductDeliveryTimeDays' => 10,
  170.         ];
  171.         foreach( $defaultConfig as $configKey => $configValue ) {
  172.             $currentValue $systemConfig->get($domain $configKey);
  173.             if ($currentValue === null) {
  174.                 $systemConfig->set($domain $configKey$configValue );
  175.             }
  176.         }
  177.     }
  178. }