Actions

Difference between revisions of "Display error messages and notices"

From Joomla! Documentation

(New page: Errors, warnings and notices can be displayed from any component, module, plugin or template using the method outlined below (took me some time to figure this out, might help someone else)...)
 
m (Joomla! 3.x is bootstraped: fixing link to bootstrap for alerts)
(17 intermediate revisions by 9 users not shown)
Line 1: Line 1:
Errors, warnings and notices can be displayed from any component, module, plugin or template using the method outlined below (took me some time to figure this out, might help someone else):  
+
{{RightTOC}}
 +
Errors, warnings and notices can be displayed from any component, module, plugin or template using the methods outlined below.
 +
<source lang="php">
 +
// Get a handle to the Joomla! application object
 +
$application = JFactory::getApplication();
  
//Get a handle to the Joomla!-application object
+
// Add a message to the message queue
$app =& JFactory::getApplication();
+
$application->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');
//add a message to the message queue
+
$app->enqueueMessage(JText::_('Random error occured'), 'error');
+
  
The second argument to the enqueueMessage()-function is the type of message. Default is 'message', but both error, and I believe also 'warning' will work. The api for the JApplication-object can be found at:
+
/** Alternatively you may use chaining */
[[http://api.joomla.org/Joomla-Framework/Application/JApplication.html]]
+
JFactory::getApplication()->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');
The error message will now be displayed if the message-tag is present in your template. The message-field is added with the following statement in your template:
+
</source>
  
 +
The second argument to the [http://api.joomla.org/11.4/Joomla-Platform/Application/JApplication.html#enqueueMessage enqueueMessage] function is the type of the message. The default is 'message', but 'error' results in a different style for the message.  The message will be displayed in place of a special <tt>jdoc:include</tt> statement in your template.  Place the following in your template at the location where you want messages to appear.
 +
<source lang="php">
 
<jdoc:include type="message" />
 
<jdoc:include type="message" />
 +
</source>
 +
 +
== Message ==
 +
<div style="background-color: #c3d2e5; color: #0055bb; border-top: 3px solid #84a7db; border-bottom: 3px solid #84a7db; padding-left: 1em; font-weight: bold;">
 +
Message
 +
</div>
 +
<source lang="php">
 +
JFactory::getApplication()->enqueueMessage('Message');
 +
</source>
 +
 +
== Notice ==
 +
 +
<div style="background-color: #efe7b8; color: #c00; border-top: 3px solid #f0dc7e; border-bottom: 3px solid #f0dc7e; padding-left: 1em; font-weight: bold;">
 +
Notice
 +
</div>
 +
<source lang="php">
 +
JError::raiseNotice( 100, 'Notice' );
 +
</source>
 +
 +
== Warning ==
 +
 +
<div style="background-color: #e6c0c0; color: #c00; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; padding-left: 1em; font-weight: bold;">
 +
Warning
 +
</div>
 +
<source lang="php">
 +
JError::raiseWarning( 100, 'Warning' );
 +
</source>
 +
 +
== Error ==
 +
<source lang="php">
 +
JError::raiseError( 4711, 'A severe error occurred' );
 +
</source>
 +
 +
== Joomla! 3.x is bootstraped ==
 +
Since Joomla! {{JVer|3.x}} uses bootstraped templates, the messages will use the standard bootstrap CSS styles for Alerts.
 +
 +
See: http://getbootstrap.com/2.3.2/components.html#alerts
 +
 +
The general syntax remains:
 +
 +
<source lang="php">
 +
JFactory::getApplication()->enqueueMessage('Your Message', 'type');
 +
</source>
 +
 +
Where '''type''' can be one of
 +
 +
* 'warning' - yellow
 +
* 'notice' - blue
 +
* 'error' - red
 +
* 'message' (or empty) - green
 +
 +
== See also ==
 +
* [http://api.joomla.org/11.4/Joomla-Platform/Error/JError.html JError on api.joomla.org]
 +
*  [http://api.joomla.org/11.4/Joomla-Platform/Application/JApplication.html JApplication on api.joomla.org]
 +
 +
<noinclude>[[Category:Development]]</noinclude>
 +
[[Category:Tutorials]][[Category:Component Development]]

Revision as of 21:06, 6 October 2013

Contents

Errors, warnings and notices can be displayed from any component, module, plugin or template using the methods outlined below.

// Get a handle to the Joomla! application object
$application = JFactory::getApplication();
 
// Add a message to the message queue
$application->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');
 
/** Alternatively you may use chaining */
JFactory::getApplication()->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');

The second argument to the enqueueMessage function is the type of the message. The default is 'message', but 'error' results in a different style for the message. The message will be displayed in place of a special jdoc:include statement in your template. Place the following in your template at the location where you want messages to appear.

<jdoc:include type="message" />

Message

Message

JFactory::getApplication()->enqueueMessage('Message');

Notice

Notice

JError::raiseNotice( 100, 'Notice' );

Warning

Warning

JError::raiseWarning( 100, 'Warning' );

Error

JError::raiseError( 4711, 'A severe error occurred' );

Joomla! 3.x is bootstraped

Since Joomla! Joomla 3.x uses bootstraped templates, the messages will use the standard bootstrap CSS styles for Alerts.

See: http://getbootstrap.com/2.3.2/components.html#alerts

The general syntax remains:

JFactory::getApplication()->enqueueMessage('Your Message', 'type');

Where type can be one of

  • 'warning' - yellow
  • 'notice' - blue
  • 'error' - red
  • 'message' (or empty) - green

See also