Thursday, August 23, 2007

Ten Tips for an Interview Winning Resume

From Susan Heathfield

About: Susan Heathfield is a management consultant specializing in human resource related systems, issues, and opportunities. Susan has 30+ years of experience in human resources, training, organization development, consulting, facilitating, coaching, and writing. For the past 18 years, Susan has operated her own consulting company. In this capacity, she has served 150+ organizations. She is the editor and writer for the About Human Resources site.

Four Tips for a Winning Resume

An employer can receive hundreds of resumes in response to an advertised position. For every hundred resumes an employer receives, only a few resumes stand out from the crowd. Want your resume to shine in the eyes of the employer you want to attract? Start by including a well-written resume cover letter with the resume. Then, follow these resume guidelines to create an interview winning resume that is head and shoulders above the crowd.
  • Formatting and feel, on a mailed-in resume, matter - Your resume, at first glance, can impress or depress the employer. Lots of open space, a clear, easy-to-read font such as 12 point Arial, and easy-to-find and skim information, entice the employer to read on. With electronic publishing, every mailed resume should be freshly printed on high quality paper. And don’t even think of sending your application to my company in your current employer’s envelope, or with metered postage. Think about what this says about the integrity of the candidate. I receive, at least, one of these a week. Envelopes do matter.
  • You will likely grow tired of hearing this but correct spelling, appropriate grammar, no missing words, and no typing mistakes make your resume an employer-pleaser right out of the starting gate. An error-free resume is rare. Indeed, some hiring managers will not further consider your candidacy if they find even one mistake. Every mistake makes me pause and think. Every mistake makes me question your carefulness, care, and attention to detail. Don’t make me pause; don’t make me think.
  • Contact Information - In this era of instant messaging, email, and cell phones, there is absolutely no reason to make contacting you difficult for the potential employer. Yet, over half the resumes I receive have no contact information except a home phone number. And guess what? You’re never home. Give the potential employer your cell phone number, even if you have to buy a mobile for your job search. Avoid the dreaded phone tag that may make you miss out on an interview altogether.
  • Write and customize an “objective” for each job and employer - The objective is your opportunity to connect your skills, experience, traits, and job requirements with those the employer is seeking. Read the job posting carefully and you can pick out exactly what the employer believes he needs. Don’t settle for a lame, “I seek a challenging opportunity to utilize my skills with a progressive employer who will provide opportunities for growth.”
In response to an ad for a marketing specialist, I received this customized objective: “I am seeking a position as a marketing specialist in a growing, environmentally conscious company that will utilize my current skills in the development of advertising and other marketing materials and website design and writing. At the same time, I hope to gain experience in market research, Internet competitive analysis, and market segmentation.” Who do you think I called?

Here are six more tips for an interview winning resume

  • Include a customized section called “Career Highlights / Qualifications.” This section of the resume is usually a series of bulleted points that emphasize your most important career experience, your skills, your personality traits and characteristics, and some key accomplishments from your work history as they relate to the job for which you are applying.
  • For each former employer, clearly indicate the company name, your position, and the dates of your employment. Provide a brief overview statement that tells me about what the company does, its sales, products, and customers. This helps me assess your experience. Then, tell me exactly what you did for the company in a brief statement. Don’t make me look for information, read between the lines, or try to I won’t and your resume will end up in the dreaded job file for the required year. (You don’t really think anyone takes the time to sort through all those aging resumes, do you?)
  • For each employer, include a list of “key contributions” or “key achievements.” Don’t make the mistake of stating, “I answered a multi-line phone system. I provided customer service.” You want to highlight key measurable achievements and successes such as: “I reduced the time for order fulfillment from 2 days to 12 hours.” “I reduced accounts collectible by 80 percent.” “My marketing campaign for the new product won two industry awards for effectiveness.”
  • Education statements matter - State dates of attendance, majors, minors, and degrees. Don’t make me guess whether you have a degree or just took a few classes. I will figure it out and it ticks me off to have to figure it out.
  • Do include a section that lists awards and other recognition - President of the Junior Class, Secretary of the Synchronized Swim Team, four year merit scholarship winner, or college economics prize winner will catch my eye much faster than a resume without awards and recognition. (Of course, you’d include this section on a resume only if you have an award or recognition to list.)
  • Do include a personal section that highlights accomplishments, and anything else that will raise the value of you, as a potential employee, in the eyes of the employer. In this section, catching my eye recently are: volunteerism; involvement with philanthropic causes; publications; team and individual sports participation; leadership positions in school or community organizations (especially in resumes without an “Awards and Recognition” section) or even, “I self-funded my college education by working part-time during all four years of school.”

Well, this is my best advice about what catches my attention – positively – in a resume. I can’t speak for every employer, but know that you can’t go far wrong – & you may go far in the right direction - if you heed these recommendations. When your resume is competing with hundreds of others for attention, you need to do the right things right to be heard above the noise. You can create a winning resume.

Tuesday, August 21, 2007

What Is W3C Compliance?

The W3C is the World Wide Web Consortium and since 1994 the W3C has provided the guidelines by which websites and web pages should be structured and created. The rules they outline are based on the best practices and while websites don't have to comply to be viewed correctly in Internet Explorer and other popular browsers that cater to incorrect design practices, there are a number of compelling reasons to ensure that you or your designer ensure that the W3C guidelines are followed and that your site is brought into compliance.

http://validator.w3.org/
This is the W3C Markup Validation Service, a free service that checks Web documents in formats like HTML and XHTML for conformance to W3C Recommendations and other standards. Place the parsed html file directly uploaded to that site or copy and paste the parsed html file in to the web site.
Its analysis all the thinks and give some suggestion to iron out the error based on the w3c rules.
After successful of passing the test, they provide an logo , we can place the logo in our site. The logo has the link for the http://validator.w3c.org when ever its clicked its certified as the site is W3C quality assured.
Some more free tools available to test the html markup and css.
http://jigsaw.w3.org/css-validator/ àCSS
http://validator.w3.org/ àHtml/Xhtml
http://webxact.watchfire.com àhtml/xhtml


http://webxact.watchfire.com is the good web site to validate w3c quality assurance for html/xhtml

It has three Priorities
Priority 1 à Minimum requirement
Priority 2 à Medium requirement
Priority 3 à Professional requirement
At least obtain priority1 is must.


For Priority 1 We made some changes according to the W3C.
For more info http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/
1 If an image conveys important information beyond what is in its alternative text, provide an extended description.
2 If you use color to convey information, make sure the information is also represented another way.
3 Identify any changes in the document's language.
4. If this is a data table (not used for layout only), identify headers for the table rows and columns.
5. If a table has two or more rows or columns that serve as headers, use structural markup to identify their hierarchy and relationship.
6. If style sheets are ignored or unsupported, ensure that pages are still readable and usable.
7. Make sure that the page does not cause the screen to flicker rapidly.
8. Use the simplest and most straightforward language that is possible.
Etc….

Priority 2:
Error:
1. Use a public text identifier in a DOCTYPE statement.
2. Use relative sizing and positioning, rather than absolute.
Warning
Check that the foreground and background colors contrast sufficiently with each other.
Where it's possible to mark up content instead of using images, use a markup language.
Avoid using tables to format text documents in columns unless the table can be linearized.
Inform the user that clicking on certain links or areas of a window will open pop-up windows or change the active window.
Use the latest technology specification available whenever possible.
Group related elements when possible.
Etc…

Priority 3:
Error:
Provide a summary for tables.
Separate adjacent links with more than whitespace.
Warning:
Use the ABBR and ACRONYM elements to denote and expand any abbreviations and acronyms that are present.
Consider specifying a logical tab order among form controls, links, and objects.
Consider adding keyboard shortcuts to frequently used links.
Allow users to customize their experience of the web page.
Provide navigation bars for easy access to the navigation structure.
Provide distinguishing information at the beginning of headings, paragraphs, lists, etc.
If this document is part of a collection, provide metadata that identifies this document's location in the collection.
Use a consistent style of presentation between pages.





http://jigsaw.w3.org/css-validator/ is the good web site to validate w3c quality assurance for html/xhtml

W3C CSS Validation Service; a free service that checks Cascading Style Sheets (CSS) in (X)HTML documents or standalone for conformance to W3C recommendations.

What is LDAP?

LDAP, Lightweight Directory Access Protocol, is an Internet protocol that email and other programs use to look up information from a server. Every email program has a personal address book, but how do you look up an address for someone who's never sent you email? How can an organization keep one centralized up-to-date phone book that everybody has access to?

That question led software companies such as Microsoft, IBM, Lotus, and Netscape to support a standard called LDAP. "LDAP-aware" client programs can ask LDAP servers to look up entries in a wide variety of ways. LDAP servers index all the data in their entries, and "filters" may be used to select just the person or group you want, and return just the information you want. For example, here's an LDAP search translated into plain English: "Search for all people located in Chicago whose name contains "Fred" that have an email address. Please return their full name, email, title, and description."

LDAP is not limited to contact information, or even information about people. LDAP is used to look up encryption certificates, pointers to printers and other services on a network, and provide "single signon" where one password for a user is shared between many services. LDAP is appropriate for any kind of directory-like information, where fast lookups and less-frequent updates are the norm.

As a protocol, LDAP does not define how programs work on either the client or server side. It defines the "language" used for client programs to talk to servers (and servers to servers, too). On the client side, a client may be an email program, a printer browser, or an address book. The server may speak only LDAP, or have other methods of sending and receiving data—LDAP may just be an add-on method.

If you have an email program (as opposed to web-based email), it probably supports LDAP. Most LDAP clients can only read from a server. Search abilities of clients (as seen in email programs) vary widely. A few can write or update information, but LDAP does not include security or encryption, so updates usually requre additional protection such as an encrypted SSL connection to the LDAP server.

LDAP also defines: Permissions, set by the administrator to allow only certain people to access the LDAP database, and optionally keep certain data private. Schema: a way to describe the format and attributes of data in the server. For example: a schema entered in an LDAP server might define a "groovyPerson" entry type, which has attributes of "instantMessageAddress", and "coffeeRoastPreference". The normal attributes of name, email address, etc., would be inherited from one of the standard schemas, which are rooted in X.500 (see below).

LDAP was designed at the University of Michigan to adapt a complex enterprise directory system (called X.500) to the modern Internet. X.500 is too complex to support on desktops and over the Internet, so LDAP was created to provide this service "for the rest of us."

LDAP servers exist at three levels: There are big public servers, large organizational servers at universities and corporations, and smaller LDAP servers for workgroups. Most public servers from around year 2000 have disappeared, although directory.verisign.com exists for looking up X.509 certificates. The idea of publicly listing your email address for the world to see, of course, has been crushed by spam.

While LDAP didn't bring us the worldwide email address book, it continues to be a popular standard for communicating record-based, directory-like data between programs.

Current Web Architecture

Introduction

This section of the Internet Tool Survey describes the current architecture of the World Wide Web (WWW). The NCSA Glossary is a useful starting point for Web terms. Another is the ILC glossary of Internet Terms.
The following sections describe

  • the basic two-tier architecture of the web in which static web pages (documents) are transferred from information servers to browser clients world-wide,

  • extensions that permit three-tiered architectures where content pages can be constructed dynamically and where programs as well as data can be transferred,

  • other information transfer protocols, and
  • related standards.



Basic Web Architecture

The basic web architecture is two-tiered and characterized by a web client that displays information content and a web server that transfers information to the client. This architecture depends on three key standards: HTML for encoding document content, URLs for naming remote information objects in a global namespace, and HTTP for staging the transfer.

  • HyperText Markup Language (HTML) - the common representation language for hypertext documents on the Web. HTML had a first public release as HTML 0.0 in 1990, was Internet draft HTML 1.0 in 1993, and HTML 2.0 in 1994. The September 22 1995 draft of the HTML 2.0 specification has been approved as a standard by the IETF Application Area HTML Working Group. HTML 3.0 and Netscape HTML are competing next generations of HTML 2.0. Proposed features in HTML 3.0 include: forms, style sheets, mathematical markup, and text flow around figures. For more detailed information, see the HTML Reference Manual.

    HTML is an application of the Standard Generalized Markup Language (SGML ISO-8879), an international standard approved in 1986, which specifies a formal meta-language for defining document markup systems (more here and here). An SGML Document Type Definition (DTD) specifies valid tag names and element attributes. HTML consists of embedded content separated by hierarchical case sensitive start and end tag names which may contain embedded element attributes in the start tag. These attributes may be required, optional, or empty. In addition, documents can be inter or intra linked by establishing source and target anchor points. Many HTML documents are the result of manual authoring or word processing HTML converters, but now several WYSIWYG editors support HTML styles -- see listing at W3C and the Internet Tools Survey section on Authoring HTML.

    HTML files are viewed using a WWW client browser (software), the primary user interface to the Web. HTML allows for embedding of images, sounds, video streams, form fields and simple text formatting. References, called hyperlinks, to other objects are embedded using URLs (see below). When an object is selected by a hyperlink, the browser takes an action based on the URL's type, e.g., retrieve a file, connect to another Web site and display a HTML file stored there, or launch an application such as an E-mail or newsgroup reader.

  • Universal Resource Identifier (URI) - an IETF addressing protocol for objects in the WWW ("if it's out there, we can point at it"). There are two types of URIs, Universal Resource Names (URN) and the Universal Resource Locators (URL). The current IETF URI spec is here and the URL spec is here. URLs are location dependent and contain four distinct parts: the protocol type, the machine name, the directory path and the file name. There are several kinds of URLs: file URLs, FTP URLs, Gopher URLs, News URLs, and HTTP URLs. URLs may be relative to a directory or offsets into a document. Arguments to CGI programs (see below) may be embedded in URLs after the ? character.

  • HyperText Transfer Protocol (HTTP) - an application-level network protocol for the WWW. Tim Berners-Lee, father of the Web, describes it as a "generic stateless object-oriented protocol." Stateless means neither the client nor the server store information about the state of the other side of an ongoing connection. Statelessness is a scalability property but is not necessarily efficient since HTTP sets up a new connection for each request, which is not desirable for situations requiring sessions or transactions.


    • In HTTP, commands (request methods) can be associated with particular types of network objects (files, documents, network services). Commands are provided for


      • establishing a TCP/IP connection to a WWW server,

      • sending a request to the server (containing a method to be applied to a specific network object identified by the object's identifier, and the HTTP protocol version, followed by information encoded in a header style),

      • returning a response from the server to the client (consisting of three parts: a status line, a response header, and response data), and

      • closing the connection.


    • HTTP supports dynamic data representation through client-server negotiation. The requesting client specifies it can accept certain MIME content types (more on this below) and the server responds with one of these. All WWW clients can handle text/plain and text/html.

    • HTTP/1.0 Internet Draft 05 (the seventh release of HTTP/1.0) is targeted as an Internet Informational RFC. The next immediate version of HTTP is HTTP/1.1 Internet Draft 01.


Web Architecture Extensibility

This basic web architecture is fast evolving to serve a wider variety of needs beyond static document access and browsing. The Common Gateway Interface (CGI) extends the architecture to three-tiers by adding a back-end server that provides services to the Web server on behalf of the Web client, permitting dynamic composition of web pages. Helpers/plug-ins and Java/JavaScript provide other interesting Web architecture extensions.

  • Common Gateway Interface(CGI) - CGI is a standard for interfacing external programs with Web servers (see Figure 1). The server hands client requests encoded in URLs to the appropriate registered CGI program, which executes and returns results encoded as MIME messages back to the server. CGI's openness avoids the need to extend HTTP. The most common CGI applications handle HTML <FORM> and <ISINDEX> commands.

    • CGI programs are executable programs that run on the Web server. They can be written in any scripting language (interpreted) or programming language (must be compiled first) available to be executed on a Web server, including C, C++, Fortran, PERL, TCL, Unix shells, Visual Basic, Applescript, and others. Security precautions typically require that CGI programs be run from a specified directory (e.g, /cgi-bin) under control of the webmaster (Web system administrator), that is, they must be registered with the system.
    • Arguments to CGI programs are transmitted from client to server via environment variables encoded in URLs. The CGI program typically returns HTML pages that it constructs on the fly.
    • Some problems with CGI are:
      • the CGI interface requires the server to execute a program
      • the CGI interface does not provide a way to share data and communications resources so if a program must access an external resource, it must open and close that resource. It is difficult to construct transactional interactions using CGI.

    • The current version is CGI/1.1. W3C and others are experimenting with next generation object-oriented APIs based on OMG IDL; Netscape provides Netscape Server API (NSAPI) and Progress Software and Microsoft provide Internet Server API (ISAPI).


  • Helpers/Plug-ins - When a client browser retrieves a file, it launches an installed helper application or plug-in to process the file based on the file's MIME-type (see below). For example, it may launch a Postscript or Acrobat reader, or MPEG or QuickTime player. A helper application runs external to the browser while a plug-in runs within the browser. For information on how to create new Netscape Navigator plug-ins, see The Plug-in Developer's Guide.

  1. Common Client Gateway (CCI) - this gateway allows a third-party application to remotely control the Web browser client. Netscape Client APIs 2.0 (NCAPIs) depends on platform specific native methods of interprocess communication (IPC). They plan to support DDE and OLE2 for Windows clients, X properties for UNIX clients, and Apple Events for Macintosh clients.

  2. Extensions to HTTP. W3C and IETF Application Area HTTP Working Group are working together on current and future versions of HTTP. The HTTP-NG project is assessing two implementation approaches to HTTP "replacements":


    • Spero's approach - allows many requests per connection, the requests can be asynchronous and the server can respond in any order, allowing several transfers in parallel. A "session layer" divides the connection into numerous channels. Control messages (GET requests, meta information) are returned in a control channel; each object is returned in its own channel.

    • W3C approach - Jim Gettys at W3C is using Xerox ILU (a CORBA variant) to implement an ILU transport similar to Spero's session protocol. The advantages of this approach are openness with respect to pluggable transport protocols, support for multiple language environments, and a step towards viewing the "web of objects." Related to this approach, Netscape recently announced future support for OMG Internet Inter-ORB Protocol (IIOP) standard on both client and server. This will provide a uniform and language neutral object interchange format making it easier to construct distributed object applications.


  3. Java/ JavaScript - Java is a cross-platform WWW programming language modeled after C++ from Sun Microsystems. Java programs embedded in HTML documents are called applets and are specified using <APPLET> tags. The HTML for an applet contains a code attribute that specifies the URL of the compiled applet file. Applets are compiled to a platform-independent bytecode which can be safely downloaded and executed by the Java interpreter embedded into the Web browser. Browsers that support Java are said to be Java-enabled. If performance is critical, a Java applet can be compiled to native machine language on the fly. Such a compiler is known as a Just-In-Time (JIT) compiler.

    JavaScript is a scripting language designed for creating dynamic, interactive Web applications that link together objects and resources on both clients and servers. A client JavaScript can recognize and respond to user events such as mouse clicks, form input, and page navigation, and query the state or alter the performance of an applet or plug-in. A server JavaScript script can exhibit behavior similar to common gateway interface (CGI) programs. JavaScript scripts are embedded in HTML documents using <SCRIPT> tags. Similar to Java applets, JavaScript scripts are directly interpreted within the client's browser and are therefore platform-independent. For a comparison of Java and JavaScript, see here.

    The Java Language Specification can be found here, a Java tutorial here, the Java Virtual Machine (interpreter) here, the Java Developer's Kit (JDK) here, and Java FAQs here. A comprehensive Java page of resources can be found at JPL.

    The JavaScript Language Specification can be found here, a JavaScript tutorial here, and the JavaScript FAQs here.

  4. The IETF Security Area Web Transaction Security (WTS) Working Group is working on security services for WWW. As chartered, it has produced Internet-drafts of a Requirements for Web Transaction Security and a Secure HyperText Transfer Protocol specification plus Security Extensions For HTML.


Other Transfer Protocols


The Web also uses other HTTP-related protocols for transferring and representing information, including:



  • Transmission Control Protocol/Internet Protocol (TCP/IP) - the fundamental protocol that provides for the reliable delivery of streams of data from one host to another. An introduction to TCP/IP is here.

  • File Transfer Protocol (FTP) - a common method of moving files between two Internet sites. It is based on TCP/IP.

  • Gopher - a distributed document search and retrieval protocol (IETF RFC 1436) for obtaining files or information from hierarchical menus in the Gopher information-retrieval system.

  • Internet Inter-ORB Protocol (IIOP) - an inter-ORB protocol for communication between objects and applications. It is based on the Common Object Request Broker Architecture (CORBA) specification.

  • Multipurpose Internet Mail Extensions (MIME) - the protocol for multimedia email and a building block of HTTP. The first packet of information received by a client identifies the type of file the server has sent, e.g., binary, audio, video, movie, formatted word-processor documents, graphics, spreadsheets, etc.. The extensions to the SMTP format allow it to carry multiple types of data. When multimedia files are sent using the MIME standard they are encoded into non-readable text. The Web browser maintains a list of pairs of MIME-Types and helper applications for handling each type.

  • Network News Transfer Protocol (NNTP) - the protocol used to connect to Usenet discussion groups.

  • Secure Socket Layer (SSL) - a security protocol developed by Netscape for sending and receiving encrypted information. It is based on encryption technology developed by RSA, Inc..

  • Simple Mail Transfer Protocol (SMTP) - a protocol for transferring electronic mail from one host to another.

  • Simple Network Management Protocol (SNMP) - a protocol that allows a network administrator to monitor network devices over the network.

  • Z39.50 - a protocol that governs the formats and procedures by which two computers interact with one another. It is used to search several databases of the same type, and is session-oriented and stateful.


Other Open Standards


The Web also builds on additional open standards:



  • GIF, JPEG, and XBM image formats.

  • Virtual Reality Modeling Language (VRML) - a proposed standard language for describing multi-participant interactive simulations within the WWW.

  • HyperMedia Management Protocol (HMMP) - a protocol to access and manipulate components of the Hypermedia Management Schema (HMMS), a data representation formalism (schema) for representing managed objects. HMMS and HMMP are major components of the Web-Based Enterprise Management standards effort to integrate existing standards, such as SNMP/UDP, HTML/HTTP and DMI/RPC into a browser-managed architecture.

  • Real Time Streaming Protocol (RTSP) - a recently proposed communication protocol for control and delivery of video and audio in real-time.

  • Proxy and SOCKS firewall protocols.

  • S-HTTP security protocol.


A more complete list of standards can be found at Netscape and the World Wide Web Consortium. A complete list of Internet Engineering Task Force (IETF) standard RFCs can be found here.


This research is sponsored by the Defense Advanced Research Projects Agency and managed by the U.S. Army Research Laboratory under contract DAAL01-95-C-0112. The views and conclusions contained in this document are those of the authors and should not be interpreted as necessarily representing the official policies, either expressed or implied of the Defense Advanced Research Projects Agency, U.S. Army Research Laboratory, or the United States Government.

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.

Web service

A 'Web service' (also Web Service) is defined by the W3C as "a software system designed to support interoperable Machine to Machine interaction over a network." Web services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.

Web services architecture
Web services architecture

The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients and servers that communicate using XML messages that follow the SOAP standard. Common in both the field and the terminology is the assumption that there is also a machine readable description of the operations supported by the server written in the Web Services Description Language (WSDL). The latter is not a requirement of a SOAP endpoint, but it is a prerequisite for automated client-side code generation in many Java and .NET SOAP frameworks (frameworks such as Spring and Apache CXF being notable exceptions). Some industry organizations, such as the WS-I, mandate both SOAP and WSDL in their definition of a Web service.

Specifications

Profiles

To improve interoperability of Web Services, the WS-I publishes profiles. A profile is a set of core specifications (SOAP, WSDL, ...) in a specific version (SOAP 1.1, UDDI 2, ...) with some additional requirements to restrict the use of the core specifications. The WS-I also publishes use cases and test tools to help deploying profile compliant Web Service.

Additional specifications, WS

Some specifications have been developed or are currently being developed to extend Web Services capabilities. These specifications are generally referred to as WS-*. Here is a non-exhaustive list of these WS-* specifications.

WS-Security
     Defines how to use XML Encryption and XML Signature in SOAP to secure message exchanges, as an alternative or extension to using HTTPS to secure the channel.

WS-Reliability
     An OASIS standard protocol for reliable messaging between two Web services.

WS-ReliableMessaging 
     A protocol for reliable messaging between two Web services, issued by Microsoft, BEA and IBM it is currently being standardized by the OASIS organization.

WS-Addressing
     A way of describing the address of the recipient (and sender) of a message, inside the SOAP message itself.

WS-Transaction
     A way of handling transactions.

Some of these additional specifications have come from the W3C. There is much discussion around the organization's participation, as the general Web and the Semantic Web story appear to be at odds with much of the Web Services vision. This has surfaced most recently in February 2007, at the Web of Services for the Enterprise workshop. Some of the participants advocated a withdrawal of the W3C from further WS-* related work, and a focus on the core Web.

In contrast, OASIS has standardized many Web service extensions, including Web Services Resource Framework and WSDM.

Styles of use

Web services are a set of tools that can be used in a number of ways. The three most common styles of use are RPC, SOA and REST.

Remote procedure calls

Architectural elements involved in the XML-RPC.

Architectural elements involved in the XML-RPC.

RPC Web services present a distributed function (or method) call interface that is familiar to many developers. Typically, the basic unit of RPC Web services is the WSDL operation.
The first Web services tools were focused on RPC, and as a result this style is widely deployed and supported. However, it is sometimes criticised for not being loosely coupled, because it was often implemented by mapping services directly to language-specific functions or method calls. Many vendors felt this approach to be a dead end, and pushed for RPC to be disallowed in the WS-I Basic Profile.

Service-oriented architecture

Web services can also be used to implement an architecture according to Service-oriented architecture (SOA) concepts, where the basic unit of communication is a message, rather than an operation. This is often referred to as "message-oriented" services.

SOA Web services are supported by most major software vendors and industry analysts. Unlike RPC Web services, loose coupling is more likely, because the focus is on the "contract" that WSDL provides, rather than the underlying implementation details.

Representational state transfer

Finally, RESTful Web services attempt to emulate HTTP and similar protocols by constraining the interface to a set of well-known, standard operations (e.g., GET, PUT, DELETE). Here, the focus is on interacting with stateful resources, rather than messages or operations. RESTful Web services can use WSDL to describe SOAP messaging over HTTP, which defines the operations, or can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer).

WSDL version 2.0 offers support for binding to all the HTTP request methods (not only GET and POST as in version 1.1) so it enables a better implementation of RESTful Web services. However support for this specification is still poor in software development kits, which often offer tools only for WSDL 1.1.

Criticisms

Critics of non-RESTful Web services often complain that they are too complex[2] and biased towards large software vendors or integrators, rather than open source implementations.
One big concern of the REST Web Service developers is that the SOAP WS toolkits make it easy to define new interfaces for remote interaction, often relying on introspection to extract the WSDL and service API from Java, C# or VB code. This is viewed as a feature by the SOAP stack authors (and many users) but it is feared that it can increase the brittleness of the systems, since a minor change on the server (even an upgrade of the SOAP stack) can result in different WSDL and a different service interface. The client-side classes that can be generated from WSDL and XSD descriptions of the service are often similarly tied to a particular version of the SOAP endpoint and can break if the endpoint changes or the client-side SOAP stack is upgraded. Well designed SOAP endpoints (with handwritten XSD and WSDL) do not suffer from this but there is still the problem that a custom interface for every service requires a custom client for every service.

There are also concerns about performance due to Web services' use of XML as a message format and SOAP and HTTP in enveloping and transport.

Similar efforts

There are several other approaches to solving the set of problems that Web services address, both preceding and contemporary to it. RMI was one of many middleware systems that have seen wide deployment. More ambitious efforts like CORBA and DCOM attempted to effect distributed objects, which Web services implementations sometimes try to mimic.
More basic efforts include XML-RPC, a precursor to SOAP that was only capable of RPC, and various forms of HTTP usage without SOAP.

A Web Services Primer

Introduction

Looking back over the last six years, it is hard to imagine networked computing without the Web. The reason why the Web succeeded where earlier hypertext schemes failed can be traced to a couple of basic factors: simplicity and ubiquity. From a service provider's (e.g. an e-shop) point of view, if they can set up a web site they can join the global community. From a client's point of view, if you can type, you can access services. From a service API point of view, the majority of the web's work is done by 3 methods (GET, POST, and PUT) and a simple markup language. The web services movement is about the fact that the advantages of the Web as a platform apply not only to information but to services.

By "services", I don't mean monolithic coarse-grained services like Amazon.com, but, rather, component services that others might use to build bigger services. Microsoft's Passport, for instance, offers an authentication function exported on the Web. So hypothetically, an electronic newspaper like the Washington Post can avoid creating its own user authentication service, delegating it to Passport.

Oracle's dynamic services whitepaper provides other examples of component services that are reusable building blocks: currency conversion, language translation, shipping, and claims processing, A more formal definition of a web service may be borrowed from IBM's tutorial on the topic.

Web services are a new breed of Web application. They are self-contained, self-describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions, which can be anything from simple requests to complicated business processes...Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service.

IBM's web services tutorial goes on to say that the notion of a web service would have been too inefficient to be interesting a few years ago. But the trends like cheaper bandwidth and storage, more dynamic content, the pervasiveness and diversity of computing devices with different access platforms make the need for a glue more important, while at the same time making the costs (bandwidth and storage) less objectionable.

Table of Contents

Why bother with the Web, you say, when I've got my favorite middleware platform (RMI, Jini, CORBA, DCOM etc.)? While middleware platforms provide great implementation vehicles for services, none of them is a clear winner. The strengths of the Web as an information distributor, namely simplicity of access and ubiquity, are important in resolving the fragmented middleware world where interoperability is hard to come by. The Web complements these platforms by providing a uniform and widely accessible interface and access glue over services that are more efficiently implemented in a traditional middleware platform.

Viewed from an n-tier application architecture perspective, the web service is a veneer for programmatic access to a service which is then implemented by other kinds of middleware. Access consists of service-agnostic request handling (a listener) and a facade that exposes the operations supported by the business logic. The logic itself is implemented by a traditional middleware platform.


Generic Web Service Architecture

The Web Services Platform

So what is the web service platform? The basic platform is XML plus HTTP. HTTP is a ubiquitous protocol, running practically everywhere on the Internet. XML provides a metalanguage in which you can write specialized languages to express complex interactions between clients and services or between components of a composite service. Behind the facade of a web server, the XML message gets converted to a middleware request and the results converted back to XML.

Wait a minute, you say, access and invocation are only the bare bones (this would be like saying CORBA is only IDL plus remote procedure calls). Life is never quite that simple. What about the platform support services -- discovery, transactions, security, authentication and so on -- the usual raft of services that make a platform a platform? That's where you step up to the next level.

The Web needs to be augmented with a few other platform services, which maintain the ubiquity and simplicity of the Web, to constitute a more functional platform. The full-function web services platform can be thought of as XML plus HTTP plus SOAP plus WSDL plus UDDI. At higher levels, one might also add technologies such as XAML, XLANG, XKMS, and XFS -- services that are not universally accepted as mandatory.

Below is a brief description of the platform elements. It should be noted that while vendors try to present the emergent web services platform as coherent, it's really a series of in-development technologies. Often at the higher levels there are, and may remain, multiple approaches to the same problem.

  • SOAP (remote invocation)
  • UDDI (trader, directory service)
  • WSDL (expression of service characteristics)
  • XLANG/XAML (transactional support for complex web transactions involving multiple web services)
  • XKMS (XML Key Management Specification) - ongoing work by Microsoft and Verisign to support authentication and registration

SOAP

SOAP is a protocol specification that defines a uniform way of passing XML-encoded data. In also defines a way to perform remote procedure calls (RPCs) using HTTP as the underlying communication protocol.
SOAP arises from the realization that no matter how nifty the current middleware offerings are, they need a WAN wrapper. Architecturally, sending messages as plain XML has advantages in terms of ensuring interoperability (and debugging, as I can well attest). The middleware players seem willing to put up with the costs of parsing and serializing XML in order to scale their approach to wider networks.

Submitted in 2000 to the W3C as a Note by IBM, Microsoft, UserLand, and DevelopMentor, the further development of SOAP is now in the care of the W3C's XML Protocols Working Group. This effectively means that SOAP is frozen and stable until such time as the W3C Working Group delivers a specification.

See also Don Box's Brief History of SOAP.

UDDI (Universal Description, Discovery and Integration Service)

UDDI provides a mechanism for clients to dynamically find other web services. Using a UDDI interface, businesses can dynamically connect to services provided by external business partners. A UDDI registry is similar to a CORBA trader, or it can be thought of as a DNS service for business applications. A UDDI registry has two kinds of clients: businesses that want to publish a service (and its usage interfaces), and clients who want to obtain services of a certain kind and bind programmatically to them. The table below is an overview of what UDDI provides. UDDI is layered over SOAP and assumes that requests and responses are UDDI objects sent around as SOAP messages. A sample query is included below.

Information

Operations

Detailed information (supported by lower-level API)

White pages: Information such as the name, address, telephone number, and other contact information of a given business

Publish: How the provider of a Web service registers itself.

Business information: Contained in a BusinessEntity object, which in turn contains information about services, categories, contacts, URLs, and other things necessary to interact with a given business.

Yellow pages: Information that categorizes businesses. This is based on existing (non-electronic) standards

Find: How an application finds a particular Web service.

Service information: Describes a group of Web services. These are contained in a BusinessService object

Green pages: Technical information about the Web services provided by a given business.

Bind: How an application connects to, and interacts with, a Web service after it's been found

Binding information: The technical details necessary to invoke a Web service. This includes URLs, information about method names, argument types, and so on. The BindingTemplate object represents this data.Service Specification Detail: This is metadata about the various specifications implemented by a given Web service. These are called tModels in the UDDI specification


There is no near-term plan in UDDI to support full-featured discovery (e.g. geography-limited searches or bidding and contract negotiation supported by vendors like eLance). UDDI expects to be the basis for higher level services supported by some other standard. There are plans for UDDI to support more complex business logic, including support for hierarchical business organizations. UDDI has fairly broad support; IBM, Ariba, and Microsoft are driving it. It's not yet an open standard.

UDDI Example

Query: The following query, when placed inside the body of the SOAP envelope, returns details on Microsoft.

Microsoft
Result: detailed listing of <businessInfo> elements currently registered for Microsoft, which includes information about the UDDI service itself.

WSDL (Web Services Definition Language)

WSDL provides a way for service providers to describe the basic format of web service requests over different protocols or encodings. WSDL is used to describe what a web service can do, where it resides, and how to invoke it. While the claim of SOAP/HTTP independence is made in various specifications, WSDL makes the most sense if it assumes SOAP/HTTP/MIME as the remote object invocation mechanism. UDDI registries describe numerous aspects of web services, including the binding details of the service. WSDL fits into the subset of a UDDI service description.

WSDL defines services as collections of network endpoints or ports. In WSDL the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions of messages, which are abstract descriptions of the data being exchanged, and port types, which are abstract collections of operations. The concrete protocol and data format specifications for a particular port type constitute a reusable binding. A port is defined by associating a network address with a reusable binding; a collection of ports define a service. And, thus, a WSDL document uses the following elements in the definition of network services:

  • Types -- a container for data type definitions using some type system (such as XSD).
  • Message -- an abstract, typed definition of the data being communicated.
  • Operation -- an abstract description of an action supported by the service.
  • Port Type -- an abstract set of operations supported by one or more endpoints.
  • Binding -- a concrete protocol and data format specification for a particular port type.
  • Port -- a single endpoint defined as a combination of a binding and a network address.
  • Service -- a collection of related endpoints.

So, in plain English, WSDL is a template for how services should be described and bound by clients.

In what follows, I've described a stock quote service advertisement and a sample request/response pair for the service, which seeks the current quote on Motorola (ticker: MOT).

XLANG

The traditional notion of a database transaction is an atomic, that is, all-or-none action; either the entire action happens or it doesn't. Providing this kind of guarantee in a distributed infrastructure involves an expensive process called two-phase commit. An alternative optimistic model has been proposed in database research (originally called sagas and proposed by Hector Garcia-Molina), where actions have explicit compensatory actions which negate the effect of the action. In the real world of actions, the existence of compensatory actions is quite common. For instance if I debit a credit card $52, the compensatory action is to credit the credit card $52. If I sent out an e-mail saying "you'll get the product you ordered in seven days", the compensatory action is to send an e-mail saying, "oops, it's going to take longer". XLang is a notation for expressing the compensatory actions for any request that needs to be undone. The web services infrastructure can leverage XLang specifications to perform complex undo operations.

XAML

Transaction Authority Markup Language (XAML ) provides a more traditional two-phase commit style transactional semantics over web services. A business-to-business web transaction to purchase benzene follows -- a working example from the XAML specification. XAML does not completely restrict itself to two-phase commits, and it leaves open the possibility that some action "undos" will be compensatory actions like XLang. While two-phase commit is clearly useful in enterprise integration, a number of web transactions (e.g business-to-consumer transactions) are well captured by the computationally cheaper compensatory action model. Until XAML makes compensatory actions a first class citizen of their model, it would seem that XLang has ample justification to exist.

Scenario

The following scenario demonstrates a business-level transaction involving a set of web services that would utilize XAML. Consider an industrial company that purchases benzene from a chemical manufacturer on the Web. In order for the buyer to purchase the benzene, she requires additional value-added services provided by third parties, such as shipping with specific delivery terms, payment financing, casualty insurance, and government compliance for safe transport. The buyer will not agree to the purchase of benzene until all of these services are available, and until all of them meet her requirements. She will purchase all of them or none of them. In other words, all of these related requirements need to be satisfied in order for the business transaction to be completed.

The software providing the top-level business transaction needs to coordinate with each of the participating web services. These include (1) the chemical provider's inventory system; (2) an insurance policy service to insure the product being shipped; (3) a financing service to ensure payment according to vendor terms; (4) a transportation service to guarantee timely shipment and delivery of product; and (5) a regulatory service to ensure compliance with government safety requirements.

XKMS (XML Key Management Specification)

XKMS is an effort by Microsoft and Verisign to integrate PKI and digital certificates (which are used for securing Internet transactions) with XML applications. The key idea is to delegate the signature processing to a trust server on the Web, so that thin or mobile clients don't have to carry around the smarts to do all this themselves. XKMS relies on the XML Signature specification already being worked on by W3C and on anticipated work at W3C on an XML encryption specification.

XKMS consists of two parts: the XML Key Information Service Specification (X-KISS) and the XML Key Registration Service Specification (X-KRSS). The X-KISS specification defines a protocol for a trust service that resolves public key information contained in XML-SIG elements. The X-KISS protocol allows a client of such a service to delegate part or all of the tasks required to process <ds:KeyInfo> elements (information about the key signer). A chief objective of the protocol design is to minimize the complexity of application implementations by allowing them to become clients, thereby shielded from the complexity and syntax of the underlying PKI used to establish trust relationships. These may be based upon a different specification such as X.509/PKIX, SPKI, or PGP. X-KRSS describes how public key information is registered.

While there are no inviolable ties in these proposals to protocols and transports, the current XKMS specification relies on XML, SOAP, and WSDL.

Other initiatives in this area include S2ML (Security Services Markup Language) and AuthXML, which are being unified under the auspices of OASIS's XML Security Services committee.

Other useful initiatives

The web services platform is an evolving ecosystem in which Darwinian processes are still at work. As with all things Darwinian, there is constant evolution, bio-diversity, competition, and, yes, even confusion. The list below is a small sample of such complementary or competing initiatives.

ADS (Advertisement and Discovery of Services Protocol)

Given the existence of UDDI registries, ADS asks the question "how do I facilitate the building of a UDDI crawler that can pull UDDI advertisements off the Web, without people having to push ads to the registry?" Furthermore, while ADS accepts WSDL as the XML format for a service, it also wants to deal with discovering services that don't have the XML capabilities to build WSDL descriptions. For the XML world, it standardizes on a svcsadvt.xml file placed in the root of a web server, which then collectively advertises all the services available on that web site. This takes away the burden on each service to advertise itself, and it provides service crawlers a single place to look for advertisements. For the mom and pop e-shops of the world that want to advertise their services without the XML overhead, ADS proposes an augmented HTML META tag with name=<serviceDescriptionLocation >and content=<valid URL of document containing service advertisements>. In case of HTML based service crawling, the crawler makes some conclusions about the service properties based on the traversal context.

XFS

The XMethods filesystem service enables you to post and read files via a SOAP interface. This system enables developers to create services that utilize centralized, persistent data. Ideally, this type of filesystem can be used to centralize the storage of information which can be accessed by multiple nodes. For example, one could use this space to support automatic patch updates. XFS provides a client tool that integrates the XFS web service into a Windows Explorer shell. Windows Explorer is then integrated with the XML-SOAP-based file system. XFS is an open-source initiative by xmethods.com, the momentum of which is unclear. However, the idea is technically attractive.


Related Reading



Disclaimer: The opinions expressed herein are those of the author and do not necessarily reflect the opinion, position, or stance of Motorola, Inc. with regard to this subject.

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.