Skip to content
Hossein Azizabadi edited this page Jul 19, 2013 · 7 revisions

Voltan suggestion

I use some of added options by linzongshu too

Requirement

  • Article

    • Operation
      • Create draft
        • Title/Sub title
        • Setting category
          • Multi category
        • Setting channel
          • Multi channel
        • Published at fix time
        • Setting SEO
        • Setting tags
        • Inserting photos
        • Featured image ?
        • Support Attach extra files
          • Video files : play on player under article
          • Audio files : play on player under article
          • Image files : Show as gallery under article
          • Others : download
        • Support extra fields
        • Add Tag
        • Select related articles
      • Save draft
      • Pending
      • Publish
      • Preview
    • Management
      • Searching
      • Edit article
      • Delete article
      • Active/Deactivate article
  • Category

    • Operation
      • Add category
        • Set permissions
          • Read
          • Write
          • Comment
          • vote
        • Set view options
          • Select list of articles template
            • News type
            • List type
            • Table type
            • Media type
            • Spotlight type
          • Select fields
            • Show date
            • Show hits
            • Show author
            • Show topic
            • Show topic informations
            • And more
        • Set list of articles type * List of all article from topic and all sub category * List of all articles from just main category * List of all articles from just sub category
        • Set sub category
        • Set title / information / image
    • Management
      • Edit category
      • Delete category
      • Searching
  • Spotlight

    • Operation
      • Add category
        • Select article
        • Select category (Show article to this category)
        • Set publish time
        • Set expire time
        • Set status
    • Management
      • Edit Spotlight
      • Delete Spotlight
      • Searching
  • Extra field

    • Operation
      • Add Extra field
        • Set title
        • Set image / logo
        • Set type ('text'| | |'link'| | |'currency'| | |'date'| | |'number'| | | ?)
        • Set searchable or not
    • Management
      • Edit Extra field
      • Delete Extra field
      • Change order
  • Attach

    • Operation
      • Add Attach ( Unser article or Attachment page)
    • Management
      • Edit Attach
      • Delete Attach
  • Homepage

Database design

  • link

** Description ** For join each article to some category ( multicategory system ), This is most important table on article module and all querys make on this table. for get any list of article by date / hit / vote and ... , we shuld use this table for get article list , after that get full actilce inforamtion from article table

name type property default value description
id int (10) unsigned NOT NULL auto_increment
story int(10) unsigned NOT NULL
topic int(10) unsigned NOT NULL
publish int(10) unsigned NOT NULL
status tinyint(1) unsigned NOT NULL
author int(10) unsigned NOT NULL
  • article
name type property default value description
id int(10) unsigned NOT NULL auto_increment
title varchar(255) NOT NULL
subtitle varchar(255) NOT NULL
category varchar(255) NOT NULL Save as json for just use on article page
short text
body text
markup ENUM('html','text','markdown') html
seo_title varchar(255) NOT NULL
seo_keywords varchar(255) NOT NULL
seo_description varchar(255) NOT NULL
slug varchar(255) NOT NULL
important tinyint(1) unsigned NOT NULL Or recommended
status tinyint(1) unsigned NOT NULL
time_create int(10) unsigned NOT NULL
time_update int(10) unsigned NOT NULL
time_publish int(10) unsigned NOT NULL
author int(10) unsigned NOT NULL
hits int(10) unsigned NOT NULL
image varchar(255) NOT NULL
image_path varchar(16) NOT NULL Make page by year/month
comments int(10) unsigned NOT NULL Get information form comment module
point int(10) NOT NULL Get information form vote module ( dont set unsigned )
count int(10) unsigned NOT NULL Get information form vote module
favorite int(10) unsigned NOT NULL Get information form favorite module
attach tinyint(3) unsigned NOT NULL Count of attached files if > 0 get list
extra tinyint(3) unsigned NOT NULL Count of extra fields if > 0 get list
related_type tinyint(3) UNSIGNED NOT NULL DEFAULT 0
pages tinyint(3) UNSIGNED NOT NULL DEFAULT 0
  • draft
name type property default value description
id int(10) unsigned NOT NULL auto_increment
article int(10) UNSIGNED NOT NULL
title varchar(255) NOT NULL
subtitle varchar(255) NOT NULL
category varchar(255) NOT NULL Save as json for just use on article page
short text
body text
markup ENUM('html','text','markdown') html
image varchar(255) NOT NULL
image_path varchar(16) NOT NULL Make page by year/month
author int(10) unsigned NOT NULL
pages tinyint(3) UNSIGNED NOT NULL DEFAULT 0
category varchar(255) NOT NULL Save as json for just use on article page
tag varchar(255) NOT NULL
related_type tinyint(3) UNSIGNED NOT NULL DEFAULT 0
seo_title varchar(255) NOT NULL
seo_keywords varchar(255) NOT NULL
seo_description varchar(255) NOT NULL
slug varchar(255) NOT NULL
time_create int(10) unsigned NOT NULL
time_update int(10) unsigned NOT NULL
time_publish int(10) unsigned NOT NULL
time_save int(10) unsigned NOT NULL
important tinyint(1) unsigned NOT NULL Or recommended
status tinyint(1) unsigned NOT NULL
  • category
name type property default value description
id int(10) unsigned NOT NULL auto_increment
left int(10) UNSIGNED NOT NULL
right int(10) UNSIGNED NOT NULL
depth int(10) UNSIGNED NOT NULL
title varchar(255) NOT NULL
slug varchar(255) NOT NULL
body text
markup ENUM('html','text','markdown') html
image varchar(255) NOT NULL
image_path varchar(16) NOT NULL
keywords varchar(255) NOT NULL
description varchar(255) NOT NULL
author int(10) unsigned NOT NULL
time_create int(10) unsigned NOT NULL
status tinyint(1) unsigned NOT NULL
inlist tinyint(1) unsigned NOT NULL default '1'
topic_type enum('module','topic') NOT NULL
topic_homepage enum('type1','type2','type3') NOT NULL
topic_style varchar(64) NOT NULL
perpage tinyint(3) unsigned NOT NULL
columns tinyint(3) unsigned NOT NULL
show_topic tinyint(1) unsigned NOT NULL default '1'
show_topicinfo tinyint(1) unsigned NOT NULL default '1'
show_author tinyint(1) unsigned NOT NULL default '1'
show_date tinyint(1) unsigned NOT NULL default '1'
show_pdf tinyint(1) unsigned NOT NULL default '1'
show_print tinyint(1) unsigned NOT NULL default '1'
show_mail tinyint(1) unsigned NOT NULL default '1'
show_nav tinyint(1) unsigned NOT NULL default '1'
show_hits tinyint(1) unsigned NOT NULL default '1'
show_coms tinyint(1) unsigned NOT NULL default '1'
  • spotlight
name type property default value description
id int(10) unsigned NOT NULL auto_increment
story int(10) unsigned NOT NULL
topic int(10) NOT NULL
author int(10) unsigned NOT NULL
publish int(10) unsigned NOT NULL
expire int(10) unsigned NOT NULL
status tinyint(1) unsigned NOT NULL default '1'
  • attach
name type property default value description
id int (10) unsigned NOT NULL auto_increment
title varchar (255) NOT NULL
file varchar (255) NOT NULL
path varchar(16) NOT NULL
story int(10) unsigned NOT NULL
create int(10) unsigned NOT NULL
size int(10) unsigned NOT NULL
type enum('archive','image','video','audio','pdf','doc','other') NOT NULL
status tinyint(1) unsigned NOT NULL
hits int(10) unsigned NOT NULL
  • extra field
name type property default value description
id int (10) unsigned NOT NULL auto_increment
title varchar (255) NOT NULL
image varchar (255) NOT NULL
type enum('text','link','currency','date','number') NOT NULL
order int(10) unsigned NOT NULL
status tinyint(1) unsigned NOT NULL default '1'
search tinyint(1) unsigned NOT NULL default '1'
  • extra field data
name type property default value description
id int (10) unsigned NOT NULL auto_increment
field int(10) unsigned NOT NULL
story int(10) unsigned NOT NULL
data varchar(255) NOT NULL
  • related
name type property default value description
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT
article int(10) UNSIGNED NOT NULL
related int(10) UNSIGNED NOT NULL
order tinyint(3) UNSIGNED NOT NULL
  • visit
name type property default value description
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT
article int(10) UNSIGNED NOT NULL
date int(10) UNSIGNED NOT NULL
count int(10) UNSIGNED NOT NULL
  • author
name type property default value description
id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT
name` varchar(64) NOT NULL
photo` varchar(255) NOT NULL
description` text NOT NULL
uid int(10) UNSIGNED NOT NULL
count int(10) UNSIGNED NOT NULL
  • statistics
name type property default value description
id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT
article int(10) UNSIGNED NOT NULL
visits int(10) UNSIGNED NOT NULL
vote varchar(255) NOT NULL

Controllers

  • User side

    • Index

      • Description : list of articles for index
      • class Structure
        • class IndexController extends ActionController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
          • Articlelist action
            • Check configs
            • Make settings
            • Get list of arctiles from link table
            • Get article information from article table
          • ArticlePaginator action
    • Category

      • Description : list of articles for each category
      • class Structure
        • class CategoryController extends IndexController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
          • ListCategory action
            • Get list of all categoryes
            • Set view
    • Tag

      • Description : list of articles for each tag ( get from tag module )
      • class Structure
        • class TagController extends IndexController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
          • ListTag action
            • Get list of all article module tags from tag module
            • Set view
    • Author

      • Description : list of articles for each author
      • class Structure
        • class AuthorController extends IndexController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
          • ListAuthor action
            • Get list of all Author
            • Set view
    • Favorite

      • Description : list of favorite articles by each user ( get from tag favorite )
      • class Structure
        • class FavoriteController extends IndexController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
    • Archive

      • Description : list of articles by selected date
      • class Structure
        • class ArchiveController extends IndexController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Set query informtion ( Make query by : IndexController::Articlelist )
            • Set paginator informtion ( Make query by : IndexController::ArticlePaginator )
            • Set Spotlight
            • Set view
          • ListDate action
            • Get list of years and months
            • Set view
    • Article

      • Description : show / print / submit article
      • class Structure
        • class ArticleController extends ActionController
        • Actions
          • index action
            • Check permition
            • Check configs
            • Check params
            • Get article
            • Get all attach files
            • Get all extra data
            • Get all related
            • Set view
          • print action
            • Check permition
            • Check configs
            • Check params
            • Make printable verion
            • Set view
          • submit action ( If needed )
            • Check permition
            • Check configs
            • Check params
            • Get submit form
            • Set view
  • Admin aide

APIs

  • Link Api

    • LinkSet : Set articles on link table
    • LinkGet : get list of articles by category id
  • Article Api

    • ArticleCategoryList : Get all category information of this article
    • ArticlePager : Get next and prev acticles
    • Articlepage : Make multy page article
    • ArticleRelatedList : Get related articles
  • Attach Api

    • AttachCount : Get count of attached files
    • AttachList : Get List of attached files
    • AttachAdd
    • AttachDelete
  • Extra Api

    • ExtraCount : Get count of extra fields
    • ExtraGet : Get list of extra fields for show in forms
    • ExtraSet : Save extra field datas to DB
    • ExtraForm : Get and Set extra field data valuse to form
    • ExtraArticle : Get all extra field data for selected article
  • Spotlight Api

    • SpotlightList : make Spotlight list for homepage and each category
  • Category Api

    • CategorySetting : Set page setting from topic or module config
      • Column : Set column class for Setting function
      • Template : Set template for Setting function
    • CategorySet : Set article categoryes to link table
    • CategoryGet : make list and information of categorys for load articles ides from link table
  • Author Api

    • AuthorAdd : Add article and update Author
    • AuthorDelete : Delete article and update Author
    • AuthorReset : Reset author information