Classic Google Maps
Most people will have noticed a recent update to Google Maps. The new functionality extends the map to the full width of the screen, removing the side panel where you would usually read directions, and there is an annoying animated stick man who tries to talk to you upon first load. This is reminiscent of a certain irritating paper clip from Word, which leaves you to wonder if Google are simply trying to create a new internet meme.
To cut to the chase, the new Google maps is processor-heavy and junk-laden. Google offer an option to permanently change to Classic Google Maps but I find that this doesn't work very well. To get around this I created a simple redirect extension that will always take you to the old version and give your processor a rest.
You can find it in the extension store.
Search and replace chrome extension
I've just created a search and replace extension for Google chrome that allows you to search input fields for text and replace them with a different text. I recently had to replace the same text in over 150 input fields and I wrote a script to do this. I figured that this functionality should be present in Chrome by default and so I turned the script into an extension.
Gearing up for cookie regulation
The PHP ZipArchive class, the windows temp directory and Multi Install v1.0.5
For those of you using the multi install component on a site that runs on a Windows server, you may have run into the message, "The file did not unzip properly". This error occurs due to the fact that the PHP class ZipArchive cannot open files stored in the C:\Windows\Temp directory. This is because the php process runs as a IUSR_XXXX user and it doesn't have the correct permissions to access the file.
Multi Install Update v1.0.4
Multi Install Update v1.0.2
I have just updated the Multi Install component so that you can now use it to install your packages from a URL. This means that you simply need to link to a zip file somewhere on the web and let the component unpack and install all of the packages that are contained within it. This functionality mirrors that of the default Joomla installer and I have to admit, I did make use of it's logic and functions!
Creating cron jobs with JCron and the joomla library
Sometimes it is necessary to run processes on a web site that make changes to the database on a daily basis. An example of this could be when data needs to be aggregated from a reservations component and made available to an external application or tool, in a format that is user friendly. A script would be written that updates an existing table and then the extenal tool could access this table. This script will work fine as a standalone php file but how do we make sure it is run and how do we make use of the Joomla libraries inside it when it is not being called from within the framework?
Free project management from Freedcamp
Freedcamp is a brand new, free project management tool from the Enavu network. This is something I have been keeping an eye on for a while as it could prove to be a competitor to market leaders, such as Basecamp. The interface is clean and crisp and boasts a wide array of smart JQuery functionality that helps to make the user experience more enjoyable.
How to set up phpMyAdmin for Joomla
Joomla is built upon a MySQL database that stores all of the data for the site. This database will contain tables that come predefined with the core installation and others that will have been created by third party extensions. When developing for Joomla it is useful to be able to view the structure of these tables so that you can begin to write code that will add, modify or delete records from them. One way to view the structure is to use phpMyAdmin, which is a "free software tool written in PHP intended to handle the administration of MySQL over the World Wide Web".
This means you can use the phpMyAdmin interface to run SQL queries, make backups of your database stored in a variety of different file formats and import new data from CSV files and the like.
A short note about JPATH_COMPONENT
When developing components it is often useful to use constant references to refer to a particular file or folder. To do this we can use the JPath class and one of the many constants provided. For example, these two constants will give you the following results:
JPATH_COMPONENT -- Sets the component path /Joomla/components/com_example
JPATH_COMPONENT_ADMINISTRATOR -- sets the backend component path /Joomla/administrator/components/com_example
You can check out this page for the full list of JPath constants.
These are obviously useful as they stop you having to type out long paths every time you want to refer to your working component folder. However, there is another factor which you may wish to consider.