public static function Utility::createFields in Basic cart 8.2
Same name and namespace in other branches
- 8.6 src/Utility.php \Drupal\basic_cart\Utility::createFields()
- 8 src/Utility.php \Drupal\basic_cart\Utility::createFields()
- 8.0 src/Utility.php \Drupal\basic_cart\Utility::createFields()
- 8.3 src/Utility.php \Drupal\basic_cart\Utility::createFields()
- 8.4 src/Utility.php \Drupal\basic_cart\Utility::createFields()
- 8.5 src/Utility.php \Drupal\basic_cart\Utility::createFields()
Create Fields for content type basic cart enabled.
Parameters
string $type: Type fields to be created.
2 calls to Utility::createFields()
- CartSettingsForm::submitForm in src/
Form/ CartSettingsForm.php - Form submission handler.
- Utility::orderConnectFields in src/
Utility.php - Create Order connect Fields.
File
- src/
Utility.php, line 225
Class
- Utility
- Utilty functions for basic cart.
Namespace
Drupal\basic_cartCode
public static function createFields($type = NULL) {
$fields = $type == self::FIELD_ORDERCONNECT ? self::getFieldsConfig(self::FIELD_ORDERCONNECT) : self::getFieldsConfig();
$view_modes = \Drupal::entityManager()
->getViewModes('node');
$storage = \Drupal::entityTypeManager()
->getStorage('entity_view_display');
foreach ($fields->fields as $field_name => $config) {
$field_storage = FieldStorageConfig::loadByName($config['entity_type'], $field_name);
if (empty($field_storage)) {
FieldStorageConfig::create(array(
'field_name' => $field_name,
'entity_type' => $config['entity_type'],
'type' => $config['type'],
'cardinality' => $config['cardinality'],
))
->save();
}
}
foreach ($fields->bundle_types as $bundle) {
$view_display = $storage
->load($config['entity_type'] . '.' . $bundle . '.basic_cart_order');
if ($view_display == NULL) {
$storage
->create([
'targetEntityType' => $config['entity_type'],
'bundle' => $bundle,
'mode' => 'basic_cart_order',
'status' => TRUE,
])
->save();
}
foreach ($fields->fields as $field_name => $config) {
$config_array = array(
'field_name' => $field_name,
'entity_type' => $config['entity_type'],
'bundle' => $bundle,
'label' => $config['label'],
'required' => $config['required'],
'cardinality' => $config['cardinality'],
);
if (isset($config['settings'])) {
$config_array['settings'] = $config['settings'];
}
$field = FieldConfig::loadByName($config['entity_type'], $bundle, $field_name);
if (empty($field) && $bundle !== "" && !empty($bundle)) {
FieldConfig::create($config_array)
->save();
}
if ($bundle !== "" && !empty($bundle)) {
if (!empty($field)) {
$field
->setLabel($config['label'])
->save();
$field
->setRequired($config['required'])
->save();
}
if ($config['widget']) {
entity_get_form_display($config['entity_type'], $bundle, 'default')
->setComponent($field_name, $config['widget'])
->save();
}
if ($config['formatter']) {
foreach ($config['formatter'] as $view => $formatter) {
if (isset($view_modes[$view]) || $view == "default") {
$formatter_view = entity_get_display($config['entity_type'], $bundle, $view);
if ($view != 'basic_cart_order') {
$formatter_view
->setComponent($field_name, !is_array($formatter) ? $config['formatter']['default'] : $config['formatter']['default']);
}
elseif ($view == 'basic_cart_order' && $field_name == "add_to_cart_price") {
$formatter_view
->setComponent($field_name, !is_array($formatter) ? $config['formatter']['default'] : $config['formatter']['default']);
}
elseif ($view == 'basic_cart_order' && $field_name != "add_to_cart_price") {
$formatter_view
->removeComponent($field_name);
}
$formatter_view
->save();
}
}
}
}
}
// Display mode basic_cart_order add fields to title and
// price feild in formatter and remove other fields.
$view_display = $storage
->load($config['entity_type'] . '.' . $bundle . '.basic_cart_order');
if ($view_display != NULL) {
foreach (\Drupal::entityManager()
->getFieldDefinitions($config['entity_type'], $bundle) as $field_name => $field_definition) {
if (!empty($field_definition
->getTargetBundle())) {
if (!in_array($field_definition
->getName(), [
'add_to_cart_price',
])) {
$view_display
->removeComponent($field_definition
->getName());
}
else {
$view_display
->setComponent($field_definition
->getName(), [
'type' => 'number_decimal',
]);
}
}
}
if ($view_display != NULL) {
$view_display
->removeComponent('links');
$view_display
->save();
}
}
}
}