Classes to handle the export of ComicCMS data
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Leijou/ComicCMSExport
examples
.gitignore
LICENSE
README.md
build.php
composer.json

README.md

ComicCMS Exporter

Classes to handle the export of ComicCMS data without the need to dive in to its source code.

Requirements

  • PHP 5.2
  • A ComicCMS install to point to

Quickstart

Note: This is a non-namespaced, single-file version of the code in this repo. The only external difference between the two versions is the conversion from namespace: Classes are called ComicCMSExport_* instead of \Leijou\ComicCMSExport\*

Namespaced Requirements

If you're lucky enough to have PHP 5.3 on the target servers of your project you can instead choose to use the namespaced version:

The example contents script is also available for this namespaced version: contents_namespaced.php

Usage

A ComicCMS object must be constructed and passed to the other classes. Once created it can be re-used for all iterators.

$comiccms = new \Leijou\ComicCMSExport\ComicCMS('/absolute/path/to/comiccms');

$comics = new \Leijou\ComicCMSExport\ComicIterator($comiccms);
foreach ($comics as $comic) {
    // ...
}

##Item types available Click for available property and method documentation:

Each are constructed by its own Iterator: ComicIterator NewsIterator UserIterator UserGroupIterator

Additionaly there are two iterators for queued/draft items: QueuedComicIterator QueuedNewsIterator

Internals

On construction of an iterator the relevent storage file(s) are scanned and a list of IDs used (not deleted) are loaded. The full details can then be pulled one by one by looping over the iterator or using standard SeekableIterator methods.

Note: The seek method uses the offset of Item, not its ID. For such usage the method seekById is available.

Note: Generation of the the non-namespaced distributable version is done by build.php. It's just basic RegExp, not anything clever. So please be gentle & careful with it if you're aiming to edit and re-build this tool.