From aaabc9b59a7f7d375dce69e653a1a01c96b7e72f Mon Sep 17 00:00:00 2001 From: Daniel Schmitzer Date: Wed, 3 Aug 2022 09:08:16 +0000 Subject: - Feature: Kategorie im Produkt Backend anzeigbar, sortier und filterbar - Feature: Produkte ohne Kategorie finden git-svn-id: https://[internal]/wordpress/plugins/wpsg4@8059 0d5edaf7-2b12-4e95-93f4-047927463d4b --- views/mods/mod_produktartikel/settings_edit.phtml | 32 +++++++++++ views/produkt/index.phtml | 69 +++++++++++++++++++++-- 2 files changed, 97 insertions(+), 4 deletions(-) (limited to 'views') diff --git a/views/mods/mod_produktartikel/settings_edit.phtml b/views/mods/mod_produktartikel/settings_edit.phtml index 49be190..604cd27 100644 --- a/views/mods/mod_produktartikel/settings_edit.phtml +++ b/views/mods/mod_produktartikel/settings_edit.phtml @@ -23,6 +23,38 @@ get_option('wpsg_mod_produktartikel_ean'), array('help' => 'wpsg_mod_produktartikel_ean')); ?> get_option('wpsg_mod_produktartikel_gtin'), array('help' => 'wpsg_mod_produktartikel_gtin')); ?> + +
+ +get_option('wpsg_mod_produktartikel_cat'), array('help' => 'wpsg_mod_produktartikel_cat')); ?> +
+ get_option('wpsg_mod_produktartikel_cat_first_level'), array('help' => 'wpsg_mod_produktartikel_cat_first_level')); ?> + get_option('wpsg_mod_produktartikel_cat_ignore'), ['help' => 'wpsg_mod_produktartikel_cat_ignore']); ?> +
+ + +
get_option('wpsg_mod_produktartikel_positionnumber'), array('help' => 'wpsg_mod_produktartikel_positionnumber')); */ ?> diff --git a/views/produkt/index.phtml b/views/produkt/index.phtml index e59123f..34296c4 100644 --- a/views/produkt/index.phtml +++ b/views/produkt/index.phtml @@ -4,6 +4,21 @@ * Template für die Produktübersicht im Backend */ + $arTermExclude = []; + $wpsg_mod_produktartikel_cat_first_level = false; + + if ($this->hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_cat')) { + + if ($this->get_option('wpsg_mod_produktartikel_cat_first_level') === '1') $wpsg_mod_produktartikel_cat_first_level = true; + + foreach (explode(',', $this->get_option('wpsg_mod_produktartikel_cat_ignore')) as $exclude_term_id) { + + if (wpsg_isSizedString($exclude_term_id)) $arTermExclude[] = trim($exclude_term_id); + + } + + } + ?>
@@ -68,9 +83,18 @@ view['arFilter']['s'])); ?> - view['arFilter']; - unset($filterAll['productgroup_ids']); + view['arFilter']; + + unset($filterAll['productgroup_ids']); unset($filterAll['productcategory_ids']); + + $filterNone = $this->view['arFilter']; + $filterNone['isNoCat'] = true; + $filterNone['loadCat'] = false; + unset($filterNone['productcategory_ids']); + ?> hasMod('wpsg_mod_productgroups')) { ?> @@ -79,11 +103,16 @@ hasMod('wpsg_mod_produktartikel')) { ?> callMod('wpsg_mod_produktartikel', 'getProductcategorySelect', array($this->view['arFilter'])); $arr = array(); foreach ($temp as $vv) $arr[$vv['term_taxonomy_id']] = $vv['label']; + echo wpsg_drawForm_Select('filter[productcategory_ids]', __('Produktkategorie', 'wpsg'), - wpsg_array_merge(array('-1' => wpsg_translate(__('Alle Produktkategorien (#1#)', 'wpsg'), wpsg_product::count($filterAll))), + wpsg_array_merge(array( + '-1' => wpsg_translate(__('Alle Produktkategorien (#1#)', 'wpsg'), wpsg_product::count($filterAll)), + '-2' => wpsg_translate(__('Unzugeordnet (#1#)', 'wpsg'), wpsg_product::count($filterNone)) + ), $arr), @$this->view['arFilter']['productcategory_ids']); ?> @@ -167,6 +196,10 @@ + hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_cat') === '1') { ?> + + + hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_gtin') == '1') { ?> @@ -269,7 +302,35 @@ - getNr(); ?> + getNr(); ?> + hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_cat')) { ?> + + callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', [$d['id']]); + $post_terms = \get_the_terms($post_id, $this->get_option('wpsg_mod_produktartikel_pathkey_cat')); + + $arTermDisplay = []; + + foreach ($post_terms as $term) { + + if (!in_array($term->slug, $arTermExclude)) { + + if ($wpsg_mod_produktartikel_cat_first_level && $term->parent !== 0) continue; + + $arTermDisplay[] = $term->name; + + } + + } + + asort($arTermDisplay); + + echo implode(', ', $arTermDisplay); + + ?> + + hasMod('wpsg_mod_produktartikel') && $this->get_option('wpsg_mod_produktartikel_gtin') == '1') { ?> -- cgit v1.2.3