スタッフブログ

  • カテゴリ XOOPS の最新配信
  • RSS

当サイトをTOKYOPenにアップグレードしました。

Ryuji : XOOPS » 総合的な情報 2012/1/13 13:39

Blogger's Avatar

これまでXOOPS Cube Legacy2.1.xを使っていたのですが、先ほど当社で開発中のTOKYOPenにアップグレードしました。

TOKYOPenはもともとXOOPS Cube Legacy2.1系をベースに開発されたホダ塾ディストリビューションがベースになっているため、それほど苦労することなくアップグレードできました。

いくつか発生した問題をメモ的にかいておきますと
・日本語がEUC-JPで直書きされてて文字化け→文字コード変換
・Smartyプラグインが見つからなくて真っ白→html/class/smarty/pluginに追加してたプラグインをxoops_trust_path/libs/smartypluginsへ移動
というあたりがメインでしたね。

TOKYOPenは自分たちで開発してるので、できて当たり前といえば当たり前ですが、エラーメッセージを見ながらひとつひとつ対処してけばちゃんと動くようになってよかったです。

XOOPS Cube Legacy2.1ベースのCMS「TOKYOPen」開発中です!

Ryuji : XOOPS » 総合的な情報 2011/10/25 17:13

Blogger's Avatar

現在、RYUSではXOOPS Cube Legacy2.1をベースにして、あらたなCMS「TOKYOPen」を開発しています。

TOKYOPen

先週開催されたXOOPS Cubeサタデーラボでデモを少しみなさんに見てもらったのですが、わりと好評だったようで、さらに開発がんばっていこうとおもってるところです。

このTOKYOPenについての情報は主にfacebookやtwitterで公開することが多いと思いますので、是非facebook, twitterもチェックしてくださいね。

TOKYOPen facebookページ
TOKYOPen twitter

XOOPSサイト大解剖! #002 サイクルベース名無し

suin : XOOPS » 総合的な情報 2011/10/20 11:58

Blogger's Avatar

XOOPSを使って作られているサイトがどのようなモジュールを使っているか紹介します。
今回、ご紹介するのは自転車レビューサイトの「サイクルベース名無し」です。


サイクルベース名無し:自転車レビューサイト
http://cbnanashi.net/cycle/

日本最大のユーザー参加型自転車レビューサイト。サイクルパーツ・ウェア・ツールなどの使用感・インプレが投稿されています。

使われているモジュール

about : pico
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=111

パーツレビュー、お知らせ、など汎用的に利用: newbb
http://xoopscube.jp/module/261

Contact: inquirysp
http://www.xugj.org/modules/mydownloads/singlefile.php?cid=1&lid=2

あなたのパーツ見せてください!: myalbum
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=61

XOOPSサイト大解剖! #001 すぎなみ子育てサイト

suin : XOOPS » 総合的な情報 2011/9/16 10:49

Blogger's Avatar

XOOPSを使って作られているサイトがどのようなモジュールを使っているか紹介します。
今回、ご紹介するのは杉並区役所運営の「すぎなみ子育てサイト」です。

すぎなみ子育てサイト

http://www.suginami-kosodate.jp/xoops/

使われているモジュール

子育てNAVI・特集・カラムなど: pico
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=96&cid=1

掲示板: yybbs
http://www.kuri3.net/modules/mydownloads/singlefile.php?cid=2&lid=11

食育: weblog(d3blog)
http://www.kuri3.net/modules/mydownloads/singlefile.php?cid=1&lid=30

区からのお知らせ: bulletin
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=106

サイト更新情報: whatsnew
http://linux.ohwada.jp/modules/wfdownloads/singlefile.php?cid=1&lid=77

イベントカレンダー: piCal
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=89&cid=1

お問い合わせ: liaise
http://linux.ohwada.jp/modules/wfdownloads/singlefile.php?cid=1&lid=74

サイトマップ: sitemap
http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=90&cid=1

XOOPS Cubeサタデーラボのfacebookページあります

Ryuji : XOOPS » 総合的な情報 2011/7/19 11:05

Blogger's Avatar

告知してませんでしたが、XOOPS Cubeサタデーラボのfacebookページあります

熱心な参加者の皆さんにささえられて、今度の土曜(2011/07/23)で第17回目になるXOOPS Cubeサタデーラボですが、facebookページがあるのご存知ですか?

けっこう前につくってたんですが、ryus.co.jp でお知らせするのをすっかり忘れてました(^^;

■Facebookでサタラボ最新情報を入手しませんか?


ちょっと今回は実験的に参加申込もfacebook ページからできるようにしてみました。

# 今回は更に実験的に、ATNDでも受け付けてます。

どこでもお好みの方法で申込していただければと思ったんですが、あちこちで申込できるとかえってどこで申込したらいいか迷いますかね?

モジュールを一括アップデートしてくれる超便利なプリロード:RapidModuleUpdate

suin : XOOPS » プリロード 2011/3/1 12:49

Blogger's Avatar

XOOPS Cubeにありそうでなかった機能の一つが、「モジュール一括アップデート」機能です。 モジュールのアップデートを行うとなると、個々のモジュールのアップデートページで ひとつひとつ対応していくことになります。 決まった作業なのに、手作業とは手間ですね。 そこで、モジュールアップデート作業を自動で処理できるようなプラグイン(プリロード)を作りました。

RapidModuleUpdateは、モジュール一括アップデート機能をモジュール管理に追加するプラグイン(プリロード)です。 まずは、そのでも動画をごらんください。30秒で終わります。

このように、RapidModuleUpdateは複数のモジュールアップデート作業を自動化し、なんとも手間いらずです。

インストールの方法も簡単です。FTPでRapidModuleUpdate.class.phpを/preloadフォルダに置くだけで完了です。 あとは、管理者権限でログインして、「モジュール管理」を開いてみてください。 上の動画にあったような一括アップデートのチェックボックスが出ているはずです。

RapidModuleUpdateダウンロード

mainfile.phpをサイトごとに切り替える開発テクニック

suin : XOOPS » TIPS小ネタ 2010/11/1 17:40

Blogger's Avatar

mainfile.phpはXOOPSの設定ファイルで、XOOPSのパスやデータベースのアカウント情報などが書かれています。これらの設定情報は、当然 環境に依存しています。

開発フローを、開発→ステージング→プロダクションという流れでやる場合、同じサイトが少なくとも3つ以上できてしまいます。そうすると、mainfile.phpも複数できあがるわけです。ところが、XOOPS Cube Legacyはサイトプロフィールという概念がないため、mainfile.phpの取り扱いは悩ましいものがあります。(他のCMS、Drupalなどではあると聞いています。)

複数のmainfile.php問題を解決する方法はいくつか考えられます。

1. どの環境もそっくりの環境にする

XOOPS_ROOT_PATHなどはdirname(__FILE__)で解決し、データベースのアカウント情報はどのサーバでも共通のものにするという手法です。 ただ、この方法だとチームで開発に取り組む場合、あまりうまくいきません。SVNで管理しているサイトだと、お互いのmainfile.phpを上書きしあう心配があります。

2. mainfile.phpはSVNで管理しない

mainfile.phpは環境依存が強いため、SVNでは管理しないようにしておく方法があります。こうしておくと、チームでお互いのmainfile.phpを上書きする心配もありません。ところが、この方法では、リポジトリにmainfile.phpがないのが欠点になります。mainfile.phpが無いので、チェックアウトしてきても直ぐに動かせません。また、そのサイト全体で使われている定数をmainfile.phpに書いておくことがありますが、定数をいちいち手動で追加しなければなりません。(本来、環境依存ではない定数は、/settings/definition.phpに書くべきですが。)

そこで、今回紹介するのは、mainfile.phpをサイトごとに切り替える方法です。

まず、サイトごとのmainfile.phpを適当に名前を変更して、settingsの下に置きます。 例えば、今ローカル環境にあるmainfile.phpは開発環境なので、名前をmainfile.dev.phpに変えて、settingsに移動します。

.
├── mainfile.php
├── settings
│   ├── mainfile.dev.php
│   ├── mainfile.stag.php
│   └── mainfile.prod.php
(略)

次に、XOOPS_ROOT_PATHに空のmainfile.phpを作り、そこに下のコードをコピペします。

<?php

require XoopsProfiler::getProfile();

class XoopsProfiler
{
	// ホスト名 => ファイル名
	protected static $map = array(
		'suinasia.local' => 'mainfile.dev.php', // 開発
		'stag.suin.asia' => 'mainfile.stag.php', // ステージング
		'suin.asia'      => 'mainfile.prod.php', // プロダクション
	);

	public static function getProfile()
	{
		$xoopsRootPath = dirname(__FILE__);
		$serverName = $_SERVER['SERVER_NAME'];
		$ds = DIRECTORY_SEPARATOR;

		if ( !isset(self::$map[$serverName]) )
		{
			trigger_error("Profile not found.");
			die;
		}

		$mainfile = self::$map[$serverName];
		$path = $xoopsRootPath.$ds.'settings'.$ds.$mainfile;

		return $path;
	}

}

あとは、$map配列のところを適宜書き換えるだけです。 配列のキーはホスト名で、値はそのホストで使うmainfile.phpになります。

上のコードを少し書き換えれば、開発環境でも複数のデータベースを簡単に切り替えたり、いろいろ応用できると思います。

XOOPSの設定画面をちょこっと使い易くする?

hamaco : XOOPS » TIPS小ネタ 2010/9/30 18:55

Blogger's Avatar

こんにちは hamacoです。

今回JavaScriptネタが思い浮かばなかったので普通のPHPネタです。
個人的にXOOPS管理画面の一般設定で設定完了後に良く分からないページに飛ばされるのがムカついたので、ちょっと弄って元のページにリダイレクトするようにしてみました。

なんか前にもやったような気がするけど気にしない

{XOOPS_ROOT_PATH}/modules/legacy/admin/actions/PreferencesEdit.class.php を開いて以下の様に置き換えます。

line 304
$controller->executeForward("./index.php?action=PreferenceList");

include_once XOOPS_ROOT_PATH . "/include/cp_functions.php";
$controller->executeRedirect("./index.php?action=PreferenceEdit&confcat_id=" .xoops_getrequest('confcat_id'), 2, '設定を完了しました');
に。

line 352
$controller->executeForward(XOOPS_MODULE_URL . '/' . $this->_mMaster->mModule->get('dirname') . '/admin/');

include_once XOOPS_ROOT_PATH . "/include/cp_functions.php";
$controller->executeRedirect("./index.php?action=PreferenceEdit&confmod_id=" .xoops_getrequest('confmod_id'), 2, '設定を完了しました');
に変えると、全般設定やモジュールの一般設定の変更をした時に設定完了メッセージを表示し、設定画面に戻るようになります。

好みによりますが、これで多少快適にXOOPS使えるようになるんじゃないかなー。

互換モジュールのメニューに「プリファレンス」をすべて出すプリロード

suin : XOOPS » プリロード 2010/9/30 18:47

Blogger's Avatar

互換モジュールのメニューに「プリファレンス」をすべて出すプリロード

XOOPS Cube Legacyの互換モジュールでは、
以下のプリファレンスがメニューに表示されません。

・禁止用語設定
・検索オプション
・メール設定

XOOPS2のころは、上のプリファレンスもメニューに表示されていたはずなのですが…。

XOOPS2に慣れていると、XOOPS Cube Legacyの「XOOPSコンフィグ」が目に入ってこないものです。

そこで、XOOPS2っぽいメニュー表示をするプリロードを作ってみました。

使い方

こちらからプリロードを入手します。
・Xoops2StyleMenu.class.phpをpreloadフォルダに入れます。
・管理権限でログインするとメニューの表示が変わっています。

Before After

ブロック管理を表示モジュールでフィルタリングしてみた

hamaco : XOOPS » TIPS小ネタ 2010/8/19 18:22

Blogger's Avatar

こんにちはこんにちは hamacoです。

主にJavaScriptを使ってXOOPSサイトとプチカスタマイズしてみよう の第3回です。
今回はブロック管理をちょこっとカスタマイズしてみようと思います。

XOOPSのブロック管理画面は通常、表示設定がされているブロックが全て一覧で出てくると思いますが、これを表示されるモジュール毎にフィルタリングが出来るようにしてみたいと思います。
あまり使ったことがないのですが、XOOPS2にはそんな感じの機能がデフォルトであるらしいですね。

※今回のはlegacyモジュールや、themes/adminの下を弄ったりする為XCLをアップデートする際注意が必要になるかもしれません。

JavaScriptだけでやるには色々データが足りないので、まずブロック一覧が表示されるページのプログラムを弄ります。

XOOPS_ROOT_PATH/modules/legacy/admin/actions/BlockListAction.class.phpの89行目にある、executeViewIndexアクションを以下のように置き換えます。
function executeViewIndex(&$controller, &$xoopsUser, &$render)
{
	$render->setTemplateName("block_list.html");
	foreach (array_keys($this->mObjects) as $key) {
		$this->mObjects[$key]->loadModule();
		$this->mObjects[$key]->loadColumn();
		$this->mObjects[$key]->loadCachetime();
					$this->mObjects[$key]->loadBmodule();
	}

	//
	// Build active modules list and set.
	//
	$handler =& xoops_gethandler('module');
	$moduleArr[0] =& $handler->create();
	$moduleArr[0]->set('mid', -1);
	$moduleArr[0]->set('name', _AD_LEGACY_LANG_TOPPAGE);
	
	$moduleArr[1] =& $handler->create();
	$moduleArr[1]->set('mid', 0);
	$moduleArr[1]->set('name', _AD_LEGACY_LANG_ALL_MODULES);

	$criteria =& new CriteriaCompo();
	$criteria->add(new Criteria('hasmain', 1));
	$criteria->add(new Criteria('isactive', 1));
	
	$t_Arr =& $handler->getObjects($criteria);
	$moduleArr = array_merge($moduleArr, $t_Arr);
	$render->setAttribute('moduleArr', $moduleArr);
	
	$render->setAttribute("objects", $this->mObjects);
	$render->setAttribute("pageNavi", $this->mFilter->mNavi);
	
	//
	// Load cache-time pattern objects and set.
	//
	$handler =& xoops_gethandler('cachetime');
	$cachetimeArr =& $handler->getObjects();
	$render->setAttribute('cachetimeArr', $cachetimeArr);
	
	$render->setAttribute('actionForm', $this->mActionForm);
}

次に、XOOPS_ROOT_PATH/themes/admin/modules/legacy/block_list.htmlの23行目辺り(formタグの上)に以下のコードを貼り付けます。
<select id='module_filter'>
	<{xoops_optionsArray from=$moduleArr value=mid label=name}>
</select>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$("#module_filter").change(function() {
	var mid = new RegExp(" " + $(this).val() + " ");

	$("form table.outer tr").each(function() {
		if ($(this).attr('bmids')) {

			console.log($(this).attr('bmids').match(mid));
			($(this).attr('bmids').match(mid)) ? $(this).show() : $(this).hide();
		}
	});
});
</script>


これで、ブロック管理ページで以下の画像のように表示先のモジュールでフィルタリングができるようになります。
通常状態

picoでフィルタリング

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.