$70 GRAYBYTE WORDPRESS FILE MANAGER $79

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.162.162 | ADMIN IP 216.73.216.51
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/home/bravetechrwanda/itiministry.org/plugins/give/src/Framework/ListTable/Concerns/

HOME
Current File : /home/bravetechrwanda/itiministry.org/plugins/give/src/Framework/ListTable/Concerns//Columns.php
<?php

namespace Give\Framework\ListTable\Concerns;

use Give\Framework\ListTable\Exceptions\ColumnIdCollisionException;
use Give\Framework\ListTable\Exceptions\ReferenceColumnNotFoundException;
use Give\Framework\ListTable\ModelColumn;

/**
 * @since 2.24.0
 */
trait Columns
{
    /**
     * @var ModelColumn[]
     */
    private $columns = [];

    /**
     * Add List Table column
     *
     * @since 2.24.0
     *
     * @param ModelColumn $column
     *
     * @return self
     * @throws ColumnIdCollisionException
     */
    public function addColumn(ModelColumn $column): self
    {
        $columnId = $column::getId();

        if (isset($this->columns[$columnId])) {
            throw new ColumnIdCollisionException($columnId);
        }

        $this->columns[$columnId] = $column;
        $this->setColumnVisibility($columnId);

        return $this;
    }

    /**
     * Add List Table columns
     *
     * @since 2.24.0
     *
     * @param ModelColumn ...$columns
     *
     * @return void
     * @throws ColumnIdCollisionException
     */
    public function addColumns(...$columns)
    {
        foreach ($columns as $column) {
            $this->addColumn($column);
        }
    }

    /**
     * Remove List Table column
     *
     * @since 2.24.0
     *
     * @return self
     * @throws ReferenceColumnNotFoundException
     */
    public function removeColumn(string $columnId): self
    {
        if ( ! isset($this->columns[$columnId])) {
            throw new ReferenceColumnNotFoundException($columnId);
        }

        unset($this->columns[$columnId]);

        return $this;
    }

    /**
     * @since 4.3.0 set list table data on columns
     * @since 2.24.0
     *
     * @return ModelColumn[]
     */
    public function getColumns(): array
    {
        foreach($this->columns as $column) {
            if ($column->isUsingListTableData()) {
                $column->setListTableData($this->getData());
            }
        }

        return $this->columns;
    }

    /**
     * @since 2.24.0
     *
     * @return array
     */
    public function getColumnsArray(): array
    {
        return array_map(static function (ModelColumn $column) {
            return $column->toArray();
        }, array_values($this->columns));
    }

    /**
     * Add column before specific column
     *
     * @since 2.24.0
     *
     * @return self
     * @throws ReferenceColumnNotFoundException
     */
    public function addColumnBefore(string $columnId, ModelColumn $column): self
    {
        if (is_int($index = $this->getColumnIndexById($columnId))) {
            return $this->insertAtIndex($index, $column);
        }

        throw new ReferenceColumnNotFoundException($columnId);
    }

    /**
     * Add column after specific column
     *
     * @since 2.24.0
     *
     * @return self
     * @throws ReferenceColumnNotFoundException
     */
    public function addColumnAfter(string $columnId, ModelColumn $column): self
    {
        if (is_int($index = $this->getColumnIndexById($columnId))) {
            return $this->insertAtIndex($index + 1, $column);
        }

        throw new ReferenceColumnNotFoundException($columnId);
    }

    /**
     * Get registered column by column id
     *
     * @since 2.24.0
     *
     * @param string $columnId
     *
     * @return ModelColumn|null
     */
    public function getColumnById(string $columnId)
    {
        return $this->columns[$columnId] ?? null;
    }

    /**
     * Get column position index
     *
     * @since 2.24.0
     *
     * @return int|false
     */
    public function getColumnIndexById(string $columnId)
    {
        return array_search($columnId, array_keys($this->columns), true);
    }

    /**
     * @since 2.24.0
     *
     * @return self
     */
    protected function insertAtIndex(int $index, ModelColumn $column): self
    {
        $this->columns = array_merge(
            array_splice($this->columns, 0, $index),
            [$column::getId() => $column],
            $this->columns
        );

        return $this;
    }

    /**
     * @since 2.24.0
     *
     * @return self
     */
    public function setColumnVisibility($columnId, $isVisible = null): self
    {
        if (is_null($isVisible)) {
            $isVisible = in_array($columnId, $this->getDefaultVisibleColumns(), true);
        }

        $this->getColumnById($columnId)->visible($isVisible);

        return $this;
    }

    /**
     * @since 2.24.0
     *
     * @return string[]
     */
    public function getSortColumnById(string $columnId): array
    {
        $column = $this->getColumnById($columnId);

        return $column->getSortColumn() ?: ['id'];
    }
}

Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
25 May 2026 4.20 PM
bravetechrwanda / bravetechrwanda
0755
Columns.php
4.584 KB
22 May 2025 12.18 AM
bravetechrwanda / bravetechrwanda
0644
IsFilterable.php
1.147 KB
19 Jan 2023 12.19 AM
bravetechrwanda / bravetechrwanda
0644
ListTableData.php
0.77 KB
31 Mar 2025 11.17 PM
bravetechrwanda / bravetechrwanda
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF Static GIF