public function getSkinOption(Request $request)
{
/**
* @var \Xpressengine\DynamicField\DynamicFieldHandler $dynamicField
*/
$dynamicField = app('xe.dynamicField');
/**
* @var \Xpressengine\DynamicField\ConfigHandler $configHandler
*/
$configHandler = $dynamicField->getConfigHandler();
$skinId = '';
if ($request->get('id') != null && ($config = $configHandler->get($request->get('group'), $request->get('id')))) {
$skinId = $config->skinId;
}
/**
* @var \Xpressengine\DynamicField\RegisterHandler $registerHandler
*/
$registerHandler = $dynamicField->getRegisterHandler();
// fieldType 에 따른 Skin 리스트
/**
* @var \Generator $skins
*/
$skins = [];
foreach ($registerHandler->getSkinsByType($dynamicField, $request->get('typeId')) as $skin) {
$skins[$skin->getId()] = $skin->name();
}
return XePresenter::makeApi(['skins' => $skins, 'skinId' => $skinId]);
}