multiMenuモジュールphp7への対応

このトピックの投稿一覧へ

なし multiMenuモジュールphp7への対応

msg# 1.3
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2022/9/24 8:28 | 最終変更
タツ  管理人   投稿数: 2403 オンライン
このサイトもmultiMenuモジュールを利用しています。さて、XoopsXより最新のmultiMenuモジュールversion1.24をローカル環境(サーバーxampp7.4.25、legacy-2.3を起用)に各ファイルを以下のように編集してみました。

インストールしてみるとメニューのブロック管理でグループ管理が表示されないので、以前のバージョン1.20を編集しインストールしてみましたが、グループ管理は表示されるもののaltsysのグループ管理とは整合性がなかったのでこのversion1.24を採用することにしました。version1.20の編集も参考に掲載することにしました。

■1.PHP7へのバージョンアップによる書式変更(__construct部分)
・modules/multiMenu/class/menu.php 26行目
parent::XoopsObjectGenericHandler($db);
変更↓
parent::__construct($db); //変更


・modules/multiMenu/include/gtickets.php 13行目
function XoopsGTicket()
変更↓
function __construct()//変更

・modules/multiMenu/admin/mygrouppermform.php
79行目
function MyXoopsGroupPermForm($title, $modid, $permname, $permdesc)
変更↓
function __construct($title, $modid, $permname, $permdesc) //変更

241行目
function MyXoopsGroupFormCheckBox($caption, $name, $groupId, $values = null)
変更↓
function __construct($caption, $name, $groupId, $values = null) //変更

・html/preload/multiMenuPreload.class.php 49行目
function multiMenuFlow($gmm){
変更↓
function __construct($gmm){ //変更

■2.PHP7へのバージョンアップによる書式変更
・modules/multiMenu/admin/myblocksadmin.php 34行目
// get blocks owned by the module
$block_arr =& XoopsBlock::getByModule( $xoopsModule->mid() ) ;
変更↓
// get blocks owned by the module
$blockmodel = new XoopsBlock(); //追加
$block_arr =& $blockmodel -> getByModule( $xoopsModule->mid() ) ; //変更

■3.その他PHP7での配列書式変更
変更対象ファイル
array()は殆どのファイルにて多数存在するので省略します
例)$name = array()
変更↓
$name = ;

version1.24の編集はここまでです。


----------
※以下は参考です。(multiMenuモジュールversion1.20のphp7への編集)

■1.PHP7バージョンアップによるeregi()→preg_match()へ書式変更とパターン前後にスラッシュを追加しiを付加
・multiMenu/blocks\multimenu.php
109行目
if (eregi("^\[([a-z0-9_\-]+)\]((.)*)$", $link, $moduledir)) {
変更↓
if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $link, $moduledir)) {

126行目
if (eregi("^\[([a-z0-9_\-]+)\]((.)*)$", $myrow['link'], $moduledir)) {
変更↓
if (preg_match("/^\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) {

135行目
}elseif (eregi("^\+\[([a-z0-9_\-]+)\]((.)*)$", $myrow['link'], $moduledir))
変更↓
}elseif (preg_match("/^\+\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir))

157行目
{preg_match("^\@\[([a-z0-9_\-]+)\]((.)*)$", $myrow['link'], $moduledir)) {
変更↓
{preg_match("/^\@\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) {

186行目
} elseif (eregi("^\&\[([a-z0-9_\-]+)\]((.)*)$", $myrow['link'], $moduledir))
変更↓
} elseif (preg_match("/^\&\[([a-z0-9_\-]+)\]((.)*)$/i", $myrow['link'], $moduledir)) 

■2.PHP7へのバージョンアップによる書式変更(__construct部分)
・multiMenu\admin\mygrouppermform.php
81行目
function MyXoopsGroupPermForm($title, $modid, $permname, $permdesc)
変更↓
function __construct($title, $modid, $permname, $permdesc)

244行目
function MyXoopsGroupFormCheckBox($caption, $name, $groupId, $values = null)
変更↓
function __construct($caption, $name, $groupId, $values = null)

・multiMenu/class/menu.php 24行目
parent::XoopsObjectGenericHandler($db);
変更↓
parent::__construct($db);

■3.MySQLのバージョンアップによる書式変更
・multiMenu\sql/mysql.sql
TYPE=MyISAM; → ENGINE=MyISAM;

■4.PHP7へのバージョンアップによる書式変更
modules/multiMenu/admin/myblocksadmin.php 34行目
// get blocks owned by the module
$block_arr =& XoopsBlock::getByModule( $xoopsModule->mid() ) ;
変更↓
// get blocks owned by the module
$blockmodel = new XoopsBlock(); //追加
$block_arr =& $blockmodel -> getByModule( $xoopsModule->mid() ) ; //変更

■5.その他PHP7へのバージョンアップによる配列書式変更
array() → 
array()は多くのファイルにて多数存在するので省略します
例)$name = array()
変更↓
$name = ;

---2023/2/11追加---
モジュールの改変をしているうちにxoopscubeのサイトから最新版が出たのでmultiMenuを利用することにしました。
投票数:19 平均点:5.79

投稿ツリー


     条件検索へ

旅と気ままなフォーラム最新投稿

欲しい商品が必ず見つかるメジャーなネットショップ

ログイン

Facebook,RSSリンク表示

検索

アクセスカウンタ

今日 : 40
昨日 : 254
総計 : 1631032