TL;DR -> am unteren Ende des Beitrages.
Hallo zusammen,
ich arbeite gerade an einer Erweiterung und bin auf folgendes Problem gestoßen, wozu ich leider keine Lösung im Netz/Forum gefunden habe.
Es gibt eine Status Erweiterung im Backend, in der der User "Text, Bild, Video, Zitat" anlegen kann. Dabei kann immer nur 1 Art gewählt sein pro Datensatz.
In der Übersicht im Backend soll in einer Liste dargestellt werden: Art, TimeStamp und Vorschau. Diese Vorschau soll unterschiedlich generiert werden, je nach Art.
Damit ich in der label_callback Funktion auf die entsprechenden Daten zugreifen kann, habe ich in meinem Label Eintrag alle Felde hinzugefügt.
Das führt natürlich dazu, dass alle Spalten angezeigt werden.
Das ich nur die drei gewollten Spalten an Werten zurück bekomme habe ich mit folgendem geschafft.
PHP-Code:
return array_slice($args, 0, 3);
Aber die Überschrift bekomme ich so nicht eingedampft und bräuchte Ideen.
-> Gibt es eine andere Möglichkeit $args alle meine Felder mitzugeben, auch wenn sie in Label->Fields nicht drin stehen?
-> Gibt es eine clevere Möglichkeit, das gewünschte Verhalten zu erreichen?
Mein Label Code
PHP-Code:
//Label
'label' =>
[
'showColumns' => true,
'fields' => ['type', 'tstamp', 'custom', 'text_de', 'text_en', 'quote', 'image'],
'label_callback' => ['tl_heartbeat', 'generateLabels'],
],
Mein label_callback Code
PHP-Code:
public function generateLabels($row, $label, DataContainer $dc, $args)
{
$args[1] = date('Y-d-m H:i', $args[1]);
switch ($args[0])
{
case 1:
$args[2] = 'Do something';
break;
case 2:
$args[2] = 'Do something else';
break;
default:
$args[2] = 'default';
break;
}
return array_slice($args, 0, 3);
}
Vielen Dank im voraus.
TL;DR -> x Felder werden im label_callback übergeben zur Erstellung eines Spaltenwertes. Es sollen aber nicht x Spaltenüberschriften angezeigt werden, sondern y.
Lesezeichen