header_required.phpをオーバライドする方法は、お望みじゃないかも知れませんが、
オリジナルの40〜65行目を以下に替えてみました。(動作未検証です)
<meta charset="UTF-8">
<?php
$akd = $c->getCollectionAttributeValue('meta_description');
$akk = $c->getCollectionAttributeValue('meta_keywords');
$w_akd = "";
if ($akd) {
$w_akd = ',' . htmlspecialchars($akd, ENT_COMPAT, APP_CHARSET);
}
$w_akk = "";
if ($akk) {
$w_akk = ',' . htmlspecialchars($akk, ENT_COMPAT, APP_CHARSET);
}
$w_tag = "";
if($options instanceof SelectAttributeTypeOptionList && $options->count() > 0) {
$w_tag = implode(',', $options);
}
$w_pageTitle = htmlspecialchars($pageTitle, ENT_COMPAT, APP_CHARSET);
$w_site = htmlspecialchars(SITE, ENT_COMPAT, APP_CHARSET);
?>
<meta name="keywords" content="★<?php echo $w_akk ?>" />
<meta name="description" content="★<?php echo $w_akd ?>" />
<meta name="viewport" content="width=device-width">
<meta property="og:type" content="article" />
<meta property="og:title" content="<?php echo $c->getCollectionName(); ?>" />
<meta property="og:description" content="★<?php echo $w_akd ?>">
<meta property="og:image" content="http://~.png" >
<meta property="og:url" content="http://~.html">
<meta property="fb:app_id" content="0000000000000000" />
<title><?php echo $c->getCollectionName(); ?>|<?php echo $w_tag ?>|<?php echo $w_site ?></title>
ただ、動作させた訳ではないので、動かなかったらごめんなさい。
既存のPHPファイルにも参考になるロジック(CMS上のデータを取得する方法)が
沢山あるので、参考にされると良いと思います。
axle
Re: title表記の変更について
ありがとうございます!
まずは詳細ページで着手したいので、それを例にします。
例えば、こんな感じにしたいです。
★=固定値を出力
■=値があればその値を出力(カスタム属性を利用する予定)
◎囲み=CMS管理の記事タイトルやカスタム属性などを出力
CSSとjsはルート直下のものを利用しますので、このままで構いません。
★や■、◎内にconcret5からの記述を書けばいけそうな気がしています。
--------------------------------------------
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="keywords" content="★■">
<meta name="description" content="★■">
<meta name="viewport" content="width=device-width">
<meta property="og:type" content="article" />
<meta property="og:title" content="◎記事タイトル◎" />
<meta property="og:description" content="★■">
<meta property="og:image" content="http://~.png" >
<meta property="og:url" content="http://~.html">
<meta property="fb:app_id" content="0000000000000000" />
<title>◎記事タイトル◎|◎カテゴリ◎|◎任意の文字列(サイトの名前に近いもの)◎</title>
<link rel="stylesheet" href="/common/css/master.css" media="screen,print">
<!--[if lte IE 8]><link rel="stylesheet" href="/common/css/ie.css" media="screen,print"><![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="/common/js/common.js"></script>
</head>
<body>
--------------------------------------------
ごく普通のソースですが、これをこのままの順で表現する事はデフォルトのheader_requiredを使っている以上できないと思っています。
なので、header_requiredをCMSの編集機能のみにして、titieとmetaの出力はページ(テンプレート側)でなんとかしたいなと。
そもそもheader_requiredにシステム必須とtitleとmetaが入っているのがよろしくないと思っています。
(ソース構造もそれに縛られてしまう為、必須とそれ以外で分離しておくべき)
不明点などございましたら、何なりとお願い致します。