Sortierung bei Listenelement
Closed this issue · 2 comments
Eine Option zur Sortierung der Listenelemente wäre prima - könnte z.B. so aussehen:
<?php
// rsce_boxes_config.php
return array(
'label' => array('Textboxen mit Überschrift', 'Erzeugt eine...'),
'types' => array('content'),
'contentCategory' => 'texts',
'standardFields' => array('headline', 'cssID'),
'fields' => array(
'boxes' => array(
'label' => array('Textboxen', ''),
'elementLabel' => '%s. Box',
'inputType' => 'list',
'minItems' => 1,
'maxItems' => 5,
'sorting' => ['field' => 'text', 'direction' => 'asc', 'type' => 'natsort']
'fields' => array(
'text' => array(
'label' => array('Text', ''),
'eval' => array('rte' => 'tinyMCE'),
'inputType' => 'textarea',
),
),
),
),
);
mit type
als sort
, natsort
und random
sowie direction
als asc
(Standard) oder desc
- braucht man nicht bei random
... bin aber noch nicht auf den Trichter gekommen, wo man das am Besten einbaut
m. E. wohl hier bei der Templateübergabe
contao-rocksolid-custom-elements/src/Element/CustomElement.php
Lines 155 to 159 in 42c0b5c
Sorting an array can be done in the template relatively easy:
usort($this->arrData['boxes'], function($a, $b) {
return strnatcasecmp($a->text, $b->text);
});
And because the custom element does not have access to the element config this would be hard to do in the element itself.
das ist schon klar ;-)
war die Frage, ob man das aus dem Template raus hält/halten möchte - das bearbeiten nach meiner Erfahrung auch durchaus ambitionierte Redakeure, die mit den "PHP-Zeugs" ggf. nichts anzufangen wissen