У меня проблема, я не могу найти документацию или решение.
Я создал расширение TYPO3 со списком и подробным представлением, все работает отлично. Теперь я хочу добавить несколько полей ввода над представлением списка, чтобы посетители сайта могли фильтровать представление списка.
Как это сделать? Я уверен, что мне нужно добавить форму жидкости над списком и обработать это в контроллере?
На данный момент мой контроллер и репо выглядит так:
Контроллер:
/**
* EventController
*/
class EventController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* eventRepository
*
* @var \Alroma\DsEventcalendar\Domain\Repository\EventRepository
* @inject
*/
protected $eventRepository = null;
/**
* action list
*
* @return void
*/
public function listAction()
{
$events = $this->eventRepository->findAll();
$this->view->assign('events', $events);
}
/**
* action show
*
* @param \Alroma\DsEventcalendar\Domain\Model\Event $event
* @return void
*/
public function showAction(\Alroma\DsEventcalendar\Domain\Model\Event $event)
{
$this->view->assign('event', $event);
}
/**
* action frontpage
*
* @return void
*/
public function frontpageAction()
{
$events = $this->eventRepository->findAll();
$this->view->assign('events', $events);
}
}
Repo:
class EventRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
// Order by BE sorting
protected $defaultOrderings = [
'highlight' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING,
'start' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
];
}
Чтобы быть более конкретным:
Я хочу, чтобы у пользователя было поле, он может ввести какое-то ключевое слово, и я хочу найти его в моей «текстовой» колонке базы данных моего расширения. Если в каком-либо тексте найдено ключевое слово, показывается только подходящая статья. То же самое для параметра даты.