It’s often the case in development you’ll find yourself embedding brand new code with the old. The simplest of commands can go a long way to making the content exchange easier. The code window.opener.document.getElementById, is a great way to pass information between webpages (the old and the new) that need to coexist. The scenario could be passing data between a parent window and child or using hidden popups. Here is a PHP example to update checkboxes on a parent window (or launching page) echoing javascript code.

//Initialize an array of checkboxes
$array_checkbox = array("chk_name1", "chk_name2", "chk_name3", "chk_name4");
$i = 0;
    $chkname = $array_checkbox[$i];
    echo "<script type=\"text/javascript\">";
    echo "window.opener.document.getElementById('$chkname').checked=true; </script>";

Wasn’t that quick and easy! You’ll notice that you could just as easily replace the checkbox names with div’s, radio buttons or anything that needed to have its value/property modified. This opens a world of possibilities for you doesn’t it?

Before starting up new projects we make it a custom to take our lessons learned and improve. We are at that point right now and I find myself wanting something to streamline our database architecting and development process. Most of the LAMP design we’ve done in the past has only utilized a handful of tables with minimal relationships. But I’m projecting that our future work will require databases that have more normalized tables with more relationships.

I just realized that through MySQL Workbench we can streamline our process. We typically go through Entity Relationship/Data Design modeling with our clients and this tool can save a few steps. We can go from those diagrams right to the database (live database forward engineering only available in the Enterprise Edition of Workbench). The folks at MySQL have blogged about the screen designs for Workbench that they are developing for Mac OS X. I’m really looking forward to it since I don’t like having to open up Parallels and use Windows for just one tool. It’s certainly worth using the Windows build in the meantime. I’m looking forward to the Alpha release coming in September.

Usually I start these types of blogs with a decent disertation of what the problem was and then give the solution. Let’s flip that this time around since I’m in a quick blog mood.

Answer: ActiveCollab

Problem: Keep Reading.

When our clients and projects started to pile up we realized very quickly that we needed to get ourselves something that can give our clients exposure to our progress and help us manage our project. In my history of consulting that was done with multiple spreadsheets and project management software. Not wanting to go down that same path I started looking for SOMETHING that could be the best of all our wants and needs. Here was the raw list of wants and needs.


  • Project portal that will allow our clients to see status reports
  • Tool that will allow us to collaborate with our clients without email chains, phone tag and IM convos
  • Location where files can be stored and information shared like a wiki but easy for a non-technical client to use
  • Web-Based and pleasing to the eyes
  • It needed to have strong User Access Control
  • Ticketing System is a must

Here are all the wants:

  • It would be great if it could be hosted on our own server
  • Wouldn’t it be great to customize it to look exactly the way you want?
  • Client portal feel without all that content management work

The solution as was previously stated is ActiveCollab. There were quite a few decent alternatives but AC really met all the requirements and then some. We have been able to customize it exactly the way we wanted and it works great. We are totally a LAMP stack shop and it was great being able to throw the code onto our sever and get it working and customized within a few short hours. Most importantly we have something that meets ALL of our needs and wants.

For more information check out: