Grido – komponenta pro vykreslení vlastního sloupce
- phoffman
- Člen | 7
Ahoj,
používám o5 grido. Aplikace vychází z Nette sandbox.
Když mám v presenteru
use Grido\Grid;
...
protected function createComponentComplaintboardGrid($name) {
$grid = new Grid($this, $name);
$model = $this->database;
$model = $model->query($this->getSQLQuery())->fetchAll();
$grid->model = $model;
$grid->setPrimaryKey("Complaint_ID");
$grid->addColumnText('ComplaintNumber', self::$trans->translate("messages.database.ClaimNumber"))
->setSortable();
$grid->addColumnText('Type', self::$trans->translate("messages.database.Type"))
->setSortable();
...
$grid->addColumnText("Path", self::$trans->translate("messages.database.DefectPhoto")); //TENTO ŘÁDEK CHCI ZOBRAZIT JAKO OBRÁZKY
$grid->setExport();
}
Tak tento kód mi funguje.
Okomentovaný předposlední řádek chci zobrazit jako obrázek (místo
textu), kde src je uložen v DB.
Inspiroval jsem se na grido-examples na Githubu a postupoval jsem takto:
Vytvořil jsem si složky controls/Grido v App. V ní soubor Grid.php
namespace App\Controls\Grido\Grid;
class Grid extends \Grido\Grid
{
public function addColumnImage($name, $label)
{
$column = new Components\Columns\Image($this, $name, $label);
$header = $column->headerPrototype;
//$header->style['width'] ='2%';
$header->class[] = 'center';
return $column;
}
}
Dále jsem si vytvořil složku app/controls/Grido/Components/Columns a v ní soubor Image.php
namespace App\Controls\Grido\Components\Columns;
class Image extends \Grido\Components\Columns\Text
{
public function getCellPrototype($row = NULL)
{
$cell = parent::getCellPrototype($row = NULL);
$cell->class[] = 'center';
return $cell;
}
/**
* @param $value
* @return \Nette\Utils\Html
*/
protected function formatValue($value)
{
$value = "<img src=\"$value\">";
return $value;
}
}
V presenteru kde vykresluji grid jsem změnil:
use App\Controls\Grido\Grid;
Ale laděnka mi ukáže chybu:
Class 'App\Controls\Grido\Grid' not found
Nevím jak přinutit počítač, aby použil App\Controls\Grido\Grid.php.
Poradíte mi, co asi tak dělám špatně?V adresářové struktuře jsem
neviděl nic špatného a přiznám se, že s namespaces jsem se pořádně
nesetkal, pokud to souvisí s tím.
Přdem díky za radu.