-----是為題
面象對向的三大特點:封裝性、繼承性、多型性,
我們在前面定義一個類的時候,實際上就是把一類事物共有的屬性和行為提取出來,形成一個物理模型(模版),這種研究問題的方法稱為抽象,封裝就是把抽取出來的資料和對資料的操作封裝在一起,資料被保護在內部,程式的其他部分只有被授權的操作(方法)才能對資料進行操作,
-----引子
有人說,人是健忘的,當你遇到困難的時候,如果這個問題涉及到你的環境,你就會想法設法,去解決,絞盡腦汁,或是勞心勞力,最后解決了,往往又會很快拋之腦后,最后上天眷顧,再次降臨,你又會重復上述的步驟,
-----正文
在新專案中,基于一個PHPWind論壇程式,做新功能的添加,PW寫法,相對于當下主流的MVC或是前后端分離,還是有所不同,所系作業起來還是比較費力,做了一個新功能,主要是是模仿前端已經實作的功能,后端給他再添加一個,基本功能都已經實作,但是有一點小小的例外,因為這個設計到前端,而且小白的前端又不是特別好,所以主要是問了以前前端的同事,才把大致功能實作的,
前端會員發表的帖子,后臺在審核的時候,可以對帖子分類和標題進行修改,然后審核通過,原始版本是有審核功能,所以這一般需要新加一個修改帖子內容的功能,帖子的分類還是比較好處理,主要是內容,因為前端是通過一個富文本wysiwyg_editor提交過來的,所以后端當然也是需要如此,:獲取帖子內容,展示在富文本中,管理員可以修改內容及排班,可以預覽,然后OK后提交,修改帖子,
基本實作是,復制了一個前段的富文本模板wysiwyg_editor_admin.htm,然后在修改頁面content.htm加載模板,在后臺content.php中新增模板的必要引數,因為富文本模板之前是在前段所以加入了些js檔案的引入,大致可以達成當下的業務需求,但是在提交的第一版的時候,發現在編輯內容,和預覽內容的時候,內容本身換行后,在切換代碼編輯模式下,便自動生成了換行符號 "<br>”,但是前端沒有如此,雖然當下很難看懂,和說明白這個富文本到底是怎么執行的,業務需要盡快,最好最快的方法當然是找不同,為什么同樣處理一件事情,結果卻不一樣,
這個問題的著手點,一直都沒有頭緒,因為這哥功能,當時覺得比較難以入手,所以找的同事幫忙看的,
在發現這個問題的時候,我心里本身是抵觸的,一方面,這個不大印象使用,業務這樣說了,給了我一個曖昧的心態,不得不說,回過頭來看,這個世界某些事情,不能有曖昧的想法,不然會影響你本來就低的作業能力的發揮,因為曖昧,所以心存僥幸,所以代碼不會很健壯,但是后面,業務說了,還是需要處理,于是問題來了,我需要解決這個不知道從何入手的本來是我自己的問題的問題,
從哪里入手,這個是一個開始,我確實不知道,植物大戰僵尸里面有一句經典名言,腦子是個好東西,確實,我點擊這頁面,看著不同的結果,腦子里面想到了,當時前端幫我處理時說過一句話,這個代碼塊應該是引起 Wind Code模式,和 所見即所得 模式不能切換的問題,
<input type="checkbox" name="atc_convert" id="atc_convert" value="1" checked />Wind Code自動轉換<br />
當時也有一個問題,是代碼模式切換預覽時候,切換沒有效果,后來發現是沒有引入上面的引數設定,于是引入之后就好了,對這里很可疑,我于是想到,于是查看前端這個代碼塊,和后臺這邊的復制的代碼塊,發現對于使用使用html代碼做了一個if判斷,但是我復制的后端沒有,會不會是這里引起的,于是我修改了這部分,發現切換后,對于換行便沒有出現自動填充"<br>"的內容,于是我有點高興,
<!-- EOT; if($gp_htmlcode){print <<<EOT --> <input type="checkbox" name="atc_html" id="atc_html" value="1" $htmcheck /><font face="verdana">使用HTML代碼</font> <!-- EOT; }else{print <<<EOT --> <font face="verdana">HTML 代碼不可用</font> <!-- EOT;
但是很快發現,又有一個新問題,那就是重新編輯內容是沒有問題,如果重繪頁面,使用之前帖子的內容,變還是出現了換行自動補全<br>"的問題,我有點緊張,于是心里想前端和后臺既然內容來自于同一個地方,那為什么顯示回不一樣呢,這,這應該是后端在獲取資料的時候,做了某種處理,因為原始版本這里只是做展示,并沒有修改的功能,所以他的內容應該是有所處理,但是本次修改后,是需要展示原始內容,所以這個格式???
后端的資料的問題,后端,我多么熟悉的地方啊,我的世界,我心想,于是我點擊content.php檔案,查看內容這個欄位,發現確實在這里做了換行處理,于是我注釋掉這行代碼,重繪頁面,
$pw_tmsgs = GetTtable($id); $rt = $db->get_one("SELECT t.tid,t.fid,t.subject,tm.content,tm.ifconvert,t.is_video,t.video_info,t.video_status,t.video_urls,t.is_owner FROM pw_threads t LEFT JOIN $pw_tmsgs tm ON tm.tid=t.tid WHERE t.tid='$id'"); //去掉換行 //$rt['content'] = str_replace("\n","<br>",$rt['content']); //去掉決議 //$rt['content'] = convert($rt['content'],['pic'=>1,'iframe'=>1,'mpeg'=>1,'flash'=>1]);
最后測驗,和前端的功能完整切合,
-----結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14108.html
標籤:其他
下一篇:我的程式人生
