Tuesday, December 6, 2011

Database Module in Joomla 1.7




Create a folder mod_userdatas above
1. Helper.php

<?php

defined('_JEXEC') or die;

class modUserDataHelper
{
  function getData( &$params )
  {
  
   // Database query  
   $list = array();   
   $query = " SELECT id, name, username "    
   ." FROM #__users "
   ." WHERE block=0 "    
   ." ORDER BY id DESC "
   ." LIMIT " . $params->get( 'limit' );    
   $db =& JFactory::getDBO();
   $db->setQuery( $query );  
   $rows = $db->loadObjectList();
     
   // Get list items
   if ($rows!=null)
   {
    $i=0;
    foreach ($rows as $row) 
    {    
     $list["users"][$i]["id"]=$row->id;
     $list["users"][$i]["name"]=$row->name;
     $list["users"][$i]["username"]=$row->username;
     $i++;  
    }
    return $list;
   }
     
  }
}

2. mod_userdata.xml
<?xml version="1.0" encoding="UTF-8"?>
<extension type="module" version="1.7" client="site" method="upgrade">
 <name>User Data Module</name>
 <author>Minitek.gr</author>
 <creationDate>03/08/2011</creationDate>
 <copyright>Copyright (C) 2011. All rights reserved.</copyright>
 <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
 <authorEmail>your_email</authorEmail>
 <authorUrl>www.minitek.gr</authorUrl>
 <version>1.7.1</version>
 <description>Users Data Module</description>
 <languages>
 </languages>
 <files>
  <filename module="mod_userdata">mod_userdata.php</filename>
  <filename>mod_userdata.xml</filename>
  <filename>helper.php</filename>
  <filename>index.html</filename>
  <folder>tmpl</folder>
 </files>
 <config>
  <fields name="params">
   <fieldset name="basic">
    <field name="moduleclass_sfx" type="text" 
     default="" label="Module Class Suffix" 
     description="Suffix for individual css styling" />
    <field name="limit" type="text" default="10" 
       label="Limit Displayed Users" description="Limit Displayed Users" />
    <field name="user_id" type="radio" default="1" 
      label="Display user ID" description="Display user ID">
     <option value="0">JNO</option>
     <option value="1">JYES</option>
    </field>
    <field name="user_name" type="radio" default="1" 
      label="Display Name" description="Display Name">
     <option value="0">JNO</option>
     <option value="1">JYES</option>
    </field>
    <field name="user_username" type="radio" default="1" 
     label="Display Username" description="Display Username">
     <option value="0">JNO</option>
     <option value="1">JYES</option>
    </field>
   </fieldset>
  </fields>
 </config>
</extension>

3.mod_userdata.php
<?php

defined('_JEXEC') or die;

// Include the syndicate functions only once
require_once dirname(__FILE__).'/helper.php';

// Get the user data
$list = modUserDataHelper::getData($params);

// Get the layout
require JModuleHelper::getLayoutPath('mod_userdata', $params->get('layout', 'default'));
 
4. tmpl/default.php place the default.php in tmpl folder
 
<?php
s
defined('_JEXEC') or die; ?>

<div class="moduletable<?php echo $params->get( 'moduleclass_sfx' ) ?>">

 <ul>
  <?php for ($i=0;$i< sizeof($list["users"]); $i++) { ?> 
 
  <li>
   <?php if ($params->get( 'user_id' )) { ?>
   <span><?php echo $list["users"][$i]["id"];?></span>
  <?php } ?>
  <?php if ($params->get( 'user_name' )) { ?>
   <span><?php echo $list["users"][$i]["name"];?></span>
  <?php } ?>
  <?php if ($params->get( 'user_username' )) { ?>
   <span><?php echo $list["users"][$i]["username"];?></span>
  <?php } ?>
  </li>
 
 <?php } ?>
 </ul>

</div>
 
5. Place index.html under tmpl folder
 
<html><body bgcolor="#FFFFFF"></body></html>
 
Now zip the mod_userdata folder  and upload the module from 
adminstrator/extension and upload 
Activate and place the module 

Joomla 1.7 - Create a Hello World Simple Module

  1. Create a folder called mod_helloworld in modules
  2. Create a mod_helloworld.php file
  3. Create a mod_helloworld.xml file
  4. Create a helper.php file
  5. Create a template file tmpl/default.php
  6. Discover new modules by going to “Extension Manager” -> “Discover”

The code for mod_helloworld.php

<?php
defined('_JEXEC') or die; // no direct access allowed
 
require_once dirname(__FILE__).DS.'helper.php'; // get helper files
 
$hello = modHelloWorldHelper::getHello($params);
require JModuleHelper::getLayoutPath('mod_helloworld');
?>

The helper.php file

<?php
 class modHelloWorldHelper
 {
     /**
      * Retrieves the hello message
      *
      * @param array $params An object containing the module parameters
      * @access public
      */    
     function getHello( $params )
     {
         return 'Hello, World!';
     }
 }
?>

Include the template file for the default view

<?php
defined('_JEXEC') or die;
echo $hello; 
?>

The mod_helloworld.xml file

 <?xml version="1.0" encoding="utf-8"?>
 <extension type="module" version="1.7.0" client="site" method="upgrade">
     <name>Hello World!</name>
     <author>Harshal Shah </author>
     <version>1.7.0</version>
     <description>Reinholds simple Hello World module.</description>
     <files>
    <filename module="mod_helloworld">mod_helloworld.php</filename>
         <filename>mod_helloworld.xml</filename>
         <filename>index.html</filename>
         <filename>helper.php</filename>
         <filename>tmpl/default.php</filename>
         <filename>tmpl/index.html</filename>
     </files>
     <params>
     </params>
 </extension>

Create both index.html files to prevent direct directory browsing

<html><body></body></html>

Sunday, September 18, 2011

Connect two Amazon EC2 using ssh

1.Make sure you have the rightscript Managessh private key ssh installed.
2. Make sure both the instance install same ssh key.
3. It works like a cream