PHP Classes

OnTime Basic Content Trait Backend: Manage a table of content without using SQL

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 54 All time: 10,612 This week: 488Up
Version License PHP version Categories
ontimebasic 1.0.0Public Domain5PHP 5, Databases, Traits
Description 

Author

This package can manage a database of content without using SQL.

It can connect to a database and perform several types of operations to manage the content of a database that associates named keys to text values. Currently it can perform operations like:

- Insert new records with values to be associated with a key
- Retrieve the records values associated to a key
- Remove records of values associated to a key

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: 59
All time rank: 309536 in Mexico Mexico
Week rank: 51 Up1 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> Create Demostration user & groups (if installed) <br> **********+++++++++++ <br> <br>";
$demo->CrtUsr('Demo','12345','active','Demostration user','Demo 1');
$demo->CrtUsr('DEMO','12345','active','Demostration user','Demo 2');
$demo->CrtUsr('demo','12345','active','Demostration user','Demo 3');
if (
$demo->ot_feature('grp')){
   
$demo->CrtGrp('Administrators','Administrators for the main Feature','admins');
   
$demo->CrtGrp('Everyone','All users','EvrAll');
   
$demo->CrtGrp('AdminUsers','Administrators on User Featrute','AUser');
   
$demo->GrpAddUsr('Everyone','DEMO','access');
   
$demo->GrpAddUsr('AdminGroups','DEMO','owner');
   
$demo->GrpAddUsr('AdminGroups','Demo','create');
   
$demo->GrpAddUsr('AdminGroups','demo','access');
}
echo
"********** <br> Features with basic content<br> ********** <br> <br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwFtrBsc() ";
$demo->ot_show($demo->ShwFtrBsc());
echo
"********** <br> Create <br> **********+ <br> <br>";
echo
"CrtFtrBsc('Basic') ";
$demo->CrtFtrBsc('Basic');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"CrtFtrBsc('Non') ";
$demo->CrtFtrBsc('Non');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"CrtFtrBsc('grp') ";
$demo->CrtFtrBsc('grp');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"CrtFtrBsc('usr') ";
$demo->CrtFtrBsc('usr');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwFtrBsc() ";
$demo->ot_show($demo->ShwFtrBsc());
echo
"********** <br> Basic Content<br> ********** <br> <br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwBscIn('Basic') ";
$demo->ot_show($demo->ShwBscIn());
echo
"********** <br> Add <br> **********+ <br> <br>";
echo
"AddCntIn('first','My First Content','Basix') ";
$demo->AddCntIn('first','My First Content','Basix') ;
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"AddCntIn('first','My First Content','basic') ";
$demo->AddCntIn('first','My First Content','basic') ;
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"AddCntIn('Color','names in spanish and english','basic') ";
$demo->AddCntIn('Color','names in spanish and english','basic') ;
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwBscIn('basic') ";
$demo->ot_show($demo->ShwBscIn());
echo
"********** <br> Data Basic Content<br> ********** <br> <br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntIn('Color','basic') ";
$demo->ot_show($demo->ShwBscIn('Color','basic'));
echo
"********** <br> Insert <br> **********+ <br> <br>";
echo
"InsCntIn('Rojo','Red','Color','basic') ";
$demo->InsCntIn('Rojo','Red','Color','basic');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"InsCntIn('Naranja',Strange Yellow,'Color','basic') ";
$demo->InsCntIn('Naranja','Strange Yellow','Color','basic');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"InsCntIn('Moraido',Purple,'Color','basic') ";
$demo->InsCntIn('Moraido','Purple','Color','basic');
echo
"<br>";$demo->ot_error("Added!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntIn('Color','basic') ";
$demo->ot_show($demo->ShwCntIn('Color','basic'));
echo
"********** <br> Upsert <br> **********+ <br> <br>";
echo
"UpnCntIn('Naranja','orange','Color','basic') ";
$demo->UpnCntIn('Naranja','orange','Color','basic');
echo
"<br>";$demo->ot_error("Done!!!");echo "<br>";
echo
"UpnCntIn('Amarillo','Yellow','Color','basic') ";
$demo->UpnCntIn('Amarillo','Yellow','Color','basic');
echo
"<br>";$demo->ot_error("Done!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntIn('Color','basic') ";
$demo->ot_show($demo->ShwCntIn('Color','basic'));
echo
"********** <br> Update <br> **********+ <br> <br>";
echo
"UpnCntIn('Naranja','Orange','Color','basic') ";
$demo->UpnCntIn('Naranja','Orange','Color','basic');
echo
"<br>";$demo->ot_error("Done!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntIn('Color','basic') ";
$demo->ot_show($demo->ShwCntIn('Color','basic'));
echo
"********** <br> Delete <br> **********+ <br> <br>";
echo
"DltCntIn('Moraido','Color','basic') ";
$demo->DltCntIn('Moraido','Color','basic');
echo
"<br>";$demo->ot_error("Done!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntIn('Color','basic') ";
$demo->ot_show($demo->ShwCntIn('Color','basic'));
echo
"********** <br> Safety for Data Basic Content<br> ********** <br> <br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Add Anonimus user read <br> **********+ <br> <br>";
echo
"AnnBscInAdd('Color','basic') ";
$demo->AnnBscInAdd('Color','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Add Public (conected) user read <br> **********+ <br> <br>";
echo
"PblBscInAdd('Color','basic') ";
$demo->PblBscInAdd('Color','basic');
echo
"<br>";$demo->ot_error("Punlic User Allow read!!!");echo "<br>";
echo
"********** <br> Remove Anonimus user read <br> **********+ <br> <br>";
echo
"AnnBscInRmv('Color','basic') ";
$demo->AnnBscInRmv('Color','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Add Public (conected) user read <br> **********+ <br> <br>";
echo
"PblBscInAdd('Color','basic') ";
$demo->PblBscInAdd('Color','basic');
echo
"********** <br> Add Anonimus user read <br> **********+ <br> <br>";
echo
"AnnBscInAdd('Color','basic') ";
$demo->AnnBscInAdd('Color','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Add user level <br> **********+ <br> <br>";
echo
"UsrBscInAdd('Color','DEMO','change','basic') ";
$demo->UsrBscInAdd('Color','DEMO','change','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"UsrBscInAdd('Color','Demo','update','basic') ";
$demo->UsrBscInAdd('Color','Demo','update','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Add Group level <br> **********+ <br> <br>";
echo
"GrpBscInAdd('Color','Everyone','change','basic') ";
$demo->GrpBscInAdd('Color','Everyone','change','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"GrpBscInAdd('Color','AdminGroups','update','basic') ";
$demo->GrpBscInAdd('Color','AdminGroups','update','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> change user level <br> **********+ <br> <br>";
echo
"UsrBscInChg('Color','DEMO','update','basic') ";
$demo->UsrBscInChg('Color','DEMO','update','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> change Group level <br> **********+ <br> <br>";
echo
"GrpBscInChg('Color','AdminGroups','change','basic') ";
$demo->GrpBscInChg('Color','AdminGroups','change','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> delete user level <br> **********+ <br> <br>";
echo
"UsrBscInDlt('Color','DEMO','basic') ";
$demo->UsrBscInDlt('Color','DEMO','basic');
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> delete Group level <br> **********+ <br> <br>";
echo
"GrpBscInDlt('Color','AdminGroups','basic') ";
$demo->GrpBscInDlt('Color','AdminGroups','basic');
echo
"<br>";$demo->ot_error("Anonimus User Allow read!!!");echo "<br>";
echo
"********** <br> Show <br> **********+ <br> <br>";
echo
"ShwCntInSft('Color','basic') ";
$demo->ot_show($demo->ShwCntInSft('Color','basic'));
echo
"********** <br> Show Basic Content <br> **********+ <br> <br>";
echo
"ShwBscIn('basic') ";
$demo->ot_show($demo->ShwBscIn('basic'));
echo
"********** <br> Remove Basic Content <br> **********+ <br> <br>";
echo
"RmvCntIn('Color',basic') ";
$demo->ot_show($demo->RmvCntIn('Color','basic'));
echo
"<br>";$demo->ot_error("Delete!!!");echo "<br>";
echo
"********** <br> Show Basic Content <br> **********+ <br> <br>";
echo
"ShwBscIn('basic') ";
$demo->ot_show($demo->ShwBscIn('basic'));
echo
"**********+++++++++++ <br> Demo Finish<br> **********+++++++++++ <br> <br>";
?>


Details

Trait Basic for 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 is designed, to create and update basic content, the basic content is a simple 2 column table the code and the related value, the onl y validation is unique code

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 OntimeInstallerBasic.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 the control of Groups

Basic content is for simple tables, each table can have access dor anonimous user, public user, group and user, to can create content must hace proper level, can have user that create, and user that update data

mario.carrocera@hotmail.com +++++++++++ Basic Table Demo +++++++++++

Create Class

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

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

+++++++++++ Create Demostration user & groups (if installed) +++++++++++

Features with basic content

Show +

ShwFtrBsc() 0D.- usr=>(Users)Users Feature 0D.- grp=>(Groups)Groups Feature 0D.- basic=>(Groups)Groups Feature Create +

CrtFtrBsc('Basic') C0010M012.-Not autorized

CrtFtrBsc('Non') C0010M012.-Not autorized

CrtFtrBsc('grp') C0010M007.-Record exist

CrtFtrBsc('usr') C0010M007.-Record exist

Show +

ShwFtrBsc() 0D.- usr=>(Users)Users Feature 0D.- grp=>(Groups)Groups Feature 0D.- basic=>(Groups)Groups Feature Basic Content

Show +

ShwBscIn('Basic') 0D.- index=>Main index 0D.- first=>My First Content Add +

AddCntIn('first','My First Content','Basix') C0010M012.-Not autorized

AddCntIn('first','My First Content','basic') C0010M007.-Record exist

AddCntIn('Color','names in spanish and english','basic') Added!!!

Show +

ShwBscIn('basic') 0D.- index=>Main index 0D.- first=>My First Content 0D.- Color=>names in spanish and english Data Basic Content

Show +

ShwCntIn('Color','basic') Empty Insert +

InsCntIn('Rojo','Red','Color','basic') Added!!!

InsCntIn('Naranja',Strange Yellow,'Color','basic') Added!!!

InsCntIn('Moraido',Purple,'Color','basic') Added!!!

Show +

ShwCntIn('Color','basic') 0D.- Rojo=>Red 0D.- Naranja=>Strange Yellow 0D.- Moraido=>Purple Upsert +

UpnCntIn('Naranja','orange','Color','basic') Done!!!

UpnCntIn('Amarillo','Yellow','Color','basic') Done!!!

Show +

ShwCntIn('Color','basic') 0D.- Rojo=>Red 0D.- Naranja=>orange 0D.- Moraido=>Purple 0D.- Amarillo=>Yellow Update +

UpnCntIn('Naranja','Orange','Color','basic') Done!!!

Show +

ShwCntIn('Color','basic') 0D.- Rojo=>Red 0D.- Naranja=>Orange 0D.- Moraido=>Purple 0D.- Amarillo=>Yellow Delete +

DltCntIn('Moraido','Color','basic') Done!!!

Show +

ShwCntIn('Color','basic') 0D.- Rojo=>Red 0D.- Naranja=>Orange 0D.- Amarillo=>Yellow Safety for Data Basic Content

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) Add Anonimus user read +

AnnBscInAdd('Color','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- Anonimus=>Allways avaible for read Add Public (conected) user read +

PblBscInAdd('Color','basic') C0010M038.-Access grant to 'Anonimus' nor tequiered

Remove Anonimus user read +

AnnBscInRmv('Color','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) Add Public (conected) user read +

PblBscInAdd('Color','basic') Add Anonimus user read +

AnnBscInAdd('Color','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- Public=>Online avaible for read 1.- 3 : __________1D.- Anonimus=>Allways avaible for read Add user level +

UsrBscInAdd('Color','DEMO','change','basic') Anonimus User Allow read!!!

UsrBscInAdd('Color','Demo','update','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- DEMO=>change (user) 1.- 3 : __________1D.- Demo=>update (user) 1.- 4 : __________1D.- Public=>Online avaible for read 1.- 5 : __________1D.- Anonimus=>Allways avaible for read Add Group level +

GrpBscInAdd('Color','Everyone','change','basic') Anonimus User Allow read!!!

GrpBscInAdd('Color','AdminGroups','update','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- DEMO=>change (user) 1.- 3 : __________1D.- Demo=>update (user) 1.- 4 : __________1D.- Everyone=>change (group) 1.- 5 : __________1D.- AdminGroups=>update (group) 1.- 6 : __________1D.- Public=>Online avaible for read 1.- 7 : __________1D.- Anonimus=>Allways avaible for read change user level +

UsrBscInChg('Color','DEMO','update','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- DEMO=>update (user) 1.- 3 : __________1D.- Demo=>update (user) 1.- 4 : __________1D.- Everyone=>change (group) 1.- 5 : __________1D.- AdminGroups=>update (group) 1.- 6 : __________1D.- Public=>Online avaible for read 1.- 7 : __________1D.- Anonimus=>Allways avaible for read change Group level +

GrpBscInChg('Color','AdminGroups','change','basic') Anonimus User Allow read!!!

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- DEMO=>update (user) 1.- 3 : __________1D.- Demo=>update (user) 1.- 4 : __________1D.- Everyone=>change (group) 1.- 5 : __________1D.- AdminGroups=>change (group) 1.- 6 : __________1D.- Public=>Online avaible for read 1.- 7 : __________1D.- Anonimus=>Allways avaible for read delete user level +

UsrBscInDlt('Color','DEMO','basic') Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- Demo=>update (user) 1.- 3 : __________1D.- Everyone=>change (group) 1.- 4 : __________1D.- AdminGroups=>change (group) 1.- 5 : __________1D.- Public=>Online avaible for read 1.- 6 : __________1D.- Anonimus=>Allways avaible for read delete Group level +

GrpBscInDlt('Color','AdminGroups','basic') C0010M008.-Record don't exist

Show +

ShwCntInSft('Color','basic') 1.- 1 : __________1D.- admin=>owner (user) 1.- 2 : __________1D.- Demo=>update (user) 1.- 3 : __________1D.- Everyone=>change (group) 1.- 4 : __________1D.- AdminGroups=>change (group) 1.- 5 : __________1D.- Public=>Online avaible for read 1.- 6 : __________1D.- Anonimus=>Allways avaible for read Show Basic Content +

ShwBscIn('basic') 0D.- index=>Main index 0D.- first=>My First Content 0D.- Color=>names in spanish and english Remove Basic Content +

RmvCntIn('Color',basic') Empty

Delete!!!

Show Basic Content +

ShwBscIn('basic') 0D.- index=>Main index 0D.- first=>My First Content +++++++++++ Demo Finish +++++++++++


  Files folder image Files (13)  
File Role Description
Accessible without login Plain text file DemoBasic.php Example Example script
Accessible without login Plain text file licencia Lic. 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
Plain text file OnTimeBasicA.php Class Class source
Plain text file OnTimeBasicB.php Class Class source
Plain text file OnTimeConvert.php Class Class source
Plain text file OnTimeFunctions.php Class Class source
Accessible without login Plain text file OntimeInstallerBasic.php Example Example script
Plain text file OnTimetmp.php Class Class source
Plain text file OTibasic.php Class Class source
Accessible without login Plain text file README.md Doc. Documentation

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
Downloadontimebasic-2021-04-15.zip 13KB
Downloadontimebasic-2021-04-15.tar.gz 10KB
Install with ComposerInstall with Composer
Needed packages  
Class DownloadWhy it is needed Dependency
HTML LayOut using PHP on Time Download .zip .tar.gz Implement Layout Optional
HTML Include Images and Text using PHP on Time Download .zip .tar.gz Implement image & text Optional
HTML Nav bar using PHP on Time Download .zip .tar.gz Implements a Nav Bar 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 Table Trait Download .zip .tar.gz Add table feature with myltiple fields validatied Optional
On Time Data Dictionary and Record Trait Download .zip .tar.gz Add Data Dictuionary and record information Optional
OnTime Timezones and Formats Trait Download .zip .tar.gz Add Date, time & timezones managemt Optional
OnTime Debugger Backend Trait Download .zip .tar.gz Add the ability to debug the class Optional
OnTime Group Backend Download .zip .tar.gz This trait give groups access security Recommended
OnTime Core Backend Download .zip .tar.gz This package is the usr and features controler Required
 Version Control Reuses Unique User Downloads Download Rankings  
 100%8
Total:54
This week:0
All time:10,612
This week:488Up