}
$this->config->basketReferences = $references;
+
+ // Allow individual Fluidbooks to override the columns shown in the cart
+ $extra = wsHTML5Link::parseExtras($this->book->parametres->cartExtraSettings, true);
+
+ if (!empty($extra['cart_columns'])) {
+ // In the "Paramètres panier" field (cartExtraSettings), the cart columns can be defined in this format:
+ // cart_columns=XLS COL NAME|Display name,XLS COL 2|Display name 2
+ // This setting needs to be trimmed and converted into an associative array with column_name => display_name
+ // Split by commas, then by pipes |
+ $columns = array_map(function ($heading) {
+ return explode('|', $heading);
+ }, explode(',', $extra['cart_columns']));
+ $processed_columns = [];
+ foreach ($columns as $column) {
+ $processed_columns[strtoupper(trim($column[0]))] = trim($column[1] ?? '');
+ }
+
+ // Ensure that special QUANTITY and DELETE columns are present (see getColumns() in fluidbook.cart.bastide.js)
+ $processed_columns['QUANTITY'] = $processed_columns['QUANTITY'] ?? 'Quantité';
+ $processed_columns['DELETE'] = '';
+
+ $this->config->cartColumns = $processed_columns;
+ }
+
}
public function writeCartConfig()