Implemented view node by content type (no more hardcoded cases).
Added CMS_NODE_TYPE as descendant of CMS_CONTENT_TYPE, in case we have content which is not a node in the future. (probably useless, but for now, this extra abstraction is harmful) Moved all node related code under node module cluster. Applied comments from Javier Velilla. Code cleaning.
This commit is contained in:
9
src/service/cms_api_access.e
Normal file
9
src/service/cms_api_access.e
Normal file
@@ -0,0 +1,9 @@
|
||||
note
|
||||
description: "Interface having access to restricted features relate to CMS APIs."
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
deferred class
|
||||
CMS_API_ACCESS
|
||||
|
||||
end
|
||||
122
src/service/cms_module.e
Normal file
122
src/service/cms_module.e
Normal file
@@ -0,0 +1,122 @@
|
||||
note
|
||||
description: "Describe module features that adds one or more features to your web site."
|
||||
date: "$Date: 2014-11-13 16:23:47 +0100 (jeu., 13 nov. 2014) $"
|
||||
revision: "$Revision: 96085 $"
|
||||
|
||||
deferred class
|
||||
CMS_MODULE
|
||||
|
||||
inherit
|
||||
REFACTORING_HELPER
|
||||
|
||||
feature -- Access
|
||||
|
||||
is_enabled: BOOLEAN
|
||||
-- Is the module enabled?
|
||||
|
||||
name: STRING
|
||||
-- Name of the module.
|
||||
|
||||
description: STRING
|
||||
-- Description of the module.
|
||||
|
||||
package: STRING
|
||||
--
|
||||
|
||||
version: STRING
|
||||
-- Version od the module?
|
||||
|
||||
feature {CMS_API} -- Module Initialization
|
||||
|
||||
initialize (api: CMS_API)
|
||||
-- Initialize Current module with `api'.
|
||||
require
|
||||
is_enabled: is_enabled
|
||||
do
|
||||
-- Redefine to process specific module initialization.
|
||||
end
|
||||
|
||||
feature {CMS_API} -- Access: API
|
||||
|
||||
module_api: detachable CMS_MODULE_API
|
||||
-- Eventual module api.
|
||||
|
||||
feature {CMS_API} -- Module management
|
||||
|
||||
is_installed (api: CMS_API): BOOLEAN
|
||||
-- Is Current module installed?
|
||||
do
|
||||
Result := is_enabled
|
||||
-- FIXME: implement proper installation status.
|
||||
end
|
||||
|
||||
install (api: CMS_API)
|
||||
require
|
||||
is_not_installed: not is_installed (api)
|
||||
do
|
||||
-- Not Yet Supported
|
||||
end
|
||||
|
||||
uninstall (api: CMS_API)
|
||||
require
|
||||
is_installed: is_installed (api)
|
||||
do
|
||||
-- Not Yet Supported
|
||||
end
|
||||
|
||||
feature -- Router
|
||||
|
||||
router (a_api: CMS_API): WSF_ROUTER
|
||||
-- Router configuration.
|
||||
require
|
||||
is_enabled: is_enabled
|
||||
deferred
|
||||
end
|
||||
|
||||
feature -- Hooks configuration
|
||||
|
||||
register_hooks (a_response: CMS_RESPONSE)
|
||||
-- Module hooks configuration.
|
||||
require
|
||||
is_enabled: is_enabled
|
||||
do
|
||||
end
|
||||
|
||||
feature -- Filter
|
||||
|
||||
filters (a_api: CMS_API): detachable LIST [WSF_FILTER]
|
||||
-- Optional list of filter for Current module.
|
||||
require
|
||||
is_enabled: is_enabled
|
||||
do
|
||||
end
|
||||
|
||||
feature -- Settings
|
||||
|
||||
enable
|
||||
-- enable the module.
|
||||
do
|
||||
is_enabled := True
|
||||
ensure
|
||||
module_enabled: is_enabled
|
||||
end
|
||||
|
||||
disable
|
||||
-- disable the module.
|
||||
do
|
||||
is_enabled := False
|
||||
ensure
|
||||
module_disbaled: not is_enabled
|
||||
end
|
||||
|
||||
feature -- Hooks
|
||||
|
||||
help_text (a_path: STRING): STRING
|
||||
do
|
||||
debug ("refactor_fixme")
|
||||
to_implement ("Add the corresponing implementation.")
|
||||
end
|
||||
create Result.make_empty
|
||||
end
|
||||
|
||||
end
|
||||
@@ -20,7 +20,7 @@ feature {NONE} -- Implementation
|
||||
do
|
||||
end
|
||||
|
||||
feature {CMS_MODULE, CMS_API} -- Restricted access
|
||||
feature {CMS_API_ACCESS, CMS_MODULE, CMS_API} -- Restricted access
|
||||
|
||||
cms_api: CMS_API
|
||||
|
||||
|
||||
81
src/service/cms_module_collection.e
Normal file
81
src/service/cms_module_collection.e
Normal file
@@ -0,0 +1,81 @@
|
||||
note
|
||||
description: "Summary description for {CMS_MODULE_COLLECTION}."
|
||||
author: ""
|
||||
date: "$Date: 2015-02-09 22:29:56 +0100 (lun., 09 févr. 2015) $"
|
||||
revision: "$Revision: 96596 $"
|
||||
|
||||
class
|
||||
CMS_MODULE_COLLECTION
|
||||
|
||||
inherit
|
||||
ITERABLE [CMS_MODULE]
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (nb: INTEGER)
|
||||
do
|
||||
create modules.make (nb)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
new_cursor: INDEXABLE_ITERATION_CURSOR [CMS_MODULE]
|
||||
-- <Precursor>
|
||||
do
|
||||
Result := modules.new_cursor
|
||||
end
|
||||
|
||||
feature -- Status report
|
||||
|
||||
has (a_module: CMS_MODULE): BOOLEAN
|
||||
-- Has `a_module'?
|
||||
do
|
||||
Result := modules.has (a_module)
|
||||
end
|
||||
|
||||
has_module_with_same_type (a_module: CMS_MODULE): BOOLEAN
|
||||
-- Has module of type `a_type' already inserted?
|
||||
local
|
||||
l_type: TYPE [detachable CMS_MODULE]
|
||||
do
|
||||
l_type := a_module.generating_type
|
||||
across
|
||||
modules as ic
|
||||
until
|
||||
Result
|
||||
loop
|
||||
Result := ic.item = a_module or else ic.item.generating_type = l_type
|
||||
end
|
||||
end
|
||||
|
||||
count: INTEGER
|
||||
-- Number of modules.
|
||||
do
|
||||
Result := modules.count
|
||||
end
|
||||
|
||||
feature -- Element change
|
||||
|
||||
extend (a_module: CMS_MODULE)
|
||||
-- Add module
|
||||
do
|
||||
if not has (a_module) then
|
||||
modules.force (a_module)
|
||||
end
|
||||
end
|
||||
|
||||
remove (a_module: CMS_MODULE)
|
||||
-- Remove module
|
||||
do
|
||||
modules.prune_all (a_module)
|
||||
end
|
||||
|
||||
feature {NONE} -- Implementation
|
||||
|
||||
modules: ARRAYED_LIST [CMS_MODULE]
|
||||
-- List of available modules.
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user