Quix 2 Visual Builder is here & enjoy 20% discount. Coupon : QUIXPRO


How to Add Custom Fields in Joomla Articles


Have you ever search for best Joomla CCK that allows you to create Joomla custom fields within Joomla core articles? I know you find a lot, but failed to find a suitable advance custom field for Joomla.

To provide ultimate flexibility and empower to create unlimited category specific or standalone custom field in Joomla articles, We, at ThemeXpert HQ has cooked a powerful Joomla extension called Xpert Custom Fields (XCF).

Why we developed the Joomla CCK extension called Xpert Custom Field (XCF) ?

Glad you asked. We regularly help Joomla developers to accomplish their projects perfectly. The thing we find common that developers are found spending extra hours to add Joomla custom fields support to satisfy their clients requirement.

To kick away all above limitation, we developed this advanced custom field extension. The extension allows you to create vast array of custom fields including multiple field types without touching single line of code.


  • Joomla Article Support + More coming
  • Unlimited Fields Group
  • Customized Rules for each group
  • Joomla Event support
  • 7 Fields + More coming
  • Shortcode Plugin to access the field data inside article
  • Intuitive API for developer
  • Category specify and standalone field support
  • Multiple event support

Download Xpert Custom Fields Now

How to add Joomla custom fields in Joomla articles?

I assume, you’ve already downloaded our XCF extension. I ain’t going to discuss about the installation process. The step is not different. Just head to the Extensions > Manage and install on your own. After installing Xpert Custom Fields(XCF), the entire process to get started is simple. For your convenience we’ve created a video tutorial for you. Have a look.

Don’t like to watch tutorial video? I have chunked down the entire process in easy steps. Let’s get it.

Step 01: Create Field Group

After installing XCF, navigate to Components > Custom Fields - XCF. In the Joomla Custom Fields manager, you will find two different tab in the right sidebar of screen. The sidebar includes Group and Fields. Before adding a new custom field in your Joomla Article, It requires to create group first.

Click New button but make sure you have Group tab selected. Provide group Name, Content Type, Category, Description, Event and Status. Click save and close when done.


Name : Used for organizing the groups in back-end. Try to give some meaning full name.

Content Type : Define where this group of fields load. Right now it only support Joomla Articles and more coming.

Category(PRO) : For which category the group fields will load. If you want this group of fields load on all category you can select 'All'. You can specify specific group to load specific category.

Description : Group description only use in admin area to give your more details about the group.

Show Event : You can select where this group filed data will display. They includes After Display Title, Before Display Content, After Display Content and None.

Step 02: Create a new field

Select Fields tab and click New. Add Field label, Name, Group, Type, and Status.


Field Label : Give your field a label so you can easily recognize it in backend.

Field Name : Field name is used to call the field from article editor or code. This is very important to do not put any space and special charterer in Field Name.

Field Group : Select group for this field you have created on Step 1

Field Type : Type of date you are going to receive. If you need simple text then select 'Text' field. If you need image the select 'Image' field.

Field Instruction : Give instruction for this filed and it will show in popup. When you added all field data successfully, click save and close button.

Step 03: Add custom field in a Joomla Articles

Create a new or open an existing article where you want to present your custom field data. You can notice in the following image, a tab titled Xpert Custom Fields. Another button called Custom Fields added adjacent to editor bottom.


Get into Xpert Custom Fields section and insert the data according to their type. For demonstration we added field to take image input.


After adding all further necessary data, click save and close. Head to the article single view in frontend. As the follow image indicates, Advance custom field is working great in my end.


Step 04: Show field data using Shortcodes

You may not want to show your custom field data according to the event provided. Because Joomla provides only 3 events, allow to present your custom data After Display Title, Before Display Content, and After Display Content. What if you want to show this data middle of the article ?

To give ultimate power on your custom data presentation, we have created shortcode plugin. To use your custom data anywhere in your Joomla article, head to the field group, change After Display Content to None from Show Event dropdown.


Now head back to the article edit screen, place cursor where you want to display the field data. Click on Custom Field button down to the editor, and select the desired field button to insert shortcode in your editor.


How to add layout override for Xpert Custom Field(XCF)

The default look of Xpert Custom Field may not suit your site look and brand. So we have added a super capability to add personalized look according to your brand. But I ain’t going to cover this this feature in this article, I have prepared a separate article for you. Till then stay tune to ThemeXpert Blog

Speed Up Joomla Site in 5 Minutes - An Step by Step Guide

Speed Up Joomla Site in 5 Minutes - An Step by Step Guide

Whether you are running your personal blog or a enterprise level of Joomla eCommerce store, your heartiest exception sticks with highest pick of traffic and record breaking conversion, right?

To turn your dream into reality, there are plenty of technical aspects need to kick in along fresh and professional site contents. Without going to describe them all mediocrely, I am going to share proven tactics to speed up Joomla websites, which is considered one of the most significant ranking factors according to Google. Why speed is important?

Several studies shows that fast loading websites can significantly increase conversion and boost in sales. A couple of years ago, Walmart announced that their conversions touch the peak when site loads within 2 seconds, and it progressively drops as page loading time increases. In the following chart, you can notice how overall conversion and sales fluctuate when site speed falls from 0-1 to 3-4 seconds.


Another study by Kissmetrics shows that 40% of people abandon a website that takes more than 3 seconds to load. I know having read those real life example, you guys want your Joomla website should be loaded fast. For your convenience, I’m going to share some useful tips and tricks of Joomla speed optimization.

Before digging into the in-depth instructions, I recommend you to check Joomla performance or how fast your Joomla site currently loads. To check site loading speed, there are numerous tools available in the market. I have created a list of trusted by millions because the tools not only can measure site speed and overall performance, but also provides details reason that make a website slow.

Now you have clear understanding of your overall site performance and loading time. Before going to follow my instructions, take a complete backup of your Joomla website, then make step by step enhancement. After completion of every step, get back to the site front-end, and make sure every part of your website functioning accordingly.

Choose a reliable Web Host

Taking right decision while selecting best Joomla hosting is considered the key for speed up Joomla website. Thinking why? The files of your website are virtually hosted on a remote server.

When a end user hits for your site URL in the browser address bar, and If it takes time to retrieve data from server to your end clients, definitely your site loading time is going to be increased and your are going to lose a significant amount of traffic. So what would be the best solution? To cover the question, we prepared a wonderful guide to select best Joomla hosting. I would be your find them amazing, enjoy the reading.

Use updated Joomla and its extensions

Latest technologies includes new opportunity to keep your websites away from numerous limitations of past and add finest smoothness in the overall site performance. Whereas Joomla is growing everyday for open-source contribution, so the consequence presents us the frequent update of Joomla with possibilities of site speed, because each updated version comes with multiple code improvements. Same happens for 3rd party plugins, keep them updated to consolidated with your need.

Use must-have and remove unused extensions

The plugin based model for feature extension sometime loads unnecessary features and bloated codes in maximum CMS. Nothing different for Joomla. With several years of Joomla template development, I used many of tremendous Joomla extensions comes with awesome features.

But your site may required to use single features, but other remain unused and become reason for poor site speed and conflict. So, remove the unnecessary plugins and install lightweight and need specific Joomla extensions.

Enable Joomla Caching

When you look for a website or its content in the browser, Browser sends request to the server to serve requested contents back. If you are using Joomla website, on the every page load or request browser retrieves associated plugins, components, modules, images and other more. It’s really a weightlifting work for site database. Suppose you have a website visited by 1000 visitors at a time, I bet your site loading get down to 5 to 10 seconds. What’s the solution to comprehend this issue?

The answer is - enable joomla caching. Caching allows to present pre-generated contents to the end users without annoying server all the time and speed up Joomla site of yours. In a cache enabled websites a saved “view” is offer to browser. If any content is changed or updated by site owners, users momentarily get older version of cached information, but after a defined interval, cache version gets update automatically. Want to enable Joomla caching, just follow the beneath tutorial

To enable the Joomla caching, first head the System from Global Configuration, select ON - Conservative caching option from cache dropdown field, and select Save button. Have a look in the following image.


To ensure Joomla caching system starts working correctly, you have to check whether core Joomla 3 plugin System - Cache is published or not. To check status of the plugin, head to the Plugin Manager from Extensions menu. search for System - Cache. If the plugin is enabled that would great, but not publish it on your own. Have a look in the following image.


Congratulation, Now Joomla caching system is running successfully.

Enable Gzip Compression

Gzip is the popular tool for file compression. It lessen the file size and helps to shrink server response time.


Yahoo says “Gzip is the most popular and effective compression method currently available and generally reduces the response size by about 70%. Approximately 90% of today's Internet traffic travels through browsers that claim to support gzip,"

To enable Gzip in Joomla! CMS, head over to Global configuration > server and click on option 'Yes' for Gzip compression.

Leverage speed using CDN

Content delivery network (CDN) is an incredibly simple way to supercharge your Joomla site and Joomla performance. A CDN is an interconnected system of cache servers that use geographical proximity as a criteria for delivering Web content. If you enable a Content Delivery Network, your static files will not be served from the location of your web host, but from the global network of servers of your CDN provider.

In a CDN, multiple copy of your web contents strategically exists on disseminating servers, allow you to serve the same content to many requesting clients computing devices with high availability and high performance - even when bandwidth is limited or there are sudden spikes in demand. CDNs are especially well suited for delivering web objects (text, graphics and scripts), downloadable objects (media files, software, documents), applications (e-commerce, portals), live streaming media, on-demand streaming media, and social networks.

If you want to know which CDN provider is best suited for your Joomla website, read this detailed guide.

Optimize Images

Images Put serious value on your website. You cannot deny the role of images on your website. Images increase the load of your page and it needs more bandwidth than rest of the elements of your webpage. To ensure fast loading of webpages you must optimize images of your website.

There might be question on your mind “If I reduce the image size, will it affect the quality?” Actually there is a lot tools available in the web, you can use tinypng, remush.it, PunyPNG, etc. This tools will optimize your images losslessly, there will be no compromise with the quality of your image.

Minify HTML, CSS & JS

A Joomla Website loads its contents and it also loads CSS, JS files which may slow down the whole loading process. CSS & JS files takes a lot of time for rendering and executing. This issue can be easily resolved by:

  • Compressing CSS, JS files
  • Merging Several files into one.

If you do not know how to do it, you can do it by using extensions like JCH Optimize, JBetolo, ScriptMerge from Joomla extension directory. JCH Optimize extension also allows several functions for Joomla speed optimization.

Mobile Optimization for Joomla Website

50% of web traffic comes from mobile and tablets. If you do not want to lose half of your traffic, it is necessary to optimize your mobile pages too. You can take Mobile-Friendly test from google to check mobile friendliness of your site.


If you get a really poor score consider optimizing it. If you do not know waht to optimize, you can use the PageSpeed insights Tool by google.

Turn off leeching and hotlinking of your content

Hotlinking increases server load and makes your website slow. It means stealing your bandwidth and it occurs when any other sites uses direct link to the images on your site.

So for turning off leeching and hotlinking of your content put the below code on your root .htaccess file:

disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sparringmind.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?feeds2.feedxpert.com/sparringmind [NC] RewriteRule .(jpg|jpeg|png|gif)$ – [NC,F,L]

At here I have given my feed (from Feedxpert). You have to replace it with your feed’s name or else your images might not appear correctly.

Turn On LazyLoad to your images

Lazyload helps you to speedup your page loading process. It only loads the images, above the fold load or those images which are visible to the browser window of user. When the user scrolls down, the below images starts to load before the appear on the window.

This just not only increases the page loading speed, but also save the bandwidth by loading less data for visitors who doesn’t scroll all the way down. You can do this automatically, just install plugin like LLFJ or JSLazyLoading from Joomla extension directory.

Control amount of post revision

When you are done with your post and published it, why would you need the stored draft? There might be 8-9 or even more drafts saved. This drafts slow down your site and therefore you need to control your revisions.

Set the revisions to 2 or 3 so that in case of any mistake, you can fall back.


Speed up Joomla websites is the key to boost up conversion and sales simultaneously. I’ve discussed only the techniques worked for me precisely. If you think, I missed any of them, let me know in the comment below, I will add your recommendation to the above tips.

How To Add Disqus Comments On Your Joomla Websites


Either you're using Joomla templates and WordPress themes, user generated Joomla comments and WordPress comments are important. It bears a testimony that your posted masterpiece is helping others tremendously. Visitors are found to and fro across the site to site to find out their desired contents.

Before getting into your well-researched blog post, they try to find some significant traits which give them reason to read further or bounce. Now the question is what are those traits, right?

In my opinion they are not so many, but the most important elements are - huge post views, social shares and positive comments. Among those, good comments are the most effective, it allures the dark horse to be well-acquaintance of your website. But what if your post comments are full of spamming? definitely you would lose significant number of constant traffic along with the following inconvenience.

  • Consume valuable time and labour

When you’ve websites like ThemeXpert with tons of useful blog posts, You would constantly start receiving comments in your maximum viral posts. With the useful appreciation you found spammers are trying to spam in your comment. Consequently you have to spend time to keep them up-to-date frequently.

  • Can’t stop traffic getting stolen

If you couldn’t manage time to clean up your website from spammy comments, visitors will pipe through other website easily.

  • Endanger site from hacking

Either you are running Joomla or WordPress websites, if you don’t turn on comment filtering for malicious code, hackers can hack your site putting malicious code via your site commenting system.

  • Increase site loading time

If a website fails to load within 5 to 8 seconds, statistics show that visitors start hitting back button with waiting for site comes in. On top of that the continuation of bounce rate keeps increasing. In this circumstance, Google may penalize your site and demote your site with lower ranking.

  • Google is cracking down on bad links

Google always hates bad links, If you don’t manage time to moderate your site comment, Google think you’re allowing bad links into your website, the Google bot won’t care whether the link are attached in the commenting system or elsewhere.

Now you might be thinking what would be ultimate solution to keep your site away from such an inconvenience, right? According to my experience I found default commenting system of popular CMS like WordPress and Joomla requires tons of configuration to make it safe from unexpected danger.

Even in my whole career I found many of CMS power users find difficult to add spamming safety configuration, let alone the new comers. To comprehend this issue, we have to find component which will be ultimate solution package, allows automated settings enability by default.

Now the question is which component provides all possibilities all together, the answer is simple, that is Disqus Joomla service. Look on the reason why I provoke to choose this awesome 3rd commenting system for your Joomla websites.

  • Fast and real time update

The commenting system doesn’t affect your site speed. It loads separately from Disqus on your Joomla websites. If you’ve website with a tons traffic, you don’t need to reload your site to see the latest update of the most recent comments. Everything will be updated live within your single blink eyes.

  • Less spamming and secured

Commenting with Disqus requires to login first, As a result only human can post comment, forget about the abusive behavior of dangerous bots.

  • Popular social integration

Social media is one of the finest place where you can reach people according to your interest easily. Disqus Joomla service comes with instant signup functionality with social media channels. If anyone signups with their social account, and comment in your blog. It’ll automatically posted the comment in their associate social media channel.

  • Remote moderation

Moderation of comment is essential to make your site atmosphere professional. To give the utmost flexibility, Disqus notifies it users via email when new comment is dropped, simultaneously you can approve,delete, and every reply those comment, directly from your emails. Enjoy the flexibility.

  • Complete Control

Your brand may have an unique identity, you want to adapt the overall every aspect of your official website matching your brand core color. To personalize the 3rd party commenting system to your brand it allow you to change default comment avatar, add CSS to personalize the look of your comment.

Having learnt about the benefits of Disqus Joomla Service, now I am going to show you how you can install Disqus comment in your Joomla websites. Let’s dive in.

Step 01: Create account and add website with Disqus Joomla

Heading over to the Disqus.com, you have to sign up first with your email first. If you have already a registered for this site, Get into this link to add Disqus to your site, add site domain name or subdomain name in the site name field, choose Disqus URL and appropriate category.

I am going to demonstrate the demo on zenithII template , so fill the empty with relevant details. When you fill the form correctly, select Finish Registration button.


Disqus provides compatibility with all popular CMS in the market, select Joomla as your platform in this stage.


After the previous selection of Joomla icon, you will be redirected to the following page, which includes the details instruction which plugin to download to integrate as Joomla Default commenting system. Copy the Shortname.


Step 02: Install Disqus plugin and link Shortname

Though above image shows the instruction line by line, I am going to describe it thoroughly. Login your Joomla backend, head to the extensions manager and install this Disqus for Joomla plugins.


Head to the plugins manager and search for Disqus, The search result will bring you two items, the first one is DISQUS Comments for Joomla and another is System -DISQUS comments for Joomla. Click on the first result to edit existing settings.


In this details page you will found a couple of field that you have to fill with relevant information like Shortname, category and menu item selection where the Disqus comment will be loaded. We have our shortname “zenithII”, I field the shortname field with zenithII. selected blog as category, and DigiCom as menu item. When you filled your select the save and close button.


Now head to the category section where you loaded the plugin, for demonstration I have rendered the plugin in our blog section, you can load any where you think important. Have a look on the image below.


Want enjoy the full feature of this 3rd party integration? you have to log in your Disqus account, where you can find unmatched opportunities of robust comment management. Like you can add collaborator to moderate site Joomla comments, customize default look on the commenting system and so many more.

If you found this article helpful, feel free to leave a comment what kind of article are you expecting from us. We'll really appreciate you for comment. Even we can give 10% discount on purchase from ThemeXpert if we find your comment awesome :)

How to add reCAPTCHA support in Joomla extensions


A couple of weeks ago we were developing a Joomla! contact form extension called Xpert Contact. We are glad developers developed the extension professionally well with reCAPTCHA support. To study the best practice to provide CAPTCHA support, we searched for the resource in the web but unfortunately we found nothing interesting.

So, we decided write the tutorial on our own. In this tutorial First I’ll show you how to enable the new "No CAPTCHA Joomla reCAPTCHA" in Joomla default contact forms and subsequently show the details way to provide support of this API in the Joomla extensions.

Add the New Google ReCaptcha to Joomla Contact Forms

Adding No CAPTCHA reCAPTCHA API in your Joomla websites doesn’t require elusive and tedious steps to walk through. It combines a set of instruction to follow. Let’s dig in.

Step #1 Collection the public and secret keys

To enable Joomla reCAPTCHA in your Joomla website, you have to collect public and secret keys from Google reCaptcha site. When you are on the Google reCaptcha official site, select the Get reCAPTCHA button from the top right corner.


Provide site details including Label, Domains and Owners email address to register your website for Google reCAPTCHA. and click register button.


Now your site domain is registered, you have site and private keys are available to proceed for Captcha integration in your Joomla website.

Step #2 Enable Joomla reCaptcha plugin

Log into your Joomla backend and head to the Plugins from Extensions menu. Search for Captcha - ReCaptcha. The Captcha plugin comes up being in disabled status.


Now click to edit Captcha - ReCaptcha plugin, select version 2.0 from version dropdown, add site as well as private keys in the specific fields, change Theme if you want; default it will set the theme Dark, change status disabled to enabled, and click save and close.


Step #3 Enable ReCaptcha globally

We’ve successfully enabled Joomla reCaptcha plugin. Now we need to enable it globally. Head to System > Global configuration. select Captcha - ReCaptcha from Default captcha dropdown.


Now head to the contact or register form page of your Joomla website, you’ll noticed Captcha would be successful integrated.


Add support of Google ReCaptcha to Joomla Contact Forms plugins

When you are developing contact form plugin for Joomla, it’s essential to enable reCaptcha to protect from abusive bots. If you don’t have experience to developed reCaptcha enabled contact form plugins, don’t worry I am here to flip you through the entire steps.

Great news is we have XpertContact module created which supports Captcha. For the quick demonstration I’ll explain how we provide support for Captcha in the contact form module. Before heading further I recommend you to download the module first.

Download Xpert Contact

I assume you’ve downloaded the module, and unzip it. Now all the files comes up. Let’s dive in.

Step #1 Create XML form adding a field for Captcha

To provide support of Captcha, we have to add a extra field in XML contact form where the Captcha pops out in the frontend. Add the following code in your XML contact or register form.


If you’ve download Xpert Contact copy opened, head to the form folder, you’ll find two xml files. The first is form.xml and another is form_captcha.xml. open form_captcha.xml, you can notice the previous code included in this file.

Note: you can add the previous code in form.xml file without create a new file form_captcha.xml.

Step #2 Load XML form using JForm

Having successfully created Captcha field in XML form, you’ve to load the XML form via JForm adding following code.

$form = JForm::getInstance('customForm','path/to/form/form.xml',array('control' => 'jform'));

In Xpert Contact we load this code in mod_xpertcontact.php. In this file we load the XML using JForm, checked whether plugins Captcha is enabled or not and then we load form.

Step #3 Load form for the frontend view

Now we’ve instructed the system to load XML form but haven’t fetched contact to frontend display. To fetch contact form in the frontend, add the following code in the view file.

$fieldSets = $form->getFieldsets();
foreach ($fieldSets as $name => $fieldSet) :
  foreach ($form->getFieldset($name) as $field):
    echo $field->getControlGroup();

In XpertContact open default.php file from tmpl folder. Here you’ll find how we show fetch form data for frontend view from 22 to 33 lines.

Step #4 Validate the form while form submission

A full-fledged form is now perfectly showing in the frontend. Now It’s time to validate the form. To add the ability to prevent spam and malicious bots, add the following code in your helper.php file. It’ll validate the form allowing the human from submission and keeping the malicious bots apart.

$data   = $this->input->get('jform', array(), 'array');
$form   = JForm::getInstance('customForm','path/to/form/form.xml');
$result = $form->validate($data);
// Check for validation errors.
if ($return === false)
  // codes goes here
  $return = '';
  // Get the validation messages from the form.
  foreach ($form->getErrors() as $message)
    $return .= $message->getMessage();

  //now you can return error msg
  return $return;
// validation successful, do your job here

Get to the Xpert Contact root directory, you will notice we’ve performed the validation in helper.php file.

Note: If Joomla website fails to load jFrom perfectly. Make sure you’ve Included the following code to enable the JForm.

jimport( 'joomla.form.form' );


The process I've described above help you a lot. If you face any confusing to follow this article feel free to post comment. I am here to answer you :)

Joomla! Component Development with FOF - Part 02

Joomla! Component Development with FOF - Part 02

Hey guys, hope you find your developing Joomla component easy and interesting. I really appreciate your collaboration and support to encourage me to write subsequent parts of Joomla! Component Development with FOF. In my last tutorial, I only covered single as well as multiple items view of backend. In today’s part I only show you how to create category multiple and single backend view of our Gallery component. Okey guys, let’s move forward. If you are following from this part of this tutorial, you are requested to follow me from Joomla! Component Development with FOF - Part 01


Step 01

Now in the very beginning of this tutorial, I will add multiple categories view of Gallery Component. Currently we don’t have categories panel available in the left sidebar of the Component admin panel. To create multiple category view, you have to get back Gallery component root from the link Joomla root directory/administrator/components/com_gallery open views folder and create a folder called categories.


Now back to the Joomla! backend and open up the gallery component dashboard. You can notice categories section has been added in left sidebar, Have a look in the image below.


Click on the categories where I’ve circled in the previous image. After hitting click, you will get the following error (1146 Table 'demo. o39p1_gallery_categories' doesn't exist SQL=SHOW FULL COLUMNS FROM `o39p1_gallery_categories`). It means, we have to create a database table called “o39p1_gallery_categories” for categories. In your turn o39p1 prefix would be different. So, Lets create database table. 

Step 02

Creating categories table in database is the same as we created for items. Select your database, click on new, add your database table name (o39p1_gallery_categories is my category table name), add gallery_category_id field, make sure you have checked in for auto increment and click Save. Have a look at the next image.


Now back to the error page, where you get 1146 error and reload the page. Now you get the following error (500 Layout admin: com_gallery/category/default not found). Don’t be panic the this error, Such errors paves us tor right direction. So, let get ourselves from this wired page.

Step 03

Now I can assume you in the categories folder we created in the first step. If you are in the right folder, add a new temp folder, and at least create form.default.xml file. Have a look at the file hierarchy.


Now open form.default.xml and paste the following code.

Now back to the component admin where you faced last 500 error and refresh the page. If you successfully followed the previous steps, Now you are on the following screen. Have a on the screen next.


Now you have noticed there no category available in the category multiple view. To create a category, click on the New button, In this turn you will receive following error (500 Layout admin: com_gallery/categories/default not found). Don’t worry, it's a great sign again. It’s asking us to create a single category view.

Step 04

To bring about the single category view, let’s get back to the views folder again. Create a folder title category under views folder, tmpl folder under category folder, and at last create form. form. xml. Have a glance on the file hierarchy.


Copy the following code to form.form.xml and save the file.

Back to the page where you found last 500 error and refresh the page. If you constantly following me, I bet your reach screen below.


What are you waiting for? Fill the details of your new category and click Save and Close. Still wired screen waiting for you. Even you might be panick again when you landed on the following screen


Do you know why our inputted data aren't be available here? The reason behind, we have only created category database table called o39p1_gallery_categories and added single database field gallery_category_id. You can see in image above a row has been created with blank data, because there are no database fields available to save your category inputted data. So, it’s time to add those fields in o39p1_gallery_categories with Magic fields

Step 05

In this step, we’ll add 14 fields in our existing database table, o39p1_gallery_categories. Just create your as you can see in the following image and click save.


If you successfully added new fields in o39p1_gallery_categories table, Create a category and click Save and Close. You can your newly created category is on the category multiple view screen. Have a look at mine.



06 Step

I think you are thinking we have done with category single and multiple view creation, right? The answer is yes. If you are with me from the last tutorial, you have noticed, We haven't defining any category while creating single item. The reason was because we didn’t have category created then. At this moment we have categories are ready. We can assign them from now.

To assign an individual category with items. Head to views folder and open form. form. xml folder from single item view from the following link Joomla root directory/administrator/components/com_gallery/views/item/tmpl. You might notice some line codes are kept commented. If you removed your commented code while creating item, Just copy them from the 8th step of our previous tutorial Joomla! Component Development with FOF - Part 01. When you uncommented the code blocks. Open item single view to create new items from component dashboard. You can see the image below, I can assign a category with individual item.


When you have done entire setting, head to the items from this link Joomla root directory/administrator/components/com_gallery/views/items/tmpl and open form.default.xml file and uncomment the commented code and save the file. Open the items multiple view from component dashboard, have a look at the Items details view, it looks like following.


In this turn If you have created multiple category for your items, you will face a logical error. I mean when you create a random category by mistake, you can’t update them later. Do you know the reason behind? It’s because you haven’t created any foreign key on o39p1_gallery_items for o39p1_gallery_categories table. Now we add a new field called gallery_category_id on o39p1_gallery_items table.

To add new field on o39p1_gallery_items table, head your database open your gallery items table and add the gallery_category_id on the table. Have a look in the following image.


Conclusion For this tutorial, we can make a component that can store items with their category in the backend. Though it isn't enough for any component. But we are slowly moving to the completion. Hope you find this step helpful the same as the first one. Stay connected, I am returning soon with subsequent parts of component development.

Joomla! Component Development with FOF - Part 01

Joomla! Component Development with FOF - Part 01

Developing a Joomla! component generally gets you to write tons of code, right? If you want to get rid of that and want your component to be compatible with Joomla regular and major updates of Joomla. You are on the right place. Today, I will show you how to develop Gallery Component with FOF, develop by Akeeba, thought FOF comes with default Joomla! installation, but we’ll download F0F (FzeorF) files. You might think why download, F0F right? There is a funny reason, I will disclose at the end of my tutorial.

There are a couple of parts related to this component development, such back-end view and front-end view. Only back-end view involves with Item view and category view, and item view consists of single item view and multiple item view, and the same as with category view. 

If you are confused with item view and category view. Let me make things simple. When we click on the New button from Article Manager, it opens up the single item view. In Article Manager, we can see all Articles altogether, this is called a multiple item view, Have a look at the image below.


Note: I have defined the terms such as single as well as multiple items view and category view in the last paragraph only to make steps simple in the subsequent steps. Hope it will help you a lot. Let’s get started. 

Step 01

To develop a Joomla Component, download the latest version of Joomla and FOF framework. Install Joomla in your computer and FOF framework as well. I think, you might not familiar with the FOF framework installation. After downloading latest version of FOF framework from this link, unzip it. Once you unzipped the folder, you will find golf. Copy the folder, and paste it in the libraries folder from the Joomla! root directory after rename it From fof to f0f (FzeroF).


Libraries folder path: Joomla root directory/administrator/components/libraries

Step 02

Now select your component name. You know we’re going to create Gallery Component. In this tutorial we will create only backend multiple and single item view. To create your own component, head to the Joomla and create the com_gallery folder in the component folder following this link Joomla root directory/administrator/components. You might be thinking why I use com_ prefix in com_gallery folder, let me make things clear. Whatever component you’ll create you have to add com prefix before your component name, Suppose you will create portfolio component. you have create folder com_portfolio. Have a look in the image below.


Step 03

Now we have to create five files in com_gallery folder to initialize the component development. Here are file names create your own.

  • access.xml
  • com_gallery.xml
  • config.xml
  • fof.xml
  • gallery.php

com_gallery and gallery.php file name could be different depending your component name. If you create the portfolio component. The com_gallery and gallery.php name would be com_portfolio and portfolio.php.

Now open access.xml file copy the following code and paste on blank file access.xml.

Copy the following code, open gallery.php file and paste your copied code on it.

config.xml file copy and paste the following code

Copy the following code paste in fof.xml file

Now, open com_gallery.xml file copy the following code and paste on it.

Note: We are creating a gallery component. If you want to create some other component, such as portfolio component. Make sure you have replaced gallery text with portfolio on every file. You must follow the uppercase and lowercase convention while replacing your component name.

Step 04

Now you have to register your component in your database extension table. Open your database where you’ve installed your Joomla files. You can see my database name is demo. click on your database. click on Extension from left table columns. You might be thinking the prefixes before extension table, right? The prefixes are added automatically while installing Joomla, even you can add your own defined prefixes to secure your database. This is not part of FOF. Click on insert button from top navigation. Now fill name and element field value with com_gallery, type field value with component, assign the clicent_id,enable, access value with 1, fill the protect value field with 0, keep everything empty for this moment, and click on go button.


Step 05

Now we access the component backend view from url. Type the URL (http://localhost/yoursitename/administrator/index.php?option=com_gallery) on your browser address bar, make sure you have logged in our Joomla backend. You will face the error something like this ( 1146 Table 'demo.o39p1_gallery_items' doesn't exist SQL=SHOW FULL COLUMNS FROM `o39p1_gallery_items`). The error is indicating us. We have a database call “demo”. The query can’t show all columns from o39p1_gallery_items table. Right now we have database called “demo” but have not table titled “o39p1_gallery_items” exist in your database. In your turn the database name and table prefix could be different. Be careful while creating your database table.


Step 06

To create new database table in your database, select your database and click New under it. Now field you Table Name your table name. My table name is o39p1_gallery_items. Insert table ID name (I inserted gallery_item_id), choose type INT (integer) and select A_I (Auto Increment), keep other field empty for this time and click Save. You can see in the image below, how I filled the field.


Step 07

Now refresh the page where you 1146 error. But now it give you another 500 error. something like this ( 500 Layout admin:com_gallery/item/default not found). Don’t worry, we’ll no longer have this error after this step.


Now back to your joomla root directory in com_gallery folder where we created five files in our step 03 section . In this turn we will create backend view. To create backend view. Create a folder views under com_gallery folder. items folder under views, tmpl folder under items and create new file titled form.default.xml. Have a look on the file hierarchy.


Now copy and paste the following code in form.default.xml file

Now refresh the page where you got 500 error, Now you will get following screen.


Step 08

Our items multiple views is ready, Now we can term it items manager, because Its something like Joomla Article Manager. Currently there is no item is available in our items manager, because we haven’t create any items yet. To create new item click on New button from top menu. Now you will get 500 ( 500 Layout admin:com_gallery/items/default not found) error again. Because we haven’t created any files for single item view. To create single item view, back to the views folder. Create item folder under views, tmpl folder under item and create new file titled form.form.xml. Have a look on the file hierarchy.


Now copy and paste the following code in form.form.xml file

If you properly do the above steps, you can bring up the following screen.


Step 09

Our single item view is ready. Now give Title, Description, select image, and choose status publish for your new gallery item. and click Save and Close. Now you’ve created a sgine items, but no record have been created in our o39p1_gallery_items database table except gallery_item_id, because I’ve created only gallery_item_id field, not the other fields for Title, Description, Image, Status and other magic fields. You might be thinking what is magic fields, right? Magic fields have special meaning for FOF. to learn more about FOF, have a look on this link.

Lets get back o39p1_gallery_items table, and create all fields with their data type and values. Have a look in the image below, how I’ve created, insert the following fields in your items table, and click save button.


After clicking save button your items table will look like this.


Now you can insert your item from single item view, click save and close. Now you can see your newly created item has been added in your items table. Have a look in the image , My newly created item has been added in my items table.



There are couple of way to develop Joomla component, I found this way the easiest and quick. If you have eagerness to develop Joomla component, or want to try new way to develop component, FOF is the great way to get your started. The tutorial is only the first part of our entire gallery component development process, in upcoming tutorials I will take you the subsequent of parts of this first tutorial. If you have any question to please let me know in comment below. If love you answer, it leads my excellence into perfection. Hurry up! I am waiting for your response.

How to Install a SMTP Server in Joomla!


Delivering transactional emails is considered one of the most recursive and important tasks for a website owner. If your transactional emails fail to reach recipients’ inbox, it will be difficult for you to have the benefits of an automated email transaction. An automated email transaction is heavily dependent on a reliable SMTP server.

However, using an ordinary email service provider such as Yahoo Mail, Gmail and Hotmail has its restrictions. This is because they allow only a certain number of emails to be sent by a particular user per day. You might be thinking what is a smart solution for transactional email delivery and how to configure it, right?

For the purpose of this article I am going to discuss how to set up Mandrill for transactional emails. Mandrill facilitates sending 12,000 emails per month absolutely free. It’s easy to configure with a couple of steps. But the steps could be different depending on CMS. My today’s goal is to show you how to set up Joomla SMTP server on your Joomla website.

Step 01

To setup an Joomla SMTP server for transactional emails, you must have a registered account on the Mandrill website. Login to your Mandrill account, it will take you to the Dashboard of your account. Click on Get SMTP Credential button. Mandrill will verify your account password and give you Host, Port, SMTP Username and SMTP Password details under SMTP & API Credentials tab. But SMTP Password requires valid API key.

By default Mandrill doesn't provide an API key for SMTP password. To get the API Key, click on the Add API Key button. and you will be notified with a valid API Key.


Step 02

Now we have all the SMTP credentials to configure an Joomla SMTP server on a Joomla powered website. Head to the Joomla backend. Go to the Global Configuration via System > Global Configuration link and click on server tab. Under the server you will find Mail Setting. Now we can configure Joomla Mailing Settings for the SMTP server using the following settings:

  • Send Mail: Yes
  • Mailer: SMTP
  • From Email: The email address your recipients get mails from.
  • SMTP Authentication: Yes
  • SMTP Security: SSL
  • SMTP Port: 465
  • SMTP username: Your Mandrill username
  • SMTP password: Your Mandrill password (API Key)
  • SMTP host: smtp.mandrillapp.com (Mandrill Host)

If the 465 port doesn’t work, use the following settings:

  • SMTP Security: TLS
  • SMTP Port: 587


Step 03

You might be thinking how do you scan for empty or busy ports. Don't worry, it's easy. Head over to mxtoolbox.com, select Port Scan from MX Lookup drop down, enter your desired website address and scan your site ports.


Step 04

Now register your user from the front-end of your Joomla website, and your user will get a confirmation email from your website system automatically. If you don't have a module to test your user registration, just type your website URL with following extension (www.example.com/index.php?option=com_users&view=registration), and it will open the user registration form. Complete your registration with your test email address, you will get a confirmation email.


I have shared my working experience with the technology I use for transactional email delivery. I would like to hear from you what extension you use for your SMTP client, in case I missed anything in my article. I would be grateful to have your experience in the comments.

If you are interested to read more, you can check our blog. For Joomla templates and Joomla extensions check here.

Originally published at www.magazine.joomla.org

Create Your Own Joomla Ecommerce Website Within 7 Steps

Create Your Own Joomla Ecommerce Website Within 7 Steps

We've developed our own open-source eCommerce extension called DigiCom. Check out from here.  

Are you looking for the easiest way to set out own online business right away?

There are a couple of Free and Premium extension available for eCommerce Joomla Website. For eCommerce extension, I found HikaShop comparatively useful for an eCommerce solution. And It’s going to be a great alternative of Virtuemart. The eCommerce extension comes with bundle of features with minimal restriction in the free version and extensive opportunities in commercial versions. So, I like the extension overall except it’s user experience. Let’s move forward. For your convenience, I have divided my entire process into 6 steps, Have a look below.

  1. Download and Install Hikashop
  2. Create product category
  3. Add Products and its details
  4. Add Product Categories, Image And Prices
  5. Add Characteristics
  6. Publish Products in Front-end

01. Download and Install Hikashop

Download the Hikashop eCommerce extension from their website and install the extension from the Joomla extension manager. For a quick demonstration, I am going to describe the entire process with non-commercial version of the HikaShop on Bolt Template. So, If you don’t have the premium version, feel free to download non-commercial version.


02. Create Product Category

Categories are mandatory to have an extensive benefit of this extension, such as complex chart and many more. To create a category, head to the link Components > Hikashop > Categories. If you don’t need category, you don’t need to create them. You can see a category called “Product Categories” in the left sidebar, add your product under this category.


If you want numerous categories. Make sure you have selected the root from the left sidebar. Click on the new button and create your own category. You can see in the image below, I have created three new categories. The categories are Joomla Templates, WordPress templates, and Ghost Templates. Now my categories are ready to take my products in.


(Note: You cannot delete default category, you have to rename it for your new one.)

03. Add Products And Its Details

Now it’s time to add products in our store, head to the Components > HikaShop > products. Once you’re on the product page. Click on new button. It will open up a page most numerous options. Fill out product name fields, Scroll down the page you have more important data you need to add. Make sure you have filled code field. It is required and others depend of the product type and specification and other options.


04. Add Product Categories, Image And Prices

You can see many of important setting options are available. Now I only add product categories, product image and price as well in product details. 


When you click on the New button to create new products from product manager, It will open with the category highlighted in products manager. Now click on Add from category section. Select root from the right sidebar and then select relevant  category you want and click OK. A product could have multiple category. You can add other categories as you added the first one.


Product image essential while you showcasing your products. Add your product image from image section, you have already uploaded your product image in click on select button and choose your relevant image. You can see in the image below, I have added one image for our template product.


Filling pricing section is one of the key parts of this section. But you might find adding pricing for your product a bit confusing. Click on the Add button. You can add a row by clicking on this button. If you want to remove a row, set its price to 0. The change will be applied after clicking save button.


05. Add Characteristics

Characteristic refers to the term “Variant”. Such you sell template, and your product is web templates, A template could have number of preset styles. For the demonstration we add presets as variation. To create such a variant for your templates, make sure you have save your previous changes. Head to the Characteristics manager Products dropdown. click on new button to Hikashop top menu. You can in the image below. I have put Preset Styles in name field (white and dark dark) color in value section, click on Add button to add more. Now you can create yours.


Now open your product where you want to add Characteristics from product manager. Scroll to Characteristic panel. you can see in the in the image below, my Characteristic has been added. Add your product characteristics clicking on Add button.


06. publish Products in Frontend

Now we have created all the settings to publish products in the front-end. There are a couple ways to publish products to the visitors end. But you might mostly familiar with two ways. First, you can publish products on a separate page linking on the main menu, and subsequently way to publish products on module position. But Joomla module positions can vary from templates and templates. So, I will publish products linking on the main menu. Have a look at the image below.


To publish products on main menu, add a new menu item from this link Menus > Main Menu > Add New Menu Item.  Fill Menu Type fill with menu item name (You can see in the image above, I termed my menu Template Jungle ), click on Select button from from Menu Item Type, Reveal  HikaShop tab, click on Categories listing and finally hit Save and Close



I have just showed the basic implementation of HikaShop, There are lots of features in you find in HikaShop extension. Such as you can set price of products based on Characteristics. If you have any question, please ask in question below.

How To Add Support Forum in Your Joomla Website


Establishing a sound business communication with your existing customers and targeted clients is considered key to business strategy. The more you get a chance to communicate with the audience, the more you feel what they expect from you. Now the question is. What is the effective way to reach to customers easily? The answer is managing an interactive Joomla support forum on your website.

You might be thinking, why to manage a forum in a separate website instead of using social channels. Though social media are easier ways to reach existing and target customer, but the problem is the user created issues are unorganized. Even they are difficult to find out quickly. So if you want to foster real discussion and want to manage them easily on your site, your best bet is to add a Joomla forum.

Before bouncing from this post cowering in fear, allow me to ease your mind. You don’t need to know a single line of code to add a Joomla forum plugin to your Joomla site. You might think, I’m kidding. No, I am not. The only thing you have to install the extension and configure them to your specification.

From my experience I found two awesome Joomla forum plugin in Joomla JED (Joomla Extension Directory), the first in Kunena (Free) and another is EasyDiscuss (Premium).

Forum with Kunena

Step 01

To install a blog in your Joomla website, you have to download Kunena first from Kunena official website and then install the extension via Extension > Extension Manager > Install > Upload Package File link from the Joomla Back-end.


Step 02

Now, We have successfully installed the Kunena Joomla forum extension, but forum could not access from the website front-end. To access the Joomla forum from front-end, we have to add a new item in the main menu. To add a new item in main menu, click on Add New Menu Item via Menus > Main Menu link.

Now add Menu Title (I titled Discussion), and click on select button from Menu Item Type. Unfold Kunena Forum tab. It will open up some options, select Home Page from the options and click Save and Close.

Configuring Kunena

Step 03

Now head to the front-end of your website, I am using Appy (Responsive Joomla Template for App & Business) template. You can see an item titled Discussion added to the main menu. Under the Discussion menu item you can see, a full-fledged forum system has been added.


I installed Kunena with its default feature and haven’t changed any single settings. If you want to know further settings of Kunena, get into Kunena Dashboard via Components > Kunena-Forum. From the Dashboard, you can manage your user, rank, file, template plugins and many more.

Forum with EasyDiscuss

Step 01

EasyDiscuss is a great premium Joomla forum extension for Joomla websites developed by Stackideas. If you want to buy EasyDiscuss, Stackideas provides a 20% discount for any of their extensions of ThemeXpert account holders (coupon: BLOGXPERT20). To install EasyDiscuss, download the extension from their website and install it as we installed kunena. When you successfully install Easydiscuss the following screen will appears.


Step 02

Now, We’ll add a menu item in the main menu to access Easydiscuss from the front-end. The process is the same as we did Kunena Installation. Click on Add New Menu Item via Menus > Main Menu link.

We titled menu item Discussion for Kunena, in this turn, we'll title Forum for Easydiscuss. And click on the Select button from Menu Item Type. Unfold EasyDiscuss tab, It will again open up some options, select Frontpage Layout from the option and click Save and Close.


Step 03

Now back to the front-end, you can see a new menu item has been added titled Forum in the main menubar. Don’t forget click on Forum, now have a look EasyDiscuss is rocking on your website.


EasyDiscuss comes with total forum management system with extensive control handles, such as Auto Posting, Tags Manager, Category Manager, Role Manager, Blog Moderation, Custom Field, Moderation and many more. If you want to pay with the options, head over to Components and click on EasyDiscuss. and you will be taken to the EasyDiscuss Dashboard.



In this tutorial we shared our experience of Blog with Kunena and EasyDiscuss, but before you embark on your Joomla forum-creating journey, I want to hear from you “What Joomla forum extension do you use for forum that I missed here?” As always, I'll be glad to have your thoughts in comments.

If you need any free responsive Joomla templates, we have a list of good collection. Also a list of premium Joomla templates is also available. Be sure to check these templates.