Server IP : 192.158.238.246 / Your IP : 3.19.244.116 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/give/src/Framework/ListTable/ |
Upload File : |
<?php declare(strict_types=1); namespace Give\Framework\ListTable; use Give\Framework\Support\Contracts\Arrayable; /** * @since 2.24.0 * * @template M of Give\Framework\Models\Model */ abstract class ModelColumn implements Arrayable { /** * @var string|array Define the meta key to be used when sorting the query by this column */ protected $sortColumn; /** * @var bool Define if the column is visible */ protected $visibleColumn; /** * Returns the id for that column. * * @since 2.24.0 */ abstract public static function getId(): string; /** * Returns the label for that column. * * @since 2.24.0 */ abstract public function getLabel(): string; /** * Returns the value to be displayed in the specific cell for that column and row. * * @since 2.24.0 * * @param M $model * * @return int|string */ abstract public function getCellValue($model); /** * @since 2.24.0 * * @return bool */ public function isSortable(): bool { return null !== $this->sortColumn; } /** * @since 2.24.0 * * @return array */ public function getSortColumn(): array { if ( ! $this->isSortable() ) { return []; } return is_array( $this->sortColumn ) ? $this->sortColumn : [$this->sortColumn]; } /** * @since 2.24.0 * * @param bool $visible * * @return void */ public function visible(bool $visible) { $this->visibleColumn = $visible; } /** * @since 2.24.0 * * @return bool */ public function isVisible(): bool { return $this->visibleColumn; } /** * @since 2.24.0 * * @return array */ public function toArray(): array { return [ 'id' => $this->getId(), 'label' => $this->getLabel(), 'sortable' => $this->isSortable(), 'visible' => $this->isVisible(), ]; } }