Object oriented Smart Templates Engine
Smart PHP Template Engine
# History Smart Parser history:
v1.81 22/June/2004
  • NEW: "SP model" was added in SP.Database dialog
    <form ...> ... </form> block is framed by SP Forms tag - [FORM__name ...] and [END__FORM__name]
    if you set "Update field" - "<input type='hidden' name='ID' value=''> will be added
  • Added: if image processing : assume that your form includes image field, then SP.Database adds enctype='multipart/form-data' in <form ... > and
    < input type='hidden' name='MAX_FILE_SIZE' value='MAX'> after <form ...> if it was ommited
  • Added: Portuguese translation file - Thanks to Luis P. Sousa, lpmac.com
  • Fixed: image output {IMG__field()} works wrong on subdomains due to pathes
  05/June/2004

NEW!!!
  Download "Image Gallery" script now!
See installation manual and script in action on our "Demo" page!
v1.80 02/June/2004
  • IMPORTANT: To use 1.80 version, you need to change source of your scripts, there is an incompatibility due to old model limitation. Please change this:

    Old value New value
    [CASE__name (condition) [CASE__name (condition)]
    __ELSE__name [__ELSE__name]
    ENDCASE] [ENDCASE]

    [FIRST__HREF__TemlateName]

    [PAGE__FIRST]
    [PREV__HREF__TemlateName] [PAGE__PREV]
    [PAGES__HREF__TemlateName=N] [PAGE__PAGES]
    [NEXT__HREF__TemlateName] [PAGE__NEXT]
    [LAST__HREF__TemlateName] [PAGE__LAST]

  • New [PARSE__GET name = ...] tag to parse GET results.

    Example: you call the script and setup mod_rewrite rule to redirect
    http://yourdomain.com/alex/archive/1/ to your script index.php?cat='alex/archive/1'

    Include this line in your file
    [PARSE__GET cat = {author}/{alias}/{page}] so you it will be possible to parse GET var and use values in VAR(GET.field) directive : [CASE VAR(GET.author)=="John"] or output the value of each field - {author}, {alias}, {page} and so on.
  • New ^LINK tag
    This tag is used with ^LIMIT and [PAGE__...] tags to limit number of records to show on one page and to create usefull navigation links. ^LINK will describe a structure of links (First, Prev, Pages, Next, Last)

    Example: ^LINK : /photos/{author}/{alias}/##.
    Use "##" instead of page numbers, so links will have following structure:
    http://yourdomain.com/photos/alex/archive/1/ - for first page,
    http://yourdomain.com/photos/alex/archive/2/ - for second page and so on.

  • Fixed: Important fix - INCLUDE() model did not work after SP Database Engine redesign ;)
  • Fixed: Other small bug fixes

  • TODO: 99.99% ready to use "Image Gallery" script (will be available to download soon)
  • TODO: 50,01% that Smart Parser XML Engine will be developed next month to parse XML pages.
v1.72 18/May/2004
  • NEW {ERROR__fieldname} to use in forms and to handle output of errors after form processing
  • NEW {SUBMIT__ fieldname} - alternative to {RADIO__ fieldname} to use in forms
  • NEW ^UPDATE option to use in templates configuration ( [SET__... )
    to update databases on fly.
  • Changed: ^CEIL to ^CELL (old value is still valid for compatibility)
  • Fixed: a lot of bugs in errors checking in SP.Database.Engine
  • Fixed: Recursive Templates bugs

    Fixed errors while using {IMG__}, {TXT__} and other SP tags in the text, submited from forms or stored in the database to future use in templates (this is very usefull option if you are planning to call the text using {TXT__fieldname} where fieldname is a dataabase text field and contains SP structures insude the text)
  • Fixed: Adding new record without image using forms ( bug was reported on the forum )
v1.70

24/April/2004

  • Added: Documentation for SmartParser Template Engine!
  • Rebranding from FormParser.com to SmartParser.com
  • New price structure - $39 for a 3 sites license
  • Volume discounts (submit a support request)
  • New or Updated Template Engine's tags:
    ARRAY__
    BBCODES __
    CASE__
    FORM__
    SUBMIT__
    RADIO__
    FIRST __ HREF __
    PREV __ HREF __
    PAGES __ HREF __
    NEXT __ HREF __
    LAST __ HREF __
    PRINT__TIME

    {RADIO__ fieldname }
    {CHECK__ fieldname }
    {CHECK __ DELETE }
    {IMG__ fieldname[(x=val[,y=val])] }
    {DATE__date(format=Y M D)}
    {TXT__ fieldname[(start=val,end=val[,symbol[='character']][,bbcodes])] }
  • New ^LIMIT, ^CACHED options in [TEMPLATE] syntax
  • New ^UPDATE directive for [TEMPLATES] - to update MySQL fields during the template processing
  • All [TEMPLATES] and [CASE] are recursive now. Depth is limited to system's resources
  • It is possible no to include templates into the text, stored in MySQL fields. Then, when you call this text using {TXT__}, templates will be parsed as usuall! We like this option!
  • Fixed: now we remove the record from "images" table correctly after removing the record from main table using {CHECK __ DELETE }
  • {IMG} tag is able to fill unused parts of images if X or Y is less then defined
  • A lot of improvements!
  • TODO:
      - to clear image_cache directory on regular basis via cron
      - to create "Photo archive" script
      - to create "News publishing system", "Vbulletin integration" scripts (90% ready).
v1.60 10/March/2004 - 14/April/2004

Internal testing for new release. We had no plans to make this version public, but tested new features on couple real projects. New release will be the best we ever created!
v1.55 5/April/2004 - Completely new version. Almost 50% of source code has been rewritten.
  • Note: CGI mode was made for html files, dont use it with php files that has include() inside
  • Added: Debugging. Include <input type='hidden' name='FSdebug' value='5'> into form to view debug information
  • Added: Attachment. Just include file field into Mail Body
  • Added: E-Mails. If smtp fails - FCSS will try to send again using php mail()
  • Added: FT. DATE__fieldname(format=), RADIO__fieldname, TXT__fieldname(Start=,End=,Symbol=), CHECK__name lexems
  • Changed: FCSS licensing. FCSS license is available for 2 site since v1.55
  • Changed: FT syntax. New define for template block:
    [TEMPLATE__name
    ^MYSQL [:= ] define
    ^WHERE [:= ] define
    ^CASE [:= ] define
    ^IF [:= ] define
    ^CEIL [:= ] define
    ^CODE [:= ] define
    ^TABLE [:= ] define
    ^ID [:= ] define
    ]
    ...
    [END__TEMPLATE__name]
    Still documenting...
  • Changed: Mail checking. DNS lookup has been added to prevent sending to fake domains
  • Changed: New "Do MySQL" checkbox to force SP_Database_Engine to use MySQL
  • Changed: Connect to MySQL. To eliminate logical bugs, FCSS is trying to connect using login details, stored in the .prs file. If it is impossible to connect, DE will use db.inc.php
  • Fixed: select with '' value, loading ' and " ...
v1.51 18/January/2004
  • Added: In preparing to BT (table browser) added multirecords form parsing
    Some limitations, FCSS could load form with fields like formfield[id]
    At first copy file with form used to add record into something like update.php
    Parse that file with cross from first one, add key field and set update mode to "Where" and value to $FS_index.
    Get result.
    Edit form field, add [{ID}] to each field name where ID is your primary key field in a table. For instance, key field is CID, form field "carname" will "carname[{CID}]"
    Also add into form hidden field "FS_index" with values {ID}
    <input type=hidden name='FS_index' value='{CID}'>. It will be base array for MySQL operations
    Then produce form content through FT and get form with records you choose with FT Select
  • Changed: Tables now created from FSave.php dialog
  • Changed: Access to fsave.php now is closed through HTTP Authentication
    Set login and password (empty by default) in the defines.inc.php
  • Fixed: some minor bugs
v1.50 20/December/2003
  • Added: image processing
    Added FILE type in MySQL, has next conditions
    picture might be gif jpg png swf psd bmp tiff
    max file size
    X & Y size
    Images loaded into separated table with "MainTableName_FieldName" name
  • Added: Check on zero field size for MySQL table
    if size of CHAR field is ommited its become VARCHAR(255)
    if size of TEXT field is ommited its become LONGTEXT
    if size of COUNTER,INT or SIGNINT field is ommited its become BIGINT(20)
    if size of FLOAT field is ommited its become just FLOAT
  • Added: file manager to choise form file to process
  • Added: "Show error messages" checkbox to FSave, in case of some errors during
    fcss processing error messages will be printed with button to return on a form
  • Changed: Default value of NULL sets to NOT NULL in MySQL tables
  • Fixed: FSave didn't resume "Dont use" button value
v1.40

10/December/2003

  • new LITE (free) version without mysql support has been released
  • Added: TEMPLATE engine - interface to query tables and to use templates to show/browse results
  • Added: real "template engine" example - autocatalog ( download / howto)
  • Changed: it is possible to load data from the database and then edit/update your database fields directly from your own form (added new option in FSAVE to set rules on how to load data from your tables and how to update fields )
  • Changed: if your file does not use .php extension before parsing, result file will be renamed to "yourfile.php.hdl" (old option - "yourfile.html.hdl")
  • Fixed: code cleanup and small bugs fixes
v1.32

16/September/2003

  • Added: security check (password + login) when you call fsave.php
  • Added: error channel - parser is sending all possible errors to your admin@yourdomain.com account
  • Added: new 30-days trial option
  • Fixed: huge code cleanup
  • Fixed: JavaScript bugs in fsave.php (improved JS support for IE and Opera 6.0-7.2)
  • Fixed: logical bug in fsave.php (now "include" option works correctly)
  • new promo price - $19.95
v1.31

25/August/2003

  •  new backend interface
  •  a lot ot small bug fixes
v1.00

05/January/2003

  •  first version was tested and implemented on whost.info, all other versions were tested on this site.

 1997-2004 © Copyright "H-2.com"    Developed by H-2.com