php+smarty輕鬆開發微社區/微論壇

来源:https://www.cnblogs.com/zerofc/archive/2018/04/03/8710193.html
-Advertisement-
Play Games

今天我們就來分析微社區的基本功能構成吧。首先,每個論壇最主要的是會員在對應的版塊下發帖,或者在感興趣的主題帖下跟帖蓋樓。其次,會員能時時看到帖子或版塊的基本信息。所以主要大塊是: 前臺:會員的註冊登錄,瀏覽版塊,發帖,跟帖,對自己的帖子操作,回覆別人的帖子 後臺:管理員對版塊進行分級管理,添加或修改 ...


今天我們就來分析微社區的基本功能構成吧。首先,每個論壇最主要的是會員在對應的版塊下發帖,或者在感興趣的主題帖下跟帖蓋樓。其次,會員能時時看到帖子或版塊的基本信息。所以主要大塊是:

 

  1. 前臺:會員的註冊登錄,瀏覽版塊,發帖,跟帖,對自己的帖子操作,回覆別人的帖子

  2. 後臺:管理員對版塊進行分級管理,添加或修改刪除,對會員管理等等

 

微社區的幾個主要功能:

 

一.人員

1.管理員:論壇後臺的版塊添加,刪除等其他管理操作

2.會員:論壇前臺的瀏覽,發主題帖子或回覆別人的帖子(需要在指定版塊下)

 

二.版塊

有後臺管理人員發佈整理論壇的版塊,發佈者是分區版主,發佈的同時可以添加增加當前版塊的副版主

 

三.帖子:帖子就是內容,選在一個版塊下由會員發表。

1.主題帖:會員個人在某版塊下發佈的(作者就是發帖人)

2.回覆帖:會員本人在別人發佈主題帖下的評論(蓋樓)。其中一樓(沙發),二樓(板凳),三樓(地板)

 

四.驗證題

為了防止發帖機或者惡意註冊和發帖的程式,使用隨機題目答題才能進行發帖提交到庫,比隨機圖片稍微安全(因為現在有很多圖片識別技術,所以需要手動更好點)

 

五.上傳文件

發帖中的圖片或者會員的頭像上傳等等。

 

六.帖子類別

1.原創

2.轉帖

3.分享

4.求助

5.活動

 

 

 

微社區資料庫模

1.board:版塊(id,pid,name,desc,uid,moderator,vice_moderator,add_time)

2.posts:帖子(id,bid,mid,uid,turn_id,type_id,title,content,tags,hits,source,is_essence,ip,add_time,is_remommed)

3.verify:驗證題(id,question,type,answer1,answer2)

4.file:文件(id,uid,post_id,type,size,add_time)

5.user:人員(id,user,pwd,nickname,login_count,last_login_ip,last_login_time,state)

6.post_type:帖子類別(id,cate_name,state)

 

 

 

後臺管理模塊

1.版塊管理(列表,添加,修改,刪除)

2.帖子審核(前臺會員請求加精,後臺人員審核)

 

 

前臺管理模塊

1.帖子管理(會員只能對自己的帖子進行修改或刪除[可能可以對別人的帖子進行回覆])

2.帖子發佈(選擇一個版塊,再選擇一種帖子類別,寫標題,標簽,內容,和回答問題即可提交)

 

 

 

基本頁面

1.index主頁:以所有一級版塊下的子版塊迴圈列表,接受一個一級版塊id展示其下的所有子版塊的基本信息(版塊名,版主,副版主,今日新帖,主題帖數,總帖數,最後更新的帖子信息(會員名,標題,時間等))

2.forumdisplay進入二級版塊頁面:通過接受二級版塊id展示下麵所有主題帖子(基本信息是:主題帖名稱,作者,跟帖數/訪問數,最後更貼的信息(時間,是誰)),分頁顯示,嵌入發帖的編輯框和一個發帖調轉單獨按鈕

3.post發新帖表單單獨頁面

4.viewthread進入主題帖的詳情頁面,現在主題帖子和下麵所有跟帖及會員的基本信息(頭像|昵稱|主題帖|共發帖)

5.admin後臺管理頁面:負責添加版塊,修改,刪除等

………………

 

 

公共類

1.cls_mysql:php操作mysql的基本方法

2.cls_content:對帖子的列表,添加,刪除,修改等操作的方法

3.cls_board:對版塊的顯示,修改,添加,刪除等操作方法

 

 

包含文件

1.inc.php:包含smarty,三個公共類,config配置文件,進行實例化三個公共類及模板引擎的配置

 

 

配置文件

1.config.php: 資料庫基本設置

 

 

 

頁面數據塊

1.二級版塊頁面:從主頁的頂級版塊下點擊二級版塊名進入,帶當前二級版塊id

基本構成:

(1).當前版塊名

(2).當前版塊的版主和副版主們

(3).羅列當前版塊下的所有主題帖子:

a.可根據帖子類別篩選(預設全部[1.討論 2.原創 3.轉載 4.求助])

b.類表可以分頁

(4).在當前版塊下發佈帖子的表單

 

當前版塊下主題帖欄位:

(1).主題帖子的標題

(2).主題帖的發佈者及他的最後登錄時間

(3).該主題帖的跟帖數量和訪問數量

(4).該主題帖子最後跟帖(跟帖時間,跟帖網友昵稱)

2 .………………

 

--- 待續 ---

這個目前沒有使用任何框架,原生php外加一個模板引擎製作,代碼相對比較簡單,方便閱讀,就是自己封裝了幾個操作類和一個原生ajax函數,其他的基本是業務增刪改查,後期我會放在github上,請持續關註此公眾號,後面我會把開源地址奉上,共同學習成長!

 

以下個人公眾號(ZEROFC_DEV)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目前電腦配置:Ubuntu 16.04 + GTX1080顯卡 配置深度學習環境,利用清華源安裝一個miniconda環境是非常好的選擇。尤其是今天發現conda install -c menpo opencv3 一句命令就可以順暢的安裝上opencv,之前自己裝的時候也遇到了很多錯誤。conda ...
  • 1. # cd /usr/local/src 2. # tar -zxvf redis-3.0.6.tar.gz 3. # cd redis-3.0.6 4.# make 5.# make PREFIX=/usr/local/redis install 6.cd /usr/local 有redis目 ...
  • 一、以單機模式啟動成員節點 有時候出於維護的需要,需要以單機模式啟動某個節點而不是一個副本集成員身份。 1).首先查詢伺服器命令行參數 2).關閉當前副本 3).以單機模式啟動副本 這裡需要指定副本原先的db路徑,為了避免可能的其它連接這裡可以指定一個新的port啟動;也可以直接使用原先的配置文件啟 ...
  • 1、如果要實現文件的拖放就必須安裝lrzsz 2、解壓(看命令就可以) 3、刪除一些不必要的文件 4、修改配置文件 ...
  • 1、修改本機上的YUM源配置文件,將源指向自己 cd /etc/yum.repos.d/ 備份原有的YUM源的配置文件 rename .repo .repo.bak * rename CentOS-Media.repo.bak CentOS-Media.repo * 修改配置文件 2、掛載光碟 在m ...
  • 一、storm何許人也?Storm 是Twitter的一個開源框架。Storm一個分散式的、容錯的實時計算系統,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType開發的實時處理系統,BackType現在已在Twitter麾下。GitH ...
  • 問題: 127.0.0.1:6379> set name 張泰松OK127.0.0.1:6379> get name"\xe5\xbc\xa0\xe6\xb3\xb0\xe6\x9d\xbe"set name 是中文,但 get 出來的卻不是中文 解決辦法: 127.0.0.1:6379> quit ...
  • 本文目錄:1.創建存儲過程、函數 1.1 存儲過程的IN、OUT和INOUT2.修改和刪除存儲過程、函數3.查看存儲過程、函數信息 在MySQL/MariaDB中,存儲過程(stored procedure)、存儲函數(stored function)、觸發器(trigger)、事件(event)統 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...