2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2010 */
6 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
14 * Accessforall General class.
15 * Based on the specification at:
16 * http://www.imsglobal.org/accessibility/index.html
23 var $cid = 0; //content id
24 var $resource_types = array(); //resource types hash mapping
25 var $relative_path = ''; //relative path to the file
29 $this->cid = intval($cid);
33 // Return resources type hash mapping.
34 function getResourcesType($type_id=0){
35 $type_id = intval($type_id);
37 //if this is the first time calling this function, grab the list from db
38 if (empty($resource_types)){
39 include_once(TR_INCLUDE_PATH.'classes/DAO/ResourceTypesDAO.class.php');
40 $resourceTypesDAO = new ResourceTypesDAO();
41 $rows = $resourceTypesDAO->getAll();
45 foreach ($rows as $row) $this->resource_types[$row['type_id']] = $row['type'];
49 if (!empty($this->resource_types[$type_id])){
50 return $this->resource_types[$type_id];
52 return $this->resource_types;
56 // Get primary resources
57 function getPrimaryResources(){
58 $pri_resources = array(); // cid=>[resource, language code]
60 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesDAO.class.php');
61 $primaryResourcesDAO = new PrimaryResourcesDAO();
62 $rows = $primaryResourcesDAO->getByContent($this->cid);
65 foreach ($rows as $row) {
66 $pri_resources[$row['primary_resource_id']]['resource'] = $row['resource'];
67 if ($row['language_code'] != ''){
68 $pri_resources[$row['primary_resource_id']]['language_code'] = $row['language_code'];
72 return $pri_resources;
75 //get primary resource by resource name
76 function getPrimaryResourceByName($resource_name){
77 if ($resource_name==''){
81 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesDAO.class.php');
82 $primaryResourcesDAO = new PrimaryResourcesDAO();
83 $pri_resources = $primaryResourcesDAO->getByResourceName($this->cid, $_SESSION['lang'], $resource_name);
84 return $pri_resources;
88 // Get primary resources types
89 function getPrimaryResourcesTypes($pri_resource_id=0){
90 $pri_resource_id = intval($pri_resource_id);
92 //quit if id not specified
93 if ($pri_resource_id == 0) {
97 $pri_resources_types = array(); // cid=>[type id]+
99 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesTypesDAO.class.php');
100 $primaryResourcesTypesDAO = new PrimaryResourcesTypesDAO();
101 $rows = $primaryResourcesTypesDAO->getByResourceID($pri_resource_id);
103 if (is_array($rows)){
104 foreach ($rows as $row) {
105 $pri_resources_types[$pri_resource_id][] = $row['type_id'];
108 return $pri_resources_types;
112 // Get secondary resources
113 function getSecondaryResources($pri_resource_id=0){
116 $pri_resource_id = intval($pri_resource_id);
118 //quit if id not specified
119 if ($pri_resource_id == 0) {
123 $sec_resources = array(); // cid=>[resource, language code]
124 include_once(TR_INCLUDE_PATH.'classes/DAO/SecondaryResourcesDAO.class.php');
125 $secondaryResourcesDAO = new SecondaryResourcesDAO();
126 $rows = $secondaryResourcesDAO->getByPrimaryResourceID($pri_resource_id);
128 if (is_array($rows)){
129 foreach ($rows as $row) {
130 $sec_resources[$row['secondary_resource_id']]['resource'] = $row['secondary_resource'];
131 if ($row['language_code'] != ''){
132 $sec_resources[$row['secondary_resource_id']]['language_code'] = $row['language_code'];
136 return $sec_resources;
140 // Get secondary resources types
141 function getSecondaryResourcesTypes($sec_resource_id=0){
142 $sec_resource_id = intval($sec_resource_id);
144 //quit if id not specified
145 if ($sec_resource_id == 0) {
149 $sec_resources_types = array(); // cid=>[type id]+
150 include_once(TR_INCLUDE_PATH.'classes/DAO/SecondaryResourcesTypesDAO.class.php');
151 $secondaryResourcesTypesDAO = new SecondaryResourcesTypesDAO();
152 $rows = $secondaryResourcesTypesDAO->getByResourceID($sec_resource_id);
154 if (is_array($rows)){
155 foreach ($rows as $row) {
156 $sec_resources_types[] = $row['type_id'];
159 return $sec_resources_types;
163 // Insert primary resources into the db
164 // @return primary resource id.
165 function setPrimaryResource($content_id, $file_name, $lang){
166 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesDAO.class.php');
167 $primaryResourcesDAO = new PrimaryResourcesDAO();
169 if ($primaryResourcesDAO->Create($content_id, $file_name, $lang)){
170 return mysql_insert_id();
175 // Insert primary resource type
176 function setPrimaryResourceType($primary_resource_id, $type_id){
177 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesTypesDAO.class.php');
178 $primaryResourcesTypesDAO = new PrimaryResourcesTypesDAO();
179 $primaryResourcesTypesDAO->Create($primary_resource_id, $type_id);
182 // Insert secondary resource
183 // @return secondary resource id
184 function setSecondaryResource($primary_resource_id, $file_name, $lang){
185 include_once(TR_INCLUDE_PATH.'classes/DAO/SecondaryResourcesDAO.class.php');
186 $secondaryResourcesDAO = new SecondaryResourcesDAO();
187 if ($secondaryResourcesDAO->Create($primary_resource_id, $file_name, $lang)){
188 return mysql_insert_id();
193 // Insert secondary resource
194 function setSecondaryResourceType($secondary_resource, $type_id){
195 include_once(TR_INCLUDE_PATH.'classes/DAO/SecondaryResourcesTypesDAO.class.php');
196 $secondaryResourcesTypesDAO = new SecondaryResourcesTypesDAO();
197 $secondaryResourcesTypesDAO->Create($secondary_resource, $type_id);
201 // Set the relative path to all files
202 function setRelativePath($path){
203 $this->relative_path = $path . '/';
208 * Delete this primary resource and all its associated secondary resources
209 * @param int primary resournce id
211 function deletePrimaryResource($primary_rid){
212 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesDAO.class.php');
213 $primaryResourcesDAO = new PrimaryResourcesDAO();
214 $primaryResourcesDAO->DeleteByResourceID($primary_rid);
217 // Delete all materials associated with this content
218 function deleteA4a(){
219 include_once(TR_INCLUDE_PATH.'classes/DAO/PrimaryResourcesDAO.class.php');
220 $primaryResourcesDAO = new PrimaryResourcesDAO();
221 $rows = $primaryResourcesDAO->Delete($this->cid);