Created
January 4, 2021 16:14
-
-
Save gglnx/b9934084e0f5a67813ba8a642cff477c to your computer and use it in GitHub Desktop.
Add simple support for Link Field by Sebiastan Lenz to Feed Me
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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; | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {% import 'feed-me/_macros' as feedMeMacro %} | |
| {% import '_includes/forms' as forms %} | |
| {# Special case when inside another complex field (Matrix) #} | |
| {% if parentPath is defined %} | |
| {% set prefixPath = parentPath %} | |
| {% else %} | |
| {% set prefixPath = [handle] %} | |
| {% endif %} | |
| {% set classes = ['complex-field'] %} | |
| <tr class="complex-field complex-field-header"> | |
| <td class="col-field" colspan="3"> | |
| <div class="field"> | |
| <div class="heading"> | |
| <label class="">{{ name }}</label> | |
| </div> | |
| <div class="additional-mapping-fields"> | |
| {% namespace 'fieldMapping[' ~ prefixPath|join('][') ~ ']' %} | |
| <input type="text" name="field" value="{{ className(field) }}"> | |
| {% endnamespace %} | |
| </div> | |
| </div> | |
| </td> | |
| </tr> | |
| {% set subfields = { | |
| url: 'URL', | |
| customText: 'Custom Text', | |
| } %} | |
| {% for key, col in subfields %} | |
| {% set nameLabel = col %} | |
| {% set instructionsHandle = handle ~ '[' ~ key ~ ']' %} | |
| {% set path = prefixPath|merge ([ 'fields', key ]) %} | |
| {% set default = { | |
| type: 'text' | |
| } %} | |
| {% embed 'feed-me/_includes/fields/_base' %} | |
| {% block additionalFieldSettings %}{% endblock %} | |
| {% block fieldSettings %}{% endblock %} | |
| {% endembed %} | |
| {% endfor %} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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