1 Fixing and Extending ComicPress
John Bintz edited this page 2023-07-22 21:08:44 +00:00

h2. Where to do work on ComicPress

Unless you already have the code written, don't do development on your live site! Install a test/local copy of WordPress and work on that. This is also the best approach to use when doing work on a new theme for your site ("Theme Tester":http://wordpress.org/extend/plugins/theme-tester/ or some equivalent is the next best).

Also, in your local PHP installation, get "XDebug":http://www.xdebug.org/ working. Its error messages are much more useful than the standard PHP ones, and "var_dump":http://us.php.net/manual/en/function.var-dump.php output looks nicer with it, too.

h2. functions.php

If you're not using the default ComicPress theme (say, you're using 3 column or GN), and you haven't customized your functions.php file, a new version of functions.php can (theoretically) be dropped into the target directory without affecting functionality.

h2. Fixing Problems in ComicPress (in the base theme or your own theme)

Fixing problems in ComicPress and WordPress gives you a good opportunity to learn "PHP":http://www.php.net/. If you've never done any development work before, it can be scary. There are people on the "forums":http://comicpress.org/forum/ that have good PHP skills. Ask there, please.

h2. Producing a patch

If you're using git, "git-format-patch":http://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html will do the trick. Bundle up the patch and send it to me.

If you're not using git, send along the modified theme files and I'll do my best to integrate your changes into the theme. Please be specific about what changed in your mail to me.

h2. Documenting your work

We use "PhpDocumentor":http://www.phpdoc.org/ and "PHPXref":http://phpxref.sourceforge.net/ to automatically generate documentation for the source code. If you're creating new functions or variables, use "JavaDoc-style":http://java.sun.com/j2se/javadoc/writingdoccomments/ comments in your code.

Also, please don't do this:

// this function does blah
function my_new_function($param) {
  // initialize blah
  $param2 = magic($param);
  // check the new param to see if it's a number
  if (is_numeric($param2)) {
    // make a new number
    $param3 = more_magic($param2);
    // print out the number
    echo $param3;
  // done
  }
// done
}

Instead, do this:

/**
 * Print out a magic number.
 * @param string $initial_string The string we're passing in.
 */
function print_magic_number($initial_string) {
  if (is_numeric($number_version = magic($initial_string))) {
    echo more_magic($param3);
  }
}