If you have recently purchased HMH Common Cartridge text books, you may have found that they are extremely large and import into Canvas as one GIANT module that is extremely time consuming to break apart. We have discovered a (completely unsupported and unofficial hacked) way to break apart the cartridges into unit-based modules without having to check 9,000 boxes. It works great, but because it is unsupported, trying it is at your own risk.
Some things to know first.
- You must do the steps below on a Windows-based PC. It won't work on a Mac, because the Mac adds junk hidden files to the zip file that cause the cartridge to not be recognized. There might be a work-around for getting zip files without extra junk on the Mac, but I don't know it, so we just used Windows instead.
- These steps will break the packages from one big module into several unit-based modules. This is better but, still giant. You probably still won't be able to pull all the content of some texts into one course. We found smaller texts like the K-5 Science Fusion could all live in one course, but bigger ones like K-5 ELA Journeys needed one course per unit. The good news is once you do the steps to break apart the cartridges into units, it is very easy to import them into different courses as you want.
- This is not a method that is supported by HMH, so don't call them if you can't get it working. This is a total hack. We have found it to work with all of the cartridges we tried it with, but I can't guarantee that it will work with all of yours.
- You need to use a text editor to do the steps below. Don't use Word or any other productivity suite word processor to edit the files, as they will add extra junk that you don't want.
So, in the cartridge file, everything is cataloged in the “imsmanifest.xml” file. Cartridges are basically just *.zip files, nothing more. For large books like Journeys (K-5 ELA), once you unpack the file, the manifest can be upwards of 30mb, which is really big for a text editor to manage. So the steps described below can take several minutes to run on the large files.
We use Notepad++ on Windows, but any text editor will technically work. Notepad++ is very XML-friendly. Hopefully you are reasonably comfortable with xml or even html. The important concept is to understand the relationship between the opening and closing element tags (like <b> and then </b> for bold in html). All we are doing is removing the top folder from the cartridge structure. If you carve out the wrong tags, then it will create an error. Not a big deal, but when it takes so long to wait for the text editor to catch up, it can get annoying. Worst case is to just delete and unpack a fresh copy from the files.
To get rolling:
- Make a copy of one of the cartridges from HMH.
- Change the “.imscc” extension on the copied file to “.zip”.
- Then extract the zip to a folder somewhere convenient.
- Within that folder is the “imsmanifest.xml” file. That is the only thing you need to edit, so just open that file in the text editor of choice. (I would suggest starting with your smallest package first. For examples Journeys is HUGE, so don't start with that until you have the process down, if possible).
- Next, make the edits described below. You are basically removing the green lines and resaving the file:
Understanding the file structure is pretty easy if you feel good about markup languages like html or (more importantly) xml. Here is a snippet from beginning of our off-the-shelf Science Fusion Grade 1 package:
<organization identifier="TOC1" structure="rooted-hierarchy">
<item identifier="ScienceFusionFL2012Grade1"><title>Science Fusion FL 2012 Grade 1</title>
<item identifier="ScienceFusionFL2012Grade1_C0"><title>Grade-Level Resources</title>
“<item>” is essentially the tag telling a system that this is an object. “<title>” does what you expect it to, name the object. The nesting of these things gives the cartridge contents the expected structure in the LMS.
The first <item> in blue is the “root” or base container for the whole cartridge. We can’t get rid of that, even though it may work in Canvas it still needs to be there. The next <item> in green is basically a folder that just makes it clear what course this content comes from. The related GREEN line in your file is the one to remove. It of course won't be green in your file, but you can find it b/c it is the second <item> after the <organization> tag. The last <item> in yellow is the first folder that we would want to show up as a module in Canvas. There are a bunch more after that.
Here is the snippet from the end of the structure section of the same manifest file:
I’ve marked the corresponding </item> closing tags that will match. It’s easy to find by using the </organization> closing tag. To properly remove the top level folder, you need to remove both the opening and closing item tags. If you only remove the top one, it breaks the file. Same for the bottom. Together, they will give you the same result we had.
6. After you make the edits, save the file.
7. Then you want to create a new *.zip file that contains your updated imsmanifest.xml and the “res” folder inside (and nothing else).
8. Change it to a *.imscc file and run the import into Canvas. If you get an unsupported file or more than 1 error, something went wrong, and you should try the steps above again.
9. The import may create an extra LTI tool in the course settings. If this happens, just delete the extra.
10. This will give you a working package with Unit separated into modules.
11. You can be done here, or if you want to break them apart further like we did, once you get them into Canvas as the whole package, then you have to use the Canvas import tool to break them into smaller unit based courses by picking the module you want during import using select content. Our ELA cartridges are so ginormous that we could only fit one unit (about 900ish items) per course before it broke modules. With Math we did 2 units per course. You may get errors on import during this last break apart process, but they still work when you test them.
Good luck! I hope this helps!!