protected function create_required_pages_for_domain($project_id, $homepage, $domain_handle) { /* create domain homepage */ $doc_lang = substr($project_id, -2); $system_domain_info = $this->mSystemDomainRows[$doc_lang]; for ($i = 0; $i < self::NR_SYSTEM_DOMAIN_ROWS; $i++) { if ($system_domain_info[$i * 6 + 1] == $domain_handle) { $domain_name = $system_domain_info[$i * 6 + 2]; $domain_desc = $system_domain_info[$i * 6 + 3]; break; } } $domain_home = ProjectInfo::addDomainPage($project_id, $homepage, $domain_handle, $domain_name, $domain_desc); if ($domain_home == false) { $this->set('error', t('Failed to create domain page for %s!', $domain_handle)); return false; } /* add children pages for volumes and parts */ for ($i = 0; $i < self::NR_DOC_VOLUME_ROWS; $i++) { if ($this->mQueryParamsVolumes[$i * 7 + 1] == $domain_handle) { $volume_page = ProjectInfo::addVolumePage($project_id, $domain_home, $this->mQueryParamsVolumes[$i * 7 + 1], $this->mQueryParamsVolumes[$i * 7 + 2], $this->mQueryParamsVolumes[$i * 7 + 3], $this->mQueryParamsVolumes[$i * 7 + 4]); if (!$volume_page) { $this->set('error', t('Failed to create volume page for %s!', $domain_handle)); return false; } $volume_handle = $this->mQueryParamsVolumes[$i * 7 + 2]; for ($j = 0; $j < self::NR_DOC_PART_ROWS; $j++) { if ($this->mQueryParamsParts[$j * 8 + 1] == $domain_handle && $this->mQueryParamsParts[$j * 8 + 2] == $volume_handle) { $part_page = ProjectInfo::addPartPage($project_id, $domain_handle, $volume_page, $this->mQueryParamsParts[$j * 8 + 3], $this->mQueryParamsParts[$j * 8 + 4], $this->mQueryParamsParts[$j * 8 + 5]); if (!$part_page) { $this->set('error', t('Failed to create part page for %s!', $domain_handle)); return false; } } } } } return true; }
} echo 'Done <br/>'; flush(); ob_flush(); // create system pages $doc_lang = $lang['home_handle']; $project_id = 'sys-' . $doc_lang; echo '<br/>'; echo "Creating document and community pages for {$doc_lang} ... <br />"; $db = Loader::db(); $domains = $db->getAll("SELECT * FROM fsen_project_doc_domains\n\tWHERE project_id=? AND domain_handle != 'home'", array($project_id)); foreach ($domains as $d) { if ($d['domain_handle'] == 'document') { $domain_page = $localized_home_page; } else { $domain_page = ProjectInfo::addDomainPage($project_id, $localized_home_page, $d['domain_handle'], $d['domain_name'], $d['domain_desc']); echo ' Added domain page for '; echo $d['domain_handle']; echo '<br/>'; flush(); ob_flush(); } $volumes = $db->getAll("SELECT * FROM fsen_project_doc_volumes\n\tWHERE project_id=? AND domain_handle=? ORDER BY display_order", array($project_id, $d['domain_handle'])); foreach ($volumes as $v) { $volume_path = ProjectInfo::assemblePath($project_id, $d['domain_handle'], $v['volume_handle']); $volume_page = Page::getByPath($volume_path); if ($volume_page->getCollectionID() == false) { $volume_page = ProjectInfo::addVolumePage($project_id, $domain_page, $d['domain_handle'], $v['volume_handle'], $v['volume_name'], $v['volume_desc']); echo ' Added volume page for '; echo $v['volume_handle']; echo '<br/>';