Uses MongoDB as the main database storage. It can scale to very large size, capable of working with tens or even hundreds of millions or records, spanning dozens of servers
Capable of handling very high-load websites, easily serving thousands of simultaneous requests
Multiple sites can run off a single installation of the program.
Every new site just needs its own !config.ini file and own templates set and own .css file. All classes can be reused amount multiple sites!
Multi-lingual support. Internationalization and localization. All text strings are stored in translation files (XLIFF file format is used for translations). Support for custom date/time formatting based on country's locale
Ajax based forms and many other features use Ajax
Best support for UTF-8 Charset you will find in any php based app. Every incoming string is validated and if necessary converted to valid UTF-8 charset. Data is stored in DB in UTF-8, searches performed in UTF-8, all forms on this site have special instructions for browser to send data in utf-8 encoding. Tags are allowed to be any word in any language, tag can even contain special chars and symbols
Abstract layer for plugging in any type of search engine from Lucene/Solr to Sphinx to any other search. Default is to use MySQL as search provider. This is very easy to setup and requires only one MySQL table. But MySQL is not actually required for this site, its optional and only for search feature
All important forms use unique tokens to prevent CSRF attacks
Password stored as sha256 + salt for extra security
Cookie-based authentication ("Remember me" feature) used SHA256 salted values for extra security
Our own super-lightweight php templating engine
Extremely fast page rendering. On a 20,000 Questions site typical page with Question with 3 answers and 20 "Related Questions" links usually renders in about 35-75 milliseconds, depending on server load (Including database calls and php execution) (* With APC Cache)
A page with 20 Recent Questions and 30 Recent Tags, and pagination links usually renderes in under 1/4 of a second (* With APC Cache)
Clean SEO-Friendly URLs
First N questions/answers (2 by default) from new user must be approved by moderators. This is a configurable feature and can be enabled in config file
Image Uploads feature with automatic image resizing (in Questions and Answers) can be enabled in config file
Auto-complete widget for search and for automatically similar question titles as user type in a new question
For programming-related Q&A Sites there is an optional support for code editor and code highlighter that supports all of the popular programming languages as well as CSS and HTML code highlighting (this feature can be turned on and off from config file)
Support for very simple way to add Youtube video to Question and Answer
by just clicking "YouTube" button and entering url of YouTube video.
Program will use YouTube API to get thumbnail of video and will create all the necessary code for adding video to your site (this feature can be turned on and off from config file)
Support for external authentication via Twitter (login with Twitter)
Support for external authentication via Facebook (login with Facebook)
Support for external authentication via LinkedIn coming soon
Support for external
authentication via Google FriendConnect, which allows to sign
with Google account, AOL, Yahoo, OpenID
Question and Answers can also be posted to Facebook, Twitter, Tumblr and Blogger all at the same time, using post-processing feature
that does not slow down the page load at all - all API calls are made after the page loaded and browser connection
User are rewarded with reputation points for posting content to external sites (Twitter, Tumblr, Facebook, Blogger)
When external authentication is used, the system will still ask to provide an email address
Email address validation via account activation email with a special link
Ability to create own account without using external authentication.
User can upload own avatar which will be auto resized and converted into square size.
User can edit own profile and enter own website, description.
Members can follow other members just like on Twitter
Members can follow questions they are interested in monitoring
Members can follow interesting tags
Automatic email notification of activities in followed items (like when new question is added and contains followed tag)
Admin can create Sticky posts that always stay on top of the list
Dot folders feature to indicate threads that you posted in
Visually indicate questions you following on the questions list pages
Browser-based storage to keep track of read/unread items and visually indicate when a question contain new answer or comment - something that you have not already read
Personalization feature to highlight questions with tags you follow, and to display your followed tags on top of recent tags list
Flexible Access control list (ACL) with group inheritances (based on Zend_ACL) as well as reputation based access permissions
Automatic lockout after multiple failed login attempts
Detection of password hack or cookie authentication hack attempts with automatic lockout of offending IP and notification of admin
Intelligent Views counter - counts one view per Question per User or per IP if user not logged in
Editing of existing Questions and Answers
Deleting of Questions and Answers by Question owner or moderator
Moderators can Close question, Question owner can request Question to be closed. Once closed, no more answers are accepted
Keeps track of per-Tag statistics including count of questions with a specific tag
Keeps track of all Unanswered Questions and Unanswered tags
Keep track of Recent tags with the timestamp of latest question added with tag
Keeps track of Related Tags
Users can report inappropriate content to moderators
Spam fighting tools with ip and country banning
Flood check - limit number of posts user can make in pre-defined number of minutes (configurable setting)
Duplicate Question check - prevents user submitting the same question twice by keeping unique per-question hash
Admin can easity change user's group or delete or ban user
Admin can ban user at the same time when deleting a Question or Answer
One-Click mass deletion of all posts made by spammer
Ip-Based Geo Location stored with posts, can use to plot items on Google Map
Ability to turn on/off display of page rendering time
Support for styling – can create and upload set of templates plus css file to create brand new theme.
Support for mobile browser – just create set of templates + css file suitable for mobile browser
Fast, easy to use templating engine with no php logic inside template. A web designer can create templates without knowledge of php.
User can vote questions and answers up/down, can also un-vote (cancel vote). Votes increase/decrease reputations on question/answer posters.
Asker can accept an answer as 'best answer', can also change their mind if a better answer has been added after the one already been accepted.
Reputation calculation is intelligent enough not to count points when user votes for own question or accepts own answer
User is rewarded with extra points for accepting answers. This encourages to always try to accept one answer as Best answer
Module to create xml sitemaps (daily) and automatically submit new sitemaps to Google, Bing and Yahoo
The program is written in good object oriented manner using MVC pattern, easy to understand, easy to write new classes or extend existing classes.
The system uses Event model where events are posted at some interesting point of the program, for example onBeforeNewQuestion, onNewQuestion, onNewUser, etc. Custom observer class can be written to listen to any of the events and modify the objects passed to observer. Observer can also cancel event or throw a custom exception. This makes it very easy to write custom module without the need to touch the core classes. All custom observers extend LampcmsObserver class, which automatically has the Registry object. Registry object keeps references to all important objects like Mongo database driver, current Viewer object, settings
Using cache headers (etag and last-modified) to make browser cache questions pages
Rich text editor