* @copyright 2015 - 2021 Timothy J. Warren * @license http://www.opensource.org/licenses/mit-license.html MIT License * @version 5.2 * @link https://git.timshomepage.net/timw4mail/HummingBirdAnimeClient */ namespace Aviat\AnimeClient\Component; use Aviat\Ion\Di\ContainerAware; use const TEMPLATE_DIR; use function Aviat\AnimeClient\renderTemplate; /** * Shared logic for component-based functionality, like Tabs */ trait ComponentTrait { use ContainerAware; /** * Render a template with common container values * * @param string $path * @param array $data * @return string */ public function render(string $path, array $data): string { $container = $this->getContainer(); $helper = $container->get('html-helper'); $baseData = [ 'auth' => $container->get('auth'), 'escape' => $helper->escape(), 'helper' => $helper, 'url' => $container->get('aura-router')->getGenerator(), ]; return renderTemplate(TEMPLATE_DIR . '/' . $path, array_merge($baseData, $data)); } }