123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- declare(strict_types=1);
- namespace PhpMyAdmin\Controllers;
- use PhpMyAdmin\BrowseForeigners;
- use PhpMyAdmin\Relation;
- use PhpMyAdmin\Response;
- use PhpMyAdmin\Template;
- /**
- * Display selection for relational field values
- */
- class BrowseForeignersController extends AbstractController
- {
- /** @var BrowseForeigners */
- private $browseForeigners;
- /** @var Relation */
- private $relation;
- /**
- * @param Response $response
- * @param BrowseForeigners $browseForeigners
- * @param Relation $relation
- */
- public function __construct($response, Template $template, $browseForeigners, $relation)
- {
- parent::__construct($response, $template);
- $this->browseForeigners = $browseForeigners;
- $this->relation = $relation;
- }
- public function index(): void
- {
- $params = [
- 'db' => $_POST['db'] ?? null,
- 'table' => $_POST['table'] ?? null,
- 'field' => $_POST['field'] ?? null,
- 'fieldkey' => $_POST['fieldkey'] ?? null,
- 'data' => $_POST['data'] ?? null,
- 'foreign_showAll' => $_POST['foreign_showAll'] ?? null,
- 'foreign_filter' => $_POST['foreign_filter'] ?? null,
- ];
- if (! isset($params['db'], $params['table'], $params['field'])) {
- return;
- }
- $this->response->getFooter()->setMinimal();
- $header = $this->response->getHeader();
- $header->disableMenuAndConsole();
- $header->setBodyId('body_browse_foreigners');
- $foreigners = $this->relation->getForeigners(
- $params['db'],
- $params['table']
- );
- $foreignLimit = $this->browseForeigners->getForeignLimit(
- $params['foreign_showAll']
- );
- $foreignData = $this->relation->getForeignData(
- $foreigners,
- $params['field'],
- true,
- $params['foreign_filter'] ?? '',
- $foreignLimit ?? null,
- true
- );
- $this->response->addHTML($this->browseForeigners->getHtmlForRelationalFieldSelection(
- $params['db'],
- $params['table'],
- $params['field'],
- $foreignData,
- $params['fieldkey'] ?? '',
- $params['data'] ?? ''
- ));
- }
- }
|