Category Edit Page
Click Any category item, you will see edit page with a form and inputs.
We must modify this form to fit categories
table.
Please open src/Blog/Admin/Form/Category/EditDefinition.php
and change code to below.
// src/Blog/Admin/Form/Category/EditDefinition.php
namespace Blog\Admin\Form\Category;
use Phoenix\Form\PhoenixFieldTrait;
use Windwalker\Core\Form\AbstractFieldDefinition;
use Windwalker\Core\Language\Translator;
use Windwalker\Form\Form;
class EditDefinition extends AbstractFieldDefinition
{
use PhoenixFieldTrait;
public function doDefine(Form $form)
{
// Basic fieldset
$this->fieldset('basic', function(Form $form)
{
// ID
$this->hidden('id');
// Title
$this->text('title')
->label(Translator::translate('admin.category.field.title'))
->required(true);
// Alias
$this->text('alias')
->label(Translator::translate('admin.category.field.alias'));
});
// Delete the Text Group...
// Created fieldset
$this->fieldset('created', function(Form $form)
{
// No change...
});
}
}
Article Edit Form
Then modify the article form.
Note we use CategoryListField
for category_id
.
// src/Blog/Admin/Form/Article/EditDefinition.php
namespace Blog\Admin\Form\Article;
use Blog\Admin\Field\Category\CategoryListField;
use Phoenix\Form\PhoenixFieldTrait;
use Windwalker\Core\Form\AbstractFieldDefinition;
use Windwalker\Core\Language\Translator;
use Windwalker\Form\Form;
use Windwalker\Html\Option;
class EditDefinition extends AbstractFieldDefinition
{
use PhoenixFieldTrait;
public function doDefine(Form $form)
{
// Basic fieldset
$this->fieldset('basic', function(Form $form)
{
// ID
$this->hidden('id');
// Title
$this->text('title')
->label(Translator::translate('admin.article.field.title'))
->required(true);
// Alias
$this->text('alias')
->label(Translator::translate('admin.article.field.alias'));
// Category
$this->add('category_id', new CategoryListField)
->label('Category')
->option(new Option('Uncategorised', ''));
});
// Text Fieldset
$this->fieldset('text', function(Form $form)
{
// No change...
});
// Created fieldset
$this->fieldset('created', function(Form $form)
{
// No change...
});
}
}
Then we can choose category in article edit page.
Comment Form
Same as article and category, but we use ArticleModalField
to select article.
// src/Blog/Admin/Form/Comment/EditDefinition.php
namespace Blog\Admin\Form\Comment;
use Blog\Admin\Field\Article\ArticleModalField;
use Phoenix\Form\PhoenixFieldTrait;
use Windwalker\Core\Form\AbstractFieldDefinition;
use Windwalker\Core\Language\Translator;
use Windwalker\Form\Form;
class EditDefinition extends AbstractFieldDefinition
{
use PhoenixFieldTrait;
public function doDefine(Form $form)
{
// Basic fieldset
$this->fieldset('basic',function(Form $form)
{
// ID
$this->hidden('id');
// Name
$this->text('name')
->label('Name')
->required(true);
$this->email('email')
->label('Email')
->required(true);
// Article
$this->add('article_id', new ArticleModalField)
->label('Article');
});
// Text Fieldset
$this->fieldset('text',function(Form $form)
{
// Introtext
$this->textarea('text')
->label('Text')
->rows(10);
});
// Created fieldset
$this->fieldset('created',function(Form $form)
{
// State
$this->radio('state')
->label(Translator::translate('admin.comment.field.state'))
->class('btn-group')
->defaultValue(1)
->option(Translator::translate('phoenix.grid.state.published'), '1')
->option(Translator::translate('phoenix.grid.state.unpublished'), '0');
// Created
$this->calendar('created')
->label(Translator::translate('admin.comment.field.created'));
});
}
}
You will see a Repository select field, if you click the Select an Item
button, will open a modal for select article.
If you found a typo or error, please help us improve this document.