いつスイッチすべき?
既存のサイトのアップグレードであれば、常にフルバックアップをとり、ローカルなどでテストアップグレードを行い、アドオンやカスタマイズ部分が正常に動くかを確認してください。また Version 8 の最新版、8.5.x (この時点で 8.5.6) までアップデートを行い、インストールされているアドオン・テーマを見直してください。ほとんどが見た目に関する変更で、それらは開発者にとっては比較的簡単な修正になると思われます。ただ、いくつかの複雑なアドオンは V9 では壊れてしまうかもしれません。アップグレード前に、マーケットプレイスの一覧に「Version 9 Ready」と書かれていることを確認してください。V9 アップグレード前には積極的にテストを行ってください。マーケットプレイスでは開発者が積極的にアドオンのアップデートやテストを行っています。シームレスなアップデートができるまで数ヶ月ほどお待ちください。
新規で Concrete CMS のサイトを作成しますか?であれば、Version 9 で始めてください!Version 9 は本番運用可能です。楽しいですし、我々 (PortlandLabs は)すでに本番環境で1年以上利用しています。
Concrete CMS バージョン 9.1.1
当初予定では、v8.5.6から、v9.0.2にバージョンアップする予定でした。
しかし、テーブルの数の増加や、
特定のテーブルでのフィールドの消滅(なくなった)ことによるデータ移行対応
(エクスポートした.sqlデータの加工及びインポート、
本環境の方のバージョンアップv8.5.6からv8.5.7、
開発・テスト環境の方もv8.5.7で新規インストールするなど)、
.sqlデータ以外のFileデータのFTP取得での長時間待機(12時間以上)及び
やり直し(24時間以上)などの関連で開発・テスト環境の構築に、当初想定以上の時間がかかってしまった。
その間にConcrete CMSもv9.0.2からv9.1.0になっており
いよいよ(やっと)開発・テスト環境のバージョンアップができる段取りまでこぎつけました。
念のため、Concrete CMSのサイトを確認すると、バージョンが更新(22/05/26)されていました。
折角なので、v8.5.7からv9.1.1にバージョンアップすることにします。
前準備
ダウンロード
日本語化モジュールも最新版に
➡ http://translate.concretecms.org/translate/package/concrete5
ダウンロードしたconcrete-cms9.1.1.zipを解凍します。
この時点で、concrete-cms-9.1.1フォルダの中に、concrete というフォルダが入っている状態になっているはずです。
バージョンアップに必要なのは、concrete フォルダのみです(新規インストール時のみ全部が必要となります)、それ以外は削除します。
Concrete-cms-9.1.1 フォルダを、サーバ(今回の場合はMAMP)の updates/ ディレクトリにアップロード(今回の場合は、移動)します。
日本語モジュール(translations-ja_JP.mo)を、以下のフォルダ配下(\application\languages\ja_JP\LC_MESSAGES)にコピーして(messages.moに)リネームします。(/application/languages/配下には旧バージョンのmessages.moが存在する為、これもリネームします。)
⇑ messages.mo ? この時点で末尾sが付いていなかった(後から英語表記のままで判明)
アドオン
‘v8まで利用していたアドオン
(WordPressで言うところのPluginみたいなもの、
Concrete CMSの場合は、ほとんどの機能がCMS内で実現されている為
(問い合わせフォームやXmlSiteMapなど)アドオンはあまり必要とはされないが)の内、
‘v9対応済のアドオン(先日ダウンロードしておいたもの)を、フォルダ配下にコピーします。
(実は、ここも後で障害となる。バージョンアップ後に行った方が良い事が、後で判明)
以下は、現状の本環境□で囲んだもの以外は、
本環境のv9移行後は使用しない(Theme stuccoは、観察結果次第)
これらのアドオンは、バージョンアップ後にマーケットプレイスから選択してアドオンのバージョンアップとして行う方法もあるのですが、今回は本体のメジャーバージョンアップなので、事前に、使用しているアドオンがv9に対応しているかどうか調べ、対応しているものだけ事前にダウンロード&解凍しておきました。(古いアドオンのフォルダはリネームしました。)
⇑これが、後からErrorの原因になるとは、この時は未だ、気付いていませんでした。
これで、バージョンアップの準備がととのいました。
目次
Topに戻る
stuccoへのカスタマイズはどうなるか?
(少し不安なのが、Theme漆喰(stucco)でv8までしか対応していないので、バージョンアップ後に不具合が起きた場合は、標準のthemeエレメンタル(Elemental)に変更する必要があります。またその場合、stuccoに独自カスタマイズした部分(スマホ画面からタップで電話する機能※)をエレメンタルに対してカスタマイズする必要性があります)
□で囲んだ.cssは、私が作成した追加.css \application\themes\stucco\css\
- iPhone-iframe.css
- j_bootstrap.css
□で囲んだ.phpは、カスタマイズした.php \application\themes\stucco\inc
header_top.php
“<?php echo $view->getThemePath()?>” でパス取得を追加
v8.5.7 ➡ version9.1.1
目次に戻る
MAMPを起動します
目次に戻る
ローカルアクセス
http://localhost/Concrete8.5.7/
目次に戻る
管理画面からアップデート
ログイン >[管理画面 > システムと設定 > concrete5をアップデート]に、アップロードしたバージョンが表示されていますので、更新ボタンをクリックして実行します。
ログインエラー
どうやら、\Packageフォルダ配下をv9対応のパッケージにして、v8対応分をリネームしたことによる影響の様です。
Whoops\Exception\ErrorException
C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_v8\controller.php 14
⇑前の処理で、v8分をリネームしていたのが間違い(v9分は後から処理(D/L)する)
\Packageフォルダ配下をv8対応に戻します。
再び、ログインから
ログイン >[管理画面 > システムと設定 > concrete5をアップデート]に、アップロードしたバージョンが表示されていますので、更新ボタンをクリックして実行します。
→このまま進めます。➡ System & Settings
System & Settingsの、最下段のUpdate concrete5をクリック
インストール対象のv9.1.1が表示されています。「Install Update」をクリックします。
(既存インストールのThemeとAdd-Onも同時に表示されていますが、これらは後で処理)
An unexpected error occurred. ➡ 予期しないエラーが発生しました
Access Denied ➡ 「Access Denied」とは、特定のエラーが発生した時に各サイトのデータを発信しているWebサーバーが返すエラーの一つ
MAMPの再起動から。(途中でフォルダ名を変更したまま継続したせいかも知れない)
再度 adminでログインを試みる ➡ ログインエラー
http://localhost/Concrete8.5.7/index.php/dashboard/welcome
2 Whoops\Exception\ErrorException
C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_v9\controller.php 14
STEP 14を確認します。(ec_recaptcha_v9 はリネームしたフォルダです。)
C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_v9\controller.php 14
9 /**
10 * reCAPTCHA package for Concrete5
11 * @author Chris Hougard <chris@exchangecore.com>
12 * @package Concrete\Package\EcRecaptcha
13 */
14 class Controller extends Package
15 {
16 protected $pkgHandle = 'ec_recaptcha';
17 protected $appVersionRequired = '5.7.0.4';
18 protected $pkgVersion = '1.1.1';
以下省略
v9.1.1アップデート途中だと思われるので、
C:\MAMP\htdocs\concrete8.5.7\application\configのupdate.phpを削除して
MAMP起動からリトライ
想定理由、既にv9.1.1となっているが、アップデートが完了していないと思われる。
(それでもダメな場合は、reCaptchaフォルダのリネーム)
update.phpを削除
MAMPを再起動して
http://localhost/Concrete8.5.7/
またもやエラー
ReflectionException (-1)
Class Concrete\Core\Permission\Key\MarketplaceKey does not exist
10 ReflectionException
…\vendor\illuminate\container\Container.php 734
9 ReflectionClass __construct
…\vendor\illuminate\container\Container.php 734
以下省略
ReflectionException (-1)
Class Concrete\Core\Permission\Key\MarketplaceKey does not exist
・・・・これはマーケットプレイス接続エラー
C:\MAMP\htdocs\concrete8.5.7\concrete\vendor\illuminate\container\
Container.php 734 このphp を確認
/**
* Instantiate a concrete instance of the given type.
* @param string $concrete
* @param array $parameters
* @return mixed
* @throws \Illuminate\Contracts\Container\BindingResolutionException */
725 public function build($concrete, array $parameters = [])
726 {
727 // If the concrete type is actually a Closure, we will just execute it and
728 // hand back the results of the functions, which allows functions to be
729 // used as resolvers for more fine-tuned resolution of these objects.
730 if ($concrete instanceof Closure) {
731 return $concrete($this, $parameters);
732 }
734 $reflector = new ReflectionClass($concrete);
735 以下種略
どうもupdate.php が関係しているぽい!
update.php をゴミ箱から戻して
MAMP再起動からhttp://localhost/Concrete8.5.7/ で、サイト表示はできた
ページのソースコードを確認
v9.1.1へのバージョンアップも完了しているように見える!
15 <link rel="canonical" href="http://localhost/Concrete8.5.7">
16 <script type="text/javascript">
17 var CCM_DISPATCHER_FILENAME = "/Concrete8.5.7/index.php";
18 var CCM_CID = 1;
19 varCCM_EDIT_MODE = false;
20 var CCM_ARRANGE_MODE = false;
21 var CCM_IMAGE_PATH = "/Concrete8.5.7/updates/concrete-cms-9.1.1/concrete/images";
22 var CCM_APPLICATION_URL = "http://localhost/Concrete8.5.7";
23 var CCM_REL = "/Concrete8.5.7";
24 var CCM_ACTIVE_LOCALE = "ja_JP";
25 var CCM_USER_REGISTERED = false;
26 </script>
27
以下省略
ログインは? ➡ (E_COMPILE_ERROR)
Cannot declare class Concrete\Package\EcRecaptcha\Controller, because the name is already in use
リキャプチャエラー ➡ 2 Whoops\Exception\ErrorException C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_v9\controller.php 14
14 class Controller extends Package ・・・拡張パッケージ(add-on)
1 Whoops\Run handleError ・・・ハンドルエラー
…\vendor\filp\whoops\src\Whoops\Run.php 486
C:\MAMP\htdocs\concrete8.5.7\concrete\vendor\filp\whoops\src\Whoops\Run.php 486
478 if ($error && Misc::isLevelFatal($error['type'])) {
479 // If there was a fatal error,
480 // it was not handled in handleError yet.
481 $this->allowQuit = false;
482 $this->handleError(
483 $error['type'],
484 $error['message'],
485 $error['file'],
486 $error['line']
487 );
488 }
489 }
V9.1.1インストール済であると判断し、
ec_recaptcha_v9 を ➡ ec_recaptcha に再度戻す
この後、アドイン関連()のエラーの繰り返し
MAMP再起動からhttp://localhost/Concrete8.5.7/ で、
サイト表示はOK Loginは、 ➡ Whoops\Exception\ErrorException
C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_OLd_v8\controller.php
またもや、ec_recaptcha_OLd_v8にアクセスしている。
ec_recaptcha_OLd_v8を ➡ ec_recaptchaに戻し再度、
MAMP再起動からhttp://localhost/Concrete8.5.7/ で、
サイト表示はOK Loginは、 ➡ (E_COMPILE_ERROR)
Cannot declare class Concrete\Package\ManualNav\Controller, because the name is already in use
今度はManualNav にアクセスでエラー ➡ Whoops\Exception\ErrorException
C:\MAMP\htdocs\concrete8.5.7\packages\manual_nav_v9\controller.php9
_v9系を全て、C:\MAMP\htdocs\concrete8.5.7\application\BackUp_v8とBackUp_v9に退避
F5リフレッシュで ➡ add-on Update
ログイン中の表示
There is currently 2 add-on update available.
Tutorials
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
News from concrete5.org
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
上記画面の「Update」 をクリック
これは、これは、v9対応済のマニュアルナビ(ManualNav)
Stuccoは、v9対応分ではないが、最新版にアップデートされた(v2.1.5➡v2.1.6)
日本語化
モジュール(translations-ja_JP.mo)を、以下のフォルダ配下(\application\languages\ja_JP\LC_MESSAGES)にコピーして(messages.moに)リネームします。(/application/languages/配下には旧バージョンのmessages.moが存在する為、これもリネームします。)
messages.mo ?sがなかった
http://localhost/Concrete8.5.7/
この後で、管理画面からキャッシュクリアで日本語表示に
各ページをブラウズ
C:\MAMP\htdocs\concrete8.5.7\packages\
にec_recaptcha を置かないと、問い合わせページと簡易予約ページがエラーになる
(reCAPTCHAエラーチェックを設定している為)
ec_recaptcha は、V9対応ではないが、バックアップのBackUp_v8フォルダから移動
(v9非対応のアドインであるが、設置で問い合わせと簡易予約のエラーが無くなった)
ポートフォリオページの一部画像非表示
ポートフォリオの一部画像が、非表示になる(simple_galleryなどのアドオン使用ではない。)
<a href="http://localhost/Concrete8.5.7/portfolio/project-title-3" target="_self">
MAMP環境: /Concrete8.5.7/portfolio/
http://localhost/Concrete8.5.7/portfolio
本環境::https://a-itc.info/portfolio
後日へ(要調査)
目次に戻る
FontAwesome
FontAwesomeのサポート・バージョンが変わった為、
古いFontAwesomeを、カスタマイズ等で使っている場合は、変更が必要
‘v8まで、Font Awesome 4.7.0.css
‘v9から、Font Awesome Free 5.15.4.css
ConcreteCMS本体部分は対応済(画面左上の 鉛筆アイコンや歯車アイコン)であるが、
テーマ stuccoのスライド部分に使用している ≪ や≫のアイコンは、対応が必要
文字化け状態(v9.1.1)
本環境(v8.5.7)
他にも、Blog記事で、
インライン.cssでFont Awesome 4.7.0.cssを使用している為、ここも対応が必要
Fontawesomeの違い
V8 /updates/concrete5-8.5.7/concrete/css/font-awesome.css
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url('../css/fonts/fontawesome-webfont.eot');src:url('../css/fonts/fontawesome-webfont.eot') format('embedded-opentype'),url('../css/fonts/fontawesome-webfont.woff2') format('woff2'),url('../css/fonts/fontawesome-webfont.woff') format('woff'),url('../css/fonts/fontawesome-webfont.ttf') format('truetype'),url('../css/fonts/fontawesome-webfont.svg') format('svg');font-weight:normal;font-
V9 /Concrete8.5.7/updates/concrete-cms-9.1.1/concrete/css/fontawesome/all.css
/*!
* Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
初バージョンアップで
application/config/ ディレクトリに update.php ファイルが作成されます。
「バージョンアップ前」
(このMAMP環境は、新規でv8.5.7からインストールした為、update.php ファイルが存在しない)
アップデート(バージョンアップ)を繰り返してきた本環境には存在
update.php の内容(本環境)
「バージョンアップ後」(後から確認)MAMP環境
このファイル(update.php)に、updates/ ディレクトリ内のどのバージョンが使われるようになったのかが記録されています。
update.php の内容(MAMP環境)
目次に戻る
Add-onの更新
管理画面 > Extend concrete5 >「アドオンのアップデート」
(解凍せず、そのままupdatesフォルダ配下に置けば良い)
マーケットプレイスに接続して、最新版を再度ダウンロード
Stucco 2.1.5 ➡ 2.1.6 Not Version 9 Ready Yet.そのまま使用
open_graph_tags_lite 2.1.3 ➡ 2.1.6 Version 9 Ready!
simple_gallery 1.0.7 ➡ 2.0.3 Vrsion 9 Ready!
social_share_lite 2.1.3 ➡ 2.1.6 Vrsion 9 Ready!
manual_nav 3.0.0 ➡ 3.0.3 Vrsion 9 Ready!
advanced_html_block 0.9 ➡ 1.1 Vrsion 9 Ready!
Like This 0.9.1 Not Version 9 Ready Yet. ➡ アンインストール
Spacer 0.0.4 ➡ アンインストール
GA Popular Pages 1.0.5 $25.00 Errorでアンインストールできない
ExchangeCore reCAPTCHA 1.1.1 Not Version 9 Ready Yet. であるがそのまま使用
ABC Auto Reply forms 1.0.4 NotFound アンインストール
アップデート前
アップデート&アンインストール後
目次に戻る
モバイルプレビュー
モバイルプレビューとStuccoカスタマイズ確認
stuccoに独自カスタマイズ
「タップで電話できます」ボタン
ページのどこにいても
どのページにいても
スマホからタッブで電話をかけられるカスタマイズ
v9にstuccoが対応していないということから・・・の心配事
v9.1.1のデバイスプレビュー
デバイス プレビューで
カスタマイズの「タップで電話できます」が表示された(問題なし)
ConcreteCMSにiPhone13のプレビューが追加された。
ConcreteCMSのiPone6 ~ 8 プレビュー
目次に戻る
開発・テスト環境での投稿テスト
‘v9.1.1での投稿テスト
ファイルマネージャの操作方法が多少変わったのと、投稿編集画面の一部が英語表現のまま、でしたが、無事投稿テストもうまく行きました。
サムネイル(ブログカード)のキャプチャ画像
投稿本文のキャプチャ画像
FontAwesome5の追加.css(インライン.css)でのアイコン表示もうまく行きました。
( ○部分)
目次に戻る
自動化 > タスク
V8までは、最適化>「自動実行ジョブ」だった
重要事項!Concrete version9では、ジョブが非推奨となり、今後のバージョンでは実行できない可能性があります。その代わりに、 タスクを使うことを検討してください。タスクは、キューイング、非同期操作、完全なロギング、パラメータ、スケジューリングなどをサポートしています。
尚、v8までに設定していたジョブは、V9へのバージョンアップで、自動的にタスクに移行された。
目次に戻る
自動化 > タスクのアクティビティ
アクティビティ
目次に戻る
テーブル数は、433に
‘v8以前からあったワークフロー用の使っていないテーブルのほか、v9で追加された機能、ブロックの追加によりテーブル数が、362から、433になりました。
新Table
目次に戻る
※.
Id | 新Table | Rec |
---|---|---|
a | atDuration | 0 |
atDurationSettings | 0 |
Id | 新Table | Rec |
---|---|---|
b | BoardConfiguredDataSourceConfiguration | 0 |
BoardConfiguredDataSourceConfigurationCalendarEvent | 0 | |
BoardConfiguredDataSourceConfigurationPage | 0 | |
BoardConfiguredDataSources | 0 | |
BoardCustomSlotTemplates | 0 | |
BoardDataSources | 2 | |
BoardDesignerCustomElementItems | 0 | |
BoardDesignerCustomElements | 0 | |
BoardInstanceItemBatches | 0 | |
BoardInstanceItems | 0 | |
BoardInstances | 0 | |
BoardInstanceSlotRules | 0 | |
BoardInstanceSlots | 0 | |
BoardItemCategories | 0 | |
BoardItems | 0 | |
BoardItemTags | 0 | |
BoardPermissionAssignments | 0 | |
Boards | 0 | |
BoardSlotTemplates | 0 | |
BoardSlotTemplateTags | 0 | |
BoardTemplates | 0 | |
btAccordion | 0 | |
btAccordionEntries | 0 | |
btBoard | 0 | |
btBreadcrumbs | 0 | |
btContentImageBreakpoints | 0 | |
btCoreBoardSlot | 0 | |
btCoreContainer | 0 | |
btDesktopConcreteLatest | 3 | |
btFeatureLink | 0 | |
btGallery | 0 | |
btGalleryEntries | 0 | |
btGalleryEntryDisplayChoices | 0 | |
btHeroImage | 0 | |
btTopNavigationBar | 0 |
Id | 新Table | Rec |
---|---|---|
c | CalendarEventCustomSummaryTemplates | 0 |
CalendarEventSummaryTemplates | 0 |
Id | 新Table | Rec |
---|---|---|
d | DesignTags | 0 |
Id | 新Table | Rec |
---|---|---|
e | Editor | 1 |
Id | 新Table | Rec |
---|---|---|
f | FileExternalFileProviders | 0 |
FileExternalFileProviderTypes | 0 |
Id | 新Table | Rec |
---|---|---|
g | GroupCreateNotifications | 0 |
GroupCreates | 0 | |
GroupJoinRequests | 0 | |
GroupRoleChangeNotifications | 0 | |
GroupRoleChanges | 0 | |
GroupRoles | 1 | |
GroupSelectedRoles | 0 | |
GroupSignupNotifications | 0 | |
GroupSignupRequestAcceptNotifications | 0 | |
GroupSignupRequestAccepts | 0 | |
GroupSignupRequestDeclineNotifications | 0 | |
GroupSignupRequestDeclines | 0 | |
GroupSignupRequestNotifications | 0 | |
GroupSignupRequests | 0 | |
GroupSignups | 0 | |
GroupTypes | 1 | |
GroupTypeSelectedRoles | 1 |
Id | 新Table | Rec |
---|---|---|
m | MessengerBatches | 4 |
MessengerMessages | 1 | |
MessengerProcesses | 5 | |
MessengerScheduledTasks | 0 | |
MessengerTaskProcesses | 5 |
Id | 新Table | Rec |
---|---|---|
p | PageContainerInstanceAreas | 0 |
PageContainerInstances | 0 | |
PageContainers | 0 | |
PageSummaryTemplateCustomCollection | 0 | |
PageSummaryTemplateCustomCollectionTemplates | 0 | |
PageSummaryTemplates | 386 | |
PageThemeCustomSkins | 0 |
Id | 新Table | Rec |
---|---|---|
s | SavedGroupSearchQueries | 0 |
SavedLogSearchQueries | 0 | |
SummaryCategories | 2 | |
SummaryFields | 9 | |
SummaryTemplateCategories | 2 | |
SummaryTemplateFields | 4 | |
SummaryTemplates | 1 | |
SummaryTemplateTags | 0 |
Id | 新Table | Rec |
---|---|---|
t | Tasks | 12 |
TaskSets | 3 | |
TaskSetTasks | 12 | |
TreeExpressEntrySiteResultNodes | 0 | |
TreeGroupFolderNodes | 0 | |
TreeGroupFolderNodeSelectedGroupTypes | 0 |
Id | 新Table | Rec |
---|---|---|
u | UserFavoriteFolders | 0 |
UserPrivateMessagesAttachments | 0 |
Id | 新Table | Rec |
---|---|---|
_ | _StyleCustomizerValues | 0 |
目次に戻る
Topに戻る
目次に戻る
まとめ(仮)
目次に戻る
テーマstucco
テーマstuccoがv9へ対応していないという件も、
stuccoへ独自カスタマイズした「スマホ表示の各ページから1タップで電話をする」機能も確認できた。
FontAwesome5対応にカスタマイズすれば、現状のページデザインが壊れるわけでもなことが判明。
後は、php8でも問題ないか?
だが、これはまた、別の機会にしたいと思っています。
というのは、現状のMAMP環境は、
v4.2ではphp7.4.1までのサポート(本環境はphp 7.4.28)であり、
php8を利用するためには、MAMPをv5.0.4に上げなければならないからです。
目次に戻る
FontAwesome5対応
インライン.css例
FontAwesome5インライン.css記述のテスト投稿も、それに伴う新ファイルマネージャでの画像アップロード、新機能のタスク自動化の処理も確認できたので、95%位の満足度、これで本環境のv9へのバージョンアップは、「一部のページで画像が表示されない問題が解決し次第」ということに、
目次に戻る
一部の画像が表示されない問題
ポートフォリオのページ
‘v8.5.7からv9.1.1へのバージョンアップの結果、一部のページで画像が表示されないもがある
ポートフォリオページ(http://localhost/Concrete8.5.7/portfolio/topic/1076/library%E7%94%BB%E5%83%8F)で画像が一部表示されないものがあります。(左側の画像)
本環境のポートフォリオページ
(https://a-itc.info/portfolio/topic/1076/library%E7%94%BB%E5%83%8F)では正常に表示されます。(右側の画像)
ここは、もうしばらく調べ原因追求と対応が必要です。(たぶんテーブルデータからパスが渡っていないことが原因)
この画像のパスは、
https://a-itc.info/application/files/2515/5368/9105/Library-600-400-028-040.jpg で、
MAMP上では、
C:\MAMP\htdocs\concrete8.5.7\application\files\2515\5368\9105 配下に
Library-600-400-028-040.jpg が、あります。
ここのパスは、
https://a-itc.info/portfolio/gallery で、
https://a-itc.info/portfolio/project-title-5
https://a-itc.info/portfolio/project-title で、画像表示されます。
エラー(画像が#)の方は
http://localhost/Concrete8.5.7/portfolio/gallery で LINK先は開くのですが、
さらに
http://localhost/Concrete8.5.7/portfolio/Beauty-salon
http://localhost/Concrete8.5.7/portfolio/project-title
http://localhost/Concrete8.5.7/portfolio/project-title-2 が同様に#表示です
これらは、再度頬環境のバージョンアップ前のエクスポートデータ
(aitc_cf840.sql)から調べる必要があります。
思い当たるのは、CollectionSearchIndexAttributes 構造
v8.5.7には、v8.5.6の時には無かったTableが追加されています。
そして、v8.5.6の時に存在していたTableは、そのまま引き継がれる
(v8.5.6の様式のまま、v8.5.7で様式変更が起きてFieldがなくなったものもそのままの)様です。
証拠は、
v8.5.7にアップデートした本環境のエクスポートデータ(.sql)の内容から見てとれます。
テーブルCollectionSearchIndexAttributes部分で、・・・と、長くなりそうです。
原因究明と対応が必要ですが、次のテーマとしたいと思っています。
目次に戻る
FileImageThumbnailPaths
2022/06/11 追記
怪しい?Table
FileImageThumbnailPaths って?
名前からして・・・?
このテーブルのレコード件数が0件何です。(理由は多分オペミスでしょうが、・・・)
v8.5.7とv9.1.1のテーブル対比表をExcelで作った時、レコード件数もphpMyAdminのテーブル表示を.txtで吐き出し、Excelでインポートした後、Vlookupした表を作っておいたのです。それをフィルターして、v9.1.1が0件で、v8.5.7が0件でないものを出力したのが、下の表です。(FileImageThumbnailPaths以外もありますが、Table名からして)
あとは、aitc_cf840.sqlのデータを確認して見ますが、まずはご報告として。
v9.1.1_Table | Rec | 8.5.7_Table | Rec |
---|---|---|---|
btForm | 0 | btForm | 4 |
btFormAnswers | 0 | btFormAnswers | 75 |
btFormAnswerSet | 0 | btFormAnswerSet | 15 |
btFormQuestions | 0 | btFormQuestions | 20 |
FileImageThumbnailPaths | 0 | FileImageThumbnailPaths | 10,266 |
btForm*テーブルは、コンタクトフォームの設定データ用のものでした。 |
2022/06/11 追記2
FileImageThumbnailPaths!
[aitc_cf840.sql]をVS Codeで開いて「FileImageThumbnailPaths」で検索します。
INSERT INTO 部分(10,266行分)を抽出して
Sublime Textに貼り付けて、
FileImageThumbnailPaths.sqlで保存します。
目次に戻る
FileImageThumbnailPaths.sqlをインポート
phpMyAdminから、FileImageThumbnailPaths.sqlをインポートします。
無事にインポートできました。
10,266件
サムネイル部分の画像が表示されず
画像は撮りませんでしたが、やはりサムネイル部分の画像が表示されず"#"のままです。
ここで、先日の画像「Library-600-400-028-040.jpg」のパス
/application/files/2515/5368/9105/Library-600-400-028-040.jpgは、通常の画像の格納先と気付きました。
そして、
改めてサムネイル画像のパス「/application/files/thumbnails/」を確認し直しました。
目次に戻る
疑念
そして、これ(FileImageThumbnailPaths)のサムネイル画像パスは、
INSERT INTO `FileImageThumbnailPaths`
(`fileID`, `fileVersionID`, `thumbnailTypeHandle`, `storageLocationID`, `thumbnailFormat`,
`path`, `isBuilt`, `lockID`, `lockExpires`) VALUES
-- ・・・・・・・省略・・・・・・・・・,
(1852, 1, 'file_manager_detail', 1, 'jpeg',
'/thumbnails/file_manager_detail/2515/5368/9105/Library-600-400-028-040.jpg', 1, NULL, NULL),
(1852, 1, 'file_manager_listing', 1, 'jpeg',
'/thumbnails/file_manager_listing/2515/5368/9105/Library-600-400-028-040.jpg', 1, NULL, NULL),
(1852, 1, 'file_manager_listing_2x', 1, 'jpeg',
'/thumbnails/file_manager_listing_2x/2515/5368/9105/Library-600-400-028-040.jpg', 1, NULL, NULL),
-- ・・・・・・・省略・・・・・・・・,
6番目のfield"path"の、サムネイルのパスは、それぞれ、
'/thumbnails/file_manager_detail/2515/5368/9105/Library-600-400-028-040.jpg'
'/thumbnails/file_manager_listing/2515/5368/9105/Library-600-400-028-040.jpg'
'/thumbnails/file_manager_listing_2x/2515/5368/9105/Library-600-400-028-040.jpg'
です。
目次に戻る
再確認
MAMP上は、
C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_detail\2515\5368\9105\Library-600-400-028-040.jjpg
C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_listing\2515\5368\9105\Library-600-400-028-040.jpg あり
C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_detail_2x\2515\
配下に"5368"フォルダがありません
サムネイルはサイズによって生成しないものもありますから、存在しないものがあっても良いのですが
念のため、XSERVERの方も確認します。(FTPで長時間要した為、MAMP側と同期がとれているか)
同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
同様に、\2515\配下に"5368"フォルダがありません。
目次に戻る
✅考察
FileImageThumbnailPathsをMAMP上のTableインポートしたのですが、
サムネイル画像の場所は'#'表示のまま、画像は表示されません。
結果から判断ですが、
やはり、"path"の値の画像のパス'/thumbnails/file_manager_~~'がうまく反映されていない様です。
この後、"path"の値の画像のパスの上位に'/concrete8.5.7/application/files'を付けて、
'/concrete8.5.7/application/files/thumbnails/file_manager_~~'で、FileImageThumbnailPaths.sqlを更新し
インポートしてみようかと思います。
目次に戻る
searchThumbnailPathをGrep
searchThumbnailPathをGrepで探してみました。(悪あがきですが...)
気になる記述を見つけました。
$rs = $database->executeQuery('SELECT * FROM FileImageThumbnailPaths WHERE isBuilt = 0 ORDER BY ' . $database->getDatabasePlatform()->getLocateExpression('?', 'path') . ' DESC LIMIT 1', [$searchThumbnailPath]);
これは、ThumbnailMiddleware.phpにあり、
C:\MAMP\htdocs\concrete8.5.7\application\files\tmp\1616119373\concrete5-8.5.5_remote_updater\concrete\src\Http\Middleware配下にありました。
目次に戻る
サムネイルの画像のパス ?
もし、この.phpが有効なら、サムネイルの画像のパス'/thumbnails/file_manager_~~'のままです。
やはり、強制的に.sqlを更新するしかない(邪道ですが)のだろうか?
path取得について再考
FileImageThumbnailPathsパス取得
FileImageThumbnailPathsのパスが”'/thumbnails/file_manager_~~'”のままなら、
上位のパス(/application/files/)どのように取得されるのか(php?名)を知りたいものです。
少なくとも、本環境(Hosting)側では、
'/thumbnails/file_manager_listing/4315/3189/6974/375x150-003.png'”などで、問題なく画像が表示されていますので、
Localでは、何故表示されないのか?
上位パスが取得できない(取得されない)何らかの原因があるはずです。
No | 上段:対象Table 下段:対象Field |
置き換え前 本環境(Hosting) |
置き換え後 開発・テスト環境(Local) |
---|---|---|---|
7 | FileImageThumbnailPaths path |
'/thumbnails/~~/Library-600.jpg' などでサムネイル画像が正常に表示される。 上位パス ”/application/files/”はどの様に取得されるのか? 画像保管先は、 ”/application/files/thumbnails/~~” |
同様に、 '/thumbnails/~~/Library-600.jpg' であるが、サムネイル画像が表示されない。 (正当とは思えないので、まだ置き換えていません) |
目次に戻る
Topに戻る
CollectionVersionBlocksOutputCache
そういえば、CollectionVersionBlocksOutputCache の Field ”btCachedBlockOutput” にも、
”<source srcset="/application/files/ ’や
”data-default-src="/application/files/” があって、
Localの”/concrete8.5.7”が取得できない問題があって、
こちらは、絶対パスに置き換えてしまったが、、、、、
同根(同様)の問題だろうか????
No | 上段:対象Table 下段:対象Field |
置き換え前 本環境(Hosting) |
置き換え後 開発・テスト環境(Local) |
---|---|---|---|
6 | CollectionVersionBlocksOutputCache btCachedBlockOutput |
<img src="/application/files/ | <img src="/concrete8.5.7/application/files/ |
<source srcset="/application/files/ | <source srcset="/concrete8.5.7/application/files/ | ||
data-default-src="/application/files/ | data-default-src="/concrete8.5.7/application/files/ | ||
data-hover-src="/application/files/ | data-hover-src="/concrete8.5.7/application/files/ | ||
<a href="https://a-itc.info | <a href="{CCM:BASE_URL} | ||
<a href="https://www.a-itc.info | <a href="{CCM:BASE_URL} | ||
url=https%3A%2F%2Fa-itc.info%2F | SNS系LINKの為、保留 | ||
u=https%3A%2F%2Fa-itc.info%2F | SNS系LINKの為、保留 |
目次に戻る
Topに戻る
getThemePath()?
カスタマイズした.cssを読み込むときに
「getThemePath()?」関数で、
(header_top.phpに、以下の様に追記しました。
<link rel="stylesheet" href="<?php echo $view->getThemePath()?>/css/telBtnFix.css">
<link rel="stylesheet" href="<?php echo $view->getThemePath()?>/css/iPhone-iframe.css">
ただ、この「getThemePath()」は、phpマニュアル(https://www.php.net/manual/ja/)に載っていないのです。検索すると、getThemePath() doesn't exist. Closest matches: は存在しません。最も近い一致:get_include_path (PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8) などが表示されます。
また、JavaのFileクラス関数に、getPath() 、getAbsolutePath() 、getCanonicalPath() 、 などがありますが、getThemePath()は、Concrete独自なのか例が見つかりません。
applicationフォルダ配下をGrepで同様の使い方が(.php)ないかもう少し探してみたいと思います。
以下の6つのFileで定義が(27行)見つかりました。
1 BlockView.php
2 footer.php
3 header.php
4 header_top.php ・・・8行(カスタマイズした2行を含む)
5 Html.php
6 View.php
これから調べてみたいと思います。
目次に戻る
No | ファイル名 | 場所:上位パス(C:¥MAMP¥htdocs ¥concrete8.5.7¥application¥) |
行 | getThemePath() を含む文字列 |
---|---|---|---|---|
01 | BlockView.php | files¥tmp¥1540292193 ¥concrete5-8.4.3_remote_updater ¥concrete¥src¥Block¥View |
478 | public function getThemePath() |
482 | return $v->getThemePath(); | |||
files¥tmp¥1547302368 ¥concrete5-8.4.4_remote_updater ¥concrete¥src¥Block¥View |
478 | public function getThemePath() | ||
482 | return $v->getThemePath(); | |||
files¥tmp¥1616119373 ¥concrete5-8.5.5_remote_updater ¥concrete¥src¥Block¥View |
455 | public function getThemePath() | ||
459 | return $v->getThemePath(); | |||
02 | footer.php | themes¥stucco¥inc | 51 | <script src="<?php echo $view->getThemePath() |
03 | header.php | files¥tmp¥1540292193 ¥concrete5-8.4.3_remote_updater ¥concrete¥themes¥concrete¥elements |
5 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() |
46 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() | |||
files¥tmp¥1547302368 ¥concrete5-8.4.4_remote_updater ¥concrete¥themes¥concrete¥elements |
5 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() | ||
46 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() | |||
files¥tmp¥1616119373 ¥concrete5-8.5.5_remote_updater ¥concrete¥themes¥concrete¥elements |
5 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() | ||
46 | <link rel="stylesheet" type="text/css" href="<?=$this->getThemePath() | |||
04 | header_top.php | files¥tmp¥1540292193 ¥concrete5-8.4.3_remote_updater ¥concrete¥themes¥elemental¥elements |
6 | <link rel="stylesheet" type="text/css" href="<?php echo $view->getThemePath() |
files¥tmp¥1547302368 ¥concrete5-8.4.4_remote_updater ¥concrete¥themes¥elemental¥elements |
6 | <link rel="stylesheet" type="text/css" href="<?php echo $view->getThemePath() | ||
files¥tmp¥1616119373 ¥concrete5-8.5.5_remote_updater ¥concrete¥themes¥elemental¥elements |
6 | <link rel="stylesheet" type="text/css" href="<?php echo $view->getThemePath() | ||
themes¥stucco¥inc | 20 | <link rel="stylesheet" href="<?php echo $view->getThemePath() | ||
21 | <link rel="stylesheet" href="<?php echo $view->getThemePath() | |||
28 | <link rel="stylesheet" href="<?php echo $view->getThemePath() | |||
32 | <link rel="stylesheet" href="<?php echo $view->getThemePath() | |||
46 | <script src="<?php echo $view->getThemePath() | |||
05 | Html.php | files¥tmp¥1540292193 ¥concrete5-8.4.3_remote_updater ¥concrete¥src¥Html¥Service |
55 | $asset->setAssetURL($v->getThemePath() |
files¥tmp¥1547302368 ¥concrete5-8.4.4_remote_updater ¥concrete¥src¥Html¥Service |
55 | $asset->setAssetURL($v->getThemePath() | ||
files¥tmp¥1616119373 ¥concrete5-8.5.5_remote_updater ¥concrete¥src¥Html¥Service |
55 | $asset->setAssetURL($v->getThemePath() | ||
06 | View.php | files¥tmp¥1540292193 ¥concrete5-8.4.3_remote_updater ¥concrete¥src¥View |
53 | public function getThemePath() |
files¥tmp¥1547302368 ¥concrete5-8.4.4_remote_updater ¥concrete¥src¥View |
53 | public function getThemePath() | ||
files¥tmp¥1616119373 ¥concrete5-8.5.5_remote_updater ¥concrete¥src¥View |
54 | public function getThemePath() | ||
全 | File | path | 27行 | 調査対象は13行(内2行はカスタマイズ分) |
目次に戻る
Topに戻る
別の視点➡v9の問題(バグ?)
目次に戻る
Topに戻る
WinMerge
MAMP:(v9.1.1)環境の画像が表示されていないページのソースコードを取得し
正常に画像が表示されているHosting:(v8.5.7)環境のページのソースコードも取得し
WinMergeで比較してみました。(下図)
目次に戻る
Topに戻る
<img>タグ?
<source srcset="~~~">の違いはあるものの、
問題はそこではないんです。
<mg>タグの問題?
WinMerge画像(左側:Hosting:正常/右側:MAMP:画像表示できない)
左側:Hosting:正常
211 <img src="https://a-itc.info/application/files/2515/5368/9105/Library-600-400-028-040.jpg" alt="#" class="img-responsive">
右側:MAMP:画像表示できない
214 <img src alt="#" class="img-responsive">
そうです。src=""の定義が漏れているんです。(ここまで来ると・・・バグではないかと思うんですが・・・)
上の画像は見辛いと思いますので、それぞれの該当箇所のソースコードの画像を下に添付します。
(見やすさ重視の為、sourceには改行追加+各タグ前調整をしています)
Hosting:正常
MAMP:画像表示できない
目次に戻る
Topに戻る
<img>他も?
この様な現象は、画像が表示されない他のportfolioページでも同じ状態です。