hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » xpwiki » calendar xpWiki開発日記/2006.10
Archives
2006
1 2 3 4 5 6 7 8 9 10 11 12
2007
1 2 3 4 5 6 7 8 9 10 11 12
2008
1 2 3 4 5 6 7 8 9 10 11 12
2009
1 2 3 4 5 6 7 8 9 10 11 12
2010
1 2 3 4 5 6 7 8 9 10 11 12
2011
1 2 3 4 5 6 7 8 9 10 11 12
2012
1 2 3 4 5 6 7 8 9 10 11 12
2013
1 2 3 4 5 6 7 8 9 10 11 12
2014
1 2 3 4 5 6 7 8 9 10 11 12
2017
1 2 3 4 5 6 7 8 9 10 11 12
<< 2006.10 >>
[xpWiki開発日記]
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 25 26 28
       
 

メモ anchor.png Edit

Page Top

プラグイン追加 anchor.png Edit

プラグインから独自CSSの読み込みの仕組みが必要だな。考えよう。

Page Top

Ver 0.4.0 anchor.png Edit

  • Ver 0.3 以降からの html側 の変更内容は、skin/pukiwiki/pukiwiki.skin.php のみ。
Page Top

コメント anchor.png Edit



 
Tag: trust

Ver 0.4.1 anchor.png Edit

Page Top

メール送信をXOOPSにマッチング anchor.png Edit

メール送信について、XOOPSのメール送信機能を使うようにしました。

html側/private/ini/pukiwiki.ini.php に

1
2
// Send mail per update of pages
$root->notify = 1;

を書き加えるだけで、ページ更新時に管理者宛にメールが送信されます。

Page Top

コメント anchor.png Edit



 

Ver 0.5.0 anchor.png Edit

Page Top

html側更新 anchor.png Edit

  • 更新したのは skin ディレクトリ以下のみです。

css と js および画像ファイルの読み込みをする loader.php を追加しました。

プラグインからも動的に読み込みを指定することができます。

基本的に、プラグイン側でデフォルトとして用意するファイルは、trust側の skin/js, skin/css, skin/image/gif, skin/image/png に置きます。

プラグイン内から呼び出す場合は、次のようにします。

1
2
3
4
5
6
7
8
9
$url = $this->cont['HOME_URL'].'skin/loader.php?type=png&amp;src=code_dot'; // 画像のURL
$this->root->head_pre_tags[] = // code.css 読み込みタグを <HEAD> 内 ($head_pre_tag) に出力
    '<link rel="stylesheet" type="text/css" media="screen" href="'.
    $this->cont['HOME_URL'].
    'skin/loader.php?type=css&amp;src=code" />';
$this->root->head_tags[] = // code.js 読み込みタグ を <HEAD> 内 ($head_tag) に出力
    '<script type="text/javascript" src="'.
    $this->cont['HOME_URL'].
    'skin/loader.php?type=js&amp;src=code"></script>';
Page Top

trust側 anchor.png Edit

  • code.inc.php, pre.inc.php 追加。
    • PukiWikiMod の <<< .... >>> の代用として。
  • tag.inc.php
    • 必要に応じて、tagcloud 用 CSS を読み込むようにした。
  • attach.inc.php
    • 将来の拡張を見据えて、ファイル所有者情報を保存するようにした。
  • calendar_viewer.inc.php
    • タイトルのリンクを編集からページ表示に変更し、[編集]リンクを追加。

など。

Page Top

ToDo anchor.png Edit

  • ページ毎の閲覧・編集権限の実装
  • パラグラフ(段落)単位の編集 (とりあえず完了)
    • Ajax を使ってシームレスにできたら最高なんだけど・・・
Page Top

コメント anchor.png Edit



 

Ver 0.5.1 anchor.png Edit

Page Top

コメント anchor.png Edit



 

Ver 0.5.2 anchor.png Edit

XOOPSのモジュール間通信の方法の一つとして、プラグイン型があります。 例えば、はっぴぃ・りなっくす さんの 新着情報(What's New) モジュール 2.xxです。

それらのプラグインは常時必要ではないので必要な時にのみ読み込む仕組みが必要だと考えました。そこで、XpWikiオブジェクトを拡張する形で、動的にエクステンションを読む方法にしてみました。

各エクステンションは TRUST_PATH/modules/xpwiki/class/extension ディレクトリに置きます。

そして、必要な時に XpWikiオブジェクトのインスタンスを作成後に読み込みます。

例えばこんな感じで。

1
2
3
4
5
6
7
8
9
    // 必要なファイルの読み込み
    $mytrustdirpath = dirname(dirname( __FILE__ )) ;
    include_once "$mytrustdirpath/include.php";
    
    // XpWiki オブジェクト作成
    $xpwiki = new XpWiki($mydirname);
    
    // whatsnew extension 読み込み
    $xpwiki->load_extensions("whatsnew");
Page Top

これを利用した What's Newプラグイン 用エクステンションは、次のようになります。 anchor.png Edit

xpWiki を modules/xpwiki ディレクトリにインストールしているとします。違うディレクトリにインストールしている場合は、赤字の部分のみ変更すればOK。(要するにプラグインの置き場所を変えるだけです。)

Page Top

エクステンション anchor.png Edit

  • trust側/modules/xpwiki/class/extension ディレクトリに配置します。
filewhatsnew.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//
// Created on 2006/10/29 by nao-pon http://hypweb.net/
// $Id: whatsnew.php,v 1.1 2006/10/30 03:01:48 nao-pon Exp $
//
 
class XpWikiExtension_whatsnew extends XpWikiExtension {
 
// $this->xpwiki : Parent XpWiki object.
// $this->root   : Global variable.
// $this->cont   : Constant.
// $this->func   : XpWiki functions.
 
    function get ($limit, $offset) {
 
        $i    = 0;
        $ret  = array();
        $desc = '';
    
        $recent_dat  = $this->cont['PKWK_MAXSHOW_CACHE'];
        $recent_line = @file($this->cont['CACHE_DIR'] . $recent_dat);
        $recent_arr  = array_slice($recent_line, 0, $limit);
        
        foreach($recent_arr as $line) {
            list($time, $base) = explode("\t", trim($line));
            $localtime = $time + ($this->cont['ZONETIME']);
    
            $ret[$i]['link']  = $this->root->script."?".rawurlencode($base);
            $ret[$i]['title'] = $base;
            $ret[$i]['time']  = $localtime;
            
            // 指定ページの本文取得
            $page = new XpWiki($this->root->mydirname);
            $page->init($base);
            $page->execute();
            $desc = $page->body;
    
            $ret[$i]['description'] = $desc;
            $i++;
        }
        return $ret;
    }
}
?>
Page Top

プラグイン anchor.png Edit

  • html側/modules/whatsnew/plugins/xpwiki ディレクトリに配置します。
filedata.inc.php
1
2
3
4
5
6
7
8
9
<?php
 
if( ! defined( 'XOOPS_TRUST_PATH' ) ) die( 'set XOOPS_TRUST_PATH into mainfile.php' ) ;
 
$mydirname = basename( dirname( __FILE__ ) ) ;
 
require XOOPS_TRUST_PATH.'/modules/xpwiki/include/whatsnew.inc.php' ;
 
?>
Page Top

プラグインの実体 anchor.png Edit

  • trust側/modules/xpwiki/include ディレクトリに配置します。
filewhatsnew.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//
// Created on 2006/10/29 by nao-pon http://hypweb.net/
// $Id: whatsnew.inc.php,v 1.1 2006/10/30 03:01:48 nao-pon Exp $
//
 
// DIRNAME_new() 関数を動的に生成
eval( '
 
function '.$mydirname.'_new( $limit=0, $offset=0 )
{
    return xpwiki_whatsnew_base( "'.$mydirname.'" , $limit, $offset ) ;
}
 
' ) ;
 
 
// DIRNAME_new() 関数の実体
function xpwiki_whatsnew_base( $mydirname, $limit, $offset ) {
 
    // 必要なファイルの読み込み
    $mytrustdirpath = dirname(dirname( __FILE__ )) ;
    include_once "$mytrustdirpath/include.php";
    
    // XpWiki オブジェクト作成
    $xpwiki = new XpWiki($mydirname);
    
    // whatsnew extension 読み込み
    $xpwiki->load_extensions("whatsnew");
    
    // 初期化
    $xpwiki->init();
    
    // whatsnew データ取得
    return $xpwiki->extension->whatsnew->get ($limit, $offset);
}
?>
Page Top

コメント anchor.png Edit

  • まずは、XOOPSのグローバル検索, piCalプラグインのエクステンションを作成予定です。 :) -- nao-pon 2006-10-30 (月) 13:57:49


 

Ver 0.5.3 - 5 anchor.png Edit

HTMLコンバート結果をキャッシュする仕組みを追加しました。

キャッシュが効いた場合、かなりの速度アップが見込めます。

pukiwiki.ini.php にその設定項目を追加しました。

1
2
3
4
/////////////////////////////////////////////////
// ページキャッシュの設定 (ゲストアクセス時のみ)
// ページキャッシュを最長何分間するか?
$this->root->pagecache_min = 0;
Page Top

コメント anchor.png Edit

  • PukiWikiModのページがそのままインポートできるか、データ互換だといいですね。 -- Harry編集 2006-11-15 (水) 12:57:31
    • PukiWikiMod は PukiWiki 1.3ベース、xpWikiPukiWiki 1.4 ベースなので、Wiki記法が若干違うことと、ページ情報の保存形式を変えたので、データ互換ではないですがインポート機能をつける予定はあります。 :) -- nao-pon 2006-11-15 (水) 22:11:07



トップ 印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
オンライン状況
472 人のユーザが現在オンラインです。 (7 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 472

もっと...
サイト情報