Crudder
Updated nov 28th, 2009
Crudder
Yup, yet another CRUD-tool/library / Scaffold-library

Why???
Well; I needed some kind of CRUD-library for a commercial project, but all I could find was bloated, not OOP, didn’t have a AJAX-controlled interface or written Spaghetti-style, and worst of all: none of them could be used without having to write lines and lines of code. CRUD needs to be simple right?
So.. I decided to give up my weekend (what else is new) and began on Crudder.
Check out the Demo!
A demo is available here
Download
Download version 0.50b here.
What do you need to use Crudder?
- You have PHP5 running on Apache
- PHP5 has been compiled with/has loaded:
- phpDOM-module
- XSL-t module
- Register Globals is OFF (could produce strange behaviour if register_globals is on)
License
CRUDDER is GPL, and free for personal use, NOT for use in commercial websites.
Contact me to obtain a commercial license ($29) or (re)distribution-license ($499).
How does it work?
Crudder uses AJAX to get both configuration and data from the server. Configuration is done by a XML-file:
<crudder>
<config>
<theme>default</theme>
<lang>enUS</lang>
<defaultItemsPerPage>20</defaultItemsPerPage>
<gridviewfield name="Code"/>
<gridviewfield name="Name"/>
<gridviewfield name="Continent"/>
<disableDelete>true</disableDelete>
<showIndex>true</showIndex>
</config>
<table>
<dsn>mysql://DSNUser:DSNPass@DSNServer/crudderDemo</dsn>
<name>Country</name>
<friendlyName>Countries</friendlyName>
<pKey>Code</pKey>
</table>
<fields>
<field name="Name" type="blob" friendlyName="Name" metaType="text">
<value/>
<validations>
<validation>mandatory</validation>
</validations>
</field>
<field name="Continent" type="blob" friendlyName="Continent" metaType="select">
<value/>
<options>
<option value="Asia">Asia</option>
<option value="Europe">Europe</option>
<option value="North America">North America</option>
<option value="Africa">Africa</option>
<option value="Oceania">Oceania</option>
<option value="Antartica">Antartica</option>
<option value="South America">South America</option>
</options>
<validations>
<validation>mandatory</validation>
</validations>
</field>
<field name="Region" type="blob" friendlyName="Region" metaType="text">
<value/>
<validations>
<validation>mandatory</validation>
</validations>
</field>
<field name="Population" friendlyName="Population" type="int" metaType="text">
<value/>
<validations>
<validation>mandatory</validation>
</validations>
</field>
<field name="Capital" friendlyName="Capital" type="int" metaType="linked">
<value/>
<link>
<reftable name="City" key="ID" field="Name" order="Name" orderBy="asc"/>
</link>
<validations>
<validation>mandatory</validation>
</validations>
</field>
<field name="Language" friendlyName="Language" type="int" metaType="m2mlinked">
<value/>
<link>
<linktable name="country_language" srcKey="LangID" destKey="Code"/>
<reftable name="Language" key="ID" field="Language" order="Language" orderBy="asc"/>
</link>
</field>
</fields>
</crudder>
Installing Crudder
Basicly there are 3 parts;
- Including and configuring the crudder-library (configuring can be done by altering just 2 lines)
- Inserting the javascript-libraries (1 line), inserting a container (also; 1 line) and call the javascript library (from an onlick/onload-event, also 1 line) on your website
- Creating table-definition(s)
More info available in the readme/INSTALL-files
Current Status
Crudder does all basic CRUD operations, has support for one-to-many and basic many-to-many relations, sorting, file-uploading, exporting, html-editors,
searching, events, themes, multiple languages, has a fast intuitive interface and has (basic) validation.
Changelog current Release : 0.50b
- More validation (numeric, decimals)
- New field-types; Enum, File-upload, HTML-editor
- Fixed bugs in time-picker
- Fixed bugs in language-support
- Fixed bugs in many-to-many-interface
- Fixed bugs in many-to-many-interface
- Export data using CSV-files
- Works on Firefox 3.5/MSIE8/Chrome/Safari 4
What will be in the next release:
- Import (with synchronisation-support)
- Ability to delete files
- Table-definition wizard (will not be part of a release but a service on crudder.net)
- New field-type : XML-editor (with XSL-t-support)
Support
If you have any questions, please contact me or leave a message in the reaction-section below.
Donate
Keep me going, donate!
More I-V-O projects
I’ve been programming for over 11 years, from which 5 years as a freelance webdeveloper.
I’ve created a lot of generic (GPL’ed) code that could be of use for anyone past 4 years,
I’m planning on releasing these libraries into packages, some of it completely free (even lGPL), some commercial.
For now, check out :
- PrototypeReact, a react-widget/miniforum; implemented with 6 lines of code and doesn’t need a backend (PHP/ASP-server) or database
- TimeLiner, a widget that will allow visitors to respond to flash-movies/mp3-files or streams in a .. timely fashion
- WPS, the next Joomla, a full featured WYSIWYG Content management & publication-system, based on XML/XSL-t, new version, 3.0, will be released around january 2009.WPS has been succesfully deployed in about 50 websites, ranging from simple websites to complete webapplications.
Link partners / Referers
These sites have linked to crudder.net:






“Could not bla bla. Cool.”
Hi there,
i just wanna say what i cannot download crudder, when i click link to download web pages redirects me to: http://syntacticsugar.nl/
@Arturas
Oops! I think I removed the file by accident.. It should work now!
Thanks a lot!
I have been trying to make it work for the past 2 days but it keeps giving me this error message:
“Fatal error: Call to undefined function phpFunction() in D:\workspace\xampp\htdocs\fai\admin\crudder\lib\crudderTable.php(89) : eval()’d code on line 1”
I cannot seem to find this “phpFunction()” thing in that file since it says it’s in eval’d code. Am I doing something wrong?
In your INSTALL.txt you mention 2 paths:
- set the CRUDDER_ROOT to the absolute location where you’ve put the crudder-libraries
- set CRUDDER_DEFINITION_ROOT to the location where you’ve placed the configuration-files
I suppose crudder-libraries is the crudder root path? In my case /fai/admin/crudder ?
And the configuration files are kept in a custom folder with all the needed .xml files for each table? In my case /fai/admin/crudder/crudderConfig (where I keep hta_tableName.xml files).
@Peter
It looks like there’s an (@type=’server’) event defined in your XML-definition. crudderTable line 89 handles/eval’s server-events. If you could email me the xml-definition I can take a look at it.