ThinkPHPにおけるFFC Keditorエディタの使い方

4483 ワード

また、直接アップロードとajaxの2つの方法でコンテンツを処理することができます。fckeditorが成功していない仲間にいくつかのインスピレーションと助けを与えるために、私の経験と体験を下記のように説明します。応用目的:FCKeditorエディタをThinkphpに統合して、Wordを編集するようにユーザーがオンラインで発表される文字と画像を処理することができます。アプリケーションソフトウェアと環境:apacheサーバ2.0以上のバージョン、PHPバージョン5.0以上、mysql 5.0以上;Thinkphpバージョンは1.5以上で、Fckeditorバージョンは2.xです。アプリケーションステップ:1、FCIKeditor 2.xバージョンをダウンロードし、解凍後のフォルダFCI KeditorをThinkPHPフォルダ下のVendorディレクトリにコピーし、THinkPHPのサードパーティクラスに適合するようにします。2、パラメータを修正する:まず、EditPlusなどのソフトでFKeditorディレクトリのfckeditorを開きます。php 5.phpファイルで、130行目を見つけました。
 
public function __construct( $instanceName )
{$this->InstanceName = $instanceName ;
$this->BasePath= ' ' ;
$this->Width = '900′;
$this->Height = '400′;
$this->ToolbarSet = 'Default' ;
$this->Value = ' ';
$this->Config = array() ;
}
public function __construct( $instanceName ){$this->InstanceName = $instanceName ;
$this->BasePath = '/bm/ThinkPHP/Vendor/FCKeditor/' ;$this->Width = '900′;$this->Height = '400′;
$this->ToolbarSet = 'Default' ;$this->Value = ”;
の中で最も重要なのはBasepathを設定することです。中に書いてあるのはfckeditorです。php.5 phpファイルは、ウェブサイトのルートディレクトリに対するパスです。これはFC Keditorエディタのルートディレクトリに対するパスを特徴づけるためのものです。例えばサーバーの文書のルートディレクトリの最下位はhttocs/またはwww/プロジェクト名はプロジェクトで、プロジェクトフォルダの下にはThinkphpシステムのファイルパッケージとプロジェクトのファイルパッケージmyapがあります。また、サーバーがこのプロジェクトに仮想ホストを設定していない場合、文書のルートディレクトリはwww/またはhttdocs/であるなら、$this->BasePath='/project/ThinPHP/Vendor/FCIKeditor/';仮想ホストが設定され、プロジェクトが仮想の文書ルートディレクトリになり、あるドメイン名を通じて直接ウェブサイトのプロジェクトにアクセスできるようになると、この時は$this->BasePath='/ThinPHP/Vendor/FCIKeditor/';他のパラメータは幅や高さなどは記入できますか?記入しないとエディタのデフォルトの高さと幅です。Instance Nameはエディタがあるタグのidとnameです。この時は気にしないでください。他のパラメータも気にしないでください。次に、FFC Keditor\editor\filemanager\connectors\php\の下でconfig.phpファイルを見つけて、それを開けて、30と34行を見つけます。書き換えが必要なパラメータは以下の通りです。Config['UserFiles Path'=''このうち、最初のパラメータはtrueに設定します。デフォルトはtrueです。2番目のパラメータはファイルをアップロードする経路です。例えば、表示する画像などです。私たちはprojectディレクトリの下でuplloadsフォルダを作成します。その後、Config['UserFiles Path']='/project/uplloads/';パス規則は前のbasepathと同じです。プロジェクトが仮想文書のルートディレクトリなら、Config['UserFiles Path'='/uplloads/'です。3、アプリケーション:たとえばmyapプロジェクトのLibディレクトリ下のIndexAction.class.phpコントローラ類のindex方法では、このプログラムにアクセスすると、出力されたテンプレートページにフォームがあり、ユーザーに文章の入力を要求すると、エディタ.コードの例では、fckeditorに関するコードのみを表示し、他のコードは省略されます。まずサーバプログラムです。
 
public function index()
{……//
vendor(“FCKeditor.fckeditor”);// FCKeditor ,TP , vendor 。
$editor= new FCKeditor(); // FCKeditor
$editor->Width='980′;// 。 , 。
$editor->Height='400′;// 。 , 。
$this->Value=”;// 。 。 。
$editor->InstanceName='comment';// id name, <input> id name。
// comment. , 。 , $_POST['comment'] 。
$html=$editor->Createhtml();// html , $html.
$this->assign('html',$html);// $html $html. {$html} 。
…….// , 。
}
は対応するhtmlテンプレートであるindexファイルです。必要なところにエディタを差し込むだけでいいです。他のコードは一般の
と同じです。C他のコードC>
//actionにフォーム処理プログラムを記入します。APP__/u/Index/check'IndexActionクラスでのcheck()方法を指して、提出されたフォームデータを処理する。
 
<table style=”width:100%;”>
<tr>
<td style=”text-align:left;”> :
</td>
</tr>
……//
<tr>
<td > {$html}</td>
</tr>
<tr>
<td><input type=”submit” value=” ” >
</td>
</tr>
</table>
</form>
</div>
ここに来て、もう使えます。フォーム処理プログラムでは、フォーム要素を通常処理するようにすればいいです。しかし、プロジェクトが移植されると、アップロードされた画像などのリンク経路が誤ってコンパイルされ、画像などが正しく表示されなくなることがあります。通常は二重引用符解析エラーです。まだ解決していません。エラーがないようにするには、ajaxでフォームデータを処理することができます。しかし、ajax処理を行う前に、エディタの値をjsコードでフォームに割り当てます。nameはinstacenameの値のフォーム要素です。例えば、本例ではajaxでフォームを処理するためには、indexテンプレートファイルの中でフォーム処理前に実行しなければならないjsコードの一部は、……//その他のjsコードvar editoAPI.GetInstance('comments')/////コメントは、設定されたinstance Name値です。document.com.mment.value=editor.Editodocument.body.innersHTML;エディタの内容を処理したソースコード/割り当てをcommentformフォームのコメント属性要素の値にします。その他のjsコードの注:個人はxajaxが比較的に悪くないと思って、ただ主要な精力を舞台裏のプログラムの上で使うだけ必要があります。私もxajaxでデータ処理します。フロントコードは簡単です。