diff options
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Controllers/BrowseForeignersController.php')
| -rw-r--r-- | srcs/phpmyadmin/libraries/classes/Controllers/BrowseForeignersController.php | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Controllers/BrowseForeignersController.php b/srcs/phpmyadmin/libraries/classes/Controllers/BrowseForeignersController.php new file mode 100644 index 0000000..24441cd --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Controllers/BrowseForeignersController.php @@ -0,0 +1,82 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Holds the PhpMyAdmin\Controllers\BrowseForeignersController + * + * @package PhpMyAdmin\Controllers + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Controllers; + +use PhpMyAdmin\BrowseForeigners; +use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Relation; +use PhpMyAdmin\Response; +use PhpMyAdmin\Template; + +/** + * Display selection for relational field values + * + * @package PhpMyAdmin\Controllers + */ +class BrowseForeignersController extends AbstractController +{ + /** + * @var BrowseForeigners + */ + private $browseForeigners; + + /** + * @var Relation + */ + private $relation; + + /** + * BrowseForeignersController constructor. + * + * @param Response $response Response instance + * @param DatabaseInterface $dbi DatabaseInterface instance + * @param Template $template Template object + * @param BrowseForeigners $browseForeigners BrowseForeigners instance + * @param Relation $relation Relation instance + */ + public function __construct($response, $dbi, Template $template, $browseForeigners, $relation) + { + parent::__construct($response, $dbi, $template); + $this->browseForeigners = $browseForeigners; + $this->relation = $relation; + } + + /** + * @param array $params Request parameters + * @return string HTML + */ + public function index(array $params): string + { + $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 + ); + + return $this->browseForeigners->getHtmlForRelationalFieldSelection( + $params['db'], + $params['table'], + $params['field'], + $foreignData, + $params['fieldkey'] ?? '', + $params['data'] ?? '' + ); + } +} |
