Benutzer:Elkuku/Proyektz/EasyCreator/Creating a package
Inhaltsverzeichnis |
[Bearbeiten] Description
This is about creating a package with EasyCreator.
A package consists of multiple extensions - e.g. a component and various modules and/or plugins.
Our package will contain four extensions:
- Component: Manages your database records - here: your "Hello World's".
- Site Module: Displays your records in frontend.
- Backend Module: Displays your records in backend.
- Content Plugin: Displays your records in content.
[Bearbeiten] StartUp
Using the Benutzer:Elkuku/Proyektz/EasyCreator/Wizard create the following extensions:
1. Component
- Type: Package Base
- Name: MyTestComponent
2. Module (site)
- Type: Hello World 2
- Name: MyTestModSite
3. Module (admin)
- Type: Backend Plain
- Name: MyTestModAdmin
4. Plugin
- Type: Content 1
- Name: MyTestPlugin
[Bearbeiten] Set up your package
This step is required to tell EasyCreator how to create your xml installation file and which extensions your package will contain.
- Select your project: Component - MyTestComponent.
go to Building and find the tab named Package. - Click Add Module and select your site module MyTestModSite.
Under Position type left - the position in your frontend template. - Click Add Module again and select your admin module MyTestModAdmin.
Under Position type cpanel - the position in your admin template. - Click Add Plugin and select your plugin MyTestPlugin.
- Click Save.
Your package setup has finished. Datei:Package setup
[Bearbeiten] We go for the code
We will modify the created modules and the plugin to pull the data from the components table and display it in a HTML table.
Remember - this is for demo purpose only - It's a Hello world package !
2. Module (site)
/modules/mod_mytestmodsite
helper.php
public function getItems($userCount) { //--Get a reference to the database $db = &JFactory::getDBO(); //--Get a list of all items $query = 'SELECT *' . ' FROM `#__mytestcomponent`'; $db->setQuery($query); $items = ($items = $db->loadAssocList()) ? $items : array(); return $items; }//function
/modules/mod_mytestmodsite/tmpl
default.php
<table width="100%"> <tr> <?php foreach (array_keys($items[0]) as $key) { echo '<td class="sectiontableheader">'.$key.'</th>'; }//foreach ?> </tr> <?php $k = 0; foreach ($items as $item) { echo '<tr class="sectiontableentry'.($k + 1).'">'; foreach ($item as $key=>$value) { echo '<td>'.$value.'</td>'; }//foreach echo '</tr>'; $k = 1 - $k; }//foreach ?> </table>
3. Module (admin)
/administrator/modules/mod_mytestmodadmin
mod_mytestadmin.php
//--Get a reference to the database $db =& JFactory::getDBO(); //--Get a list of all items $query = 'SELECT *' . ' FROM `#__mytestcomponent`'; $db->setQuery($query); $items = ($items = $db->loadAssocList()) ? $items : array(); ?> <table class="adminlist" width="100%"> <thead> <tr> <?php foreach (array_keys($items[0]) as $key) { echo '<th>'.$key.'</th>'; }//foreach ?> </tr> </thead> <?php $k = 0; foreach ($items as $item) { echo '<tr class="row'.($k).'">'; foreach ($item as $key=>$value) { echo '<td>'.$value.'</td>'; }//foreach echo '</tr>'; $k = 1 - $k; }//foreach ?> </table>
4. Plugin MyTestPlugin
/plugins/content/
mytestplugin.php
function mytestplugin( &$row, &$params, $page=0 ) { if( ! strpos($row->text, '{triggerMyTestPlugin')) { //--The tag is not found in content - abort.. return; } //--Search for this tag in the content $regex = '/{triggerMyTestPlugin\s*.*?}/i'; // get a reference to the database $db = &JFactory::getDBO(); // get a list of all users $query = 'SELECT *' . ' FROM `#__mytestcomponent`'; $db->setQuery($query); $items = ($items = $db->loadAssocList()) ? $items : array(); $replacement = ''; $replacement .= '<table width="50%">'; $replacement .= ' <tr>'; foreach (array_keys($items[0]) as $key) { $replacement .= ' <th class"sectiontableheader">'.$key.'</th>'; }//foreach $replacement .= ' </tr>'; $k = 0; foreach ($items as $item) { $replacement .= ' <tr class="sectiontableentry'.($k+1).'">'; foreach ($item as $key=>$value) { $replacement .= ' <td>'.$value.'</td>'; }//foreach $replacement .= ' </tr>'; $k = 1 - $k; }//foreach $replacement .= '</table>'; //--Replace tag in content $row->text = preg_replace( $regex, $replacement, $row->text ); return; }//function
[Bearbeiten] Screenshots
1) Component 2) Frontend Module 3) Backend Module 4) Content Plugin
Thumbnail Thumbnail Thumbnail Position: 'cpanel' Thumbnail
[Bearbeiten] Create the install package
Select "Package" Make sure to select your desired packing format and click on "Create" Thumbnail
[Bearbeiten] Install your package
Download your package and save it to disk.
Switch over to another Joomla installation and try installing your package Thumbnail
Have fun packing =;) Your Easy-Joomla! Team