我的博客開發之xadmin與ueditor集成

項目源碼下載:http://download.vhosts.cnjavascript

 

    1. xadmin 添加ueditor 插件css

        vim extra_apps\xadmin\plugins\ueditor.py #沒有改文件,就新建文件html

#!/usr/bin/env python  
# -*- coding:utf-8 -*-
__author__ = 'cpy'
import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings
class XadminUEditorWidget(UEditorWidget):
    def __init__(self, **kwargs):
        self.ueditor_options = kwargs
        self.Media.js = None
        super(XadminUEditorWidget, self).__init__(kwargs)
class UeditorPlugin(BaseAdminPlugin):
    def get_field_style(self, attrs, db_field, style, **kwargs):
        if style == 'ueditor':
            if isinstance(db_field, UEditorField):
                widget = db_field.formfield().widget
                param = {}
                param.update(widget.ueditor_settings)
                param.update(widget.attrs)
                return {'widget': XadminUEditorWidget(**param)}
        return attrs
    def block_extrahead(self, context, nodes):
        js = '<script type="text/javascript" src="%s"></script>' % (
            settings.STATIC_URL + "ueditor/ueditor.config.js")  #DjangoUeditor靜態文件
        js += '<script type="text/javascript" src="%s"></script>' % (
            settings.STATIC_URL + "ueditor/ueditor.all.js")  #DjangoUeditor靜態文件
        nodes.append(js)
xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

  

# 此處特別說明下settings.STATIC_URL  和 STATICFILES_DIRS 對應的項目文件位置:java

 

        STATIC_URL 指向的是全部註冊過的app 中的指定目錄,針對對象爲app node

 

        例如 settings.STATIC_URL配置爲:python

            STATIC_URL = '/static/' # 則表示:http://xxxxxx/static 連接指向全部app下 static 目錄,DjangoUeditor app也是項目中的註冊app ,因此此處extra_apps\DjangoUeditor\static 目錄能夠直接被STATIC_URL 識別。django

 

 

        STATICFILES_DIRS 指向的是項目通用靜態資源,通常不在app中,而是在項目根目錄下。vim

 

        例如 setting.STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'),] 則指向項目根目錄下static文件夾,頁面模板中{% load staticfiles %} 就是表示引用項目根目錄下static文件夾,因此能夠直接輸入去除static 目錄以上部分的路徑,模板仍然能夠識別。app

 

  

  2. 添加註冊 ueditor 模塊ide

 

        vim extra_apps\xadmin\plugins\__init__.py # 添加剛剛新增的ueditor

 

        image.png

 

    3.  添加視頻播放樣式、代碼高亮樣式 和相應js 文件

        在模板文件中引入

<!-- 引入視頻html標籤識別,支持視頻播放 -->
<script src="{% static 'ueditor/third-party/video-js/video.js' %}"></script>
<script src="{% static 'ueditor/ueditor.parse.js' %}"></script>
<!-- 引用ueditor js ,保障前臺頁面代碼高亮 -->
<script src="{% static 'ueditor/third-party/SyntaxHighlighter/shCore.js' %}"></script>
<!-- 引入視頻html標籤識別,支持視頻播放 -->
<link type="text/css" rel="stylesheet" href="{% static 'ueditor/third-party/video-js/video-js.css' %}"/>
<!-- ueditor css 樣式,用於前臺代碼高亮 -->
<link type="text/css" rel="stylesheet" href="{% static 'ueditor/third-party/SyntaxHighlighter/shCoreDefault.css' %}">

  

  4. 修改ueditor 上傳視頻文件的位置:

 

        djangoueditor 默認保存文件只提供了imagePath 和filePath的保存位置。因此此處將ueditor保存文件的views 作以下修改

        

     4.1 修改UploadFile(request) 函數,在檢測完成後寫入文件時,在保存文件的函數中傳入action

   image.png

    

      4.2  修改保存文件函數,判斷傳來的action參數是否爲視頻內容,若是是,將默認路徑改成media\video

 

    image.png

    

    4.3 修改UploadFile(request) 函數, 將action == 'uploadvideo' 的視頻保存完成後返回路徑加入video 目錄:

 

    image.png

相關文章
相關標籤/搜索