src/Charcoal/Admin/Widget/TableWidget.php
public function collectionProperties()
    {
        $props = $this->properties();

        foreach ($props as $propertyIdent => $property) {
            $propertyMetadata = $props[$propertyIdent];

            $p = $this->propertyFactory()->create($propertyMetadata['type']);
            $p->setIdent($propertyIdent);
            $p->setData($propertyMetadata);

            $options = $this->viewOptions($propertyIdent);
            $classes = $this->parsePropertyCellClasses($p);

            if (isset($options['label'])) {
                $label = $this->translator()->translate($options['label']);
            } else {
                $label = strval($p->label());
            }

            $column = [
                'label' => trim($label)
            ];

            if (!isset($column['attr'])) {
                $column['attr'] = [];
            }

            if (isset($options['attr'])) {
                $column['attr'] = array_merge($column['attr'], $options['attr']);
            }

            if (isset($classes)) {
                if (isset($column['attr']['class'])) {
                    if (is_string($classes)) {
                        $classes = explode(' ', $column['attr']['class']);
                    }

                    if (is_string($column['attr']['class'])) {
                        $column['attr']['class'] = explode(' ', $column['attr']['class']);
                    }

                    $column['attr']['class'] = array_unique(array_merge($column['attr']['class'], $classes));
                } else {
                    $column['attr']['class'] = $classes;
                }

                unset($classes);
            }

            $column['attr'] = html_build_attributes($column['attr']);

            yield $column;
        }
    }
public function collectionProperties()
    {
        $props = $this->properties();

        foreach ($props as $propertyIdent => $property) {
            $propertyMetadata = $props[$propertyIdent];

            $p = $this->propertyFactory()->create($propertyMetadata['type']);
            $p->setIdent($propertyIdent);
            $p->setData($propertyMetadata);

            $options = $this->viewOptions($propertyIdent);
            $classes = $this->parsePropertyCellClasses($p);

            if (isset($options['label'])) {
                $label = $this->translator()->translate($options['label']);
            } else {
                $label = strval($p->label());
            }

            $column = [
                'label' => trim($label)
            ];

            if (!isset($column['attr'])) {
                $column['attr'] = [];
            }

            if (isset($options['attr'])) {
                $column['attr'] = array_merge($column['attr'], $options['attr']);
            }

            if (isset($classes)) {
                if (isset($column['attr']['class'])) {
                    if (is_string($classes)) {
                        $classes = explode(' ', $column['attr']['class']);
                    }

                    if (is_string($column['attr']['class'])) {
                        $column['attr']['class'] = explode(' ', $column['attr']['class']);
                    }

                    $column['attr']['class'] = array_unique(array_merge($column['attr']['class'], $classes));
                } else {
                    $column['attr']['class'] = $classes;
                }

                unset($classes);
            }

            $column['attr'] = html_build_attributes($column['attr']);

            yield $column;
        }
    }
public function collectionProperties ( ) { $ props = $ this -> properties ( ) ; foreach ( $ props as $ propertyIdent => $ property ) { $ propertyMetadata = $ props [ $ propertyIdent ] ; $ p = $ this -> propertyFactory ( ) -> create ( $ propertyMetadata [ 'type' ] ) ; $ p -> setIdent ( $ propertyIdent ) ; $ p -> setData ( $ propertyMetadata ) ; $ options = $ this -> viewOptions ( $ propertyIdent ) ; $ classes = $ this -> parsePropertyCellClasses ( $ p ) ; if ( isset ( $ options [ 'label' ] ) ) { $ label = $ this -> translator ( ) -> translate ( $ options [ 'label' ] ) ; } else { $ label = strval ( $ p -> label ( ) ) ; } $ column = [ 'label' => trim ( $ label ) ] ; if ( ! isset ( $ column [ 'attr' ] ) ) { $ column [ 'attr' ] = [ ] ; } if ( isset ( $ options [ 'attr' ] ) ) { $ column [ 'attr' ] = array_merge ( $ column [ 'attr' ] , $ options [ 'attr' ] ) ; } if ( isset ( $ classes ) ) { if ( isset ( $ column [ 'attr' ] [ 'class' ] ) ) { if ( is_string ( $ classes ) ) { $ classes = explode ( ' ' , $ column [ 'attr' ] [ 'class' ] ) ; } if ( is_string ( $ column [ 'attr' ] [ 'class' ] ) ) { $ column [ 'attr' ] [ 'class' ] = explode ( ' ' , $ column [ 'attr' ] [ 'class' ] ) ; } $ column [ 'attr' ] [ 'class' ] = array_unique ( array_merge ( $ column [ 'attr' ] [ 'class' ] , $ classes ) ) ; } else { $ column [ 'attr' ] [ 'class' ] = $ classes ; } unset ( $ classes ) ; } $ column [ 'attr' ] = html_build_attributes ( $ column [ 'attr' ] ) ; yield $ column ; } }
Properties to display in collection template, and their order, as set in object metadata

@return array|Generator
Properties to display in collection template and their order as set in object metadata