hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog » 2013-01-21

RSS of nao-pon/blog
Mon 21 Jan 2013
 

ckeditor4 Version 0.29 & 0.30 リリース anchor.png

ckeditor4 をアップデートして Version 0.30 としました。

X-update で更新、もしくは、mygithub-download:ckeditor4 からダウンロードできます。

Page Top

更新履歴 anchor.png

  • 85f0ad6: add two delegate points for customizing with preload
    • プリロードで CKEditor をカスタマイズするためのデリゲートを設けました。
    Ckeditor4.Utils.PreBuild_ckconfig (& $params)

    Smarty プラグインから呼ばれた直後、Smarty プラグインパラメータ配列 $params を参照渡しで受け取ります。

    CKEditor.config を ckeditor4 側で組み立てる前にパラメータを調整できます。

    Ckeditor4.Utils.PostBuild_ckconfig (& $config, $params)

    CKEditor.config を ckeditor4 側で管理画面の設定などを元に組み立てたと、第一引数 $config

    を参照渡しで、第二引数 $params を値渡しで受け取ります。

    $config は、CKEditor の config の設定キーが、キーとなった配列です。

    キーを追加したり、特定のキーの値を変更したりできます。

    実際に CKEditor に渡す時に、値が "[" と "]" で囲まれていない場合は、PHP の json_encode() 関数によって

    JSON 形式にエンコードされます。

  • 3d82286: set config.width to parent element width
    • config.width が設定されていない場合に、 TEXTAREA の親要素の幅を config.width に設定するようにした。

      (thx mika)

      ref.

      (www.facebook.com)
  • c363cc1: [template] fix missing style attr
    • XCL 用テンプレートに style 属性を忘れていたのを修正。
  • 64a54c2: Version 0.29
  • 6ec6df1: add more one delegat points for customizing with preload
    Ckeditor4.Utils.PreParseBuild_ckconfig (& $config, $params)

    CKEditor.config を ckeditor4 側で管理画面の設定などを元に組み立てる前に、第一引数 $config
    を参照渡しで、第二引数 $params を値渡しで受け取ります。

    Smarty プラグインで指定した toolbar や管理画面:一般設定の config
    は上書きしません。通常はこのタイミングで問題ありません。

    $config は、CKEditor の config
    の設定キーが、キーとなった配列です。キーを追加したり、特定のキーの値を変更したりできます。

    実際に CKEditor に渡す時に、値が "[" と "]" で囲まれていない場合は、PHP の json_encode() 関数によって
    JSON 形式にエンコードされます。

  • 7f14918: Version 0.30
Page Top

プリロードでの CKEditor の設定変更について anchor.png

Version 0.29 から、プリロードを使って CKEditor.config の設定が行えるようになりました。

これにより、テーマに合わせた CKEditor の config をプリロードと共に配布するなど、様々な用途に使えると思います。

サンプルのプリロードを作ってみました。こんな感じです。

fileCkeditor4CustomConfig.class.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
 * プリロードで ckeditor4 の CKEditor の設定を行うサンプル
 *
 * @author nao-pon
 *
 */
 
if (!defined('XOOPS_ROOT_PATH')) exit();
 
class Ckeditor4CustomConfig extends XCube_ActionFilter
{
    function postFilter() {
        
        // Smarty プラグインがから渡されたパラメタをカスタムする用
        $this->mRoot->mDelegateManager->add('Ckeditor4.Utils.PreBuild_ckconfig', 'Ckeditor4CustomConfig::setParams');
        
        // ckeditor.config をカスタムする用 (Params 解釈前: Smarty プラグインで指定した toolbar や管理画面:一般設定の config は上書きできない)
        $this->mRoot->mDelegateManager->add('Ckeditor4.Utils.PreParseBuild_ckconfig', 'Ckeditor4CustomConfig::setConfig');
        
        // ckeditor.config をカスタムする用 (最終段階: すべての config を上書きできる)
        //$this->mRoot->mDelegateManager->add('Ckeditor4.Utils.PostBuild_ckconfig', 'Ckeditor4CustomConfig::setConfig');
    }
    
    function setParams(& $params) {
        
        // class 名を付加してみる
        $params['class'] .= ' hoge';
        
        // inline style を付加してみる(あんまり意味はないけど)
        $params['style'] .= ';width: 100%;';
        
        // cols, rows を指定してみる(あんまり意味はないけど)
        $params['cols'] = '60';
        $params['rows'] = '30';
        
    }
    
    
    function setConfig(& $config, $params) {
        // CKEditor.config: http://docs.ckeditor.com/#!/api/CKEDITOR.config
        
        if ($params['editor'] === 'bbcode') {
            // BB-Code エディタの場合のツールバーを指定してみる
            $config['toolbar'] =<<< EOD
[
    { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ], items: [ 'Bold', 'Italic', 'Underline', 'Strike' ] },
    { name: 'paragraph', groups: [ 'list', 'indent', 'align' ], items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent' ] },
    { name: 'links', items: [ 'Link', 'Unlink' ] },
    { name: 'others', items: [ '-' ] },
    { name: 'about', items: [ 'About' ] }
]
EOD;
        } else {
            // HTML エディタの場合のツールバーを指定してみる
            $config['toolbar'] =<<< EOD
[
    { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ], items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', 'Styles' ] },
    { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align' ], items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent' ] },
    { name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] },
    { name: 'others', items: [ '-' ] },
    { name: 'about', items: [ 'About' ] }
]
EOD;
        
            // Styles set を設定してみる (http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-stylesSet)
            $config['stylesSet'] =<<< EOD
[
    { name: '強調点', element: 'strong' },
    { name: '重要点', element: 'em', styles: {'color' : 'red'} },
    { name: 'バッチ', element: 'span', styles: {'color': '#FFF', 'background-color': '#808000', 'border': '1px solid #bdb76b', 'border-radius': '6px', 'display': 'inline-block', 'padding': '0px 8px 0 8px', 'white-space': 'nowrap', 'textDecoration': 'none', 'font-family': 'Meiryo', 'margin': '5px' } }
]
EOD;
        }
        
        // 幅を指定してみる
        $config['width'] = '600px';
        
        // その他、ckeditor.config の値を自由に指定できます。
    }
}


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 515, today: 1, yesterday: 0
Princeps date: 2013-01-21 (Mon) 21:12:05
Last-modified: 2013-01-21 (Mon) 22:13:32 (JST) (4342d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
932 人のユーザが現在オンラインです。 (3 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 932

もっと...
サイト情報