018_コンテンツを表示する

自作CMSの作り方#18 コンテンツを表示する

こんにちは。suipediaです(∩´∀`)∩

前回は記事として入力したテキストをテキストファイルに保存するところを作りました。これで簡単なレベルにおいては記事の更新ができるようになりました。

他に装飾文字列の挿入や画像挿入、関連記事の設定等、編集ページにおいてやることはまだあるのですが、それらはひとまず置いておいて、今回は記事を表示するところをやります。

今は

01_新着情報

これらの記事ページに移ろうとしてもエラーになっちゃいます。

02_エラー

こう↑なります。まだ実装していないのでね(;´・ω・)

そこを今回は解消していきます!

今回はあなたの環境の・・・

http://localhost/contents/living/choice/
(引越し業者の賢い選び方)

このページを検証用に使っていきます。

では、参りましょうっ(∩´∀`)∩


body.phpを修正する

これまでにもカテゴリページやアーカイブ、編集用サイドメニューを表示させるためにbody.phpを編集してきました。

今出ているエラーが先ほどもお伝えしました・・・

02_エラー

こういう状態なのですが、素直に解消しようとすると

C:/xampp/htdocs/cms/contents/living/choice/c.php

というファイルを用意する必要があります。ただ、それでいくとコンテンツを作るたびにその該当フォルダにc.phpを用意することになり非効率ですよね。

・・・という話はこれまでもしてきました。

ですので、そういうことをしなくていいようにbody.phpを編集します。

手を加える内容はコンテンツページだったらそのフォルダの各テキストファイルを読み込んで表示できるプログラムファイルをインクルードする、です。

今のbody.phpは・・・

03_今のbodyファイル

13~20行目にかけてアーカイブとその他の場合の分岐を書いています。この2つの処理の間に、

}else if(isPublicContents($page)){
	/** コンテンツぺージ */
	$p = "";
	include_once(getRoot()."/src/parts/contents.php");

上記のソースを差し込んでください。

04_編集後のbody

このようになればOKです。

未知の関数が出てきましたね。function.phpに追加しましょう。

/** 公開対象のコンテンツかどうかを返す */
function isPublicContents($contents){
	return $contents['category_id'] > 1 && $contents['contents_id'] > 0;
}

「カテゴリIDが1より大きくかつ、コンテンツIDが0より大きい」という条件を満たすかどうかを返す関数です。&&は「かつ」を表しています。どちらもtrueだったときにだけtrueを返します。

カテゴリIDは0なら管理者用のページ、1はトップページとしてきたので実際には2以上がユーザ向けのコンテンツページということです。

また、コンテンツIDが0のデータはカテゴリのURLのみの文字列を出すためのダミー結合データとして作ったのでした。ですから、こちらも実際にユーザ向けのページとして機能するのはコンテンツIDが1以上のデータです。


さて、この状態でですね。ブラウザをリロードしていただくと・・・

05_エラー

contents.phpがない!と言われていますね。このファイルが今回のメインディッシュです。

心して、かかってください(∩´∀`)∩


contents.phpの配置、解説

では早速、以下のフォルダに

06_配置対象のフォルダ

以下のファイルを配置してください。

ここから先は

25,212字 / 13画像 / 3ファイル
この記事のみ ¥ 300

この記事が気に入ったらサポートをしてみませんか?