xpWikiの書式を他のモジュールでも使えるようにしたなど〜MacOSX自宅サーバ構築その30

昨日に引き続き新しいサイト関連の作業を2件。

urlに必ず含まれる「modules」を別の文字列に置き換える

XOOPS、XCLでは、モジュールにアクセスすると、

XOOPS_ROOT_PATH/modules/xpwiki

と、URLに必ず「modules」が入る。これを任意の文字列に変換するハック。URLがXOOPSっぽくないかんじがするだけだが、それがよくて試してみた。

参照ページはこちら。 感謝  🙂


xpwiki書式を他のモジュールでも使用可とする

pukiwiki書式に慣れてしまうと、htmlはもちろん、XOOPS BBコードも使うのが億劫になる。そこで、他のモジュールでもpukiwiki書式(正確にはxpWiki書式)が使える環境を作ってみた。

Textsanitizerは、このクラスに変更を加えることで、その XOOPS 全体に渡り、テキスト整形のルールを変更することができる。ここではxpWiki のWikiレンダリング機能を使うことで、その環境を実現する。

Textsanitizerのダウンロード

XOOPS2とXOOPS Cube Legacy(XCL)では、ダウンロードするファイルが異なるので、注意が必要。ここでは、当サイトに導入しているXCLでの方法のみ記す。

xpWikiの開発者Nao-ponさんのサイト「XOOPSマニア」のこちらのページから。

  • cube_module.textsanitizer.php
  • SetupHyp_TextFilter.class.php

2つのファイルをダウンロードする。

設定1

cube_module.textsanitizer.php については、「module.textsanitizer.php」とリネームしてXOOPS_ROOT_PATH/classにアップロードする。

このディレクトリには、XOOPS標準の「module.textsanitizer.php」が入っているが、これはアップロードの前に「module.textsanitizer_org.php」とリネームしておいた。

SetupHyp_TextFilter.class.php については、XOOPS_ROOT_PATH/preloadにアップロードする。xpWikiをインストールした際、ディレクトリ名をデフォルトの「xpwiki」以外にした場合は、アップロードの前にファイルの中身を一部変更する。ファイル内の冒頭は下のようになっている

<?php

if (!defined(‘XOOPS_ROOT_PATH’)) exit();

// xpWiki wikirenderer dirctory name
define(‘XPWIKI_RENDERER_DIR’, ‘xpwiki’);

class SetupHyp_TextFilter extends XCube_ActionFilter

この6行目にある「xpwiki」をインストールしたディレクトリ名に変更する。

設定2

Javascriptによる「Wikiヘルパー」(IE と Firefox に対応)をテキストエリアに適用させる場合は、下の2つの方法のいずれかを行う。

  • xpWikiのページ表示ブロックをすべてのページに配置する。
  • (ページ表示ブロックに表示するページは、どのような内容でもOK)

  • テキストエリアのあるモジュールテンプレートを編集し以下のJavascript文を挿入する。
  • <script type=”text/javascript” src=”<{$xoops_url}>/modules/xpwiki/skin/loader.php?src=wikihelper_oader.js”>


(この記事は旧自宅サーバから転載したものです)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus