科技

2012年2月14日 星期二

GroupOffice module(Linux)

group office 的預設位置是灌在 /etc/usr/share

而它的模組 也就在/etc/usr/share/groupoffice/modules/

裏面有初始的模組有22個



載入的模組原理
當系統登入時,php 會去 include 所有已裝載的 module 的 class
而規則如下 groupoffice/modules/<module_id>/classes/<module_id>.class.inc.php
也就是後,如果我的 module 是addressbook 那就是addressbook/classes/addressbook.class.inc.php 這個會被加載了!
加載後,系統會去呼叫 class 內的 __on_<event_name> 這個方法是否定義,如果有就會自行執行。

public function __on_load_listeners($events){
        $events->add_listener('user_delete', __FILE__, 'addressbook', 'user_delete');
        $events->add_listener('add_user', __FILE__, 'addressbook', 'add_user');
        $events->add_listener('build_search_index', __FILE__, 'addressbook', 'build_search_index');
        $events->add_listener('check_database', __FILE__, 'addressbook', 'check_database');
    }

上述在 groupoffice 稱為 "事件" event!



group office 是由php所撰寫的

GROUP OFFICE中的Packages:
go-basic
go-basic-exceptions
go-calendar
go-database
go-global
go-html
go-mail
go-utils
go-xml

裏面是package的所包含的php檔
主程式負責載入及移除module的檔案在:

Source Location: /classes/base/modules.class.inc.php


This class is used to install/remove modules and to access module information in other PHP scripts. This class is always available in $GO_MODULES.

  • 增加模組  function add_module($module_id) {

  • 刪除模組   function delete_module( $module_id ) {





模組裡有一堆js檔和些php檔  其中 還有4個資料夾(每個模組不一定)分別是  class theme language install

class: 與主程式(group office)所連結的php檔

theme:是指用到的背景 圖案 及它的網路上的css style

language:為可以使用的語言

install:安/解安裝的資訊與資料庫或更新


而每一個module都有MainPanel.js  若沒有這個檔案 module 則不能運作





試著安裝phpbb3(phpbb3 是安裝於各類型作業平台的問題討論)

直接管理者登入安裝phpbb3

可是找不到url

去groupoffice config.php 加入 $config['phpbb3_url']='http://localhost';
                             或$config['phpbb3_url']='http://localhost/groupoffice';

可是groupoffice還是找不到url  安裝失敗












模組功能影片http://technorati.com/videos/tag/groupoffice
建立一個模組
官方論壇 http://www.group-office.com/forum/


沒有留言:

張貼留言