public function _default() { $breadcrumbs = BreadCrumbs::getInstance()->addCrumb(Converter::symb2Ttl(P))->addCrumb('All'); $data = new EmailSubscriberEntityRepository(); $table = CmsTable::getInstance()->addData($data)->addColumn(ColumnData::getInstance('email')->dataType('email')->enableOrderableColumn())->addColumn(ColumnData::getInstance('ts')->title('Date')->dataType('ts2date')->enableOrderableColumn())->addColumn(ColumnEdit::getInstance('edit')->href('?p=' . P . '&do=edit&id={%id%}')->width('1%')->value('Edit'))->addColumn(ColumnActive::getInstance('active')->href('?p=' . P . '&do=_active&id={%id%}')->enableOrderableColumn()->ajax(true))->addColumn(ColumnDelete::getInstance('delete')->href('?p=' . P . '&do=_delete&id={%id%}')); echo $breadcrumbs; echo $table; }
public function _default() { $breadcrumbs = BreadCrumbs::getInstance()->addCrumb(ucfirst(P))->addCrumb('All Reviews'); $reviews = new ReviewEntityRepository(); $reviews->addSimpleSelectFields(['id', 'title', 'active', 'image']); $reviews->addSimpleSelectFieldsAsString('"0" as `images`'); $reviews->addOrderByField('id'); $images = new ImageRepository(); $images->addSimpleSelectFieldsAsString('(SELECT COUNT(*) FROM `' . $images->getDbTableName() . '` WHERE `item_id` = `' . $reviews->getDbTableName() . '`.`id` AND `item_type` = "review") AS `images`'); $reviews->mergeWithCollection($images, 'id', 'item_id', 'left'); $table = CmsTable::getInstance()->addData($reviews)->addColumn(ColumnImg::getInstance('image')->imgHeight('100'))->addColumn(ColumnEdit::getInstance('title')->enableOrderableColumn()->enableTranslationColumn()->setHref('?p=' . P . '&do=edit&id={%id%}'))->addColumn(ColumnData::getInstance('images')->enableOrderableColumn()->setWidth('1%')->enableRightAlign()->setHref('?p=' . P . '&do=images&id={%id%}'))->addColumn(ColumnActive::getInstance('active')->setHref('?p=' . P . '&do=_active&id={%id%}')->enableOrderableColumn()->enableAjax())->addColumn(ColumnDelete::getInstance('delete')->setHref('?p=' . P . '&do=_delete&id={%id%}')); echo Columns::getInstance()->add($breadcrumbs)->add('<a class="btn btn-success" href="?p=' . P . '&do=add">Add Review</a>', ['align' => 'right']); echo $table; }
/** Tags */ public function tags() { $tags = new ArticleTagEntityRepository(); echo BreadCrumbs::getInstance()->addCrumb(__('Articles'))->addCrumb(__('Tags')); echo Columns::getInstance()->add('<a class="btn btn-success" href="?p=' . P . '&do=tags_add">' . __('Add Tag') . '</a><br><br>', ['align' => 'right']); echo CmsTable::getInstance()->addData($tags)->addColumn(ColumnData::getInstance('title')->enableTranslationColumn())->addColumn(ColumnEdit::getInstance('edit'))->addColumn(ColumnActive::getInstance('active'))->addColumn(ColumnDelete::getInstance('delete')); }
public static function outputTable(array $params) { // Check columns if (!isset($params['columns'])) { $params['columns'] = []; } // Check order column if (isset($params['order']) && !isset($params['columns']['order'])) { $params['columns']['order'] = ['type' => 'order']; } // Check active column if (isset($params['active']) && !isset($params['columns']['active'])) { $params['columns']['active'] = ['type' => 'active']; } // Check edit column if (isset($params['edit']) && !isset($params['columns']['edit'])) { $params['columns']['edit'] = ['type' => 'edit']; } // Check delete column if (isset($params['delete']) && !isset($params['columns']['delete'])) { $params['columns']['delete'] = ['type' => 'delete']; } // Check params are supplied if (!isset($params['data'])) { $params['data'] = []; } $table = new CmsTable(); $table->addData($params['data']); // Table title if (isset($params['title'])) { $table->setHeadingTitle($params['title']); } foreach ($params['columns'] as $column_key => $column_param) { if (!is_array($column_param)) { $column_key = $column_param; $column_param = ['type' => 'data']; } if (!isset($column_param['type'])) { $column_param['type'] = 'data'; } $column = NULL; switch ($column_param['type']) { case 'data': $column = new ColumnData($column_key); break; case 'date': $column = new ColumnData($column_key); $column->setDataTypeAsTsToDatetime(); break; case 'email': $column = new ColumnData($column_key); $column->setDataTypeAsEmail(); break; case 'accept': $column = new ColumnAccept($column_key); break; case 'order': $column = new ColumnOrder($column_key); break; case 'edit': $column = ColumnEdit::getInstance($column_key); break; case 'active': $column = ColumnActive::getInstance($column_key); break; case 'delete': $column = ColumnDelete::getInstance($column_key); break; case 'gallery': $column = new ColumnGallery($column_key); break; case 'image': $column = new ColumnImg($column_key); break; case 'bool': case 'done': $column = new ColumnDone($column_key); break; default: dump('Unknown column type "' . $column_param['type'] . '"'); break; } // Disable cutting long texts by column if (isset($column_param['cut_long_strings'])) { if (!$column_param['cut_long_strings']) { $column->disableCutLongStrings(); } } // Disable cutting long texts by entire table if (isset($params['cut_long_strings'])) { if (!$params['cut_long_strings']) { $column->disableCutLongStrings(); } } // Is multi-translatable data in column if (isset($column_param['translation']) && $column_param['translation']) { $column->enableTranslationColumn(); } // Is orderable if (isset($column_param['order']) && $column_param['order']) { $column->enableOrderableColumn(); } // Is dragable if (isset($column_param['order_drag']) && $column_param['order_drag']) { $column->enableDraggable(); } // Title if (isset($column_param['title'])) { $column->setTitle($column_param['title']); } // Images for gallery if (isset($column_param['images'])) { $column->setImages($column_param['images']); } // Width of column if (isset($column_param['narrow'])) { $column->enableNarrowWidth(); } if (isset($column_param['width'])) { $column->setWidth($column_param['width']); } // Link if (isset($column_param['href'])) { $column->setHref($column_param['href']); } // Paired array if (isset($column_param['pairs'])) { $column->setPairedDataOptionsForKeys($column_param['pairs']); } // Value for column if (isset($column_param['value'])) { $column->setValue($column_param['value']); } // Add to filters if (isset($column_param['filter']) && !isset($params['filters'][$column_key])) { $params['filters'][$column_key] = []; } if ($column) { $table->addColumn($column); } } // Apply filter if (isset($params['filters']) || isset($params['caption'])) { $filter_form = new FilterForm(); // Top caption above table if (isset($params['caption'])) { $filter_form->setCaption($params['caption']); } // Render filters if (isset($params['filters'])) { foreach ($params['filters'] as $filter_key => $filter_data) { // Title is obligate if (!isset($filter_data['title'])) { $filter_data['title'] = ucfirst(__($filter_key)); } // Default type if (!isset($filter_data['type'])) { $filter_data['type'] = 'text'; $filter_data['like'] = true; } //Filter types $filter = NULL; switch ($filter_data['type']) { case 'text': $filter = Text::getInstance($filter_key); break; case 'select': $filter = Select::getInstance($filter_key); $filter->ignoreValue(-1); // For "empty" value break; default: dump('Unknown filter type "' . $filter_data['type'] . '"'); break; } // Options for selects if (isset($filter_data['options'])) { $filter->setOptions($filter_data['options']); } // Ignore values in selects if (isset($filter_data['ignore'])) { $filter->ignoreValue($filter_data['ignore']); } // Like search if (isset($filter_data['like'])) { $filter->enableActAsLike(); } if ($filter) { $filter_form->addFilter($filter_data['title'], $filter); } } } $table->attachFilterForm($filter_form); } return $table; }