PHP7対応のEVO用drectresize?

質問全般・改善要望
adamod
メンバー
メンバー
記事: 28
登録日時: 2012年6月27日(水) 01:08

PHP7対応のEVO用drectresize?

投稿記事by adamod » 2017年9月23日(土) 11:32

レンタルサーバーのPHPをバージョン5から7に変更したところ、プラグインのdirectresizeがエラーを起こすようになりました。
より新しそうなバージョンをネットで拾っていくつか試したので、エラーメッセージは記録していませんが、大体次のような感じでした。

①元々使っていたバージョン(多分0.8系):directResize.php 811行目 mysql_real_escape()関連など
②0.8.3:directResize.php 816行目 これもmysqlのエスケープ関連
③今入れ直したバージョン0.8.0(https://modx.com/extras/package/directresize):459行目 eregi_replace関連

どれもPHP7では廃止された関数のようですが、一々潰しても埒が明かないので断念しました。
そこで、PHP7に対応したEVO用のdrectresizeは無いのでしょうか?

【サーバー環境】
Just-size net
PHP7.1.0
MySQL 5.1.61
Modx 1.0.19J
最後に編集したユーザー adamod on 2017年9月23日(土) 13:55 [ 編集 1 回目 ]
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

PHP7対応のEVO用drectresize?

投稿記事by yama » 2017年9月23日(土) 13:10

adamod
メンバー
メンバー
記事: 28
登録日時: 2012年6月27日(水) 01:08

PHP7対応のEVO用drectresize?

投稿記事by adamod » 2017年9月23日(土) 13:34

yamaさん、何時もお世話になります。

これは2番めに試したバージョンですね。上述のように816行目の

コード: 全て選択

if ($escape) $o = $modx->db->escape($o);
のところで最初のエラーが出ます。

詳しいエラーメッセージを見るためにもう一度インストールしても良いですが、一応やり方としてはdrgalleriesフォルダとassets/plugins/directresize以下をアップロード(上書き)して、directResize.tplを管理画面へコピー&ペーストすれば良いんですよね?
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

PHP7対応のEVO用drectresize?

投稿記事by yama » 2017年12月05日(火) 07:55

確認が遅くなってすみません、こちらは解決されましたでしょうか?まだでしたら、すぐ修正します。
adamod
メンバー
メンバー
記事: 28
登録日時: 2012年6月27日(水) 01:08

PHP7対応のEVO用drectresize?

投稿記事by adamod » 2017年12月05日(火) 20:04

ご連絡有難うございます。

残念ながら未だ解決していません。修正いただければ幸いです。
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

PHP7対応のEVO用drectresize?

投稿記事by yama » 2017年12月06日(水) 13:10

https://github.com/extras-evolution/dir ... ccc4f9ae00
修正しました

https://github.com/extras-evolution/dir ... master.zip
assets/plugins/directresize/directResize.php を上書きしてみてください
adamod
メンバー
メンバー
記事: 28
登録日時: 2012年6月27日(水) 01:08

PHP7対応のEVO用drectresize?

投稿記事by adamod » 2017年12月06日(水) 20:16

修正版有難うございます。

今ファイルを上書きしてプラグインを有効にしましたが、管理画面で写真が掲載されたページ(リソース)を開こうとすると、どれも次のようなエラーが出ます。

コード: 全て選択

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; directResize has a deprecated constructor in /home/abcd/public_html/assets/plugins/directresize/directResize.php on line 3
« MODX Parse Error »

MODX encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error : exif_imagetype(assets/images/moto/Gear/PA080071.jpg): failed to open stream: No such file or directory
ErrorType[num] :   WARNING[2]
File :   /home/abcd/public_html/assets/plugins/directresize/directResize.php
Line :   101
Source :   if (exif_imagetype($imgFile) == 1){
Basic info
REQUEST_URI :   /manager/index.php?a=27&id=203
Manager action :   27 - Editing resource
Current Plugin :   DirectResize(OnDocFormPrerender)
Referer :   http://www.abcd.com/manager/index.php?a=1&f=tree
User Agent :   Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
IP :   180.123.123.123
Benchmarks
MySQL :   0.0036 s (12 Requests)
PHP :   0.0108 s
Total :   0.0144 s
Memory :   1.02 MB

Backtrace

1   include_once()
manager/index.php on line 223
2   $modx->invokeEvent()
manager/actions/document/mutate_content.dynamic.php on line 60
3   $modx->evalPlugin()
manager/includes/document.parser.class.inc.php on line 3279
4   eval()
manager/includes/document.parser.class.inc.php on line 1783
5   RenderOnFrontend()
manager/includes/document.parser.class.inc.php(1783) : eval()'d code on line 37
6   directResize->directResize()
assets/plugins/directresize/directResize.php on line 931
7   directResize->ProcessContent()
assets/plugins/directresize/directResize.php on line 17
8   directResize->PrepareImg()
assets/plugins/directresize/directResize.php on line 491
9   exif_imagetype()
assets/plugins/directresize/directResize.php on line 101

最初の方でそんなファイルはないと書いてあるPA080071.jpgは、プラグインをオフにするとちゃんと読み込まれるので、存在している筈です。

因みに、「プラグインの作成/編集」画面に出てくるプラグインコードの中身は、以前のままで良かったでしょうか?
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

PHP7対応のEVO用drectresize?

投稿記事by yama » 2017年12月06日(水) 21:46

https://github.com/extras-evolution/dir ... 6ccf9af153
修正しました
https://github.com/extras-evolution/dir ... master.zip
assets/plugins/directresize/ フォルダを上書きしてみてください
たぶんそれだけでは直らないので、添付のファイルを解凍して追加で assets/plugins/directresize/ フォルダに上書きしてみてください。これも動作しない可能性がありますが、動作しなければまた連絡ください。
添付ファイル
directResize.zip
(8.84 KiB) ダウンロード数: 7 回
adamod
メンバー
メンバー
記事: 28
登録日時: 2012年6月27日(水) 01:08

PHP7対応のEVO用drectresize?

投稿記事by adamod » 2017年12月07日(木) 12:19

上記の修正版を試しました。(「添付ファイル」も含む)

すると、管理画面の各リソースの編集画面にはエラーは出ず、普通に文書が表示されるようになりました。
ただ、読み込んだ写真をドラッグで移動したり編集したりは出来ないですね。

あと、その状態でサイトにアクセスすると、次のようなエラー(冒頭部分のみ)が出てコンテンツは表示されなくなります。

コード: 全て選択

« PHP Parse Error »
PHP error debug
Error : exif_imagetype(/assets/images/index/abcd.png): failed to open stream: No such file or directory
ErrorType[num] :   WARNING[2]
File :   /home/abcd/public_html/assets/plugins/directresize/directResize.php
Line :   101
Source :   if (exif_imagetype($imgFile) == 1){


一応確認ですが、修正パッチのinstall以下に入っているテンプレートファイルは、コードをコピーして管理画面でプラグイン>directresizeのテンプレートコードに貼り付ければ良いのですね?