Django tCMS_ an easy to setup CMS that integrates easily with django-admin.
This project was brought to life by Matías Aguirre while hacking a CMS framework for Mydeco_ while working on Insophia_.
Sites with custom CMS systems usually relies on deployment to bring new pages layouts, and these new pages are created by us, developers. tCMS_ brings a new mechanism where new pages definitions can be defined using our favorite tool, python_. With a set of building blocks pages are created easily once it's structure is well defined.
This application only depends on django-admin.
From pypi_::
$ pip install django-tcms
or::
$ easy_install django-tcms
or clone from github_::
$ git clone git://github.com/omab/django-tcms.git
and add tCMS_ to PYTHONPATH::
$ export PYTHONPATH=$PYTHONPATH:$(pwd)/tcms/
or::
$ cd tcms
$ sudo python setup.py install
Add tCMS_ to installed applications::
INSTALLED_APPS = ( ... 'tcms', )
Define where your pages are defined::
TCMS_PAGES = 'tcms_pages'
The application will import the modules inside and inspect anything that
has a PAGE
variable defined.
Define where images should be uploaded::
TCMS_IMAGES_UPLOAD_TO = 'cms/image/%Y/%m/%d'
This setting is used to populate a upload_to
Django field parameter, so
you can use any supported formats.
Define this setting if you have CKEditor_ installed and want it to be used while editing content::
TCMS_CKEDITOR_BASE_URL = '/media/js/ckeditor'
The application uses Django cache to store content to speed up loading the
content when serving the content to users, by default the cache name is
tcms
, but you can override it by defining::
TCMS_CACHE_NAME = '...'
To enable page localizations, set this setting to True
::
TCMS_LOCALIZED = True
Localization is disabled by default.
Define your settings with the extra name/values needed by your templates::
RENDER_EXTRA_CONTEXT = {...}
If your site support multiple languages, you will want to create pages on every language.
tCMS_ uses Django LANGUAGES when searching for supported languages, but allows
you to create global language pages, for example if you support en-gb
and
en-us
locales, it's possible to define a page with locale en
and it
will be used to server the same content for users requesting for one or other
locale.
Check the example_ to see how it works.
.. _tCMS: https://github.com/omab/django-tcms .. _Mydeco: http://mydeco.com .. _Insophia: http://insophia.com .. _github: https://github.com/omab/django-tcms .. _CKEditor: http://ckeditor.com/ .. _python: http://python.org .. _example: https://github.com/omab/django-tcms/tree/master/example .. _pypi: http://pypi.python.org/pypi/django-tcms