データ量制限の回避

【環境情報】
・baserCMSのバージョン:4.7.7
・レンタルサーバー名:ロリポップ
・使用テーマ:News CMS
・PHPスキル(自己評価):E

下記URLを参考にし、入力フォームの本稿文字数制限を回避しようと試みております。
制限から更にバイト数を上げて30000文字くらい入ればと思っております。

参考URL

https://forum-archive.basercms.net/modules/newbb/viewtopic.php?topic_id=3073&forum=5

lib/Baser/Model/Page.phpと辿っていって「Page.php」を編集し、制限バイト数を64000byteから
「[‘rule’ => [‘maxByte’, 380000], ‘allowEmpty’ => true, ‘message’ => __d(‘baser’, ‘本稿欄に保存できるデータ量を超えています。’)]」
としました。
その後編集画面に戻って30000文字の文章を本稿へ入れ保存、「本稿欄に保存できるデータ量を超えています」と出ます。

どのようにすれば、この文字数制限を回避することが出来るか、ご教示いただければ幸いです。

上記の「入力フォーム」の保存先に該当するフィールド(草稿欄を使用する場合は、そのフィールドも同様)のデータ型がおそらくTEXT型になっているのかと思います。それらのフィールドをおそらくMEDIUMTEXT型以上にすることで対応できるのではと思います。

ご指摘の参考にされたサイトのコメントにも同様の記載がありますので、再度ご確認ください。

具体的には、ご指摘の「入力フォーム」が固定ページの本文(およびその草稿欄)の場合、
ロリポップが提供しているphpMyAdminを利用して、MySQLにアクセスし、
作業前にDBのバックアップを行った上で、
xx(プレフィックス)_pagesテーブル内の該当するフィールドを変更します。

テーブル名:mysite_cu_approver_applications
フィールド名:draft
についてです。

サーバーのデータベース上に現在、上記のテーブルとフィールドがない状態になっております。
参考URLを読ませていただき、上記のテーブルとフィールドを構築するであろうプラグインを入手しようと、zipファイルのリンクをクリックいたしました。

参考URLは下記です。
https://forum-archive.basercms.net/modules/newbb/viewtopic.php?topic_id=3073&forum=5

しかしリンクが自動遷移をしてしまい、ダウンロードがうまく行かなかった。
何度か試しましたが、ダウンロード出来ずプラグインを導入しておりません。
導入しない状態でlib/Baser/Model/Page.phpと辿っていき、「Page.php」の記述に変更を入れました。

入れた部分は、
[‘rule’ => [‘maxByte’, 64000], ‘allowEmpty’ => true, ‘message’ => __d(‘baser’, ‘本稿欄に保存できるデータ量を超えています。’)]
の部分です。

maxByteの値を64000から380000へ変更いたしました。

導入するプラグインのない状態で、手動でコアでしょうか。
そのコア部分の記述だけを変えたというような感じになります。
それで結果は「本稿欄に保存できるデータ量を超えています」となります。

TEXT型とMEDIUMTEXT型はデータベースのフィールドがないためにdraftがないので、TEXT型を変更が出来ていない形での、コア部分手動変更という感じです。

どこかデータベースで触ると良い部分ですとか、その他改善してデータ量制限を回避できるよという部分がございましたら、ご教示いただけますと幸いです。

GUSSANさま、大変に早い返信をありがとうございます。

というのは、プラグインでしょうか?
そもそも、今回の入力欄というのは、どこのことなのでしょう?
具体的に「固定ページの編集画面の本文欄」とか、そう言った表現で教えていただくともう少し具体的なコメントも付くかもしれません。

GUSSANさま

あまり具体的でなくて申し訳ありません。
「入力欄」と書いていた部分ですが、「新規記事登録」の「本文の入力部分」のことです。

テーブル名:mysite_cu_approver_applications
フィールド名:draft
上記のテーブルとフィールド名はプラグインを導入すると、データベース上へ生成されるものであると、参考URLを読ませていただいて判断いたしました。
いまプラグインは導入していない状態でおります。

スクリーンショットをいただいたので、自分のサーバーでもやってみました。
サーバーはロリポップです。
データベースの現在の状態です。
xxx_pagesというテーブルの中の、カラム内の状態です。

教えていただいて初めて、データベース上にxxx_pagesという部分があると知りました。
分かりやすく説明いただきありがとうございます。
いま、そのcontentsとdraftの部分ですが、「longtext」型となっております。

データ量制限は、制限そのままの状態でおります。

なるほど、4.7.7では、当初からlongtextなのですね。。。知りませんでした、すいません。
と言うことは、あらためて確認ですが、入力するデータ量(文字数)がPage.phpで変更した380000バイトを上回っていると言うことは、ないでしょうか?
ちなみに、日本語は、1文字2バイトですので、380000バイトですので、19万文字までという計算になります。

本題からは外れますが、

というのは、間違いです。参考にされた記事のユーザーさんが、たまたま全く別のプラグインを入れていたため、そのプラグインに関連するテーブル上のdraftフィールドも併せてデータ型が大きくしないといけなかった、という事情です。

@wiw が同様のプラグインを入れておられたら、事情は同じですが。。。

あらためて、コメントを拝見していて思ったのですが、もしかして、ブログですかね?!

であれば、対象が違います。
/lib/Baser/Plugin/Blog/Model/BlogPost.php
ですね。

GUSSANさま

教えていただいたまさにその通りでした。
全然違うphpを編集していたようです、ですのでそれを見直したところ、制限を通過いたしました!
/lib/Baser/Plugin/Blog/Model/から「Blogpost.php」の方を編集したら、制限回避が出来ました。

ありがとうございます、助かりました、おっしゃる通りブログの方だったようです。
何もかも分からず「Lib」フォルダの「Model」からいじるということだけに突っ走っており、知識がないので何ともかんともでした。

制限64000バイトから380000バイト、19万文字ということなのですね。
今回入れたのは30000文字なので、6万バイトかなと思われますが、納まりました。
大変分かりやすく教えていただきありがとうございました!

参照したURLやプラグインに関しては、どうやら勘違いと知識不足ゆえの空回りで申し訳ありませんでした。
とても助かりました。ありがとうございました。

ちなみに、通常、コアファイル(およびコアプラグイン)に改修を加えると、アップデート時に上書きされてしまいます。
baserCMS4系は、既にメンテナンスフェーズに入っているため、アップデートの頻度は下がると思いますが、セキュリティフィクス(baserCMS 4.7.8とか、4.7.9とか)などは、今後も行われるはずです。それらをアップデートする場合、今回改修したファイルは、上書きされ、元に戻ってしまいます。

例えば、このコアプラグインをBlogフォルダごと、app/Plugin/Blog/として、コピーするなどすれば、アップデートされなくなりますが、問題なく動作するのか、試したことがありません。

注意喚起のみで、きちんとした対応策にはなっておらず、すいません。

GUSSANさま

どうしようもなく困っていた中で、的確なアドバイスを入れていただけたことで本当に助かりました。
何を言っても足りないくらいです。
ですので再度アドバイスいただけたことも本当にありがとうございます。
アップデートで上書きのこと、了解いたしました。
Blogの状態をプラグインとして書き出すということですね。

アップデートもありがとうございます。
新しいバージョンが出るとなった場合はまずフォルダを確認しつつ、突っ走りに注意してBlogフォルダのこととか見ていきたいと思います。
改めましてGUSSANさま本当にありがとうございます!