Joomla

This is a Joomla site, and I work mostly with Joomla sites.  This section will have little discoveries that I have made about Joomla that I might need to refer to at a later time.

Joomla IconI use Joomla as the CMS platform for websites through my employer.  Many times I will come across a problem or a challenge of how to make something do this or that within the Joomla interface.

If it something that I feel that I will want to use for future reference, I will write a quick little post on the subject in this section.  Maybe someone else will have that same challenge, and this information might help them address the issue.

At the time of this post, my background is one college level PHP course and one Javascript course and two years of web design and development. A CMS system is perfect for someone like me.  I know just enough about what is going on in the guts of my website that I can solve most issues with out having to do heavy-duty coding.  

Why Joomla vs. Wordpress or Drupal. Well, like I said, Joomla is what my employer uses.  I took a Drupal course in school, but got a job using Joomla.  Was there a big learning curve?  No, not really, but they have very different was of approaching the CMS platform, in my opinion.  I think that Drupal is more for those who really know the PHP in the backend.  I also find Drupal to be a little more confusing.  Either one of them - you need to learn where to go in the back end and you will find yourself going back and forth between menus to accomplish what you need.  Wordpress on the other hand?  Well, it is the most popular CMS system and many people use it without knowing much of anything about coding.  I have only a passing experience with Wordpress.

There are thousands of hosting companies to choose from at a variety of pricing.  Don't just look at price.  If you have one incident where you loose your files or you spend hours on a support issue, you have lost any savings that you gained with a low-grade host.

For Joomla, or any CMS based web site, there are a few key things to look for in a hosting company:

  1. Does it use the required PHP level that Joomla requires?
  2. Does it have cPanel?
  3. Can I create a database on my own and access it through phpMyAdmin?
  4. Can I easily and quickly backup my entire site on my own?
  5. Can I easily restore my site from a backup on my own?
  6. Does it have 24/7/365 support?
  7. If I call support am I on hold forever?
  8. If I call support is the technician knowledgeable and understandable?
  9. Does it have file access where I can unzip compressed files?
  10. Is the bandwidth going to be adequate for the traffic on my site?
  11. Is the file storage adequate for a CMS system?
  12. Am I allowed to have multiple subdomains?

At this writing I am using GoDaddy.  I will be changing from GoDaddy when my latest contract is up. My issues with GoDaddy are that it has some proprietary issues with Joomla, it does not have cPanel and it does not allow me to easily backup my entire site. When I first signed up with GoDaddy I was a bit naive and I was just doing sites with straight html and maybe a bit of php, but nothing to do with databases.

Now I am doing most of my own sites in a Joomla environment and I am finding the stumbling blocks with GoDaddy Hosting.  Through my freelance work I do Joomla sites using another host that has cPanel.  It makes things sooooo much easier.

cPanel

What's the big deal with cPanel?  Well, I can easily create databases (different hosts and different price levels effect how many databases you can set up with your hosting).  Each Joomla install needs a unique database.  I can also easily backup all the site files and the entire database in a few easy steps.  The compressed file is then put into my download directory on my own computer.  This is a necessary step that should be taken before installing extensions or doing upgrades to the site.  It is also very helpful if you are moving the site to a new location.  I can also easily restore my site from these files, though that usually is not as quick of a process since my internet has much slower upload speeds than its download speeds.

Another thing that is nice about cPanel, is that it's basically the same on any host using the system.  As a web developer, you may find yourself on many different hosting companies backends trying to figure out their individual systems.  It can be a time consuming nightmare.  There may be things that you just cannot access.

PHP

Joomla 3 requires a php version of 5.3+ and a MySQL of 5.0.4+. Click here for the joomla.org chart of Joomla 3.x requirements.

phpMyAdmin

One should tread lightly when going into the database file using phpMyAdmin.  You should know what you are doing or you can corrupt your site.  Always create a backup of your database before making changes.  You may need to go into phpMyAdmin to change a password if the main access password to the site is lost or forgotten.

Support

Don't expect your hosting company to be experts or even provide support on Joomla itself (unless they advertise as such).

 

By default, a new intall of Joomla will have the Joomla logo as the favicon for the site.  This favicon is favicon.ico under the folder with the template that you have set as default.

You can either just delete this file, and you will have no favicon, or you can replace this favicon with one that you created for your site.

See this Cheat Sheet article on how to create a favicon.

Be sure to replace the favicon.ico on the root of your template folder, or change the path to the favicon in your index.php or template.php file in your template.

<link href="/templates/beez_20/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />

In Joomla 3, the default for the urls will contain the domain name slash then index.php then the page name. 

If you want to make it so that the index.php doesn't show up in the url's take these steps:

screenshot-rewrite-urls

In Joomla's Global configuration, On the SITE tab there is a section called SEO Settings. Click the radio button with Yes on Search Engine Friendly URLs.

 

Then in your .htaccess for the site add the following lines (if all you see is htaccess.txt - see the note below).

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/index\.php/
RewriteRule ^index.php/(.*) /$1 [R,L]

Note: If you don't see the .htaccess file using an ftp program, your host's cPanel or your host's file management system, you may need to change the settings so that you see hidden files. If you still don't see it, it may be that when Joomla was set up, the htaccess.txt file was not copied and renamed .htaccess.

Make a copy of the htaccess.txt file and name it .htaccess. Open the .htaccess file in a text editor and add the lines shown above.

Depending on your host's settings, if your Joomla site is a subdomain, these steps may not remove the index.php from the url, and may even break your site causing you to see error pages as you navigate. If this happens, you may need to live with the index.php in the URL and select No for URL rewriting.

 

If done properly, even if a link from a search engine or a 3rd party website has index.php in the url - the user should be redirected to the correct page.

jcefilebrowsericon

The Joomla extension JCE Editor comes with a nice alternative to the Media Manager (the default file manager) for uploading image files and such.

When you install JCE Editor on a Joomla site, you get a new icon on the Control Panel that says JCE File Browser.

I find that it is a nice alternative to Joomla's media manager because of the interface and the following features:

  • the little preview of the file on the right,
  • the ability to preview the image in a larger format,
  • it will overwrite an existing file with the same name if you want to update a file,
  • you can search for a file name,
  • the file names are not truncated,
  • you can upload new files using this interface and
  • you can create/delete folders.

Now by default, like Media Manager, the user only sees files, folders and subfolders in the images directory on the root.  This keeps your users out of important areas in Joomla where if they deleted a file - it could break the site.

Note:  When you do upload files - be sure you are in the correct directory.

screenshot-jcefilebrowser

In this day and age of Responsive Web Design - it is NOT a good thing to put inline width and height on your images.  In my opinion, it rarely is a good thing to put both parameters anyway.

Why?  Well if you upload a new image - that has a different aspect ratio - you get a stretched or smooshed image on your web site.

With Responsive Web design, it is best not to put either parameter - because inline settings can't be over ridden by CSS styling and here you have this enormous image mucking up your page layout.

The default settings for JCE Editor fo Joomla (a wonderful extension, I might add) will add both the width and height to your image.  You can easily Toggle the Editor and take those out, but will everyone contributing to the site know to do that?  and remember to do that?  Not likely.

There is a way to change this default setting in the JCE Editor Global Configuration.

screenshot-jceeditor-global

From the Joomla Control Panel, pulldown Components -> JCE Editor -> Global Configuation.

From there select Editor Profiles.

To change the backend settings for this feature - choose default. If your users edit articles from the front end, you need to change the settings there as well.


Once in the Edit Profile section, select the Plugin Parameters tab.


screenshot-jceeditor-imagemanager

On the left you select the Image Manager section.


screenshot-jceeditor-imagedimensionsIn the Default Values section, about half way down, there is a value for Always Include Dimensions.  Select the radio button for No.


From here on out JCE Editor will not add inline width and height to your images.

You CAN alsways add them in yourself - when you select the image if you need to force the image to a smaller size or larger size.  This is not best practice, as the browser does not always do justice to the image with its own rescaling.  

You also may be in the habit of doing this to reduce huge images to fit into your page. What this does is still upload the huge file size, then uses the browser to reduce the image. The result is a slow page load and that business when the image slowly paints its way down the page upon loading.

It may be that you know all this, but handed the site over to your client, and they either don't know how to reduce the image size before uploading - or don't know that this is an issue.  There are image management extensions for Joomla that allow your user to change the image size and therefor the file size from within the Joomla interface. Or you can just not worry about responsive web design for your client run site and leave the default settings.

Subcategories