Plug-Ins

Thank you for your contribution: 

Jack plugs 1/4" A plug-in adds specific capabilities to a component. The term plug-in is also used in other places. For example, plug-ins are commonly used in web browsers to play videos. A well-known plug-in example is Adobe's Flash Player. A good example for the use of plug-ins in Joomla! is the search component. Five search plug-ins work together to find content from different Joomla! components.

Joomla! has eight plug-in types: authentication, content, editors-xtd, editors, extension, search, system and user. These are also the names of the website sub directories where the plug-in files are located. For example, plug-ins with a type of authentication are located in the website directory plugins/authentication. It is not possible and not necessary to create a plug-in in the adminstrator area like we have seen in the modules chapter. A plug-in has to be installed via the extension manager.

Authentication

Authorization is the process of specifying access rights. It is preceded by authentication, which verifies whether the one trying to be authorized provides correct credentials. You authenticate with your username and password, and you are authorized because you are a member of some permission group (see chapter Users and Permissions) Joomla! offers three possibilities for authentication (Figure 1).
Be careful with deactivating plug-ins. You must have at least one authentication plug-in enabled or you will lose all access to your site.

Joomla! 1.6 cocoate.com/node/6376/
Joomla! 2.5 cocoate.com/node/10324Authentication plug-ins

Figure 1: Authentication Plug-ins

Joomla!

The plug-in provides the standard behavior for Joomla!. You fill in the login form with your username and password and your login information is then verified.

GMail

If you activate the GMail plug-in, users will be able to log onto your site by using their GMail address and password. Prior registration is not necessary. With the first login, the System plug-in Joomla! will create a user account in its database. The GMail password is stored encrypted in the database, so your users GMail accounts cannot be hacked. This plug-in facilitates the login process for your users. Unfortunately, there is no advisory in the login form that loging in with GMail is possible. You'll have to add additional text or find another creative solution.

LDAP

The Lightweight Directory Access Protocol (LDAP) is an application protocol for reading and editing data from directory service. It is used in companies for managing department affiliation as well as employee phone numbers.

 dn: cn=John Doe,dc=example,dc=com
 cn: John Doe
 givenName: John
 sn: Doe
 telephoneNumber: +1 888 555 6789
 telephoneNumber: +1 888 555 1232
 mail: john@example.com
 manager: cn=Barbara Doe,dc=example,dc=com
 objectClass: inetOrgPerson
 objectClass: organizationalPerson
 objectClass: person
 objectClass: top

In order to use this plug-in for authentication, you will need an LDAP Server (OpenLDAP) and you have to configure the LDAP plug-in with the server specific data. You will find a good tutorial at joomla.org: LDAP from Scratch.

Content

Besides the Joomla! content plug-in, all other content plug-ins are related to the text you insert into an article. The Custom HTML module (see chapters Modules) can use the content plug-ins as well (Figure 2).

cocoate.com/node/6376/Content plug-ins

Figure 2: Content Plug-ins

Joomla

The Joomla plug-in has two tasks:

  1. When you attempt to delete a category, it verifies whether the category is 'empty'. Empty means, no article or sub category is assigned to it. You can turn this feature off in Basic Settings.
  2. If a new article is submitted via the frontend, the plug-in will send an email to all those users for whom Send Email is turned on (User Manager - Edit User). This feature can be turned off in Basic Settings.

Loading Modules

This plug-in loads the HTML output of all modules assigned to a template module position into an article. All you have to do is write {loadposition position-14} in the space where the modules should displayed. This feature is especially useful for putting banner ads into the content. 

Email Cloaking

This plug-in transforms an email address entered into the content in the form of name@example.com into a link, and cloaks the email address by means of JavaScript. The advantage of this is that email address collection programs can't read your email address very easily.

Code Highlighter

The GeSHi plug-in makes Syntax Highlighting possible and creates an impressive listing on your website if you embed the code to be formatted within <pre> </pre> HTML tags:

<pre>
if ($number > 0)
{
  echo $number;
} 
else{
  $number++;
}
</pre>

Pagebreak

The Pagebreak plug-in takes care of pagebreaks in articles. Just like the Image plug-in, it is easy to integrate into the content. Besides a simple pagebreak, various headers and page titles can also be defined. You can set pagebreaks using the pagebreak dialog. The page break will be displayed in the text window as a simple horizontal line. In the HTML code, the pagebreak looks like this:

<hr title="Page Title" alt="Table of Contents Alias" class="system-pagebreak" />

The plug-in has to be activated together with the Editor-xtd - Pagebreak plug-in.

Page Navigation

This plug-in integrates the Next and Previous functions under the articles.

Vote

This plug-in adds voting functionality to articles.

Editors-xtd

The four editors-xtd plug-ins generate the buttons below the editor window (Figure 3).

Joomla! 1.6 cocoate.com/node/6376/
Joomla! 2.5 cocoate.com/node/10324Editors-xtd plug-ins

Figure 3: Editor-xtd Plug-ins

Article

Displays a button for linking the actual article to other existing articles. After clicking the button, a pop-up will be displayed allowing you to choose the article to link to.

Image

This plug-in displays a button for inserting images into an article.
After clicking the button, a pop-up will open allowing you to choose an image from the media directory or upload new files and configure its properties.

Pagebreak

Provides a button to enable a pagebreak to be inserted into an article. A pop-up allows you to configure the settings to be used. The plug-in has to be activated together with the Content - Pagebreak plug-in.

Read more

Enables a button which allows you to easily insert the Read more link into an article.

Editors

Joomla! core comes with two editors (Figure 4). In Global Configuration - Site you can set the default editor for your website. Additionally, you can assign a different editor to every user account (User - Manager).

Joomla! 1.6 cocoate.com/node/6376/
Joomla! 2.5 cocoate.com/node/10324Editors plug-ins

Figure 4: Editor Plug-ins

CodeMirror

CodeMirror is a JavaScript library that can be used to create a relatively pleasant editor interface for code-like content ― computer programs, HTML markup, and the like. This plug-in has to be activated if you want to offer textarea fields with the CodeMirror editor. You can configure the behavior of the editor in Basic Settings.

None

This plug-in has to be activated if you want to offer textarea fields without an editor.

TinyMCE

TinyMCE is a platform-independent web-based Javascript HTML WYSIWYG editor control. It is the default editor in Joomla!.

Extension

The extension plug-in type is related to tasks concerning the managing of Joomla! extensions.

Joomla

This plug-in manages the update sites for extensions.

Search

The Search plug-ins for Contents, Weblinks, Contacts, Categories, and Newsfeeds can be activated when needed. They implement the search function of the Search component. These plug-ins have to be activated if you are trying to obtain search results from the respective sections. If you want to search additional components, the respective plug-ins for those have to be available as well (Figure 5).

Joomla! 1.6 cocoate.com/node/6376/
Joomla! 2.5 cocoate.com/node/10324Search plug-ins

Figure 5: Search Plug-ins

System

System plug-ins are deeply integrated in the Joomla! framework, and they usually affect the behavior of the entire website (Figure 6).

cocoate.com/node/6376/System plug-ins

Figure 6: System Plug-ins

Language Filter

This plug-in filters the displayed content depending on the language desired. It has to be enabled only when the Language Switcher module is published.

P3P Policy

The Platform for Privacy Preferences Project (P3P) is a protocol allowing websites to declare their intended use of information they collect about browsing users. The system P3P policy plug-in allows Joomla! to send a customized string of P3P policy tags in the HTTP header. This is needed for the sessions to work properly with certain browsers, i.e. Internet Explorer 6 and 7.

Cache

This module provides page caching. You can configure whether you would like to use the client's browser for caching pages.

Debug

This makes the debug function available, which is very important to programmers. You can configure the parameters to determine which information to display.

Log

This plug-in makes the system log files available.
You can determine the location of the log file in Global Configuration - System - System Settings.
This is an example of such a log file (/logs/error.php):

#Version: 1.0
#Date: 2011-07-06 12:39:38
#Fields: date    time    level    c-ip    status    comment
#Software: Joomla! 1.7.0 RC1 [ Ember ] 28-Jun-2011 23:00 GMT
2011-07-06 12:39:38 - 92.143.161.32 Joomla FAILURE: Empty password not allowed

Redirect

Provides the redirect feature in conjunction with the redirects component.

Remember Me

This is a method for saving access data locally in a cookie in the client browser. Once a user visits your website again, the data is already in the form. This storage is only enabled by explicitly marking a checkbox below the login form.

SEF

SEF is the acronym for Search Engine Friendly. This plug-in creates search engine friendly URLs for content elements, which can be configured in Global Configuration - SEO Settings

Logout

The system logout plug-in enables Joomla! to redirect the user to the home page if he chooses to logout while being on a protected access page.

User

User plug-ins are related to user specific functions (Figure 7).

Joomla! 1.6 cocoate.com/node/6376/
Joomla! 2.5 cocoate.com/node/10324User plug-ins

Figure 7: User Plug-ins

Profile

The user profile plug-in gives you the opportunity to ask the user for additonal profile fields, which can be configured in Basic Settings. It can also be combined with the contact creator plug-in to automatically create a contact item for every user (also see Users and Permissions).

Contact Creator

A plug-in to automatically create contact information for new users. It works in conjunction with the profile plug-in (also see Users and Permissions).

Joomla!

This plug-in creates a user in the database after the first successful authentication.

Comments

pagebreak is described twice

No, they are two. A content plugin and the button itself :)
Hagen