197 lines
4.3 KiB
Plaintext
197 lines
4.3 KiB
Plaintext
note
|
|
description: "[
|
|
CMS abstraction for CMS content entity, named "node".
|
|
]"
|
|
status: "draft"
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
class
|
|
CMS_NODE
|
|
|
|
inherit
|
|
|
|
REFACTORING_HELPER
|
|
|
|
create
|
|
make
|
|
|
|
feature{NONE} -- Initialization
|
|
|
|
make (a_content: READABLE_STRING_32; a_summary: READABLE_STRING_32; a_title: READABLE_STRING_32)
|
|
-- Create current node with `a_content', `a_summary' and `a_title'.
|
|
local
|
|
l_time: DATE_TIME
|
|
do
|
|
create l_time.make_now_utc
|
|
set_content (a_content)
|
|
set_summary (a_summary)
|
|
set_title (a_title)
|
|
set_creation_date (l_time)
|
|
set_modification_date (l_time)
|
|
set_publication_date (l_time)
|
|
|
|
debug ("refactor_fixme")
|
|
fixme ("Remove default harcoded format")
|
|
end
|
|
set_format ("HTML")
|
|
|
|
debug ("refactor_fixme")
|
|
fixme ("Remove default harcoded content type")
|
|
end
|
|
set_content_type ("Page")
|
|
ensure
|
|
content_set: content = a_content
|
|
summary_set: summary = a_summary
|
|
title_set: title = a_title
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
id: INTEGER_64 assign set_id
|
|
-- Unique id.
|
|
|
|
content: READABLE_STRING_32
|
|
-- Content of the node.
|
|
|
|
summary: READABLE_STRING_32
|
|
-- A short summary of the node.
|
|
|
|
title: READABLE_STRING_32
|
|
-- Full title of the node.
|
|
|
|
modification_date: DATE_TIME
|
|
-- When the node was updated.
|
|
|
|
creation_date: DATE_TIME
|
|
-- When the node was created.
|
|
|
|
publication_date: DATE_TIME
|
|
-- When the node was published.
|
|
|
|
publication_date_output: READABLE_STRING_32
|
|
-- Formatted output.
|
|
|
|
format: READABLE_STRING_32
|
|
-- Format associated with `body'.
|
|
-- For example: text, mediawiki, html, etc
|
|
|
|
content_type: READABLE_STRING_32
|
|
-- Associated content type name.
|
|
-- Page, Article, Blog, News, etc.
|
|
|
|
author: detachable CMS_USER
|
|
-- Author of current node.
|
|
|
|
-- collaborators: detachable LIST[CMS_USER]
|
|
-- -- Users contributed to current Node.
|
|
|
|
feature -- status report
|
|
|
|
has_id: BOOLEAN
|
|
-- Has unique identifier?
|
|
do
|
|
Result := id > 0
|
|
end
|
|
|
|
feature -- Element change
|
|
|
|
set_content (a_content: like content)
|
|
-- Assign `content' with `a_content'.
|
|
do
|
|
content := a_content
|
|
ensure
|
|
content_assigned: content = a_content
|
|
end
|
|
|
|
set_summary (a_summary: like summary)
|
|
-- Assign `summary' with `a_summary'.
|
|
do
|
|
summary := a_summary
|
|
ensure
|
|
summary_assigned: summary = a_summary
|
|
end
|
|
|
|
set_title (a_title: like title)
|
|
-- Assign `title' with `a_title'.
|
|
do
|
|
title := a_title
|
|
ensure
|
|
title_assigned: title = a_title
|
|
end
|
|
|
|
set_modification_date (a_modification_date: like modification_date)
|
|
-- Assign `modification_date' with `a_modification_date'.
|
|
do
|
|
modification_date := a_modification_date
|
|
ensure
|
|
modification_date_assigned: modification_date = a_modification_date
|
|
end
|
|
|
|
set_creation_date (a_creation_date: like creation_date)
|
|
-- Assign `creation_date' with `a_creation_date'.
|
|
do
|
|
creation_date := a_creation_date
|
|
ensure
|
|
creation_date_assigned: creation_date = a_creation_date
|
|
end
|
|
|
|
set_publication_date (a_publication_date: like publication_date)
|
|
-- Assign `publication_date' with `a_publication_date'.
|
|
do
|
|
publication_date := a_publication_date
|
|
publication_date_output := publication_date.formatted_out ("yyyy/[0]mm/[0]dd")
|
|
ensure
|
|
publication_date_assigned: publication_date = a_publication_date
|
|
end
|
|
|
|
set_content_type (a_content_type: like content_type)
|
|
-- Assign `content_type' with `a_content_type'.
|
|
do
|
|
content_type := a_content_type
|
|
ensure
|
|
content_type_assigned: content_type = a_content_type
|
|
end
|
|
|
|
set_format (a_format: like format)
|
|
-- Assign `format' with `a_format'.
|
|
do
|
|
format := a_format
|
|
ensure
|
|
format_assigned: format = a_format
|
|
end
|
|
|
|
set_id (an_id: like id)
|
|
-- Assign `id' with `an_id'.
|
|
do
|
|
id := an_id
|
|
ensure
|
|
id_assigned: id = an_id
|
|
end
|
|
|
|
set_author (u: like author)
|
|
-- Assign 'author' with `u'
|
|
do
|
|
author := u
|
|
ensure
|
|
auther_set: author = u
|
|
end
|
|
|
|
-- add_collaborator (a_user: CMS_USER)
|
|
-- -- Add collaborator `a_user' to the collaborators list.
|
|
-- local
|
|
-- lst: like collaborators
|
|
-- do
|
|
-- lst := collaborators
|
|
-- if lst = Void then
|
|
-- create {ARRAYED_SET [CMS_USER]} lst.make (1)
|
|
-- collaborators := lst
|
|
-- end
|
|
-- lst.force (a_user)
|
|
-- end
|
|
|
|
note
|
|
copyright: "2011-2014, Javier Velilla, Jocelyn Fiat, Eiffel Software and others"
|
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
|
end
|