Skip to content

Commit

Permalink
Merge branch 'craft-4' of https://github.com/verbb/field-manager into…
Browse files Browse the repository at this point in the history
… craft-5
  • Loading branch information
engram-design committed Mar 4, 2024
2 parents 24d179c + 51fe2fb commit 05fec43
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/services/Export.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@

use yii\base\Component;

use Throwable;

use verbb\supertable\SuperTable;
use verbb\supertable\fields\SuperTableField;

use benf\neo\Plugin as Neo;
use benf\neo\Field as NeoField;

use craft\ckeditor\Plugin as CkEditor;
use craft\ckeditor\Field as CkEditorField;

class Export extends Component
{
// Public Methods
Expand Down Expand Up @@ -57,6 +62,12 @@ public function export(array $fieldIds): array
}
}

if (Plugin::isPluginInstalledAndEnabled('ckeditor')) {
if ($field instanceof CkEditorField) {
$newField['settings'] = $this->processCkEditor($field);
}
}

$fields[] = $newField;
}
}
Expand Down Expand Up @@ -216,4 +227,23 @@ public function processSuperTable($field): array

return $fieldSettings;
}

public function processCkEditor($field): array
{
$fieldSettings = $field->settings;
$ckeConfigUid = $fieldSettings['ckeConfig'] ?? null;

if ($ckeConfigUid) {
try {
$ckeConfig = CkEditor::getInstance()->getCkeConfigs()->getByUid($ckeConfigUid);

if ($ckeConfig) {
$fieldSettings['ckeConfig'] = $ckeConfig;
}
} catch (Throwable) {
}
}

return $fieldSettings;
}
}
39 changes: 39 additions & 0 deletions src/services/Import.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

use yii\base\Component;

use Throwable;

use craft\ckeditor\Plugin as CkEditor;
use craft\ckeditor\Field as CkEditorField;
use craft\ckeditor\CkeConfig;

class Import extends Component
{
// Public Methods
Expand Down Expand Up @@ -156,6 +162,10 @@ public function import(array $fields): array
$fieldInfo['settings'] = $this->processPosition($fieldInfo);
}

if ($fieldInfo['type'] === 'craft\ckeditor\Field') {
$fieldInfo['settings'] = $this->processCkEditor($fieldInfo);
}

$field = Craft::$app->getFields()->createField([
'name' => $fieldInfo['name'],
'handle' => $fieldInfo['handle'],
Expand Down Expand Up @@ -280,6 +290,35 @@ public function processPosition($fieldInfo): array
return $settings;
}

public function processCkEditor($fieldInfo): array
{
$settings = $fieldInfo['settings'];

// Get or create the config from its UID
$ckeConfigData = $settings['ckeConfig'] ?? null;
$ckeConfigUid = $settings['ckeConfig']['uid'] ?? null;

if ($ckeConfigUid) {
try {
$ckeConfig = CkEditor::getInstance()->getCkeConfigs()->getByUid($ckeConfigUid);
} catch (Throwable) {
$ckeConfig = null;
}

if (!$ckeConfig) {
$ckeConfig = new CkeConfig($ckeConfigData);

CkEditor::getInstance()->getCkeConfigs()->save($ckeConfig);

$ckeConfigUid = $ckeConfig->uid;
}

$settings['ckeConfig'] = $ckeConfigUid;
}

return $settings;
}

public function getData($json)
{
$data = Json::decode($json, true, 512);
Expand Down

0 comments on commit 05fec43

Please sign in to comment.