Files
EWF/draft/application/cms/example/src/web_cms.e
Jocelyn Fiat ce469b6ede Updated CMS code.
Separated code to have a lib and an example.
Improved design, fixed a few issues related to folder location.

This is still experimental and require more work to be really friendly to use.
2013-01-31 15:33:24 +01:00

124 lines
2.3 KiB
Plaintext

note
description: "[
This class implements the Demo of WEB CMS service
]"
class
WEB_CMS
inherit
CMS_SERVICE
redefine
modules
end
WSF_DEFAULT_SERVICE
redefine
initialize
end
create
make_and_launch
feature -- Initialization
base_url: detachable READABLE_STRING_8
server_base_url: detachable READABLE_STRING_8
-- Base url (related to absolute path).
--| Mainly pertinent when run from a standalone server.
do
Result := base_url
end
modules: ARRAYED_LIST [CMS_MODULE]
local
m: CMS_MODULE
once
Result := Precursor
-- Others
create {DEMO_MODULE} m.make (Current)
m.enable
Result.extend (m)
create {SHUTDOWN_MODULE} m.make
m.enable
Result.extend (m)
-- create {EIFFEL_LOGIN_MODULE} m.make
-- m.enable
-- Result.extend (m)
end
feature {NONE} -- Initialization
initialize
local
args: ARGUMENTS
cfg: detachable STRING
i,n: INTEGER
cms_config: CMS_CONFIGURATION
opts: WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI
do
create args
from
i := 1
n := args.argument_count
until
i > n or cfg /= Void
loop
if attached args.argument (i) as s then
if s.same_string ("--config") or s.same_string ("-c") then
if i < n then
cfg := args.argument (i + 1)
end
end
end
i := i + 1
end
if cfg = Void then
if file_exists ("cms.ini") then
cfg := "cms.ini"
end
end
if cfg /= Void then
create cms_config.make_from_file (cfg)
-- (create {EXECUTION_ENVIRONMENT}).change_working_directory (dir)
else
create cms_config.make
end
--| EWF settings
create opts.make_from_file ("ewf.ini")
service_options := opts
Precursor
--| CMS settings
base_url := cms_config.site_base_url (base_url)
initialize_cms (cms_config)
site_email := cms_config.site_email (site_email)
site_name := cms_config.site_name (site_name)
on_launched
end
on_launched
local
e: CMS_EMAIL
do
create e.make (site_email, site_email, "[" + site_name + "] launched...", "The site [" + site_name + "] was launched at " + (create {DATE_TIME}.make_now_utc).out + " UTC.")
mailer.safe_process_email (e)
end
file_exists (fn: STRING): BOOLEAN
local
f: RAW_FILE
do
create f.make (fn)
Result := f.exists and then f.is_readable
end
end