public function availableLanguagesForPage($id, $params = [])
{
$page = $this->Page->with('localizedPages', 'language', 'translatedFromPage.localizedPages')->find($id);
$languages = [$page->language_id => ['human_name' => $page->language->human_name, 'url' => $this->URL->route($page->route_name, $params), 'code' => $page->language->code, 'id' => $page->language_id]];
foreach ($page->localizedPages as $p) {
$languages[$p->language_id] = ['human_name' => $p->language->human_name, 'url' => $this->URL->route($p->route_name, $params), 'code' => $p->language->code, 'id' => $p->language_id];
}
if (isset($page->translatedFromPage)) {
$p = $page->translatedFromPage;
$languages[$p->language_id] = ['human_name' => $p->language->human_name, 'url' => $this->URL->route($p->route_name, $params), 'code' => $p->language->code, 'id' => $p->language_id];
foreach ($p->localizedPages as $lp) {
$languages[$lp->language_id] = ['human_name' => $lp->language->human_name, 'url' => $this->URL->route($lp->route_name, $params), 'code' => $lp->language->code, 'id' => $lp->language_id];
}
}
return $languages;
}