Display HTML according to listed entities in the page. Returns: None

Return TypeFunction nameArguments
voidhdsPage::Display(hzHttpEvent*,)

Declared in file: hzDissemino.h
Defined in file : hdsGenerate.cpp

Function Logic:

0:START 1:unknown 2:items 3:unknown 4:items 5:items 6:unknown 7:pExec items rc items items 8:unknown 9:m_Title 10:items 11:unknown 12:items 13:items 14:unknown 15:items 16:items 17:unknown 18:items 19:items items 20:unknown 21:unknown 22:items 23:items 24:unknown 25:items 26:unknown 27:items items items 28:unknown 29:unknown 30:items 31:unknown 32:items 33:unknown 34:items 35:unknown 36:pFormref pFormdef items 37:items 38:items 39:items items 40:unknown 41:items 42:items 43:unknown 44:items 45:unknown 46:items 47:unknown 48:items 49:items relLn 50:unknown 51:pVE items 52:items rc 53: No text

Function body:

void hdsPage::Display (hzHttpEvent* pE)
{
   //  Display HTML according to listed entities in the page.
   //  
   //  Argument: pE  The HTTP event being responded to
   //  
   //  Returns: None
   _hzfunc("hdsPage::Display") ;
   hzList<hdsExec*>::Iter      ei ;    //  Page exec commands iterator
   hzList<hdsVE*>::Iter        ih ;    //  Html entity iterator
   hzList<hdsFormref*>::Iter   iF ;    //  Form iterator
   hzChain         C ;                 //  For formulating HTML
   hdsExec*        pExec ;             //  Exec function
   hdsVE*          pVE ;               //  Html entity
   hdsFormref*     pFormref ;          //  Form
   hdsFormdef*     pFormdef ;          //  Form definition
   uint32_t        relLn ;             //  Relative line
   uint32_t        nV ;                //  Visual entity iterator
   hzEcode         rc ;                //  Return code
   if (!pE)                    Fatal("No HTTP Event\n") ;
   if (!pE->m_pContextLang)    Fatal("No Language\n") ;
   m_pApp->m_pLog->Log("PAGE %s Script Flags %x\n", *m_Title, m_bScriptFlags) ;
   //  Run executable commands
   for (ei = m_Exec ; ei.Valid() ; ei++)
   {
       pExec = ei.Element() ;
        m_pApp->m_pLog->Log("HAVE EXEC %s\n", Exec2Txt(pExec->m_Command)) ;
        rc = pExec->Exec(C, pE) ;
        m_pApp->m_pLog->Out(C) ;
        C.Clear() ;
   }
   //  Construct the output HTML
   if (!m_Title)
       m_Title = "untitled" ;
   C << "<!DOCTYPE html>\n<html>\n<head>\n"
              ;
   if (pE && pE->m_Resarg)
       C.Printf("<title>%s-%s</title>\n", *m_Title, *pE->m_Resarg) ;
   else
       C << "<title>" << m_Title << "</title>\n" ;
   if (m_Desc)
       C.Printf("<meta name=\"description\" content=\"%s\"/>\n", *m_Desc) ;
   else
       C.Printf("<meta name=\"description\" content=\"%s\"/>\n", *m_Title) ;
   if (m_Keys)
       C.Printf("<meta name=\"keywords\" content=\"%s\"/>\n", *m_Keys) ;
   C << s_std_metas ;
   C << "<link rel=\"stylesheet\" href=\"" << m_pApp->m_namCSS << "\"/>\n" ;
   if (m_bScriptFlags || m_xForms.Count())
   {
       if (m_bScriptFlags & INC_SCRIPT_RECAPTCHA)
           C << s_Recaptcha ;
       C << "<script language=\"javascript\">\n" ;
       if (m_bScriptFlags & INC_SCRIPT_WINDIM)
           C << _dsmScript_gwp ;
       if (m_bScriptFlags & INC_SCRIPT_NAVTREE)
       {
           C << _dsmScript_tog ;
           C << _dsmScript_loadArticle ;
           C << _dsmScript_navtree ;
       }
       //  If page contains forms then it must include validation javascript in the HTML
       if (m_xForms.Count())
       {
           if (m_bScriptFlags & INC_SCRIPT_CKEMAIL)    C << _dsmScript_ckEmail ;
           if (m_bScriptFlags & INC_SCRIPT_CKURL)      C << _dsmScript_ckUrl ;
           if (m_bScriptFlags & INC_SCRIPT_EXISTS)     C << _dsmScript_ckExists ;
           for (iF = m_xForms ; iF.Valid() ; iF++)
           {
               pFormref = iF.Element() ;
               pFormdef = m_pApp->m_FormDefs[pFormref->m_Formname] ;
               C << pFormdef->m_ValJS ;
           }
           C << m_validateJS ;
       }
       C << "</script>\n" ;
   }
   C << "</head>\n\n" ;
   //  Construct the <body> tag
   C << "<body" ;
   if (m_CSS)
       C.Printf(" class=\"%s\"", *m_CSS) ;
   else
       C.Printf(" bgcolor=\"#%06x\" marginwidth=\"%d\" marginheight=\"%d\" leftmargin=\"%d\" topmargin=\"%d\"",
           m_BgColor, m_Width, m_Height, m_Width, m_Top) ;
   if (m_Onpage) C.Printf(" onpageshow=\"%s\"", *m_Onpage) ;
   if (m_Onload) C.Printf(" onload=\"%s\"", *m_Onload) ;
   if (m_Resize) C.Printf(" onresize=\"%s\"", *m_Resize) ;
   C << ">\n" ;
   //  Now construct the page elements
   relLn = m_Line ;
   for (nV = 0; nV < m_VEs.Count() ; nV++)
   {
       pVE = m_VEs[nV] ; pVE->Generate(C, pE, relLn) ;
   }
   //  End page construction
   C << "</body>\n</html>\n" ;
   //  Send out page. Note all generated pages are sent out raw, not zipped
   rc = pE->SendRawChain(HTTPMSG_OK, HMTYPE_TXT_HTML, C, 0,false) ;
}