VERSION 2.02 - RELEASED ON JANUARY 25,2010 - MULTI FILE UPLOADS - Aug 6th, 2010


The major new feature is a new flash based multi-file upload component. This makes it WAY easier to upload lots of files
at the same time. No more clicking "Browse..." for each file. There are a few other fun new features in this release as
well (see below).
- Uploads: You can now upload multiple files at once with uploadify flash upload component

This addition uses a jQuery component from uploadify.com. You can click “upload” and then select a dozen or more
files (either by holding shift or ctrl or by selecting a box with your mouse) and clicking upload. If some of your files
exceeded the maximum allowable file size, only those that are too big will throw an error message, the rest will be
uploaded to the server and will appear in the uploaded list.

- Viewers: Sort ordering can now be defined in viewer URLs with orderBy=fieldname or fieldname DESC

This makes it very easy to sort a viewer list page multiple ways (e.g.: by price, product name, etc). We've written
custom code to do this many times, now you can just create a link to ?orderBy=price DESC to let the user sort viewer
lists the way they want.

- Viewers: min/max date searches now support date without time formatted as: YYYY-MM-DD

If you wanted to do date min/max range searches you previously had to enter a full MySQL format date like this:
?date_min=2010-01-01 00:00:00. Now you can just enter the date part and it figures out the rest (00:00:00 for _min
searches and 24:00:00 for _max searches).

- Settings: Custom settings files can be created for dev domains, such as: /data/settings.localhost.php
If you've ever had to keep a local staging/development environment in sync with a live server you've probably noticed
what a hassle it is to manage the /data/settings.dat.php file. You need different mysql details, upload paths, etc for
each environment.
Now CMSB will automatically check for a settings file with the current domain name in it and use that if it's available.
Just copy settings.dat.php and replace "dat" with your hostname or IP.

Note: When using this feature, Dave suggests that you always setup a new file for your dev environment and let
production/live use the default one. That way if a domain name is added or changed it won't break things on the live
site.

- Viewers: Added the following options to getRecords() for advanced MySQL users: 'groupBy' and 'having'

For advanced MySQL users (and to make forum support easier for us). If you know what "GROUP BY" and "HAVING" are, you
can now pass them to getRecords with the 'groupBy' and 'having' options.

- Viewers: Added utility function mysql_escapef(), example: mysql_escapef("num = ? AND name = ?", $num, $name);

This is another one for more advanced MySQL users. When writing custom MySQL you have to be careful to escape user input
to avoid "SQL Injection Attacks" (Google for details). Basically this means passing any input to
mysql_real_escape_string().

This can make simple queries like this:
'where' => "city = '$city' AND year = '$year' ",

Look a lot more complicated like this:

'where' => "city = '" .mysql_real_escape_string($city). "' AND year = '" .mysql_real_escape_string($year). "' ",

Dave Edis from Interactive Tools explained that mysql_escapef lets you write your query with a ? where each value goes,
then mysql_escapef automatically escapes and inserts the values for you.

So now the query would be written this way:
'where' => mysql_escapef("city = ? AND year = ?", $city, $year),

- Viewers: getPrevAndNextRecords() now supports 'orderBy' option

The getPrevAndNextRecords() function has been optimized and an orderBy option has been added to it. If you'd like to
display links to the previous and next record on a detail page you can do that like this:

list($prevRecord, $nextRecord, $firstRecord, $lastRecord) = getPrevAndNextRecords(array(
'Table name' => 'news',
'recordNum' => $record['num'],
'orderBy' => 'createdDate',
));

And you can display links to the previous and next record as simply as:
<?php echo $prevRecord['_link'] ?> or <?php echo $nextRecord['_link'] ?>

- Custom CSS:

You can now define your own upgrade-safe CSS by creating
a file named:
cmsAdmin/custom.css

According to Dave, “It's only loaded if it exists and it will be loaded _after_ all the rest of the CSS, making it
easy for you to override any CSS styling you want to change.”



The materials on this web site have been created for use with CMS Builder content management software. CMS Builder software is published and licensed for use by InteractiveTools.com. Please contact Interactive Tools for information on the downloading of the software or the purchasing of licenses.


Terms of Service