Added recent_changes module.
Revisited hooks management, and added new CMS_HOOK_MANAGER. Added admin, and other link into navigation menu that goes into first sidebar. Fixed theme info, and template for sidebar ids.
This commit is contained in:
@@ -247,17 +247,26 @@ feature -- Access: Node
|
||||
debug ("refactor_fixme")
|
||||
fixme ("Check preconditions")
|
||||
end
|
||||
Result := full_node (node_storage.node_by_id (a_id))
|
||||
Result := safe_full_node (node_storage.node_by_id (a_id))
|
||||
end
|
||||
|
||||
revision_node (a_node_id: INTEGER_64; a_revision_id: INTEGER_64): detachable CMS_NODE
|
||||
do
|
||||
Result := full_node (node_storage.node_by_id_and_revision (a_node_id, a_revision_id))
|
||||
Result := safe_full_node (node_storage.node_by_id_and_revision (a_node_id, a_revision_id))
|
||||
end
|
||||
|
||||
full_node (a_node: detachable CMS_NODE): detachable CMS_NODE
|
||||
safe_full_node (a_node: detachable CMS_NODE): detachable CMS_NODE
|
||||
do
|
||||
if a_node /= Void then
|
||||
Result := full_node (a_node)
|
||||
end
|
||||
end
|
||||
|
||||
full_node (a_node: CMS_NODE): CMS_NODE
|
||||
-- If `a_node' is partial, return the full node from `a_node',
|
||||
-- otherwise return directly `a_node'.
|
||||
require
|
||||
a_node_set: a_node /= Void
|
||||
do
|
||||
if attached {CMS_PARTIAL_NODE} a_node as l_partial_node then
|
||||
if attached node_type_for (l_partial_node) as ct then
|
||||
|
||||
@@ -23,6 +23,8 @@ inherit
|
||||
|
||||
CMS_HOOK_BLOCK
|
||||
|
||||
CMS_RECENT_CHANGES_HOOK
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
@@ -222,9 +224,12 @@ feature -- Hooks
|
||||
register_hooks (a_response: CMS_RESPONSE)
|
||||
-- <Precursor>
|
||||
do
|
||||
a_response.subscribe_to_menu_system_alter_hook (Current)
|
||||
a_response.subscribe_to_block_hook (Current)
|
||||
a_response.subscribe_to_response_alter_hook (Current)
|
||||
a_response.hooks.subscribe_to_menu_system_alter_hook (Current)
|
||||
a_response.hooks.subscribe_to_block_hook (Current)
|
||||
a_response.hooks.subscribe_to_response_alter_hook (Current)
|
||||
|
||||
-- Module specific hook, if available.
|
||||
a_response.hooks.subscribe_to_hook (Current, {CMS_RECENT_CHANGES_HOOK})
|
||||
end
|
||||
|
||||
response_alter (a_response: CMS_RESPONSE)
|
||||
@@ -253,13 +258,52 @@ feature -- Hooks
|
||||
do
|
||||
debug
|
||||
create lnk.make ("List of nodes", "nodes")
|
||||
a_menu_system.primary_menu.extend (lnk)
|
||||
a_menu_system.navigation_menu.extend (lnk)
|
||||
end
|
||||
create lnk.make ("Trash", "trash")
|
||||
a_menu_system.primary_menu.extend (lnk)
|
||||
a_menu_system.navigation_menu.extend (lnk)
|
||||
|
||||
create lnk.make ("Create ..", "node")
|
||||
a_menu_system.primary_menu.extend (lnk)
|
||||
a_menu_system.navigation_menu.extend (lnk)
|
||||
end
|
||||
|
||||
populate_recent_changes (a_changes: CMS_RECENT_CHANGE_CONTAINER; a_sources: LIST [READABLE_STRING_8])
|
||||
local
|
||||
params: CMS_DATA_QUERY_PARAMETERS
|
||||
ch: CMS_RECENT_CHANGE_ITEM
|
||||
n: CMS_NODE
|
||||
l_info: STRING_8
|
||||
do
|
||||
create params.make (0, a_changes.limit)
|
||||
if attached node_api as l_node_api then
|
||||
across
|
||||
l_node_api.content_types as ic
|
||||
loop
|
||||
a_sources.force (ic.item.name)
|
||||
end
|
||||
across l_node_api.recent_nodes (params) as ic loop
|
||||
n := l_node_api.full_node (ic.item)
|
||||
create ch.make (n.content_type, create {CMS_LOCAL_LINK}.make (n.title, "node/" + n.id.out), n.modification_date)
|
||||
if n.creation_date ~ n.modification_date then
|
||||
l_info := "new"
|
||||
if not n.is_published then
|
||||
l_info.append (" (unpublished)")
|
||||
end
|
||||
else
|
||||
if n.is_trashed then
|
||||
l_info := "trashed"
|
||||
else
|
||||
l_info := "updated"
|
||||
if not n.is_published then
|
||||
l_info.append (" (unpublished)")
|
||||
end
|
||||
end
|
||||
end
|
||||
ch.set_information (l_info)
|
||||
ch.set_author (n.author)
|
||||
a_changes.force (ch)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -274,7 +274,6 @@ feature {NONE} -- Trash:Restore
|
||||
r: GENERIC_VIEW_CMS_RESPONSE
|
||||
b: STRING
|
||||
n: CMS_NODE
|
||||
l_link: CMS_LOCAL_LINK
|
||||
do
|
||||
if attached {WSF_STRING} req.path_parameter ("id") as l_id then
|
||||
if
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<library name="base" location="$ISE_LIBRARY\library\base\base-safe.ecf"/>
|
||||
<library name="cms" location="..\..\cms-safe.ecf"/>
|
||||
<library name="cms_model" location="..\..\library\model\cms_model-safe.ecf" readonly="false"/>
|
||||
<library name="cms_recent_changes_module" location="..\..\modules\recent_changes\recent_changes-safe.ecf" readonly="false"/>
|
||||
<library name="error" location="$ISE_LIBRARY\contrib\library\utility\general\error\error-safe.ecf"/>
|
||||
<library name="http" location="$ISE_LIBRARY\contrib\library\network\protocol\http\http-safe.ecf"/>
|
||||
<library name="http_authorization" location="$ISE_LIBRARY\contrib\library\web\authentication\http_authorization\http_authorization-safe.ecf" readonly="false"/>
|
||||
|
||||
Reference in New Issue
Block a user