Comparer les révisions

..

Pas de révisions en commun. "rel_4.x" et "master" ont des historiques entièrement différents.

133 fichiers modifiés avec 276 ajouts et 6212 suppressions

2
.gitattributes externe
Voir le fichier

@ -1,2 +0,0 @@
* text=auto !eol
*.tpl text eol=lf

Voir le fichier

@ -1 +0,0 @@
copyAsIsFiles=modules

Voir le fichier

@ -1,37 +0,0 @@
# D³ Google-Services
Dieses Modul bietet eine Schritt-für-Schritt Konfiguration von Individualartikeln an. Der Kunde wählt in jedem
Schritt die von ihm gewünschte Option, die mit Bildern, Beschreibungstexten und ggf. Aufpreisinformationen
dargestellt werden können. Weiterhin gibt es optionale Freitexte, in denen z.B. Abmessungen etc. hinterlegt werden können.
## Systemanforderungen:
* PHP Version
* 7.1 bis PHP 8.0
* Shopversionen / -editionen
* OXID eShop Community Edition (CE), Professional Edition (PE) oder Enterprise Edition (EE) in Compilation Version
* 6.2.x
* 6.3.x
* 6.4.x
* [D³ Modul-Connector](https://www.oxidmodule.com/Modul-Connector/Modul-Connector-fuer-Oxid-CE-PE-EE.html)
* Installation via Composer
Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes oder unter [docs.oxidmodule.com](https://docs.oxidmodule.com).
## Installation / Update / Deinstallation:
Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets oder unter [docs.oxidmodule.com](https://docs.oxidmodule.com).
## Hilfe und Support
Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie uns bitte unter den unten
genannten Kontaktdaten Bescheid.
Haben Sie Fragen oder Unklarheiten in Verbindung mit diesem Modul oder dessen Installation, stehen Ihnen Hilfetexte in
unserer [Modul-FAQ](http://faq.oxidmodule.com/) zur Verfügung. Finden Sie darin die benötigten Antworten nicht, kontaktieren
Sie uns bitte unter den folgenden Möglichkeiten:
1. per E-Mail: <support@shopmodule.com> oder
2. über das Kontaktformular auf [Oxidmodule.com](https://www.oxidmodule.com/) oder
3. per Telefon: (+49) 37 21 / 26 80 90 zu unseren Bürozeiten
Geben Sie bitte an, wo und wie wir gegebenenfalls vorhandene Schwierigkeiten nachvollziehen können. Sind Ihre Fragen
shopspezifisch, benötigen wir möglicherweise Zugangsdaten zum betreffenden Shop.

Voir le fichier

32
changelog/010_Changelog.md Fichier normal
Voir le fichier

@ -0,0 +1,32 @@
---
title: Changelog
---
## noch nicht veröffentlicht
---
## 1.1.0.1 - (2019-02-20)
### Fixed
- ...
- ...
---
## 1.1.0.0 - (2018-05-29)
**Minor version upgrade notice: there are some backward-incompatible changes to this release.**
#### Fixed
- Einstellungs-Überladung korrigiert - verwendet Einstellungen der Hauptsprache, wenn in aktueller Sprache keine Einstellungen gespeichert wurden
#### Changed
- kleine Textänderungen in der Installationsroutine
---
## 1.0.0.0 - (2018-05-15)
#### Added
- Angepasst für Shopversion 6.x, Installation via Composer

Voir le fichier

@ -1,38 +0,0 @@
{
"name": "d3/googleservices",
"description": "Google Services for OXID eShop.",
"type": "oxideshop-module",
"keywords": [
"oxid",
"modules",
"eShop",
"d3",
"google",
"analytics",
"adwords",
"remarketing"
],
"authors": [
{
"name": "D3 Data Development (Inh. Thomas Dartsch)",
"email": "info@shopmodule.com",
"homepage": "https://www.d3data.de",
"role": "Owner"
}
],
"homepage": "https://www.oxidmodule.com/",
"license": [
"GPL-3.0-or-later"
],
"extra": {
"oxideshop": {
"source-directory": "/src",
"target-directory": "d3/d3_googleanalytics"
}
},
"require": {
"php": ">=7.1",
"oxid-esales/oxideshop-ce": "6.5 - 6.10",
"d3/modcfg": "^5.3.1.100 || ^6.0"
}
}

Voir le fichier

@ -1,10 +1,10 @@
{
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> Google Services",
"moduleversion": "4.5.0.0",
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"moduleversion": "5.0.0.0",
"titledesc": "für den Oxid eShop",
"author": "D³ Data Development",
"moduledate": "20.07.2021",
"editors": "",
"moduledate": "17.04.2018",
"editors": "XX/YY",
"tagline": "",
"image": "",
"ignore": {
@ -32,6 +32,7 @@
"powered_by": ""
},
"languages": {
"editions": "Editionen",
"installation": "Installation",
"manual": "Handbuch",
"changelog": "Changelog",
@ -61,12 +62,12 @@
}
},
"variables": {
"modulename" : "<i class='fab fa-d3 d3fa-color-blue'></i> Google Services",
"menutitle" : "<i class='fab fa-d3 d3fa-color-blue'></i> Google Services",
"modulefolder" : "d3_googleanalytics",
"metadataident" : "d3_googleanalytics",
"modcfgident" : "d3_googleanalytics",
"composerident" : "d3/googleservices"
"modulename" : "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"menutitle" : "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"modulefolder" : "module_folder",
"metadataident" : "d3moduleid",
"modcfgident" : "d3modident",
"composerident" : "d3/moduleident"
},
"versionselector": false,
"versiondirectoryindex": 2

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 58 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 56 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 438 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 178 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 261 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 331 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 211 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 45 KiB

Fichier binaire non affiché.

Avant

Largeur:  |  Hauteur:  |  Taille: 629 KiB

Voir le fichier

@ -1,181 +0,0 @@
---
title: Changelog
---
## 4.5.0.0 - (2021-07-20)
### Added
- Update für OXID 6.3
---
## 4.1.0.0 - (2020-07-28)
### Added
- Update für OXID 6.2 (vielen Dank an Marten Seemann)
### Changed
- Dokumentationsformat aktualisiert
---
## 4.0.0.2
### Changed
- Installation via Composer ermöglicht
### Fixed
- Hotfix für Google Chrome Browser, vermeidet unnötigen Leerraum vor den Settings im Admin
---
## 4.0.0.1
### Fixed
- "weiße" Thankyou-Seite behoben
- 0007740: ecomm_totalvalue: [{$sD3GARemarketingPrice}] - als Standardwert wird nun 0 übergeben, damit ecomm_totalvalue nicht leer bleibt und dadurch Syntaxfehler verursacht
- 0007832: fehlende Angabe der Währung
---
## 4.0.0.0
### Changed
- Oxid V6 Release
### Fixed
- 0006419: Korrektur der Benamung der Eingabefelder für Remarketing
**Minor version upgrade notice: there are some backward-incompatible changes to this release.**
---
## 3.4.0.0
### Changed
- Remarketing (via Analytics) eingefügt
- Remarketing-Liste für Startseite eingefügt
- Template-Blöcke eingefügt
- Titel der Konfigurationsseiten angepasst
- Scriptsyntax angepasst
### Fixed
- Staffelpreisübergaben korrigiert (0003679)
- Steuerberechnung korrigiert
## 3.4.0.1
### Changed
- 0005078: ecomm_totalvalue darf nicht in Apostrophen stehen
- 0004814: Remarketing: Werte für ecomm_pagetype anpassen
- 0004509: changed_full entfernen
- AdBlock-Checker in Admin integriert, da dieser die Darstellung des Adminbereichs blockieren kann
## 3.3.2.0
- fix: Optionen im Admin können nicht deaktivert werden
- "Zertifizierter Händler" im Shop aktivieren
- zusätzliche Daten aus Google Shopping übertragen
- fix:
- fix:
- Link "Hilfe starten" korrigieren
- Aktualisierung der Modulinstallationsanleitung / Vorabprüfung (d3precheck)
- freigegeben bis PHP 5.6
### Fixed
- Zertifizierte Händler, "locale" Eintrag auch ohne aktive Option "zusätzliche Daten aus Google Shopping übertragen"
- Kampagnencode wurde nicht übertragen
## 3.3.1.0
- Lieferzeitangabe kann nun für lagernde und nicht lagernde Artikel getrennt angegeben werden
- Domainliste bei Verwendung mehrerer Shop-Domains korrigiert
- Schalter für Absprungratenermittlung integriert
- "Zertifizierte Händler"-Variablen werden nur gezeigt, wenn "Zertifizierter Händler" aktiv ist
- JS-Fehler bei unkonfigurierter Absprung-Zeit korrigiert
## 3.3.0.1
- Kompatibilität zu Egate Media PayPal verbessert
## 3.3.0.0
- Google Zertifizierte Händler eingefügt
- Hilfetexte erweitert
- Integration ins Mobile-Theme
- Optimierung der Transaktionsübergaben
- getrackte Absprungrate optimiert
- Konfigurationsvariablen korrigiert
- Fehler bei "toBasket" auf Detailseite ohne Kategorieangabe korrigiert
## 3.2.1.0
- neue Option "Opt Out anzeigen lassen"
## 3.2.0.0
- Tracking für gekaufte Artikel enthält Daten zur Kategorie / Seite, aus der die Artikel zuerst in den Warenkorb gelegt wurden
- Bugfix: Artikeltitel werden escaped, sofern Quotes enthalten sind
- AutoLinker-URL enthält auch abweichende SSL-URLs
## 3.1.0.2
- Bugfix: deaktiviertes Modul kann benötigtes Objekt nicht laden
- Bugfix: Seiten ohne Klassenangaben (z.B. 404-Seiten) versuchen Artikellisten für Remarketing zu laden
## 3.1.0.1
- Universal-Trackingcode für Multi-Domain-Nutzung angepasst
## 3.1.0.0
- Universal-Analytics Tracking-Code implementiert
- zusätzliche Steuerungsparameter eingefügt
- Trichtererfassung vereinfacht
- konfigurierbarerer AdWords Conversion-Trackingcode integriert
- Remarketing-Tags integriert
## 3.0.0.3
- Precheck angepasst
- Templates für 4.8.0 / 5.1.0 hinzugefügt
## 3.0.0.2
- automatische Installation angepasst
## 3.0.0.1
- Umstellung auf teilautomatische Installation
- Übergabe der Steuer
## 3.0.0.0
- Umstellung auf Struktur des OXID 4.7 / 5.0
- benutzerdefinierte Variablen um "Neukunde" ergänzt
- Trackingcode in <head> verschoben
- optionales Logging integriert
## 2.4.1
- Templates für OXID 4.6.4 kompatibel
## 2.4.0
- Remarketing-Option eingefügt
- Metadaten vervollständigt
- Syntaxfehler im JS-Code entfernt
## 2.3.0
- Templates für OXID 4.5.11 und 4.6.2 kompatibel
- weitere Beispiele für benutzerdefinierte Variablen eingefügt
## 2.2.2
- Templates für OXID 4.6 eingefügt
- Metadaten eingefügt
- Templates für OXID 4.5.9 kompatibel
## 2.2.1
- Templates für OXID 4.5.3 bis 4.5.6 kompatibel
- Syntaxfehler im JS-Code entfernt
## 2.2.0
#### Changed
- Kampagnen können unabhängig von deren Code deaktiviert werden
- Ladezeit-Log hinzugefügt
- Preise werden in Shophauptwährung übertragen
- Templates für OXID 4.5.1 kompatibel

Voir le fichier

@ -1,21 +0,0 @@
---
title: Systemanforderungen
---
* PHP Version
* 7.1.x bis 8.0.x
* Shopeditionen
* OXID eShop Community Edition (CE)
* OXID eShop Professional Edition (PE)
* OXID eShop Enterprise Edition (EE)
* OXID eShop B2B Edition
* Shopversionen
* OXID eShop in Compilation Version
* 6.2.x
* 6.3.x
* Themes
* azure
* flow
* wave
* D3 Modul-Connector ([kostenfrei bei D3 erhältlich](https://www.oxidmodule.com/connector/)) ab Version 5.3.1.1
* Installation via [Composer](https://getcomposer.org)

Voir le fichier

@ -1,19 +0,0 @@
---
title: Datenbank bereinigen
---
Das Modul legt Informationen in der Datenbank ab. Sofern diese Daten nicht mehr benötigt werden, können diese gelöscht werden.
> [!] Legen Sie sich vorab bitte unbedingt eine Sicherung an, um die Daten im Zweifelsfall wiederherstellen zu können.
Für das Modul **{$modulename}** sind dies die folgende Felder:
* in Tabelle `oxorderarticles`:
* das Feld `D3_GALOCATOR`
sowie diese Einträge in bestehenden Tabellen:
* in Tabelle `d3_cfg_mod`:
* den Eintrag `oxmodid = "{$modcfgident}"` **)
**) Diesen Eintrag gibt es ggf. für jeden Subshop. Entfernen Sie diesen nur für die Mandanten, in denen das Modul **nicht** mehr installiert ist.

Voir le fichier

@ -1,8 +0,0 @@
---
title: Handbuch
---
* [Einrichtungsleitfaden Google Analytics](010_Google_Analytics_Einrichtung)
* [Einrichtungsleitfaden Google AdWords ](020_Google_AdWords_Einrichtung)
Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie uns bitte unter den unter [Hilfe und Support](support/010_Hilfe-und-Support.md) genannten Kontaktdaten Bescheid.

Voir le fichier

@ -1,16 +0,0 @@
---
title: Oxid-Shop spezifische Informationen für die Einrichtung des Analytics-Kontos
---
Folgend nun einige Informationen über shopspezifische Informationen, um einige Features der Google Dienste besser einsetzen zu können.
## "Standardseite"
Die Startseite des Shops ist über folgende URLs Aufrufbar:
- www.meine-website.de
- www.meine-website.de/index.php
- www.meine-website.de/startseite/
## "Suchparameter"
Bei Nutzung der shopinternen Suche, kommt `searchparam` als Suchparameter zum Einsatz.

Voir le fichier

@ -1,5 +0,0 @@
---
title: Grundeinrichtung
---
![](../../assets/UGA_Einstellungen.jpg)

Voir le fichier

@ -1,9 +0,0 @@
---
title: Zieleinrichtung
---
![](../../assets/UGA_Trichtereinrichtung_1.jpg)
![](../../assets/UGA_Trichtereinrichtung.jpg)
Über Ziele können Sie prüfen, ob bestimmte Seiten über einen definierten Weg aufgerufen wurden. Ein typischer Einsatzfall ist der Bestelldurchlauf, der durch die abgeschlossene Bestellung beendet wird. Für genau diesen Fall liefert das vorliegende Modul die erforderlichen Daten. Um dieses Ziel (Trichter) in Ihrem Analytics-Konto anzulegen, folgen Sie den nächsten Screenshots.

Voir le fichier

@ -1,9 +0,0 @@
---
title: Benutzerdefinierte Dimensionen
---
Möchten Sie die Seitenladezeiten zusätzlich auswerten, lassen Sie diese als benutzerdefinierte Messwerte registrieren. Haben Sie im Adminbereich des Shops die Option unter
[ Admin ] -> [ (D3) Module ] -> [ {$menutitle} ] -> [ Einstellungen ] -> [ Analytics ] -> [ Grundeinstellungen ] -> [ Seitenladezeit mit übertragen ]
aktiviert, wird die Ladezeit automatisch in die Metrik 1 übertragen.
Richten Sie diese entsprechend der folgenden Grafik in Ihrem Analytics-Konto ein.
Möchten Sie weitere Metriken verwenden, definieren Sie diese bitte danach.

Voir le fichier

@ -1,10 +0,0 @@
---
title: Benutzerdefinierte Messwerte
---
Werten Sie weitere kundenspezifische Daten aus, die über den Seitenbesuch hinausgehen. Im Standardmodul sind einige Dimensionen eingerichtet, deren Übertragung einfach im Adminbereich Ihres Shops aktiviert werden können.
Die Option finden Sie unter
[ Admin ] -> [ (D3) Module ] -> [ {$menutitle} ] -> [ Einstellungen ] -> [ Analytics ] -> [ individuelle Daten ] -> [ individuelle Daten übertrage ].
Die Dimensionen müssen ebenfalls in Ihrem Google-Konto angelegt werden. Die erforderlichen Einstellungen entnehmen Sie bitte der folgenden Grafik.
![](../../assets/benutzerdefinierte_Messwerte.png)

Voir le fichier

@ -1,11 +0,0 @@
---
title: Einrichtungsleitfaden Google Analytics
---
Auf den folgenden Seiten haben wir die Einstellungen im Google Analytics-Konto abgebildet, mit denen aus dem vorliegenden Modul Auswertungen erstellt werden konnten.
Bitte beachten Sie, dass dies Empfehlungen sind. Ob für Ihren Shop individuelle Einstellungen sinnvoller sind, erfragen Sie bitte direkt beim Google Support. Dort können Ihnen sicher auch Fragen zur Statistikqualität und zur Technik des Trackings beantwortet werden.
Weitere Informationen und Hilfestellungen zu Google Analytics finden Sie unter [https://support.google.com/analytics/](https://support.google.com/analytics/).
Wir als Modulautor können Fragen, die direkt Ihr Google-Konto bzw. dessen aufgezeichnete Daten betreffen, leider nicht beantworten. Hierfür bitten wir um Ihr Verständnis.

Voir le fichier

@ -1,9 +0,0 @@
---
title: Einrichtung des Conversion-Trackings
---
Die für das Conversion-Tracking notwendigen Daten erhalten Sie über die folgende Einrichtung in Ihrem AdWords-Konto
![](../../assets/AdWords_Conversions_Einstellungen.png)
![](../../assets/AdWords_Conversions_Code.png)

Voir le fichier

@ -1,11 +0,0 @@
---
title: Einrichtungsleitfaden Google AdWords
---
Auf den folgenden Seiten haben wir die Einstellungen im Google AdWords-Konto abgebildet, mit denen aus dem vorliegenden Modul Auswertungen erstellt werden konnten.
Bitte beachten Sie, dass dies Empfehlungen sind. Ob für Ihren Shop individuelle Einstellungen sinnvoller sind, erfragen Sie bitte direkt beim Google Support. Dort können Ihnen sicher auch Fragen zur Statistikqualität und zur Technik des Trackings beantwortet werden.
Weitere Informationen und Hilfestellungen zu Google Analytics finden Sie unter [https://support.google.com/analytics/](https://support.google.com/adwords/).
Wir als Modulautor können Fragen, die direkt Ihr Google-Konto bzw. dessen aufgezeichnete Daten betreffen, leider nicht beantworten. Hierfür bitten wir um Ihr Verständnis.

12
editions/010_Editionen.md Fichier normal
Voir le fichier

@ -0,0 +1,12 @@
---
title: Editionen
---
Das Modul **{$modulename}** erhalten Sie in verschiedenen Editionen mit unterschiedlichem Funktionsumfang.
Definition der Unterschiede:
| Free-Edition | Standard-Edition | Premium-Edition |
|:-------------:|:-----------------:|:-----------------:|
| 1 | 2 | 3 |

Voir le fichier

@ -0,0 +1,28 @@
---
title: Systemanforderungen
---
* PHP Version
* 5.6.x bis 7.4.x
* PHP Decoder
* installierter ionCube Loader
* Shopeditionen
* OXID eShop Community Edition (CE)
* OXID eShop Professional Edition (PE)
* OXID eShop Enterprise Edition (EE)
* OXID eShop B2B Edition
* Shopversionen
* OXID eShop in Compilation Version
* 6.0.x
* 6.1.x
* 6.2.x
* Themes
* flow
* wave
* D3 Modul-Connector ([kostenfrei bei D3 erhältlich](https://www.oxidmodule.com/connector/)) ab Version 5.3.0.0
* Installation via [Composer](https://getcomposer.org)
* mindestens ein freier Cronjob zur automatischen Ausführung der angelegten Aufgaben
Beachten Sie, dass die Ihnen vorliegende Modulversion entsprechend für Ihre genutzte PHP-Version sowie dem auf Ihrem Server vorhandenen Decoder (**ionCube Loader**) kompatibel ist. Im Zweifelsfall kontaktieren Sie uns und nennen den für Ihren Shop genutzten Decoder und die PHP-Version.
Kontrollieren Sie bitte auch, ob diese Modulversion für die von Ihnen eingesetzte Shopedition (Professional Edition (PE) oder Enterprise Edition (EE)) ausgelegt ist.

Voir le fichier

@ -0,0 +1,5 @@
---
title: Kompatibilität mit anderen Modulen
---
Das Modul **{$modulename}** integriert sich auch in die Erweiterung "Visual CMS" von OXID eSales AG & digidesk - media solutions, sofern diese im Shop installiert wurde. Diese Integration wurde für die Version 3.0.0 des "Visual CMS"-Moduls entwickelt.

Voir le fichier

@ -0,0 +1,8 @@
---
title: beiliegende Bibliotheken
---
Dem Modul liegt eine Kopie der **XYZ**-Bibliothek bei. Bitte beachten Sie auch deren folgende Lizenzhinweise:
- Lizenzhinweis #1
- Lizenzhinweis #2

Voir le fichier

@ -4,4 +4,6 @@ title: Vorbereitungen
Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version.
Ob dies evtl. schon geschehen ist, können Sie im Adminbereich Ihres Shops prüfen. Existiert der Punkt [ (D3) Module ] -> [ Modul-Connector ], können Sie die installierte Version unter [ Bibliotheksverwaltung ] ablesen. Fehlt dieser Eintrag, installieren Sie den kostenfreien Connector.
Informationen zu dessen Installation finden Sie in unserer [Dokumentation](https://docs.oxidmodule.com/).
Informationen zu dessen Installation finden Sie auf unserer [Homepage](https://www.oxidmodule.com/Connector/).
Klicken Sie auf den Reiter [ Downloads ] und wählen dort das für Ihre Installation passende Paket.

Voir le fichier

@ -4,4 +4,4 @@ title: Vorbereitungen
Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version. Ob dies evtl. schon geschehen ist, können Sie im Adminbereich Ihres Shops prüfen.
Existiert der Punkt [ (D3) Module ] -> [ Modul-Connector ], können Sie die installierte Version unter [ Bibliotheksverwaltung ] ablesen.
Fehlt dieser Eintrag, installieren Sie den Modul-Connector bitte vorab. Hinweise zu dessen Installation finden Sie in Sie in unserer [Dokumentation](https://docs.oxidmodule.com/).
Fehlt dieser Eintrag, installieren Sie den Modul-Connector bitte vorab. Hinweise zu dessen Installation finden Sie in der [Modul-Connector Dokumentation](https://docs.oxidmodule.com/Modul_Connector/).

Voir le fichier

@ -0,0 +1,23 @@
---
title: Patch zur Installation hinzufügen
---
### **auf der Kommandozeile**
Für das Modul **{$modulename}** sind Anpassungen an den originalen Dateien des Shops nötig. Die Änderungen werden automatisiert als Patches eingespielt. Um diese Patches integrieren zu können, ist es nötig, in der `composer.json`-Datei des Shopprojektes das Anwenden der Patches zu erlauben.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus:
```bash
php composer config extra.enable-patching true
```
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#config).
Im weiteren Ablauf der Installation werden Sie gefragt, ob die Dateien der folgenden Pakete überschrieben werden sollen:
* oxid-esales/...
Bestätigen Sie diese Frage, um den mitgelieferten Patch anzuwenden.
> [i] Beachten Sie, dass darin durchgeführte manuelle Änderungen überschrieben werden.

Voir le fichier

@ -0,0 +1,15 @@
---
title: Verwendung eigener Themes
---
Das Modul ist für die Verwendung mit den folgenden OXID-Themes vorbereitet:
* Wave
* Flow
* Azure
Verwenden Sie in Ihrem Shop ein angepasstes Verzeichnis für Ihre Templates (neues Theme oder CustomTheme), kopieren Sie die Templates und / oder die CSS-Dateien in die neuen Ordner.
Ähnelt Ihr neues Theme technisch einem der OXID-Originale, können Sie dieses darauf umleiten. Childs von originalen OXID- Themes benötigen keine Umleitung.
Weitere Informationen zur Umleitung finden Sie in unserer [FAQ](https://faq.d3data.de/oxid-eshop/module-oxid-eshop/anpassungen/template-bloecke-dem-eigenen-theme-zuordnen/).

Voir le fichier

@ -0,0 +1,5 @@
---
title: Providerspezifische Installation
---
Manche Provider erfordern besondere Einstellungen für installierte Module. Treffen Sie bei der Installation auf spezielle Anforderungen, zu denen Sie Unterstützung benötigen, kontaktieren Sie uns bitte für weiteren Support.

Voir le fichier

@ -0,0 +1,11 @@
---
title: Lizenzschlüssel eintragen
---
### **im Adminbereich**
Das Modul verwendet Lizenzschlüssel, um die Lizenzverwaltung für Sie und auch für uns einfacher zu gestalten. Hierbei haben Sie je nach Modul die Wahl zwischen einer kostenfreien Testlizenz und einer Lizenz für den Einsatz im Livebetrieb.
Speziell **{$modulename}** wird in unterschiedlichen (teilweise kostenfreien) Editionen für den Livebetrieb angeboten. Besuchen Sie unseren [Moduleshop](https://www.oxidmodule.com/), um mehr darüber zu erfahren.
Rufen Sie zum Anfordern des Lizenzschlüssels die Modulverwaltung im Adminbereich unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] auf. Klappen Sie den Eintrag des jeweiligen Moduls aus. Sofern erforderlich, können Sie hier den Lizenzassistenten starten, der schnell und einfach ihr Modul aktiviert.

Voir le fichier

@ -0,0 +1,13 @@
---
title: Cronjob einrichten
---
Legen Sie den Cronjob für die automatische Bearbeitung der eingerichteten Aufträge an. Die für die Anlage benötigten Daten finden Sie im Adminbereich des Moduls unter [ (D3) Module ] -> [ {$menutitle} ] -> [ Einstellungen ] -> [ Grundeinstellungen ]. Weitere Informationen zum Anlegen von Cronjobs finden Sie in unserer [FAQ](https://faq.d3data.de/technik/wie-werden-cronjobs-angelegt/).
> [!!] Sie sollten unbedingt den Aufruf von `.sh`-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von außen aufrufen kann. Dazu können Sie z.B. die `.htaccess`-Datei des Shops um folgende Zeilen erweitern:
```htaccess
<Files *.sh>
Require all denied
</Files>
```

Voir le fichier

@ -0,0 +1,7 @@
---
title: Updatefähigkeit
---
Bei individuellen Änderungen von Moduldateien empfehlen wir, jeweils die Überladungsmöglichkeiten des Shops dafür zu verwenden. So brauchen Sie die originalen Moduldateien nicht verändern und erhalten sich so die Updatefähigkeit des Shops und des Moduls. Beachten Sie, dass Moduldateien bei Updateinstallationen überschrieben werden.
Weitere Informationen zu den Überladungsmöglichkeiten verschiedener Dateien finden Sie in unserer [FAQ](https://faq.d3data.de/category/oxid-eshop/module-oxid-eshop/anpassungen/).

Voir le fichier

@ -0,0 +1,23 @@
---
title: Patch zur Installation hinzufügen
---
### **auf der Kommandozeile**
Für das Modul **{$modulename}** sind Anpassungen an den originalen Dateien des Shops nötig. Die Änderungen werden automatisiert als Patches eingespielt. Um diese Patches integrieren zu können, ist es nötig, in der `composer.json`-Datei des Shopprojektes das Anwenden der Patches zu erlauben.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus:
```bash
php composer config extra.enable-patching true
```
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#config).
Im weiteren Ablauf der Installation werden Sie gefragt, ob die Dateien der folgenden Pakete überschrieben werden sollen:
* oxid-esales/...
Bestätigen Sie diese Frage, um den mitgelieferten Patch anzuwenden.
> [i] Beachten Sie, dass darin durchgeführte manuelle Änderungen überschrieben werden.

Voir le fichier

@ -0,0 +1,5 @@
---
title: Providerspezifische Installation
---
Manche Provider erfordern besondere Einstellungen für installierte Module. Treffen Sie bei der Installation auf spezielle Anforderungen, zu denen Sie Unterstützung benötigen, kontaktieren Sie uns bitte für weiteren Support.

Voir le fichier

@ -0,0 +1,7 @@
---
title: Lizenzschlüssel aktualisieren
---
### **im Adminbereich**
Wird für die neue Modulversion ein aktualisierter Lizenzschlüssel benötigt, tragen Sie diesen im Adminbereich unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] ein. Klappen Sie dazu den Eintrag des jeweiligen Moduls aus und starten den Lizenzassistent.

Voir le fichier

@ -11,10 +11,19 @@ Um die erfolgreiche Installation zu prüfen, können Sie die folgende(n) Checkli
* Modul ist unter [ Erweiterungen ] -> [ Module ] aktiv geschaltet
* Modul ist unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] aktiv geschaltet
* Modul zeigt unter [ (D3) Module ] -> [ {$menutitle} ] einen eigenen Bereich für Einstellungen
## Einstellungsabhängige Prüfungen
* Modul zeigt unter [ Artikel verwalten ] -> [ Artikel ] -> [ Erweitert ] die Einstellung [ Wichtigkeit des Artikels im Sortiment ]
* ... um weitere Punkte ergänzen
### Frontend
* Für den Browser Chrome kann das Plugin 'Google Tag Assistant' installiert und verwendet werden.
Dieses Plugin zeigt an ob Tags für Google vom Shop/Modul ausgespielt werden und diese in Ordnung oder fehlerhaft sind.
* Punkte einfügen oder Absatz entfernen
## Einstellungsabhängige Prüfungen
### Backend
* Punkte einfügen oder Absatz entfernen
### Frontend
* Punkte einfügen oder Absatz entfernen

Voir le fichier

@ -0,0 +1,31 @@
---
title: Datenbank bereinigen
---
Das Modul legt Informationen in der Datenbank ab. Sofern diese Daten nicht mehr benötigt werden, können diese gelöscht werden.
> [!] Legen Sie sich vorab bitte unbedingt eine Sicherung an, um die Daten im Zweifelsfall wiederherstellen zu können.
Für das Modul **{$modulename}** sind dies die folgende Tabellen und Felder:
* die komplette Tabelle `tablename`
* sofern vorhanden: `tablename_setX` *)
und diese Felder in bestehenden Tabellen:
* in Tabelle `oxorder`:
* das Feld `fieldname1`
* das Feld `fieldname2`
* in Tabelle `oxuser`:
* das Feld `fieldname3`
* das Feld `fieldname4`
sowie diese Einträge in bestehenden Tabellen:
* in Tabelle `d3_cfg_mod`:
* den Eintrag `oxmodid = "{$modcfgident}"` **)
*) `_setX` ist eine Tabellenliste, die mit `_set1` beginnen und shopabhängig auch Tabellen mit höheren Nummerierungen enthalten kann (z.B. `_set2`, `_set3`, …).
Zu einigen dieser Tabellen wurden die Config-Einträge `aMultiLangTables` (bei Enterprise Edition auch `aMultiShopTables`) um entsprechende Einträge ergänzt). Bereinigen Sie diese ebenfalls.
**) Diesen Eintrag gibt es ggf. für jeden Subshop. Entfernen Sie diesen nur für die Mandanten, in denen das Modul **nicht** mehr installiert ist.

1
manual/000_Handbuch.md Fichier normal
Voir le fichier

@ -0,0 +1 @@
It starts here.

Voir le fichier

@ -0,0 +1,4 @@
---
title: Benutzerhandbuch
---

Voir le fichier

@ -0,0 +1,18 @@
---
title: optische Anpassungen
---
Die Modulausgaben können durch eigene CSS-Styles angepasst werden. Um die Updatefähigkeit des Moduls zu
erhalten, übernehmen Sie die neuen Stylesheets bitte in modulunabhängige Dateien.
Die mitgelieferten Assets (CSS, JavaScripts) werden von uns über einen vorkonfigurierten Kompilierungstask
erstellt. Dieser kann via [Grunt](https://gruntjs.com/) ausgeführt werden. Möchten Sie eigene oder
angepasste Inhalte daraus kompilieren lassen, installieren Sie das Modul bitte mit Composer und der
`--prefer-source`-Option. Dann stehen Ihnen die Quelldateien im Ordner `src/build` zur Verfügung.
Diese können direkt aufgerufen werden, um eventuelle Anpassungen im zu Grunde liegenden Theme zu
integrieren. Alternativ können Sie die Sources auch in eigene Kompilierungsprozesse einbinden,
um projektspezifische Assets zu erstellen.
Details zur Verwendung des Taskrunners und der Quelldateien entnehmen Sie bitte der `README.md` im
oben erwähnten Build-Ordner.

Voir le fichier

@ -1 +0,0 @@
*.jpg filter=lfs diff=lfs merge=lfs -text

BIN
resource/EE/einstellungen_adwords.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

Fichier binaire non affiché.

Fichier binaire non affiché.

Fichier binaire non affiché.

BIN
resource/EE/einstellungen_support.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

BIN
resource/EE/einstellungen_zertHaendler.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

BIN
resource/EE/logging.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

BIN
resource/PE/einstellungen_adwords.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

Fichier binaire non affiché.

Fichier binaire non affiché.

Fichier binaire non affiché.

BIN
resource/PE/einstellungen_support.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

BIN
resource/PE/einstellungen_zertHaendler.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

BIN
resource/PE/logging.jpg (Stocké avec Git LFS)

Fichier binaire non affiché.

Voir le fichier

@ -1,49 +0,0 @@
<?php
use OxidEsales\Eshop\Application\Component\UtilsComponent;
use OxidEsales\Eshop\Application\Controller\OrderController;
use OxidEsales\Eshop\Application\Controller\ThankYouController;
use OxidEsales\Eshop\Application\Model\Basket as Basket;
use OxidEsales\Eshop\Application\Model\BasketItem;
use OxidEsales\Eshop\Application\Model\Order as Order;
use OxidEsales\Eshop\Core\UtilsView;
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxcmp_utils_googleanalytics_parent extends UtilsComponent {}
/** */
class d3_oxorder_googleanalytics_parent extends Order
{}
/** */
class d3_thankyou_googleanalytics_parent extends ThankYouController {}
/** */
class d3_order_googleanalytics_parent extends OrderController {}
/** */
class d3_oxutilsview_googleanalytics_parent extends UtilsView {}
/** */
class d3_oxbasket_googleanalytics_parent extends Basket
{}
/** */
class d3_oxbasketitem_googleanalytics_parent extends BasketItem {}

Voir le fichier

@ -1,53 +0,0 @@
<?php
use OxidEsales\Eshop\Core\Registry;
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_
{
/**
* @return string
*/
public function render()
{
$this->addTplParam('sListClass', 'd3_cfg_googleanalytics_list');
$this->addTplParam('sMainClass', 'd3_cfg_googleanalytics_main');
return parent::render();
}
/**
* @return string
* @throws oxFileException
*/
public function getAdditionalHeadContent()
{
$oViewConf = Registry::getConfig()->getActiveView()->getViewConfig();
$sScriptUrl = $oViewConf->getModuleUrl('d3_googleanalytics', 'out/src/d3_googleanalytics_test.js');
return parent::getAdditionalHeadContent().'
<script src="'.$sScriptUrl.'"></script>
<script type="text/javascript">
if(null === document.getElementById("SePiRENuJOBWx")){
alert("'.Registry::getLang()->translateString('D3_GOOGLEANALYTICS_ADBLOCKER', null, true).'");
}
</script>
';
}
}

Voir le fichier

@ -1,50 +0,0 @@
<?php
use Doctrine\DBAL\Driver\Exception as DoctrineException;
use Doctrine\DBAL\Exception as Exception;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_adwords extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_adwords.tpl';
protected $_sModId = 'd3_googleanalytics';
protected $_sMenuItemTitle = 'd3mxgoogleanalytics';
protected $_sMenuSubItemTitle = 'd3tbclgoogleanalytics_adwords';
/**
* @return mixed
* @throws DoctrineException
* @throws Exception
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

Voir le fichier

@ -1,41 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_campaigns extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_campaigns.tpl';
protected $_sModId = 'd3_googleanalytics';
protected $_sMenuItemTitle = 'd3mxgoogleanalytics';
protected $_sMenuSubItemTitle = 'd3tbclgoogleanalytics_campaigns';
/**
* @return mixed
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

Voir le fichier

@ -1,39 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_licence extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_licence
{
protected $_sModId = 'd3_googleanalytics';
protected $_hasLicence = false;
protected $_hasNewsletterForm = false;
protected $_hasUpdate = true;
protected $_sDefaultHelpLinkAdd = 'Fragen-zu-speziellen-Modulen/Google-Analytics/';
/**
* additional multilang item, which will added as last part to help url
*
* @var string
*/
protected $_sHelpLinkMLAdd = '';
protected $_sMenuItemTitle = 'd3mxgoogleanalytics';
}

Voir le fichier

@ -1,36 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_list extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list
{
protected $_blD3ShowLangSwitch = false;
/**
* @return null|string
*/
public function render()
{
parent::render();
$this->addTplParam("default_edit", "d3_cfg_googleanalytics_main");
return $this->_sThisTemplate;
}
}

Voir le fichier

@ -1,41 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_main extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_main.tpl';
protected $_sModId = 'd3_googleanalytics';
protected $_blHasDebugSwitch = true;
protected $_sDebugHelpTextIdent = 'D3_GOOGLEANALYTICS_MAIN_DEBUG';
protected $_sMenuItemTitle = 'd3mxgoogleanalytics';
protected $_sMenuSubItemTitle = 'd3tbclgoogleanalytics_main';
/**
* @return mixed
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

Voir le fichier

@ -1,27 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_trustedstore extends D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_trustedstore.tpl';
protected $_sModId = 'd3_googleanalytics';
protected $_sMenuItemTitle = 'd3mxgoogleanalytics';
protected $_sMenuSubItemTitle = 'd3tbclgoogleanalytics_trustedstore';
}

Voir le fichier

@ -1,33 +0,0 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_googleanalyticslog extends D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log
{
protected $_sModId = 'd3_googleanalytics';
/**
* @return string
*/
public function d3getAdditionalUrlParams()
{
$sRet = parent::d3getAdditionalUrlParams();
if ($this->_sModId) {
$sRet .= '&sD3ModId='.$this->_sModId;
}
return $sRet;
}
}

Voir le fichier

@ -1,19 +0,0 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_googleanalyticslog_list extends D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log_list
{
protected $_sModId = 'd3_googleanalytics';
}

Voir le fichier

@ -1,45 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
use OxidEsales\Eshop\Application\Model\Article as Article;
/**
* Smarty plugin
* -------------------------------------------------------------
* add [{d3getArticleFromOrderArticle aid="articleid"}] where you want to display content
* -------------------------------------------------------------
*
* @param array $params params
* @param Smarty &$smarty clever simulation of a method
*
* @return string
*/
function smarty_function_d3getArticleFromOrderArticle( $params, $smarty )
{
$sArtId = $params['aid'];
$oArticle = oxNew( Article::class);
$oArticle->load($sArtId);
if (isset($params['assign']) && $params['assign']) {
$smarty->assign($params['assign'], $oArticle);
}
return "use assign param";
}

Voir le fichier

@ -1,7 +0,0 @@
<?php
$aModule = array(
'd3SetupClasses' => array(
'd3_googleanalytics_update',
),
);

Voir le fichier

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-15"?>
<OX>
<OXMENU id="d3mxd3modules">
<MAINMENU id="d3mxgoogleanalytics">
<SUBMENU id="d3mxgoogleanalytics_settings" cl="d3_cfg_googleanalytics" list="d3_cfg_googleanalytics_list">
<TAB id="d3tbclgoogleanalytics_main" cl="d3_cfg_googleanalytics_main" />
<TAB id="d3tbclgoogleanalytics_adwords" cl="d3_cfg_googleanalytics_adwords" />
<TAB id="d3tbclgoogleanalytics_campaigns" cl="d3_cfg_googleanalytics_campaigns" />
<TAB id="d3tbclgoogleanalytics_trustedstore" cl="d3_cfg_googleanalytics_trustedstore" />
<TAB id="d3tbcl_licence" cl="d3_cfg_googleanalytics_licence" />
</SUBMENU>
<SUBMENU id ="d3mxlog" cl="d3_cfg_googleanalyticslog" list="d3_cfg_googleanalyticslog_list">
<TAB id="d3tbcllog_main" cl="d3_cfg_log_main" />
</SUBMENU>
</MAINMENU>
</OXMENU>
</OX>

Voir le fichier

@ -1,107 +0,0 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
/**
* Metadata version
*/
$sMetadataVersion = '1.1';
$sLogo = '<img src="https://logos.oxidmodule.com/d3logo.svg" alt="(D3)" style="height:1em;width:1em"> ';
/**
* Module information
*/
$aModule = [
'id' => 'd3_googleanalytics',
'title' => $sLogo.'Google Services Schnittstelle',
'description' => [
'de' => 'Dieses Modul stellt Ihnen die schnelle und unkomplizierte Einbindung Ihres Google-Analytics-'.
'Kontos in Ihren Shop zur Verf&uuml;gung. Hierbei werden &uuml;ber standardisierte Schnittstellen die '.
'Besucherdaten und eCommerce-Daten zu Google &uuml;bertragen. Ebenfalls &uuml;bermittelt werden Daten '.
'der Website-Suche. Weiterhin k&ouml;nnen &uuml;ber das Modul Shopdaten an Google Adwords und Google '.
'Trusted Shops &uuml;bertragen werden.',
'en' => 'Provides a quick and easy integration with your Google Analytics, Google Adwords and Google '.
'Trusted Shops account to your shop.',
],
'thumbnail' => 'picture.png',
'version' => '4.5.1.0',
'author' => 'D&sup3; Data Development (Inh. Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'https://www.oxidmodule.com/',
'extend' => [
'oxcmp_utils' => 'd3/d3_googleanalytics/modules/components/d3_oxcmp_utils_googleanalytics',
'oxbasket' => 'd3/d3_googleanalytics/modules/models/d3_oxbasket_googleanalytics',
'oxbasketitem' => 'd3/d3_googleanalytics/modules/models/d3_oxbasketitem_googleanalytics',
'oxorder' => 'd3/d3_googleanalytics/modules/models/d3_oxorder_googleanalytics',
'order' => 'd3/d3_googleanalytics/modules/controllers/d3_order_googleanalytics',
'oxutilsview' => 'd3/d3_googleanalytics/modules/core/d3_oxutilsview_googleanalytics',
'thankyou' => 'd3/d3_googleanalytics/modules/controllers/d3_thankyou_googleanalytics',
],
'files' => [
'd3_cfg_googleanalytics' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics.php',
'd3_cfg_googleanalytics_adwords' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_adwords.php',
'd3_cfg_googleanalytics_campaigns' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_campaigns.php',
'd3_cfg_googleanalytics_licence' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_licence.php',
'd3_cfg_googleanalytics_list' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_list.php',
'd3_cfg_googleanalytics_main' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_main.php',
'd3_cfg_googleanalytics_trustedstore' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_trustedstore.php',
'd3_cfg_googleanalyticslog' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog.php',
'd3_cfg_googleanalyticslog_list' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog_list.php',
'd3_google_remarketing_articlelister' => 'd3/d3_googleanalytics/models/d3_google_remarketing_articlelister.php',
'd3_google_trustedstore_articlelister' => 'd3/d3_googleanalytics/models/d3_google_trustedstore_articlelister.php',
'd3_googleanalytics_update' => 'd3/d3_googleanalytics/setup/d3_googleanalytics_update.php',
],
'templates' => [
'd3_googleanalytics.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl',
'd3ga_universal.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl',
'd3ga_universal_custom.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl',
'd3ga_universal_ecommerce.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl',
'd3ga_universal_adwords.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl',
'd3ga_universal_adwordscode.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl',
'd3ga_universal_remarketing.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl',
'd3ga_universal_campaigncode.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl',
'd3ga_universal_trustedstore.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl',
'd3_cfg_googleanalytics_main.tpl' => 'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_main.tpl',
'd3_cfg_googleanalytics_adwords.tpl' => 'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_adwords.tpl',
'd3_cfg_googleanalytics_campaigns.tpl' => 'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_campaigns.tpl',
'd3_cfg_googleanalytics_trustedstore.tpl' => 'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_trustedstore.tpl',
],
'events' => [
'onActivate' => '\D3\ModCfg\Application\Model\Install\d3install::checkUpdateStart',
],
'blocks' => [
[
'template' => 'layout/base.tpl',
'block' => 'head_css',
'file' => '/views/blocks/layout/d3_base_googleanalytics.tpl',
],
[
'template' => 'layout/base.tpl',
'block' => 'base_js',
'file' => '/views/blocks/layout/d3_base_googleadwordscode.tpl',
],
[
'template' => 'layout/footer.tpl',
'block' => 'footer_main',
'file' => '/views/blocks/layout/d3_base_optout.tpl',
],
],
];

Voir le fichier

@ -1,211 +0,0 @@
<?php
use OxidEsales\Eshop\Application\Model\ArticleList;
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_google_remarketing_articlelister
{
public $sD3GARemarketingSKUField = 'oxartnum';
public $blD3GARemarketingUseBrutto = true;
public $aStartListMethodNames = array(
'getArticleList',
'getTopArticleList',
'getNewestArticles',
'getFirstArticle',
'getCatOfferArticleList',
);
/**
* @param start $oView
*
* @return array
*/
public function getStartProdList($oView)
{
/** @var oxArticleList $oArticleList */
$oArticleList = oxNew(ArticleList::class);
if (is_array($this->aStartListMethodNames) && count($this->aStartListMethodNames)) {
foreach ($this->aStartListMethodNames as $sListName) {
/** @var oxArticleList $oList */
$mList = call_user_func(array($oView, $sListName));
if ($mList instanceof ArticleList) {
if ($mList->count()) {
foreach ($mList->getArray() as $sID => $oArticle) {
$oArticleList->offsetSet($sID, $oArticle);
}
}
}
}
}
return $this->_getProductList($oArticleList);
}
/**
* @param details $oView
*
* @return array
*/
public function getDetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param oxwArticleDetails $oView
*
* @return array
*/
public function getOxwarticledetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param alist $oView
*
* @return array
*/
public function getAlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param search $oView
*
* @return array
*/
public function getSearchProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param vendorlist $oView
*
* @return array
*/
public function getVendorlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param manufacturerlist $oView
*
* @return array
*/
public function getManufacturerlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param basket $oView
*
* @return array
*/
public function getBasketProdList($oView)
{
$aArticleList = $oView->getBasketArticles();
return $this->_getProductList($aArticleList);
}
/**
* @param order $oView
*
* @return array
*/
public function getOrderProdList($oView)
{
$aArticleList = $oView->getBasketArticles();
return $this->_getProductList($aArticleList);
}
/**
* @param compare $oView
*
* @return array
*/
public function getCompareProdList($oView)
{
$aArticleList = $oView->getCompArtList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_noticelist $oView
*
* @return array
*/
public function getAccount_noticelistProdList($oView)
{
$aArticleList = $oView->getNoticeProductList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_wishlist $oView
*
* @return array
*/
public function getAccount_wishlistProdList($oView)
{
$aArticleList = $oView->getWishProductList();
return $this->_getProductList($aArticleList);
}
/**
* @param $aArticleList
*
* @return array
*/
protected function _getProductList($aArticleList)
{
$aArticleIds = array();
$dPrice = 0;
/** @var oxarticle $oArticle */
if (isset($aArticleList)) {
foreach ($aArticleList as $oArticle) {
$aArticleIds[] = $oArticle->getFieldData($this->sD3GARemarketingSKUField);
if ($this->blD3GARemarketingUseBrutto) {
$dPrice += $oArticle->getPrice()->getBruttoPrice();
} else {
$dPrice += $oArticle->getPrice()->getNettoPrice();
}
}
}
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
}
}

Voir le fichier

@ -1,184 +0,0 @@
<?php
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use OxidEsales\Eshop\Application\Model\ArticleList;
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_google_trustedstore_articlelister
{
private $_sModId = 'd3_googleanalytics';
public $aStartListMethodNames = array(
'getArticleList',
'getTopArticleList',
'getNewestArticles',
'getFirstArticle',
'getCatOfferArticleList',
);
/**
* @param start $oView
*
* @return array
*/
public function getStartProdList($oView)
{
/** @var oxArticleList $oArticleList */
$oArticleList = oxNew('oxarticlelist');
if (is_array($this->aStartListMethodNames) && count($this->aStartListMethodNames)) {
foreach ($this->aStartListMethodNames as $sListName) {
/** @var oxArticleList $oList */
$mList = call_user_func(array($oView, $sListName));
if ($mList instanceof ArticleList) {
if ($mList->count()) {
foreach ($mList->getArray() as $sID => $oArticle) {
$oArticleList->offsetSet($sID, $oArticle);
}
}
}
}
}
return $this->_getProductList($oArticleList);
}
/**
* @param details $oView
*
* @return array
*/
public function getDetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param oxwArticleDetails $oView
*
* @return array
*/
public function getOxwarticledetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param alist $oView
*
* @return array
*/
public function getAlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param search $oView
*
* @return array
*/
public function getSearchProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param vendorlist $oView
*
* @return array
*/
public function getVendorlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param manufacturerlist $oView
*
* @return array
*/
public function getManufacturerlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param compare $oView
*
* @return array
*/
public function getCompareProdList($oView)
{
$aArticleList = $oView->getCompArtList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_noticelist $oView
*
* @return array
*/
public function getAccount_noticelistProdList($oView)
{
$aArticleList = $oView->getNoticeProductList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_wishlist $oView
*
* @return array
*/
public function getAccount_wishlistProdList($oView)
{
$aArticleList = $oView->getWishProductList();
return $this->_getProductList($aArticleList);
}
/**
* @param $aArticleList
*
* @return array
*/
protected function _getProductList($aArticleList)
{
$aArticleIds = array();
/** @var oxarticle $oArticle */
if (isset($aArticleList)) {
foreach ($aArticleList as $oArticle) {
$aArticleIds[] = $oArticle->getFieldData(
d3_cfg_mod::get($this->_sModId)->getValue('sD3GATSShoppingArtId')
);
}
}
return array('aArtIdList' => $aArticleIds);
}
}

Voir le fichier

@ -1,620 +0,0 @@
<?php
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\d3str;
use Doctrine\DBAL\Driver\Exception as DoctrineException;
use Doctrine\DBAL\Exception as Exception;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Registry;
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_parent
{
private $_sModId = 'd3_googleanalytics';
public $aD3GAPageTypes = array(
'start' => 'home',
'search' => 'searchresults',
'alist' => 'category',
'manufacturerlist' => 'category',
'vendorlist' => 'category',
'details' => 'product',
'oxwarticledetails' => 'product',
'basket' => 'cart',
'user' => 'cart',
'payment' => 'cart',
'order' => 'cart',
'thankyou' => 'purchase',
);
/**
* @return null
*/
public function render()
{
$ret = parent::render();
$oSet = d3_cfg_mod::get($this->_d3getModId());
if ($oSet->isActive()) {
/** @var $oParentView oxView */
$oParentView = $this->getParent();
$oParentView->addTplParam('blD3GoogleAnalyticsActive', $oSet->isActive());
$oParentView->addTplParam('oD3GASettings', $oSet);
$oParentView->addTplParam('sD3GATTpl', $this->d3getGATTpl());
$oParentView->addTplParam('sD3GACreateParameter', $this->d3getCreateParameters());
$oParentView->addTplParam('sAFEGetMoreUrls', $this->afGetMoreUrls());
$oParentView->addTplParam('sD3GASendPageViewParameter', $this->d3getSendPageViewParameters());
$oParentView->addTplParam('sD3CurrentShopUrl', $this->d3GetCreateCurrentShopUrl());
$oParentView->addTplParam('blD3GAIsMobile', $this->d3isMobile());
$oParentView->addTplParam('iD3GASendNoBounceEventTime', $this->d3GetSendNoBounceEventTime());
if ($oSet->getValue('sD3GATSActive')) {
$oParentView->addTplParam('sD3CurrentGTSLang', $this->d3GetGTSLang());
}
if ($oSet->getValue('sD3GATSActive') && $oSet->getValue('sD3GATSShoppingActive')) {
$aInfos = $this->d3GATSGetProdInfos();
$oParentView->addTplParam('sD3GATSProdId', $this->d3GATSGetProdIdList($aInfos['aArtIdList']));
}
if ($oSet->getValue('blD3GASetRemarketing') || $oSet->getValue('blD3GAUseAnalyticsRemarketing')) {
$aInfos = $this->d3GetGAProdInfos();
$oParentView->addTplParam('sD3GARemarketingProdId', $this->d3GetGAProdIdList($aInfos['aArtIdList']));
$oParentView->addTplParam('sD3GARemarketingProdId2', $this->d3GetGAProdIdList($aInfos['aArtIdList'], false));
$oParentView->addTplParam(
'sD3GARemarketingPrice',
$aInfos['dPrice'] > 0 ? number_format($aInfos['dPrice'], 2, '.', ''): 0
);
$oParentView->addTplParam('sD3GARemarketingPageType', $this->d3GetGAPageType());
}
}
return $ret;
}
/**
* @return string
*/
private function _d3getModId()
{
return $this->_sModId;
}
/**
* @return string
* @throws DoctrineException
* @throws Exception
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function d3getGATTpl()
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'sD3GAType') == 'async') {
return 'd3_googleanalytics.tpl';
}
return 'd3ga_universal.tpl';
}
/**
* @return string
*/
public function d3GetCreateCurrentShopUrl()
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'blD3GAAllowDomainLinker')) {
return 'auto';
}
return $this->d3GetCurrentShopUrl();
}
/**
* @return string
*/
public function d3GetCurrentShopUrl()
{
return Registry::getConfig()->getActiveShop()->getFieldData('oxurl');
}
/**
* @return string
*/
public function afGetMoreUrls()
{
if (false == d3_cfg_mod::get($this->_sModId)->getValue('blD3GAAllowDomainLinker')) {
return '';
}
$sSeparator = ',';
return implode($sSeparator, $this->_d3GetNonBaseLanguageUrls());
}
/**
* @return array
*/
protected function _d3GetNonBaseLanguageUrls()
{
$myConfig = Registry::getConfig();
$aLanguageUrls = $myConfig->getConfigParam('aLanguageURLs');
$aSslLanguageUrls = $myConfig->getConfigParam('aLanguageSSLURLs');
$aUrls = array();
if ($myConfig->getConfigParam('bl_perfLoadLanguages')) {
$aLanguages = Registry::getLang()->getLanguageArray(null, true, true);
reset($aLanguages);
foreach ($aLanguages as $oVal) {
$this->_d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, $aUrls);
}
}
$this->_d3UnsetCurrentUrl($aUrls);
return $aUrls;
}
/**
* @param $aLanguageUrls
* @param $oVal
* @param $aSslLanguageUrls
* @param $aUrls
*
* @return array
*/
protected function _d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, &$aUrls)
{
$blIsSsl = Registry::getConfig()->isSsl();
if ($this->_d3CheckLanguageUrlsToList($aLanguageUrls, $oVal, $blIsSsl)) {
$sUrl = $this->_d3GANormalizeUrl($aLanguageUrls[$oVal->id]);
$aUrls[md5($sUrl)] = "'" . $sUrl . "'";
}
if ($this->_d3CheckLanguageUrlsToList($aSslLanguageUrls, $oVal, !$blIsSsl)) {
$sSslUrl = $this->_d3GANormalizeUrl($aLanguageUrls[$oVal->id]);
$aUrls[md5($sSslUrl)] = "'" . $sSslUrl . "'";
}
return $aUrls;
}
/**
* @param $sUrl
*
* @return string
*/
protected function _d3GANormalizeUrl($sUrl)
{
$sPattern = "^http(s?)://";
/** @var d3str $oD3Str */
$oD3Str = oxNew( d3str::class);
return preg_replace('@'.$sPattern.'@', '', $oD3Str->untrailingslashit($sUrl));
}
/**
* @param $aUrls
*/
protected function _d3UnsetCurrentUrl(&$aUrls)
{
unset($aUrls[md5($this->_d3GANormalizeUrl(Registry::getConfig()->getCurrentShopUrl()))]);
}
/**
* @param $aLanguageUrls
* @param $oVal
* @param $blIsSsl
*
* @return bool
*/
protected function _d3CheckLanguageUrlsToList($aLanguageUrls, $oVal, $blIsSsl)
{
return $blIsSsl || $aLanguageUrls[$oVal->id] != $aLanguageUrls[Registry::getLang()->getBaseLanguage()];
}
/**
* @return string
*/
public function d3getCreateParameters()
{
$aParameter = array();
$aParameter = $this->_d3getCreateDomainNameParameter($aParameter);
$aParameter = $this->_d3getCreateCookiePathParameter($aParameter);
$aParameter = $this->_d3getCreateDomainLinkerParameter($aParameter);
$aParameter = $this->_d3getCreateSpeedSamplerateParameter($aParameter);
$aParameter = $this->_d3getCreateSamplerateParameter($aParameter);
if (count($aParameter)) {
return ", {".implode(',', $aParameter)."}";
}
return '';
}
/**
* @return string
*/
public function d3getSendPageViewParameters()
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'sD3GAType') == 'async') {
return $this->_d3getAsyncSendpageViewParameters();
}
return $this->_d3getUniversalSendPageViewParameters();
}
/**
* @return string
*/
protected function _d3getAsyncSendpageViewParameters()
{
$aParameter = array();
/** @var oxUBase $oCurrentView */
$oCurrentView = Registry::getConfig()->getActiveView();
$oCurrentView->getIsOrderStep();
$aParameter = $this->_d3getAsynchSendpageViewClassParameter($oCurrentView, $aParameter);
if (count($aParameter)) {
return ", " . implode(',', $aParameter) . "";
}
return '';
}
/**
* @return string
*/
protected function _d3getUniversalSendPageViewParameters()
{
$aParameter = array();
/** @var oxUBase $oCurrentView */
$oCurrentView = Registry::getConfig()->getActiveView();
$oCurrentView->getIsOrderStep();
$aParameter = $this->_d3getUniversalSendPageViewPageParameter($oCurrentView, $aParameter);
$aParameter = $this->_d3getUniversalSendPageViewDebugParameter($aParameter);
if (count($aParameter)) {
return ", {" . implode(',', $aParameter) . "}";
}
return '';
}
/**
* @return bool
*/
protected function _d3HasNoPageParameter()
{
if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
return true;
}
return false;
}
/**
* Indicates the type of page that the tag is on. Valid values:
*
* home - Used on the home page or landing page of your site.
* searchresults - Used on pages where the results of a user's search are displayed.
* category - Used on pages that list multiple items within a category, for example a page showing all shoes in a given style.
* product - Used on individual product pages.
* cart - Used on the cart/basket/checkout page.
* purchase - Used on the page shown once a user has purchased (and so converted), for example a "Thank You" or confirmation page.
* other - Used where the page does not fit into the other types of page, for example a "Contact Us" or "About Us" page.
*
* @link https://developers.google.com/adwords-remarketing-tag/parameters#retail-sites
* @return string
*/
public function d3GetGAPageType()
{
$oCurrentView = Registry::getConfig()->getActiveView();
$key = strtolower($oCurrentView->getClassKey());
if (array_key_exists($key, $this->aD3GAPageTypes)) {
return $this->aD3GAPageTypes[$key];
}
return 'other';
}
/**
* @return string
*/
public function d3GetGTSLang()
{
$aHomeCountries = Registry::getConfig()->getConfigParam('aHomeCountry');
$aKeys = array_keys($aHomeCountries);
$sHomeCountryId = $aHomeCountries[current($aKeys)];
/** @var oxcountry $oCountry */
$oCountry = oxNew('oxcountry');
$oCountry->load($sHomeCountryId);
return strtolower(Registry::getLang()->getLanguageAbbr()).'_'.
strtoupper($oCountry->getFieldData('OXISOALPHA2'));
}
/**
* @return array
*/
public function d3GATSGetProdInfos()
{
startProfile(__METHOD__);
$oCurrentView = Registry::getConfig()->getActiveView();
$aArticleIds = array();
$sMethodName = 'get'.ucfirst($oCurrentView->getClassKey())."ProdList";
$oArticleLister = oxNew('d3_google_trustedstore_articlelister');
if (method_exists($oArticleLister, $sMethodName)) {
stopProfile(__METHOD__);
return call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
}
stopProfile(__METHOD__);
return array('aArtIdList' => $aArticleIds);
}
/**
* @param array $aArticleIds
*
* @return string
*/
public function d3GATSGetProdIdList($aArticleIds)
{
if (count($aArticleIds)) {
$aKeys = array_keys($aArticleIds);
return $aArticleIds[current($aKeys)];
} else {
return "not_set";
}
}
/**
* @return array
*/
public function d3GetGAProdInfos()
{
startProfile(__METHOD__);
$oCurrentView = Registry::getConfig()->getActiveView();
$aArticleIds = array();
$dPrice = 0;
$sMethodName = 'get'.ucfirst($oCurrentView->getClassKey())."ProdList";
$oArticleLister = oxNew('d3_google_remarketing_articlelister');
if (method_exists($oArticleLister, $sMethodName)) {
stopProfile(__METHOD__);
$aRet = call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
stopProfile(__METHOD__);
return $aRet;
}
stopProfile(__METHOD__);
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
}
/**
* @param array $aArticleIds
*
* @return string
*/
public function d3GetGAProdIdList($aArticleIds, $blFormatArray = true)
{
if (count($aArticleIds)) {
return $blFormatArray ?
"['".implode("', '", $aArticleIds)."']" :
"'".implode(", ", $aArticleIds)."'";
} else {
return $blFormatArray ?
"''" :
false;
}
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateDomainNameParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'sD3GASetDomainName')) {
$aParameter[] = "'cookieDomain': '" . d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetDomainName') . "'";
$aParameter[] = "'legacyCookieDomain': '" .
d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetDomainName') . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateCookiePathParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'sD3GASetCookiePath')) {
$aParameter[] = "'cookiePath': '" . d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetCookiePath') . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateDomainLinkerParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'blD3GAAllowDomainLinker')) {
$aParameter[] = "'allowLinker': true";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateSpeedSamplerateParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'iD3GASiteSpeedSampleRate')) {
$aParameter[] = "'siteSpeedSampleRate': " .
d3_cfg_mod::get($this->_sModId)->getValue('iD3GASiteSpeedSampleRate');
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateSamplerateParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->getValue( 'iD3GASampleRate')) {
$aParameter[] = "'sampleRate': " . d3_cfg_mod::get($this->_sModId)->getValue('iD3GASampleRate');
return $aParameter;
}
return $aParameter;
}
/**
* @param oxUBase $oCurrentView
* @param array $aParameter
*
* @return array
*/
protected function _d3getAsynchSendpageViewClassParameter($oCurrentView, $aParameter)
{
if ($oCurrentView->getIsOrderStep() ||
strtolower($oCurrentView->getClassKey()) == 'thankyou' ||
$this->_d3HasNoPageParameter()
) {
$aParameter[] = "'/{$oCurrentView->getClassKey()}.html'";
return $aParameter;
}
return $aParameter;
}
/**
* @param oxUBase $oCurrentView
* @param array $aParameter
*
* @return array
*/
protected function _d3getUniversalSendPageViewPageParameter($oCurrentView, $aParameter)
{
if ($oCurrentView->getIsOrderStep() || strtolower($oCurrentView->getClassKey()) == 'thankyou') {
$aParameter[] = "'page': '/{$oCurrentView->getClassKey()}.html'";
$aParameter[] = "'title': 'Checkout: " . ucfirst($oCurrentView->getClassKey()) . "'";
return $aParameter;
} elseif ($this->_d3HasNoPageParameter()) {
$aParameter[] = "'page': '/{$oCurrentView->getClassKey()}.html'";
$aParameter[] = "'title': '" . ucfirst($oCurrentView->getClassKey()) . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getUniversalSendPageViewDebugParameter($aParameter)
{
if ( d3_cfg_mod::get( $this->_sModId)->hasDebugMode()) {
$aParameter[] = "
'hitCallback': function() {
alert('analytics.js done sending data');
}
";
return $aParameter;
}
return $aParameter;
}
/**
* @return bool
*/
public function d3isMobile()
{
if (class_exists('oeThemeSwitcherThemeManager')) {
/** @var oeThemeSwitcherThemeManager $oThemeManager */
$oThemeManager = oxNew('oeThemeSwitcherThemeManager');
return $oThemeManager->isMobileThemeRequested();
}
return false;
}
/**
* @return int
*/
public function d3GetSendNoBounceEventTime()
{
$iTime = d3_cfg_mod::get($this->_sModId)->getValue('iSendNoBounceEventTime');
if (isset($iTime) && is_int($iTime)) {
return $iTime;
}
return 10000;
}
}

Voir le fichier

@ -1,42 +0,0 @@
<?php
use OxidEsales\Eshop\Application\Model\User as User;
use OxidEsales\Eshop\Core\Registry;
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @link http://www.aikme.de
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) & aikme GmbH
*/
class d3_order_googleanalytics extends d3_order_googleanalytics_parent
{
public function init()
{
parent::init();
$this->_d3SetIsNewCustomer();
}
protected function _d3SetIsNewCustomer()
{
$oUser = $this->getUser();
$isNewCustomer = (isset($oUser) && $oUser instanceof User ) ? $oUser->inGroup( 'oxidnotyetordered') : 0 ;
Registry::getSession()->setVariable('iD3GANewCustomer', (int)$isNewCustomer);
}
}

Certains fichiers ne sont pas affichés car ce diff contient trop de modifications Voir plus