Renamed {CMS_SETUP} theme_resource_location as theme_assets_location
Added missing known hook in auto register hook. Implemented /theme/* file system response. Implemented $page.type for the smarty template. Added CMS_DEBUG_MODULE . Added NOT_FOUND_ERROR_CMS_RESPONSE .
This commit is contained in:
@@ -41,8 +41,12 @@ feature {NONE} -- Initialization
|
|||||||
themes_location := configuration.themes_location
|
themes_location := configuration.themes_location
|
||||||
theme_name := configuration.theme_name ("default")
|
theme_name := configuration.theme_name ("default")
|
||||||
|
|
||||||
|
debug ("refactor_fixme")
|
||||||
|
fixme ("Review export clause for configuration and layout")
|
||||||
|
end
|
||||||
|
|
||||||
compute_theme_location
|
compute_theme_location
|
||||||
compute_theme_resource_location
|
compute_theme_assets_location
|
||||||
end
|
end
|
||||||
|
|
||||||
initialize_modules
|
initialize_modules
|
||||||
@@ -100,14 +104,15 @@ feature -- Compute location
|
|||||||
theme_location := themes_location.extended (theme_name)
|
theme_location := themes_location.extended (theme_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
compute_theme_resource_location
|
compute_theme_assets_location
|
||||||
-- assets (js, css, images, etc)
|
-- assets (js, css, images, etc)
|
||||||
-- Not used at the moment.
|
-- Not used at the moment.
|
||||||
do
|
do
|
||||||
debug ("refactor_fixme")
|
debug ("refactor_fixme")
|
||||||
fixme ("Check if we really need it")
|
fixme ("Check if we really need it")
|
||||||
end
|
end
|
||||||
theme_resource_location := theme_location
|
-- Check how to get this path from the CMS_THEME information.
|
||||||
|
theme_assets_location := theme_location.extended ("assets")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ feature -- Access: Theme
|
|||||||
theme_location: PATH
|
theme_location: PATH
|
||||||
-- Path to a particular theme.
|
-- Path to a particular theme.
|
||||||
|
|
||||||
theme_resource_location: PATH
|
theme_assets_location: PATH
|
||||||
-- Path to a particular theme resource.
|
-- Path to a particular theme assets folder.
|
||||||
|
|
||||||
theme_information_location: PATH
|
theme_information_location: PATH
|
||||||
-- theme informations.
|
-- theme informations.
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ feature -- Hook
|
|||||||
if attached {CMS_HOOK_FORM_ALTER} Current as h_form then
|
if attached {CMS_HOOK_FORM_ALTER} Current as h_form then
|
||||||
a_response.subscribe_to_form_alter_hook (h_form)
|
a_response.subscribe_to_form_alter_hook (h_form)
|
||||||
end
|
end
|
||||||
|
if attached {CMS_HOOK_VALUE_TABLE_ALTER} Current as h_value then
|
||||||
|
a_response.subscribe_to_value_table_alter_hook (h_value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
140
library/src/modules/cms_debug_module.e
Normal file
140
library/src/modules/cms_debug_module.e
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
note
|
||||||
|
description: "Summary description for {CMS_DEBUG_MODULE}."
|
||||||
|
date: "$Date: 2014-08-28 13:21:49 +0200 (jeu., 28 août 2014) $"
|
||||||
|
revision: "$Revision: 95708 $"
|
||||||
|
|
||||||
|
class
|
||||||
|
CMS_DEBUG_MODULE
|
||||||
|
|
||||||
|
inherit
|
||||||
|
CMS_MODULE
|
||||||
|
redefine
|
||||||
|
register_hooks
|
||||||
|
end
|
||||||
|
|
||||||
|
-- CMS_HOOK_BLOCK
|
||||||
|
|
||||||
|
CMS_HOOK_AUTO_REGISTER
|
||||||
|
|
||||||
|
SHARED_EXECUTION_ENVIRONMENT
|
||||||
|
export
|
||||||
|
{NONE} all
|
||||||
|
end
|
||||||
|
|
||||||
|
create
|
||||||
|
make
|
||||||
|
|
||||||
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
|
make
|
||||||
|
do
|
||||||
|
name := "debug"
|
||||||
|
version := "1.0"
|
||||||
|
description := "Debug"
|
||||||
|
package := "cms"
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Router
|
||||||
|
|
||||||
|
router (a_api: CMS_API): WSF_ROUTER
|
||||||
|
-- Router configuration.
|
||||||
|
do
|
||||||
|
create Result.make (1)
|
||||||
|
Result.handle ("/debug/", create {WSF_URI_TEMPLATE_AGENT_HANDLER}.make (agent handle_debug (a_api, ?, ?)))
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Hooks configuration
|
||||||
|
|
||||||
|
register_hooks (a_response: CMS_RESPONSE)
|
||||||
|
-- Module hooks configuration.
|
||||||
|
do
|
||||||
|
auto_subscribe_to_hooks (a_response)
|
||||||
|
-- a_response.subscribe_to_block_hook (Current)
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Hooks
|
||||||
|
|
||||||
|
-- block_list: ITERABLE [like {CMS_BLOCK}.name]
|
||||||
|
-- do
|
||||||
|
-- Result := <<"debug-info">>
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- get_block_view (a_block_id: READABLE_STRING_8; a_response: CMS_RESPONSE)
|
||||||
|
-- local
|
||||||
|
-- b: CMS_CONTENT_BLOCK
|
||||||
|
-- do
|
||||||
|
-- create b.make ("debug-info", "Debug", "... ", a_response.formats.plain_text)
|
||||||
|
-- a_response.add_block (b, Void)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
feature -- Handler
|
||||||
|
|
||||||
|
handle_debug (api: CMS_API; req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||||
|
local
|
||||||
|
r: CMS_RESPONSE
|
||||||
|
s: STRING
|
||||||
|
do
|
||||||
|
if req.is_get_request_method then
|
||||||
|
create {GENERIC_VIEW_CMS_RESPONSE} r.make (req, res, api)
|
||||||
|
r.set_title ("DEBUG")
|
||||||
|
|
||||||
|
create s.make_empty
|
||||||
|
append_info_to ("Name", api.setup.site_name, r, s)
|
||||||
|
append_info_to ("Url", api.setup.site_url, r, s)
|
||||||
|
|
||||||
|
if attached api.setup.configuration.configuration_location as l_loc then
|
||||||
|
s.append ("<hr/>")
|
||||||
|
append_info_to ("Configuration file", l_loc.name, r, s)
|
||||||
|
end
|
||||||
|
|
||||||
|
s.append ("<hr/>")
|
||||||
|
|
||||||
|
append_info_to ("Current dir", execution_environment.current_working_path.utf_8_name, r, s)
|
||||||
|
-- append_info_to ("Base url", cms.base_url, r, s)
|
||||||
|
-- append_info_to ("Script url", cms.script_url, r, s)
|
||||||
|
s.append ("<hr/>")
|
||||||
|
append_info_to ("Site dir", api.setup.layout.path.utf_8_name, r, s)
|
||||||
|
append_info_to ("Www dir", api.setup.layout.www_path.utf_8_name, r, s)
|
||||||
|
append_info_to ("Assets dir", api.setup.layout.assets_path.utf_8_name, r, s)
|
||||||
|
append_info_to ("Config dir", api.setup.layout.config_path.utf_8_name, r, s)
|
||||||
|
s.append ("<hr/>")
|
||||||
|
append_info_to ("Theme", api.setup.theme_name, r, s)
|
||||||
|
append_info_to ("Theme location", api.setup.themes_location.utf_8_name, r, s)
|
||||||
|
s.append ("<hr/>")
|
||||||
|
-- append_info_to ("Files location", api...files_location.utf_8_name, r, s)
|
||||||
|
-- s.append ("<hr/>")
|
||||||
|
|
||||||
|
append_info_to ("Url", r.url ("/", Void), r, s)
|
||||||
|
-- if attached r.user as u then
|
||||||
|
-- append_info_to ("User", u.name, r, s)
|
||||||
|
-- append_info_to ("User url", r.user_url (u), r, s)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
r.set_main_content (s)
|
||||||
|
else
|
||||||
|
create {NOT_FOUND_ERROR_CMS_RESPONSE} r.make (req, res, api)
|
||||||
|
end
|
||||||
|
r.execute
|
||||||
|
end
|
||||||
|
|
||||||
|
append_info_to (n: READABLE_STRING_8; v: detachable READABLE_STRING_GENERAL; r: CMS_RESPONSE; t: STRING)
|
||||||
|
do
|
||||||
|
t.append ("<li>")
|
||||||
|
t.append ("<strong>" + n + "</strong>: ")
|
||||||
|
if v /= Void then
|
||||||
|
t.append (r.html_encoded (v))
|
||||||
|
end
|
||||||
|
t.append ("</li>")
|
||||||
|
end
|
||||||
|
|
||||||
|
note
|
||||||
|
copyright: "Copyright (c) 1984-2013, Eiffel Software and others"
|
||||||
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
source: "[
|
||||||
|
Eiffel Software
|
||||||
|
5949 Hollister Ave., Goleta, CA 93117 USA
|
||||||
|
Telephone 805-685-1006, Fax 805-685-6869
|
||||||
|
Website http://www.eiffel.com
|
||||||
|
Customer support http://support.eiffel.com
|
||||||
|
]"
|
||||||
|
end
|
||||||
@@ -144,6 +144,16 @@ feature -- Settings: router
|
|||||||
fhdl: WSF_FILE_SYSTEM_HANDLER
|
fhdl: WSF_FILE_SYSTEM_HANDLER
|
||||||
do
|
do
|
||||||
log.write_debug (generator + ".configure_api_file_handler")
|
log.write_debug (generator + ".configure_api_file_handler")
|
||||||
|
|
||||||
|
create fhdl.make_hidden_with_path (setup.theme_assets_location)
|
||||||
|
fhdl.disable_index
|
||||||
|
fhdl.set_not_found_handler (agent (ia_uri: READABLE_STRING_8; ia_req: WSF_REQUEST; ia_res: WSF_RESPONSE)
|
||||||
|
do
|
||||||
|
execute_default (ia_req, ia_res)
|
||||||
|
end)
|
||||||
|
a_router.handle_with_request_methods ("/theme/", fhdl, router.methods_GET)
|
||||||
|
|
||||||
|
|
||||||
create fhdl.make_hidden_with_path (setup.layout.www_path)
|
create fhdl.make_hidden_with_path (setup.layout.www_path)
|
||||||
fhdl.disable_index
|
fhdl.disable_index
|
||||||
fhdl.set_not_found_handler (agent (ia_uri: READABLE_STRING_8; ia_req: WSF_REQUEST; ia_res: WSF_RESPONSE)
|
fhdl.set_not_found_handler (agent (ia_uri: READABLE_STRING_8; ia_req: WSF_REQUEST; ia_res: WSF_RESPONSE)
|
||||||
@@ -244,8 +254,12 @@ feature -- Execution
|
|||||||
|
|
||||||
execute_default (req: WSF_REQUEST; res: WSF_RESPONSE)
|
execute_default (req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||||
-- Default request handler if no other are relevant
|
-- Default request handler if no other are relevant
|
||||||
|
local
|
||||||
|
r: NOT_FOUND_ERROR_CMS_RESPONSE
|
||||||
do
|
do
|
||||||
to_implement ("Default response for CMS_SERVICE")
|
to_implement ("Default response for CMS_SERVICE")
|
||||||
|
create r.make (req, res, api)
|
||||||
|
r.execute
|
||||||
end
|
end
|
||||||
|
|
||||||
note
|
note
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ feature -- URL utilities
|
|||||||
local
|
local
|
||||||
l_path_info: READABLE_STRING_8
|
l_path_info: READABLE_STRING_8
|
||||||
do
|
do
|
||||||
l_path_info := request.path_info
|
l_path_info := request.percent_encoded_path_info
|
||||||
if attached setup.front_page_path as l_front_page_path then
|
if attached setup.front_page_path as l_front_page_path then
|
||||||
Result := l_front_page_path.same_string (l_path_info)
|
Result := l_front_page_path.same_string (l_path_info)
|
||||||
else
|
else
|
||||||
@@ -964,8 +964,13 @@ feature {NONE} -- Execution
|
|||||||
local
|
local
|
||||||
cms_page: CMS_HTML_PAGE
|
cms_page: CMS_HTML_PAGE
|
||||||
page: CMS_HTML_PAGE_RESPONSE
|
page: CMS_HTML_PAGE_RESPONSE
|
||||||
|
utf: UTF_CONVERTER
|
||||||
do
|
do
|
||||||
create cms_page.make
|
if attached {READABLE_STRING_GENERAL} values.item ("optional_content_type") as l_type then
|
||||||
|
create cms_page.make_typed (utf.utf_32_string_to_utf_8_string_8 (l_type))
|
||||||
|
else
|
||||||
|
create cms_page.make
|
||||||
|
end
|
||||||
prepare (cms_page)
|
prepare (cms_page)
|
||||||
create page.make (theme.page_html (cms_page))
|
create page.make (theme.page_html (cms_page))
|
||||||
page.set_status_code (status_code)
|
page.set_status_code (status_code)
|
||||||
|
|||||||
38
library/src/service/response/not_found_error_cms_response.e
Normal file
38
library/src/service/response/not_found_error_cms_response.e
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
note
|
||||||
|
description: "Summary description for {NOT_FOUND_ERROR_CMS_RESPONSE}."
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
class
|
||||||
|
NOT_FOUND_ERROR_CMS_RESPONSE
|
||||||
|
|
||||||
|
inherit
|
||||||
|
|
||||||
|
CMS_RESPONSE
|
||||||
|
redefine
|
||||||
|
custom_prepare
|
||||||
|
end
|
||||||
|
|
||||||
|
create
|
||||||
|
make
|
||||||
|
|
||||||
|
feature -- Generation
|
||||||
|
|
||||||
|
custom_prepare (page: CMS_HTML_PAGE)
|
||||||
|
do
|
||||||
|
page.register_variable (request.absolute_script_url (request.path_info), "request")
|
||||||
|
page.set_status_code ({HTTP_STATUS_CODE}.not_found)
|
||||||
|
page.register_variable (page.status_code.out, "code")
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Execution
|
||||||
|
|
||||||
|
process
|
||||||
|
-- Computed response message.
|
||||||
|
do
|
||||||
|
set_title ("Not Found")
|
||||||
|
set_page_title ("Not Found")
|
||||||
|
set_main_content ("<em>The requested page could not be found.</em>")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ feature -- Generation
|
|||||||
custom_prepare (page: CMS_HTML_PAGE)
|
custom_prepare (page: CMS_HTML_PAGE)
|
||||||
do
|
do
|
||||||
page.register_variable (request.absolute_script_url (request.path_info), "request")
|
page.register_variable (request.absolute_script_url (request.path_info), "request")
|
||||||
page.register_variable ("501", "code")
|
page.set_status_code ({HTTP_STATUS_CODE}.not_implemented)
|
||||||
page.set_status_code (501)
|
page.register_variable (page.status_code.out, "code")
|
||||||
end
|
end
|
||||||
|
|
||||||
feature -- Execution
|
feature -- Execution
|
||||||
@@ -32,6 +32,7 @@ feature -- Execution
|
|||||||
do
|
do
|
||||||
set_title ("Not Implemented")
|
set_title ("Not Implemented")
|
||||||
set_page_title (Void)
|
set_page_title (Void)
|
||||||
|
set_main_content (request.percent_encoded_path_info + " is not implemented!")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ create
|
|||||||
|
|
||||||
feature {NONE} -- Initialization
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
make_typed (a_type: like type)
|
make_typed (a_type: attached like type)
|
||||||
-- Make current page with optional page type `a_type'.
|
-- Make current page with optional page type `a_type'.
|
||||||
do
|
do
|
||||||
make
|
make
|
||||||
|
|||||||
Reference in New Issue
Block a user