Re: PDFviewerのエラーについて

2019年3月5日 at 19:53

失礼しました。
以下、環境情報です。

# concrete5 Version
Core Version - 8.4.3
Version Installed - 8.4.3
Database Version - 20180716000000

# concrete5 Packages
Genesis Theme (1.1.9), Neat (0.9.2), PDF Viewer (1.0.1), Static Site Exporter (1.0)

# concrete5 Overrides
None

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache/2.4.33 (Win32) OpenSSL/1.1.0h PHP/7.2.7

# Server API
apache2handler

# PHP Version
7.2.7

# PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, json, libxml, mbstring, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, readline, Reflection, session, SimpleXML, SPL, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, zlib

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 20M
upload_max_filesize - 2M
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 7200

お手数かけますがよろしくお願いします。

Re: PDFviewerのエラーについて

2019年3月6日 at 10:20
私がテストした環境とPHPのバージョンが異なるので、
たぶん、PHP7.2からWarningに格上げされたことによるものかなと推測しました。


根本的な解決にはなりませんが、
利用しているサーバがレンタルサーバなどで、phpのバージョンを変更できるようであれば、
phpを7.0とか7.1などにすると、エラーは表示されなくなるかと思います。


実質的な解決は、まずはアドオンの作者に不具合について報告するのが良いと思うのですが、
いかんせん私もその手順などを知りません(これまでアドオン等を利用したことがないので・・・)。


ここからは私なりに想定されるエラーの箇所を内容に沿って、PDFviewerの中身を調べてみた話です。

簡単ではありますが、ソースコードを修正することになりますので、
やるかやらないかはご自身の責任の範疇でお願いします。

/packages/pdf_viewer/blocks/pdf_viewer/controller.phpの44行目に

if($args[external_url] && $args["pdf_file"]){

という箇所があり、この$args[external_url]のexternal_urlが
クォテーションで囲われていないのが該当の部分なのかなと見込みました。

(1)何も修正せずにPHPのバージョンを7.1から7.2.6に変更してテストしてみた結果、エラーが発生。

(2)if($args[external_url] && $args["pdf_file"]){ ⇒ if($args["external_url"] && $args["pdf_file"]){
該当箇所をダブルクォテーションで囲み、再テストしてみたところ、エラーは発生せず。

となりました。(たぶん、これでOK?かな)

今後、このアドオンを同様の環境で利用する方も多くいるかもしれないので、
上記メモ書きしました。
 

Re: PDFviewerのエラーについて

2019年3月11日 at 7:48
返信遅くなりすみません。
丁寧な解説ありがとうございました。
おかげでPHP初心者の私でも書き換えてエラーを解決できました。

ありがとうございます。