Chatbots are a great new way to engage with clients. A chatbot allows for a more "conversational" style of interaction as opposed to the traditional "transactional" way of interacting with web applications. A well-designed conversation experience can keep users hooked and increase the time spent with your applications. In this blog, we write about how we used FlowXO to create a quizzing bot for Shika
For the past couple of months, we have released couple of blogs on some of our infrastructure extensions like TJ vendor and TJ notifications and we thank you for the feedback. We are happy to introduce yet another infrastructure extension-Hierarchy Management.
Hierarchy Management is an horizontal(Infrastructure) extension for Joomla that allows setting up general or context specific hierarchical relations between users which can be further be used by other extensions for a variety of purposes like allowing special access control, reports generation and so on. Hierarchy is currently supported out of the box by TJ Reports for manager reporting and JLike for assignments. Read on for the features.
We are super excited to introduce TJ Reports - our Infrastructure extension that allows developers to easily develop reporting plugins and get extensive reporting capabilities in their extensions. Features include extension specific and multi extension reports, Report default configuration, Report customisation and CSV exports to name a few.
Let’s look at the features it offers in detail as well as how the integration with extensions works. Continue reading for the feature list.
Over the years we have received numerous requests to create a 'real manager’ or a way to edit system email notifications. We decided to go one step further. Enter TJ Notifications, our next 'horizontal’ or 'infrastructure’ extension.
This extension will eventually allow all our products and any other products who integrate it to centrally manage all notifications in your Joomla site. While we will start with emails, eventually we shall be adding support for SMS/Text notifications, Web Push (browser notifications) as well as native site notifications.
You might have wondered at our blogs being a little silent. Well a lot has been happening behind the scenes. In the past several months our teams have been working on a host of ‘Infrastructure’ extensions that will add immense value and decrease development time for our extensions as well as custom projects.
Infrastructure extensions are like Joomla’s core com_categories. Other extensions can use it without having to recreate the wheel. The below diagram should give you just a little bit of an idea as to what all is coming !
In this blog we shall be talking about one such extension - TJ Vendor. Techjoomla today already has several extensions like Quick2Cart, JGive, JTicketing that support a multi vendor mode. Soon Shika will have the same functionality. The core of the multi vendor system that supports Vendor Management, Fees management, Payouts to name a few have been abstracted into a reusable extension.
Joomla already has powerful form management libraries - jform, supported by jfield. There is plenty of built-in field types (text, textarea, integer, file, calendar and several more). However, once in a while you come across a special field that is not present. Or maybe extending the existing field types to add more features.
These are perfect candidates for creating your own JFields. The JField class is very easy to understand, and using the same you can create any kind of simple or complex fields. Bear in mind that while the JField class will render your field, it's up to your model to save the data.
Forms are everywhere on the web. From a simple sign up form to complicated application forms you’ve seen various forms with varying validation and fields. A very popular way to ask users to input multiple values for similar data is to use the “Add More” type field where the user can add any number of entries. Examples are Educational Qualification, Previous Employment History etc.
Joomla too supported the add more fields natively, by use of the repeatable element. However it had a few limitations
We’d tried to overcome these in a recent project by improving the repeatable field, but while we were doing that we realised that Joomla 3.6 has solved this in a much better way! Welcome “sub forms”. This provides a way to use JForm XML inside existing forms, by way of including another XML in lieu of a field in the parent XML. With sub-forms you can -
Any Joomla developer worth his salt knows to use JRoute::_() to ensure he produces SEF URLs. This is an important SEO thing! However, if you’re writing code that does things from the Joomla Admin, the URLs turn out to be non-SEF. No I’m not talking about the URLs of the Joomla Admin itself.
Shika sends a notification email with a link to the course when a user enrolls for a course. When the user enrolls from the frontend, the email contains the shiny SEF URL. But if the admin enrolls the user, the email contains a non-SEF link in spite of correctly using JRoute::_() Don’t believe us ? Try for yourself :) Depending on the type of link you are creating the link might even have the part /administrator in it.
Reliable email delivery is key in web applications, you don't want your customers to miss that order confirmation email or skip that very important Social Network notification. When using a service like Amazon SES, that additionally helps you improve your email sending quota if your web host gives you a rather small quota. It's fairly easy to get up and running with Amazon SES. You'll need to have an account with Amazon AWS (of course!)
Then, just follow these steps to get going -
Set up your Amazon SES account for sending
Note: This Blog is targeted to developers!
Sometimes the module positions that come with your template are just not enough, or if you’re a developer you might want to allow your users to load modules inside various parts of your component.
A good example is if you want to publish Ads coming from SocialAds on your EasySocial stream without changing any default functionalities of the stream. You'd do this by loading the Social Ads module in one of the various positions that Easysocial has already set up on their stream.
When you are handling date and time, its likely that a developer might get confused on what is the right way to handle multiple timezones.
As you can see in the Image below, the date selected is 2015-08-26 05:30:00, This is the user’s timezone date and time.
If we save the same date in our database it would mismatch for the person who is sitting on the other corner of the world.
Note: This Blog is targeted towards Developers!
We will be going through a detailed step by step process of writing a JMailAlerts Plugin.
Extending JMailAlerts needs you to create special plugins of the type 'emailalerts'
Note: This Blog is targeted to developers!
As Joomla developers, you might have come across an issue wherein you need zoo items which have specific value under specific field?
Let's say you have a site where there are some discount offers on some books under different categories. For such books to show up under offers module, you need to have one zoo field saying ‘Have offer?’ with value ‘yes’. Also, you might be aware that the way zoo stores its field values is very tricky and it will be a huge task to get such items using database query.
Note: This blog is targeted for Joomla! Developers
Doing validation on client side, before form is submitted to server is always recommended. If you have developed a Joomla! extension you might have used some of the validators that Joomla! provides, which are listed below. Joomla! provides these basic form validators which you can use in your Joomla! form, although, there can be situations where the form fields you are using need different validations than what Joomla! validators offer. In this blog we will see how to add custom validators in Joomla!.
In Joomla, Module configurations are stored as Module parameters. Typically you only need to use parameters in the module itself. However, sometimes you might need to access them from other places like your component or a plugin. And this can get especially tricky when you have multiple copies of the module.
A live case example for this is SocialAds Modules. In this case we need to know in places other than the module itself what parameters each copy of the SocialAds module is configured with.
This blog will show you how you can do this.
While using this in one of the projects our services team works on, we discovered that this had some limitations which we needed to get around.
The name of the plugin suggests that this plugin "Zoo Element Anywhere" will as the name says, work everywhere. However, we found that it doesn't work "everywhere"; to be more specific, inside text fields. The syntax of this plugin only works inside text-area field and not in simple text field.
As a Joomla extension provider, we are always rolling out updates for our extensions. Whether they are minor bug fixes or major feature releases, its always recommended that customers stay up-to-date so that they get the best of features, bug fixes as well as security fixes.
Normally the only way to notify them would be via Blogs and Newsletters. However this needs the customer to do the process of updation manually.
With Joomla however, there is a much easier and smarter way of doing this using the Updates system. This is already baked into the core of Joomla and can be used by any Joomla extension. There is a core way to achieve both notifications and automatic updates which you can read about here. It works pretty well for free extensions but needs you to manually maintain the updates manifest. We have updated the blog with some inputs from weebler to also demonstrate how you can do this with core Joomla.
The Akeeba Release System from the awesome Akeeba team however can give this system a major shot in the arm by completely automating Manifest generation and maintenance and also support updates for commercial extensions
Here’s a quick tutorial on how you can use ARS to automate extension update notifications and live updates in your extensions.
In fact since Joomla 3x has become the standard, your end users might be completely missing your updates if you are not using the Joomla 3x notification system and rely on your own ‘In extension notifications’ Read more about this in our earlier blog.
Note: This Blog is purely targeted to developers!
We have already seen how you can introduce filters to list views in the Joomla admin & collate them under the Search tools menu previously in our Blog last year.
The Search tools filters are extremely useful to admins especially if your extension manages a lot of data. As a usability feature, Joomla retains the state of the filters to the ones last used by the user.
In most cases, manually setting the filters will work just great for Admins. However there are some cases when knowing how to set filter parameters via the URL can be very useful.