GIF画像をアップロードできない

メディア機能などで、PNGやJPEGはアップロードできるが、GIF画像がアップロードできない現象が起こる場合があります。

これは、画像エンジンに GD を使用していて、WebP画像 をサポートしている場合に、サーバー環境によって、GIF画像からWebP画像が生成できずにエラーが出てしまうためとなります。

対策1: GDではなく、ImageMagick に変更する

対策の1つとして、画像エンジンを GD ではなく、ImageMagick に変更する方法があります。(デフォルトは ImageMagick
private/config.system.yaml に以下の記述をすることで、画像エンジンを GDからImageMagickに変更できます。

image_magick : on

注意点として、サーバー環境によっては、ImageMagickを利用できない環境もあります。利用できない環境では、上記設定をしても画像エンジンは GD のままとなります。

対策2:WebP画像サポートをやめる

もう一つの対策は、WebP画像サポートをやめることです。 private/config.system.yaml に以下記述をすることで、WebP画像の生成をやめることができます。

webp_support: off

エントリーなどの編集作業を行なっても、古い情報が表示される場合がある

キャッシュの影響が考えられます。キャッシュドライバーに「APCu」を選択している場合、サーバー環境によってはPHPプロセス毎にキャッシュが確保されてしまい、古いキャッシュが返ってきてしまう問題を確認しています。たとえば、XSERVERの「Xアクセラレーター Ver. 1」や「Xアクセラレータオフ」 を選択している場合(Xアクセラレーター Ver. 2 は大丈夫です)、この環境となります。

このような環境の場合、「.env」ファイルを修正して「APCu」ドライバーを使わないように修正をお願いします。

# テンプレートのキャッシュをするドライバーを選択します
CACHE_TEMPLATE_DRIVER=file
CACHE_TEMPLATE_NAMESPACE=template
CACHE_TEMPLATE_LIFETIME=2678400

# フィールド情報のキャッシュをするドライバーを選択します
CACHE_FIELD_DRIVER=file
CACHE_FIELD_NAMESPACE=field
CACHE_FIELD_LIFETIME=86400

# 一時キャッシュで利用するドライバーを選択します
CACHE_TEMP_DRIVER=memory
CACHE_TEMP_NAMESPACE=temp
CACHE_TEMP_LIFETIME=10800

CMSバージョンアップ後、入力したHTMLがそのまま出力されてしまう

Ver.2.11から、セキュリティ対策としてXSS(クロスサイトスクリプティング)を防止するため校正オプションを指定していた時もエスケープ処理が自動で行われるようになりました。これにより、一部のカスタムフィールドやユニットなどでHTMLタグがそのまま出力されてしまう可能性があります。

詳しくはこちらをご覧ください。 https://developer.a-blogcms.jp/blog/raw211escape.html

Entry_Continueモジュールと組み合わせて記事の続きをページ遷移なしで表示する


ポストインクルードは Ver. 3.2 で上位互換である「htmx」が組み込みJSとして標準機能に組み込まれたため、Ver. 3.2 より非推奨になりました。

代替機能として、組み込みJS「htmx」の利用を推奨いたします。

通常は続きを読むのリンク部分をクリックすると1つの記事が表示されるようになりますが、Entry_Continue というモジュールとポストインクルード機能を組み合わせることで、ページの遷移無しに続き部分を読み込んでくる事ができるようになります。

動的フォームで、thanksページが表示されない

デフォルトテーマで、動的フォームを実装する場合、フォーム送信後のURLは以下のようになります。

/bid/%{BID}/eid/%{EID}/tpl/thanks.html

このURLは「tpl」URLコンテキストを使用しており、 Ver. 2.11.25 以上のバージョンだと、セキュリティ上の理由による「tpl」URLコンテキストの仕様変更が影響してしまい、うまく表示することができません。

「tpl」URLコンテキスト・仕様変更について

対応方法

private/config.system.yaml に以下行を追加または、編集ください。

allow_tpl_path: [thanks.html]