Movabletypeコンテンツデータを複数使って1ページにする。

らら
らら

はじめに

mt:Contentsの入れ子ができるのか、テストを兼ねて・・やってみた。。

設計してみる・・

TOPページにこんな感じでだして・・

あと同じものを、診療科TOPページにもどうように・・つかえるように

コンテンツデータを複数使って1ページにする。

詳細ページのイメージ

診療科・病名・症例・担当医を出すイメージ

コンテンツデータを複数使って1ページにする。

カテゴリセットに下記

カテゴリはシステム構築時のマスターの役割・・で

手入力だと、マッチしなかったりするので


診療科
病名

コンテンツタイプ

コンテンツタイプ名前と入力項目名


診療内容
	診療科カテゴリ
	説明文
	診療イメージ画像
病名
	診療科カテゴリ
	病名カテゴリ
	説明
	写真
症例
	病名カテゴリ
	タイトル
	写真
	説明
担当医
	診療科カテゴリ
	担当名
	説明
	写真

診療科カテゴリのイメージ

labelとbasenameは使用するので正式な名称をつけてください。

basenameはクラス名・ディレクトリ名で使用します。サンプルでは適当な・・catとかなので・・

コンテンツデータを複数使って1ページにする。

病名のカテゴリ

コンテンツデータを複数使って1ページにする。

コンテンツタイプ

診療内容

ここでは、カテゴリでできない部分を補足しています。説明文だったり、診療イメージだったり、TOP用のアイコンとかも別途準備してもよいかも・・

コンテンツデータを複数使って1ページにする。

病名

コンテンツデータを複数使って1ページにする。

症例・担当医も同様に・・

Movabletypeのタグは

TOPのBOX表示、メニューなど

カテゴリセットで登録された全件を表示しつつ、診療内容の該当、診療科カテゴリで抽出する。

ここでは、あくまでの値の出力のみなので、お好みでタグを書いてください。ワイヤーフレーム通りではありません。


<mt:CategorySets name="診療科">
	<mt:TopLevelCategories>
		<mt:CategoryLabel setvar="cate">
		<p>■<mt:var name="cate"></p>
		<p><mt:CategoryBasename></p>
		<mt:Contents content_type="診療内容" field:ユニークID="$cate">
			<p><mt:ContentField content_field="説明文"><mt:ContentFieldValue></mt:ContentField></p>
			<mt:ContentField content_field="診療イメージ画像">
				<img src="<$mt:AssetURL$>">
			</mt:ContentField>
		</mt:Contents>
	</mt:TopLevelCategories>
</mt:CategorySets>

リンクにする場合は下記で


<$mt:WebsiteURL encode_xml="1"$>/department/<mt:CategoryBasename>/

クラス名で使う場合は・・


<div class="<mt:CategoryBasename>">

科の詳細ページは

コンテンツタイプアーカイブで作ります。

コンテンツデータを複数使って1ページにする。

コンテンツデータを複数使って1ページにする。

アーカイブマッピングは下記

カテゴリ毎(診療科)で作る・・

カテゴリ毎にすることで、CategoryLabelで科名を取得でき、CategoryBasenameでは、class名、ディレクトリ名で参照できます。

%-cとか詳しくは・・本家で・・どうぞ。

https://www.movabletype.jp/documentation/appendices/archive-file-path-specifiers.html


department/%-c/%-f

コンテンツデータを複数使って1ページにする。

ユニークIDは、各診療科・病名のものを入れます。

テンプレートの編集の右サイドメニューで、ユニークIDが取得できます。

コンテンツデータを複数使って1ページにする。

Movabletypeのタグはこんな感じで・・

カテゴリのアーカイブにしたのでCategoryLabelをdepartmentに入れて。これをもとに該当の科を抽出します。

病名は、diseaseという変数でいれています。

あ。あとワイヤーフレーム通りじゃないですよ・・・

病名と症例も並び替えが必要であれば。。コンテンツタイプで並び順つけて、sort_by=、sort_order=つけてください。


	<mt:CategoryLabel setvar="department">
	<p class="<mt:CategoryBasename>">■<mt:var name="department"></p>
	<mt:Contents content_type="診療内容" field:ユニークID="$department">
		<p><mt:ContentField content_field="説明文"><mt:ContentFieldValue></mt:ContentField></p>
	</mt:Contents>
	<p>●病名リスト</p>
	<mt:Contents content_type="病名" field:ユニークID="$department">
		<p>■<mt:ContentField content_field="病名"><mt:CategoryLabel><mt:CategoryLabel setvar="disease"></mt:ContentField></p>
		<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
		<mt:ContentField content_field="写真">
			<img src="<$mt:AssetURL$>">
		</mt:ContentField>
		<p>●症例リスト</p>
		<mt:Contents content_type="症例" field:ユニークID="$disease">
			<p>■<mt:ContentField content_field="タイトル"><mt:ContentFieldValue></mt:ContentField></p>
			<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
			<mt:ContentField content_field="写真">
				<img src="<$mt:AssetURL$>">
			</mt:ContentField>
		</mt:Contents>
	</mt:Contents>
	<p>●担当医リスト</p>
	<mt:Contents content_type="担当医" field:ユニークID="$department">
		<p>■<mt:ContentField content_field="担当名"><mt:ContentFieldValue></mt:ContentField></p>
		<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
		<mt:ContentField content_field="写真">
			<img src="<$mt:AssetURL$>">
		</mt:ContentField>
	</mt:Contents>

例は、病院のイメージですが、学校の学部だったり、会社の部署だったりと応用はできるかと・・

注意)症例は、病名ごとになっているため、同じ症例を病名別に登録しないといけません。。

応用で・・


<mt:CategorySets name="診療科">
	<mt:TopLevelCategories>
		<mt:CategoryLabel setvar="department">
		<p class="<mt:CategoryBasename>">■<mt:var name="department"></p>
		<mt:Contents content_type="診療内容" field:ユニークID="$department">
			<p><mt:ContentField content_field="説明文"><mt:ContentFieldValue></mt:ContentField></p>
		</mt:Contents>
		<p>●病名リスト</p>
		<mt:Contents content_type="病名" field:ユニークID="$department">
			<p>■<mt:ContentField content_field="病名"><mt:CategoryLabel><mt:CategoryLabel setvar="disease"></mt:ContentField></p>
			<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
			<mt:ContentField content_field="写真">
				<img src="<$mt:AssetURL$>">
			</mt:ContentField>
			<p>●症例リスト</p>
			<mt:Contents content_type="症例" field:ユニークID="$disease">
				<p>■<mt:ContentField content_field="タイトル"><mt:ContentFieldValue></mt:ContentField></p>
				<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
				<mt:ContentField content_field="写真">
					<img src="<$mt:AssetURL$>">
				</mt:ContentField>
			</mt:Contents>
		</mt:Contents>
		<p>●担当医リスト</p>
		<mt:Contents content_type="担当医" field:ユニークID="$department">
			<p>■<mt:ContentField content_field="担当名"><mt:ContentFieldValue></mt:ContentField></p>
			<p><mt:ContentField content_field="説明"><mt:ContentFieldValue></mt:ContentField></p>
			<mt:ContentField content_field="写真">
				<img src="<$mt:AssetURL$>">
			</mt:ContentField>
		</mt:Contents>
	</mt:TopLevelCategories>
</mt:CategorySets>

番外

あと、会社概要だったり、募集要項だったり、下記のデザインとか使う場合

コンテンツデータを複数使って1ページにする。

Movabletypeでは、コンテンツフィールド項目は同じでも問題ないので名前だけ別にすればよい・・

なので名前を会社概要・募集要項だったりと変えて使い回し・・で

コンテンツデータを複数使って1ページにする。

sort_orderはお好みで・・・昇順がで・・・

1行説明文空白なら、複数行説明文を表示する・・みたいな・・


<mt:Contents content_type="会社概要" sort_by="field:並び順" sort_order="descend">
	<dl>
		<dt><mt:ContentField content_field="見出し"><mt:ContentFieldValue></mt:ContentField></dt>
		<dd>
		<mt:ContentField content_field="1行説明文">
			<mt:ContentFieldValue>
		<mt:Else>
			<mt:ContentField content_field="複数行説明文"><mt:ContentFieldValue></mt:ContentField>
		</mt:ContentField>
		</dd>
	</dl>
</mt:Contents>

並び順の入力方法は

はじめは下記で100番単位で加算させておく,1,2,3,4で登録してしまうと

2と3の間に入れたい場合、全部、並び順を変更しないといけないので・・

100番単位にすれば、100と200の間に入れたい場合 110とかにして。100と110の間に入れれるようになるので、再採番しなくてもよいです。


見出し1	100
見出し2	200
見出し3	300
見出し4	400
見出し5	500

差し込みイメージ

デザインするときは、下記をイメージして、配置するとよいかもね。

コンテンツデータを複数使って1ページにする。

ウェブページの本文と続き・・の場所

コンテンツデータを複数使って1ページにする。

Movabletypeのサンプルテンプレートでは、ウェブページ詳細部分でコンテンツデータの記述をします。

ウェブページでフォルダを使っている場合フォルダーで切り分けします。


	<mt:SetVarBlock name="htmlfile"><$mt:EntryBasename$></mt:SetVarBlock>
	<mt:SetVarBlock name="page_folder"><mt:PageFolder><$mt:FolderBasename$></mt:PageFolder></mt:SetVarBlock>
	<mt:if name="page_folder" eq="company">
		<mt:if name="htmlfile" eq="index">
			ここに上部のコンテンツタイプのタグをおく・・
		<mt:Else>
		</mt:if>
	<mt:else name="page_folder" eq="recruit">
			リクルートはここ?
	<mt:else>
	</mt:if>

さいごに

とりあえず社内用

関連記事