Crudder

November 29th, 2009

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>
Scripts.com Rate Script!

Installing Crudder

Basicly there are 3 parts;

  1. Including and configuring the crudder-library (configuring can be done by altering just 2 lines)
  2. 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
  3. 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:

Free-PHP.net
Free Php Scripts Directory
Free ASP, PHP, Java Script, Tools and Utilities
The PHP Resource Index
Scripts.com
Mijnhomepage.nl: Het Homepage Centrum

Best PHP Scripts - Best Rated PHP Scripts Collection


Share this post:
  • Twitter
  • Facebook
  • Digg
  • del.icio.us
  • FriendFeed
  • Technorati
  • Google Bookmarks
  • PDF
  • Print
  • NuJIJ
  • Ping.fm
  • StumbleUpon
  • Symbaloo
  • Hyves
  1. Bice
    April 6th, 2009 at 15:31 | #1

    “Could not bla bla. Cool.”

  2. April 20th, 2009 at 13:35 | #2

    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/

  3. April 20th, 2009 at 15:16 | #3

    @Arturas
    Oops! I think I removed the file by accident.. It should work now!

  4. April 22nd, 2009 at 11:13 | #4

    Thanks a lot! :)

  5. October 18th, 2009 at 21:27 | #5

    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).

  6. October 19th, 2009 at 16:14 | #6

    @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.

  1. November 28th, 2009 at 13:02 | #1

Onze tip:SCDB.info – de meest actuele flitspalen in Europa voor uw GPS!