Skip to content

Learning objects management

Yannick Warnier edited this page Dec 21, 2018 · 3 revisions

In Chamilo 1.11.x and previous versions, Chamilo used to manage ownership, visibility and logs in a table called c_item_property.

Apart from this being very inefficient for high numbers of records, this was causing a series of issues in terms of flexibility, so we decided to change this in Chamilo 2.0 and beyond.

What was once c_item_property is now divided between these tables:

  • resource_file: linking table to media_media to avoid updating it because it is defined by Sonata
  • resource_file_audit: logs table for resource_file
  • resource_link: linking table between resource_node and the object to which it is related (course, session, user, etc)
  • resource_link_audit: logs table for resource_link
  • resource_node: contains the main definition of the resource
  • resource_node_audit: logs table for resource_file
  • resource_right: contains the permissions for users to access the node depending on the context
  • resource_right_audit: logs table for resource_right
  • resource_type: similar to a list of MIME types
  • resource_type_audit: logs table for resource_type
  • media_media: table for SonataMedia entity. Contains all files properties.

The current process of creation, that exists in main/document/create_document.php DocumentManager::addDocument(), follows this process sequence: c_document -> node -> file -> media_media -> links

Clone this wiki locally