J-AMFPHP v 0.3.2

AMFPHP is a library to expose object-oriented PHP methods and functions to Flash through a binary data stream similar to XML-RPC.

J-AMFPHP adds this functionality to Joomla and exposes the Joomla API to Flash developers.


So, the J-AMFPHP project is rolling along. After I started digging into it, I've run into a couple of things that will mean changes to the roadmap.


First of all, AMFPHP 1.9b2 is available. Its code structure and framework makes it much more suitable to incorporation in a project like Joomla. So, I decided to switch gears a bit and work towards 1.9b2 instead of 1.2.


Second, I've been in touch with one of the core developers of Joomla regarding how the XML-RPC plugin works. After discussing with him how it's integrated, I've found that it works in a manner that is very similar to how AMFPHP 1.9b2 works. That makes another reason to go for 1.9b2, as I should be able to model substantial parts of the code off the Joomla XML-RPC plugin.


So, in terms of roadmap changes:


Initially, I planned to have AMFPHP services be database hosted, and I figured I'd have to write a plugin framework to access them. That's no longer the case. Now they will be installed as plugins, just like the XML-RPC services are.
For a short time, I considered maintaining simultaneous releases for AMFPHP 1.2 and 1.9b2. This is no longer the case.
There are some bugs in the Joomla 1.5 install system that you realy don't want me to detail. I'm figuring out workarounds which have delayed core development. One of these workaround means the AMFPHP Service Lister service will not be included in the component install package. It will be installed seperately. This may also mean that the AMFPHP browser will be installed as a seperate component as well. We'll see.
For full details of roadmap changes, take a look at the project page on joomlacode

J-AMFPHP v 0.1

J-AMFPHP is a component for Joomla! 1.5 to add AMFPHP as a library. It is no longer available for download. Please use version 0.3.2


So I took the plunge and setup my first open-source code project.


Here's the idea:

Joomla! is a great Content Management Syste, it's the one that powers this site, as well as most of the sites I have developed. One of the sites I have developed with Joomla had a Flash interface in addition to the usual HTML interface. Developing that Flash interface was really a pain and a very one-off custom solution.


As part of the bridge between Flash and Joomla!, I used AMFPHP. Flash has hooks for a binary data transmission stream called Flash Remoting. It is normally only used between Flash and Cold Fusion servers (another Adobe product). It also is pretty much the only way of allowing Flash to interact directly with a server. AMFPHP is a beautiful solution that allows a developer to take advantage of Flash Remoting, but run it on top of PHP instead of relying on a Cold Fusion server.


So, as it stands today, the only way to integrate a Flash site with a Joomla backend is to use AMFPHP, and build all your own functions in PHP to allow Flash to call what it needs from Joomla.


What I am going to do, is develop a new project called J-AMFPHP. The goal of this project is to build a plugin for Joomla! that completely exposes the Joomla! API to Flash developers through the AMFPHP bridge. This way Flash/PHP developers don't have to keep reinventing every function between Flash and Joomla and instead focus on just the custom ones that they need.


J-AMFPHP project page on JoomlaCode 

SEO - The Quest For The Holy Google

I've implemented the next level of search engine optimization. Now instead of a long complext URL like,com_weblinks/catid,2/Itemid,6/


You will get a simpler URL like



It's much easier to remember, give to others, and is better for search engines.


I'm doing this using the Joomla plugin, ARTIOJoomSEF. I had intended to use OpenSEF, but that project appears to have been discontinued. There are some things about ARTIO's offering that I'm not entirely satisfied with, but until I find a better solution, it will have to do

Scrollwheel functionality

I've added functionality to the custom scrollbar feature so that it accepts input from a scrollwheel mouse. Give it a whirl!


Click and drag panning using the middle mousebutton is not supported. Also, IE seems to ignore some of my CSS settings (even though it fully supports them) which means that the margin for this textbox is wrong on IE (something I'll have to look into). But the scrolling deffinitely works. 

Web Links and SEO

I've turned on another feature on this site. A list of links to various outside resources and websites that I frequent regularily. You can get to them from the "links" item on the menu. I also turned on "Search Engine Optimization" (SEO) in Joomla! which makes the addresses of any given page a bit more legible:


Previously a URL might look like:


Now would look like:,com_weblinks/catid,2/Itemid,6/


While to the visitor, it may seem no more comprehensible, it actually is much simpler for search engines to parse, meaning that its more likely that search engines will be able to navigate and index the pages. It also lays the groundwork to be able to later switch out for even easier to understand urls. For example, with some code modification and additional components installed, I could have the URL look like this:


While I'm not quite to this level of SEO yet, this example should show how much more optimized and user-friendly the result will be. 

New Script Listing

I just finished moving over one of my other 3DSMax scripts to the download system. This script replaces the default Light Lister tool in 3DStudio Max to add support for VRay light types. This script also had over a thousand downloads while it was listed on ScriptSpot.

NetRender Low Priority

When network rendering - 3DSMax defaults to 'normal' priority unless you set it otherwise. This script tells max to run in low priority (so that the system doesn't completely lockup) but ONLY when network rendering. If Max is launched normally by a user - it wont be affected.

VRay Light Lister 1.4

This script replaces the built-in light lister with one that incorporates support for VRay Lights and VRay Suns.