Improved site_url and base_url interface and initialization.
Added CMS_CUSTOM_RESPONSE_MESSAGE interface to send easily simple response message. Updated CMS_RESPONSE to use CMS_CUSTOM_RESPONSE_MESSAGE
This commit is contained in:
@@ -36,6 +36,18 @@ feature -- Response helpers
|
|||||||
-- res.send (create {CMS_REDIRECTION_RESPONSE_MESSAGE}.make (a_location))
|
-- res.send (create {CMS_REDIRECTION_RESPONSE_MESSAGE}.make (a_location))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
send_bad_request_message (res: WSF_RESPONSE)
|
||||||
|
-- Send via `res' a bad request response.
|
||||||
|
do
|
||||||
|
res.send (create {CMS_CUSTOM_RESPONSE_MESSAGE}.make ({HTTP_STATUS_CODE}.bad_request))
|
||||||
|
end
|
||||||
|
|
||||||
|
send_not_found_message (res: WSF_RESPONSE)
|
||||||
|
-- Send via `res' a bad request response.
|
||||||
|
do
|
||||||
|
res.send (create {CMS_CUSTOM_RESPONSE_MESSAGE}.make ({HTTP_STATUS_CODE}.not_found))
|
||||||
|
end
|
||||||
|
|
||||||
send_access_denied_message (res: WSF_RESPONSE)
|
send_access_denied_message (res: WSF_RESPONSE)
|
||||||
-- Send via `res' an access denied response.
|
-- Send via `res' an access denied response.
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ note
|
|||||||
Generic CMS Response.
|
Generic CMS Response.
|
||||||
It builds the content to get process to render the output.
|
It builds the content to get process to render the output.
|
||||||
]"
|
]"
|
||||||
date: "$Date: 2015-02-16 20:14:19 +0100 (lun., 16 févr. 2015) $"
|
date: "$Date: 2015-05-20 11:48:26 +0200 (mer., 20 mai 2015) $"
|
||||||
revision: "$Revision: 96643 $"
|
revision: "$Revision: 97327 $"
|
||||||
|
|
||||||
deferred class
|
deferred class
|
||||||
CMS_RESPONSE
|
CMS_RESPONSE
|
||||||
@@ -40,14 +40,19 @@ feature {NONE} -- Initialization
|
|||||||
initialize_site_url
|
initialize_site_url
|
||||||
-- Initialize site and base url.
|
-- Initialize site and base url.
|
||||||
local
|
local
|
||||||
l_url: detachable READABLE_STRING_8
|
l_url: detachable STRING_8
|
||||||
i,j: INTEGER
|
i,j: INTEGER
|
||||||
do
|
do
|
||||||
--| WARNING: do not use `absolute_url' and `url', since it relies on site_url and base_url.
|
--| WARNING: do not use `absolute_url' and `url', since it relies on site_url and base_url.
|
||||||
l_url := setup.site_url
|
if attached setup.site_url as l_site_url and then not l_site_url.is_empty then
|
||||||
if l_url = Void then
|
create l_url.make_from_string (l_site_url)
|
||||||
|
else
|
||||||
l_url := request.absolute_script_url ("/")
|
l_url := request.absolute_script_url ("/")
|
||||||
end
|
end
|
||||||
|
check is_not_empty: not l_url.is_empty end
|
||||||
|
if l_url [l_url.count] /= '/' then
|
||||||
|
l_url.append_character ('/')
|
||||||
|
end
|
||||||
site_url := l_url
|
site_url := l_url
|
||||||
i := l_url.substring_index ("://", 1)
|
i := l_url.substring_index ("://", 1)
|
||||||
if i > 0 then
|
if i > 0 then
|
||||||
@@ -56,6 +61,9 @@ feature {NONE} -- Initialization
|
|||||||
base_url := l_url.substring (j, l_url.count)
|
base_url := l_url.substring (j, l_url.count)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
ensure
|
||||||
|
site_url_set: site_url /= Void
|
||||||
|
site_url_ends_with_slash: site_url.ends_with_general ("/")
|
||||||
end
|
end
|
||||||
|
|
||||||
register_hooks
|
register_hooks
|
||||||
@@ -98,6 +106,15 @@ feature -- Access
|
|||||||
redirection: detachable READABLE_STRING_8
|
redirection: detachable READABLE_STRING_8
|
||||||
-- Location for eventual redirection.
|
-- Location for eventual redirection.
|
||||||
|
|
||||||
|
location: STRING_8
|
||||||
|
-- Associated cms local location.
|
||||||
|
do
|
||||||
|
create Result.make_from_string (request.percent_encoded_path_info)
|
||||||
|
if not Result.is_empty and then Result[1] = '/' then
|
||||||
|
Result.remove_head (1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
feature -- Internationalization (i18n)
|
feature -- Internationalization (i18n)
|
||||||
|
|
||||||
translation (a_text: READABLE_STRING_GENERAL; opts: detachable CMS_API_OPTIONS): STRING_32
|
translation (a_text: READABLE_STRING_GENERAL; opts: detachable CMS_API_OPTIONS): STRING_32
|
||||||
@@ -185,10 +202,10 @@ feature -- URL utilities
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
site_url: READABLE_STRING_8
|
site_url: IMMUTABLE_STRING_8
|
||||||
-- Absolute site url.
|
-- Absolute site url.
|
||||||
|
|
||||||
base_url: detachable READABLE_STRING_8
|
base_url: detachable IMMUTABLE_STRING_8
|
||||||
-- Base url if any.
|
-- Base url if any.
|
||||||
--| Usually it is Void, but it could be
|
--| Usually it is Void, but it could be
|
||||||
--| /project/demo/
|
--| /project/demo/
|
||||||
|
|||||||
64
src/service/response/message/cms_custom_response_message.e
Normal file
64
src/service/response/message/cms_custom_response_message.e
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
note
|
||||||
|
description: "Custom cms response message."
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
class
|
||||||
|
CMS_CUSTOM_RESPONSE_MESSAGE
|
||||||
|
|
||||||
|
inherit
|
||||||
|
CMS_RESPONSE_MESSAGE
|
||||||
|
redefine
|
||||||
|
send_payload_to
|
||||||
|
end
|
||||||
|
|
||||||
|
create
|
||||||
|
make
|
||||||
|
|
||||||
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
|
make (a_code: INTEGER)
|
||||||
|
-- Set `status_code' to `a_code'.
|
||||||
|
require
|
||||||
|
a_code_valid: a_code > 0
|
||||||
|
do
|
||||||
|
initialize
|
||||||
|
status_code := a_code
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Access
|
||||||
|
|
||||||
|
payload: detachable READABLE_STRING_8
|
||||||
|
-- Optional payload.
|
||||||
|
|
||||||
|
feature -- Element change
|
||||||
|
|
||||||
|
set_status_code (a_code: INTEGER)
|
||||||
|
-- Set `status_code' to `a_code'.
|
||||||
|
require
|
||||||
|
a_code_valid: a_code > 0
|
||||||
|
do
|
||||||
|
status_code := a_code
|
||||||
|
end
|
||||||
|
|
||||||
|
set_payload (s: detachable READABLE_STRING_8)
|
||||||
|
-- Set `payload' to `s'.
|
||||||
|
do
|
||||||
|
if s /= Void then
|
||||||
|
payload := s
|
||||||
|
header.put_content_length (s.count)
|
||||||
|
else
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
feature {WSF_RESPONSE} -- Output
|
||||||
|
|
||||||
|
send_payload_to (res: WSF_RESPONSE)
|
||||||
|
-- Send payload data to response `res'.
|
||||||
|
do
|
||||||
|
if attached payload as s then
|
||||||
|
res.put_string (s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
note
|
note
|
||||||
description: "Abstract class describing a generic theme"
|
description: "Abstract class describing a generic theme"
|
||||||
date: "$Date: 2015-02-16 12:52:35 +0100 (lun., 16 févr. 2015) $"
|
date: "$Date: 2015-05-20 11:48:26 +0200 (mer., 20 mai 2015) $"
|
||||||
revision: "$Revision: 96630 $"
|
revision: "$Revision: 97327 $"
|
||||||
|
|
||||||
deferred class
|
deferred class
|
||||||
CMS_THEME
|
CMS_THEME
|
||||||
@@ -18,10 +18,10 @@ feature {NONE} -- Access
|
|||||||
|
|
||||||
setup: CMS_SETUP
|
setup: CMS_SETUP
|
||||||
|
|
||||||
site_url: READABLE_STRING_8 assign set_site_url
|
site_url: IMMUTABLE_STRING_8
|
||||||
-- Absolute URL for Current CMS site.
|
-- Absolute URL for Current CMS site.
|
||||||
|
|
||||||
base_url: detachable READABLE_STRING_8
|
base_url: detachable IMMUTABLE_STRING_8
|
||||||
-- Optional base url of current CMS site.
|
-- Optional base url of current CMS site.
|
||||||
|
|
||||||
feature -- Access
|
feature -- Access
|
||||||
@@ -59,16 +59,17 @@ feature -- Element change
|
|||||||
i,j: INTEGER
|
i,j: INTEGER
|
||||||
do
|
do
|
||||||
base_url := Void
|
base_url := Void
|
||||||
if a_url[a_url.count] = '/' then
|
if a_url [a_url.count] = '/' then
|
||||||
site_url := a_url
|
create site_url.make_from_string (a_url)
|
||||||
else
|
else
|
||||||
site_url := a_url + "/"
|
create site_url.make_from_string (a_url + "/")
|
||||||
end
|
end
|
||||||
|
|
||||||
i := a_url.substring_index ("://", 1)
|
i := a_url.substring_index ("://", 1)
|
||||||
if i > 0 then
|
if i > 0 then
|
||||||
j := a_url.index_of ('/', i + 3)
|
j := a_url.index_of ('/', i + 3)
|
||||||
if j > 0 then
|
if j > 0 then
|
||||||
base_url := a_url.substring (j, a_url.count)
|
create base_url.make_from_string (a_url.substring (j, a_url.count))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user