Tack
1
構築中のサイトで、新着情報というブログを作成し、そのブログの一覧ページ([blogname]/news/index)にCMSの機能で月別アーカイブを設置しましたが、リンク先が下記のようになってしまいます。
[blogname]/archives/date/2023/12
下記のようなリンクだと正常に動作しますが、どのようにすればよろしいでしょうか。
[blogname]/news/archives/date/2023/12
よろしくお願いいたします。
【環境情報】
・baserCMSのバージョン:4.8.0
・レンタルサーバー名:さくらインターネット
・使用テーマ:オリジナル
・PHPスキル(自己評価):D
GUSSAN
2
という状況が、よくわかりません。
「([blogname]/news/index)」というのは、テーマフォルダ内/Blog/news/index.phpという意味でしょうか?
「CMSの機能で」というのは、どういう意味でしょうか?
できれば、画面キャプチャなどを上げていただくと、わかりやすいかもしれません。
GUSSAN
3
データベースは、SQLiteでしょうかMySQLでしょうか?
管理画面で、設定>ユーティリティ>ユーティリティトップのコンテンツ管理で、「ツリー構造をチェックする」ボタンをクリックして、コンテンツ構造に問題がないかチェックしてみてください。
Tack
4
お返事が遅くなり申し訳ないです。
「([blogname]/news/index)」はサイト名をぼかしたURLで「 abc.com/news/index 」という意味になります。
CMSの機能というのは、BaserCMSのウィジェットの機能ということになります。ウィジェットの「月別アーカイブ」を使用し、ブログトップテンプレート(テーマフォルダ内/Blog/default/index.php)に$this->BcBaser->widgetAreaを記述して呼び出しています。
言葉不足で申し訳ありません。
データベースはMySQL7.4.33です。
管理画面で「ツリー構造をチェックする」ボタンを試してみましたが「コンテンツのツリー構造に問題はありません。」と表示され、変化はありませんでした。
Tack
5
デバッグモードで試したところ、404になったページに下記のエラーが表示されていました。
コントローラがありません
エラー: ArchivesController が見つかりません。
エラー: クラス ArchivesController を app/Controller/ArchivesController.php ファイル内に作成してください。
<?php class ArchivesController extends AppController { }
**注意:** このエラーメッセージをカスタマイズしたい場合は、 app/View/Errors/missing_controller.ctp を作成してください
GUSSAN
6
了解しました。
なるほど、特にデバッグモードで表示されるエラーメッセージもご指摘の状況であればそのように出ると思います。
念のためですが、上記の通りであれば、ブログ設定編集画面で、コンテンツテンプレートは正しく「default」を指定されているでしょうか?
Tack
7
はい、仰るとおりブログ設定編集画面では、コンテンツテンプレートは「default」に設定されています。
GUSSAN
8
なるほど。
本来、
「サイトURL/news/archives/date/2023/12」
と表示されるべきところ
「サイトURL/archives/date/2023/12」
と表示されてしまう現象は、コンテンツのツリー構造が壊れている場合か、サブフォルダにbaserCMSをインストールされて運用されているケースで、まれにみられるように思います。
前者の場合は、ツリー構造を修復すれば回復しますが、後者のケースは、そもそもなぜ起きることがあるのかもよく承知していないので(随分と以前のバージョンではバグだったように記憶していますが)申し訳ありませんが思い当たる解決方法がわかりません。
この辺りのことに知見のあるコアメンバーの方のコメントを待つか、クリエイティブパートナーに相談してみるかでしょうか。
お力になれずすいません。
Tack
9
BaserCMSはルートディレクトリにインストールしていますので、稀なケースなんですね…。
引き続きお分かりになる方のコメントをお待ちしつつ、私もできる限り調べてみようと思います。自作テーマなので、ファイルが足りないか、古いバージョンのファイルが混ざっているのかもしれません。
ご回答いただきありがとうございました。
Tack
10
無事自己解決しました。
themeフォルダ/Elements/widgets/blog_monthly_archives.phpが古かったようです。
元ファイル内の記載には「@since baserCMS v 0.1.0」となっていました。
新しくBaserCMSをダウンロードし、サンプルテーマのwidgetsフォルダで上書きすると動作するようになりました。
こちらで解決済みとさせていただきます。ありがとうございました。