PHP SMARTY 樣板引擎
一、修改tadtools
- 下載
- 解壓縮,將「ckeditor」、「elFinder」、「jquery」、「bootstrap3」、「upload」複製到 /class 底下
- /class/ck.php
<?php
defined('WEB_URL') || die("WEB root path not defined");
class CKEditor {
public $DirName;
public $ColName;
public $CustomConfigurationsPath;
public $ToolbarSet = "my";
public $Width = '100%';
public $Height = 300;
public $Value;
public $ContentsCss = array();
public $demopublickey = "";
//建構函數
public function __construct($DirName = "", $ColName = "", $Value = "") {
//$xoopsModuleConfig = TadToolsXoopsModuleConfig();
$this->DirName = $DirName;
$this->ColName = $ColName;
$this->Value = $Value;
// if (!empty($xoopsModuleConfig['uploadcare_publickey'])) {
// $this->set_demopublickey($xoopsModuleConfig['uploadcare_publickey']);
// }
}
//設定自定義設定檔
public function setCustomConfigurationsPath($path = "") {
$this->CustomConfigurationsPath = $path;
}
//設定自定義工具列
public function setToolbarSet($ToolbarSet = "") {
$this->ToolbarSet = $ToolbarSet;
}
//設定自定義設寬度
public function setWidth($Width = "") {
$this->Width = $Width;
}
//設定自定義設高度
public function setHeight($Height = "") {
$this->Height = $Height;
}
//新增樣式
public function setContentCss($ContentsCss = "") {
$this->ContentsCss[] = $ContentsCss;
}
public function set_demopublickey($demopublickey = "") {
$this->demopublickey = $demopublickey;
}
//產生編輯器
public function render() {
global $xoTheme;
$_SESSION['DirName'] = $this->DirName;
// before being fed to the textarea of CKEditor
$content = str_replace('&', '&', $this->Value);
$content = str_replace('[', '[', $content);
$other_css = '';
if ($this->ContentsCss) {
$other_css = ",'" . implode("','", $this->ContentsCss) . "'";
}
$editor = "
<script type='text/javascript' src='" . WEB_URL . "/class/ckeditor/ckeditor.js'></script>
<textarea name='{$this->ColName}' id='editor_{$this->ColName}' class='ckeditor_css'>{$content}</textarea>
<script type='text/javascript'>
CKEDITOR.replace('editor_{$this->ColName}' , {
skin : 'moono' ,
width : '{$this->Width}' ,
height : '{$this->Height}' ,
language : 'zh-TW' ,
toolbar : '{$this->ToolbarSet}' ,
contentsCss : ['" . WEB_URL . "/class/bootstrap3/css/bootstrap.css','" . WEB_URL . "/class/ckeditor/plugins/fontawesome/font-awesome/css/font-awesome.min.css'{$other_css}],
extraPlugins: 'syntaxhighlight,oembed,eqneditor,imagerotate,fakeobjects,widget,lineutils,widgetbootstrap,widgettemplatemenu,pagebreak,fontawesome,codemirror,quicktable',
filebrowserBrowseUrl : '" . WEB_URL . "/class/elFinder/elfinder.php?type=file&mod_dir=" . $this->DirName . "',
filebrowserImageBrowseUrl : '" . WEB_URL . "/class/elFinder/elfinder.php?type=image&mod_dir=" . $this->DirName . "',
filebrowserFlashBrowseUrl : '" . WEB_URL . "/class/elFinder/elfinder.php?type=flash&mod_dir=" . $this->DirName . "',
filebrowserUploadUrl : '" . WEB_URL . "/class/upload.php?type=file&mod_dir=" . $this->DirName . "',
filebrowserImageUploadUrl : '" . WEB_URL . "/class/upload.php?type=image&mod_dir=" . $this->DirName . "',
filebrowserFlashUploadUrl : '" . WEB_URL . "/class/upload.php?type=flash&mod_dir=" . $this->DirName . "',
qtRows: 10, // Count of rows
qtColumns: 10, // Count of columns
qtBorder: '1', // Border of inserted table
qtWidth: '100%', // Width of inserted table
qtStyle: { 'border-collapse' : 'collapse' },
qtClass: 'table table-bordered table-hover table-condensed', // Class of table
qtCellPadding: '0', // Cell padding table
qtCellSpacing: '0', // Cell spacing table
qtPreviewBorder: '1px double black', // preview table border
qtPreviewSize: '15px', // Preview table cell size
qtPreviewBackground: '#c8def4' // preview table background (hover)
} );
</script>
<script>CKEDITOR.dtd.\$removeEmpty['span'] = false;</script>
";
return $editor;
}
}
/*
$DirName = "prod";
mk_dir(WEB_PATH . "/uploads/{$DirName}");
mk_dir(WEB_PATH . "/uploads/{$DirName}/image");
mk_dir(WEB_PATH . "/uploads/{$DirName}/flash");
include_once WEB_PATH . "/class/ck.php";
$fck = new CKEditor($DirName, "content", $row['content']);
$fck->setHeight(350);
$row['content'] = $fck->render();
*/
- /class/upload.php
<?php
//此檔案是給 ck.php 用的,勿刪
require_once dirname(dirname(__FILE__)).'/head.php';
include_once dirname(__FILE__)."/upload/class.upload.php";
$mdir = $_SESSION['DirName'];
$path = WEB_PATH . "/uploads/{$mdir}/{$_GET['type']}/";
$url = WEB_URL . "/uploads/{$mdir}/{$_GET['type']}/";
$type_arr = array('image', 'file', 'flash');
//判斷是否是非法調用
if (empty($_GET['CKEditorFuncNum'])) {
mkhtml(1, "", "error");
}
$fn = $_GET['CKEditorFuncNum'];
if (!in_array($_GET['type'], $type_arr)) {
mkhtml(1, "", "error");
}
$foo = new Upload($_FILES['upload']);
if ($foo->uploaded) {
// save uploaded image with no changes
$foo->Process($path);
if ($foo->processed) {
$msg = $url . $_FILES['upload']['name'];
mkhtml($fn, $msg);
} else {
$msg = 'error : ' . $foo->error;
mkhtml($fn, "", $msg);
}
}
function mkhtml($fn, $fileurl, $message)
{
$str = '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction(' . $fn . ', \'' . $fileurl . '\', \'' . $message . '\');</script>';
exit($str);
}
- 將 /class/elFinder/ 「$LANGCODE = str_replace("-", "_", _LANGCODE); 」替換成 「$LANGCODE = "zh_TW";」
- 將 /class/elFinder/ 「include_once $GLOBALS['xoops']->path('/modules/system/include/functions.php');」替換成 「」
- 將 /class/elFinder/ 「../../../mainfile.php」替換成 「../../head.php」
- 將 /class/elFinder/ 「$xoopsUser」替換成 「$_SESSION['isAdmin']」
- 將 /class/elFinder/ 「$_SESSION['xoops_mod_name']」替換成 「$_SESSION['DirName']」
- 將 /class/elFinder/ 「XOOPS_ROOT_PATH」替換成 「WEB_PATH」
- 將 /class/elFinder/ 「XOOPS_URL」替換成 「WEB_URL」
- 將 /class/elFinder/ 「/modules/tadtools」替換成 「/class」
- sqlConfig.php
<?php
#取得檔案所在目錄:dirname(__FILE__);
#取得檔案上層目錄:dirname(dirname(__FILE__));
#取得檔案上二層目錄:dirname(dirname(dirname(__FILE__)));
require_once dirname(dirname(dirname(__FILE__))).'/sqlConfig.php';
- 完成下載 :請下載至專案目錄並解壓縮覆蓋