8 окт. 2009 г.

Django CMS 2.0 – божественно

Поставил и использую django cms 2.0. Кайф. прям из коробки она умеет большую часть того, что нужно простой и удобной CMS.

Приятней всего для меня была возможность использования placeholder’ов. Суть в настройках прописываете “места размещения” кусков контента на страницах, прописываете их же в шаблоне (которые тоже можно выбирать для каждой страницы) и наслаждаетесь возможностью подставлять в страницу разные плагины (текст, видео, ссылка и пр.). Естественно, плагинов может быть несколько в одном плейсхолдере.

Про многосайтовость и разделение прав на уровне пользователей/групп/ролей я вообще молчу. Экземпляр django-cms 2 скоро буду использовать для всех своих поделок в Concepter’е

В общем, очень хочется написать об этой ЦМС по больше, но не знаю чего именно. Давайте так, пишите в комменты вопросы по ЦМСке, а я буду на них отвечать и апдейтить статью. Каждый 10 комментарий получит денежное вознаграждение по webmoney.

UPD1. Django-CMS 2.0, на сколько мне известно, форк с django-cms. Удивительный факт: форк этот - не единственный, и далеко не последний. feincms– новая CMS, использующая все теже требования, что и предыдущие 2. Лично я, не осилил понять как и зачем работать Feincms… Про сравнение разных django CMS я уже писал

UPD2. Конфиг-файл:


# -*- coding: utf8 -*-

import os

PROJECT_DIR= os.path.abspath(os.path.dirname(__file__))



DEBUG = True

TEMPLATE_DEBUG = DEBUG



ADMINS = (

    ('Ivan Markeyev''markeyev@concepter.ru'),

)



MANAGERS = ADMINS



TEST_DATABASE_CHARSET = "utf8"

TEST_DATABASE_COLLATION = "utf8_general_ci"

DATABASE_SUPPORTS_TRANSACTIONS = True

TIME_ZONE = 'Asia/Yekaterinburg'

SITE_ID = 1

USE_I18N = True

MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')

#ADMIN_MEDIA_ROOT = os.path.join(PROJECT_DIR, '../admin_media/')

MEDIA_URL = '/media/'

ADMIN_MEDIA_PREFIX = '/adminmedia/'

FIXTURE_DIRS = [os.path.join(PROJECT_DIR, 'fixtures')]

SECRET_KEY = '+++'

TEMPLATE_LOADERS = (

    'django.template.loaders.filesystem.load_template_source',

    'django.template.loaders.app_directories.load_template_source',

#     'django.template.loaders.eggs.load_template_source',

)



TEMPLATE_CONTEXT_PROCESSORS = (

    "django.core.context_processors.auth",

    "django.core.context_processors.i18n",

    "django.core.context_processors.debug",

    "django.core.context_processors.request",

    "django.core.context_processors.media",

    "cms.context_processors.media",

)



INTERNAL_IPS = ('127.0.0.1',)



MIDDLEWARE_CLASSES = (

    'django.contrib.sessions.middleware.SessionMiddleware',

    'django.middleware.locale.LocaleMiddleware',

    'django.middleware.common.CommonMiddleware',

    'django.contrib.auth.middleware.AuthenticationMiddleware',

    'django.middleware.doc.XViewMiddleware',



    #'django.contrib.csrf.middleware.CsrfMiddleware',

    'cms.middleware.user.CurrentUserMiddleware',

    'cms.middleware.page.CurrentPageMiddleware',

    'cms.middleware.multilingual.MultilingualURLMiddleware',

    #'debug_toolbar.middleware.DebugToolbarMiddleware',

    

)



ROOT_URLCONF = 'urls'



TEMPLATE_DIRS = (

    os.path.join(PROJECT_DIR, 'templates'),

)

LOCALE_PATHS = (

    os.path.join(PROJECT_DIR, 'i18n''locale'),

)

INSTALLED_APPS = (

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.admin',

    'django.contrib.sites',

    'tagging',



    'django.contrib.sitemaps',



    'cms',

    'publisher',



    'cms.plugins.text',

    'cms.plugins.picture',

    'cms.plugins.file',

    'cms.plugins.flash',

    'cms.plugins.link',

    'cms.plugins.snippet',

    'cms.plugins.googlemap',

    'cms.plugins.teaser',

    'cms.plugins.video',

    'cms.plugins.twitter',

    'mptt',

    'reversion',

    #'example.categories',

    #'debug_toolbar',

    'south',

    # sample application

    'sampleapp',

    #'store',

    'rosetta',

)



LANGUAGE_CODE = "ru"



gettext = lambda s: s



LANGUAGES = (

    ('ru', gettext('Russian')),

#    ('fr', gettext('French')),

#    ('de', gettext('German')),

    ('en', gettext('English')),

#    ('pt-br', gettext("Brazil")),

)



CMS_LANGUAGE_CONF = {

    'ru':['en'],

    'en':['ru'],

}



CMS_TEMPLATES = (

    ('index.html', gettext('default')),

    ('nice.html', gettext('nice one')),

    ('cool.html', gettext('cool one')),

    ('long-folder-long/long-template-name.html', gettext('long')),

    

)



CMS_SOFTROOT = True

CMS_MODERATOR = True

CMS_PERMISSION = True

CMS_REDIRECTS = True

CMS_SEO_FIELDS = True

CMS_MENU_TITLE_OVERWRITE = True

CMS_HIDE_UNTRANSLATED = True





try:

    from local_settings import *

except ImportError:

    pass


Отправить комментарий