ラベル 個別 の投稿を表示しています。 すべての投稿を表示
ラベル 個別 の投稿を表示しています。 すべての投稿を表示

2008年3月11日火曜日

Nucleus NP_ShowBlogs.phpで独自ページを作ろうと

NP_ShowBlogs.phpで特別ページ

話は前後するけど、前にインデックスページに、特別なページを入れたくて、 NP_ShowBlogs.phpを使おうと考えた。

これと決めたアイテムの番号をトップページで掲載するアイテムにすれば更新が簡単だから、
<%ShowBlogs([テンプレート], [アイテム数], [ブログ], [ページスイッチ], [ソート], [固定表示ID], [固定表示テンプレート], [カテゴリーモード], [広告コード表示モード], [カテゴリ選択時の固定記事の表示方法])%>
の引数でアイテム一つだけを表示するページをトップページにしようと考えたのだ。

NP_ShowBlogs.phpをアップロードしてプラグインに登録したら画面がおかしくなった。

Warning: NP_ShowBlogs::include_once(/home/stage58pi/www/nucleusad/plugins/showblogs/english.php) [function.NP-ShowBlogs-include-once]: failed to open stream: No such file or directory in /home/stage58pi/www/nucleusad/plugins/NP_ShowBlogs.php on line 101

Warning: NP_ShowBlogs::include_once() [function.include]: Failed opening '/home/stage58pi/www/nucleusad/plugins/showblogs/english.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/stage58pi/www/nucleusad/plugins/NP_ShowBlogs.php on line 101

showblogsのフォルダ
 english.php
 japanese-utf8.php
 japanese-euc.php
が必要らしい、慌ててフォルダをアプロードした。

NP_ShowBlogsはblog()の代わりにいれればいいらしいから、
enlighten/skintypes/mainindex.phpに
<div id="main">
<!-- <%blog(enlighten/index,6)%> -->
<%ShowBlogs(enlighten/index,4,,2,DESC)%>
</div></div></div>
として入れた。

期待通り、アイテム4つと、前後のナビゲーションが表示された。
うまくいった。
nakahara21さん、Takaさん、kimitakeさん、shizukiさん、ありがとう。m(_ _)m

....と思って最初の目的、アイテム一つの表示に挑戦。
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<div id="main">
<%ShowBlogs(enlighten/index,1,,0)%>
</div></div></div>
<%parsedinclude(footer.php)%>
で最新アイテムが表示された。
でも
<%ShowBlogs(enlighten/index,1,,0,DESC,25)%> <- そのブログの2番目のアイテムのつもり
とか
<%ShowBlogs(enlighten/index,0,,0,DESC,25)%>
とか、いろいろやったけど、指定したアイテム一つだけを表示することができない。必ず余分なアイテムが一つ表示される。

固定表示IDでなければ、最新アイテムを1つだけ表示することができる。

「メインの目次ページ」に決まったアイテム1個だけを表示すればオッケーと思ったんだけどなぁ。
これができれば、アイテムの変更で、トップページの変更ができるから簡単だと思ったんだけど挫折。(- -);

2008年3月10日月曜日

Nucleus 特注トップページ(3)

複数ブログで特注トップページ

スペシャルスキンを使った固定ページと、ブログ本体を融合させて、「固定ページ + ブログ」のサイトを作るのだ。
前回までにスペシャルスキンを使った固定ページができているところから始めてます。

まず固定ページに使っているスキンを複製する。
できたclone_enlightenの名前をenlighten_blogに変更したいが、エラーになる。"_"がチェックされているようだ。
「複製」なら使えるのに入力はチェックするなんてどうかなぁ。名前はenlighten4blogにする。

スキン「enlighten」を固定ページで使い、スキン「enlighten_blog」をブログにして組み合わせる案だ。
「スキンの編集 'enlighten': メインの目次ページ」は
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%ifcat%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%include(../../index1.txt)%>
<%endif%>
<%parsedinclude(footer.php)%>

にする。

スキンファイル管理で、ふと考えたんだけど、スキンの実態はどうなっているんだろう。

nucleus/skins/にはディレクトリは増えていない。ということはスキンファイルは元祖とcloneが同じものを使うということだろうか。
こいつぁ、気をつけないと危ないぞ。

新しいブログを作る。
2ch2.phpをアップロード
<?php
$CONF['Self'] = '2ch2.php';
include('./config.php');
selectBlog('2ch2');
selector();
?>


URLは、http://192.168.0.8/sample/nucleus/2ch2.phpだそうだ。
スキンファイル管理
skins / enlighten / header.php
にリンクを張り直す。
動作確認。これがトップページ


これがブログ部分のトップページ


これがアイテムを表示するページ


今ひとつトップページがブログっぽい。もう少し変えたいもんだ。
管理が楽なのは、

・ファイル数が少ない。
・手数が少なくて変更できる。
・下まで探さないで変更できる。
・以後の変更が簡単。

ならば、
「スキンの編集 'enlighten': メインの目次ページ」を
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<!-- page content -->
<div id="content">
<!-- page start border:teal solid 1px; -->
<div style="margin:4px 96px;padding:4px;">
<%include(../../index1.txt)%>
</div>
<!-- page end -->
</div>
<%parsedinclude(footer.php)%>

にして、index1.txtの内容変更で更新をしよう。
mainpage33.png
だいぶ格好ついてきた。この方向で行くことにする。

2008年3月9日日曜日

Nucleus 特注トップページ(2)

トップページを好きに書きたい(2)

スキンの中に文章を直接書き込むのは、それはそれでいい考えだと思ったんだけど、せっかくだから初めてincludeを使ってみる。
やりたいことはこれだ。
カテゴリが選ばれたら、カテゴリのページを表示する
ブログを指定したら、ブログのトップページの文章を表示する。
それ以外なら
(最初の)トップページの文章を表示する。


skins:vars:ifに条件分岐の例が沢山あった。
<%if(category)%%> カテゴリが選択されているかどうか
<%if(category,catname,カテゴリ名)%%> 選択中のカテゴリ名が第3引数の指定値と一致するかどうか
<%if(blogsetting,bnumber,ブログid)%%> 選択中のブログidが第3引数の指定値と一致するかどうか


「スキンの編集 'enlighten': メインの目次ページ」はこんな、
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%if(category)%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%if(blogsetting,bnumber,1)%><%include(../../index2.txt)%><%else%>
<%include(../../index1.txt)%>
<%endif%><%endif%>
<%parsedinclude(footer.php)%>


http://192.168.0.8/sample/nucleus/


http://192.168.0.8/sample/nucleus/index.php?blogid=1


http://192.168.0.8/sample/nucleus/index.php?catid=4&blogid=1


<%if(blogsetting,bnumber,1)%>てのが期待通りに動いていない
index.phpでも blogid=1とされているようだ。
<%if(blogsetting,burl,ブログのURL)%>を使ってみる。
<%if(category)%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%if(blogsetting,burl,"http://192.168.0.8/")%><%include(../../index1.txt)%><%else%>
<%include(../../index2.txt)%>
<%endif%><%endif%>

これもだめ。前と結果は同じだ。

あまりコードを書き込むと、バージョンアップやサーバー替えや構成変更の時にメンテナンスが増えるのでやりたくない。
なるべくシンプルに行きたいもんだ。
http://192.168.0.8/sample/nucleus/は
http://192.168.0.8/sample/nucleus/index.phpと同じ
http://192.168.0.8/sample/nucleus/index.php?blogid=1とも同じらしい。


ブログを変えれば blogidが変わる。新規ブログを作って逃げよう。

...また続く

2008年3月7日金曜日

Nucleus 特注トップページ(1)

トップページを好きに書きたい

ブログのトップページを専用の画面を表示させたいんだけど、どうするんだろう。
「メンバー詳細ページ」を使わないことにして、これをブログのトップページに流用できるんだろうか。
どうやって「メンバー詳細ページ」を呼べばいいんだろう。

「 メインの目次ページ 」の呼ばれ方を見てみる。
「 メインの目次ページ 」でトップページが表示されることがわかった。
ということは、[スキンの編集]の[スキンの編集 'enlighten': メインの目次ページ]で
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%parsedinclude(skintypes/mainindex.php)%>
<%parsedinclude(footer.php)%>
<%parsedinclude(skintypes/mainindex.php)%>
の部分を書き換えればトップページに表示したい文字が出そうだ。

mainindex.phpは[スキンファイル管理]->[enlighten]->[skintypes]にあった。
中身は
<div id="main">
<%blog(enlighten/index,6)%>
</div></div></div>
ここに、文字列を入れた。
<div id="main">
<div style="margin:4px 240px 4px 16px;padding:4px;">
<p><h4>ここがトップページ</h4>
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br /></p>
</div>
</div></div></div>

http://192.168.0.8/sample/nucleus/


うまくいった。
と思ったら、ブログのページも同じになった。
http://192.168.0.8/sample/nucleus/index.php?blogid=1


カテゴリのページも同じになった。
http://192.168.0.8/sample/nucleus/index.php?catid=4&blogid=1


あっけにとられてわけがわからなくなったけど、スキンをdefaultにしたら「カテゴリのページ」はちゃんとカテゴリの内容が表示されている。

やりかたが違うらしい。あっちこっちから「 メインの目次ページ 」が使われているようだ。
「 メインの目次ページ 」の呼ばれかたがわからなければ、「メンバー詳細ページ」もわからない。Nucleusが内部で決めているんだろう。

アプローチを変えないとだめそう。少なくても変更したいページ全部に「 メインの目次ページ 」が使われることはわかったわけだ。
「スキンの編集 'enlighten': メインの目次ページ」の下に、
使用可能な変数 (クリックで説明表示): additemform, adminurl, archivedaylist, archivelink, archivelist, blog, bloglist, blogsetting, category, categorylist, charset, else, elseif, elseifnot, endif, if, ifnot, include, loginform, member, nextlink, nucleusbutton, otherarchivedaylist, otherarchivelist, otherblog, parsedinclude, phpinclude, plugin, preview, prevlink, referer, searchform, self, set, sitevar, skinfile, skinname, todaylink, version

が表示されている。これがスキン変数と言われるものらしい。
これを使って組み立てろということかな。
.......続く