/** * function similar to blade asset * * @param $path * @return string * */ function asset($path, $prefix = '/public') { // get flight $app = Flight::app(); // getting basePath $basePath = $app->get('basePath'); // path to mix-manifest $file = $app->get('basePath').'mix-manifest.json'; if (file_exists($file)) { $manifest = file_get_contents($file); $files = json_decode($manifest, true); if (isset($files[$prefix.$path])) { $path = str_replace($prefix, '', $files[$prefix.$path]); } } return $path; } /** * getting name of view as slug * * @param array $page * @return string * */ function viewName(array $page) { $slugify = new \Cocur\Slugify\Slugify(); return $slugify->slugify($page['data']['view']); } /** * getting name of view as slug * * @param array $page * @return string * */ function canonical() { if (isset($_SERVER['HTTPS'])) { $canoncial = 'https'; } else { $canoncial = 'http'; } $canoncial .= '://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; return $canoncial; } /** * getting title for head * * @param array $page * @param array $site * @return string */ function title($page, $site) { $title = []; if (isset($site['data']['title'])) { $title[] = $site['data']['title']; } // if not homepage set page title first if ($page['data']['slug']) { array_unshift($title, $page['data']['title']); } else { $title[] = $page['data']['title']; } return join(' | ', $title); } /** * getting url for assets of directus api * * @param string string * @param array array * @return string * */ function assetsUrl(string $id, array $options = NULL) { $query = NULL; if ($options) { $query = '?'.http_build_query($options); } return $_ENV['DIRECTUS_API_URL'].'/assets/'.$id.$query; } function styles($values) { $result = ''; if ($values && is_array($values)) { $result = implode(' ', $values); } return $result; }