Macrotone Blogs

Macrotone blogs upon Joomla, our products and other matters.

Issue Tracker 1.6.11 released.

issues-48We are pleased to announce the availability of Issue Tracker release 1.6.11 for Joomla

This update is mainly intended to correct the mailing of notifications and reports caused as a result of the change to the Joomla JMail API in the 3.5.1 update.

This release has not been tested against Joomla 2.5 which is unsupported.  It may run upon Joomla 2.5 but we regret that support for against such an old version of Joomla is unlikely to be available.

See the changelog for details of all of the changes.

 The update is available in the download area.

The use of specific Component User Tables

During our development of our Time sheet component we looked very closely at the use of specific component user tables. These are tables that are specific to a component, which are/can be very useful when there is a requirement to associate some specific criteria to one or more users. i.e We might wish to enable email sending only to specific users.  This could be achieved with the use of Joomla ACL controls but often this can be a little bit overkill especially when there are a number of different combinations involved. In these situations the number of ACL groups required could/would quickly get out of hand and require a lot more overhead in determining the result if user actions in the component. Such user tables are often automatically populated by a system plugin that would automatically add any newly registered Joomla users to the component user table and also maintain any changes that the user might make to their profile such as username or email address between the Joomla user table and the component user table.

One other use for a specific component user table would be where there is a requirement for specific ‘unregistered’ users. An example might be where the component was collecting details of users who requested information upon a specific topic by filling in a form upon the site front end, and at some later stage an administrator might process such requests from the details recorded in the component user table.

Generally component user tables work well in practice but there is one large downside, which is that there is (in all of the uses we have seen),  an explicit assumption that all Joomla users will or are required to make use of the Joomla component, which is not necessarily true.  A Joomla web site will probably have a number (often in the hundreds if not thousands) of users and if the site has a specific component installed that is used for example, by internal staff only, there is no need to have additional entries in the component users table for the non-staff members. In the case of our Timesheet component only certain of the site users would make use of the component so there is no need to have an entry in the component user table for every single one of the Joomla users.

This has resulted in our implementing a change to how Joomla users are integrated into the component user table. The former mechanism of having automatic user table update by the use of the system plugin was obviously not desirable,however we did want to synchronise any updates (and deletions).  Thus we have a need to introduce an optional parameter to the system plugin which will control whether new Joomla users are automatically added to the component user table.

With this in mind we have modified a few of our components, and are in the process of modifying a few others, so that the automatic addition of Joomla users to the component users table is a system plugin option. This change is relatively trivial, but there is an additional change required, which is to provide a mechanism so that users can manually added to the component users table by a site administrator when required, such as when new staff join the company..

The first component to use these mechanisms was our Timesheet component and we have now also added our Rialto (Classified Ads) component,  Obviously in the first of these we are only interested in providing the ability to create timesheets to our internal staff.  In the later component we may only have a select sub group of users who we may want to be able to create/manage their classified advertisements. We will also add that, yes we do also include the ability in the components to use Joomla ACL rules but this alone would not address the number of entries in the component users table and could well make the administration of ACL groups a lot more complex as mentioned earlier.

There is some additional code required but the benefits include a smaller component users table, with much clearer administrative visibility and control over who is using the specific  component.  It also provides the ability to have a simple test upon whether the register user in the front end has an entry in our component user table to control what specific front end views they may be presented with.

Timesheet Component 1.0.3 released

timesheet

We are pleased to announce the release 1.0.3 of our Timesheet component for Joomla 3.5.

Macrotone Timesheet is a component which allows employees to enter timesheet information that may later be printed and/or distributed to the company accounts for processing. The idea is that employees have a central mechanism for time entries against specific project (or account) codes.

Note that it requires a MySQL database version 5.5.3 or higher.

This minor update corrects a few minor problems, updates the underlying grid software to the latest release version and adds a few more options to the front end time code display.

Please see the changelog for more details.

Joomla Audit 1.2.0 released.

auditWe are pleased to announce the availability of Macrotone Joomla Audit release 1.2.0 for Joomla 3.4

This minor release intended to support Joomla 3.5 also corrects a few minor problems discovered in the earlier release.

This version has been tested against Joomla 3.4 and Joomla 3.5 RC3.

 See the changelog for details of all of the changes.

 The update is available in the download area.

Timesheet Component 1.0.2 released

timesheet

We are pleased to announce the release 1.0.2 of our Timesheet component for Joomla 3.4.

Macrotone Timesheet is a component which allows employees to enter timesheet information that may later be printed and/or distributed to the company accounts for processing. The idea is that employees have a central mechanism for time entries against specific project (or account) codes.

At initial release it runs upon Joomla 3.4 the current Joomla release.  Note that it requires a MySQL database version 5.5.3 or higher.

This minor update corrects a few newly discovers problems but also runs upon Joomla 3.5 RC1.

Please see the changelog for more details.

Using a custom Joomla library in your components

We were aware of an article written by Roberto Segura which covers the use of libraries in ones; own written components.  This addresses (in one way) a conclusion that there was a certain amount of duplication particularly in the language strings but also in code that is used both in the front end of a Joomla site and in the back end of the site.

We have been ‘playing’ (for want of another word) with the concept in a new component that we are developing and are very pleased with the way that it is shaping up.  We had already made changes in some of our later components to use the back end language strings in preference to the front end language files, and also where ever possible use the Joomla globally defined strings, but the use of a specific component library can aid in the use of language strings but also in the use of common code, without the need for adding additional code to include specific files by making use of the Joomla library autoloader.

We thought it was worth sharing this with our readers as even though we have been using Joomla for many years there is still much more to learn and discover. This is after all another one of the things we like about Joomla.

Timesheet Component 1.0.1 released

timesheet

We are pleased to announce the release 1.0.1 of our Timesheet component for Joomla 3.4.

Macrotone Timesheet is a component which allows employees to enter timesheet information that may later be printed and/or distributed to the company accounts for processing. The idea is that employees have a central mechanism for time entries against specific project (or account) codes.

At initial release it runs upon Joomla 3.4 the current Joomla release.  Note that it requires a MySQL database version 5.5.3 or higher.

This minor update corrects a few newly discovers problems but more importantly add a system plugin to provide synchronisation for the users details.

Please see the changelog for more details.

Timesheet Component 1.0.0 released

timesheet

We are pleased to announce the release of our latest component Timesheet for Joomla 3.4.

Macrotone Timesheet is a component which allows employees to enter timesheet information that may later be printed and/or distributed to the company accounts for processing. The idea is that employees have a central mechanism for time entries against specific project (or account) codes.

At initial release it runs upon Joomla 3.4 the current Joomla release.  Note that it requires a MySQL database version 5.5.3 or higher.

A timesheet is defined as a piece of ​paper upon which an employee records the number of hours they have ​worked. We have taken this and made it a Joomla component for recording these hours, Within the back end of the site one can add existing Joomla users to the timesheet tables, thus enabling them to create/edit their own timesheets. One also defines the users who can 'approve' and already completed timesheet, either at this stage or later.

The back is is also where the account/project codes are created and maintained. In the initial release the time codes are visible via a front end display, but are not editable or created on the front end.

The front end is where users will create their timesheet, and where they are generally approved. The timesheet' grid' is where the hours assigned against each project (or account) code is performed. All grid editing occurs solely in the users browser. The grid data is not saved to the database until the user presses the 'Save' button.

Note that time sheet grid editing is not implemented in the back end by design.

The component has an option to ensure that each user can only submit one timesheet for each defined weekly period.

Kbase 1.1.0 released.

l com kbase
We are pleased to announce the availability of Kbase release 1.1.0 for Joomla 3.4

Kbase is a 'knowledge base' component used to present support information for our developed components in a user friendly manner upon our web site.  This update corrects a few very minor language problems and adds a new Glossary (Acronyms)) feature.

Updated documentation is available both as web pages and as a downloadable PDF file.

The update is available in the download area.

Making a component truly Multilingual (6)

We duly released our ‘multilingual’ component Rialto, and there are just a few additional points worth mentioning before we wrap up our series of blog posts upon this topic

One cool trick that we discovered from reading the Joomla documentation is the ability load arbitrary front-end and back-end language files of any component and language. For example, you may want to load the English language file and mix it with the user's current language. This means that untranslated strings will appear in English and not as untranslated keys. You can use something like this for the back-end language files:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, null, true);

And to load the front-end language files, using the same trick:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_SITE, 'en-GB', true);
$language->load('com_yourcomponentname', JPATH_SITE, null, true);

This  is particularly useful for the situation where not all of the ‘foreign’ language translations are up to date, yet you still wish to present an ‘intelligent’ output.   

One associated use of the above is the situation where we have the front end making use of helper files from the back end, and the strings used in the helper files are (obviously) making use of the back end language files. To avoid re-specifying the strings in the front end language files we can ensure that the back end files are picked up by including the above in our helper files.

We have avoided describing how a multilingual site is set up, as this is adequately covered in many other posts upon the net. We would again strongly recommend the component named ‘JAMultiLingual’ from Joomla Arts that we have successfully used to set up a Joomla site for ‘Multilingual’ and certainly simplifies the steps in getting started into Joomla Multilingual. It is not the only possibility but one which we have used and found very well constructed.

Go To Top

Joomla! Debug Console

Session

Profile Information

Memory Usage

Database Queries