| 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 ;
}