From 4bc116f734105551945d35988c6cd28ed9939448 Mon Sep 17 00:00:00 2001 From: Hauke Loebert Date: Tue, 1 Sep 2020 12:19:35 +0200 Subject: [PATCH 1/2] List cookies by category. Order cookies by name. --- .../models/compliancecookielist.php | 4 +- .../views/tpl/widget/cookieinfos.tpl | 39 +++++++++++-------- .../core/agcookiecompliance_oxviewconfig.php | 17 ++++++++ 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/copy_this/modules/agcookiecompliance/application/models/compliancecookielist.php b/copy_this/modules/agcookiecompliance/application/models/compliancecookielist.php index c8f225e..b5cde9a 100644 --- a/copy_this/modules/agcookiecompliance/application/models/compliancecookielist.php +++ b/copy_this/modules/agcookiecompliance/application/models/compliancecookielist.php @@ -19,7 +19,7 @@ public function loadAllCookies() $sTable = getViewName('compliancecookies'); $db = \OxidEsales\Eshop\Core\DatabaseProvider::getDb(); - $sQ = "SELECT $sFields FROM $sTable WHERE $sTable.oxactive = 1 AND $sTable.oxshopid = $sShopId"; + $sQ = "SELECT $sFields FROM $sTable WHERE $sTable.oxactive = 1 AND $sTable.oxshopid = $sShopId ORDER BY OXCATEGORY DESC, OXCOOKIE ASC "; $this->selectString($sQ); } @@ -30,7 +30,7 @@ public function loadCategoryCookies($sCategory) $sTable = getViewName('compliancecookies'); $db = \OxidEsales\Eshop\Core\DatabaseProvider::getDb(); - $sQ = "SELECT $sFields FROM $sTable WHERE $sTable.oxshopid = $sShopId AND $sTable.oxcategory = " . $db->quote($sCategory); + $sQ = "SELECT $sFields FROM $sTable WHERE $sTable.oxshopid = $sShopId AND $sTable.oxcategory = " . $db->quote($sCategory).' ORDER BY OXCOOKIE ASC'; $this->selectString($sQ); } diff --git a/copy_this/modules/agcookiecompliance/application/views/tpl/widget/cookieinfos.tpl b/copy_this/modules/agcookiecompliance/application/views/tpl/widget/cookieinfos.tpl index 21268ef..388e391 100644 --- a/copy_this/modules/agcookiecompliance/application/views/tpl/widget/cookieinfos.tpl +++ b/copy_this/modules/agcookiecompliance/application/views/tpl/widget/cookieinfos.tpl @@ -1,23 +1,30 @@ -[{assign var=cookies value=$oViewConf->getComplianceCookies()}] -
- - +[{assign var=cookies_by_cat value=$oViewConf->getComplianceCookiesByCategory()}] + +
+ - - + + [{foreach from=$cookies item=cookie}] - - - - - - - [{/foreach}] - -
[{oxmultilang ident="COOKIE_COMPLIANCE_LIST_NAME"}] [{oxmultilang ident="COOKIE_COMPLIANCE_LIST_SOURCE"}] [{oxmultilang ident="COOKIE_COMPLIANCE_LIST_PURPOSE"}] [{oxmultilang ident="COOKIE_COMPLIANCE_LIST_RETENTION"}]
[{$cookie->compliancecookies__oxcookie->value}][{$cookie->compliancecookies__oxservice->value}][{$cookie->compliancecookies__oxdescription->value}][{$cookie->compliancecookies__oxretention->value}]
-
+ + [{$cookie->compliancecookies__oxcookie->value}] + [{$cookie->compliancecookies__oxcookie->value}] + [{$cookie->compliancecookies__oxservice->value}] + [{$cookie->compliancecookies__oxdescription->value}] + [{$cookie->compliancecookies__oxretention->value}] + + [{/foreach}] + + + + [{/foreach}] + \ No newline at end of file diff --git a/copy_this/modules/agcookiecompliance/extensions/core/agcookiecompliance_oxviewconfig.php b/copy_this/modules/agcookiecompliance/extensions/core/agcookiecompliance_oxviewconfig.php index ea856b7..131bd0d 100644 --- a/copy_this/modules/agcookiecompliance/extensions/core/agcookiecompliance_oxviewconfig.php +++ b/copy_this/modules/agcookiecompliance/extensions/core/agcookiecompliance_oxviewconfig.php @@ -47,4 +47,21 @@ public function getComplianceCookies () { return $list; } + public function getComplianceCookiesByCategory () { + $list = oxNew('compliancecookielist'); + $list->loadAllCookies(); + + $types=[]; + + foreach ($list as $item){ + $cat=$item->compliancecookies__oxcategory->value; + if($cat){ + if(!$types[$cat]) $types[$cat]=[]; + $types[$cat][]=$item; + } + } + + return $types; + } + } \ No newline at end of file From 8fb0053abd282d718c7ade69782120e60ff67c4c Mon Sep 17 00:00:00 2001 From: Hauke Loebert Date: Tue, 1 Sep 2020 12:32:14 +0200 Subject: [PATCH 2/2] Add more infos to readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ceee98b..3a9d1e9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,11 @@ Free OXID eShop module for GDRP compliance. - See module settings - Activate "Lern-Modus" and make an test order, after this deacticate "Lern-Modus" - Change cookie settings in general shop data --> cookies -- add `[{include file="widget/cookieinfos.tpl"}]` to `oxsecurityinfo` cms-page +- Add `[{include file="widget/cookieinfos.tpl"}]` to `oxsecurityinfo` cms-page +- "Lern-Modus" will handle the oxid standard cookies (ESSENTIAL, Google Analytics) +- Add extra cookies in the backend module +- Customize the including of the extra cookies in templates by using `[{if $oViewConf->isCookieCategoryEnabled('MARKETING') == 1}][{/if}]` +- Possible cats are ESSENTIAL,PERSONALIZATION,ANALYTICS,MARKETING,UNCATEGORIZED ## Notice - Template compatibility only for wave theme, feel free to contribute for other themes ;-)