Actions

User

Rvsjoen/tutorial/Developing a Module/Part 06

From Joomla! Documentation

< User:Rvsjoen‎ | tutorial/Developing a Module
Revision as of 17:47, 13 March 2012 by Rvsjoen (Talk | contribs)

Contents

Accessing the database

This part is meant to provide you with a short example on how to access the database and run a query from a module. This is no different than running a query anywhere else in Joomla! but since modules are often the first place you start to learn to write extensions, this tutorial seems like a natural place to cover it.

With your favorite editor, edit the following file

helper.php

<?php 
 
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */
 
// No direct access to this file
defined('_JEXEC') or die;
 
class modHelloWorldHelper
{
        public static function getGreeting() {
                return "Message from the helper";
        }
 
        public static function getCurrentUsers() {
                $db = JFactory::getDBO();
                $db->setQuery($db->getQuery(true)
                        ->select("COUNT(*) as users")
                        ->from("#__session")
                );
                return $db->loadResult();
        }
}

Here we add a function to our helper class, the function will simply return the number of currently active sessions by counting the number of rows in the session table.

With your favorite editor, edit the following file

tmpl/default.php

<?php 
 
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */
 
// No direct access to this file
defined('_JEXEC') or die;
?>
 
<p><?php echo $params->get('greeting', JText::_('MOD_HELLOWORLD_GREETING_DEFAULT')); ?></p>
<p><?php echo modHelloWorldHelper::getGreeting(); ?></p>
<p>There are <?php echo modHelloWorldHelper::getCurrentUsers(); ?> user(s) logged in</p>

Here we modify the module template to echo out the number of currently active users, as provided by our helper.

With your favorite editor, edit the following file

mod_helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
 
        <name>MOD_HELLOWORLD</name>
        <!-- The following elements are optional and free of formatting constraints -->
        <creationDate>Once upon a time</creationDate>
        <author>John Doe</author>
        <authorEmail>john.doe@example.org</authorEmail>
        <authorUrl>http://www.example.org</authorUrl>
        <copyright>Copyright Info</copyright>
        <license>License Info</license>
        <!--  The version string is stored in the extension table -->
        <version>0.0.6</version>
        <!-- The description is optional and defaults to the name -->
        <description>MOD_HELLOWORLD_XML_DESCRIPTION</description>
 
        <!-- Note the folder attribute: This attribute describes what to copy
                into the module folder -->
        <files>
                <filename module="mod_helloworld">mod_helloworld.php</filename>
                <filename>mod_helloworld.xml</filename>
                <filename>helper.php</filename>
                <folder>tmpl</folder>
                <folder>language</folder>
        </files>
 
        <config>
                <fields name="params">
                        <fieldset name="basic">
                                <field
                                        name="greeting"
                                        type="text"
                                        default="MOD_HELLOWORLD_GREETING_DEFAULT"
                                        label="MOD_HELLOWORLD_GREETING_LABEL"
                                        description="MOD_HELLOWORLD_GREETING_DESC"
                                />
                        </fieldset>
                </fields>
        </config>
 
</extension>

File listing

Testing your module

For details on how to install the module into your Joomla! site, refer to the information provided in Part 01.

Download this part

Download example package

Articles in this series

This tutorial is supported by the following versions of Joomla!

Joomla 2.5