Download the latest version:
contentigo-80.zip
Contentigocontentigo-80.zip
...the ultra light, super flexible, zero database CMS
version: 96
date: 31-07-2014
changes:
- Improved zone url matching - now '/' is a valid zone url prefix
- Changed DomainClass::entityData to default to an empty array (not null) and removed duplicate $entityData variable from DAODomainClass
- Modified the basic get/set methods of DomainClass and added a propertyExists() method.
- Added a getID() function to DAODomainClass
================================================
version: 95
date: 28-07-2014
changes:
- Created a 'classes' directory to store framework/supporting classes.
- Updated DAODomainClass will now only save to DB fields that have 'changed'.
- Fixed bug whereby prepareEntityCreateData() was not being called upon entity create
================================================
version: 94
date: 23-07-2014
changes:
- Added $CONTENTIGO_HOME to the include path so that contentigo scripts can be included in a static way, ie require('foo/bar.php') directly from anywhere.
================================================
version: 93
date: 22-07-2014
changes:
- Added DomainClass.php and DAODomainClass.php and also added the loadObject function which looks inside the /site/classes folder for classes
these changes allow support of proper data encapsulation objects for object model implementation.
================================================
version: 92
date: 18-07-2014
changes:
- Changes to Database module DAO for better transaction handling support - added functions:
startTransaction(), completeTransaction(), commitTransaction() and rollbackTransaction()
Generally commitTransaction() should not be required to be called.
- Also updated DAO::executeScript function with modified/improved transaction handling.
- Included latest adodb library - version 519 (2014-04-30), but not yet brought online.
================================================
version: 91
date: 14-06-2014
changes:
- Updated ContentigoUtils::doPost2 to support an added $headerFields parameter to allow the caller to specify header fields
- Changed the EndPoint response data handling. Now the $dataCollector['endpoint_response'] is used to return data from EndPoints
As $dataCollector is GLOBAL any function in the call stack can add data to this variable.
================================================
version: 90
date: 25-06-2014
changes:
- Modified the callEndPoint() function to better handle response when endpoint is 'unauthorized'.
It now calls an overridable function EndPoint::unauthorizedResponse(); which returns and object in the same format
as a standard EndPoint function, which contains an http code (in this case will typically be 403 Forbidden)
- Added the following line to contentigo to allow for relative includes of scripts, ie: require_once('site.php'); this will make rich class/object models much
easier to manage.
set_include_path( get_include_path() . PATH_SEPARATOR . $SITE_LOCATION);
- Change to callEndPoint(), now the response string defaults to '{}' (a valid JSON string), this is done to avoid jQuery ajax firing the 'error' function
when datatype set to 'JSON'.
================================================
version: 89
date: 30-05-2014
changes:
- Introduction of the EndPoint functionality for implementation of RESTful APIs. Essentially you create a CSM_ZONES entry for your API, eg:
$site[CSM_ZONES] = array (
'/api' => array('ENDPOINT_CONTEXT' => true)
);
then define your endpoints as below in the $site[CSM_URL_CONTENT_MAP]:
'/api/some-entity' => array( 'endpoint' => 'SomeEntity_EndPoint'),
the 'SomeEntity_EndPoint' live in the /end_points directory and extends 'EndPoint'
================================================
version: 88
date: 13-03-2014
changes:
- Improved Redirect action to handle invalid urls, by returning a 400 Bad Request
- Improved exitWithHTTPCode() funtion to handle: 400, 404 and 429 errors
================================================
version: 87
date: 13-03-2014
changes:
- Module class changed - the module_init function takes a $moduleNamespace by default and sets to a protected $moduleNamespace variable
this gives all Modules the ability to be 'namespace aware'.
================================================
version: 86
date: 04-03-2014
changes:
- Fixed bug with 'catch-all' url processing
================================================
version: 85
date: 04-03-2014
changes:
- Fixed bug with catch-all urls incorrectly matching urls at same directory level;
- Fixed bug when CSM_URL_CONTENT_MAP cdef is an empty array, eg: '/' => array(),
================================================
version: 84
date: 04-03-2014
changes:
- Added function exitWithHTTPCode() which takes an error code (as an integer) and returns appropriate http response
THIS IS NOT FINISHED AND IS ONLY IMPLEMENTED FOR 404 ERRORS, eg: exitWithHTTPCode(404);
- Major rewrite of url matching code in contentigo - should be more efficient and by default returns 404 responses when urls not matched.
for "catch-all" urls (for APIs etc) they must be listed in a new $site[CSM_CATCH_ALL_URLS] array.
BEWARE: NOW default behaviour is to return 404 response if request not an exact match found in url map.
typically effected urls have actions that use the $pathParts array to read individual path parts.
- Big change to Database module - dbconnections are now instance variables, allowing to connect to multiple databases at the same time (as it should be)
- Also changes made to DAO.php to allow a dbconnection to be passed in at creation time.
- Improved the CSM_SUBMISSION_REPEAT_PROTECTION algorithm to work correctly on sequential requests for same URL
================================================
version: 83
date: 27-02-2014
changes:
- Added a 'getSmarty' function, but really need a neat way to register custom modifiers etc (and a neat way to define site-wide constants
- MAJOR: changed the main flow order - loadBlocks now gets called before we call actions. This means actions can override block content like
page titles etc.
================================================
version: 82
date: 02-02-2014
changes:
- Added $site[CSM_POSTPROCESSOR_ACTIONS] to specify common actions that will run after url specific actions
- Added ability to CSM_EXIT_TO_LOCATION from the return array in actions
which returns after chained actions and post processing actions complete.
- The additional "CSM_EXIT_NOW => true" parameter means the script will exit to location immediately
and not run chained or post processing actions.
- Added extention 'ico' to resource type map - to correctly render ico (favicons) as PNGs
(beware, not all favicons are PNGs)
- 'domain' property now available in the $dataCollector['environment'] array.
================================================
version: 81
date: 28-01-2014
changes:
- MAJOR SITE CONFIG CHANGE, sites now require a /site/domains.php file and a /site/domains/ folder.
In addition, the site index.php file is simplified (see "tuvanco" as an implementation example).
- Minor change to Mandrill module to return the response object
- Minor change to ContentigoUtils::downloadToFile to avoid an undefined variable warning
================================================
version: 80
date: 13-01-2014
changes:
- Added the "Madrill" module for sending emails via the Mandrill API
================================================
version: 79
date: 10-01-2014
changes:
- Refactored Email module to split sendEmail into a second renderEmail() function, so emails
can be send via a 3rd party API (eg: mandrill)
- Updated ContentigoUtils::doPost2 to allow for single payload data with the $postDataIsPayload param
================================================
version: 78
date: 21-11-2013
changes:
- Added new parameter function 'requestParamsWithPrefix' that returns a list of parameters whose name starts with a given
prefix. Useful when prefixing form input names with a 'namespace' prefix.
- Added a new CSM_SUBMISSION_REPEAT_PROTECTION site property that allows specification of a minimum url submission rate
in seconds. This is to help prevent brute force attempts on login forms etc.
- Small update to ContentigoUtils function 'urlProxy' to check for existance of 'path' value in $urlParts
================================================
version: 77
date: 25-07-2013
changes:
- Added CURL header curl_setopt( $ch, CURLOPT_ENCODING, ''); to ContentigoUtils to handle gzipped content
================================================
version: 76
date: 13-07-2013
changes:
- Changes to the resource_handler to better handle cacheing and implement a 'CSM_SITE_CHANGE_DATE' site change date
to control browser caching and make cached resources 'stale'.
================================================
version: 75
date: 04-07-2013
changes:
- Changes to the resource_handler to better handle cacheing and implement a 'CSM_SITE_CHANGE_DATE' site change date
to control browser caching and make cached resources 'stale'.
- Added the JobManager module to run and control threaded processes (very cool).
Change JobManager to use the WorkerCacheDAO class found within the module directory
================================================
version: 74
date: 27-06-2013
changes:
- Added function "downloadToFile()" to ContentigoUtils (does not implement the max download limit arg)
================================================
version: 73
date: 26-05-2013
changes:
- Added 'apk' => 'application/vnd.android.package-archive' as a known content type
================================================
version: 72
date: 17-05-2013
changes:
- Created two new helper functions 'arrayVal' and 'booleanArrayVal' which do the same as 'requestParam' and 'booleanRequestParam',
but you can pass in the specific array, ie not tied to $_REQUEST array
================================================
version: 71
date: 06-05-2013
changes:
- Added the 'textToHTML' function to ContentigoUtils module. It converts line breaks to <br> and links to <a> tags
================================================
version: 70
date: 29-04-2013
changes:
- Added ability to override content-type for a given URL in the $site[CSM_URL_CONTENT_MAP], eg:
'/rss' => array( 'actions' => array('LoadRSS'), 'template' => 'rss', 'content_type' => 'application/rss+xml')
- Updated Email module - the rendered template email subject now available in the email body template as variable "__subject__" eg: {$data.view.__subject__}.
This is because a valid <title> tag must exist in the <head>, so makes sense to use the actual email subject as the title.
================================================
version: 69
date: 15-04-2013
changes:
- Moved the $zoneDef['ZONE_TEMPLATE'] template override block so that
Zones can be defined JUST for the purposes of templates (no special session keys required)
================================================
version: 68
date: 01-04-2013
changes:
- Updated Email module - only attempts to send emails if there is more than 1 recipient
- Updated Email module to filter out all invalid email addresses
================================================
version: 67
date: 31-03-2013
changes:
- Altered ContentigoUtils method doUnproxyGet() to handle when url paths are empty
*NEEDS TESTING*
- Placed 'local handling' code before 'resource' handling code
(resource handlers look at $_SESSION['locale']
================================================
version: 66
date: 19-03-2013
changes:
- Specified the HTTP_REDIRECT for aliases to be a 301 permanent redirect
- Introduced a new 'Test' module to perform simple module testing (implemented in cQuery)
Tests can now be defined using the CSM_RUN_TESTS and CSM_TESTS site properties
- Added a '301 Moved Permanently' header when doing a 'CSM_FORCE_HTTPS' redirect
- Improved resource handling and added some audio mime types
================================================
version: 65
date: 17-01-2013
changes:
- Fixed 'Undefined index: path' notice when accessing site root
- Created function purgeSiteSession() that emptys site session data, for use when 'logging out'
================================================
version: 64
date: 08-01-2013
changes:
- Removed old ADODB and Smarty 2 libraries to reduce footprint
================================================
version: 63
date: 05-01-2013
changes:
- Added the 'ParamViewAction' to simply pass url params through to the view context
- *** Included and now using Smarty 3.1.12 *** Beware, there maybe template compatibility issues.
- Included smarty 2.6.27 to replace old Smarty 2.6.26 - not used in this version of Contentigo
================================================
version: 62
date: 04-12-2012
changes:
- Changed Email module to content type text/html, not text/plain
- Updated Email module to allow common email headers and footers
================================================
version: 61
date: 27-11-2012
changes:
- Updated Email module to base64 encode email subject so that UTF-8 characters are correctly displayed.
- Added 'startsWith' and 'endsWith' string functions to Utils module
================================================
version: 60
date: 23-11-2012
changes:
- Improved the util function 'textToURLText' and added an optional '$ampersandReplacement' argument
================================================
version: 59
date: 17-11-2012
changes:
- Added function 'actionErrorRedirect' to redirect user back to a defined referer page to handle application errors
referer pages are defined in '$site[CSM_URL_REFERERS]'
================================================
version: 58
date: 17-11-2012
changes:
- Modifications to 'FieldValidatorAction' (check SupplierBox and Jivewall work before versioning)
- Change the login redirect behaviour to store GET and POST (REQUEST) data while performing the login process
================================================
version: 57
date: 12-11-2012
changes:
- Added the 'Favicon' action to load favicons from site/resources/images location
- Copied the Jivewall function 'textToURLText' to ContentigoUtils (turns arbitrary text into URL friendly SEO text)
================================================
version: 56
date: 09-10-2012
changes:
- Property REDIRECT_ON_AUTHERIZATION_FAILURE can now be defined in a CSM_ZONE definition to override global 'CSM_AUTHENTICATION' value per zone
(useful to force a user to login to a '/secured' url, but directly return a 403 if attempt a '/secured/admin' url)
- Added site property 'CSM_JAVASCRIPT_DISABLE_OPTIMIZATION' to allow to bypass javascript minification
- Fixed a bug with util function 'doPost2'
================================================
version: 55
date: 01-11-2012
changes:
- Now using newer jsmin library version 1.1.2
- Now using latest ADODB version 'adodb518a'
- Utils now implemented as the module 'ContentigoUtils' (beware, must change all sites to use new class)
================================================
version: 54
date: 14-10-2012
changes:
- Added support for internal url alias redirect with $site[CSM_URL_ALIASES]
- 'HTTP_REDIRECT' => true CSM_URL_ALIASES correctly causes a redirect of an aliased URL
- Added 'svg' as a known content type in resources.config.php
- Added 'generateRandomKey' function to Utils class - generates strings of random letters & numbers
================================================
version: 53
date: 13-06-2012
changes:
- Updated 'outputFile' core function - now returns false if file does not exist
- Added site variable 'CSM_CSS_DISABLE_OPTIMIZATION' to turn off cssTidy if causes problems with CSS (-webkit-xxx stuff)
================================================
version: 0.1.52
date: 26-04-2012
changes:
- Added the 'CSM_DEBUG_EMAIL_FILE_EXTENSION' option to site.php to allow custom file extentions (default is .txt)
- Changed the Email module headers
================================================
version: 0.1.51
date: 30-01-2012
changes:
- Added saveData2() a far more convenient way to save JSON content data (saveData() should be deprecated)
- Changed Database module to allow for multiple schemas to be defined in the database JSON config
- Added an optional 'namespace' to loadModule to allow multple instances of differently configered modules
(eg: multiple database modules that connect to different databases)
- Fixed some incorrect references to locale parameters being passed to 'getLocaleFileName'
- Fixed that block data was not getting derived from locale.
- removed more unrequired files from ADODB
- removed csstidy (original) and left the modified version
================================================
version: 0.1.49
date: 25-10-2011
changes:
- updated Email module to create debug email directory if doesn't exist.
- added CSM_FIELD_VALIDATORS to $site to define site field validators
- added 'FieldValidatorAction' as a system action to load site field validators
================================================
version: 0.1.48
date: 23-11-2011
changes:
- upgraded adodb from 511 to 514 (DELETE the previous version when done)
- added a 'CSM_FORCE_HTTPS' option, that redirects all HTTP pages to its HTTPS equivilent.
================================================
version: 0.1.47
date: 18-10-2011
changes:
- added 3rd parameter to 'outputFile' which allows to download a file with an alternative name
- added a few more resource types to the resources.config.php to handle docx files etc
================================================
version: 0.1.46
date: 16-10-2011
changes:
- added SORT_ASCENDING and SORT_DESCENDING constants to DAO class
================================================
version: 0.1.45
date: 14-10-2011
changes:
- small change to 'doRedirectOnAutherization' function - non-functional
- small change to doRedirectOnAutherization function - only appends param string if param data not empty
- fixed bug in Redirect action
================================================
version: 0.1.44
date: 06-10-2011
changes:
- added support of the $site[CSM_AUTHENTICATION] config item which allows configuration of redirect to login pages if authentication is required
- changed 'booleanRequestParam' to remove the 3rd '$valueIfNotFound' parameter! It was wrong to add it.
================================================
version: 0.1.43
date: 30-09-2011
changes:
- changed 'requestParam' to handle when values are arrays (from the html form input "foo[]" convention)
- changed 'booleanRequestParam' to take a 3rd '$valueIfNotFound' parameter
================================================
version: 0.1.42
date: 28-09-2011
changes:
- added helper function 'requestParamExists()' useful for checking if request parameters exist and have a non-zero string length
================================================
version: 0.1.41
date: 26-09-2011
changes:
- added function existsRequestParam() to contentigo to allow a defined value to be returned if a request param does or doesn't exist
================================================
version: 0.1.40
date: 23-09-2011
changes:
- moved 'requestParam()' and 'booleanRequestParam()' into Contentigo class from Action class - for universal access
================================================
version: 0.1.39
date: 22-09-2011
changes:
- Removed the 'return by reference' "&" of Database::&getDAO( $daoName)
- added 'arrayValue' to the Utils library
================================================
version: 0.1.38
date: 20-09-2011
changes:
- added 'audio' as a resource type in 'resources.config.php' (although not sure if needed)
- added a 'truncate' string function to 'Utils'
================================================
version: 0.1.37
date: 10-09-2011
changes:
- Added new system action 'Sitemap' which looks for a 'sitemap.xml' file under site environement
- Altered Database module to attempt to disconnect before establishing a new connection
- fixed small bug with caching of css files - an extra ';' was added which broke the CSS optimizer
- created a new version of the CSS optimizer that does not produce loads of output errors
================================================
version: 0.1.36
date: 08-09-2011
changes:
- placed Action under /contentigo/actions/
- system now looks for a system action if one not found in user site
- created 'Robots' as a system action that looks for a 'robots.txt' file under environment directories
- moved 'Redirect' action from Femtoo to system action
================================================
version: 0.1.35
date: 04-09-2011
changes:
- mb_trim declared as 'static'
- removed 'CSM_BLOCKS_DEFINITIONS' and all related functionality - was only used in one site and was easily circumvented
- removed 'CSM_BLOCK_DATA_MAP' and all related functionality - beware of any sites still using this...
- added Action::booleanRequestParam( $paramName, $valueForTrue) to help parse request parameters to true/false values;
================================================
version: 0.1.34
date: 01-09-2011
changes:
- Changed Email::sendMail function not to assume there is a 'toEmailAddresses' parameter
- Removed need for CSM_DATABASE_ENABLED site variable
- Database module established own connection when first loaded
- All modules now have an inherited Module::module_init() function to perform one-time initialization
================================================
version: 0.1.33
date: 29-08-2011
changes:
- Slightly changed Action::requestParam() and automatically handles slashes
================================================
version: 0.1.32
date: 29-08-2011
changes:
- Environment specific site.php config file now loaded and overrides default site.php
- Slightly changed Action::
================================================
version: 0.1.31
date: 28-08-2011
changes:
- Implemented automatic javascript minifying
- Implemented automatic CSS minifying/tidying
================================================
version: 0.1.29
date: 24-08-2011
changes:
- updated Contentigo::returnTemplateContent() to combine existing '$dataCollector' into template data
================================================
version: 0.1.28
date: 24-08-2011
changes:
- Added the 'sendPlainMail()' function to the Email module to help send quick and simple emails
- fixed a bug so that environment defaults are present even if no environment specific content exists
- Changed Action::requestParam() - now checks it not an empty string, even after trimming
================================================
version: 0.1.27
date: 25-07-2011
changes:
- $ENVIRONMENT no longer accessible globally, but should now be accessed via the dataCollector
- Added environment defualts, specifaically 'server_name' to the $dataCollector['environment'] array
- a ZONE can now specify 'SERVER_RESTRICTED' => true to only allow requests originating from the server
- added 'loadValidator' function to load field validators from the /site/field_validators directory
================================================
version: 0.1.26
date: 14-07-2011
changes:
- CSM_SCRIPT_SETS to allow script files to be bundled together under a single name
- CSM_CSS_SETS to allow css files to be bundled together under a single name
- added 'requestParam()' to action superclass - trims params if they exist and allows a default if param not found
- added the Module super class for modules, although has not method or properties at the moment
- fixed a bug with i18n for CSS files
- made $dataCollector accesible globally
- added logMessage and logVar global functions
================================================
version: 0.1.25
date: 26-06-2011CSM_SCRIPT_SETSme
changes:
- fixed small bug in Email module
- fixed bug that 'contentigo' wasn't available as a global variable
================================================
version: 0.1.24
date: 04-06-2011
changes:
- Removed some of the unrequired files from the Adodb library (Database module)
- Added 'pptx' as a resource type so pptx files can be correctly handled by the browser
================================================
version: 0.1.23
date: 30-05-2011
changes:
- improved the DAO->executeScript() function to take optional 'tokens' and 'replacements' array to allow sql script substitutions (database ids etc)
================================================
version: 0.1.22
date: 27-05-2011
changes:
- added new function: loadJSONDataFile( $jsonDataFile, $assoc = true) - to load any arbitary json data file.
================================================
version: 0.1.21
date: 14-05-2011
changes:
- deprecated $CONTENTIGO_LOCATION variable and replaced with $CONTENTIGO_HOME
- altered standard index.php - now looks for $CONTENTIGO_HOME which is a full path to the contentigo installation
- changed DAO->getFieldValueForField() - no longer throws an exception, but returns false
================================================
version: 0.1.20
date: 12-05-2011
changes:
- block data is now loaded for 'template' output for both cdef blocks and template blocks
(could do with some refactoring)
- block data follows the alias naming in the sitemap ('>>>' notation)
- fixed bug that content type was not being set when serving up image resources
================================================
version: 0.1.19
date: 05-05-2011
changes:
- blocks may now contain other blocks - if more than one block is specified in a cdef and 'response_type' is SINGLE_BLOCK, the first block is the 'main' block that gets displayed by Smarty
================================================
version: 0.1.18
date: 30-04-2011
changes:
- fixed bug in 'loadData()' function to correctly use the session locale
- all url site map entries must start with '/'
- $pathDepth now start from 0, ie the path '/' = 0, '/foo' = 1 '/foo/bar = 2 etc
- the $pathParts array now includes the 0th element '/' (so array is one element larger for all urls)
- CSM_ROOT now defaults to '/' not ''
================================================
version: 0.1.17
date: 17-04-2011
changes:
- fixed a bug with template blocks
================================================
version: 0.1.16
date: 13-04-2011
changes:
- added convenience method to the DAO object of database module
================================================
version: 0.1.15
date: 31-03-2011
changes:
- introduced 'ZONE_TEMPLATE' property of a CSM_ZONE entry. So now each 'zone' can have its own template
- changed the data structure of the email template data
================================================
version: 0.1.14
date: 18-03-2011
changes:
- improved i18n support for both URL or custom schemes.
================================================
version: 0.1.13
date: 12-03-2011
changes:
- renamed and added constants for the site.php file
- fixes to the email module
================================================
version: 0.1.12
date: 05-03-2011
changes:
- added the Email module for template based, content driven email sending. very flexible
- added the contentigo 'returnTemplateContent' method and a movement toward class methods
================================================
version: 0.1.11
date: 12-12-2010
changes:
- added url 'zones' for restricting user access to parts of sites.
this is a neat feature, simply checks a url against an entry in sites['ZONES'] to see if the defined key is 'true' in the session['ZONES'] array
================================================
version: 0.1.10
date: 26-11-2010
changes:
- block content now merged with view data. site -> template -> block
- $dataCollector['block'] context removed.
- added DEFAULT_TIMEZONE parameter to the $site file, ie $site['DEFAULT_TIMEZONE'], which calls "date_default_timezone_set[...]"
================================================
version: 0.1.9
date: 26-11-2010
changes:
- introduced the Database module and database support :-)
================================================
version: 0.1.8
date: 11-11-2010
changes:
- introduced 'content caching'
================================================
version: 0.1.7
date: 07-11-2010
changes:
- merged $data.template with $data.site to allow overriding for things like page titles, meta tags etc
- refactoring (re-ordered the process flow in contentigo
================================================
version: 0.1.6
date: 02-11-2010
changes:
- refactored loading of blocks
- introduced: $site['BLOCKS_DEFINITIONS'] to allow actions to be called whenever a block is loaded
================================================
version: 0.1.5
date: 01-11-2010
changes:
- introduced environment data (live, staging etc) for databases and services...
================================================
version: 0.1.4
date: 14-10-2010
changes:
- introduced site modules
================================================
version: 0.1.2
date: 14-10-2010
changes:
- improve action interface
- added 'PREPROCESSOR_ACTIONS'
- added 'BLOCK_DATA_MAP'
- added 'ACTION_RESPONSE_MAP'
================================================
version: 0.1.1
date: 21-09-2010
changes:
- added request 'response types' (TEMPLATE, SINGLE_BLOCK, RAW)
- added 'actions' to handle data processing and business logic functions
================================================
version: 0.1.0
date: 13-09-2010
changes:
Initial release
================================================