This project is used while teaching advanced PHP-programming with Model View Controller (MVC) frameworks with a taste of Content Management Framework (CMF).
Material in below links are mainly in swedish.
- http://dbwebb.se/lennart/current (try out the code)
- http://dbwebb.se/f/123 (forum with some tutorials on how the code was built, only in swedish)
Lennart is licenses according to MIT-license. Any included external modules are subject to their own licensing.
Lennart uses external libraries for state of the art samples. Any external module can be replaced or removed for less features but without disturbing the Lennart core functionality.
The following external modules are included in Lennart.
HTMLPurifier by Edward Z. Yang to filter & format HTML.
Website: http://htmlpurifier.org/
Version: 4.4.0 (2012-01-18)
License: LGPL
Lennart path: src/CHTMLPurifier
Used by: CMContent
lessphp by leaf to compile LESS.
Website: http://leafo.net/lessphp
Version: 0.3.4-2 (2012-04-17)
License: Dual license, MIT LICENSE and GPL VERSION 3
Lennart path: themes/grid/lessphp
Used by: themes/grid/style.php
by Tyler Tate/TwigKit to get grid layout through LESS.
Website: http://semantic.gs/
Version: 1.2 (2012-01-11)
License: Apache License
Lennart path: themes/grid/semantic.gs
Used by: themes/grid/style.less.css
Todo.
- Yes, a lot of things to do. No need to specify them, to many on the list... Wait until there is a stable version of Lennart.
v0.2.24 (2012-05-07)
- Updating
CMModulesandCCModulesto display information on a module's main class using Reflection API.
v0.2.23 (2012-05-07)
- Creating menues through
site/config.php. - Mapping menus to theme regions.
- Child theme in
site/themes. - Site specific controllers/models/modules in
site/src. - Sample website in
site. - Added delete of content.
v0.2.22 (2012-05-02)
- Enhanced installation procedure by adding one controller for installation,
module/install. - Added interface
IModulefor all modules to implement that can manage themself for install/update/delete.
v0.2.21 (2012-05-02)
- Added module management through
CMModulesandCCModules.
v0.2.20 (2012-04-23)
- Moved static data from
themes/grid/functions.phptosite/config.php. - Added
themes/functions.php get_tools()for a list of useful debug tools.
v0.2.19 (2012-04-23)
- Added typography matching vertical grid to
theme/grid. - Added reset.css.
v0.2.18 (2012-04-23)
- Updated
CViewContainerand related items to map views to regions in theme.
v0.2.17 (2012-04-23)
- Integrated with semantic.gs though the new theme
theme/grid. - Included sematic.gs version 1.2 (2012-01-11).
v0.2.16 (2012-04-19)
- Integrated with
lessphpversion 0.3.4-2 (2012-04-17) and LESS though a new theme,theme/grid.
v0.2.15 (2012-04-16)
- Added filter to format
CMContentas 'htmlpurify' using http://htmlpurifier.org/. - Added external library
htmlpurifier-4.4.0-standalonein wrapperCHTMLPurifier. - Added LICENSE.txt as MIT-license.
v0.2.14 (2012-04-16)
- Added filter to format
MCContentas 'bbcode'. - Added function
bbcode2html()insrc/bootstrap.php.
v0.2.13 (2012-04-13)
- Added filter to format
CMContetas 'plain', 'html' and 'php'. 'html' and 'php' is disabled inCMContentas default. - Added function
makeClickable()insrc/bootstrap.phpwhich formats links in text to .
v0.2.12 (2012-04-13)
- Added
CCBlogto display all content of type 'post' in a blog-like list. - Added
CCPageto display content of type 'page' in a singel-page view. - Added formatting of DateTime since using function
formatDateTimeDiff()and theme helpertime_diff(). - Lennart always set timezone to UTC. All time values stored in database is in UTC.
v0.2.11 (2012-04-11)
- Added handling for content with
CMContentandCCContent.
v0.2.10 (2012-03-29)
- Created a sequence to create a new user
user/createusing the web as userinterface. - Corrected: CreateUrl in CCobject did not return its result.
v0.2.09 (2012-03-28)
- Added server-side form validation to
CForm.
v0.2.08 (2012-03-28)
- Changed name of database class from
CMDatabasetoCDatabase. - Added hashing techniques for storing password. plain, md5, sha1, md5salt, sha1salt.
- Made sha1salt the default algorithm when storing passwords.
v0.2.07 (2012-03-27)
- Integrated with gravatar.com and created theme function to get the gravatar link.
v0.2.06 (2012-03-25)
- Added classes for CForm,
CFormElement,CFormElementText,CFormElementPassword,CFormElementSubmit - Made
CFormuseCFormElementand both implements ArrayAccess. - User can save profile on user/profile.
CMUseruses implements ArrayAccess.
v0.2.05 (2012-03-21)
- Corrected: Handling of incoming urls based on ?q=controller/metod and index.php/controller/metod.
- Added utility class CForm for form handling.
- Added login-form on user/login.
v0.2.04 (2012-03-19)
- Used Reflection API to show the available controllers and methods using the index controller.
v0.2.03 (2012-03-19)
- Made
CMUsera part ofCLennartandCObject. - Created theme function
login_menu(). - Created controller
CCUserControlPanel.
v0.2.02 (2012-03-15)
- Uppgraded
CMUserwith groups and group-membership for each user.
v0.2.01 (2012-03-15)
- Added
CMUserandCCUserto handle users. Created code for testing login and logout of user. - Added inteface convenience methods
RedirectToControllerandRedirectToControllerMethodinCObject.
v0.1.9 (2012-03-13)
- Added
CMGuestbookas a model for the sample guestbook application. - Rewrote code and separated between guestbook controller and model.
v0.1.8 (2012-03-05)
- Added
CSessionas a wrapper to$_SESSION. - Enabled flashmemory in
CSessionfor as a memory to live through pagerequests, useful to send feedback to users and showing debuginfo to the developer. - Updated
Guestbookto make use of the new features.
v0.1.7 (2012-02-24)
- Added a container for the views
CViewContainer. - Integrated
CViewContainerinCCGuestbook,CLennart,CObject, and the theme handling. - This makes
$le->dataobsolete and to be removed in coming releases.
v0.1.6 (2012-02-24)
- Added interface to those classes that uses SQL,
IUseSQL. - Updated
CCGuestbookto useIUseSQL.
v0.1.5 (2012-02-24)
- Introduced the database layer as
CMDatabase. - Showed how to use it in the
CCGuestbookcontroller example. - Enabled debug output from the database operations using settings in config-file and theme-helper
get_debug(). - Created a default exception handler in
bootstrap.php. CLennartcreates and owns the databaseobject as$le->db.CObjectmakes the database object available for subclasses through$this->db.
v0.1.4 (2012-02-23)
- Improved guestbook example to store messages in database using PHP PDO and SQLite.
- Added konfigurationsitem fpr database in site/config.php.
- Added site/data directory which should be writable bu the webserver.
v0.1.3 (2012-02-15)
- Added some style and an icon the the core theme.
- Added a guestbook application as an example of a controller using database and forms.
- The guestbook is fully working and stores entries in the session.
- Cope with querystring sent to controller and methods.
- Added theme helper theme_url($url) which prepends $url with the url to the theme directory.
- Added session_start() in CLennart.
- Use default timezone as defined in site/config.php, set in CLennart::__construct()
v0.1.2 (2012-02-15)
- One common baseclass for controllers and modules, CObject, holds access to CLennart through $this->
- Output from theme helper get_debug() is configurable in site/config.php.
- Wrapper htmlent() for htmlentities() to support character encoding from site/config.php.
- Remove all - and _ from the url before checking if method exists. Enables developer/display-object and developer/display_object to point to developer/displayobject.
v0.1.1 (2012-02-14) v0.1.0 (2012-02-14)
- All requests handled by
index.phpand using mod_rewrite in.htaccess. - A base structure with
bootstrap.php, frontcontroller and theme engine. - Frontcontroller
CLennart::FronControllerRoute()supporting varius url-constructs. - A basic theme controller,
CLennart::ThemeEngineRender(), withfunctions.php,style.cssand template files. - Managing base_url and introducing theme helper functions.
- 'CRequest' manages creation of internal links.
v0.01 - v0.03 (2011 december)
- This was the first release used in a course called dbwebb2.
.
..: Copyright 2011 by Mikael Roos (me@mikaelroos.se)