Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdsApp::CheckProject | (void) |
Declared in file: hzDissemino.h
Defined in file : hdsConfig.cpp
Function Logic:
Function body:
hzEcode hdsApp::CheckProject (void) { _hzfunc("hdsApp::checkProject") ; hzList<hdsFormref*>::Iter fi ; hzChain report ; hzChain Z ; hdsFldspec vd ; hzPair p ; hdsResource* pRes ; hdsPage* pPage ; hdsFormdef* pFormdef ; hdsFormref* pFormref ; hdsFormhdl* pFormHdl ; hdsField* pFld ; hdsNavtree* pAG ; const hdsArticle* pArt ; hzString S_key ; hzString S_obj ; uint32_t x ; uint32_t y ; hzEcode rc = E_OK ; m_pLog->Log("APPLICATION REPORT: %s\n", *m_Appname) ; if (!m_nPortSTD) { if (_hzGlobal_Dissemino) { m_nPortSTD = _hzGlobal_Dissemino->m_nCommonPortSTD ; m_pLog->Log("Inheriting HTTP port %d\n", m_nPortSTD) ; } else { rc = E_INITFAIL ; m_pLog->Log("No HTTP port specified and no overriding dissemino instance to inherit from\n") ; } } if (!m_nPortSSL) { if (_hzGlobal_Dissemino) { m_nPortSSL = _hzGlobal_Dissemino->m_nCommonPortSSL ; m_pLog->Log("Inheriting HTTPS port %d\n", m_nPortSSL) ; } else { rc = E_INITFAIL ; m_pLog->Log("No HTTPS port specified and no overriding dissemino instance to inherit from\n") ; } } if (rc != E_OK) return E_OK ; m_pLog->Log("User Categories\n") ; for (x = 0; x < m_UserTypes.Count() ; x++) { S_key = m_UserTypes.GetKey(x) ; m_pLog->Log(" -- %s (%08x)\n", *S_key, m_UserTypes.GetObj(x)) ; } m_ADP.Report(report) ; m_pLog->Log(report) ; /* ** ** Forms report ** */ m_pLog->Log("Form Definitions\n") ; for (x = 0; x < m_FormDefs.Count() ; x++) { S_key = m_FormDefs.GetKey(x) ; pFormdef = m_FormDefs.GetObj(x) ; if (pFormdef) m_pLog->Log("\t\t -- Form def %s - %s (%p)\n", *S_key, *pFormdef->m_Formname, pFormdef) ; else m_pLog->Log("\t\t -- Form def %s - NULL\n", *S_key) ; } m_pLog->Log("Form Handlers\n") ; for (x = 0; x < m_FormHdls.Count() ; x++) { S_key = m_FormHdls.GetKey(x) ; pFormHdl = m_FormHdls.GetObj(x) ; if (pFormHdl) m_pLog->Log("\t\t -- Form handler %s applied to form %p %s\n", *S_key, pFormHdl->m_pFormdef, *pFormHdl->m_pFormdef->m_Formname) ; else m_pLog->Log("\t\t -- Form handler %s not created\n", *S_key) ; } m_pLog->Log("Form References\n") ; for (x = 0; x < m_FormRef2Url.Count() ; x++) { pFormref = m_FormRef2Url.GetKey(x) ; S_obj = m_FormRef2Url.GetObj(x) ; pFormdef = m_FormDefs[pFormref->m_Formname] ; if (pFormdef) m_pLog->Log("\t\t -- Ref [%p] -> %p %s on %s\n", pFormref, pFormdef, *pFormdef->m_Formname, *S_obj) ; else m_pLog->Log("\t\t -- Ref [%p] -> NULL_FORM_DEF on %s\n", *S_obj) ; } m_pLog->Log("Submission URLs to Form Handlers\n") ; for (x = 0; x < m_FormUrl2Hdl.Count() ; x++) { S_key = m_FormUrl2Hdl.GetKey(x) ; S_obj = m_FormUrl2Hdl.GetObj(x) ; pFormHdl = m_FormHdls[S_obj] ; pFormref = m_FormUrl2Ref[S_obj] ; if (!pFormHdl) m_pLog->Log("\t\t -- URL %s -> NULL (ref %p)\n", *S_key, pFormref) ; else m_pLog->Log("\t\t -- URL %s -> %s (ref %p)\n", *S_key, *pFormHdl->m_Refname, pFormref) ; } /* ** ** Pages report ** */ m_pLog->Log("Pages (by incidence) Total %u\n", m_vecPages.Count()) ; for (x = 0; x < m_vecPages.Count() ; x++) { pPage = m_vecPages[x] ; m_pLog->Log(" -- access=%08x %s (%s) subj=%s\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title, *pPage->m_Subj) ; if (pPage->m_Subj) { if (!m_setPgSubjects.Exists(pPage->m_Subj)) { m_setPgSubjects.Insert(pPage->m_Subj) ; m_lstPgSubjects.Add(pPage->m_Subj) ; } m_mapSubj2Res.Insert(pPage->m_Subj, pPage) ; /* ** pSubj = m_setPgSubjects[pPage->m_Subj] ; ** if (!pSubj) ** { ** pSubj = new hdsSubject() ; ** pSubj->subject = pPage->m_Subj ; ** pSubj->first = pPage->m_Url ; ** ** m_setPgSubjects.Insert(pSubj->subject, pSubj) ; ** m_vecPgSubjects.Add(pSubj) ; ** } ** ** pSubj->pglist.Add(pPage) ; ** */ } for (fi = pPage->m_xForms ; fi.Valid() ; fi++) { pFormref = fi.Element() ; pFormdef = m_FormDefs[pFormref->m_Formname] ; if (pFormdef) pPage->m_bScriptFlags |= pFormdef->m_bScriptFlags ; } pPage->WriteValidationJS() ; } m_pLog->Log("Pages (by name) Total %u\n", m_ResourcesName.Count()) ; for (x = 0; x < m_ResourcesName.Count() ; x++) { pRes = m_ResourcesName.GetObj(x) ; pPage = dynamic_cast<hdsPage*>(pRes) ; if (!pPage) continue ; m_pLog->Log(" -- access=%08x %s (%s)\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title) ; for (fi = pPage->m_xForms ; fi.Valid() ; fi++) { pFormref = fi.Element() ; pFormdef = m_FormDefs[pFormref->m_Formname] ; if (!pFormdef) m_pLog->Log("\t -- form ref %p NULL form def\n", pFormref) ; else { m_pLog->Log("\t -- form ref %p -> %s\n", pFormref, *pFormdef->m_Formname) ; for (y = 0; y < pFormdef->m_vecFlds.Count() ; y++) { pFld = pFormdef->m_vecFlds[y] ; m_pLog->Log("\t\t -- fld %s\n", *pFld->m_Varname) ; } } } } m_pLog->Log("Pages (by path) Total %u\n", m_ResourcesPath.Count()) ; for (x = 0; x < m_ResourcesPath.Count() ; x++) { pRes = m_ResourcesPath.GetObj(x) ; pPage = dynamic_cast<hdsPage*>(pRes) ; if (!pPage) continue ; m_pLog->Log(" -- access=%08x %s (%s)\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title) ; for (fi = pPage->m_xForms ; fi.Valid() ; fi++) { pFormref = fi.Element() ; pFormdef = m_FormDefs[pFormref->m_Formname] ; if (!pFormdef) m_pLog->Log("\t -- form ref %p NULL form def\n", pFormref) ; else { m_pLog->Log("\t -- form ref %p -> %s\n", pFormref, *pFormdef->m_Formname) ; for (y = 0; y < pFormdef->m_vecFlds.Count() ; y++) { pFld = pFormdef->m_vecFlds[y] ; m_pLog->Log("\t\t -- fld %s\n", *pFld->m_Varname) ; } } } } m_pLog->Log("Verifying %u Links\n", m_Links.Count()) ; for (x = 0; x < m_Links.Count() ; x++) { S_obj = m_Links.GetObj(x) ; pRes = m_ResourcesPath[S_obj] ; if (!pRes) m_pLog->Log("ERROR: %u No such link as %s\n", x, *S_obj) ; else m_pLog->Log("Verified link %u %s\n", x, *S_obj) ; } m_pLog->Log("Verifying %u Links\n", m_Links.Count()) ; m_nLoadComplete++ ; /* ** ** Build Sitemap ** */ if (m_OpFlags & DS_APP_ROBOT) { Z.Clear() ; Z << "User-agent: *\r\nDisallow:\r\n" ; Z.Printf("Sitemap: http://%s/sitemap.xml\r\n", *m_Domain) ; Z.Printf("Sitemap: http://%s/sitemap.txt\r\n", *m_Domain) ; m_Robot = Z ; m_rawSitemapXml << "<?xml version="1.0" encoding="utf-8"?>\r\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\r\n" ; m_pLog->Log("Checking %u Pages\n", m_ResourcesPath.Count()) ; for (x = 0; x < m_ResourcesPath.Count() ; x++) { pRes = m_ResourcesPath.GetObj(x) ; pPage = dynamic_cast<hdsPage*>(pRes) ; if (!pPage) continue ; if (!pPage->m_Subj) continue ; if (pPage->m_Title == "Login") continue ; if (pPage->m_Title == "Logout") continue ; m_rawSitemapTxt.Printf("http://%s%s\r\n", *m_Domain, *pPage->m_Url) ; m_rawSitemapXml.Printf("\t<url><loc>http://%s%s</loc><changefreq>daily</changefreq></url>\r\n", *m_Domain, *pPage->m_Url) ; } m_pLog->Log("Checking %u Article Groups\n", m_ArticleGroups.Count()) ; for (y = 0; y < m_ArticleGroups.Count() ; y++) { pAG = m_ArticleGroups.GetObj(y) ; if (!pAG) continue ; m_pLog->Log("Checking Article Group %s\n", *pAG->m_Groupname) ; for (x = 0; x < pAG->Count() ; x++) { pArt = pAG->GetItem(x) ; if (pArt) { m_pLog->Log("Exporting article link %s\n", *pArt->m_Title) ; m_rawSitemapTxt.Printf("http://%s%s?%s=%s\r\n", *m_Domain, *pAG->m_Hostpage, *pAG->m_Groupname, *pArt->m_Url) ; m_rawSitemapXml.Printf("\t<url><loc>http://%s%s?%s=%s</loc><changefreq>daily</changefreq></url>\r\n", *m_Domain, *pAG->m_Hostpage, *pAG->m_Groupname, *pArt->m_Url) ; } } m_pLog->Log("Checking Article Group %s\n", *pAG->m_Groupname) ; } m_rawSitemapXml << "</urlset>\r\n" ; Gzip(m_zipSitemapTxt, m_rawSitemapTxt) ; Gzip(m_zipSitemapXml, m_rawSitemapXml) ; } if (m_OpFlags & DS_APP_GUIDE) { m_rawSiteguide << "<!DOCTYPE html>\n<head>\n<title>Site Guide</title>\n</head>\n<body>\n" ; m_rawSiteguide << "<p>Main Pages</p>\n" ; for (x = 0; x < m_ResourcesPath.Count() ; x++) { pRes = m_ResourcesPath.GetObj(x) ; pPage = dynamic_cast<hdsPage*>(pRes) ; if (!pPage) continue ; if (!pPage->m_Subj) continue ; m_rawSiteguide.Printf("<p><a href="http://%s%s">%s</a></p>\n" , *m_Domain, *pPage->m_Url, *pPage->m_Title) ; } for (y = 0; y < m_ArticleGroups.Count() ; y++) { pAG = m_ArticleGroups.GetObj(y) ; if (!pAG) continue ; m_rawSiteguide.Printf("<p>Article from %s</p>\n", *pAG->m_Groupname) ; for (x = 0; x < pAG->Count() ; x++) { pArt = (hdsArticle*) pAG->GetItem(x) ; if (pArt) m_rawSiteguide.Printf("<p><a href="http://%s%s-%s">%s</a></p>\n" , *m_Domain, *pAG->m_Hostpage, *pArt->m_Title, *pArt->m_Title) ; } } m_rawSiteguide << "</body>\n</html>\n" ; Gzip(m_zipSiteguide, m_rawSiteguide) ; } /* ** ** Add the webmaster admin functions as CIFs ** */ /* ** if (rc == E_OK) rc = AddCIFunc(&_masterMainMenu, "/masterMainMenu", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterCfgList, "/masterCfgList", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterCfgEdit, "/masterCfgEdit", ACCESS_ADMIN, HTTP_POST) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterResList, "/masterResList", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterVisList, "/masterVisList", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterDomain, "/masterDomain", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterEmaddr, "/masterEmaddr", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterStrFix, "/masterStrFix", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterStrGen, "/masterStrGen", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterBanned, "/masterBanned", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterMemstat, "/masterMemstat", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterUSL, "/masterUSL", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterFileList, "/masterFileList", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterFileEdit, "/masterFileEdit", ACCESS_ADMIN, HTTP_POST) ; ** //if (rc == E_OK) rc = AddCIFunc(&_masterDataModel, "/masterDataModel", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterCfgRestart, "/masterCfgRestart", ACCESS_ADMIN, HTTP_GET) ; ** if (rc == E_OK) rc = AddCIFunc(&_masterLogout, "/masterLogout", ACCESS_ADMIN, HTTP_GET) ; ** */ m_pLog->Log(" -- END of REPORT --\n") ; return rc ; }