多言語機能を設定するとブロックを追加できない

2017年4月4日 at 7:20

5.7.5.13でサイトを構築しています。
2カ国語にする必要があり、多言語サポート機能を設定するとグローバルエリアにブロックが追加できなくなり、次のようなエラーメッセージが表示されます。
call_user_func_array() expects parameter 1 to be a valid callback, class 'Concrete\Core\Permission\Key\AddBlockBlockTypeKey' does not have a method 'canAddBlock'

5.7でいくつか多言語サイトを作りましたが、このような現象は初めてです。どこに問題があり得るかアドバイス戴けると幸いです。
テーマはマーケットプレイスからダウンロードしました。(Neat)
よろしくお願いします。

タグ:

Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 7:31
申し訳ないですが、
初めてお伺いするエラーなので、
原因究明にお付き合いしていただけると幸いです。

また Neat 特有のエラーの可能性かも。
バックアップをきちんととって、
テスト環境などを準備し、
試しに他のテーマに変更してもエラーが出ますか?

他のテーマに変更してエラーが発生しないのであれば、
テーマの問題に鳴るので
Neat のサポートフォーラムに投稿していただくことになります。
http://www.concrete5.org/marketplace/themes/neat/support

少々、おつきあいください。
 

Re: Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 7:42
早速ありがとうございます。
他のテーマでも同じ現象が起こります。
本家のコミュニティを覗くと同じ問題に悩まされている方がいらっしゃるようです。
http://www.concrete5.org/developers/bugs/5-7-5-2/multilingual-stacks-doesnt-work
http://www.concrete5.org/community/forums/internationalization/5.7.5-multilingual-site-no-more-header-and-footer-for-one-of-my-
など。
スタックのグローバルエリアをクリアすると直るというようなアイデアもあるようですが、この状態ですとなんとダッシュボードでスタックのページに行けません。しかもこのサイトではスタックはまだ設定していません。
こちらでも研究してみますが、何かわかったらご教示戴けますと幸いです。よろしくお願いします。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 7:48
おー、ありがとうございます。

ということは、お使いのサイトは 5.7.4.x からアップグレードされたサイトということですか?
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 7:54
いえ、このサイトはアップグレードではなく、初めから5.7.5です。
よろしくお願いします。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 9:08
度々すいません。まだ何も解決していませんが、本家のコミュニティで今年になってからも同じ問題が話題になっていますのでお知らせします。
http://www.concrete5.org/developers/bugs/8-1-0/changing-site-default-locale-in-multilingual-settings-breaks-glo/
何かのご参考になればと。
私自身プログラミングがわからないのでどなかた解決策を教えて戴けますと非常に助かります。
引き続きよろしくお願いします。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月4日 at 12:21
ローカル環境(MAMP)に5.7.5.13のフルサイトを新規インストール。
テーマは、デフォルトの Elemental。
添付ファイルのサイトマップのように英語・日本語で多言語化。

で、特にエラーは出ずグローバルエリアにブロックを追加できました。

ただ、ちょっと気になる事がありますので、質問です。

『多言語サポート設定』→『言語セクション』→『来訪者のブラウザの情報から表示地域の判定を行います。』にチェックはいれてますでしょうか?

PS : エラーの再現方法が間違ってますか?
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月5日 at 1:09
ご返信ありがとうございます。

「来訪者のブラウザ情報から…」はこのサイトの場合設定として不便なのでチェックを入れていませんでしたが、入れても何ら変化はありませんでした。

しかし!サイト自体の言語の設定、多言語設定の基本言語、メンバーの言語設定をあれこれ変えて試した以外特別なことは何もしていないのに、突然息を吹き返したかのようにグローバルエリアが変更できるようになりました。理由は全く不明です。どんな偶然が重なったのか記憶にありません。
私としてはありがたいので急いで必要な作業を済ませましたが、試しにもう一言語グループを増やしてみると、新しく増やしたグループはやはりグローバルエリアが変更できません。
グローバルエリアだけおかしくなるところを見ると、素人の考えですが言語間にバグがある気もします。それともテーマのバグでしょうか…。
本家のコミュニティでのディスカッションもはっきりとした解決法のないままのようですが、皆さんのサイトも私と同じように「自然治癒(?)」したのでしょうか。
変更できたところはそのまま残ってくれることを祈ります。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月5日 at 19:38
試しに言語を追加してみましたけど、問題なくグローバルエリアにブロックを追加できました。
何が違うんでしょうね。
確かに気になりますね。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月5日 at 22:34
3つめの言語グループがやはり必要になったため、現地のConcrete5に詳しい技師に相談しました。
彼もこの問題は初めて聞いたと言うことですが、とにかくグローバルエリアを機能させるための「力技」を教えてくれましたので導入したところ、言語ごとにグローバルエリアが設定できるようになりました。
今回はヘッダーナビとサイト名を次のように変更しました。
$a = new GlobalArea('Site Name '.$lang);
$a = new GlobalArea('Header Nav '.$lang);

本来の問題の根本的解決にはなっていませんが、とにかくこれでサイトが運営できます。
お騒がせしました。ありがとうございました。
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月6日 at 12:28
一旦の解決になったとのことなので良かったと思いますが、
ちょっと考えて、もしかすると、PHP のバージョンの違いで問題が起こっているかもしれませんね・・・。

もしも可能であれば、PHP のバージョンを教えていただけますか?
(できればサーバーの設定仕様が分かるとより解明できると思います)
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月11日 at 18:30
返信が遅くなり失礼しました。
私も素人なりに考え、ひょっとしたらPHPのバージョンが原因かもしれないとチェックしたところ5.3と古いバージョンでしたが、それに気づいたのは初めに設定した2言語で突然グローバルエリアが息を吹き返した後でした。バージョンを5.6に変更後、3つ目の言語グループを作りましたが、同様にグローバルエリアの設定ができませんでした。
役に立つかわかりませんが、サーバー環境をコピーします。
いつもありがとうございます。

# Server Software
Apache/2.4.25 (Unix)

# Server API
fpm-fcgi

# PHP Version
5.6.24

# PHP Extensions
bcmath, bz2, calendar, cgi-fcgi, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imap, intl, json, libxml, mbstring, mcrypt, mysql, mysqli, mysqlnd, odbc, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib

# PHP Settings
max_execution_time - 60
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - -1
max_input_vars - 1000
memory_limit - 128M
post_max_size - 64M
sql.safe_mode - Off
upload_max_filesize - 64M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 1440
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 2000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5
 

Re: 多言語機能を設定するとブロックを追加できない

2017年4月12日 at 14:19
お、nginx を使われていますか?

Apache だと発生していないので、
nginx の設定の問題ですかね・・・。