【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない  【解決済み】

質問全般・改善要望
sonaeru
メンバー
メンバー
記事: 3
登録日時: 2020年2月15日(土) 00:46

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない

投稿記事by sonaeru » 2020年2月15日(土) 01:21

お世話になっております、以下ご質問です。

-----
サーバー :ConoHa WING
MODX :1.0.22J
PHP :7.3.13
MySQL :5.7.27-log
ブラウザ :chrome最新版・edge最新版など同様
-----

■状況
管理画面でリソースを投稿する際の、投稿画面本文フィールド(TinyMCE)のスタイルをカスタマイズしています。
管理画面用のCSSファイルをリソース登録し、これまでは特に問題なく反映されておりました。
http://modx.jp/blog/529.html
↑ここのカスタマイズ方法で行いました。

■困っていること
ところが、MODXバージョンを 1.0.14J-r9(さくらレンタルサーバー)から、
1.0.22J(ConoHa WING)へサーバー移転&バージョンアップさせたところ、
このカスタマイズが反映されなくなりました。

グローバル設定→管理画面の設定→CSSファイルへのパス
を、相対パスで書いても、絶対パスで書いても、反映がされません。

■調べたこと
そこで、リソース投稿画面のhtmlソースを確認してみた所、
上記で設定したCSSファイルへのパスは正しく表示されていました。

一方、サーバータイプをSSLにしており、管理画面・WEB画面共にSSL表示になっているのですが、
htmlソースに表示されるCSSパスが「http://~」と表示されていました(相対記述・絶対記述どちらにしても同様)。

ためしにhtmlソースを、Chromeのデバッグツールで直接「https://~」と書き換えたところ、
本文フィールドのCSS設定が正しく表示されました。

■質問内容
SSL接続で管理画面を使っている状況で、
本文フォールドのCSSをカスタマイズする場合、
「グローバル設定→管理画面の設定→CSSファイルへのパス」以外に設定が必要な箇所はありますでしょうか?

よろしくお願いいたします。
mod_kks
メンバー
メンバー
記事: 28
登録日時: 2017年11月04日(土) 01:31

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない  【解決済み】

投稿記事by mod_kks » 2020年2月18日(火) 03:56

少し前のバージョンではグローバル設定の「サーバータイプ」をhttpsにしていても「サイトのURL」がhttpのままだとsite_urlの値がhttpで出力されて・・・ということがありましたが、1.0.22Jを新規インストールした環境ではアクセスしたプロトコルに書き換えられているようなので、「サイトのURL」の値は関係なさそうですね。

tinymceの挙動について一つ便乗させていただくと、1.0.22Jでは以下のような現象が起きるようです。

新規で1.0.22Jのパッケージをドキュメントルート(例:https://example.com/)にインストールした環境で「CSSファイルへのパス」に、例えば「https://example.com/content/css/style.css」を追加した場合、書き出されるCSSパスは「https://example.com/https://example.com/content/css/style.css」みたいな感じになるようです。

上記の挙動は、tinymceプラグイン側とグローバル設定(システム)側の「CSSファイルへのパス」との連携で、パスがURLだった場合の置換がhttpにしか対応していないのが原因で、「/assets/plugins/tinymce/functions.php」の417行目あたりからのパス置換記述、421行目あたりのURL記述だった時の置換を

コード: 全て選択

elseif (preg_match('@^http://@', $params['editor_css_path']))

以下のように書き換えると

コード: 全て選択

elseif (preg_match('@^(http|https)://@', $params['editor_css_path']))

両対応になります。

あと、相対パスで渡す時の置換記述が427行目あたりにあるのですが、これも

コード: 全て選択

$content_css[] = MODX_SITE_URL . $params['editor_css_path'];

以下のように書き換えると

コード: 全て選択

$content_css[] = MODX_BASE_URL . $params['editor_css_path'];

プロトコルに左右されずに動作するかもしれません。

抜本的な問題解決にはなりませんが、上記の書き換えでもしかすると上手くいくかもしれません。
sonaeru
メンバー
メンバー
記事: 3
登録日時: 2020年2月15日(土) 00:46

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない

投稿記事by sonaeru » 2020年2月18日(火) 13:11

mod_kks さま
丁寧なご提示をありがとうございます!

いただいた内容で、functions.php ファイルを書き換えまして、
絶対パス記述・相対パス記述、ともに試してみたのですが、状況としては改善されず、でございました。

そこで、改めて管理画面・本文執筆エリアの、htmlソースのhead部分を見てみたのですが、
※functions.php の初期状態・いただいた書き換え反映、両方とも同じ↓が表示されました。

コード: 全て選択

<head xmlns="http://www.w3.org/1999/xhtml">
   <style id="mceDefaultStyles" type="text/css">…省略…</style>
   <base href="http://example.com/">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <link type="text/css" rel="stylesheet" href="https://example.com/assets/plugins/tinymce/tiny_mce/themes/advanced/skins/default/content.css">
   <link type="text/css" rel="stylesheet" href="http://example.com/assets/plugins/tinymce/style/content.css">
   <link type="text/css" rel="stylesheet" href="http://example.com/setting/css/edit.css">
</head>

1) base_url がそもそも https になっていない
2)デフォルト?の assets/plugins/tinymce/tiny_mce/themes/advanced/skins/default/content.css は https になっている
3)デフォルト?の assets/plugins/tinymce/style/content.css は https になっていない
4)カスタマイズCSSも https になっていない
という状態でした。投稿フォーム側の base_url をhttpsにするために、何かしらの設定が必要?
あるいはサーバー設定の問題でしょうか、という状況でございます。
sonaeru
メンバー
メンバー
記事: 3
登録日時: 2020年2月15日(土) 00:46

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない

投稿記事by sonaeru » 2020年2月18日(火) 17:41

なお、その場しのぎ対応となりますが、取り急ぎ、以下デフォルトのCSSファイルに、
assets/plugins/tinymce/tiny_mce/themes/advanced/skins/default/content.css

カスタマイズCSSの内容を直接記述することで、
強制的にカスタマイズ内容を反映させることができました。
抜本的な対応にはなっていないのですが、関連・ご報告まで。
mod_kks
メンバー
メンバー
記事: 28
登録日時: 2017年11月04日(土) 01:31

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない

投稿記事by mod_kks » 2020年2月19日(水) 11:32

1.0.14から1.0.22にアップデートしたりしてみましたが、特にそのような挙動は見られませんでしたのでサーバ構成によるものかもしれませんね。以下が参考になるかもしれません。

https://qiita.com/xtetsuji/items/36d85bb49a518ed7b1da
アバター
yama
管理人
記事: 3140
登録日時: 2009年7月29日(水) 02:50

【1.0.22J】SSL接続時、本文フィールドのCSSカスタマイズが反映されない

投稿記事by yama » 2020年4月12日(日) 19:51

https://github.com/modxcms-jp/evolution ... 924551d925
確認が遅くなってすみません。mod_kksさんのhttps対応の修正を採用させていただきました。
次リリースの1.0.23Jです。