The Techjoomla Blog

Stay updated with all the latest happenings at Techjoomla. From news about the developments in your favourite extensions to Tips & Tricks about the Joomla CMS, Framework & Development.

Recent blog posts

Posted by on in Jticketing

We are very pleased to announce the immediate availability of JTicketing v1.4.4 to our subscribers. This version introduces some great usability changes including better implementation ofbootstrap, One Page checkout & a new Dashboard control panel in the backend. This is also a upgrade that you will need to do if you plan to use our brand new IOS & Android app for Event owners. 


 Selection 007 Selection 008 Selection 009 Selection 010

Lets take a quick look at the Features

  • One Page checkout flow for a quicker & streamlined checkout experience
  • Billing information capture during checkout introduces
  • Compatibility with JEvents 3.1.7 & JomSocial 3X
  • VAT Reg No Field added on request for EU customers
  • Invoice support added on request for EU customers 
  • Basic Taxation support introduced
  • Better Bootstrap implementation 
  • New Control Panel with a dashboard

This is a release that we would recommend everyone upgrades to. To read the full details of this release including all features & bug fixes, please read on. 

Continue reading
Hits: 3381 Comments
Rate this blog entry:

Posted by on in Joomla Development

When you are custom developing on top of JomSocial, you sometimes need to Catch Ajax calls for modifications. This Quick tutorial will take you through how you can do this.

The OnAjaxCall Call Event

This is Jomsocial event will be triggered before any Ajax operation is performed. The plugin can decide whether to proceed with the Ajax operation by returning true or False. By using this event you can fetch ajax function name and also Id related to that. You can read more about this call in the JomSocial Docs

Sample Code for Catching Album Delete

Below is the example for fetching album 'delete' action with 'albumid' to perform some updation operations.
Make a plugin of the  community with code as below.

function onAjaxCall( $arrItems )
                //$v  =  var_export($arrItems, true); 
               //Outputs or returns a parsable string representation of a variable
               //So, print $v to check what exactly we get in ajax response .
             $fucn     = JRequest::getcmd('func'); //get exact function name here to catch
             $arg       =JRequest::getInt('arg2');  //In this case, get albumid here
       if($fucn == 'photosajaxRemoveAlbum'){                                                                                    
//Your code here.for updation or deletion or whatever
return false;
Hits: 2155 Comments
Rate this blog entry:

Posted by on in Joomla Development

Once in a while, all of us come across a site that still feels a bit laggy even after doing all the caching & gzipping. Adding appropriate indexes to Joomla's tables can improve query times, effectively decreasing page load times. Depending on your table structure and the amount of data, indexing could mean massive to a slight performance improvement! Practically, indexes are a type of tables, which keep primary key or index field and a pointer to each record into the actual table.

To start with, you need to set up your development server to log the queries not using indexes. To do this, add this to your MySQL server's my.cnf

log_slow_queries = 1
slow_query_log_file = /var/log/mysql/slow.log

Choosing columns to index

Now this is the trickest part. While there's no steps 1-2-3 on this, a rule of thumb (from IBM's SQL guidelines) can be - 

  1. You should create indexes on columns that are used frequently in WHERE clauses.
  2. You should create indexes on columns that are used frequently to join tables.
  3. You should create indexes on columns that are used frequently in ORDER BY clauses.
  4. You should create indexes on columns that have few of the same values or unique values in the table (i.e. indexing the published/approved columns may not be a good idea).
  5. You should not create indexes on small tables (tables that use only a few blocks) because a full table scan may be faster than an indexed query.

Adding Indexes

Continue reading
Hits: 37874 Comments
Rate this blog entry:

Posted by on in Invitex
Here is an awesome chance for you to know how Invitex can help you get lots & lots of new members for your website ! The guys at CloudAccess have invited us to do a Webinar about Invitex & share the secrets of Setting up Invitex in the best possible way to make your site go Viral !

What is Invitex ? 

With Awesome features like Native Api contacts import, Automated invitations, Intelligent invites, Rich invitation content, tracking, points integration & much much more, Invitex is easily the most comprehensive Invitations system available for Joomla today ! Read the Full Scoop

Invitex, Take your Joomla site Viral ! Live Webinar @ 9AM EDT, 11th September Local Time

The session promises to be exciting & a great chance for you to get to know Invitex inside out.  Invitex is a pretty large extension & can get overwhelming . So Dive in & get it simpliefied ! Join us & see Invitex explained to a depth it never has before.  Don't Miss out ! Sign Up today !!

Meet the Team ask them all the Questions you want !

Its an awesome chance to meet our Invitex team & bombard them with all the questions you have. Though only one or two of us will actually present, everyone will be online & available to answer your questions. So fire away !

alt alt alt

Give your Inputs for Invitex 2.8 by commenting on our Blog !

Read our Blog about whats coming in Invitex 2.8. Whether you attend the Webinar or not, make sure you contribute your suggestions & Feedback on the next release of Invitex here !

P.S. attendees get access to an awesome offer too . So make sure you are there !

Hits: 4224 Comments
Rate this blog entry:

Posted by on in Invitex

As part of our Initiative to involve our custommers in our development process, here is another Subscriber Connect update on Invitex. We have another awesome release of Invitex planned out for release over the next few weeks. We have listened to your feedback in planning this release & hope you will be as excited about it as we are !

The Subscriber Connect Blog & Newsletter Series helps us start a conversation & listen to ideas & feedback & help come out with better releases. We hope this edition of the Blog detailing some of the expected features in Invitex 2.8 will invite lots of feedback, suggestions & feature requests. As always, we will try & get what we can in this release itself . 

We have just begun the development of Invitex 2.8 which includes a lot of features that you have been asking for ! Lets take a quick walk through these features. We would like you to join the discussion by commenting on this blog. We also have some specific questions for you & it would be great if you could answer those for us !

Planned Features for Invitex V2.8

User Information Plugin for Rich Personalised Landing pages

rich uinfo

You already know that you can create awesome custom landing pages for Invitex using a Joomla Article & any custom content you want as well as any content plugins to add that Zing to it. Now with this User Information content plugin, you will be able to  make these pages even more awesome !

Continue reading
Hits: 7993 Comments
Rate this blog entry:

Posted by on in SocialAds

socialads src Joomla 2.5 Compatiblecompat 30ext comext pluginext lang


We have released SocialAds version 2.9.4 which contains minor bug fixes for reported bugs. Please check the changelog given below. 

Change Log for v2.9.4

- Bugs Fixed

#21349: FOF is not install with 2.9.3 package
#21389: changes to check if advertiser is non admin

Update now

Hits: 1443 Comments
Rate this blog entry:

Posted by on in Joomla Development
Sometimes, you might have operations like crons running PHP scripts behind the scenes. If there are any errors in it, it can become difficult to debug them since they might not affect the entire website. Whether you are doing this with any PHP framework or in a Joomla component, logging can help you debug such issues.
Here is how you can use Joomla's logging functionality to log your errors to a file.
jimport('joomla.log.log'); //import this file on top of the file
//write db log code inside your function
        //Sets file name
        'text_file' => 'com_test.errors.php'
//Sets all JLog messages to be set to the file
 //Chooses a component name
//insertion code :-
if(!$db->insertObject($table_name, $final_array, 'id')){
$logEntry = $db->stderr();   //logentry variable
// Log my extension errors only.
JLog::add($logEntry, JLog::WARNING, 'com_test');
return false;

Logs shall be stored in yoursiteroot/logs/com_test.errors.php

Hits: 4937 Comments
Rate this blog entry:

Posted by on in Joomla Development

Recently, we had a chance to develop a Payment gateway plugin fo HikaShop. We thought this would be a good chance to share a small overview with everyone !

Lets Get started. 

Declare the configuration

First we need to declare the plugin configuration. This function will set plugin parameters of backend , like public,private key payment mode etc.

var $pluginConfig = array(
        'public_key' => array('PUBLIC_KEY', 'input'),
        'private_key' => array('PRIVATE_KEY', 'input'),
        'payment_mode' => array('ENABLE_PAYMENT_MODE', 'list',array(
            'true' => 'Test',
            'false' => 'Live')

Catch Order Value & Currency

The payment gateway we are currently working with needs Cart Amount & Currency. This isnt available in the standard triggers. So we will use the "onAfterCartProductsLoad" trigger to catch this information. In our case, this is specifically needed for Credit Card 3DS to create the token.

Get Additional Information needed for Payment gateway

Hikashop first creates the cart object & then processes for credit card validation and after that order is be placed. The Payment gateway we are working with, needs some  additional feeds in addition to the data provided by HIka. So we extend the form with our own custom HTMLNeedCC :-

Continue reading
Hits: 7616 Comments
Rate this blog entry:

Posted by on in Joomla Development

While developing a custom frontend for Authors to manage their own content, we needed to let them delete their own items. The Quick & Dirty way of doing this is by  executing some delete queries on zoo related tables.But thats not the right & elegant way to do it.

The right way is to use the Zoo API & do this in 3-4 lines of code against 20-30 lines of the dirty code.

$Zoo_Item_Id = 29029; // Zoo Item id which you want to remove.
$app = App::getInstance('zoo'); // Define Zoo app instance.
$item = $app->table->item->get($Zoo_Item_Id); // Get the info of $Zoo_Item_Id
$app->table->item->delete($item); // Removes the $Zoo_Item_Id record from all respective zoo tables.

Just follow the above commented code & you should be done !

Hits: 2427 Comments
Rate this blog entry:

Posted by on in SocialAds

SocialAds Webinar @CloudAccess !

The guys at CloudAccess have invited us to do a Webinar about SocialAds & share the secrets of what goes into setting it up to Maximise the Revenue earning potential of your website !

With innovative features like Flexible Zones & pricing, Email Ad delivery, Extensive Social, Geo & Keyword targeting, Flexible pricing models & extensive developer APIs SocialAds is built to give your site Revenues a shot in the arm. 

SocialAds, Joomla advertising reloaded. Webinar @ 9AM EST, 4th September

The session promises to be exciting & a great chance for you to get to know the intricacies of SocialAds & make sure that you are using it in the best possible ways.

Meet the Devs

Plus all our Devs will be participating as well, so it's also a great chance to interact & give us your feedback on what should be the direction SocialAds takes in the future. Don't Miss out ! 

Continue reading
Hits: 2733 Comments
Rate this blog entry: