透過對ThinkCMF的框架的學習,這次的內容是在框架自帶的門口那個模組下面,Portal下面
我們知道後台編輯文章對應的是AdminPost 下面的add.html
首先我們去改add.html介面
首先我們需要的是去看懂它的表單提交和跳轉是怎麼設定的
:{u ('AdminPost/add_post')}"
或是:href="{:U('AdminPost/index')}"
或:href="{:U('AdminPost/add' ,array('term'=>empty($term['term_id'])?'':$term['term_id']))}"
前面對ThinkCMF框架結構的學習我們知道,對應的add_post 這個方法一定是在application的控制器Controller下面的AdminPostController.class.php裡面定義的
當然模組應該是Portal下面的,這是表單提交的,也就是把事情放在裡面的各個輸入框,富文字編輯器裡面的東西都提交給這個方法處理了
我現在新建了一張表,裡面就是專門來放文章的各個來源
對應的資料庫是這樣的,當然資料庫外鍵什麼的就先忽略,因為目前只是學習不需要記錄是誰發的這個文章等userid什麼的
CREATE TABLE `zhuanti`(
id int unsigned not null primary key auto_increment
type enum('travel','hotel','food') not null default 'travel' COMMENT '類型',
title varchar(35) not null default '' COMMENT '標題',
not null default '0' COMMENT '推薦',
istop tinyint not null default '0' COMMENT '置頂',
pubdate varchar(50) not null default '0' COMMENT '發佈時間' keywords varchar(50) not null default '' COMMENT '關鍵字',
com_source varchar(50) not null default '' COMMENT '機構來源',
zhuanti_content varcharl 50專題內容',
imgsrc varchar(500) not null default '' COMMENT '圖片地址',
picdomain varchar(500) not null default '' COMMENT '前圖片圖片* =UTF8;
後台發布文章對應的介面如下圖:
因為我的程式設計很明確,只要富文本的編輯器的頁面,而且傳給android段的是一個html地址,用webview打開的,
然後把 ThinkCMF的驗證都去掉,那個東西目前還麼研究,只要這個表單就行
接下來就是需要去重寫 add_post方法了
<span style="font-size:18px;"><strong> public function add_post(){ if (IS_POST) { $data['pubdate'] = $_POST['post']['pubdate']; $data['istop'] = $_POST['post']['istop']; $data['recommended'] = $_POST['post']['recommended']; $data['title'] = $_POST['post']['title']; $data['keywords'] = $_POST['post']['keywords']; $data['com_source'] = $_POST['post']['com_source']; $data['zhuanti_content'] = $this->getHTMLurl(); $data['type'] = $_POST['type'][0]; $data['imgsrc'] = implode('|',$_POST['photos_url']); $m = M('Zhuanti'); if($id = $m->data($data)->add()){ // insert into zhuanti (bupdate,istop...)values(值); $this->success('添加成功'); exit(); } $this->error('添加失败 : '.$m->getError()); } }</strong></span>這裡面只關心兩個東西,
$5[]]$] ();這個裡面回傳的就是content對應的html位址
$data['imgsrc'] = implode('|',$_POST['photos_url']);這個是把多張圖放在一個字串裡面
自訂的方法是下面這樣的
<span style="font-size:18px;"><strong> private function getHTMLurl(){ $content = $_POST['post']['content']; $src = './tpl/html/'.time().'.html'; file_put_contents($src, $content); return $src; }</strong></span>
這裡這裡簡單了,還需要優化的
<span style="font-size:18px;"><strong> file_put_contents($src, $content);</strong></span>
<span style="font-size:18px;"><strong> </strong></span>
<span style="font-size:18px;"><strong>到这里还没有结束,是会报错的,因为html是需要前台显示的,也就是那个html是见在tpl下面的,那么在application的控制器里面必须要建立一个控制器了</strong></span>
<span style="font-size:18px;"><strong> </strong></span>
<span style="font-size:18px;"><strong><?php namespace Portal\Controller; use Common\Controller\HomeBaseController; class PostController extends HomeBaseController{ public function getHTML(){//这里随便取个什么名字的,无所谓, </strong></span>
<span style="font-size:18px;"><strong>}</strong></span>
<span style="font-size:18px;"><strong>}</strong></span>
<span style="font-size:18px;"><strong> </strong></span>
<span style="font-size:18px;"><strong>就这样结束了,然后是后台接口的编写了,这里先不介绍了</strong></span>版權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了PHP學習---如何把富文本編輯器裡面的內容產生html 傳回給android客戶端,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。