Skip to content

Commit 7dd3232

Browse files
committed
fix and image for tag
1 parent c27eb6b commit 7dd3232

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

Controller/Adminhtml/Tag/Save.php

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,54 @@ protected function filterParams($data)
4545

4646
return $data;
4747
}
48+
49+
/**
50+
* @param $model
51+
* @param $request
52+
* @return void
53+
*/
54+
protected function _beforeSave($model, $request)
55+
{
56+
/* Prepare images */
57+
$data = $model->getData();
58+
59+
foreach (['tag_img'] as $key) {
60+
if (isset($data[$key]) && is_array($data[$key])) {
61+
if (!empty($data[$key]['delete'])) {
62+
$model->setData($key, null);
63+
} else {
64+
if (isset($data[$key][0]['name']) && isset($data[$key][0]['tmp_name'])) {
65+
$image = $data[$key][0]['name'];
66+
67+
$imageUploader = $this->_objectManager->get(
68+
\Magefan\Blog\ImageUpload::class
69+
);
70+
$image = $imageUploader->moveFileFromTmp($image, true);
71+
72+
$model->setData($key, $image);
73+
} else {
74+
if (isset($data[$key][0]['url']) && false !== strpos($data[$key][0]['url'], '/media/')) {
75+
$url = $data[$key][0]['url'];
76+
77+
/**
78+
* $url may have two types of values
79+
* /media/.renditions/magefan_blog/a.png
80+
* http://crowdin.dev.magefan.top/media/magefan_blog/tmp/a.png
81+
*/
82+
83+
$keyString = strpos($url, '/.renditions/') !== false ? '/.renditions/' : '/media/';
84+
$position = strpos($url, $keyString);
85+
86+
$model->setData($key, substr($url, $position + strlen($keyString)));
87+
88+
} elseif (isset($data[$key][0]['name'])) {
89+
$model->setData($key, $data[$key][0]['name']);
90+
}
91+
}
92+
}
93+
} else {
94+
$model->setData($key, null);
95+
}
96+
}
97+
}
4898
}

Model/Tag.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,4 +266,22 @@ public function getShortContentExtractor()
266266

267267
return $this->shortContentExtractor;
268268
}
269+
270+
/**
271+
* @return array|mixed|null
272+
*/
273+
public function getTagImg()
274+
{
275+
if (!$this->hasData('tag_image')) {
276+
if ($file = $this->getData('tag_img')) {
277+
$image = $this->_url->getMediaUrl($file);
278+
279+
} else {
280+
$image = false;
281+
}
282+
$this->setData('tag_image', $image);
283+
}
284+
285+
return $this->getData('tag_image');
286+
}
269287
}

Ui/DataProvider/Tag/Form/TagDataProvider.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,18 @@ public function getData()
7878
$items = $this->collection->getItems();
7979
/** @var $tag \Magefan\Blog\Model\Tag */
8080
foreach ($items as $tag) {
81+
$tag = $tag->load($tag->getId()); //temporary fix
8182
$this->loadedData[$tag->getId()] = $tag->getData();
83+
$data = $tag->getData();
84+
$key = 'tag_img';
85+
$name = $data[$key];
86+
unset($data[$key]);
87+
$data[$key][0] = [
88+
'name' => $name,
89+
'url' => $tag->getTagImg(),
90+
];
91+
// var_dump($tag->getTagImg());exit();
92+
$this->loadedData[$tag->getId()] = $data;
8293
}
8394

8495
$data = $this->dataPersistor->get('blog_tag_form_data');

0 commit comments

Comments
 (0)