お知らせ

以前公式サイト(?)のヘルプデスクに「他言語ページの追加ができない」と言った投稿があり気にはなっていたのですが、全てを解決できないのですが制限をつけて解決できる方法が見つかったのでご紹介します。

しかし、誰もお答えしていなかったのか公式サイト(?)よりその投稿が削除されているではありませんか。

まあそれはいいとして解決しなくても各々の言語で追加はできるので問題でないと考えられたのでしょう。でもわたしとしては「他言語ページの追加」ボタンがあり押下すると不正なリクエストになるエラーはいただけませんので、ちょっと調べた結果をご紹介します。

追加する際、該当のルーム情報を取得しているようですがその取得する際のIDが誤った値で取得が実行されおかしなことになっているのではと思われます。

app/Plugin/Pages/Controller/PagesEditController.php

の88・89行目をコメントにし、1行追加します。

// $roomId = $this->request->params['pass'][0]; EddyK 20191110
// $conditions = array('Room.id' => $roomId); EddyK 20191110
$conditions = array('Room.id' => Current::read('Room.id')); // EddyK 20191110 Add

これで他言語ページの追加は可能となりますが、正しい修正かは開発者さまの確認が必要です。

ただ、ページの削除機能ですが、現在該当言語だけのページ削除機能があるのですが、この修正が原因かはわかりませんが、動かないことが分かっています。(英語・日本語ともに存在するページの場合のみの機能で別々に作成されたページの場合は個々に削除できます)

ですので、該当の言語のみ削除するといった機能を取り敢えず消す場合は、

app/Plugin/Pages/View/PagesEdit/edit.ctp の38行目を

削除すればよいです。

以上、ご興味あれば自己責任で試されてはいかがでしょうか。