@@ -1,8 +1,14 @@
|
||||
note
|
||||
description: "[
|
||||
Configure the basic settings for a CMS application, for example where to look for themes, the name of the application, etc.
|
||||
The settings can be configured by default using the current working directory, using the commands provided by the class or by an external configuration file
|
||||
Configure the basic settings for a CMS application,
|
||||
i.e: where to look for themes, name of the application, etc...
|
||||
|
||||
The settings can be configured by default:
|
||||
- using the current working directory,
|
||||
- using the commands provided by the class
|
||||
- or by an external configuration file.
|
||||
]"
|
||||
|
||||
class
|
||||
CMS_CONFIGURATION
|
||||
|
||||
@@ -119,7 +125,7 @@ feature -- Access
|
||||
end
|
||||
end
|
||||
|
||||
site_url (dft: like site_url): READABLE_STRING_8
|
||||
site_url (dft: like site_url): detachable READABLE_STRING_8
|
||||
do
|
||||
if attached options.item ("site.url") as s then
|
||||
Result := s
|
||||
|
||||
@@ -35,7 +35,7 @@ feature {NONE} -- Initialization
|
||||
configure
|
||||
do
|
||||
site_id := configuration.site_id
|
||||
site_url := configuration.site_url ("")
|
||||
site_url := configuration.site_url (Void)
|
||||
site_name := configuration.site_name ("EWF::CMS")
|
||||
site_email := configuration.site_email ("webmaster")
|
||||
themes_location := configuration.themes_location
|
||||
@@ -104,7 +104,7 @@ feature -- Compute location
|
||||
-- assets (js, css, images, etc)
|
||||
-- Not used at the moment.
|
||||
do
|
||||
debug
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check if we really need it")
|
||||
end
|
||||
theme_resource_location := theme_location
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
note
|
||||
description: "[
|
||||
CMS API Layout, to provide paths
|
||||
*config
|
||||
*application
|
||||
*logs
|
||||
*documentation
|
||||
*themes
|
||||
CMS Layout providing file system locations for
|
||||
- config
|
||||
- application
|
||||
- logs
|
||||
- documentation
|
||||
- themes
|
||||
]"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
@@ -39,8 +39,8 @@ feature -- Access: Site
|
||||
site_email: READABLE_STRING_8
|
||||
-- Email for the site.
|
||||
|
||||
site_url: READABLE_STRING_8
|
||||
-- Base url of the site.
|
||||
site_url: detachable READABLE_STRING_8
|
||||
-- Optional base url of the site.
|
||||
|
||||
front_page_path: detachable READABLE_STRING_8
|
||||
-- Optional path defining the front page.
|
||||
|
||||
@@ -94,7 +94,9 @@ feature -- Access: Node
|
||||
nodes: LIST[CMS_NODE]
|
||||
-- List of nodes.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Implementation")
|
||||
end
|
||||
Result := storage.recent_nodes (0, 10)
|
||||
end
|
||||
|
||||
@@ -107,7 +109,9 @@ feature -- Access: Node
|
||||
node (a_id: INTEGER_64): detachable CMS_NODE
|
||||
-- Node by ID.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check preconditions")
|
||||
end
|
||||
Result := storage.node (a_id)
|
||||
end
|
||||
|
||||
@@ -134,21 +138,27 @@ feature -- Change: Node
|
||||
update_node_title (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_title: READABLE_STRING_32)
|
||||
-- Update node title, with user identified by `a_id', with node id `a_node_id' and a new title `a_title'.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check preconditions")
|
||||
end
|
||||
storage.update_node_title (a_id,a_node_id,a_title)
|
||||
end
|
||||
|
||||
update_node_summary (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_summary: READABLE_STRING_32)
|
||||
-- Update node summary, with user identified by `a_id', with node id `a_node_id' and a new summary `a_summary'.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check preconditions")
|
||||
end
|
||||
storage.update_node_summary (a_id,a_node_id, a_summary)
|
||||
end
|
||||
|
||||
update_node_content (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_content: READABLE_STRING_32)
|
||||
-- Update node content, with user identified by `a_id', with node id `a_node_id' and a new content `a_content'.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check preconditions")
|
||||
end
|
||||
storage.update_node_content (a_id,a_node_id, a_content)
|
||||
end
|
||||
|
||||
@@ -172,9 +182,11 @@ feature -- Change User
|
||||
then
|
||||
storage.save_user (a_user)
|
||||
else
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Add error")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
feature {NONE} -- Implemenataion
|
||||
|
||||
@@ -245,7 +245,7 @@ feature -- Execution
|
||||
execute_default (req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||
-- Default request handler if no other are relevant
|
||||
do
|
||||
fixme ("To Implement")
|
||||
to_implement ("Default response for CMS_SERVICE")
|
||||
end
|
||||
|
||||
note
|
||||
|
||||
@@ -29,6 +29,7 @@ feature {NONE} -- Initialization
|
||||
get_theme
|
||||
create menu_system.make
|
||||
initialize_block_region_settings
|
||||
create hook_subscribers.make (0)
|
||||
register_hooks
|
||||
end
|
||||
|
||||
@@ -273,10 +274,12 @@ feature -- Blocks initialization
|
||||
local
|
||||
l_table: like block_region_settings
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("CHECK:Can we use the same structure as in theme.info?")
|
||||
fixme ("let the user choose ...")
|
||||
end
|
||||
create regions.make_caseless (5)
|
||||
|
||||
fixme ("let the user choose ...")
|
||||
create l_table.make_caseless (10)
|
||||
l_table["top"] := "top"
|
||||
l_table["header"] := "header"
|
||||
@@ -337,7 +340,9 @@ feature -- Blocks
|
||||
|
||||
get_blocks
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("find a way to have this in configuration or database, and allow different order")
|
||||
end
|
||||
add_block (top_header_block, "top")
|
||||
add_block (header_block, "header")
|
||||
if attached message_block as m then
|
||||
@@ -476,118 +481,111 @@ feature -- Blocks
|
||||
create Result.make ("made_with", Void, made_with_html, Void)
|
||||
end
|
||||
|
||||
feature -- Hook: value alter
|
||||
|
||||
subscribe_to_value_table_alter_hook (h: like value_table_alter_hooks.item)
|
||||
feature -- Hooks
|
||||
|
||||
hook_subscribers: HASH_TABLE [LIST [CMS_HOOK], TYPE [CMS_HOOK]]
|
||||
-- Hook indexed by hook identifier.
|
||||
|
||||
subscribe_to_hook (h: CMS_HOOK; a_hook_type: TYPE [CMS_HOOK])
|
||||
-- Subscribe `h' to hooks identified by `a_hook_type'.
|
||||
local
|
||||
lst: like value_table_alter_hooks
|
||||
lst: detachable LIST [CMS_HOOK]
|
||||
do
|
||||
lst := value_table_alter_hooks
|
||||
lst := hook_subscribers.item (a_hook_type)
|
||||
if lst = Void then
|
||||
create lst.make (1)
|
||||
value_table_alter_hooks := lst
|
||||
create {ARRAYED_LIST [CMS_HOOK]} lst.make (1)
|
||||
hook_subscribers.force (lst, a_hook_type)
|
||||
end
|
||||
if not lst.has (h) then
|
||||
lst.force (h)
|
||||
end
|
||||
end
|
||||
|
||||
value_table_alter_hooks: detachable ARRAYED_LIST [CMS_HOOK_VALUE_TABLE_ALTER]
|
||||
feature -- Hook: value alter
|
||||
|
||||
invoke_value_table_alter (m: CMS_VALUE_TABLE)
|
||||
subscribe_to_value_table_alter_hook (h: CMS_HOOK_VALUE_TABLE_ALTER)
|
||||
-- Add `h' as subscriber of value table alter hooks CMS_HOOK_VALUE_TABLE_ALTER.
|
||||
do
|
||||
if attached value_table_alter_hooks as lst then
|
||||
subscribe_to_hook (h, {CMS_HOOK_VALUE_TABLE_ALTER})
|
||||
end
|
||||
|
||||
invoke_value_table_alter (a_table: CMS_VALUE_TABLE)
|
||||
-- Invoke value table alter hook for table `a_table'.
|
||||
do
|
||||
if attached hook_subscribers.item ({CMS_HOOK_VALUE_TABLE_ALTER}) as lst then
|
||||
across
|
||||
lst as c
|
||||
loop
|
||||
c.item.value_table_alter (m, Current)
|
||||
if attached {CMS_HOOK_VALUE_TABLE_ALTER} c.item as h then
|
||||
h.value_table_alter (a_table, Current)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Hook: menu_system_alter
|
||||
|
||||
subscribe_to_menu_system_alter_hook (h: like menu_system_alter_hooks.item)
|
||||
local
|
||||
lst: like menu_system_alter_hooks
|
||||
subscribe_to_menu_system_alter_hook (h: CMS_HOOK_MENU_SYSTEM_ALTER)
|
||||
-- Add `h' as subscriber of menu system alter hooks CMS_HOOK_MENU_SYSTEM_ALTER.
|
||||
do
|
||||
lst := menu_system_alter_hooks
|
||||
if lst = Void then
|
||||
create lst.make (1)
|
||||
menu_system_alter_hooks := lst
|
||||
end
|
||||
if not lst.has (h) then
|
||||
lst.force (h)
|
||||
end
|
||||
subscribe_to_hook (h, {CMS_HOOK_MENU_SYSTEM_ALTER})
|
||||
end
|
||||
|
||||
menu_system_alter_hooks: detachable ARRAYED_LIST [CMS_HOOK_MENU_SYSTEM_ALTER]
|
||||
|
||||
invoke_menu_system_alter (m: CMS_MENU_SYSTEM )
|
||||
invoke_menu_system_alter (a_menu_system: CMS_MENU_SYSTEM)
|
||||
-- Invoke menu system alter hook for menu `a_menu_system'.
|
||||
do
|
||||
if attached menu_system_alter_hooks as lst then
|
||||
if attached hook_subscribers.item ({CMS_HOOK_MENU_SYSTEM_ALTER}) as lst then
|
||||
across
|
||||
lst as c
|
||||
loop
|
||||
c.item.menu_system_alter (m, Current)
|
||||
if attached {CMS_HOOK_MENU_SYSTEM_ALTER} c.item as h then
|
||||
h.menu_system_alter (a_menu_system, Current)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Hook: menu_alter
|
||||
|
||||
subscribe_to_menu_alter_hook (h: like menu_alter_hooks.item)
|
||||
local
|
||||
lst: like menu_alter_hooks
|
||||
subscribe_to_menu_alter_hook (h: CMS_HOOK_MENU_ALTER)
|
||||
-- Add `h' as subscriber of menu alter hooks CMS_HOOK_MENU_ALTER.
|
||||
do
|
||||
lst := menu_alter_hooks
|
||||
if lst = Void then
|
||||
create lst.make (1)
|
||||
menu_alter_hooks := lst
|
||||
end
|
||||
if not lst.has (h) then
|
||||
lst.force (h)
|
||||
end
|
||||
subscribe_to_hook (h, {CMS_HOOK_MENU_ALTER})
|
||||
end
|
||||
|
||||
menu_alter_hooks: detachable ARRAYED_LIST [CMS_HOOK_MENU_ALTER]
|
||||
|
||||
invoke_menu_alter (m: CMS_MENU)
|
||||
invoke_menu_alter (a_menu: CMS_MENU)
|
||||
-- Invoke menu alter hook for menu `a_menu'.
|
||||
do
|
||||
if attached menu_alter_hooks as lst then
|
||||
if attached hook_subscribers.item ({CMS_HOOK_MENU_ALTER}) as lst then
|
||||
across
|
||||
lst as c
|
||||
loop
|
||||
c.item.menu_alter (m, Current)
|
||||
if attached {CMS_HOOK_MENU_ALTER} c.item as h then
|
||||
h.menu_alter (a_menu, Current)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Hook: form_alter
|
||||
|
||||
subscribe_to_form_alter_hook (h: like form_alter_hooks.item)
|
||||
local
|
||||
lst: like form_alter_hooks
|
||||
subscribe_to_form_alter_hook (h: CMS_HOOK_FORM_ALTER)
|
||||
-- Add `h' as subscriber of form alter hooks CMS_HOOK_FORM_ALTER.
|
||||
do
|
||||
lst := form_alter_hooks
|
||||
if lst = Void then
|
||||
create lst.make (1)
|
||||
form_alter_hooks := lst
|
||||
end
|
||||
if not lst.has (h) then
|
||||
lst.force (h)
|
||||
end
|
||||
subscribe_to_hook (h, {CMS_HOOK_MENU_ALTER})
|
||||
end
|
||||
|
||||
form_alter_hooks: detachable ARRAYED_LIST [CMS_HOOK_FORM_ALTER]
|
||||
|
||||
invoke_form_alter (f: CMS_FORM; a_form_data: detachable WSF_FORM_DATA)
|
||||
invoke_form_alter (a_form: CMS_FORM; a_form_data: detachable WSF_FORM_DATA)
|
||||
-- Invoke form alter hook for form `a_form' and associated data `a_form_data'
|
||||
do
|
||||
if attached form_alter_hooks as lst then
|
||||
if attached hook_subscribers.item ({CMS_HOOK_FORM_ALTER}) as lst then
|
||||
across
|
||||
lst as c
|
||||
loop
|
||||
c.item.form_alter (f, a_form_data, Current)
|
||||
if attached {CMS_HOOK_FORM_ALTER} c.item as h then
|
||||
h.form_alter (a_form, a_form_data, Current)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -595,31 +593,24 @@ feature -- Hook: form_alter
|
||||
feature -- Hook: block
|
||||
|
||||
subscribe_to_block_hook (h: CMS_HOOK_BLOCK)
|
||||
local
|
||||
lst: like block_hooks
|
||||
-- Add `h' as subscriber of hooks CMS_HOOK_BLOCK.
|
||||
do
|
||||
lst := block_hooks
|
||||
if lst = Void then
|
||||
create lst.make (1)
|
||||
block_hooks := lst
|
||||
subscribe_to_hook (h, {CMS_HOOK_BLOCK})
|
||||
end
|
||||
if not lst.has (h) then
|
||||
lst.force (h)
|
||||
end
|
||||
end
|
||||
|
||||
block_hooks: detachable ARRAYED_LIST [CMS_HOOK_BLOCK]
|
||||
|
||||
invoke_block
|
||||
-- Invoke block hook in order to get block from modules.
|
||||
do
|
||||
if attached block_hooks as lst then
|
||||
if attached hook_subscribers.item ({CMS_HOOK_BLOCK}) as lst then
|
||||
across
|
||||
lst as c
|
||||
loop
|
||||
if attached {CMS_HOOK_BLOCK} c.item as h then
|
||||
across
|
||||
c.item.block_list as blst
|
||||
h.block_list as blst
|
||||
loop
|
||||
c.item.get_block_view (blst.item, Current)
|
||||
h.get_block_view (blst.item, Current)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -809,7 +800,9 @@ feature -- Generation
|
||||
common_prepare (page: CMS_HTML_PAGE)
|
||||
-- Common preparation for page `page'.
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Fix generation common")
|
||||
end
|
||||
|
||||
-- Information
|
||||
page.set_title (title)
|
||||
|
||||
@@ -37,7 +37,9 @@ feature -- Conversion
|
||||
|
||||
menu_html (a_menu: CMS_MENU; is_horizontal: BOOLEAN): STRING_8
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Refactor HTML code to use the new Bootstrap theme template")
|
||||
end
|
||||
create Result.make_from_string ("<div id=%""+ a_menu.name +"%" class=%"menu%">")
|
||||
if is_horizontal then
|
||||
Result.append ("<ul class=%"horizontal%" >%N")
|
||||
@@ -57,7 +59,9 @@ feature -- Conversion
|
||||
local
|
||||
s: STRING
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Refactor HTML code to use the new Bootstrap theme template")
|
||||
end
|
||||
if attached {CMS_CONTENT_BLOCK} a_block as l_content_block and then l_content_block.is_raw then
|
||||
create s.make_empty
|
||||
if attached l_content_block.title as l_title then
|
||||
@@ -87,7 +91,9 @@ feature {NONE} -- Implementation
|
||||
local
|
||||
cl: STRING
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Remove HTML from Eiffel")
|
||||
end
|
||||
create cl.make_empty
|
||||
if lnk.is_active then
|
||||
cl.append ("active ")
|
||||
|
||||
@@ -25,9 +25,13 @@ feature{NONE} -- Initialization
|
||||
set_creation_date (l_time)
|
||||
set_modification_date (l_time)
|
||||
set_publication_date (l_time)
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Remove harcode format")
|
||||
end
|
||||
set_format ("HTML")
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Remove harcode content type")
|
||||
end
|
||||
set_content_type ("Page")
|
||||
ensure
|
||||
content_set: content = a_content
|
||||
|
||||
@@ -39,7 +39,7 @@ feature -- Access: user
|
||||
|
||||
all_users: LIST [CMS_USER]
|
||||
do
|
||||
to_implement("Not implemented!!!")
|
||||
to_implement (generator + ".all_users")
|
||||
create {ARRAYED_LIST[CMS_USER]} Result.make (0)
|
||||
end
|
||||
|
||||
@@ -88,14 +88,14 @@ feature -- User Nodes
|
||||
user_collaborator_nodes (a_id: like {CMS_USER}.id): LIST[CMS_NODE]
|
||||
-- Possible list of nodes where the user identified by `a_id', is a collaborator.
|
||||
do
|
||||
fixme ("Not implemented!!!")
|
||||
to_implement (generator + ".user_collaborator_nodes")
|
||||
create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
|
||||
end
|
||||
|
||||
user_author_nodes (a_id: like {CMS_USER}.id): LIST[CMS_NODE]
|
||||
-- Possible list of nodes where the user identified by `a_id', is the author.
|
||||
do
|
||||
fixme ("Not implemented!!!")
|
||||
to_implement (generator + ".user_author_nodes")
|
||||
create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
|
||||
end
|
||||
|
||||
@@ -103,12 +103,12 @@ feature -- Access: roles and permissions
|
||||
|
||||
user_role_by_id (a_id: like {CMS_USER_ROLE}.id): detachable CMS_USER_ROLE
|
||||
do
|
||||
fixme ("Not Implemented!!!")
|
||||
to_implement (generator + ".user_role_by_id")
|
||||
end
|
||||
|
||||
user_roles: LIST [CMS_USER_ROLE]
|
||||
do
|
||||
fixme ("Not Implemented!!!")
|
||||
to_implement (generator + ".user_roles")
|
||||
create {ARRAYED_LIST[CMS_USER_ROLE]} Result.make (0)
|
||||
end
|
||||
|
||||
@@ -116,7 +116,7 @@ feature -- Change: roles and permissions
|
||||
|
||||
save_user_role (a_user_role: CMS_USER_ROLE)
|
||||
do
|
||||
fixme ("Not Implemented!!!")
|
||||
to_implement (generator + ".save_user_role")
|
||||
end
|
||||
|
||||
feature -- Change: user
|
||||
@@ -133,6 +133,9 @@ feature -- Change: user
|
||||
user_provider.new_user (a_user.name, l_password, l_email)
|
||||
connection.commit
|
||||
else
|
||||
debug ("refactor_fixme")
|
||||
fixme ("maybe we should not always carry password, in this case, to implement the else part..")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user