ブログ   うい・らぶ・だいびんぐ   Cube 別館   flag_uk 英語サイト   ポータル
twitter Twitter でログイン
ホーム   最新ニュース   フォーラム   ダウンロード   写真集   リンク集   お問い合わせ RSS

SmartSection > xoops > SmartSection > SmartObject Framework 1.0.1

SmartObject Framework 1.0.1

投稿者: Ken 掲載日: 2008-10-12 (8321 回閲覧)
SmartSection 2.14 から SmartObject Framework が必要になった。

SmartSection 2.14 と合わせて評価してみた。
SmartSection 2.14 参照

ダウンロード

- 日本語ファイル
https://sourceforge.jp/projects/xoops4u/releases/33282

- 修正ファイル
https://sourceforge.jp/projects/xoops4u/releases/33280

問題点

1. SmartObject 単体
(1) xoops_version.php にて 言語ファイルが2重に読み込まれる
(2) xoops_version.php にて 未定義のテーブルを指定
(3) システム管理のモジュール管理にて undefined constant
(4) 管理者画面のリンクにて Undefined variable
(5) 管理者画面のアドセンスにて Notice

2. SmartSection との連動
SmartObject 1.0.1 の PDF生成 参照

(1) PDF 生成にて 画像が表示されない
(2) PDF 生成にて 存在しない画像を指定する Fatal error になる
(3) PDF 生成にて Notice
(4) PDF 生成にて _MD_POSTEDON が未定義
(5) PDF 生成にて日本語が文字化けする

パッチ

(1) XOOPS Cube lagacy 対応

xoops_version.php にて 言語ファイルが2重に読み込まれる

xoops_version.php

// include_once(XOOPS_ROOT_PATH.'/modules/smartobject/language/english/common.php');

// added
global $xoopsConfig;
$common_file = XOOPS_ROOT_PATH.'/modules/smartobject/language/'.$xoopsConfig['language'].'/common.php';
if ( file_exists($common_file) ) {
	$flag_common = true;
	include_once $common_file;
} else {
	include_once(XOOPS_ROOT_PATH.'/modules/smartobject/language/english/common.php');
}


xoops_version.php にて 未定義のテーブルを指定

XCL ではモジュールがアンインストールできなくなる。

xoops_version.php

// removed
// $modversion['tables'][7] = "smartobject_customtag";


システム管理のモジュール管理にて undefined constant

-----
Notice [PHP]: Use of undefined constant _AM_SOBJECT_ABOUT - assumed '_AM_SOBJECT_ABOUT'
Notice [PHP]: Use of undefined constant SMARTOBJECT_URL - assumed 'SMARTOBJECT_URL'
-----

language/english/modinfo.php

// added
define('_MI_SOBJECT_ABOUT', 'About');


admin/menu.php

//	$headermenu[$i]['title'] = _AM_SOBJECT_ABOUT;
//	$headermenu[$i]['link'] = SMARTOBJECT_URL . "admin/about.php";

	$headermenu[$i]['title'] = _MI_SOBJECT_ABOUT;
	$headermenu[$i]['link'] = XOOPS_URL . "/modules/smartobject/admin/about.php";


管理者画面のリンクにて Undefined variable

-----
Notice [PHP]: Undefined variable: qs_param
-----

class/smartobjecttable.php
[/code]
function render($fetchOnly=false, $debug=false)
{
// added
$qs_param = null;
[/code]

管理者画面のアドセンスにて Notice

-----
Notice [Xoops]: Cannot use variable starting with 'url_'.
-----

対応
メッセージを出すだけなので、放置

原因
SmartobjectAdsense クラスにて 'url_color' を使用しているが、
SmartObject クラスでは 'url_' の使用をエラーにしている

class/adsense.php

class SmartobjectAdsense extends SmartObject {
function SmartobjectAdsense() {
  $this->quickInitVar('url_color', XOBJ_DTYPE_TXTBOX, true, _CO_SOBJECT_ADSENSE_URL_COLOR,
  _CO_SOBJECT_ADSENSE_URL_COLOR_DSC);


class/smartobject.php

class SmartObject extends XoopsObject {
function quickInitVar($key, $data_type, $required=false, $form_caption='', 
$form_dsc='', $value = null) {
  $maxlength = $data_type == 'XOBJ_DTYPE_TXTBOX' ? 255 : null;
  $this->initVar($key, $data_type, $value, $required, $maxlength, '', 
  false, $form_caption, $form_dsc, false, true, true);
}

function initVar($key, $data_type, $value = null, $required = false, 
  $maxlength = null, $options = '', $multilingual=false, $form_caption='', 
  $form_dsc='', $sortby=false, $persistent=true, $displayOnForm=true) 
{
  if (substr($key, 0,4) == 'url_' ) {
    trigger_error("Cannot use variable starting with 'url_'.");
  }


XOOPS Cube lagacy 対応

管理画面にて「一般設定」「モジュールのアップデート」が下記のエラーになる
-----
The requested URL system/admin.php was not found on this server.
-----
admin/menu.php

// $headermenu[$i]['link'] = '../../system/admin.php?fct=preferences&op=showmod&mod=' . 
  $xoopsModule->getVar('mid');

$mid = $xoopsModule->getVar('mid') ;
if ( defined( 'XOOPS_CUBE_LEGACY' ) ) {
  $link_pref = XOOPS_URL.'/modules/legacy/admin/index.php?action=PreferenceEdit&confmod_id='.$mid; 
} else {
  $link_pref = XOOPS_URL.'/modules/system/admin.php?fct=preferences&op=showmod&mod='.$mid ;
}
$headermenu[$i]['link'] = $link_pref ;

...

// $headermenu[$i]['link'] = XOOPS_URL . "/modules/system/admin.php?fct=modulesadmin&op=update&module=" . 
  $xoopsModule->getVar('dirname');

$dirname = $xoopsModule->getVar('dirname') ;
if ( defined( 'XOOPS_CUBE_LEGACY' ) ) {
  $link_module = XOOPS_URL.'/modules/legacy/admin/index.php?action=ModuleUpdate&dirname='.$dirname;
} else {
  $link_module = XOOPS_URL.'/modules/system/admin.php?fct=modulesadmin&op=update&module='.$dirname;
}
$headermenu[$i]['link'] = $link_module ;


バグ報告

- SmartObject 1.0.1 bugs and patchs
- SmartObject 1.0.1 bug: 'url_'
- SmartObject 1.0.1 bug and patch for PDF
- SmartObject 1.0.1 patch for XOOPS Cube Legacy

ページ移動
SmartObject 1.0.1 の PDF生成 次の記事
投票者の合計: 0
平均: 0
投稿された内容の著作権はコメントの投稿者に帰属します。
スポンサー

寄付
配布しているソフトが気に入ったら、寄付をお願いします。
寄付

PageRank のページ毎の表示
http://linux.ohwada.jp/ modules/smartsection/item.php?
PageRank 0 PageRank

メインメニュー

マニュアル

ログイン