** Thanks for using the PixoPoint menu plugin **

This file is intended for those who are looking to modify the core code for their own purposes or to find ways to hook into it to add or remove functionality. Development of this document is an on-going process and since it was only recently created there is very little content in it so far.




** File and folder structure **

"root"
	style.php - built in stylesheet for displaying the CSS to end users
	index.php - loads everything in the appropriate sequence
	developers.txt - duh! yer readin' it right now!
	license.txt - GPL license information
	readme.txt - standard WordPress requirement which is used by the WordPress.org repository

"admin" - Contains all PHP files for creating the admin page
	add_options.php - creates options, creates the menu etc.
	admin_page.php - contains the HTML for the admin page
	index.php - loads the various files for the admin panel
	menu_items.php - contains the HTML for the drag and drop menu items
	process-sortable.php - processes menu positions ... needs replaced by raw javascript
	admin.css - stylesheet for the admin page.

"library"  - Contains all the common files or legacy stuff
	common.php - loads everything common to both admin and core
	legacy.php - upgrades from Multi-level navigation plugin and older versions of PixoPoint Menu plugin
	"pixopoint-menu-animations" - legacy support for Superfish functionality - to make sure older users don't lose functionality

"images"  - Like the tin says, it contains the images!

"languages" - Contains the various language files (more languages welcome)

"core" - Contains all PHP files for creating the HTML for the menu itself, including adding the necessary javascripts, CSS, unordered lists and surrounding DIV tags.
	head.php - loads stuff between the <head> tags
	index.php - loads the various files for the front-end
	items.php - generates the HTML for the various menu items
	loadmenu.php - the bit that actually creates the menu itself - probably needs a bit of a recode by now, lots of legacy crud still left in there
	test.css - style sheet (useful for debugging purposes)

"scripts"  - Contains all of the javascript used by the various parts of the plugins




** Future Developments **

This is becoming a somewhat mature plugin now, having been around for well over a year and undergoing many upgrades and changes. One of the things that we have learned, is that it is not always a good idea to keep adding endless lists of options. This creates a support headache, as many users simply don't know (or can't be bothered putting any effort into figuring out) how to use the plugin and so keep pestering us with questions.

In a quest to reduce support questions, we are intending to slowly remove some of the functionality from the plugin and place them into external modules. To avoid annoying our existing userbase, there will be a warning message appear at the top of the admin panel requesting them to go download the plugin so that on their next upgrade, whatever functionality they are using does not break on them. We'll try to keep the old functionality working for those older users for a while, but all new downloaders won't be able to get access to it without first installing the older versions and then upgrading (or manually adding the appropriate option to the database). Hopefully by using this approach we can reduce the basic setup of the plugin, increase our profitabilty (some modules will be paid for - albeit made free for the older users of the plugin) and reduce the number of annoying support requests we receive. Plus it will make the core plugin a little leaner and meaner.

A specific major feature we are looking to include in the future is caching for the stylesheet as a static file. To set this up, we need to do a check to confirm that we are able to write to the disk, and if so, create the file. If it is not possible to create the file, then the system would revert back to the current style.php file which accesses the database by loading wp-load.php.

More information will be added to this file over time. In the mean time, feel free to post in our support forum (http://pixopoint.com/forum/) or if you are doing something really funky like releasing a new version of it or adding custom functionality then feel free to get in touch directly via email (http://pixopoint.com/contact/). I'm always keen to see new developments and am also keen to roll new features into the plugin where suitable.

If you would like to contribute to the project, then definitely please do get in touch! We have received help with development of the plugin in the past and can always do with a helping hand. We are particularly interested in anyone with previous WordPress plugin experience and who is keen to delve into trying to write something to handle adding individual pages into the drag and drop system. The best way to get in touch is via our contact form ... http://pixopoint.com/contact/.




** Known bugs or upcoming improvements **

The "Remove URL's" option has a bug
esc_attr() is not used to validate CSS as it strips out " characters. Need to find a better way to validate as only using stripcslashes() at the moment.
"IDs of URLs to exclude" option screws up HTML badly when incorrect ID's are used
All uses of "load-wp.php" should be replaced with direct calls to the site root
JS files need to be linked via a URL which updates when settings are changed, otherwise old settings may be kept cached
style.php should be loaded via WP directly, not using wp-load.php in an external file



Ryan Hellyer

PixoPoint web development
Center for Innovation
University of Otago
Dunedin,
New Zealand


