Skip to content

Instantly share code, notes, and snippets.

@gglnx
Created January 4, 2021 16:14
Show Gist options
  • Select an option

  • Save gglnx/b9934084e0f5a67813ba8a642cff477c to your computer and use it in GitHub Desktop.

Select an option

Save gglnx/b9934084e0f5a67813ba8a642cff477c to your computer and use it in GitHub Desktop.
Add simple support for Link Field by Sebiastan Lenz to Feed Me
<?php
use craft\feedme\events\RegisterFeedMeFieldsEvent;
use craft\feedme\services\Fields;
use yii\base\Event;
Event::on(Fields::class, Fields::EVENT_REGISTER_FEED_ME_FIELDS, function (RegisterFeedMeFieldsEvent $event) {
$event->fields[] = LinkField::class;
});
<?php
use Cake\Utility\Hash;
use craft\feedme\base\Field;
use craft\feedme\base\FieldInterface;
use craft\feedme\helpers\DataHelper;
/**
* Adds support for Link field by Sebastian Lenz to Feedme
*/
class LinkField extends Field implements FieldInterface
{
/**
* @var string
*/
public static $name = 'Link Field';
/**
* @var string
*/
public static $class = 'lenz\linkfield\fields\LinkField';
/**
* @inheritdoc
*/
public function getMappingTemplate()
{
return 'link';
}
/**
* @inheritdoc
*/
public function parseField()
{
$fields = Hash::get($this->fieldInfo, 'fields');
if (!$fields) {
return null;
}
$preppedData = [
'type' => 'asset',
'cpForm' => [
'url' => [
'linkedUrl' => DataHelper::fetchValue($this->feedData, $fields['url']),
],
],
'customText' => DataHelper::fetchValue($this->feedData, $fields['customText']),
];
return $preppedData;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment