PHP Classes

OnTime Table Trait: Manage table data records stored in JSON files

Recommend this page to a friend!
  Info   View files Example   View files View files (12)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 57 This week: 1All time: 10,511 This week: 560Up
Version License PHP version Categories
ontimetable 1.0.1Public Domain5PHP 5, Databases, Data types
Description 

Author

This package can manage table data records stored in JSON files.

It provides traits that can be used to define classes to perform several types of operations to manage records of data stored in JSON files that work like tables. The package can perform operations like:

- Insert new records of data defined as associative arrays using a named key
- Update the data stored in the inserted records
- Retrieve the data stored in the table records
- Delete given records from the tables

Picture of Mario Carrocera
  Performance   Level  
Name: Mario Carrocera is available for providing paid consulting. Contact Mario Carrocera .
Classes: 18 packages by
Country: Mexico Mexico
Age: 58
All time rank: 310236 in Mexico Mexico
Week rank: 106 Up3 in Mexico Mexico Up
Innovation award
Innovation award
Nominee: 2x

Winner: 1x

Example

<?php

ini_set
('display_errors', true);
error_reporting(E_ERROR | E_PARSE | E_NOTICE | E_WARNING);

$base='ontime/';
$AdminPassword='OT2021Free';
include_once(
$base."OnTime.php");
$demo=new OnTime();
echo
"**********+++++++++++ <br> Basic Table Demo <br> **********+++++++++++ <br> <br>";
echo
"********** <br> Create Class <br> ********** <br> <br>";
$demo->ot_error('basic content exist').'<br>';
echo
"**********+++++++++++ <br> Conecting like admin <br> **********+++++++++++ <br> <br>";
echo
"Connect('admin','OT2021Free') ";
$demo->Connect('admin',$AdminPassword);
echo
"<br>";$demo->ot_error("Connected!!!");echo "<br>";
echo
"**********+++++++++++ <br> Data Dictionary <br> **********+++++++++++ <br> <br>";
echo
"********** <br> Show Data Dictionary<br> ********** <br> <br>";
echo
"ShwDdd() ";
$demo->ot_show($demo->ShwDdd());
echo
"********** <br> Create field RecId in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('RecId', array('FldTpe'=>'K','FldDsc'=>'Record Identifier'))";
$demo->DddAddFld('RecId', array('FldTpe'=>'K','FldDsc'=>'Record Identifier'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field Name in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('Name', array('FldTpe'=>'S','FldDsc'=>'Store the name'))";
$demo->DddAddFld('Name', array('FldTpe'=>'S','FldDsc'=>'Store the name'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field in in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('in', array('FldTpe'=>'S','FldDsc'=>'Store Trait where is instales'))";
$demo->DddAddFld('in', array('FldTpe'=>'S','FldDsc'=>'Store Trait where is instales'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field parameters in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('parameters', array('FldTpe'=>'I','FldDsc'=>'Number of Parameters'))";
$demo->DddAddFld('parameters', array('FldTpe'=>'I','FldDsc'=>'Number of Parameters'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field Dscr in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('Dscr', array('FldTpe'=>'S','FldDsc'=>'Store the Description'))";
$demo->DddAddFld('Dscr', array('FldTpe'=>'S','FldDsc'=>'Store the Description'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field DscPrm in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('DscPrm', array('FldTpe'=>'S','FldDsc'=>'Description of parameters'))";
$demo->DddAddFld('DscPrm', array('FldTpe'=>'S','FldDsc'=>'Description of parameters'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Create field FlDName in data dictionary <br> ********** <br> <br>";
echo
"DddAddFld('DscErr', array('FldTpe'=>'A','FldDsc'=>'Errors tat can present'))";
$demo->DddAddFld('DscErr', array('FldTpe'=>'A','FldDsc'=>'Errors tat can present'));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Show Data Dictionary<br> ********** <br> <br>";
echo
"ShwDdd() ";
$demo->ot_show($demo->ShwDdd());
echo
"********** <br> Defining Record for sample <br> ********** <br> <br>";
$name = 'sample';
echo
"********** <br> Create Record sample in data dictionary <br> ********** <br> <br>";
echo
"CrtRcd($name,'sample of ontime')";
$demo->CrtRcd($name,'sample of ontime');
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field RecId Name to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'RecId', array('FldEmp'=>FALSE))";
$demo->RcdAddIn($name,'RecId', array('FldEmp'=>FALSE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field Name to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'Name', array('FldEmp'=>TRUE))";
$demo->RcdAddIn($name,'Name', array('FldEmp'=>TRUE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field in to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'in', array('FldEmp'=>FALSE))";
$demo->RcdAddIn($name,'in', array('FldEmp'=>FALSE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field parameters to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'parameters', array('FldEmp'=>FALSE))";
$demo->RcdAddIn($name,'parameters', array('FldEmp'=>FALSE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field Dscr to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'Dscr', array('FldEmp'=>TRUE))";
$demo->RcdAddIn($name,'Dscr', array('FldEmp'=>TRUE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field DscPrm to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'DscPrm', array('FldEmp'=>TRUE))";
$demo->RcdAddIn($name,'DscPrm', array('FldEmp'=>TRUE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Add field DscErr to record <br> ********** <br> <br>";
echo
"RcdAddIn($name,'DscErr', array('FldEmp'=>TRUE))";
$demo->RcdAddIn($name,'DscErr', array('FldEmp'=>TRUE));
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Show record list <br> ********** <br> <br>";
echo
"ShwRecLst() ";
$demo->ot_show($demo->ShwRecLst());
echo
"********** <br> Show record <br> ********** <br> <br>";
echo
"ShwRec('sample') ";
$demo->ot_show($demo->ShwRec('sample'));

echo
"********** <br> Activate Table feature<br> ********** <br> <br>";
echo
"ShwRec('sample') ";
$demo->CrtFtrTbl();
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Creating tables <br> ********** <br> <br>";
echo
"CrtTblIn('My sample', 'My Sample', 'sample'";
$demo->CrtTblIn('My sample', 'My Sample', 'sample' );
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"CrtTblIn('Sample 2', 'My Sample', 'sample'";
$demo->CrtTblIn('Sample 2', 'Other sample same record', 'sample' );
echo
"<br>";$demo->ot_error("Created!!!");echo "<br>";
echo
"********** <br> Show featrures with tables <br> ********** <br> <br>";
echo
"ShwFtrTbl()";
$demo->ot_show($demo->ShwFtrTbl());
echo
"********** <br> Show features with tables <br> ********** <br> <br>";
echo
"ShwFtrTbl()";
$demo->ot_show($demo->ShwTblFtr('table'));
echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));

echo
"********** <br> Insert Records in My Sample <br> ********** <br> <br>";

echo
"InsTblIn('My sample' , 'rec 1', array('Name'=>'Just a description','in'=>'Mexico City','parameters'=>8))";
$demo->InsTblIn('My sample' , 'rec 1', array('Name'=>'Just a description','in'=>'Mexico City','parameters'=>8));
$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));
echo
"********** <br> Insert Records in My Sample <br> ********** <br> <br>";


echo
"InsTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8,'DscPrm'=>'explain what do'))";

$demo->InsTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8,'DscPrm'=>'explain what do'));

$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));
echo
"********** <br> Insert Records in My Sample <br> ********** <br> <br>";


echo
"InsTblIn('My sample' , 'rec 3', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8))";
$demo->InsTblIn('My sample' , 'rec 3', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8));
$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));

   
echo
"********** <br> Update and Mix in My Sample <br> ********** <br> <br>";
echo
"UpmTblIn('My sample' , 'rec 3', array('Name'=>'refresh again description','DscPrm'=>'who cares'))";
$demo->UpmTblIn('My sample' , 'rec 3', array('Name'=>'refresh my description','DscPrm'=>'who care'));
$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));


echo
"********** <br> Update with replace in My Sample <br> ********** <br> <br>";
echo
"UpdTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico ','parameters'=>2))";
$demo->UpdTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico ','parameters'=>2));
$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));

echo
"********** <br> delete in My Sample <br> ********** <br> <br>";
echo
"dltTblIn('My sample' , 'rec 1')";
$demo->dltTblIn('My sample' , 'rec 1');
$demo->ot_show($demo -> errvalid);

echo
"********** <br> Show tables <br> ********** <br> <br>";
echo
"ShwTbl('My sample')";
$demo->ot_show($demo->ShwTbl('My sample'));


echo
"**********+++++++++++ <br> Demo Finish<br> **********+++++++++++ <br> <br>";
?>


Details

Trait Tablefor ontime

The OnTime framework is designed to be modular, scalable and comprehensive, so that each new feature integrates without difficulty and maintains a unique class definition (OnTime) and all "additional classes" are "trait" that enrich it, in such a way that an integrated system is obtained, not separate programs which do not necessarily have to behave correctly together. This trait will be need if you wan have tables

Installation in test environment:

1.- Copy all the files in the directory where was instaled ontrime core

2.- With the browser of your preference, locate the directory and enter it

3.- Execute the OntimeInstallerDyR.php file

4.- When executing the file, the files where moved and the required environment was created

Recommendations:

If you know how to create a subdomain that points to the "demo" directory, it is more comfortable and realistic.

After install

When installing, the necessary environment is defined to define access security, I create a User called "Admin" and that his password is "OT2021Free", this environment left the class prepared for definitions of the data dictionary and records.

In this trait, can create tables in any feature, a table is defined like a record that have an unique Key id, when you create a table must especify the record, but more than one table can have the same record, in a record must include at least all the fields that don't is not specy like emty = TRUE, neither can include a fields not included on the record.

In the validation include since this feature

lookin, check that the content of the field exist in defined basic content feature (.bas) lookfrom, check that the content of the field exist in defined table feature (.tas) bringin, check that the content of the field exist in defined basic content feature (.bas), and bring the relate data like %%Field bringfrom, check that the content of the field exist in defined table feature (.tas), , and bring the relate data like %%Field isin, check that the content of the field exist is defined container in basic content feature (.bas) isfrom, check that the content of the field exist is defined container in defined table feature (.tas)

mario.carrocera@hotmail.com

+++++++++++ Basic Table Demo +++++++++++

Create Class

basic content exist +++++++++++ Conecting like admin +++++++++++

Connect('admin','OT2021Free') Connected!!!

+++++++++++ Data Dictionary +++++++++++

Show Data Dictionary

ShwDdd() 1.- FldNme : __________1D.- FldTpe=>K __________1D.- FldDsc=>Field name 1.- FldDsc : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field description 1.- FldTpe : __________1D.- FldTpe=>R __________1D.- FldDsc=>Field type ----------2.- FldVld : ____________________2D.- Name=>lookin ____________________2D.- content=>type ____________________2D.- in=>ddd 1.- FldVld : __________1D.- FldTpe=>A __________1D.- FldDsc=>Field validation 1.- FldLen : __________1D.- FldTpe=>I __________1D.- FldDsc=>Field length 1.- FldEmp : __________1D.- FldTpe=>B __________1D.- FldDsc=>Field bool 1.- FldFmt : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field format 1.- FldCap : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field caption 1.- FldTtt : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field tool tip text 1.- FldDfl : __________1D.- FldTpe=>V __________1D.- FldDsc=>Default Value __________1D.- FldEmp=> Create field RecId in data dictionary

DddAddFld('RecId', array('FldTpe'=>'K','FldDsc'=>'Record Identifier')) Created!!!

Create field Name in data dictionary

DddAddFld('Name', array('FldTpe'=>'S','FldDsc'=>'Store the name')) Created!!!

Create field in in data dictionary

DddAddFld('in', array('FldTpe'=>'S','FldDsc'=>'Store Trait where is instales')) Created!!!

Create field parameters in data dictionary

DddAddFld('parameters', array('FldTpe'=>'I','FldDsc'=>'Number of Parameters')) Created!!!

Create field Dscr in data dictionary

DddAddFld('Dscr', array('FldTpe'=>'S','FldDsc'=>'Store the Description')) Created!!!

Create field DscPrm in data dictionary

DddAddFld('DscPrm', array('FldTpe'=>'S','FldDsc'=>'Description of parameters')) Created!!!

Create field FlDName in data dictionary

DddAddFld('DscErr', array('FldTpe'=>'A','FldDsc'=>'Errors tat can present')) Created!!!

Show Data Dictionary

ShwDdd() 1.- FldNme : __________1D.- FldTpe=>K __________1D.- FldDsc=>Field name 1.- FldDsc : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field description 1.- FldTpe : __________1D.- FldTpe=>R __________1D.- FldDsc=>Field type ----------2.- FldVld : ____________________2D.- Name=>lookin ____________________2D.- content=>type ____________________2D.- in=>ddd 1.- FldVld : __________1D.- FldTpe=>A __________1D.- FldDsc=>Field validation 1.- FldLen : __________1D.- FldTpe=>I __________1D.- FldDsc=>Field length 1.- FldEmp : __________1D.- FldTpe=>B __________1D.- FldDsc=>Field bool 1.- FldFmt : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field format 1.- FldCap : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field caption 1.- FldTtt : __________1D.- FldTpe=>S __________1D.- FldDsc=>Field tool tip text 1.- FldDfl : __________1D.- FldTpe=>V __________1D.- FldDsc=>Default Value __________1D.- FldEmp=> 1.- RecId : __________1D.- FldTpe=>K __________1D.- FldDsc=>Record Identifier 1.- Name : __________1D.- FldTpe=>S __________1D.- FldDsc=>Store the name 1.- in : __________1D.- FldTpe=>S __________1D.- FldDsc=>Store Trait where is instales 1.- parameters : __________1D.- FldTpe=>I __________1D.- FldDsc=>Number of Parameters 1.- Dscr : __________1D.- FldTpe=>S __________1D.- FldDsc=>Store the Description 1.- DscPrm : __________1D.- FldTpe=>S __________1D.- FldDsc=>Description of parameters 1.- DscErr : __________1D.- FldTpe=>A __________1D.- FldDsc=>Errors tat can present Defining Record for sample

Create Record sample in data dictionary

CrtRcd(sample,'sample of ontime') Created!!!

Add field RecId Name to record

RcdAddIn(sample,'RecId', array('FldEmp'=>FALSE)) Created!!!

Add field Name to record

RcdAddIn(sample,'Name', array('FldEmp'=>TRUE)) Created!!!

Add field in to record

RcdAddIn(sample,'in', array('FldEmp'=>FALSE)) Created!!!

Add field parameters to record

RcdAddIn(sample,'parameters', array('FldEmp'=>FALSE)) Created!!!

Add field Dscr to record

RcdAddIn(sample,'Dscr', array('FldEmp'=>TRUE)) Created!!!

Add field DscPrm to record

RcdAddIn(sample,'DscPrm', array('FldEmp'=>TRUE)) Created!!!

Add field DscErr to record

RcdAddIn(sample,'DscErr', array('FldEmp'=>TRUE)) Created!!!

Show record list

ShwRecLst() 0D.- ddd=>Data Dictionary 0D.- sample=>sample of ontime Show record

ShwRec('sample') 1.- definition : __________1D.- key=>RecId ----------2.- RecId : --------------------3.- ByField : ______________________________3D.- FldTpe=>K ______________________________3D.- FldDsc=>Record Identifier --------------------3.- ByRecord : ______________________________3D.- FldEmp=> ----------2.- Name : --------------------3.- ByField : ______________________________3D.- FldTpe=>S ______________________________3D.- FldDsc=>Store the name --------------------3.- ByRecord : ______________________________3D.- FldEmp=>1 ----------2.- in : --------------------3.- ByField : ______________________________3D.- FldTpe=>S ______________________________3D.- FldDsc=>Store Trait where is instales --------------------3.- ByRecord : ______________________________3D.- FldEmp=> ----------2.- parameters : --------------------3.- ByField : ______________________________3D.- FldTpe=>I ______________________________3D.- FldDsc=>Number of Parameters --------------------3.- ByRecord : ______________________________3D.- FldEmp=> ----------2.- Dscr : --------------------3.- ByField : ______________________________3D.- FldTpe=>S ______________________________3D.- FldDsc=>Store the Description --------------------3.- ByRecord : ______________________________3D.- FldEmp=>1 ----------2.- DscPrm : --------------------3.- ByField : ______________________________3D.- FldTpe=>S ______________________________3D.- FldDsc=>Description of parameters --------------------3.- ByRecord : ______________________________3D.- FldEmp=>1 ----------2.- DscErr : --------------------3.- ByField : ______________________________3D.- FldTpe=>A ______________________________3D.- FldDsc=>Errors tat can present --------------------3.- ByRecord : ______________________________3D.- FldEmp=>1 1.- in : Activate Table feature

ShwRec('sample') C0010M007.-Error not defined

Creating tables

CrtTblIn('My sample', 'My Sample', 'sample' Created!!!

CrtTblIn('Sample 2', 'My Sample', 'sample' Created!!!

Show featrures with tables

ShwFtrTbl() 0D.- table=>(table) Table Feature Show features with tables

ShwFtrTbl() 0D.- index=>Main index 0D.- My sample=>My Sample 0D.- Sample 2=>Other sample same record Show tables

ShwTbl('My sample') Insert Records in My Sample

InsTblIn('My sample' , 'rec 1', array('Name'=>'Just a description','in'=>'Mexico City','parameters'=>8)) Show tables

ShwTbl('My sample') Insert Records in My Sample

InsTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8,'DscPrm'=>'explain what do')) Show tables

ShwTbl('My sample') Insert Records in My Sample

InsTblIn('My sample' , 'rec 3', array('Name'=>'another description','in'=>'Mexico City','parameters'=>8)) Show tables

ShwTbl('My sample') Update and Mix in My Sample

UpmTblIn('My sample' , 'rec 3', array('Name'=>'refresh again description','DscPrm'=>'who cares')) Show tables

ShwTbl('My sample') Update with replace in My Sample

UpdTblIn('My sample' , 'rec 2', array('Name'=>'another description','in'=>'Mexico ','parameters'=>2)) Show tables

ShwTbl('My sample') delete in My Sample

dltTblIn('My sample' , 'rec 1') Show tables

ShwTbl('My sample') +++++++++++ Demo Finish +++++++++++


  Files folder image Files  
File Role Description
Accessible without login Plain text file DemoTable.php Example Example script
Accessible without login Plain text file licencia Data Auxiliary data
Accessible without login Plain text file license Lic. License text
Plain text file OnTime.php Class Class source
Plain text file OnTimeAllways.php Class Class source
Accessible without login Plain text file OntimeInstallerTable.php Example Example script
Plain text file OnTimeTableA.php Class Class source
Plain text file OnTimeTableB.php Class Class source
Plain text file OnTimetmp.php Class Class source
Plain text file OnTimeValid.php Class Class source
Plain text file OTiTable.php Class Class source
Accessible without login Plain text file README.md Doc. Documentation

Downloadontimetable-2021-05-09.zip 12KB
Downloadontimetable-2021-05-09.tar.gz 10KB
Install with ComposerInstall with Composer
Needed packages  
Class DownloadWhy it is needed Dependency
OnTime Core Backend Download .zip .tar.gz This package is the usr and features controler Required
HTML Nav bar using PHP on Time Download .zip .tar.gz Implements a Nav Bar Optional
HTML LayOut using PHP on Time Download .zip .tar.gz Implement Layout Optional
HTML CSS Styles using PHP on Time Download .zip .tar.gz Implements Css Html Optional
HTML Google Fonts using PHP on Time Download .zip .tar.gz Implement Google Font on HTML Optional
HTML Metatags using PHP on Time Download .zip .tar.gz Html Meta Tag pacakage Optional
OnTime PHP Multi Language trait Download .zip .tar.gz Add Multilenguage to the database Optional
Easy PHP SOAP Server Web Service Download .zip .tar.gz Add soap webservice server Optional
OnTime Debugger Backend Trait Download .zip .tar.gz the speteal debuger Optional
HTML Include Images and Text using PHP on Time Download .zip .tar.gz Implement image & text Optional
OnTime Group Backend Download .zip .tar.gz This package add group feature Recommended
On Time Data Dictionary and Record Trait Download .zip .tar.gz this packega have the logic to Record & data dictionary Required
OnTime Timezones and Formats Trait Download .zip .tar.gz This package give the ability to manege date & times Required
OnTime Basic Content Trait Backend Download .zip .tar.gz This trait is to control the list on the database Required
 Version Control Reuses Unique User Downloads Download Rankings  
 100%8
Total:57
This week:1
All time:10,511
This week:560Up