Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UrlRewriteForm.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\Block\Form;
10 use Magento\Mtf\Client\Element\SimpleElement;
12 use Magento\Mtf\Fixture\FixtureInterface;
13 
17 class UrlRewriteForm extends Form
18 {
25  protected function prepareData(FixtureInterface $fixture)
26  {
27  $data = $fixture->getData();
28  if (empty($data['entity_type']) && empty($this->getData()['target_path']) && !isset($data['target_path'])) {
29  $entity = $fixture->getDataFieldConfig('target_path')['source']->getEntity();
30  $data['target_path'] = $entity->hasData('identifier')
31  ? $entity->getIdentifier()
32  : $entity->getUrlKey() . '.html';
33  }
34  return $data;
35  }
36 
44  protected function fillFields(array $data, SimpleElement $context)
45  {
46  $mapping = $this->dataMapping($data);
47  foreach ($mapping as $field) {
48  $element = $this->getElement($context, $field);
49  if ($element->isVisible() && !$element->isDisabled()) {
50  $element->setValue($field['value']);
51  }
52  }
53  }
54 
63  public function fill(
64  FixtureInterface $fixture,
65  SimpleElement $element = null,
66  array $replace = []
67  ) {
68  $context = ($element === null) ? $this->_rootElement : $element;
69  $data = $this->prepareData($fixture);
70 
71  foreach ($replace as $key => $value) {
72  if (isset($data[$key])) {
73  $data[$key] = preg_replace('`(\$.*?' . $value['name'] . '\$)`', $value['value'], $data[$key]);
74  }
75  }
76 
77  $this->fillFields($data, $context);
78 
79  return $this;
80  }
81 }
$value
Definition: gender.phtml:16
fill(FixtureInterface $fixture, SimpleElement $element=null, array $replace=[])
$entity
Definition: element.phtml:22
$element
Definition: element.phtml:12