ColumnInstantiate.php
843 Bytes
<?php
namespace ACA\JetEngine\Service;
use AC;
use ACA\JetEngine\Column;
use ACA\JetEngine\FieldRepository;
use ACA\JetEngine\Utils\Api;
final class ColumnInstantiate implements AC\Registerable {
public function register() {
add_action( 'ac/list_screen/column_created', [ $this, 'configure_column' ], 10 );
}
public function configure_column( AC\Column $column ) {
if ( $column instanceof Column\Meta ) {
$field = ( new FieldRepository() )->find_by_column( $column );
if ( $field ) {
$column->set_field( $field );
}
}
if ( $column instanceof Column\RelationLegacy ) {
$column->set_config( Api::Relations()->get_relation_info( $column->get_relation_key() ) );
}
if ( $column instanceof Column\Relation ) {
$column->set_config( Api::Relations()->get_active_relations( $column->get_type() ) );
}
}
}