class CC extends TsugiDOM

This class allows us to produce an IMS Common Cartridge Version 1.2

Usage to Create a ZIP file:

$zip = new ZipArchive();
if ($zip->open('cc.zip', ZipArchive::CREATE)!==TRUE) {
$cc_dom = new CC();
$cc_dom->set_title('Web Applications for Everybody');
$cc_dom->set_description('Awesome MOOC to learn PHP, MySQL, and JavaScript.');
$module = $cc_dom->add_module('Week 1');
$sub_module = $cc_dom->add_sub_module($module, 'Part 1');
$cc_dom->zip_add_url_to_module($zip, $sub_module, 'WA4E', 'https://www.wa4e.com');
$custom = array('exercise' => 'http_headers.php');
$cc_dom->zip_add_lti_to_module($zip, $sub_module, 'RRC',
    'https://www.wa4e.com/tools/autograder/index.php', $custom);
$zip->addFromString('imsmanifest.xml',$cc_dom->saveXML());
$zip->close();

Constants

CC_1_1_CP

WL_NS

BLTI_NS

TOPIC_NS

LTICM_NS

LTICP_NS

LOM_NS

LOMIMSCC_NS

metadata_xpath

item_xpath

resource_xpath

lom_general_xpath

Properties

$currentNamespace from TsugiDOM
$resource_count
$last_type
$last_file
$last_identifier
$last_identifierref

Methods

__construct()

No description

set_namespace($new)

No description

from TsugiDOM
replace_text($tag, $text)

No description

from TsugiDOM
replace_text_ns($ns, $tag, $text)

No description

from TsugiDOM
delete_tag($tag)

No description

from TsugiDOM
delete_tag_ns($ns, $tag)

No description

from TsugiDOM
delete_children($tag)

No description

from TsugiDOM
get_element($ns, $tag)

No description

from TsugiDOM
delete_children_ns($ns, $tag)

No description

from TsugiDOM
get_tag($tag, $key = null, $value = null)

No description

from TsugiDOM
get_tag_ns($ns, $tag, $key = null, $value = null)

No description

from TsugiDOM
add_child($entry, $tag, $text = null, $attr = null)

No description

from TsugiDOM
add_child_ns($ns, $entry, $tag, $text = null, $attr = null)

No description

from TsugiDOM
dump_dom_list($node_list)

No description

from TsugiDOM
dump_dom_node($tag)

No description

from TsugiDOM
dump_dom_levels($node, $level = 0)

No description

from TsugiDOM
set_title($title)

No description

set_description($desc)

No description

the
add_module($title)

Adds a module to the manifest

the
add_sub_module($module, $title)

Adds a sub module to a module

add_web_link($module, $title = null)

No description

add_topic($module, $title = null)

No description

The
add_lti_link($module, $title = null)

Add an LTI link resource item

add_resource_item($module, $title, $type, $identifier, $file)

Add a resource to the manifest.

zip_add_url_to_module($zip, $module, $title, $url)

No description

zip_add_lti_to_module($zip, $module, $title, $url, $custom = null, $extensions = null)

No description

zip_add_lti_outcome_to_module($zip, $module, $title, $url, $custom = null, $extensions = null)

No description

zip_add_topic_to_module($zip, $module, $title, $text)

No description

Details

at line 48
__construct()

in TsugiDOM at line 35
set_namespace($new)

Parameters

$new

in TsugiDOM at line 39
replace_text($tag, $text)

Parameters

$tag
$text

in TsugiDOM at line 43
replace_text_ns($ns, $tag, $text)

Parameters

$ns
$tag
$text

in TsugiDOM at line 54
delete_tag($tag)

Parameters

$tag

in TsugiDOM at line 58
delete_tag_ns($ns, $tag)

Parameters

$ns
$tag

in TsugiDOM at line 64
delete_children($tag)

Parameters

$tag

in TsugiDOM at line 68
get_element($ns, $tag)

Parameters

$ns
$tag

in TsugiDOM at line 82
delete_children_ns($ns, $tag)

Parameters

$ns
$tag

in TsugiDOM at line 90
get_tag($tag, $key = null, $value = null)

Parameters

$tag
$key
$value

in TsugiDOM at line 94
get_tag_ns($ns, $tag, $key = null, $value = null)

Parameters

$ns
$tag
$key
$value

in TsugiDOM at line 109
add_child($entry, $tag, $text = null, $attr = null)

Parameters

$entry
$tag
$text
$attr

in TsugiDOM at line 113
add_child_ns($ns, $entry, $tag, $text = null, $attr = null)

Parameters

$ns
$entry
$tag
$text
$attr

in TsugiDOM at line 129
dump_dom_list($node_list)

Parameters

$node_list

in TsugiDOM at line 138
dump_dom_node($tag)

Parameters

$tag

in TsugiDOM at line 143
dump_dom_levels($node, $level = 0)

Parameters

$node
$level

at line 105
set_title($title)

Parameters

$title

at line 120
set_description($desc)

Parameters

$desc

at line 134
the add_module($title)

Adds a module to the manifest

Parameters

$title The title of the module

Return Value

the DOMNode of the newly added module

at line 159
the add_sub_module($module, $title)

Adds a sub module to a module

As a note, while some LMS's are happpy with deeply nested sub-module trees, other LMS's prefre a strict two-layer module / submodule structure.

Parameters

$module
$title

Return Value

the DOMNode of the newly added sub module

Parameters

$module
$title

at line 203
add_topic($module, $title = null)

Parameters

$module
$title

Add an LTI link resource item

This adds an LTI link to the manifest, to complete this when making a zip file, you must generate and place the LTI XML in the returned file name within the ZIP. The zip_add_lti_to_module() combines these two steps.

Parameters

$module DOMNode The module or sub module where we are adding the lti link
$title The title of the LTI link

Return Value

The name of a file to contain the lti link XML in the ZIP.

at line 238
add_resource_item($module, $title, $type, $identifier, $file)

Add a resource to the manifest.

Parameters

$module
$title
$type
$identifier
$file

at line 267
zip_add_url_to_module($zip, $module, $title, $url)

Parameters

$zip
$module
$title
$url

at line 287
zip_add_lti_to_module($zip, $module, $title, $url, $custom = null, $extensions = null)

Parameters

$zip
$module
$title
$url
$custom
$extensions

at line 314
zip_add_lti_outcome_to_module($zip, $module, $title, $url, $custom = null, $extensions = null)

Parameters

$zip
$module
$title
$url
$custom
$extensions

at line 339
zip_add_topic_to_module($zip, $module, $title, $text)

Parameters

$zip
$module
$title
$text