public function project_detail($project_id, $project_key) { $project = Project::where('key', $project_key)->first(); if ($project != null) { $project_parts = $project->project_parts()->where('active', 1)->where('type', 'E')->orderBy('priority')->get(); $project_articles = $project->project_parts()->where('active', 1)->where('type', 'A')->orderBy('priority')->get(); $project_images = $project->project_images()->where('active', 1)->where('path', '<>', $project->logo)->orderBy('priority')->take(5)->get(); $other_projects = Project::where('active', 1)->orderBy('priority')->take(5)->get(); $project_agents = $project->agents()->get(); // metadata $site_title = $project->name . ' - ' . Config::findByKey('site_title')->first()->value; SEOMeta::setTitle($site_title); SEOMeta::setDescription($project->meta_description); SEOMeta::addKeyword([$project->meta_keywords]); SEOMeta::addMeta('project:published_time', $project->created_at->toW3CString(), 'property'); if (isset($project->district->name)) { SEOMeta::addMeta('project:section', $project->district->name, 'property'); } OpenGraph::setTitle($site_title); OpenGraph::setDescription($project->meta_description); OpenGraph::setUrl($project->getLink()); OpenGraph::addProperty('type', 'project'); OpenGraph::addProperty('locale', app()->getLocale()); OpenGraph::addProperty('locale:alternate', ['vi-vn', 'en-us']); OpenGraph::addImage($project->logo); OpenGraph::addImage($project_images->lists('path')); OpenGraph::addImage(['url' => Image::url($project->logo, 300, 300, array('crop')), 'size' => 300]); // end metadata $hmcDistrict = Province::findByKey('ho-chi-minh')->first()->districts()->where('is_publish', 1)->orderBy('priority')->get(); return view('frontend.sites.project', compact('project', 'project_parts', 'project_articles', 'project_images', 'other_projects', 'project_agents', 'hmcDistrict')); } else { return view('errors.404'); } }