Skip to content
This repository was archived by the owner on Nov 6, 2021. It is now read-only.

Commit 7394353

Browse files
author
Florian Horn
committed
Added default value for URLs
Added possibility to extend data on configuration model Refactored fuzzyfyr structure
1 parent 00ad623 commit 7394353

File tree

12 files changed

+287
-142
lines changed

12 files changed

+287
-142
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
/**
3+
* This file is part of the Content Fuzzyfyr module for Magento2.
4+
*
5+
* (c) All.In Data GmbH
6+
*
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*/
10+
11+
namespace AllInData\ContentFuzzyfyr\Api\Observer;
12+
13+
use AllInData\ContentFuzzyfyr\Console\Command\FuzzyfyrCommand;
14+
use AllInData\ContentFuzzyfyr\Model\Configuration;
15+
use Magento\Framework\Event\ObserverInterface;
16+
17+
interface FuzzyfyrObserverInterface extends ObserverInterface
18+
{
19+
/**
20+
* @param \Magento\Framework\Event\Observer $observer
21+
* @return Configuration
22+
*/
23+
public function getConfigurationByEvent(\Magento\Framework\Event\Observer $observer);
24+
25+
/**
26+
* @param \Magento\Framework\DataObject $entity
27+
* @param string $fieldName
28+
* @param Configuration $configuration
29+
* @param string $value
30+
*/
31+
public function updateData(
32+
\Magento\Framework\DataObject $entity,
33+
$fieldName,
34+
Configuration $configuration,
35+
$value = FuzzyfyrCommand::DEFAULT_DUMMY_CONTENT_TEXT
36+
);
37+
}

Changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file, in reverse
44

55
## 1.1.0
66

7+
- Added default value for URLs
8+
- Added possibility to extend data on configuration model
9+
- Refactored fuzzyfyr structure
710
- Added fuzzyfyr for CMS Pages
811
- Added fuzzyfyr for CMS Blocks
912
- Extended fuzzyfyr for Customers with address fuzzing

Console/Command/FuzzyfyrCommand.php

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@ class FuzzyfyrCommand extends Command
4141
*/
4242
const OPTION_DUMMY_CONTENT_TEXT = 'dummy-content-text';
4343
const OPTION_DUMMY_CONTENT_EMAIL = 'dummy-content-email';
44+
const OPTION_DUMMY_CONTENT_URL = 'dummy-content-url';
45+
const OPTION_DUMMY_CONTENT_PHONE = 'dummy-content-phone';
4446

4547
/**
4648
* Defaults
4749
*/
4850
const DEFAULT_DUMMY_CONTENT_TEXT = 'Lorem ipsum.';
4951
const DEFAULT_DUMMY_CONTENT_EMAIL = 'lorem.ipsum.%1$s@test.localhost';
52+
const DEFAULT_DUMMY_CONTENT_URL = 'https://lor.emips.um/foo/bar/';
53+
const DEFAULT_DUMMY_CONTENT_PHONE = '+49 (0) 600 987 654 32';
5054

5155
/**
5256
* @var State
@@ -129,15 +133,29 @@ protected function configure()
129133
self::OPTION_DUMMY_CONTENT_TEXT,
130134
null,
131135
InputOption::VALUE_OPTIONAL,
132-
'Used as dummy text content. Defaults to \'Lorem ipsum.\'',
136+
sprintf('Used as dummy text content. Defaults to \'%s\'', self::DEFAULT_DUMMY_CONTENT_TEXT),
133137
self::DEFAULT_DUMMY_CONTENT_TEXT
134138
),
135139
new InputOption(
136140
self::OPTION_DUMMY_CONTENT_EMAIL,
137141
null,
138142
InputOption::VALUE_OPTIONAL,
139-
'Used as dummy email content. Defaults to \'lorem.ipsum.%1$s@test.localhost\'',
143+
sprintf('Used as dummy email content. Defaults to \'%s\'', self::DEFAULT_DUMMY_CONTENT_EMAIL),
140144
self::DEFAULT_DUMMY_CONTENT_EMAIL
145+
),
146+
new InputOption(
147+
self::OPTION_DUMMY_CONTENT_URL,
148+
null,
149+
InputOption::VALUE_OPTIONAL,
150+
sprintf('Used as dummy URL. Defaults to \'%s\'', self::DEFAULT_DUMMY_CONTENT_URL),
151+
self::DEFAULT_DUMMY_CONTENT_URL
152+
),
153+
new InputOption(
154+
self::OPTION_DUMMY_CONTENT_PHONE,
155+
null,
156+
InputOption::VALUE_OPTIONAL,
157+
sprintf('Used as dummy phone number. Defaults to \'%s\'', self::DEFAULT_DUMMY_CONTENT_PHONE),
158+
self::DEFAULT_DUMMY_CONTENT_PHONE
141159
)
142160
]);
143161

@@ -178,6 +196,8 @@ protected function execute(InputInterface $input, OutputInterface $output)
178196
// --- Options
179197
$configuration->setDummyContentText($input->getOption(self::OPTION_DUMMY_CONTENT_TEXT));
180198
$configuration->setDummyContentEmail($input->getOption(self::OPTION_DUMMY_CONTENT_EMAIL));
199+
$configuration->setDummyContentUrl($input->getOption(self::OPTION_DUMMY_CONTENT_URL));
200+
$configuration->setDummyPhoneNumber($input->getOption(self::OPTION_DUMMY_CONTENT_PHONE));
181201

182202
/*
183203
* Processing

Model/Configuration.php

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,18 @@ class Configuration
5252
* @var string
5353
*/
5454
private $dummyContentEmail;
55+
/**
56+
* @var string
57+
*/
58+
private $dummyContentUrl;
59+
/**
60+
* @var string
61+
*/
62+
private $dummyPhoneNumber;
63+
/**
64+
* @var array
65+
*/
66+
private $extendedData;
5567

5668
/**
5769
* @return bool
@@ -214,4 +226,58 @@ public function setDummyContentEmail($dummyContentEmail)
214226
$this->dummyContentEmail = $dummyContentEmail;
215227
return $this;
216228
}
229+
230+
/**
231+
* @return string
232+
*/
233+
public function getDummyContentUrl()
234+
{
235+
return $this->dummyContentUrl;
236+
}
237+
238+
/**
239+
* @param string $dummyContentUrl
240+
* @return Configuration
241+
*/
242+
public function setDummyContentUrl($dummyContentUrl)
243+
{
244+
$this->dummyContentUrl = $dummyContentUrl;
245+
return $this;
246+
}
247+
248+
/**
249+
* @return string
250+
*/
251+
public function getDummyPhoneNumber()
252+
{
253+
return $this->dummyPhoneNumber;
254+
}
255+
256+
/**
257+
* @param string $dummyPhoneNumber
258+
* @return Configuration
259+
*/
260+
public function setDummyPhoneNumber($dummyPhoneNumber)
261+
{
262+
$this->dummyPhoneNumber = $dummyPhoneNumber;
263+
return $this;
264+
}
265+
266+
/**
267+
* @return array
268+
*/
269+
public function getExtendedData()
270+
{
271+
return $this->extendedData;
272+
}
273+
274+
/**
275+
* @param array $extendedData
276+
* @return Configuration
277+
*/
278+
public function setExtendedData($extendedData)
279+
{
280+
$this->extendedData = $extendedData;
281+
return $this;
282+
}
217283
}

Observer/CategoriesObserver.php

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515
use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory as CategoryCollectionFactory;
1616
use Magento\Catalog\Model\ResourceModel\Category as CategoryResource;
1717
use Magento\Catalog\Model\ResourceModel\CategoryFactory as CategoryResourceFactory;
18-
use Magento\Framework\Event\ObserverInterface;
1918

20-
class CategoriesObserver implements ObserverInterface
19+
class CategoriesObserver extends FuzzyfyrObserver
2120
{
2221
/**
2322
* @var CategoryCollectionFactory
@@ -42,18 +41,18 @@ public function __construct(CategoryCollectionFactory $categoryCollectionFactory
4241
/**
4342
* {@inheritdoc}
4443
*/
45-
public function execute(\Magento\Framework\Event\Observer $observer)
44+
public function isValid(Configuration $configuration)
4645
{
47-
/** @var Configuration $configuration */
48-
$configuration = $observer->getData('configuration');
49-
50-
if (!$configuration->isApplyToCategories()) {
51-
return;
52-
}
53-
54-
// @TODO clear table url_rewrite for entity_type category
55-
// @TODO mark indexer to invalidate index
46+
return $configuration->isApplyToCategories();
47+
}
5648

49+
/**
50+
* {@inheritdoc}
51+
* @TODO clear table url_rewrite for entity_type category
52+
* @TODO mark indexer to invalidate index
53+
*/
54+
protected function run(Configuration $configuration)
55+
{
5756
/** @var CategoryResource $categoryResource */
5857
$categoryResource = $this->categoryResourceFactory->create();
5958

@@ -62,35 +61,20 @@ public function execute(\Magento\Framework\Event\Observer $observer)
6261
$categoryCollection->load();
6362
foreach ($categoryCollection->getItems() as $category) {
6463
/** @var \Magento\Catalog\Model\Category $category */
65-
$this->updateData($configuration, $category);
64+
$this->doUpdate($configuration, $category);
6665
$categoryResource->save($category);
6766
}
6867
}
6968

7069
/**
7170
* @param Configuration $configuration
7271
* @param \Magento\Catalog\Model\Category $category
73-
* @return \Magento\Catalog\Model\Category
7472
*/
75-
protected function updateData(Configuration $configuration, \Magento\Catalog\Model\Category $category)
73+
protected function doUpdate(Configuration $configuration, \Magento\Catalog\Model\Category $category)
7674
{
77-
if (!$configuration->isUseOnlyEmpty() ||
78-
($configuration->isUseOnlyEmpty() && empty($category->getDescription()))) {
79-
$category->setDescription($configuration->getDummyContentText());
80-
}
81-
if (!$configuration->isUseOnlyEmpty() ||
82-
($configuration->isUseOnlyEmpty() && empty($category->getMetaTitle()))) {
83-
$category->setMetaTitle($configuration->getDummyContentText());
84-
}
85-
if (!$configuration->isUseOnlyEmpty() ||
86-
($configuration->isUseOnlyEmpty() && empty($category->getMetaKeywords()))) {
87-
$category->setMetaKeywords($configuration->getDummyContentText());
88-
}
89-
if (!$configuration->isUseOnlyEmpty() ||
90-
($configuration->isUseOnlyEmpty() && empty($category->getMetaDescription()))) {
91-
$category->setMetaDescription($configuration->getDummyContentText());
92-
}
93-
94-
return $category;
75+
$this->updateData($category, 'description', $configuration, $configuration->getDummyContentText());
76+
$this->updateData($category, 'meta_title', $configuration, $configuration->getDummyContentText());
77+
$this->updateData($category, 'meta_keywords', $configuration, $configuration->getDummyContentText());
78+
$this->updateData($category, 'meta_description', $configuration, $configuration->getDummyContentText());
9579
}
9680
}

Observer/CmsBlocksObserver.php

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Magento\Cms\Model\ResourceModel\BlockFactory as BlockResourceFactory;
1818
use Magento\Framework\Event\ObserverInterface;
1919

20-
class CmsBlocksObserver implements ObserverInterface
20+
class CmsBlocksObserver extends FuzzyfyrObserver
2121
{
2222
/**
2323
* @var BlockCollectionFactory
@@ -42,15 +42,16 @@ public function __construct(BlockCollectionFactory $blockCollectionFactory, Bloc
4242
/**
4343
* {@inheritdoc}
4444
*/
45-
public function execute(\Magento\Framework\Event\Observer $observer)
45+
public function isValid(Configuration $configuration)
4646
{
47-
/** @var Configuration $configuration */
48-
$configuration = $observer->getData('configuration');
49-
50-
if (!$configuration->isApplyToCmsBlocks()) {
51-
return;
52-
}
47+
return $configuration->isApplyToCmsBlocks();
48+
}
5349

50+
/**
51+
* {@inheritdoc}
52+
*/
53+
protected function run(Configuration $configuration)
54+
{
5455
/** @var BlockResource $blockResource */
5556
$blockResource = $this->blockResourceFactory->create();
5657

@@ -59,23 +60,17 @@ public function execute(\Magento\Framework\Event\Observer $observer)
5960
$blockCollection->load();
6061
foreach ($blockCollection->getItems() as $block) {
6162
/** @var \Magento\Cms\Model\Block $block */
62-
$this->updateData($configuration, $block);
63+
$this->doUpdate($configuration, $block);
6364
$blockResource->save($block);
6465
}
6566
}
6667

6768
/**
6869
* @param Configuration $configuration
6970
* @param \Magento\Cms\Model\Block $block
70-
* @return \Magento\Cms\Model\Block
7171
*/
72-
protected function updateData(Configuration $configuration, \Magento\Cms\Model\Block $block)
72+
protected function doUpdate(Configuration $configuration, \Magento\Cms\Model\Block $block)
7373
{
74-
if (!$configuration->isUseOnlyEmpty() ||
75-
($configuration->isUseOnlyEmpty() && empty($block->getContent()))) {
76-
$block->setContent($configuration->getDummyContentText());
77-
}
78-
79-
return $block;
74+
$this->updateData($block, 'content', $configuration, $configuration->getDummyContentText());
8075
}
8176
}

0 commit comments

Comments
 (0)