PHPackages                             zikula/sortable-columns - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zikula/sortable-columns

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

zikula/sortable-columns
=======================

SortableColumns is a zikula component to help manage data table column headings that can be clicked to sort the data

1.0.0(6y ago)126.6k↓68.9%8MITPHPPHP &gt;=7.2.0

Since Jan 21Pushed 3y ago3 watchersCompare

[ Source](https://github.com/zikula/SortableColumns)[ Packagist](https://packagist.org/packages/zikula/sortable-columns)[ Docs](https://ziku.la)[ RSS](/packages/zikula-sortable-columns/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (8)

Added to monorepo
=================

[](#added-to-monorepo)

SortableColumns has been included into the [core repository](https://github.com/zikula/core/).

SortableColumns
===============

[](#sortablecolumns)

SortableColumns is a Zikula component to help manage data table column headings that can be clicked to sort the data. The collection is an `Doctrine\Common\Collections\ArrayCollection` of `Zikula\Component\SortableColumns\Column` objects. Use `SortableColumns::generateSortableColumns` to create an array of attributes (url, css class) indexed by column name which can be used in the generation of table headings/links.

Controller:
-----------

[](#controller)

```
use Zikula\Component\SortableColumns\SortableColumns;

// in controller method
$orderBy = $request->query->get('orderby', 'pageid');
$currentSortDirection = $request->query->get('sdir', Column::DIRECTION_DESCENDING);

$sortableColumns = new SortableColumns($this->get('router'), 'zikulapagesmodule_admin_index', 'orderby', 'sdir');
$sortableColumns->addColumn(new Column('pageid')); // first added is automatically the default
$sortableColumns->addColumn(new Column('title'));
$sortableColumns->addColumn(new Column('cr_date'));
$sortableColumns->setOrderBy($sortableColumns->getColumn($orderBy), $currentSortDirection);
$sortableColumns->setAdditionalUrlParameters(array(
    'language' => isset($filterData['language']) ? $filterData['language'] : null,
));

$templateParameters['sort'] = $sortableColumns->generateSortableColumns();
```

Twig template:
--------------

[](#twig-template)

```

    {% trans %}ID{% endtrans %}
    {% trans %}Title{% endtrans %}
    {% trans %}Created{% endtrans %}

```

Additional shortcut methods are available:

- `$sortableColumns->addColumns()`
- `$sortableColumns->setOrderByFromRequest()`

```
$sortableColumns->addColumns([new Column('pageid'), new Column('title'), new Column('cr_date')]);
$sortableColumns->setOrderByFromRequest($request);
```

If needed, you can obtain the values of the orderByFields (e.g. for a DB query) using:

```
$sortableColumns->getSortColumn()->getName()
$sortableColumns->getSortDirection()

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2309d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/05bffe6f4f72d34970f0d8f6682b283bd19fbe8c2b2cc7eda48867a3a7f3db4c?d=identicon)[zikula](/maintainers/zikula)

---

Top Contributors

[![craigh](https://avatars.githubusercontent.com/u/350048?v=4)](https://github.com/craigh "craigh (6 commits)")[![Guite](https://avatars.githubusercontent.com/u/277531?v=4)](https://github.com/Guite "Guite (2 commits)")

---

Tags

symfonysortablecolumns

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zikula-sortable-columns/health.svg)

```
[![Health](https://phpackages.com/badges/zikula-sortable-columns/health.svg)](https://phpackages.com/packages/zikula-sortable-columns)
```

###  Alternatives

[babdev/pagerfanta-bundle

Bundle integrating Pagerfanta with Symfony

20817.8M65](/packages/babdev-pagerfanta-bundle)[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[leapt/core-bundle

Symfony LeaptCoreBundle

2529.1k4](/packages/leapt-core-bundle)[ttskch/paginator-bundle

The most thin, simple and customizable paginator bundle for Symfony

1113.2k](/packages/ttskch-paginator-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
