天天看點

phpwind v9.0二次開發

     phpwind(簡稱:pw)是一個基于PHP和MySQL的開源社群程式,是國内最受歡迎的通用型論壇程式之一。phpwind第一個版本ofstar釋出于2004年。目前phpwind項目品牌由阿裡雲計算有限公司擁有,軟體全面開源免費。現已有累積超過100萬的網站采用phpwind産品,其中活躍網站近10萬。自2011年釋出PHPWind8.x系列版本以來,phpwind圍繞着提升社群内容價值和推進社群電子商務兩個大方向,開發單核心多模式的産品,實作新型的社群形态。今年籌備釋出的phpwind9.0将采用phpwind自主研發的Windframework架構并整合基于阿裡雲雲計算架構的社群雲平台應用中心,将為未來的社群提供更豐富多樣的解決方案。

如何自定義開發PW9.0:

pw采用經典的MVC結構和企業級的分層架構,各個子產品和層次各司其職,耦合性低。下面簡單介紹常用目錄的作用

src/service/用于存放Model類

template/用于存放View類

src/applications/ 用于存放Controller類

M層都有srv,dm,dao等目錄

srv用于存放各種業務邏輯,比如發一個文章,需要各種權限判斷之後才能插入

dm是資料字段映射以及簡單規則判斷,不明白沒關系

dao就是處理增改删查的sql

另外還有一些scv,dm,dao目錄上的獨立檔案,我們稱為資料服務(ds),這是基礎的資料元服務層,相當于dao層的再包裝,隻有ds才能調用dao裡的接口,這麼了解就對了。

1、 建立src/applications/cms/controller/IndexController.php

<?php
Wind::import('LIB:base.PwBaseController');
                                       
class IndexController extends PwBaseController {
                                           
    /**
     * 這是首頁  通過index.php?m=cms通路
     * @see WindController::run()
     */
    public function run() {
        $ds = Wekit::load('cms.PwCms');
        $this->setOutput($ds->get(), 'content');
    }
                                           
    /**
     * 這是内容頁  通過index.php?m=cms&a=read通路
     * Enter description here ...
     */
    public function readAction() {
                                               
    }
                                           
    /**
    * 用于子產品的門戶機制安裝,調試完成後請删除   通過index.php?m=cms&a=setup通路
    */
    public function setupAction() {
        $srv = Wekit::load('design.srv.router.PwDesignRouter');
        $srv->set('cms', 'index', 'run', 'cms首頁');
        $srv->set('cms', 'index', 'read', 'cms閱讀頁','id');  //如果不需要單獨定制閱讀頁樣式(像論壇的版塊頁門戶編輯儲存時的提醒),把id去掉  這裡假設閱讀頁參數為id
        $this->showMessage('success');
    }
                                       
}
?>
           

2、建立 template/cms/index_run.htm,請使用門戶标準模闆,不然進行不了門戶管理

下載下傳位址:http://www.phpwind.net/read/2863370

<!doctype html>
<html>
<head>
<template source='TPL:common.head' load='true' />
</head>
<body>
<pw-start/>
    <div class="wrap">
    <template source='TPL:common.header' load='true' /> <!--如果要使用公共頭部,請加這一行-->
    <div class="main_wrap">
        <pw-navigate/>
        <div class="cc">
            <!-- 網頁設計區域開始 -->
                                 
            <pw-drag id="segment_drag"/>
                                 
            {$content}
            <!-- 網頁設計區域結束 -->
                     
        </div>
    </div>
    <pw-footer/>
    </div>
<script>
Wind.use('jquery', 'global');
</script>
<pw-end/>
</body>
</html>
           

3 建立 src/applications/cms/PwCms.php檔案

<?php
/**
 * 隻有這個檔案,才能使用dao裡的接口,請遵循這個規定
 */
class PwCms {
                   
    public function get() {
        return '我是内容123';
                       
    }
                   
    public function getList() {
        return array(
            1=>array('id'=>123, 'content'=>'我是内容123'),
            2=>array('id'=>124, 'content'=>'我是内容124'),
        );
                       
    }
                   
}
?>
           

浏覽器位址欄輸入http://localhost/index.php?m=cms&a=setup 提示安裝成功

再輸入http://localhost/index.php?m=cms

轉載于:https://blog.51cto.com/webcrawler/1200411