Checkbox.php 873 Bytes
<?php

namespace ACA\JetEngine\Value\Format;

use ACA\JetEngine\Utils\FieldOptions;
use ACA\JetEngine\Value\Formatter;

class Checkbox extends Formatter {

	public function format( $raw_value ): ?string {
		if( ! $this->field instanceof \ACA\JetEngine\Field\Type\Checkbox ){
			return $raw_value;
		}

		$options = $this->field->get_options();

		$result = array_map( static function ( $key ) use ( $options ) {
			return $options[ $key ] ?? null;
		}, $this->field->value_is_array() ? $raw_value : FieldOptions::get_checked_options( $raw_value ) );

		if( empty( $result ) ){
			return $this->column->get_empty_char();
		}

		$setting_limit = $this->column->get_setting( 'number_of_items' );

		return empty( $result ) ?
			$this->column->get_empty_char() :
			ac_helper()->html->more( array_filter( $result ), $setting_limit ? $setting_limit->get_value() : false );
	}

}