自作CMSの作り方#18 コンテンツを表示する
こんにちは。suipediaです(∩´∀`)∩
前回は記事として入力したテキストをテキストファイルに保存するところを作りました。これで簡単なレベルにおいては記事の更新ができるようになりました。
他に装飾文字列の挿入や画像挿入、関連記事の設定等、編集ページにおいてやることはまだあるのですが、それらはひとまず置いておいて、今回は記事を表示するところをやります。
今は
これらの記事ページに移ろうとしてもエラーになっちゃいます。
こう↑なります。まだ実装していないのでね(;´・ω・)
そこを今回は解消していきます!
今回はあなたの環境の・・・
http://localhost/contents/living/choice/
(引越し業者の賢い選び方)
このページを検証用に使っていきます。
では、参りましょうっ(∩´∀`)∩
body.phpを修正する
これまでにもカテゴリページやアーカイブ、編集用サイドメニューを表示させるためにbody.phpを編集してきました。
今出ているエラーが先ほどもお伝えしました・・・
こういう状態なのですが、素直に解消しようとすると
C:/xampp/htdocs/cms/contents/living/choice/c.php
というファイルを用意する必要があります。ただ、それでいくとコンテンツを作るたびにその該当フォルダにc.phpを用意することになり非効率ですよね。
・・・という話はこれまでもしてきました。
ですので、そういうことをしなくていいようにbody.phpを編集します。
手を加える内容はコンテンツページだったらそのフォルダの各テキストファイルを読み込んで表示できるプログラムファイルをインクルードする、です。
今のbody.phpは・・・
13~20行目にかけてアーカイブとその他の場合の分岐を書いています。この2つの処理の間に、
}else if(isPublicContents($page)){
/** コンテンツぺージ */
$p = "";
include_once(getRoot()."/src/parts/contents.php");
上記のソースを差し込んでください。
このようになれば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以上のデータです。
さて、この状態でですね。ブラウザをリロードしていただくと・・・
contents.phpがない!と言われていますね。このファイルが今回のメインディッシュです。
心して、かかってください(∩´∀`)∩
contents.phpの配置、解説
では早速、以下のフォルダに
以下のファイルを配置してください。
この記事が気に入ったらサポートをしてみませんか?