Skip to main content

Django CMS articles management plugin

Project description

ci Latest Version Development Status

It is a simple plugin that allows you to organize you article pages in a manner of a blog. It does not break original page publishing workflow, but has some tricks to gather articles into a blog app.

Requirements

It works fine and tested under Python 2.7. The following libraries are required

  • Django >= 1.5

  • django-cms >= 3.0 (we recommend to use Django CMS 3.0 and higher, contact us if you need prior CMS versions supports and have some issues)

Installation

$ pip install cmsplugin-articles

Configure installed apps in your settings.py

INSTALLED_APPS = [
    # django contrib and django cms apps
    'cmsplugin_articles',
]

Migrate your database

django-admin.py migrate cmsplugin_articles

Usage

  • Create a page in a common way, it will be a root page, an articles list;

  • Add ArticlesPlugin to the page to you content placeholder, this will show a list of published articles;

  • Create an article page as a child page, it will be shown automatocally in the list.

Customization

You can customize this plugin by overriding the following templates

  • cms/plugins/articles.html (plugin template layout)

  • cms/plugins/article_teaser.html (if you want to change teaser template, e.g. use easy-thumbnails for teaser images)

  • cms/plugins/articles_pagination.html (pagination templates, if you want to add extra css classes or so)

Templatetags

The plugin has a number of temlatetags used for teaser template, you should load them in your template with

{% load article_tags %}

published_at, teaser_title and teaser_image

Filters which get article Page instance as an argument

  • published_at return datetime object for publication time

  • teaser_title return teaser title as a string

  • teaser_image return TeaserExtension.image if exists

teaser_text

A simple_tag which returns a teaser text. It accepts two parameters

  • article_page the page that teaser belongs to

  • default_from the placeholder name. You can pass it if you want generate teasers automaticaly

exact_columns

You can use this template tag to split articles list into a column layout, e.g

<div class="row">
  {% exact_columns articles 3 "vertical" as columns %}
  {% for column in columns %}
    <div class="col_6">
      {% for article in column %}
        {% include "cms/plugins/article_teaser.html" %}
      {% endfor %}
    </div>
  {% endfor %}
</div>

Roadmap

  • Python 3 support

Changelog

The changelog can be found at repo’s release notes

Contributing

Fork the repo, create a feature branch then send me pull request. Feel free to create new issues or contact me via email.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmsplugin-articles-0.2.2.tar.gz (10.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page