LBForum is a forum engine written in Python using Django
Python HTML CSS JavaScript
Permalink
Failed to load latest commit information.
lbforum Merge branch 'master' of https://github.com/vicalloy/LBForum Nov 7, 2016
.gitignore ignore dist/ Aug 12, 2016
LICENSE update setup Aug 8, 2016
MANIFEST.in update setup Aug 8, 2016
README.rst Update README.rst Oct 28, 2016
setup.py remove beautifulsoup3 Sep 26, 2016

README.rst

LBForum

LBForum is a quick and simple forum which uses the Django Framework (written in Python language). LBForum is a reusable Django application, can be added to any existing django project. LBForum is distributed under the BSD.

Demo site: http://lbf.haoluobo.com/

Demo site's source: https://github.com/vicalloy/lbforum-site

Features

  • user-friendly installation process
  • the ease of integration into any Django project and the ease of installation
  • classic view of the forum like FluxBB
  • Allow users to upload attachments to their posts(by AJAX).
  • avatar support
  • BBCode support
  • friendly edtor(by markItUp!).
  • Sticky threads (These threads are always sorted first in the list of threads)

Requirements

Installation

Installation

  1. Install LBForum by easy_install or pip.

easy_install:

$ easy_install lbforum

pip:

$ pip install lbforum

Configuration

Config urls.py:

url(r'^', include('lbforum.urls')),
url(r'^attachments/', include('lbattachment.urls')),

The LBForum has some settings should be set in settings.py:

  1. Add the following app to INSTALLED_APPS:

    'el_pagination',
    'easy_thumbnails',
    'constance',
    'constance.backends.database',
    'djangobower',
    
    'lbforum',
    'lbattachment',
    'lbutils',
    
  2. Add the following middleware to TEMPLATES['OPTIONS']['context_processors']:

    'django.contrib.messages.context_processors.messages',
    
  3. setting urls for lbforum:

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(PRJ_ROOT, 'collectedstatic')
    
    HOST_URL = ''
    MEDIA_URL_ = '/media/'
    MEDIA_URL = HOST_URL + MEDIA_URL_
    MEDIA_ROOT = os.path.join(PRJ_ROOT, 'media')
    
    SIGNUP_URL = '/accounts/signup/'
    LOGIN_URL = '/accounts/login/'
    LOGOUT_URL = '/accounts/logout/'
    LOGIN_REDIRECT_URL = '/'
    CHANGE_PASSWORD_URL = '/accounts/password/change/'
    
  4. settings for constance:

    CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
    
    CONSTANCE_CONFIG = {
        'forbidden_words': ('', 'Forbidden words', str),
    }
    
  5. settings for bower:

    from django.conf.global_settings import STATICFILES_FINDERS
    STATICFILES_FINDERS += (('djangobower.finders.BowerFinder'),)
    
    BOWER_COMPONENTS_ROOT = PRJ_ROOT
    
    BOWER_INSTALLED_APPS = (
        'jquery#1.12',
        'markitup#1.1.14',
        'mediaelement#2.22.0',
        'blueimp-file-upload#9.12.5',
    )
    
  6. settings for BBCODE:

    BBCODE_AUTO_URLS = True
    #add allow tags
    HTML_SAFE_TAGS = ['embed']
    HTML_SAFE_ATTRS = ['allowscriptaccess', 'allowfullscreen', 'wmode']
    #add forbid tags
    HTML_UNSAFE_TAGS = []
    HTML_UNSAFE_ATTRS = []
    
    """
    #default html safe settings
    acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big',
        'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col',
        'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em',
        'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img',
        'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol',
        'p', 'pre', 'q', 's', 'samp', 'small', 'span', 'strike',
        'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th',
        'thead', 'tr', 'tt', 'u', 'ul', 'var']
    acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey',
        'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing',
        'char', 'charoff', 'charset', 'checked', 'cite', 'clear', 'cols',
        'colspan', 'color', 'compact', 'coords', 'datetime', 'dir',
        'enctype', 'for', 'headers', 'height', 'href', 'hreflang', 'hspace',
        'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'method',
        'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt',
        'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'shape', 'size',
        'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type',
        'usemap', 'valign', 'value', 'vspace', 'width', 'style']
    """
    

Initialize The Database & Static Files

  1. Run command manage.py bower install
  2. Run command manage.py migrate