Compare commits

...

245 Commits

Author SHA1 Message Date
Daniel Stein 3a364750cb
fix remarketing code 2022-09-26 13:58:43 +02:00
MaxBUhe a70429d722 add new version to metadata + meta-infos to readme 2022-08-24 14:52:09 +02:00
MaxBUhe 440c4dd85c make oxid64 installable 2022-06-02 14:18:58 +02:00
MaxBUhe 206809b3f5 add screenshot 2022-03-09 08:39:25 +01:00
Daniel Seifert d3c2e7b33f
make installable in OXID 6.3.1 2021-08-03 14:16:10 +02:00
Daniel Seifert 80f60153b4
Merge commit '1af93d170de286d930e79d93e0b0b22cf4c5ca5e' into dev_4.x_OXID63
# Conflicts:
#	docs/daux/config.json
#	docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md
#	docs/daux/installation/010_Anforderungen/030_Kompatibilitaet_mit_anderen_Modulen.md
#	docs/daux/installation/020_Neuinstallation/020_Modul_hinzufuegen.md
#	docs/daux/installation/020_Neuinstallation/030_Verwendung_eigener_Themes.md
#	docs/daux/installation/020_Neuinstallation/080_Lizenz_eintragen.md
#	docs/daux/installation/030_Update/020_Dateien_erneuern.md
#	docs/daux/installation/030_Update/070_Lizenzschluessel_aktualisieren.md
2021-07-20 10:25:03 +02:00
Daniel Seifert effae0b08a
update version informations 2021-07-20 10:18:11 +02:00
Daniel Seifert 0c86152619
remove deprecated code, improve code 2021-07-20 10:11:53 +02:00
Daniel Seifert 18c7c4c162
use fixed width icon 2021-07-20 09:22:33 +02:00
Daniel Seifert a2c2091447
make ionstallable in OXID 6.3 2021-07-20 09:09:37 +02:00
Daniel Seifert 09c8c44210
fix line endings 2021-02-26 16:15:45 +01:00
Daniel Seifert b0c0fe695a
make available for OXID 6.2.3 2021-01-14 12:05:07 +01:00
Daniel Seifert bf1eb5b639
fix eshop dependency 2020-07-28 11:55:07 +02:00
Daniel Seifert 03d1184b3f
fix documentation structure 2020-07-28 11:43:35 +02:00
Daniel Seifert 9b588a225c
Merge commit '96fd51f452bc9aa8eacc651cdf8726e58c9a56b7' into rel_4.x
# Conflicts:
#	docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md
2020-07-28 11:30:14 +02:00
Daniel Seifert 7e880833f0
update version informations and documentation 2020-07-28 09:50:29 +02:00
gitea Admin Panel c50c33d746
Merge pull request #1 from marten-seemann/oxid-6.2
update module to OXID 6.2
2020-07-28 09:23:09 +02:00
Marten Seemann 2901228bb4 update module to OXID 6.2 2020-07-28 14:08:03 +07:00
Daniel Seifert f652a61ae7
change module title logo (D3) source to external asset 2020-06-16 10:07:57 +02:00
Daniel Seifert 383ea71941
fix non https url in composer.json 2020-06-08 10:09:56 +02:00
Markus Gärtner 0f3de84581 Merge branch 'rel_4.x'
# Conflicts:
#	docs/daux/manual/010_Google_Analytics_Einrichtung/050_Benutzerdefinierte_Dimensionen.md
2020-05-20 11:02:15 +02:00
Markus Gärtner 140965db82 Add Einrichtungsleitfaden Google Analytics
UTF-8
2020-05-20 11:00:17 +02:00
Markus Gärtner 60e4ba18d3 Add Einrichtungsleitfaden Google AdWords 2020-05-20 10:31:08 +02:00
Markus Gärtner 3832c655f4 Add Einrichtungsleitfaden Google Analytics 2020-05-19 14:49:06 +02:00
Markus Gärtner 4d474cfe71 Start Dokumentation als md-Dateien 2020-05-19 11:20:11 +02:00
Markus Gärtner 442d64b42d Merge commit '8a38c8464f15f8f3ec3e076896295b58b16dbc71' as 'docs/daux' 2020-05-18 16:04:57 +02:00
Daniel Seifert 99c7dc7f59
change dependency to oxid-esales/oxideshop-ce 2020-04-07 20:48:52 +02:00
Daniel Seifert fc1011dfc1
change license 2020-02-04 14:12:10 +01:00
Daniel Seifert 7014a96a91
update module version 2020-02-04 13:49:08 +01:00
Daniel Seifert cb23574cff
make installation via Composer possible 2020-02-04 13:43:40 +01:00
SusiKober b49b34483f hotfix for chrome, unattractiveness 2020-01-10 11:08:59 +01:00
Markus Gärtner daa5d8557c #8993: Fehlerhafte Steuerberechnung wenn Gutschein eingelöst wurde
Falsche Tax wenn der Shop im Netto-Modus läuft und ein Gutschein verwendet wurde
2019-07-25 16:29:08 +02:00
RayEhrhardt 2ac1e581f7 Alte Anleitungen entfernt 2019-01-03 13:30:17 +01:00
RayEhrhardt 22e1766d7a Informationen fĂĽr die Einrichtung von Google Analytics hinzugefĂĽgt 2019-01-03 13:22:55 +01:00
RayEhrhardt acf4ff16ce BaseConfKey auf v4.0.0.1 gestellt 2018-10-29 09:11:23 +01:00
RayEhrhardt 4be68236d7 Veraltete Installationsanleitung entfernt 2018-10-26 13:16:01 +02:00
RayEhrhardt 2ceaacfd20 Installationsanleiung erstellt und Ordnerstuktur des setup+doku-Ordners entsprechend der Anleitung angepasst. 2018-10-26 13:15:19 +02:00
RayEhrhardt a6686842e5 .noencode korrigiert und php-Version in der Precheck.php auf 7.0 - 7.2 eingeschränkt 2018-10-26 13:10:13 +02:00
RayEhrhardt 80211cdd70 7832: fehlende Angabe der Währung 2018-09-07 11:06:46 +02:00
RayEhrhardt c504b8a837 7740: ecomm_totalvalue: [{$sD3GARemarketingPrice}] 2018-09-07 10:54:30 +02:00
RayEhrhardt 20f738fe93 Neue Versionsnummer 2018-09-07 10:50:24 +02:00
kristianhempel c977d4ba1b fixed compatibility bugs for oxid v6.0.0.0 + d3modcfg V 5.1.0.0 2018-04-10 10:50:05 +02:00
RayEhrhardt 8914b6affd 6419: Korrektur der Benamung der Eingabefelder fĂĽr Remarketing 2017-11-28 10:48:27 +01:00
RayEhrhardt b42c136003 6419: Korrektur der Benamung der Eingabefelder fĂĽr Remarketing 2017-11-28 10:46:49 +01:00
RayEhrhardt 96a86ff730 Merge remote-tracking branch 'origin/rel_3.x' into rel_4.x
# Conflicts:
#	copy_this/modules/d3/d3_googleanalytics/metadata.php
#	copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php
#	copy_this/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl
#	setup+doku/Precheck/d3precheck.php
#	setup+doku/changelog.txt
2017-11-27 11:00:45 +01:00
RayEhrhardt bc718ebc44 Neue Versionsnummer
Alle nötigen Änderungen um die kompatibilität zur Oxid V6 und dem D3-Modulconnector v5 herzustellen.
2017-11-27 10:57:34 +01:00
Daniel Seifert 23ffbf090f add changelog note for: add adblock detection in admin panel, because of blocked config pages in case of activated adblocker 2017-06-29 14:26:10 +02:00
Daniel Seifert e95c18d8c0 Merge branch 'rel_3.x' of http://phab.d3data.local/source/GoogleServices into rel_3.x 2017-06-29 14:21:55 +02:00
Daniel Seifert 61b1cd95d1 add adblock detection in admin panel, because of blocked config pages in case of activated adblocker 2017-06-29 14:21:45 +02:00
RayEhrhardt 17c0f2231e #4509: changed_full entfernen 2017-05-18 13:39:38 +02:00
RayEhrhardt 7de297e12b #4814: Remarketing: Werte fĂĽr ecomm_pagetype anpassen 2017-05-18 13:25:17 +02:00
RayEhrhardt c9369829a6 #5078: ecomm_totalvalue darf nicht in Apostrophen stehen 2017-05-18 13:11:34 +02:00
Daniel Seifert dae9810ec8 fix loadPageSpeed metrik 2017-03-28 09:30:27 +02:00
Daniel Seifert 84149daa0d merge rel_3.x changes to trunk 2017-03-13 12:34:08 +00:00
Daniel Seifert 1c614cc22d revision adjusted 2017-03-13 12:32:27 +00:00
Daniel Seifert 32dd4bd4bb add tpl blocks 2017-03-10 08:06:32 +00:00
Daniel Seifert 5d493cca2b add remarketing article list for start page 2017-03-09 09:05:51 +00:00
Daniel Seifert 294961da40 fix remarketing tracking via Analytics 2017-03-09 08:30:51 +00:00
Daniel Seifert 99c0927d5d add AdBlocker note 2017-02-14 15:25:21 +00:00
Daniel Seifert a41aed77b5 add remarkting (via Analytics) 2017-02-10 12:47:37 +00:00
Daniel Seifert 5aa7b36bdc fix admin headlines, change icon to Google logo 2016-11-21 14:47:57 +00:00
Daniel Seifert f624c88610 add font awesome icon 2016-11-10 12:57:32 +00:00
Daniel Seifert c453a4b07a remove quotes from _setSiteSpeedSampleRate value 2016-01-27 08:33:07 +00:00
Daniel Seifert 87607d144e anonymize screenshots 2015-10-27 13:44:50 +00:00
Daniel Seifert a73bffb2b4 fix total tax calculation 2015-08-04 07:03:12 +00:00
RayEhrhardt fa0bcbe588 Merged from dev_ticket_3679
Replaced getPrice() with direct property accessor. [from revision 229]
2015-08-03 09:53:09 +00:00
SusiKober 0e6663c139 Merged revision(s) 216-225 from branches/rel_3.x to trunk 2015-07-29 07:08:55 +00:00
SusiKober e59fdfdbeb #4220 2015-07-29 07:06:17 +00:00
SusiKober cdb3c7256e #4013 2015-07-28 15:02:32 +00:00
SusiKober e1fd89d6b3 #3588 2015-07-28 14:28:50 +00:00
SusiKober c1da5ac209 #3293 2015-07-28 13:40:24 +00:00
SusiKober 4c10aa06ca #3961 2015-07-28 13:13:19 +00:00
SusiKober 51dc6d9076 #4069 2015-07-28 13:02:58 +00:00
Daniel Seifert ce2c2541c6 fix tax claculation for trusted store tracking code 2015-07-10 15:08:16 +00:00
Daniel Seifert 1ca54a1744 merge rel_3.x to trunk 2015-07-08 14:48:28 +00:00
Daniel Seifert b064f8e1a8 revision adjusted 2015-07-08 14:46:19 +00:00
Daniel Seifert 97a9fc3284 add delivery time calculation for out of stock articles 2015-07-08 14:26:28 +00:00
Daniel Seifert 3742b80fb3 avoid js errors because of empty NoBounceEventTime, tpl blocks added 2015-06-03 07:57:45 +00:00
Daniel Seifert 6fc74a76f5 merge rel. 3.3.0.0 to trunk 2015-06-03 06:50:47 +00:00
Daniel Seifert d760ff512b show Trusted Store specific variables only, if Trusted Store is activated 2015-02-10 13:18:40 +00:00
Daniel Seifert d0a7d9a853 bounce optimization switch added (#3465) 2015-01-20 11:20:36 +00:00
Daniel Seifert f509aa7110 fix domainlist for multi domain using 2014-11-25 08:52:46 +00:00
RayEhrhardt c44f66609a Merge all from fix_3246 at 202 (reintegration) 2014-11-20 11:18:50 +00:00
RayEhrhardt d14f80df8f Merge all from fix_3246 at 202 (reintegration) 2014-11-20 11:16:18 +00:00
RayEhrhardt 72e69c5168 Merge from 3.3.0.0 2014-11-20 11:07:58 +00:00
RayEhrhardt 52472f590a Merge all from rel_3.x at 200 2014-11-20 11:05:25 +00:00
RayEhrhardt ecef4feded #3246 2014-11-20 11:04:23 +00:00
RayEhrhardt 5ad648a394 Fixed php5.3 compatibility. #3181 2014-10-30 09:06:01 +00:00
Daniel Seifert c97a2ad113 fix small issues in changelog.txt 2014-10-23 09:20:17 +00:00
Daniel Seifert 325e705cee fix small issues in changelog.txt 2014-10-23 09:18:56 +00:00
Daniel Seifert 777604f5dc fix unknown class call, revision adjusted, precheck adjusted 2014-10-23 09:07:55 +00:00
Daniel Seifert 94b1596d1f error in details, if no category is defined for current article (#3160) 2014-10-23 08:38:08 +00:00
Daniel Seifert 48e7ecbaa2 add further documentation 2014-10-22 08:58:40 +00:00
Daniel Seifert 18d4ec6e37 add descriptions 2014-10-21 13:34:40 +00:00
Daniel Seifert cff6d31ce6 optical changes for mobile theme use (#2998) 2014-10-20 11:39:32 +00:00
Daniel Seifert 5fb9ab1402 rename module to "Google Services" (#3117) 2014-10-17 09:09:56 +00:00
Daniel Seifert 39ceb6700b service description completed 2014-10-17 08:44:31 +00:00
Daniel Seifert e6de5050f4 merge dev_#3119 into rel_3.x branch 2014-10-17 08:24:14 +00:00
Daniel Seifert 62c18a42a3 add documentation 2014-10-17 08:22:20 +00:00
Daniel Seifert 2791e915c4 fix small issues 2014-10-17 07:34:22 +00:00
Daniel Seifert 8a732d7eac add current product to tracking code 2014-10-16 15:57:12 +00:00
Daniel Seifert be1f41e2dc skip no working days while transportation 2014-10-16 12:17:12 +00:00
Daniel Seifert e95630a198 merge rel_3.x changes to dev-branch 2014-10-16 10:30:09 +00:00
Daniel Seifert 45cf7549c9 add module active check for optout code, destroy shop layout, if module is deactivated 2014-10-16 10:26:23 +00:00
Daniel Seifert fdcea4d82b add weekday and feastday handling 2014-10-16 09:29:53 +00:00
Daniel Seifert ea39bbfad1 added Google Shopping support 2014-10-15 15:17:26 +00:00
Daniel Seifert 4b68552261 merge rel_3.x changes, fix user country values in trusted store code 2014-10-14 09:05:43 +00:00
Daniel Seifert 568de84f80 add target optimizations (#3028) 2014-10-14 08:25:55 +00:00
Daniel Seifert e18b6774f9 2014-10-13 14:56:53 +00:00
Daniel Seifert 681c834ca9 add first implementation 2014-10-13 13:23:06 +00:00
Daniel Seifert 14a8039b65 create dev branch for trustedStore 2014-10-13 13:17:35 +00:00
Daniel Seifert 16918787fd changed duplicated varname for "submit campaign code" (other campaigns and AdWords) #3098 2014-10-13 11:38:48 +00:00
Daniel Seifert f356606fdd add bounce rate optimization (#3118) 2014-10-13 11:17:32 +00:00
Daniel Seifert b133f1bd5c merge rel_3.x changes to trunk 2014-07-31 12:24:02 +00:00
Daniel Seifert 516773a872 revision adjusted 2014-07-31 12:14:30 +00:00
Daniel Seifert 859a93b947 merge dev_#2702 branch to rel_3.x branch 2014-07-31 12:06:11 +00:00
Daniel Seifert cc72bd81a0 fixed: typing error 2014-07-30 15:01:21 +00:00
KristianHempel aae39ab43e added: fontend css, frontend language files
added: new option opt out
modified: repaired html in modules\d3\d3_googleanalytics\views\admin\tpl\d3_cfg_googleanalytics_main.tpl
2014-07-29 08:12:43 +00:00
KristianHempel a4e7ed8abc dev_#2702 2014-07-28 12:27:06 +00:00
Daniel Seifert 30b74cd2a8 fix wrong update script (in trunk only), was an uncomplete commit 2014-07-24 09:59:37 +00:00
Daniel Seifert b9273276dd merge rel_3.x changes to trunk 2014-07-24 09:55:47 +00:00
Daniel Seifert abc080980c revision adjusted 2014-07-24 09:52:08 +00:00
Daniel Seifert 5b992ba973 add opposite url to isSsl()-Url to AutoLinker list 2014-07-24 09:39:57 +00:00
Daniel Seifert 0166ff5ff5 #2782: _d3GetNonBaseLanguageUrls() liefert falsche URLs wenn die SSL-Verbindung über eine Subdomain läuft 2014-07-24 09:21:40 +00:00
Daniel Seifert 370734c123 #2682: Feldlänge für ConversionLabel im Modul erhöhen 2014-07-24 08:52:39 +00:00
Daniel Seifert 1f60e936d9 bugfix: article titles were escaped 2014-07-24 08:48:09 +00:00
Daniel Seifert e61bb002bf merge #2416 branch to rel_3.x branch 2014-07-24 08:43:20 +00:00
Daniel Seifert 4ca0f90dfd fix quote handling in update script 2014-07-18 13:47:44 +00:00
Daniel Seifert ab9eaf64d6 add category tracking for ecommerce items 2014-07-15 15:40:34 +00:00
Daniel Seifert 006410b925 development branch for #2416 2014-07-15 15:28:11 +00:00
SusiKober 3ac2fbb5d1 correct wrong baseconfkey -> no lisence needed 2014-07-14 11:20:50 +00:00
Daniel Seifert 1c5ac2036b merge rel_3.x to trunk 2014-07-04 09:10:02 +00:00
Daniel Seifert bcf4f5cc20 revision adjusted 2014-07-04 09:03:19 +00:00
Daniel Seifert f393d40735 don't collect articlelists in pages, which don't has a class name (e.g. 404 pages) 2014-07-04 08:46:17 +00:00
Daniel Seifert c8b7d7acf7 move smarty block extensions to if-checks: content will not rendered, if module is disabled 2014-07-01 15:27:21 +00:00
Daniel Seifert be8086c5d5 merge rel_3.x changes to trunk 2014-06-05 10:11:37 +00:00
Daniel Seifert 5e2223f9e1 use baseconfkey without serial 2014-06-05 10:06:23 +00:00
Daniel Seifert 6d101c9511 merge rel_3.x changes to trunk 2014-06-05 09:23:21 +00:00
Daniel Seifert 2eaa642027 added: support for multi domain use in universal tracking code (Alexander Fehler), some cleanups 2014-06-05 09:21:20 +00:00
Daniel Seifert 5dc2667124 added: module specific log area 2014-06-03 08:34:45 +00:00
Daniel Seifert cd39b79b68 added: module specific log area 2014-06-03 08:29:37 +00:00
Daniel Seifert 18a313c4ea add configuration example screenshots 2014-05-09 09:42:22 +00:00
Daniel Seifert c97a928d96 merge rel_3.x to trunk 2014-05-09 08:45:20 +00:00
Daniel Seifert cccb389eef revision adjusted 2014-05-09 08:43:05 +00:00
Daniel Seifert 29d49f5846 merge dev branch (#2504 AdWords) to rel_3.x 2014-05-09 08:40:33 +00:00
Daniel Seifert 795569e434 rename dev branch to rel_3.x branch 2014-05-06 08:36:05 +00:00
Daniel Seifert 6648c40a93 use trackable pagename for thankyou page, documentation changed 2014-05-06 08:34:57 +00:00
Daniel Seifert 9d638eb507 revision adjusted 2014-05-05 20:22:51 +00:00
Daniel Seifert 8ba9db2c89 remove unused special 4.8.X template dir 2014-05-05 17:00:10 +00:00
Daniel Seifert 824f7b7580 changed: target setting documentation 2014-05-05 16:48:52 +00:00
Daniel Seifert 452f49f020 fix update instructions, add sampleRate configuration 2014-05-05 14:49:37 +00:00
Daniel Seifert c725af9e86 change trackingcode implemention without manipulation of existing forms, documentation fixed 2014-05-05 13:50:01 +00:00
Daniel Seifert 27817e66b0 renew adwords documentation 2014-05-03 21:45:53 +00:00
Daniel Seifert 30e0128c49 refresh documentation 2014-05-03 18:52:18 +00:00
Daniel Seifert c6cf651f46 add further parameters 2014-05-02 21:12:23 +00:00
Daniel Seifert a6be04b8c7 basic implementation 2014-05-02 14:58:43 +00:00
Daniel Seifert a2d68cb622 branch for ticket #2417 2014-05-02 14:52:34 +00:00
Daniel Seifert ee32a42d22 change line endings in some templates 2014-05-02 14:49:46 +00:00
RayEhrhardt 5784e2a51e Merge all from dev_3.0.0.3 at 108 (reintegration) 2014-05-02 09:17:17 +00:00
RayEhrhardt df5459a97b finished release preparations 2014-05-02 09:01:19 +00:00
RayEhrhardt 68c2b56af2 Remoced .bak files and the "Kundenversion" 2014-05-02 08:47:38 +00:00
RayEhrhardt 493a23e889 #2492 - Added latest precheck fix 2014-05-02 08:46:51 +00:00
RayEhrhardt c6b4c5622e #2492 - Updated configuration 2014-05-02 08:17:27 +00:00
RayEhrhardt 7b4d77383b #2492 2014-05-02 07:50:17 +00:00
RayEhrhardt fb906a0c46 3.0.0.3 development branch 2014-05-02 07:39:29 +00:00
SusiKober 479b95bbcb ĂĽbernahme in den mantis ist erfolgt 2014-02-12 15:28:44 +00:00
KristianHempel 28d21dc8fa added: 4.8.0 templates in changed full 2014-01-07 15:32:00 +00:00
Daniel Seifert 918e2d0f0b refresh precheck 2013-11-07 10:48:25 +00:00
Daniel Seifert 5afa7f8d63 documentation fixed, revision adjusted 2013-05-08 10:22:18 +00:00
Daniel Seifert 9994c0d9ac update fixed 2013-05-08 10:21:17 +00:00
Daniel Seifert e21c236a11 revision adjusted 2013-04-24 10:43:10 +00:00
Daniel Seifert 3ef5c07478 avoid messages, if oUser is not an oxuser instance 2013-04-24 10:42:11 +00:00
Daniel Seifert e3b5ead1de fix update script 2013-04-24 10:41:28 +00:00
Daniel Seifert 844867a392 fix modid scope 2013-04-24 10:40:35 +00:00
Daniel Seifert 6329e04d0a add ToDo item 2013-02-28 17:02:05 +00:00
Daniel Seifert 488b463529 add further form params 2013-02-28 17:01:52 +00:00
Daniel Seifert 90eb8fa83a fix update instructions 2013-02-21 14:03:03 +00:00
Daniel Seifert 910d6959d3 move metadata to copy_this, avoid encoding, add automated update script, refresh documentation 2013-02-21 14:02:29 +00:00
Daniel Seifert 58a6771c3d use registered include templates instead of fixed path names 2013-02-21 14:00:45 +00:00
Daniel Seifert 6001252d9a use dynamic module path for smarty plugins 2013-02-21 13:59:59 +00:00
Daniel Seifert 293ea7dc4e change precheck and its documentation 2013-02-21 13:59:26 +00:00
Daniel Seifert 24fa339c54 move smarty plugins to module folder 2013-02-21 13:58:07 +00:00
Daniel Seifert ce20521be5 move smarty plugins to module folder 2013-02-21 13:57:32 +00:00
Daniel Seifert d81890c0a3 reformat tpls 2013-02-21 13:56:11 +00:00
Daniel Seifert 571ba05eb2 add tax calculation, restore net price changes 2013-02-21 13:55:39 +00:00
Daniel Seifert e09ce9efe6 add changelog 2013-02-21 13:55:03 +00:00
Daniel Seifert 584970b793 fix module item, adjust revision 2013-02-21 13:53:34 +00:00
Daniel Seifert 202d63560a add logging 2013-02-21 13:53:00 +00:00
Daniel Seifert 2c34558c8d 2013-02-21 13:51:41 +00:00
Daniel Seifert 2bb5592b87 change author description, refactor module 2013-02-21 13:49:05 +00:00
SusiKober e44bc7e363 2012-12-21 16:12:40 +00:00
Daniel Seifert 590cfcc9d3 fix folder name 2012-12-21 10:30:15 +00:00
Daniel Seifert 5ca7526da8 reformat code 2012-12-21 10:20:32 +00:00
Daniel Seifert dd07e5a0dc add CE to modcfg item 2012-12-21 10:19:36 +00:00
Daniel Seifert 70b5574c32 fix metadata 2012-12-21 10:18:49 +00:00
Daniel Seifert 76fdad3d44 basic refactoring 2012-12-21 10:17:54 +00:00
Daniel Seifert dadcafeb15 reformat code 2012-12-21 10:16:56 +00:00
Daniel Seifert 2516f439d0 refactoring (SK) 2012-12-20 15:15:00 +00:00
Daniel Seifert 01f1d302ea add ToDo item 2012-12-20 14:46:19 +00:00
Daniel Seifert 8967424454 rename changed_full path 2012-12-20 14:44:31 +00:00
Daniel Seifert 3685f6b70a basic implementation 2012-12-20 14:41:06 +00:00
Daniel Seifert 929754d66b basic refactoring 2012-12-20 14:35:10 +00:00
Daniel Seifert c81f19ed23 add customer fixed version 2012-12-20 14:27:29 +00:00
Daniel Seifert 23c3f23d2c remove d3module menu item title for modcfg title use 2012-12-20 14:25:46 +00:00
Daniel Seifert 4dd6488b61 add build process required folders 2012-12-20 14:24:40 +00:00
Daniel Seifert a92d5b6fc9 check for 4.6.4 tpls 2012-09-13 12:17:25 +00:00
Daniel Seifert 6ea9232448 add remarketing flag 2012-09-13 12:13:55 +00:00
Daniel Seifert 1fb81da719 add metadata version 2012-09-13 12:13:01 +00:00
Daniel Seifert bf7e382e73 fix syntax error in analytics code 2012-09-13 12:09:31 +00:00
Daniel Seifert 2b858235f9 check for 4.5.11 and 4.6.2 tpls, revision and documentation adjusted 2012-09-13 12:07:35 +00:00
Daniel Seifert 6f80eed155 add further custom vars 2012-09-13 12:04:52 +00:00
Daniel Seifert 98c9aaeeff add further custom var, has to be transmitted to other tpls 2012-09-13 12:03:51 +00:00
Daniel Seifert 3399e3ac16 add 4.6.x tpls, add metadata file 2012-06-07 09:44:47 +00:00
Daniel Seifert fd86ba62e8 check 459 tpls 2012-04-13 13:37:35 +00:00
Daniel Seifert 60018b2385 add 458 tpls, add modcfg active check in tpl 2012-03-01 20:59:09 +00:00
Daniel Seifert 555f7446cc add quotes to code parameters 2012-01-24 17:10:07 +00:00
Daniel Seifert adae98dc36 456 tpls checked, syntax error in analytics code fixed 2012-01-12 16:43:57 +00:00
Daniel Seifert 22f211e27c add editor to documentation 2011-11-04 21:53:37 +00:00
Daniel Seifert bb5d07a695 check for 453 tpls 2011-10-20 20:11:05 +00:00
Daniel Seifert 3b9f6eb22a add dynamic OXID generator 2011-10-11 20:27:31 +00:00
Daniel Seifert 2fe44f79c8 change letter case in module file name 2011-10-04 12:46:16 +00:00
Daniel Seifert 16e4c044d9 documentation fixed 2011-09-02 14:36:24 +00:00
Daniel Seifert 0d1c7311a3 admin lang error fixed, price items will transfered to main currency, 451 tpls added, smarty plugin folder renamed 2011-08-31 09:48:52 +00:00
Daniel Seifert 1b96d93cb2 syntax error fixed 2011-07-15 15:54:47 +00:00
Daniel Seifert 7de74cb8d6 fix pageTrackLoadTime implementation 2011-06-27 12:16:43 +00:00
Daniel Seifert aaf7127102 campaign track switch is available without campaign code too, article generator plugin added 2011-06-09 10:06:50 +00:00
Daniel Seifert 9ff52212f9 add trackPageLoadTime command 2011-05-09 09:34:01 +00:00
Daniel Seifert 7009b28014 add 4.5.0 templates 2011-04-27 21:50:02 +00:00
Daniel Seifert dd4c7aca1a add option, to integrate conversion code on thankyou page only, fix admin template error 2011-04-18 09:54:08 +00:00
Daniel Seifert d07c318ef9 insert conversion code on thankyou page only 2011-04-18 08:46:27 +00:00
Daniel Seifert ae4be66c28 change net price tracking code 2011-04-06 14:06:28 +00:00
Daniel Seifert acb1d68dab revision adjusted 2011-03-28 07:37:35 +00:00
Daniel Seifert 866c9aec1b documentation and sql installation part fixed 2011-03-28 07:35:42 +00:00
Daniel Seifert f104fe4e5d fix GA code template, add notice for custom vars 2011-03-25 10:03:19 +00:00
Daniel Seifert 014167f8c3 fix syntax error in ecommerce tracking 2011-03-24 15:18:55 +00:00
Daniel Seifert 045eb829c5 fix frontend template and admin language files 2011-03-23 10:11:51 +00:00
Daniel Seifert abe1f34bd0 option description completed, require price format and tranfer changes to other versions 2011-03-22 16:50:58 +00:00
Daniel Seifert 7d389e4b1c basic implementation 2011-03-20 01:51:05 +00:00
Daniel Seifert 07f11b2920 basic implementation 2011-02-27 20:21:16 +00:00
Daniel Seifert c02049bf20 modcfg pages added 2011-02-27 11:55:21 +00:00
Daniel Seifert c59a64d3c3 2.1.0 2011-02-26 23:25:02 +00:00
Daniel Seifert 429c6cd8c5 2009-11-23 21:32:28 +00:00
Daniel Seifert abe11f7d9c 2009-11-23 21:32:08 +00:00
Daniel Seifert 0b11e4994a 2009-11-23 21:31:45 +00:00
Daniel Seifert 643ad8dbcb 2009-11-23 21:30:25 +00:00
133 changed files with 6210 additions and 274 deletions

2
.gitattributes vendored Normal file
View File

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

1
.noencode Normal file
View File

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

37
README.md Normal file
View File

@ -0,0 +1,37 @@
# 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.

View File

@ -1,32 +0,0 @@
---
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

38
composer.json Normal file
View File

@ -0,0 +1,38 @@
{
"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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
docs/daux/assets/Admin1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

View File

@ -0,0 +1,181 @@
---
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

View File

@ -1,10 +1,10 @@
{
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"moduleversion": "5.0.0.0",
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> Google Services",
"moduleversion": "4.5.0.0",
"titledesc": "fĂĽr den Oxid eShop",
"author": "DÂł Data Development",
"moduledate": "17.04.2018",
"editors": "XX/YY",
"moduledate": "20.07.2021",
"editors": "",
"tagline": "",
"image": "",
"ignore": {
@ -32,7 +32,6 @@
"powered_by": ""
},
"languages": {
"editions": "Editionen",
"installation": "Installation",
"manual": "Handbuch",
"changelog": "Changelog",
@ -62,12 +61,12 @@
}
},
"variables": {
"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"
"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"
},
"versionselector": false,
"versiondirectoryindex": 2

View File

@ -0,0 +1,21 @@
---
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)

View File

@ -4,6 +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 kostenfreien Connector.
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.
Informationen zu dessen Installation finden Sie in unserer [Dokumentation](https://docs.oxidmodule.com/).

View File

@ -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 der [Modul-Connector Dokumentation](https://docs.oxidmodule.com/Modul_Connector/).
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/).

View File

@ -11,19 +11,10 @@ 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
* Modul zeigt unter [ Artikel verwalten ] -> [ Artikel ] -> [ Erweitert ] die Einstellung [ Wichtigkeit des Artikels im Sortiment ]
* ... um weitere Punkte ergänzen
### Frontend
* Punkte einfĂĽgen oder Absatz entfernen
## Einstellungsabhängige Prüfungen
### Backend
* Punkte einfĂĽgen oder Absatz entfernen
### Frontend
* Punkte einfĂĽgen oder Absatz entfernen
* 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.

View File

@ -0,0 +1,19 @@
---
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.

View File

@ -0,0 +1,8 @@
---
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.

View File

@ -0,0 +1,16 @@
---
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.

View File

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

View File

@ -0,0 +1,9 @@
---
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.

View File

@ -0,0 +1,9 @@
---
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.

View File

@ -0,0 +1,10 @@
---
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)

View File

@ -0,0 +1,11 @@
---
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.

View File

@ -0,0 +1,9 @@
---
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)

View File

@ -0,0 +1,11 @@
---
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.

View File

@ -1,12 +0,0 @@
---
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 |

View File

@ -1,28 +0,0 @@
---
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.

View File

@ -1,5 +0,0 @@
---
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.

View File

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

View File

@ -1,23 +0,0 @@
---
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.

View File

@ -1,15 +0,0 @@
---
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/).

View File

@ -1,5 +0,0 @@
---
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.

View File

@ -1,11 +0,0 @@
---
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.

View File

@ -1,13 +0,0 @@
---
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>
```

View File

@ -1,7 +0,0 @@
---
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/).

View File

@ -1,23 +0,0 @@
---
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.

View File

@ -1,5 +0,0 @@
---
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.

View File

@ -1,7 +0,0 @@
---
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.

View File

@ -1,31 +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 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.

View File

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

View File

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

View File

@ -1,18 +0,0 @@
---
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.

1
resource/.gitattributes vendored Normal file
View File

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

BIN
resource/EE/einstellungen_adwords.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/einstellungen_andereKampagnen.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/einstellungen_grundeinstellungen.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/einstellungen_grundeinstellungen_allclosed.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/einstellungen_support.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/einstellungen_zertHaendler.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/EE/logging.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_adwords.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_andereKampagnen.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_grundeinstellungen.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_grundeinstellungen_allclosed.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_support.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/einstellungen_zertHaendler.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resource/PE/logging.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,49 @@
<?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 {}

View File

@ -0,0 +1,53 @@
<?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>
';
}
}

View File

@ -0,0 +1,50 @@
<?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';
}
}

View File

@ -0,0 +1,41 @@
<?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';
}
}

View File

@ -0,0 +1,39 @@
<?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';
}

View File

@ -0,0 +1,36 @@
<?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;
}
}

View File

@ -0,0 +1,41 @@
<?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';
}
}

View File

@ -0,0 +1,27 @@
<?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';
}

View File

@ -0,0 +1,33 @@
<?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;
}
}

View File

@ -0,0 +1,19 @@
<?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';
}

View File

@ -0,0 +1,45 @@
<?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";
}

7
src/d3metadata.php Normal file
View File

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

17
src/menu.xml Normal file
View File

@ -0,0 +1,17 @@
<?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>

107
src/metadata.php Normal file
View File

@ -0,0 +1,107 @@
<?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',
],
],
];

View File

@ -0,0 +1,211 @@
<?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 © D³ Data Development, Thomas Dartsch
* @author DÂł 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);
}
}

View File

@ -0,0 +1,184 @@
<?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 © D³ Data Development, Thomas Dartsch
* @author DÂł 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);
}
}

View File

@ -0,0 +1,620 @@
<?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;
}
}

Some files were not shown because too many files have changed in this diff Show More