mtense productions

some stuff you might find useful

Recent blog posts

I helped a buddy develop an ecommerce site in joomla using hikashop.  Hikashop's cart module functionality is a bit limited.  You either get a very verbose full cart or a very minimal mini cart. We customized the mini cart to include the ability to expand to the full cart in either a slider or popup. This makes the functionality similar to what you find at amazon, especially when you move the cart to the very top of the page.

The cart hidden initially because it is empty. Add an item (from those below) to the cart to have it appear.  Then click the expansion image beside each to see how they expand.

Here are some demos of the expanding mini cart in action.

If you would like to add similar functionality to your hikashop, I have packaged up the files.


Tagged in: Hikashop Joomla PHP
Hits: 94849

Posted by on in Techie Stuff

When web hosts lock down their firewalls, they often close commonly used outgoing SMTP ports.  Most everyone is used to port 25 being blocked, but my web host was also blocking 465 and 587 which are the common ports for sending SMTP traffic over SSL and TLS connections.

Of course, when you get the first level support guys trying to mess with the firewall, they are rarely successful.  It is handy to have a command you and they can run to check their work.

Here are the openssl commands for checking the connections.  These connect to google's gmail servers.

openssl s_client -connect -crlf -ign_eof
openssl s_client -connect -starttls smtp -crlf

The first command connects on port 465 is typically used for SMTP traffic over SSL.  You can test different versions of SSL with the -ssl2 and -ssl3 options.  There is nothing email specific about the command. A small variation can be used to check https connections (HTTP over SSL)

openssl s_client -connect -crlf -ign_eof

Tagged in: Email SSL Web
Hits: 6723

Posted by on in Techie Stuff

It is really annoying when you are trying to make a file available for download and the user's browser keeps opening the file rather than allowing the user to save it.  This php script forces the Save As dialog to show up reliably when downloading a file.

To use the script, download it, set the $path variable to the relative path to your downloads folder, and upload the script to your website.  The default name for the downloads folder is "downloads".  Place your files in the downloads folder (specified in $path above) and link to the files like this:


For example, if your downloads folder is called "downloads" and it is at the root of your website, then there no changes necessary.  Simply upload the script to your website.

Download the script: download.php

Cleaning up the URL

On apache servers mod_rewrite can hide what's happening under the covers and clean up the download URLs.  So, for example instead of this


The user sees this


Although it appears that the file is being downloaded directly from the downloads directory, mod_rewrite can recognize and rewrite the URL to use the php script for downloading the file.

Options +FollowSymLinks
RewriteEngine On
RewriteRule   ^downloads/(.+)$   download.php?file=$1

Assuming mod_rewrite is available on your server, simply place the code above into the .htaccess file to support downlod URLs with no reference to the php script.  If the downloads directory is not in the root of your website, specify the path in the RewriteRule.  For example, if the downloads directory is located at /foo/bar/downloads, the RewriteRule should look like:

Options +FollowSymLinks
RewriteEngine On
RewriteRule   ^foo/bar/downloads/(.+)$   foo/bar/download.php?file=$1

Download the script with pretty URL: download.php

Tagged in: PHP Web
Hits: 6446

Richmond Sunlight provides tools for keeping track of what's going on in the Virginia General Assembly.

One feature of the website is tracking bills of interest by associating them with a free user account.  In addition to reviewing the status of the bills through their website, their Photosynthesis service and API makes it possible to gather information about specific bills in an automated fashion.  Details of Photosynthesis service and the API are documented on their website

I recently helped out on a small project using the API to pull and display information on specific bills.  The API is json and the website runs php, so the result was a nice little example of how to retrieve data in json format and display it in php.  I created this write up in hopes that it might help someone looking to do something similar.

Tagged in: JSON PHP Tutorial
Hits: 9334

Posted by on in Web Stuff

Joomla is a content management system (CMS) that supports maintaining a website through a browser interface.  It is a free tool and is well-documented on their website.

Joomla offers a good balance of power versus ease-of-use. Users with the proper permissions and little technical knowledge can add and update the website's content.  Setting up and administering a website with Joomla requires a fair amount of technical skill.

There are two views of the joomla system:

Content can be updated through either view. When logged into the front-end, pencil icons show up beside the items the user has permission to edit. Content is added and arranged through the back-end. Unless making a small change to existing content, use the admin interface to manage the website.

Note any changes to the website through the front-end or back-end will be visible immediately on the website.

Tagged in: Joomla Tutorial
Hits: 11074
You are here: Home