[ class tree: plugins ] [ index: plugins ] [ all elements ]

Procedural File: class-textobject.php

Source Location: /zp-extensions/class-textobject.php

Page Details

Plugin handler for "text" files Text can be displayed in place of an image in themes

This is not necessarily a useful "image" type. All you get is a block of text in place of an image. The contents of the text file will be displayed. I guess you could stick HTML encoding into the file and get some interesting results.

What this plugin really is for is to serve as a model of how a plugin can be made to handle file types that zenphoto does not handle natively.

Some key points to note:

  1. The naming convention for these plugins is class-«handler class».php. This is important because zenphoto
keys on the string "class-" to know to load these plugins with the other zenphoto classes. 2. These objects are extension to the zenphoto "Image" class. This means they have all the properties of an image plus whatever you add. Of course you will need to override some of the image class functions to implement the functionality of your new class. 3. There is one VERY IMPORTANT method that you must provide which is not part of the "Image" base class. That getBody() method. This method is called by template-functions.php in place of where it would normally put a URL to the image to show. This method must do everything needed to cause your image object to be viewable by the browser.

So, briefly, the first four lines of code below are the standard plugin interface to Admin. There is one small wrinkle you might notice--the code for 'plugin_description' includes a test which sets the variable $disable. As you might expect, there were some changes needed to zenphoto in order to get this concept to work. $disable is set to true if the revision of zenphoto that is attempting to load this plugin is lower than the one where the implementation first appeared. The interface variable 'plugin_disable' is set to this value telling Admin not to allow enabling of the plugin if the release level is too low.

The line that follows insures that the plugin will not load when it should be disabled--just in case.

Then there is a call on addPlginType(«file extension», «Object Name»); This function registers the plugin as the handler for files with the specified extension. If the plugin can handle more than one file extension, make a call to the registration function for each extension that it handles.

The rest is the object class for handling these files.

The code of the object instantiation function is mostly required. Plugin "images" follow the lead of videos in that if there is a real image file with the same name save the suffix, it will be considered the thumb image of the object. This image is fetched by the call on checkObjectsThumb(). There is also code in the getThumb() method to deal with this property.

Since text files have no natural height and width, we set them based on the image size option. This happens after the call PersistentObject(). The rest of the code there sets up the default title.

getThumb() is responsible for generating the thumbnail image for the object. As above, if there is a similar named real image, it will be used. Otherwise [for this object implementation] we will use a thumbnail image provided with the plugin. The particular form of the file name used when there is no thumb stand-in image allows zenphoto to choose an image in the plugin folder.

Author:  Stephen Billard (sbillard)
Classes
Class Description
TextObject_Options Option class for textobjects objects
TextObject handles 'picture' images

Documentation generated on Mon, 09 Aug 2010 17:23:50 +0200 by phpDocumentor 1.4.1