POPSブログ

レイアウトdefault.ctpを考える

29

  Category:  basercms2012/02/20 pops 

レイアウトdefault.ctpを考える。別段問題が有る訳ではないが、ほぼHTMLの手書きになってしまった。


レイアウトdefault.ctpを考える


自分用にレイアウトなどを変更

default.ctpに対して問題が有る訳では無い。メタ部分は往々にして細やかな設定が出来るようになっているが、実際使用する場合には、何処でも同じ様な仕様であり単純である。WordPressにしろ、HEAD部は全頁同じのことが多い。読み込みJSも同じことが多い。よって手書き出来る部分は手書きにした。
いくらCMSが「何も知らずしても簡単」とは言っても、利用する場合、最低のHTMLの知識と記述は必要と考える。
直接HTMLで書けるところは手書きにした。「管理で登録」はしたが使用していない部分も多い。


  • 判定を減らし、HTMLで書ける部分は直接HTMLで書いた。
  • IE6対応のために <?xml version="1.0" encoding="UTF-8" ?> 削除。IE6対応しないなら其のままで良い。
  • TOPの判定は重要であるが、「ブログ」と「コンタクト」だけ判定を増やし追加CSSを読み込ませている。
  • JSは一律に使用するものを一括共通に読み込んでいる。
  • 画像などはほとん どwebroot から読み込んでいる。
  • レイアウト、構造、CSSは全面的に変更した。
  • 出力HTMLを少しキレイにするために、直接HTMLで書いている部分が多い。そのため「管理で登録」はしたが「使用しない」ものも多い
  • !DOCTYPE は現在 Transitional であるが、状況を見て Strict に変更予定。

修正例

単なる修正の事例です。詳細の説明はひかえます。

先頭部、<?xml version="1.0" encoding="UTF-8" ?>は削除、<?php $baser->getRoot() ?>を挿入
不正に default.ctp にアクセスした場合に、先頭部でエラーを起こすようにしている。通常は正常に作動する。


参考リスト、localhost/main/ で作動テスト、テーマは個人用 popsline、pops はブログID
サイドバー4種類をページごとに、条件分岐させた。header、hooter、グローバルメニュー、は複雑になっている。


<?php
/**
 * デフォルトレイアウト
 */
?>
<?php $baser->getRoot() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>POPS-WEB|POPS WEB</title>
	<meta name="robots" content="noindex,nofollow">
	<meta name="description" content="POPS WEB KOUBOU" />
	<meta name="keywords" content="jQuery as3 flash" />
	<link href="/main/images/favicon.ico" type="image/x-icon" rel="icon" />
	<link href="/main/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
	<link href="http://localhost/main/pops/index.rss" type="application/rss+xml" rel="alternate" title="XXXXX-RSS 2.0" />

	<link rel="stylesheet" type="text/css" href="/main/themed/popsline/css/popsline_main.css" />
<?php if($baser->getContentsName() == 'Pops'): ?>
	<link rel="stylesheet" type="text/css" href="/main/blog/css/style.css" />
<?php endif ?>
<?php if($baser->getContentsName() == 'Contact'): ?>
	<link rel="stylesheet" type="text/css" href="/main/css/contact.css" />
<?php endif ?>
<?php if($baser->isTop()): ?>
	<link rel="stylesheet" type="text/css" href="/main/css/pops-top.css" />
	<link rel="stylesheet" type="text/css" href="/main/css/pops-pbox.css" />
<?php endif ?>
	<script type="text/javascript" src="/main/themed/popsline/js/jquery-1.6.4.min.js"></script>
	<script type="text/javascript" src="/main/themed/popsline/js/jquery.corner.js"></script>
	<script type="text/javascript" src="/main/themed/popsline/js/swfobject.js"></script>
	<script type="text/javascript" src="/main/js/baser_menu.js"></script>
	<script type="text/javascript" src="/main/js/common.js"></script>
<?php if($baser->isTop()): ?>
	<script type="text/javascript" src="/main/js/top.js"></script>
	<script type="text/javascript" src="/main/js/pops-pbox.js"></script>
<?php endif ?>

</head>

<body id="<?php $baser->contentsName() ?>">

<!-- begin containers -->
<div id="containers">

<!-- begin page -->

<!-- begin header -->
<div id="header">
	<!-- begin headMain -->
	<div id="headMain">

	<h1><a href="/main/">POPS WEB</a></h1>

	<div id="top-submenu"><!-- top-submenu -->
	<ul>
		<li class="menu01"><a href="/main/about">紹介案内</a></li>
		<li class="menu02"><a href="/main/contact/index">お問い合わせ</a></li>
		<li class="menu03"><a href="/main/sitemap">サイトマップ</a></li>
	</ul>
	</div><!-- top-submenu end -->

	<span class="header_memo"><p><?php echo($baser->getDescription()) ?></p></span>

	</div><!-- end headMain -->

	<?php if($baser->isTop()): ?>
	<!-- begin header sub -->
	<div id="headSub">
	<div id="headSubInner"> </div>
	</div><!-- end header sub -->
	<?php endif ?>

	<!-- global-menu -->
	<div id="glbMenus">
	<h2 class="display-none">グローバルメニュー</h2>
		<div id="home_btn_block"><a href="http://localhost/" title="site-home"><img src="/main/images/site.gif" /></a></div>
		<ul class="global-menu">
			<li class="first menu01"><a href="/main/index">トップ</a></li>
			<li class="menu02"><a href="/main/service">アーカイブ</a></li>
			<li class="menu03"><a href="/main/pops/index">POPSブログ</a></li>
			<li class="menu04"><a href="/main/tokusyuu/index">特集記事</a></li>
			<li class="menu05"><a href="/main/links">リンク</a></li>
			<li class="last menu06"><a href="/main/download">DOWNLOAD</a></li>
		</ul>
		<!-- begin searchbox -->
		<div class="section search-box">
		<form id="ContentSearchForm" method="get" action="/main/contents/search">
			<select name="c" id="ContentC" style="display:none;">
			<option value=""></option>
			<option value="blog">blog</option>
			<option value="main">main</option>
			<option value="POPS-BLOG">POPS-BLOG</option>
			</select><input name="q" type="text" value="" id="ContentQ" /><input type="submit" id="imagebtn" value=" " /></form>
		</div><!-- end searchbox -->

	</div><!-- end global-menu -->

<!-- navigation_wrap -->
<div id="navigation_wrap">
	<div id="site_navi"><a href="http://localhost/" title="site-home"><img src="/main/images/site2.gif" /></a></div>
<?php if(!$baser->isTop()): ?>
	<!-- navigation -->
	<div id="navigation">
<?php $baser->element('navi',array('title_for_element'=>$baser->getContentsTitle())); ?>
	</div><!-- end navigation -->
<?php endif ?>
</div><!-- end navigation_wrap -->

</div><!-- end header -->

<!-- begin contents -->
<div id="contents">
<?php
$pageUrl = $this->params['url']['url'];
if ($pageUrl=="/" ) {$pageUrl="index";}
echo(" ".$pageUrl);
?>
<div>
	<!-- begin main -->
	<div id="main">

	<!-- begin contentsBody -->
	<div id="contentsBody">

<?php $baser->flash() ?>

<!-- begin read content -->
<?php $baser->content() ?>

<!-- end read content -->

<!-- begin contents navi -->
<?php $baser->element('contents_navi') ?>
<!-- end contents navi -->

	</div><!-- end contentsBody -->

	</div><!-- end main -->

	<!-- begin side -->
	<div id="side">

<?php
//文字を取り判別
$p=$baser->getContentsName(true);

if($baser->isTop()) {
	$baser->element('sidebar2');
}

if(!$baser->isTop()) {
	$no="";
	if (ereg('Tokusyuu',$p)) {$no="4";}
	if (ereg('Contact',$p)) {$no="3";}
	$baser->element('sidebar'.$no);
}

?>

	</div><!-- end side -->

</div>
</div><!-- end contents -->

<!-- end page -->

<!-- google_analytics -->
<script type="text/javascript">
var id = "";
if(id) {
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount',id]);
	_gaq.push(['_trackPageview']);
	(function(){
		var ga = document.createElement('script'); ga.type = 'text/javascript';ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl':'http://www')+'.google-analytics.com/ga.js';
		var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
	})();
}
</script>
<!-- endgoogle_analytics -->

<!-- begin footer wrap -->
<div id="footer_wrap">

	<!-- begin content_bottom -->
	<div id="content_bottom">
		<div class="to-top"><p><a href="#">▲このページの先頭へ戻る</a></p></div>
	</div><!-- end content_bottom -->

	<!-- begin footer -->
	<div id="footer">
	<div id="footerInner">
		<div id="footerMenu">
			<br />
			<p><a href="/main/index">トップ</a> | <a href="/main/service">アーカイブ</a> | <a href="/main/pops/index">POPSブログ</a> | <a href="/main/tokusyuu/index">特集記事</a> | <a href="/main/link">リンク</a> | <a href="/main/download">DOWNLOAD</a> | <a href="/main/about">紹介案内</a> | <a href="/main/contact/index">お問い合わせ</a> | <a href="/main/sitemap">サイトマップ</a></p>
			<p>Copyright(C) 1999 - <script type="text/javascript">dd = new Date();year = dd.getYear();if (year < 2000) year += 1900;document.write(year);</script> <a href="http://pops-web.com/">POPS WEB KOUBOU</a></p>
		</div>
		<p id="copyright"> Copyright(C) 2008 - <script type="text/javascript">document.write(year);</script> BaserCMS All rights Reserved. <a href="http://basercms.net/" target="_blank"><img src="/main/images/baser_power.gif" alt="BaserCMS : Based Website Development Project" border="0" /></a>  <a href="http://cakephp.org/" target="_blank"><img src="/main/images/cake_power.gif" alt="CakePHP(tm) : Rapid Development Framework" border="0" /></a> </p>
	</div><!-- end footerInner -->
	</div><!-- end footer -->

</div><!-- end footer wrap -->

</div><!-- end containers -->
</body>
</html>

画像baser.power.gif は baser_power.gif に / cake.power.gif は cake_power.gif に名前変更


参考記事: ページごとにサイドバーを変える/1

参考記事: ページごとにサイドバーを変える/2



[ この記事のURL ]


タグ:basercms , php , memo

 

ブログ記事一覧

年別アーカイブ一覧



[1]