2010-04-13 7 views
6

django CMS 프로젝트를 시작했습니다. 모듈 식 디자인을 염두에두고 만들었지 만 실제로 고객이 원하는 것은 더 단순합니다 :django-cms의 기본 컨텐츠 플러그인

여기 django CMS에서는 모든 페이지에 텍스트, 이미지 또는 기타 다양한 '플러그인'콘텐츠를 포함 할 수 있습니다. . 그러나 고객은 새로운 모든 페이지에 대해 텍스트 플러그인을 활성화하고 선택 및 자동 생성하고 해당 텍스트 필드에서 작업하려고합니다. 그 (것)들을 사용하는 것이 다만 더 간단한 무언가이다.

누구나이 CMS 시스템을 사용하여 이와 유사한 작업을 수행 했습니까? 또는 django에 대한 다른 간단한 CMS 솔루션을 추천 할 수 있습니까?

+0

이 답변 그러나 hlpful 수 있습니다되지 않습니다 : http://www.django-cms.org/en/documentation/2.0/configuration/#cms-placeholder- conf – dzida

답변

0

가장 빠른, 그러나 아마 가장 우아한 방법은 다음과 같습니다

  • 을 선택하고 드롭 다운에서 텍스트 플러그인을 추가 할 때 사용자의 행동을 mimicks 스크립트를 작성;
  • PageAdmin을 재정 의하여 스크립트를 포함하십시오.

은 다음과 같이 진행됩니다

# anywhere in your project, for example, site/admin.py 
from cms.models import Page 
from cms.admin.pageadmin import PageAdmin 

class ModPageAdmin(PageAdmin): 
    class Media: 
     js = ('js/cms.page.js',) 

admin.site.unregister(Page) 
admin.site.register(Page, ModPageAdmin) 

# in MEDIA_URL/js/cms.page.js 
$(document).ready(function(){ 
    ph = $("div.form-row.main") // replace "main" with your placeholder name, lower-case 
    $("select", ph).val('TextPlugin') 
    window.setTimeout(function(){ $("span.add-plugin", ph).click() }, 500) 
}) 
1

은 당신도 CMS 모듈이 필요하십니까?

CMS의 가장 기본은 아웃 - 오브 - 박스 장고를 사용하여 거의 간단하다 :

class ContentPage(models.Model): 
    title = models.CharField(max_length=100) 
    content = models.TextField() 
    slug = models.SlugField() 

def view_page(request, slug='home'): 
    return render_to_response('content.html', 
     { 'page': ContentPage.objects.get(slug=slug) }, 
     context_instance=RequestContext(request) 
    ) 

그냥 시작하는 장고 관리자를 사용합니다. 그러나 더 많은 것을 원하고 관리자에게 제공하지 않으면 양식/작업을 수정하여이 필드를 편집하는 것이 매우 쉽습니다.

편집이 필요하면 양식 템플릿에 주석을 추가하십시오. 뭔가 같은 : 여전히 관리를 통해 페이지를 편집하는 경우 당신이 너무

class Media: 
    js = (
     settings.MEDIA_URL + "jquery/jquery.js", 
     settings.MEDIA_URL + "tiny_mce/tiny_mce.js", 
     settings.MEDIA_URL + "js/admin.js" 
    ) 
1

에 작은 첨부 할 수 있습니다 ('sayplastic'에서 언급 한 바와 같이)

<script type="text/javascript" src="{{MEDIA_URL}}tiny_mce/tiny_mce.js"></script> 
<script type="text/javascript"> 
tinyMCE.init({... 

또는 유사한 제공 FeinCMS 그들의입니다 페이지 트리 편집기와 더 단순한 블록. 그것은 더 많은 사용자 정의가 가능합니다.

트리 편집기가 필요하지 않으면 Django에는 매우 간단한 flatpages이 내장되어 있습니다.

는 "프로토 타입 페이지", 페이지 템플릿 및 고객에게 사용할 수있게하려면 인스턴스화 플러그인의 각 조합에 대해 하나의 번호를 입력 :

2

는 동일한 기능을 수행하는 간단한 방법이있다.

고객이 새 페이지를 처음부터 만드는 대신 템플릿 페이지를 복사하여 새 페이지를 만들도록하십시오 (관리자 페이지의 복사 아이콘을 통해 수행 할 수 있음). 원하는 경우 기본 콘텐츠가있는 경우에도 이러한 방식으로 필요한 플러그인이 이미있을 것입니다.

관련 문제