いつスイッチすべき?

既存のサイトのアップグレードであれば、常にフルバックアップをとり、ローカルなどでテストアップグレードを行い、アドオンやカスタマイズ部分が正常に動くかを確認してください。また Version 8 の最新版、8.5.x (この時点で 8.5.6) までアップデートを行い、インストールされているアドオン・テーマを見直してください。ほとんどが見た目に関する変更で、それらは開発者にとっては比較的簡単な修正になると思われます。ただ、いくつかの複雑なアドオンは V9 では壊れてしまうかもしれません。アップグレード前に、マーケットプレイスの一覧に「Version 9 Ready」と書かれていることを確認してください。V9 アップグレード前には積極的にテストを行ってください。マーケットプレイスでは開発者が積極的にアドオンのアップデートやテストを行っています。シームレスなアップデートができるまで数ヶ月ほどお待ちください。

新規で Concrete CMS のサイトを作成しますか?であれば、Version 9 で始めてください!Version 9 は本番運用可能です。楽しいですし、我々 (PortlandLabs は)すでに本番環境で1年以上利用しています。

https://concrete5-japan.org/news/concretecms-900/

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にバージョンアップすることにします。

前準備

ダウンロード
C02-212-156-8.jpg

日本語化モジュールも最新版に

 http://translate.concretecms.org/translate/package/concrete5

  9.1.1の.moファイルをダウンロード(      Progress:88%進捗)

日本語化モジュールは後で、リネームします。
C04-204-156--.jpg

ダウンロードしたconcrete-cms9.1.1.zipを解凍します。

この時点で、concrete-cms-9.1.1フォルダの中に、concrete というフォルダが入っている状態になっているはずです。

バージョンアップに必要なのは、concrete フォルダのみです(新規インストール時のみ全部が必要となります)、それ以外は削除します。

C06-768-205--.jpg

Concrete-cms-9.1.1 フォルダを、サーバ(今回の場合はMAMP)の updates/ ディレクトリにアップロード(今回の場合は、移動)します。

C07-768-238--.jpg

日本語モジュール(translations-ja_JP.mo)を、以下のフォルダ配下(\application\languages\ja_JP\LC_MESSAGES)にコピーして(messages.moに)リネームします。(/application/languages/配下には旧バージョンのmessages.moが存在する為、これもリネームします。)

C10-768-210--.jpg

messages.mo 👈 この時点で末尾sが付いていなかった(後から英語表記のままで判明)

 

アドオン

v8まで利用していたアドオン
(WordPressで言うところのPluginみたいなもの、

Concrete CMSの場合は、ほとんどの機能がCMS内で実現されている為
(問い合わせフォームやXmlSiteMapなど)アドオンはあまり必要とはされない)の内、

v9対応済のアドオン(先日ダウンロードしておいたもの)を、フォルダ配下にコピーします。

(実は、ここも後で障害となる。バージョンアップ後に行った方が良い事が、後で判明)
C13-768-273--.jpg

以下は、現状の本環境で囲んだもの以外は、
本環境のv9移行後は使用しない(Theme stuccoは、観察結果次第
C14-512-509--.jpg

これらのアドオンは、バージョンアップ後にマーケットプレイスから選択してアドオンのバージョンアップとして行う方法もあるのですが、今回は本体のメジャーバージョンアップなので、事前に、使用しているアドオンがv9に対応しているかどうか調べ、対応しているものだけ事前にダウンロード&解凍しておきました。(古いアドオンのフォルダはリネームしました。)
C15-768-544--.jpg

 ⇑これが、後からErrorの原因になるとは、この時は未だ、気付いていませんでした。

これで、バージョンアップの準備がととのいました。

目次

Topに戻る

stuccoへのカスタマイズはどうなるか?

少し不安なのが、Theme漆喰(stucco)でv8までしか対応していないので、バージョンアップ後に不具合が起きた場合は、標準のthemeエレメンタル(Elemental)に変更する必要があります。またその場合、stucco独自カスタマイズした部分(スマホ画面からタップで電話する機能)をエレメンタルに対してカスタマイズする必要性があります)
C16-768-448--.jpg

で囲んだ.cssは、私が作成した追加.css \application\themes\stucco\css\

  •   iPhone-iframe.css
  •   j_bootstrap.css
  •   telBtnFix.css

C17-768-318--.jpg

で囲んだ.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をアップデート]に、アップロードしたバージョンが表示されていますので、更新ボタンをクリックして実行します。
C20-768-529--.jpg

ログインエラー

どうやら、\Packageフォルダ配下をv9対応のパッケージにして、v8対応分をリネームしたことによる影響の様です。

C21-1280-739--.jpg

Whoops\Exception\ErrorException

C:\MAMP\htdocs\concrete8.5.7\packages\ec_recaptcha_v8\controller.php 14

C15-768-544--.jpg

 

前の処理で、v8分をリネームしていたのが間違い(v9分は後から処理(D/L)する)

\Packageフォルダ配下をv8対応に戻します

再び、ログインから

ログイン >[管理画面 > システムと設定 > concrete5をアップデート]に、アップロードしたバージョンが表示されていますので、更新ボタンをクリックして実行します。

 

 ➡  English(ここも、前もって日本語化モジュールを/application/languages/配下のv8(旧バージョン)をmessages_old.moにリネームしていたせいです)
→このまま進めます。➡ System & Settings

C24-768-496--.jpg

System & Settingsの、最下段のUpdate concrete5をクリック
C25-512-731--.jpg

インストール対象のv9.1.1が表示されています。「Install Update」をクリックします。

(既存インストールのThemeAdd-Onも同時に表示されていますが、これらは後で処理
C26-1280-1381--.jpg

An unexpected error occurred.          ➡ 予期しないエラーが発生しました

Access Denied                                        ➡ 「Access Denied」とは、特定のエラーが発生した時に各サイトのデータを発信しているWebサーバーが返すエラーの一つ

MAMPの再起動から。(途中でフォルダ名を変更したまま継続したせいかも知れない)

再度 adminでログインを試みる ➡ ログインエラー

http://localhost/Concrete8.5.7/index.php/dashboard/welcome
C27-1280-638--.jpg

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\configupdate.php削除して

MAMP起動からリトライ

 想定理由、既にv9.1.1となっているが、アップデートが完了していないと思われる。

(それでもダメな場合は、reCaptchaフォルダのリネーム
C28-768-326--.jpg​​​​​​​

update.phpを削除
C29-768-294--.jpg

MAMPを再起動して
C30-600-254--.jpg

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

以下省略

C31-1280-844--.jpg​​​​​​​

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/ で、サイト表示はできた
C32-1280-701--.jpg

ページのソースコードを確認

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_v8BackUp_v9に退避

 

F5リフレッシュで ➡ add-on Update

ログイン中の表示
C33-1280-1135--.jpg

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」 をクリック
C34-768-328--.jpg

これは、これは、v9対応済のマニュアルナビManualNav

C35-768-387--.jpg

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/         

この後で、管理画面からキャッシュクリアで日本語表示に
C36-768-254--.jpg

各ページをブラウズ

C:\MAMP\htdocs\concrete8.5.7\packages\

 ec_recaptcha を置かないと、問い合わせページと簡易予約ページがエラーになる
(reCAPTCHAエラーチェックを設定している為)

C38-768-349--.jpg

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)

C39-1280-630--.jpg

本環境(v8.5.7)

C40-1280-672--.jpg


 

他にも、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 ファイルが存在しない)

C41-768-272--.jpg

アップデート(バージョンアップ)を繰り返してきた本環境には存在

C43-768-479--.jpg

update.php の内容(本環境)

C44-512-438--.jpg

 

バージョンアップ後後から確認)MAMP環境

C45-768-308--.jpg

このファイル(update.php)に、updates/ ディレクトリ内のどのバージョンが使われるようになったのかが記録されています。

update.php の内容(MAMP環境)

 

C46-768-312--.jpg

目次に戻る

Add-onの更新

管理画面 > Extend concrete5  >「アドオンのアップデート
(解凍せず、そのままupdatesフォルダ配下に置けば良い)
マーケットプレイスに接続して、最新版を再度ダウンロード

C47-768-340--.jpg

 

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       アンインストール

アップデート前
C48-768-1517--.jpg

アップデート&アンインストール後
C49-768-1181--.jpg

目次に戻る

モバイルプレビュー

モバイルプレビューとStuccoカスタマイズ確認

stuccoに独自カスタマイズ

タップで電話できます」ボタン

C50-380-666--.jpg

ページのどこにいても

どのページにいても

スマホからタッブで電話をかけられるカスタマイズ

v9にstuccoが対応していないということから・・・の心配事

v9.1.1のデバイスプレビュー

iPhone13のプレビュー

デバイス プレビューで

カスタマイズの「タップで電話できます」が表示された(問題なし)

 

ConcreteCMSにiPhone13のプレビューが追加された。
iPone6 ~ 8 プレビュー

ConcreteCMS
のiPone6 ~ 8 プレビュー

目次に戻る

開発・テスト環境での投稿テスト

v9.1.1での投稿テスト

ファイルマネージャの操作方法が多少変わったのと、投稿編集画面の一部が英語表現のまま、でしたが、無事投稿テストもうまく行きました。

 

サムネイル(ブログカード)のキャプチャ画像
C53-768-216--.jpg

 

投稿本文のキャプチャ画像

 FontAwesome5の追加.css(インライン.css)でのアイコン表示もうまく行きました。

( 部分)
C54-768-903--.jpg

目次に戻る

自動化 > タスク

V8までは、最適化>「自動実行ジョブ」だった

重要事項!Concrete version9では、ジョブが非推奨となり、今後のバージョンでは実行できない可能性があります。その代わりに、 タスクを使うことを検討してください。タスクは、キューイング、非同期操作、完全なロギング、パラメータ、スケジューリングなどをサポートしています。

 

尚、v8までに設定していたジョブは、V9へのバージョンアップで、自動的にタスクに移行された。
C55-768-1135--.jpg

目次に戻る

自動化 > タスクのアクティビティ

アクティビティ

C56-768-996--.jpg

目次に戻る

テーブル数は、433に

‘v8以前からあったワークフロー用の使っていないテーブルのほか、v9で追加された機能ブロックの追加によりテーブル数が、362から、433になりました。

 

新Table

目次に戻る

※.

Id新TableRec
a atDuration 0
atDurationSettings 0
Id新TableRec
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新TableRec
c CalendarEventCustomSummaryTemplates 0
CalendarEventSummaryTemplates 0
Id新TableRec
d DesignTags 0
Id新TableRec
e Editor 1
Id新TableRec
f FileExternalFileProviders 0
FileExternalFileProviderTypes 0
Id新TableRec
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新TableRec
m MessengerBatches 4
MessengerMessages 1
MessengerProcesses 5
MessengerScheduledTasks 0
MessengerTaskProcesses 5
Id新TableRec
p PageContainerInstanceAreas 0
PageContainerInstances 0
PageContainers 0
PageSummaryTemplateCustomCollection 0
PageSummaryTemplateCustomCollectionTemplates 0
PageSummaryTemplates 386
PageThemeCustomSkins 0
Id新TableRec
s SavedGroupSearchQueries 0
SavedLogSearchQueries 0
SummaryCategories 2
SummaryFields 9
SummaryTemplateCategories 2
SummaryTemplateFields 4
SummaryTemplates 1
SummaryTemplateTags 0
Id新TableRec
t Tasks 12
TaskSets 3
TaskSetTasks 12
TreeExpressEntrySiteResultNodes 0
TreeGroupFolderNodes 0
TreeGroupFolderNodeSelectedGroupTypes 0
Id新TableRec
u UserFavoriteFolders 0
UserPrivateMessagesAttachments 0
Id新TableRec
_ _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例

C57-768-291--.jpg

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)では正常に表示されます。(右側の画像)

ここは、もうしばらく調べ原因追求対応が必要です。(たぶんテーブルデータからパスが渡っていないことが原因)

C58-512-428--.jpg

 

この画像のパスは、

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 が、あります。

C59-512-342--.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.7v9.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行分)を抽出して
FileImageThumbnailPaths_01.jpg

Sublime Textに貼り付けて、
FileImageThumbnailPaths.sql保存します。

FileImageThumbnailPaths_02.jpg

目次に戻る

FileImageThumbnailPaths.sqlをインポート

phpMyAdminから、FileImageThumbnailPaths.sqlインポートします。

FileImageThumbnailPaths_03.jpg

無事にインポートできました。

FileImageThumbnailPaths_04.jpg

10,266

FileImageThumbnailPaths_05.jpg

サムネイル部分の画像が表示されず

画像は撮りませんでしたが、やはりサムネイル部分の画像が表示されず"#"のままです。
ここで、先日の画像「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
f_2515Subordinate_M1.jpg


C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_listing\2515\5368\9105\Library-600-400-028-040.jpg あり
f_2515Subordinate_M2.jpg


C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_detail_2x\2515\
配下に"
5368"フォルダがありません

f_2515Subordinate_M3.jpg

サムネイルはサイズによって生成しないものもありますから、存在しないものがあっても良いのですが

念のため、XSERVERの方も確認します。(FTPで長時間要した為、MAMP側と同期がとれているか)

同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
f_2515Subordinate_X1.jpg

同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
f_2515Subordinate_X2.jpg

同様に、\2515\配下に"5368"フォルダがありません。

f_2515Subordinate_X3.jpg

目次に戻る

✅考察

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

searchThumbnailPathGrepで探してみました。(悪あがきですが...)
気になる記述を見つけました。

$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配下にありました。ThumbnailMiddleware_php.jpg

目次に戻る

サムネイルの画像のパス ?

もし、この.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で比較してみました。(下図)

portfolio_Library_Comp-1920-639-176.jpg
Hosting(v8.5.7)  vs MAMP(v9.1.1)

目次に戻る

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:正常
portfolio_Library_Hosting_s-1920-826-132.jpg

 

MAMP:画像表示できない
portfolio_Library_MAMP_s-1920-1000-140.jpg

 

目次に戻る

Topに戻る

<img>他も?

この様な現象は、画像が表示されない他のportfolioページでも同じ状態です。
portfolio_Comp-1920-845-224.jpg