note description: "Summary description for {CMS_HTML_PAGE}." author: "" date: "$Date$" revision: "$Revision$" class CMS_HTML_PAGE create make feature {NONE} -- Initialization make do create regions.make (5) language := "en" status_code := {HTTP_STATUS_CODE}.ok create header.make create {ARRAYED_LIST [STRING]} head_lines.make (5) header.put_content_type_text_html end feature -- Status status_code: INTEGER feature -- Header header: HTTP_HEADER feature -- Region regions: HASH_TABLE [STRING_8, STRING_8] -- header -- content -- footer -- could have sidebar first, sidebar second, ... region (n: STRING_8): STRING_8 do if attached regions.item (n) as r then Result := r else Result := "" debug Result := "{{" + n + "}}" end end end html_head: STRING_8 local t: like title lines: like head_lines do t := title lines := head_lines if t /= Void or else lines.count > 0 then create Result.make (50) if t /= Void then Result.append ("" + t + "%N") end Result.append_character ('%N') across lines as l loop Result.append (l.item) Result.append_character ('%N') end else create Result.make_empty end end header_region: STRING_8 do Result := region ("header") end content_region: STRING_8 do Result := region ("content") end footer_region: STRING_8 do Result := region ("content") end feature -- Element change add_to_region (s: STRING; k: STRING) local r: detachable STRING do r := regions.item (k) if r = Void then create r.make_from_string (s) set_region (r, k) else r.append (s) end end add_to_header_region (s: STRING) do add_to_region (s, "header") end add_to_content_region (s: STRING) do add_to_region (s, "content") end add_to_footer_region (s: STRING) do add_to_region (s, "footer") end set_region (s: STRING; k: STRING) do regions.force (s, k) end -- set_header_region (s: STRING) -- do -- set_region (s, "header") -- end -- set_content_region (s: STRING) -- do -- set_region (s, "content") -- end -- set_footer_region (s: STRING) -- do -- set_region (s, "footer") -- end feature -- Access title: detachable STRING language: STRING head_lines: LIST [STRING] head_lines_to_string: STRING do create Result.make_empty across head_lines as h loop Result.append (h.item) Result.append_character ('%N') end end -- variables: HASH_TABLE [detachable ANY, STRING_8] feature -- Element change set_status_code (c: like status_code) do status_code := c end set_language (s: like language) do language := s end set_title (s: like title) do title := s end add_meta_name_content (a_name: STRING; a_content: STRING) local s: STRING_8 do s := "" head_lines.extend (s) end add_meta_http_equiv (a_http_equiv: STRING; a_content: STRING) local s: STRING_8 do s := "" head_lines.extend (s) end add_style (a_href: STRING; a_media: detachable STRING) local s: STRING_8 do s := "") head_lines.extend (s) end add_javascript_url (a_src: STRING) local s: STRING_8 do s := "" head_lines.extend (s) end add_javascript_content (a_script: STRING) local s: STRING_8 do s := "" head_lines.extend (s) end end