From ddff82cbafc3c9b0e72f80fc60d8ab62c6ee6dce Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Tue, 23 Jun 2026 15:39:27 +0000
Subject: [PATCH 1/2] Docs: move documentation to README
Co-authored-by: Felix
---
.docs/README.md | 63 ----------------------------------------
README.md | 76 ++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 66 insertions(+), 73 deletions(-)
delete mode 100644 .docs/README.md
diff --git a/.docs/README.md b/.docs/README.md
deleted file mode 100644
index 16b38c9..0000000
--- a/.docs/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Contributte\datagrid-nette-database-data-source
-
-## Content
-
-- [Usage - how use it](#usage)
-
-## Usage
-
-```php
-/**
- * @var Nette\Database\Context
- * @inject
- */
-public $ndb;
-
-
-public function createComponentNetteGrid($name)
-{
- /**
- * @type Ublaboo\DataGrid\DataGrid
- */
- $grid = new DataGrid($this, $name);
-
- $query =
- 'SELECT p.*, GROUP_CONCAT(v.code SEPARATOR ", ") AS variants
- FROM product p
- LEFT JOIN product_variant p_v
- ON p_v.product_id = p.id
- WHERE p.deleted IS NULL
- AND (product.status = ? OR product.status = ?)';
-
- $params = [1, 2];
-
- /**
- * @var Ublaboo\NetteDatabaseDataSource\NetteDatabaseDataSource
- *
- * @param Nette\Database\Context
- * @param $query
- * @param $params|NULL
- */
- $datasource = new NetteDatabaseDataSource($this->ndb, $query, $params);
-
- $grid->setDataSource($datasource);
-
- $grid->addColumnText('name', 'Name')
- ->setSortable();
-
- $grid->addColumnNumber('id', 'Id')
- ->setSortable();
-
- $grid->addColumnDateTime('created', 'Created');
-
- $grid->addFilterDateRange('created', 'Created:');
-
- $grid->addFilterText('name', 'Name and id', ['id', 'name']);
-
- $grid->addFilterSelect('status', 'Status', ['' => 'All', 1 => 'Online', 0 => 'Ofline', 2 => 'Standby']);
-
- /**
- * Etc
- */
-}
-```
diff --git a/README.md b/README.md
index 1963f7e..17419e2 100644
--- a/README.md
+++ b/README.md
@@ -17,25 +17,81 @@
Website 🚀 contributte.org | Contact 👨🏻💻 paveljanda.com, f3l1x.io | Twitter 🐦 @contributte
-## Usage
+Nette Database data source adapter for [ublaboo/datagrid](https://github.com/contributte/datagrid), useful for grids backed by custom SQL queries.
+
+## Versions
+
+| State | Version | Branch | PHP |
+|--------|---------|--------|------|
+| dev | ~3.0.0 | master | ^7.2 |
+| stable | ~2.0.0 | master | ^7.2 |
+| stable | ~1.1.0 | master | ^5.6 |
+
+## Installation
-To install latest version of `contributte/datagrid-nette-database-data-source` use [Composer](https://getcomposer.org).
+To install latest version of `ublaboo/datagrid-nette-database-data-source` use [Composer](https://getcomposer.org).
```bash
composer require ublaboo/datagrid-nette-database-data-source
```
-## Documentation
+## Usage
-For details on how to use this package, check out our [documentation](.docs).
+```php
+/**
+ * @var Nette\Database\Context
+ * @inject
+ */
+public $ndb;
-## Versions
-| State | Version - | Branch | PHP |
-|--------|------------|--------|------|
-| dev | ~3.0.0 | master | ^7.2 |
-| stable | ~2.0.0 | master | ^7.2 |
-| stable | ~1.1.0 | master | ^5.6 |
+public function createComponentNetteGrid($name)
+{
+ /**
+ * @type Ublaboo\DataGrid\DataGrid
+ */
+ $grid = new DataGrid($this, $name);
+
+ $query =
+ 'SELECT p.*, GROUP_CONCAT(v.code SEPARATOR ", ") AS variants
+ FROM product p
+ LEFT JOIN product_variant p_v
+ ON p_v.product_id = p.id
+ WHERE p.deleted IS NULL
+ AND (product.status = ? OR product.status = ?)';
+
+ $params = [1, 2];
+
+ /**
+ * @var Ublaboo\NetteDatabaseDataSource\NetteDatabaseDataSource
+ *
+ * @param Nette\Database\Context
+ * @param $query
+ * @param $params|NULL
+ */
+ $datasource = new NetteDatabaseDataSource($this->ndb, $query, $params);
+
+ $grid->setDataSource($datasource);
+
+ $grid->addColumnText('name', 'Name')
+ ->setSortable();
+
+ $grid->addColumnNumber('id', 'Id')
+ ->setSortable();
+
+ $grid->addColumnDateTime('created', 'Created');
+
+ $grid->addFilterDateRange('created', 'Created:');
+
+ $grid->addFilterText('name', 'Name and id', ['id', 'name']);
+
+ $grid->addFilterSelect('status', 'Status', ['' => 'All', 1 => 'Online', 0 => 'Ofline', 2 => 'Standby']);
+
+ /**
+ * Etc
+ */
+}
+```
## Development
From df8e078c8065d75f20051ece030ad3740ca9e405 Mon Sep 17 00:00:00 2001
From: Oh My Felix
Date: Tue, 7 Jul 2026 17:06:28 +0000
Subject: [PATCH 2/2] Docs: polish README migration
Co-authored-by: Felix
---
README.md | 70 +++++++++++++++++++++++++++----------------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
index 17419e2..19f040d 100644
--- a/README.md
+++ b/README.md
@@ -37,59 +37,59 @@ composer require ublaboo/datagrid-nette-database-data-source
## Usage
-```php
-/**
- * @var Nette\Database\Context
- * @inject
- */
-public $ndb;
+Use this data source when your grid is backed by a custom SQL query instead of a Nette Database selection. Pass the Nette Database connection, SQL, and parameters to `NetteDatabaseDataSource`, then configure the grid normally.
+```php
+use Nette\Database\Context;
+use Ublaboo\DataGrid\DataGrid;
+use Ublaboo\NetteDatabaseDataSource\NetteDatabaseDataSource;
-public function createComponentNetteGrid($name)
+final class ProductPresenter extends Nette\Application\UI\Presenter
{
- /**
- * @type Ublaboo\DataGrid\DataGrid
- */
- $grid = new DataGrid($this, $name);
+ /** @var Context */
+ private $database;
+
+ public function __construct(Context $database)
+ {
+ $this->database = $database;
+ }
- $query =
- 'SELECT p.*, GROUP_CONCAT(v.code SEPARATOR ", ") AS variants
+ public function createComponentNetteGrid(string $name): DataGrid
+ {
+ $grid = new DataGrid($this, $name);
+
+ $query =
+ 'SELECT p.*, GROUP_CONCAT(v.code SEPARATOR ", ") AS variants
FROM product p
LEFT JOIN product_variant p_v
ON p_v.product_id = p.id
WHERE p.deleted IS NULL
- AND (product.status = ? OR product.status = ?)';
+ AND (p.status = ? OR p.status = ?)';
+
+ $params = [1, 2];
- $params = [1, 2];
+ $datasource = new NetteDatabaseDataSource($this->database, $query, $params);
- /**
- * @var Ublaboo\NetteDatabaseDataSource\NetteDatabaseDataSource
- *
- * @param Nette\Database\Context
- * @param $query
- * @param $params|NULL
- */
- $datasource = new NetteDatabaseDataSource($this->ndb, $query, $params);
+ $grid->setDataSource($datasource);
- $grid->setDataSource($datasource);
+ $grid->addColumnText('name', 'Name')
+ ->setSortable();
- $grid->addColumnText('name', 'Name')
- ->setSortable();
+ $grid->addColumnNumber('id', 'Id')
+ ->setSortable();
- $grid->addColumnNumber('id', 'Id')
- ->setSortable();
+ $grid->addColumnDateTime('created', 'Created');
- $grid->addColumnDateTime('created', 'Created');
+ $grid->addFilterDateRange('created', 'Created:');
- $grid->addFilterDateRange('created', 'Created:');
+ $grid->addFilterText('name', 'Name and id', ['id', 'name']);
- $grid->addFilterText('name', 'Name and id', ['id', 'name']);
+ $grid->addFilterSelect('status', 'Status', ['' => 'All', 1 => 'Online', 0 => 'Offline', 2 => 'Standby']);
- $grid->addFilterSelect('status', 'Status', ['' => 'All', 1 => 'Online', 0 => 'Ofline', 2 => 'Standby']);
+ // Add more columns, filters, and actions as needed.
- /**
- * Etc
- */
+ return $grid;
+ }
}
```