For Developers

Resources to help you in understanding how SyntaxCMS works and helping you to customize it for your needs.

Does SyntaxCMS make sense for my site?

A: SyntaxCMS can make developing and administering any site easier, but it is particularly suited for sites that deal in different types (categories) of content -- and seek to have these content types interrelated. A real world example would be an intranet where staff members are associated with documents, projects, tasks, etc. The SyntaxCMS approach would be to define an "object" for each of these categories of content (staff, document, project, task). Once the objects have been defined, you are in posession of all the tools you need to provide input/editing forms for these objects (e.g. allow a staff member to update their profile or upload a new document), admin screens for content editors, and an API for retrieving data.

Is SyntaxCMS like PHP-Nuke and other community sites?

Not out of the box. SyntaxCMS CMS provides a flexible CMS architecture that you can customize to your exact needs instead of providing a ready made community web site.

Documentation



SyntaxCMS 1.3 API documentation

(28 Apr 2006)
Documentation for the APIs used to maniuplate data in SyntaxCMS. For building new applications and extending existing ones, these are the APIs you will use.

Details...



SyntaxCMS 1.3 Class documentation

(28 Apr 2006)
Class documentation for the main classes used in the SyntaxCMS application built atop the SyntaxCMS API.

Details...



ListWidget Documentation

(19 Jul 2005)
The listWidget class takes much drudgery out of generating lists, particularly SELECT list form widgets.

Details...



Documentation for DocumentInfo class

(10 Dec 2004)
The DocumentInfo class helps you provide automatically-generated download info based on file types and sizes. It works for local and remote files.

Details...



DynTable class documentation (Dynamic Tables)

(10 Dec 2004)
The DynTables class automates the creation of sortable tables from SyntaxCMS data. It's a presentation-level helper class.

Details...



SyntaxCMS 1.2.1 Class documentation

(10 Dec 2004)
Class and method-level documentation of the CMS-level SyntaxCMS classes for tye 1.2.1 release. They provide functionality for handling requests (both browser and internal), creating site nativation, and many other functions.

Details...



SyntaxCMS 1.2.1 Data Access API Documentation

(10 Dec 2004)
Class and method-level documentation for the data access API that SyntaxCMS uses. These are the classes that developers creating new modules or modifying template behavior will deal with most of the time.

Details...

HOWTO



HOWTO: Patch url_fopen Vulnerability

25 Sep 2006
In versions of SyntaxCMS since 1.1.1, there is an exploitable vulnerability in the testing scripts for installations with PHP 4.3.0 and higher, register_globals on, and allow_furl_open set to true. There is an exploit in the wild, so update your systems immediately.

You can update to the latest CVS version or apply the patch files included here. To apply the patch files, download the attached file and run:

tar -xzvf 513_file_fopen_vuln_patch.tgz

cd fopen_vuln_patch

patch path_to_your_public_root/admin/testing/index.php index.php.patch

patch path_to_your_public_root/admin/testing/tests/0004_init_urls.php 0004_init_urls.php.patch

patch path_to_your_public_root/admin/testing/tests/0030_init_syntax.php 0030_init_syntax.php.patch

cp .htaccess path_to_your_public_root/admin/testing/tests/

...where path_to_your_public_root is the path to your Apache-readable directory where SyntaxCMS's public root is installed.


Tips for Developing with SyntaxCMS

(19 Jul 2005)

Developing with SyntaxCMS does not require any special knowledge, of course, but developing is made much easier when you understand the error handling and debugging systems being used by SyntaxCMS.



Tutorial - Creating a New Module in SyntaxCMS

(19 Jul 2005)

Creating a module in SyntaxCMS is quite a simple process. Currently there are no restrictions to the internal logic, class architecture, etc. of your module; however, you will find it advantageous to use the core modules as a guide — and use the SyntaxCMS content classes as a foundation. This loose system is designed to maximize ease of porting 3rd party software and existing SyntaxCMS tools.



Sectional Thinking About Modules

(17 Aug 2004, SyntaxCMS Blog)
When thinking about the architecture of a SyntaxCMS site, remember that just because someone may want a list of documents or events, it doesn't mean that ginning up a module and plunking it on the main navigation is the right answer.

Fortunately a much better option exists. You'll still have to create a custom section template, but it will be a logical, functional, and non-hidden section.

This article discusses how to think about the benefits and drawbacks of this method as well as orienting you on how to accomplish it.

Details...