Showing posts with label PHP Open Source. Show all posts
Showing posts with label PHP Open Source. Show all posts

Tuesday, May 27, 2008

phpwiki - The Wiki for PHP Developers

This month it's time to look at another of those PHP applications I find useful on a daily basis. I like to use "wikis" for documentation for many of the projects I work on. Most of you are probably familiar with the term wiki, coming from the Hawaiian word for quick (wikiwiki). There are quite a few PHP-based wiki tools out there, including mediawiki (which Wikipedia uses), PmWiki and DokuWiki. In this article we will look at PhpWiki, and we'll show you how to configure and use it with your own projects!

Ward Cunningham wrote the first wiki application in 1995 (although similar software had appeared before, he was the first to apply the term "wiki" to it). Since then, wikis have exploded in popularity, as they provide a convenient way for people to collaborate, with edits being easy, and, equally important, all changes that are made are documented and tracked. The most well-known wiki is of course Wikipedia, the wiki encyclopedia. You can see a more complete list of PHP-based wikis on the Wikipedia site.

Which brings us to PhpWiki! PhpWiki's documentation is not particularly good, which should be a warning that installing a wiki is no panacea for a poorly-documented project. At the time of writing, the latest stable version is 1.3.12p1, but the home page mentions that the latest version as 1.3.11p1, and claims to have last been updated in September 2005. Setup is also a bit more finicky than some of the other applications I looked at in earlier articles. Nevertheless, I find the tool useful, and we will look at setting it up and getting it running in this month's article.

Requirements

  • A web server with PHP version 4.0.6 or greater, though of course you should not be running this old a version for security reasons. There are problems with versions from 4.3.9 and earlier which manifest if you have large installations of around 500 pages or more.
  • Perl regular expressions compiled into PHP (it is by default)
  • Database support. PhpWiki supports MySQL, PostgreSQL, Microsoft SQL Server, Oracle 8, Firebird (with PHP 5's PDO) and later version of Oracle (with PDO).
  • The PEAR DB libraries (installed by default), although PhpWiki comes with these bundled if you don't already have them, and it can also use ADODB.

Installing and configuring PhpWiki

Download the tar file, and place it in your webtree. For the purposes of this tutorial, my wiki will sit in the root directory of the greenman.co.za server. Extract the file:

tar -zxvf phpwiki-1.3.12p1.tar.gz
I suggest renaming  the directory from phpwiki-1.3.12 to simply phpwiki, or even just wiki.
mv phpwiki-1.3.12p1 wiki
You can now access  your wiki from a browser: http://greenman.co.za/wiki. Before you can do any editing,  you'll first have to configure everything.

When you first access the wiki and you haven't configured it yet, the configurator will appear (screenshot 1). This is claimed to be experimental, and has a number of minor usability issues, but it's useful for getting started quickly. The configurator page can look intimidating, as there are many, many options. Don't be put off though, as you can leave most of them with their default values. There are only a few that must be populated in order to get started. Here's what you need to change as a minimum to get your wiki working.

  • admin user
  • admin password
  • Database Type (SQL PEAR should work on any installation)
  • SQL Type (MySQL)
  • SQL User (I chose phpbuilder_wiki)
  • SQL Password (I chose phpbuilder_wiki_password)

In order for the configurator to work, it needs to be able to write to the config directory, as it attempts to create a file called config.ini. If, as is likely by default, it can't create this file, it will output the contents (screenshot 2), and you'll need to copy and paste and create the file yourself. The file must be placed in the config directory. You could also assign write permission to the directory beforehand. Perhaps the easiest alternative of all, seeing as the installation process is finicky enough to demand you work in the command line anyway, is to simply make a copy of the default config file:

cp config-dist.ini config.ini
and edit the  options above. One minor change is that you have to collate the database  authorization data into the variable DATABASE_DSN. With the options I  chose, the variable will look as follows:
DATABASE_DSN = "mysql://phpbuilder_wiki:phpbuilder_wiki_password@localhost/phpbuilder_wiki
Whichever way you  choose to configure PhpWiki, I suggest that any later changes you make get made  in the config.ini file directly. You can access the configurator again, using  your admin username and password, but you'll need to remember to re-enter passwords,  and watch out for encryption issues, making it an annoyance to use. Rather than  do that, I just go straight to the file - if you can use a text editor you'll  find it just as easy.

In this tutorial, I'll assume you're using MySQL. Specific instructions for other databases are found in the doc directory (an INSTALL file with an extension of the name of the database, e.g. INSTALL.pgsql). You'll need to already have an account with permission (such as root) to create new databases and tables, and populate them, or get your hosting company to do this for you if not.

First, create the new database. The database name must match the name you selected earlier with the configurator (I chose phpbuilder_wiki):

mysqladmin -uroot_user -proot_password create phpbuilder_wiki
Next, create a new  user with the correct permissions (I chose a user with the same name as the  database, phpbuilder_wiki,  and a password of phpbuilder_wiki_password):
mysql -uroot_user -proot_password phpbuilder_wiki
GRANT select, insert, update, delete, lock tables
 ON phpbuilder_wiki.*
 TO phpbuilder_wiki@localhost
 IDENTIFIED BY 'phpbuilder_wiki_password';
Next, create the  tables. The statements for doing this are found in the mysql-initialize.sql file in the schemas directory. Assuming that you're in the wiki directory, run the following  command, this time using the username and password created for your wiki:
mysql -uphpbuilder_wiki -pphpbuilder_wiki_password phpbuilder_wiki < schemas/mysql-initialize.sql
After all this,  you're ready to access your wiki from a browser (simply go to the wiki  directory - in my case www.greenman.co.za/wiki). The first time you access it will  display a long list of files (screenshot  3) that are the wiki's default contents. From now on, anytime you  access the wiki you'll be redirected to the home page - http://greenman.co.za/wiki/index.php/HomePage (screenshot  4).

Using phpwiki

Wikis wouldn't be popular if they weren't simple to use. Even the least technically proficient user can get started very quickly. To make a change to a page, simply press Edit, make the changes you want, then press Save. See screenshot 15 for what comes when editing the default home page. Notice that there's only plain text in the textarea, nothing fancy. If you're new to wikis, that what makes them so powerful. Anyone can edit them with almost no technical knowledge. Most wikis have a section called the SandBox, which is designed to allow people to test their editing and get to know the system. It doesn't matter if someone messes it up as it contains no critical data, and after all, it is designed for testing. In our newly-installed wiki, the whole site is basically a sandbox, so we'll stick to editing the home page for now. Add some text at the top of the page (screenshot 16) and view your changes on the home page again (screenshot 17). What could be easier?!

Of course, to make the best use of your editing potential, it helps to learn a few tricks to enable you to format the page nicely and to create links. PhpWiki makes it really simple to add basic formatting, such as bold and italics. Simply highlight the word, and click the bold or italic symbol, just like any ordinary word processor. You'll see that the highlighted text gets surrounded by some characters, and an asterisk before and after the text makes it bold (don't get confused with a single asterisk at the start of the line, which creates a bulleted list), and an underscore for italics (screenshot 18, and screenshot 19 after saving).

this *text is bold*
*bulleted item 1
*bulleted item 2
this _text is italicised_
You'll soon find  it easier to enter these special text characters as you type rather than  worrying about highlighting with the mouse, and you can then call yourself a  true wiki user. Have a look at the bottom of the edit page for more text that  doesn't appear in the shortcuts above (such as exclamation marks for a heading,  or a hash for a numbered list).

Adding a link can be done in the same way (the special character is a square bracket), but there's an even easier way. You may have noticed that words such as WikiWikiWeb and SandBox are links, though they don't have any special characters around them. The secret here is in the capitalization. If a word starts with a capital letter, and has one or more capital letters later in the word, it's automatically a link. The idea here is to combine two or more words into one page title. Try adding some text, such as TestPageOne and view the results after you've saved (screenshot 20). You'll see that the word is underlined, with a question mark after it. This means it's a link, but the page has not yet been created. Simply click on the question mark, and you're immediately editing the new page. Create the new page, but try not to make the newbie mistake of leaving the default text (Describe [TestPageOne] here.) at the top of the page.

There's more to editing. It doesn't have to be a hit and miss experience. I always preview a page before finally saving it (the page jumps back to the editing part, but the previewed page will be above that). You can also sign in in the bottom right (no authentication is necessary by default) - you may have noticed that I've been signed in if you've been viewing the screenshots. One of the advantages of this is that PhpWiki keeps a record of changes made, and it usually helps if others can see who made the change. If someone makes a change without signing in, their IP is recorded instead, so it's still theoretically possible to track them.

To view all changes made to the system, go back to the home page (by clicking on the logo), and then click RecentChanges (screenshot 21). Assuming you've been doing the same changes I have, you'll notice only one change listed, even though you've actually edited the page three times. The reason for this is that PhpWiki also takes note of the difference between a major change and a minor change. The mechanism for this is the little checkbox you may have noticed beneath the editing textarea that reads This is a minor change. It's unchecked by default when a page is created, and when a page is edited for the first time that day. If you click on the RecentEdits link (at the top of the RecentChanges page, you'll see that all three edits have been recorded. (screenshot 22)

When your wiki gets larger, you may start to find that you're not only interested in links that leave the page you're on (such as TestPageOne leading off HomePage), but also the other way around. When you're on TestPageOne, you may want to know which page(s) link to it. The answer here is provided by the BackLinks button. On any page, click BackLinks, and you'll get a list of all pages that link to that particular page. Try this on your newly created TestPageOne (screenshot 23).

Another commonly used page reveals the edit history of a page. On Wikipedia for example, the history is often as revealing as what's on the front page, especially for controversial topics in the midst of an edit war. You can see a page's history by clicking the PageHistory button (screenshot 24). There are more powerful features related to the history. As a collaboration tool, tracking changes is very important. You can see the difference between any two versions by checking the checkoxes next to those versions. Take a look at the differences between the initial and current versions of the HomePage for example (screenshot 25). You'll also see that you can easily revert to an earlier version (making post-vandalism repairs very easy).

Changing the look

Like so many Open Source applications, it's not only the coders who've contributed, but also the designers. PhpWiki comes with a number of skins. Here's a list of those bundled with PhpWiki:

To change the theme associated with the wiki, open up config.ini, and scroll down to Part Four, which lists all the available themes:

;=========================================================================
;
; Part Four:
; Page appearance and layout
;=========================================================================
 
; THEME
;
; Most of the page appearance is controlled by files in the theme
; subdirectory.
;
; There are a number of pre-defined themes shipped with PhpWiki.
; You may also create your own (e.g. by copying and then modifying one of
; stock themes.)
;
;   THEME = default
;   THEME = MacOSX
;   THEME = smaller
;   THEME = Wordpress
;   THEME = Portland
;   THEME = Sidebar
;   THEME = Crao
;   THEME = wikilens (Ratings)
;   THEME = Hawaiian
;   THEME = SpaceWiki
;   THEME = Hawaiian
;
;
; Problems:
;
;   THEME = MonoBook (WikiPedia) [experimental. MSIE problems]
;   THEME = blog     (Kubrick)   [experimental. Several links missing]
;
THEME = default
Simply change the  uncommented line (lines beginning with a semicolon are commented out) THEME = default to reflect the theme you want, for example THEME = Crao. Note that if you're  experimenting with different themes, you may be thrown by the default caching  behaviour, thinking that the themes are not working. PhpWiki by default uses LOOSE caching, which means that the page is cached until the next time it is edited  (so a theme change is only reflected after a new edit). You can change this  setting to NO_CACHE in Part One of config.ini if it's causing problems.

More configuration

Depending on the nature of your wiki, you may not want just anybody editing, or even viewing, your pages. You have quite a lot of flexibility with regards to this. Take a deeper look in the config.ini file. Part Three is what's relevant here. By default, most options are set to their least strict possibility. ALLOW_ANON_USER is set to true, so users don't have to log in to view the pages. Similarly, ALLOW_ANON_EDIT is also true, so anonymous users can make edits. Even if they do log in, ALLOW_BOGO_LOGIN is set to true, which means that no actual password authentication is performed. There are all sorts of more rigorous alternatives, from Apache authentication, IMAP authentication, LDAP authentication or external database authentication. Have a look at the documentation in the config file for more details.
There are many more options. PhpWiki is certainly flexible. You can create user groups, fine-tune the caching mechanism, implement spamassasin and captcha, persistent sessions and much, much more! Take the time to read through the configuration file carefully. You may find something that makes your life a lot easier.

Conclusion

Although PhpWiki can be finicky to install and configure when compared with other PHP applications, it's a faithful clone of the original WikiWikiWeb, and is more flexible than some of the alternatives. It's a powerful collaboration tool--enjoy using it!

Links

This article originally appeared on PHPBuilder.com.

Wednesday, January 2, 2008

File downloads in PHP

This is a simple code snippet. It will allow you to force the web-browser that is currently viewing your script to come up with a file-download box (and the a file on your system can be downloaded).

Here is the code:

//so only the data from the headers is sent
ob_start();
//dispable caching
header (”Cache-Control: must-revalidate, pre-check=0, post-check=0″);
header (”Content-Type: application/binary”);
header (”Content-Length: ” . filesize($export_long_name));
header (”Content-Disposition: attachment; filename=yourfile.ext”);
readfile($export_long_name);

A list of of mime types can be found Here

Top 5 free content management systems

1) CMS made simple

Features

  • Easy User and group management
  • Group-based permission system
  • Admin panel with multiple language support
  • RSS module
  • Module API for easy extendability

Front-end Demo here
Admin Demo here
username: admin
password: demo

2) DragonFly CMS

Features

  • Built-in photo gallery
  • BBcode support
  • MMCache and eAccelerator support
  • Site-wide cache-based template system
  • Debugging system and page query list

Front page demo here
Admin Demo here
Username: admin
Password: Demo123 (Case Sensitive)

3) Bitweaver

Features

  • SEO friendly urls
  • Content spam protection (automatic no-follows)
  • Many formats supported (TikiWiki, HTML, BBCode, Wikipedia (aka MediaWik))
  • Hotwords - allow you to specify particular words that can be associated with a URL
  • Generate PDF documents from all Content

Front-page demo here
Admin demo here
Username: admin
Password: demo

4) Drupal

Features

  • SEO Friendly URLs
  • Many community modules
  • Role based permission system
  • External authentication source support with Jabber, Blogger, and LiveJournal
  • Blogger API support

Front-end demo here
Admin demo here
Username: admin
Password: demo

5) Joomla

This is one of the most mature, free (did I mention open source), content management systems available. Also a fork of a CMS called Mambo. How are they different?

Joomla version 1.0 is derived from Mambo 4.5.2.3 but includes many additional bug fixes and security patches. Joomla version 1.5 is an extensive refactoring of the API as is Mambo version 4.6 to its codebase. Both applications continue maintain a similar user inferface (look and feel), similar default component and module sets. Both Joomla 1.5 and Mambo 4.6 will include internationisation support. Joomla will use an easy-to-use ‘ini’ format for their translation files while Mambo uses the ‘gettext’ format. Joomla 1.5 will correctly support the UTF-8 character set. Joomla 1.5 also includes many new features such as additional authentication models (LDAP, Gmail, etc), xml-rpc client-server support. It also natively supports database drivers for MySQL 4.1+ (on PHP 5) and has improved support for MySQL 5 as well as the groundings to support other database engines.

Demo here

Wednesday, December 12, 2007

The top 50 PHP editors

The following is a list of the top 50 PHP editors (commercial and freeware), with reviewed links to php-editors.com:

Editor Name

Platform/OS

PHP Edit

Windows

Dreamweaver

Windows

NuSphere PhpED

Windows
Linux

Maguma Workbench

Windows
Linux
Mac

emacs

Windows
Unix
Linux
Mac
Other

ActiveState Komodo

Windows
Unix
Linux
Other

PHP Designer 2005

Windows

Komodo

Windows
Linux
Other

TSW WebCoder 2005

Windows

VIM

Windows
Unix
Linux

DzSoft PHP Editor

Windows

Davor’s PHP Constructor

Windows

Edit Plus

Windows

HTML-Kit

Windows

PHP Expert Editor

Windows

Anjuta

Unix
Linux

Bluefish

Linux

Quanta Plus

Linux

Zend Studio

Windows
Unix
Linux
Mac
Other

Kate

Linux

Maguma Studio Free

Windows

PHP Editor by EngInSite

Windows

PHP Eclipse

Unix
Linux

Xored:: WebStudio

Windows
Unix
Linux
Other

SciTE

Windows
Unix
Linux
Other

VS.Php

Windows

Maguma Studio Pro

Windows

Macromedia HomeSite

Windows

TextPad

Windows

PHP Edit

Windows

EngInSite Editor for PHP

Windows

BBedit

Mac

BBedit Lite

Mac

Cooledit

Nedit

Unix
Linux

PSPad

Windows

PHP Coder

Windows

AceHTML Pro

Windows

Top PHP Studio

Windows

jEdit

Windows
Unix
Linux
Mac
Other

SubEthaEdit

Mac

umdev

Windows

Dev-PHP

Windows

Crimson Editor

Windows

PHP Processor

Windows

tsWebEditor

Windows

Svoi.NET - PHP Edit XP

Windows

ConTEXT

Windows

PHP Side (Simple IDE)

Windows
Unix
Linux

HAPedit

Windows

EmEditor

Windows

Roadsend Studio

Windows
Unix
Linux

TruStudio

Windows
Unix
Linux
Mac

Smultron

Mac

PHP backend generator

Windows
Unix
Linux
Mac
Other

PHPMaker

Windows

Pidela

Windows
Unix
Linux
Mac

Arisesoft Winsyntax

Windows

SEG

Windows

Sunday, December 2, 2007

Top 5 Free Shopping carts APP

1) Storesprite

  • printable receipts
  • order tracking
  • discount/gift codes
  • feature list found here

Download here (commercial and open source versions available)

2) Cart97 Pro

  • search engine friendly URLS
  • template driven
  • feature list found here

Download here (commercial and open source versions available)

3) Cubecart

  • free version requires original copyright information
  • has ability to sell digital and physical goods
  • mutiple currency support
  • feature list found here

Download here (commercial and open source versions available)

4) Zen cart

  • based on Oscommerce
  • many template providers such as templatemonster.com support it
  • feature list found here

Download here

5) AgoraCart Pro

  • written in perl
  • shipping modules: ups, fedex, and USmail
  • supports many payment processors
  • feature list found here

Download here (commercial and open source versions available)

Tuesday, August 21, 2007

Content Management by php

Content Management by php

DotClear


Code conforme aux normes du W3C, dont le XHTML 1.0, Usage de CSS, URL significatives, fils RSS et Atom, Support complet des trackbacks, Support complet de l'unicode, Multi-utilisateur avec niveaux, Interface multilingue, Système de commentaires flexible, Syntaxe Wiki et (X)HTML, Support des clients XML/RPC

WordPress


WordPress is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability. What a mouthful. WordPress is both free and priceless at the same time.

CMSimple


CMSimple is a simple content management system for smart maintainance of small commercial or private sites. Simple installation and easy to modify. The entire site is stored in a single HTML-file - there is no need of databases. CMS is less than 50 KB. Integrated WYSIWYG online editor (both IE and Mozilla), link validation, image handeling, online editing of system files and automatic backup on logout.

Guppy


En un tour de main, vous pourrez monter votre site, sans aucune connaissance en HTML et PHP. Le présent site vous offre un petit aperçu des fonctionnalités proposées par le portail, dans sa version de base. Mais de nombreux plugins, modules et hacks, ainsi que des skins variés, développés, créés et proposés par la communauté des utilisateurs de GuppY, vous permettent également de customiser votre portail sans difficultés, pour l'adapter à votre besoin spécifique.

Back End CMS


Back-End is a multi-lingual CMS based on the phpSlash.org code base. Articles, links & photo galleries integrated into a common hierarchy. Content administrators can edit their content through a choice of text, html, wiki or a WYSIWYG editor.

OpenPHPNuke


OpenPHPNuke (OPN) is an Open Source Web Content Management System (WCMS) which will assist you in the creation, administration, and maintenance of contents for the internet or intranet. With OPN you can build your homepage, a web portal, and various other ideas for the internet.

Logicreate


For web site owners, the basic LogiCreate system gives you the tools to control and monitor your own website. The standard tools included allow you to create new HTML pages, send mass emails to users on your system, and view real-time usage reports of your site's activities. For web developers, LogiCreate allows you to develop new applications more efficiently, by building on our standard API. Writing against our system, issues of security/permissions, logging, database handling, sessions and more are all taken care of automatically, allowing you to concentrate on the core logic for your application.

Tiki


Tiki is a leading open source full featured content management system (CMS) and Groupware (Intranet) suited for many types of online communities. Features include Articles, forums, blogs, directory, topics, wiki, polls, trackers, image galleries, webmail, and much more. Using PHP, MySQL and Smarty.

Typo3


TYPO3 is a small to medium enterprise class Content Management Framework. It offers the best of both worlds: out-of-the-box operation with a complete set of standard modules and a clean and sturdy high-performance architecture to accomodate virtually every kind of custom solution or extension.

AWF


Das Liquid Bytes Adaptive Website Framework (AWF) richtet sich an Software-Entwickler und im Umgang mit Web-Technologien erfahrene Anwender. Es erlaubt auf einfache und schnelle Weise volldynamische Websites inkl. Community Funktionen aufzubauen. Auf der anderen Seite ist es auch möglich, statische HTML Seiten zu exportieren, um diese dann auf Servern ohne PHP/MySQL zu hosten.

Bolinos


BolinOS is a reliable Open Source Content Management System. BolinOS is a modular publication and communication platform for Internet / Web developped in order to enable simple management of complex portals. Bolinos uses standard open-source software: PHP, Apache, mySQL, providing an environment for deploying powerful Internet based content management solutions.

webXadmin


webXadmin is a generic php/mysql application that performs data / web-content management through a webbased HTML interface. From an XML-based schema definition, webXadmin generates records lists, HTML forms and associated sql queries.

Bitflux CMS


Bitflux CMS is an XML and PHP based Content Management System. It allows you to reuse your content in different ways. Bitflux CMS uses as "template" engin XSLT and almost everything is configurable with XML. No need to learn PHP for just setting up a new site. Bitflux CMS uses Popoon as backend engine and is therefore very customizable to your needs. Bitflux CMS is published under the GPL License, so you can download and use it free of charge and can do with it, whatever you want.

Typo3


Typo3 is a professional class Web Content Management System written in PHP/MySQL. It's designed to be extended with custom written backend modules and frontend libraries for special functionality. I has very powerful integration of image manipulation. (Download)

Whump: More like this


More Like This WebLog uses PHP and MySQL to manage and display the site. (PHP +SQL)

dotWIDGETS


dotWidgets are compact and easily-configurable scripts that facilitate website content management.

SPIP


french content management system, very simple and elegant.

phpblog


C'est un ensemble de pages écrites en langage PHP. Il suffit d'un hébergeur proposant PHP/MySQL pour pouvoir faire fonctionner phpBlog ! La plupart des hébergeurs gratuits en sont capables. Il suffit de deux clics pour préparer la base de données à recevoir toutes les infos nécessaires à phpBlog, et de mettre les pages PHP chez l'hébergeur après avoir répondu à quelques questions simples pour la configuration, et en avant !

pMachine


pMachine was written in PHP and runs on any server that has PHP 4 and MySQL installed. If you don't know anything about PHP or MySQL, don't worry... you don't need to! pMachine lets you build feature-rich, dynamic web sites with all the power and speed of PHP/MySQL without the steep learning curve.

PostNuke


A content Management system with PHP and MYSQL

PHPWebsite


phpWebSite provides a complete web site content management system. Web-based administration allows for easy maintenance of interactive, community-driven web sites. phpWebSite's growing number of plug-ins allow for easy site customization without the need for unwanted or unused features. Client output from phpWebSite is valid XHTML 1.0 and meets the W3C's Web Accessibility Initiative requirements.

Midgard


Midgard is a freely-available solution for managing content on Web, Extranet and Intranet services. It is also a toolkit for building dynamic applications to power eBusiness and Information Management processes.

Drupal


Drupal is a content management/discussion engine suitable to setup or build a content driven or community driven website. We aim towards easy installation, excessive configuration and fine-grained maintenance capabilities. Due to its modular design Drupal is flexible and easy to adapt or extend. Drupal is written using PHP. The source code is available under terms of the GNU General Public License (GPL).

daCode


daCode is a news engine (or CMS - Content Management System) written in PHP. It works under PHP 3 and 4, and uses a database to store informations. We currently support MySQL and PostgreSQL through a database abstraction layer. You can also use LDAP or NIS along with your database.

php(Reactor)


the content management system (cms) allows easy updating of your site. with a browser interface, you can create pages, upload images, and edit your existing pages. All the content in the cms system is stored in a database and integrated with a template when sent to the client - this enables you to worry about the content only, and ignore the graphic design.

Back-End


Back-End offers an easy way for people with limited html experience to manage the content of their web sites through a Content Management System (CMS).

FireSite


FireSite is a Web Content Management system. It has two parts, the administration interface and a set of api functions you as a web developer use to create your website. It is not an install-and-run-system - you will need to code to create your web pages! Currently FireSite supports English, Swedish, Dutch (included) as well as Spanish, French and German.

eZ Publish


eZ publish is a content management system (CMS) for web, released under GPL and the eZ publish professional licence developed by eZ systems. In other words it is a system which keeps track of information. The information is stored in a database and presented on a webpage. You can use any browser to edit the content of the webpage.

monaural jerk


a weblog, journal, news, diary system. It allows one or more authors to regularly publish content without touching HTML. It has a nifty web-based editing/publishing sytem. It has a built-in search engine. And it is free for personal or corporate use, under the GPL: this is open-source software.

Top 25 PHP template engines

Smarty

Smarty is a template engine that compiles the templates into PHP scripts, then executes those scripts. Very fast, very flexible.

Heyes Template Class

A very easy to use, yet powerful and quick template engine that enables you to separate your page layout and design from your code.

FastTemplate

A simple variable interpolation template class that parses your templates for variables and spits out HTML with their values

ShellPage

A simple and easy to use class that lets you make whole websites based on template files for layouts. Change the template and your whole site changes.

STP Simple Template Parser

A simple, light weight and easy to use template parser class. It can assemble a page from several templates, output result pages to the browser or write them to the filesystem.

OO Template Class

An object oriented template class you can use in your own programs.

SimpleTemplate

A template engine to create and structure websites and applications. It can translate and compile the templates.

bTemplate

A small and fast template class that allows you to separate your PHP logic from your HTML presentation code.

Savant

A powerful but lightweight PEAR-compliant template system. It is non-compiling, and uses PHP itself as its template language.

ETS - easy template system

A template system that allows you to reshuffle templates with exactly the same data.

EasyTemplatePHP

A simple, yet powerful templating system for your site.

vlibTemplate

A fast, full featured template system that includes a caching and debugging class.

AvanTemplate

A template engine that is multi-byte safe and consumes little computing resource. It supports variable replacement and content blocks that can be set to hidden or shown.

Grafx Software’s Fast Template

A modification of the popular Fast Template system, this includes a cache function, debug console, and silent removal of unassigned dynamic blocks.

TemplatePower

A fast, simple and powerful template class. Features nested dynamic block support, block/file include support and show/hide unassigned variables.

TagTemplate

This library function was designed for use with template files and allows you to retrieve info from HTML files.

htmltmpl: templating engine

A templating engine for Python and PHP. Targeted to web application developers, who want to separate program code and design of their projects.

PHP Class for Parsing Dreamweaver templates

A simple class to parse a Dreamweaver template for use in custom mods for a Gallery 2 and a WordPress blog.

MiniTemplator (Template Engine)

A compact template engine for HTML files. It features a simple syntax for template variables and blocks. Blocks can be nested.

Layout Solution

Simplifies website development and maintenance. It holds commonly used variables and page elements so you don’t need to duplicate common layouts over and over.

Cached Fast Template

This inclusion into

FastTemplate

allows for caching of the template files, and can even cache with different specifications on separate blocks of content.

TinyButStrong

A template engine that supports MySQL, Odbc, Sql-Server and ADODB. It includes seven methods and two properties.

Brian Lozier’s php based template engine

Only 2k in size, very fast and object-orientated.

WACT

a template engine that separates code from design.

PHPTAL

a XML/XHTML template library for PHP.