init(); $this->path = $path; $this->plugin = $plugin; } /** * Доступ к объекту плагина * @return Plugin */ public function plugin() { return $this->plugin; } /** * Подключение css файла расширения * @param string $file название css файла * @param mixed $opts версия файла или доп. параметры * @return void */ public function css(string $file, $opts = false) { if ($this->isAdminPanel()) { $this->plugin->cssAdmin($file); } else { $this->plugin->css($file, $opts); } } /** * Подключение js файла расширения * @param string|array $file название javascript файла * @param array|null $data данные javascript * @param array $opts * @return void */ public function js($file, $data = null, array $opts = []) { $opts['admin'] = $this->isAdminPanel(); $this->plugin->js($file, $data, $opts); } /** * Формирование шаблона * @param string|self $template название шаблона * @param array $data данные передаваемые в шаблон * @return string HTML */ public function view($template, array $data = []) { return $this->plugin->codingTemplateView($template, $data); } /** * Формирование шаблона с выводом результата * @param string|self $template название шаблона * @param array $data данные передаваемые в шаблон */ public function render($template, array $data = []) { echo $this->view($template, $data); } /** * Формирование URL файла * @param string $file название файла * @param string|null $version версия файла или null * @return string */ public function url(string $file, ?string $version = null) { return $this->plugin->url($file, $version); } /** * Формирование ссылки на страницу шаблона * @param string $template относительный путь к файлу php шаблона * @param array $query параметры ссылки * @param bool|null $admin шаблон для админ. панели * @return string */ public function pageUrl(string $template, array $query = [], ?bool $admin = null): string { return $this->plugin->codingTemplateUrl($template, $query, $admin ?? $this->isAdminPanel()); } /** * Формирование ссылки на страницу текущего шаблона * @param array $query параметры ссылки * @param bool|null $admin шаблон для админ. панели * @return string */ public function selfUrl(array $query = [], ?bool $admin = null): string { return $this->pageUrl($this->getPath(), $query, $admin ?? $this->isAdminPanel()); } /** * Получаем путь к файлу шаблона * @return string */ public function getPath(): string { return $this->path; } /** * Настройки заголовка текущей страницы в admin панели * @param string $title название * @param string|bool $icon true - список, false - форма, string - класс 'icon-*' * @param array $link ссылка [title=>'текст ссылки', 'href'=>'url ссылки'] * @return void */ public function adminPageHeader(string $title, $icon = true, array $link = []) { tplAdmin::adminPageSettings([ 'title' => $title, 'icon' => $icon, 'link' => $link, ]); } }