ラベル ページ の投稿を表示しています。 すべての投稿を表示
ラベル ページ の投稿を表示しています。 すべての投稿を表示

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

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

2008年3月2日日曜日

Nucleus スペシャルスキンパーツで独立ページ

独立ページを作りたい

WordPressだと、投稿ページのほかに「ページ」というので共通のスキンを使った独立したページを作ることができる。これをNucleus でもやりたいもんだ。

[レイアウト設定]>[スキン編集]でスキンを選ぶと「編集」のページに「スペシャルスキン」という入力窓が現れる。

スキン & テンプレートには、スキンの種別は8つで、item(個別アイテム)、archive(アーカイブ)、archivelist(アーカイブリスト)、archivelist(アーカイブリスト)、search(検索)、member(メンバー)、imagepopup(ポップアップ画像)、index(メイン)とerror タイプだと書いてあった。それ以外の「スペシャル」だとするとこいつぁ怪しいぞ。

「スペシャルスキン」で検索すると、当たりだった。これで独立ページが作れるらしい。
最終的にTips & Suggestions
の下の方にHow to create a Special skin partが見つかった。
英語だけど、この際ないよりはマシ。

    How to create a Special skin part

  1. Enter the Nucleus admin area and go to Skins management page (Layout>Skins). Find your skin and click the Edit link in the right column.

  2. Under the list of skin parts there is a sections called Special skin parts. In the field type the name of your special skin part and then click the Create button. (I'm using the name 'About' for my example). You then get a Edit skin part form, just like for any other skin part, that you can add content, skin variables or anything else. If you want to make it look like the rest of your site, you can copy the contents of the Main Index skinpart here and replace the <%body(...)%> skin variable with the contents of the static page.

    For example, using the default skin, the contents of the About skin part would look something like this:

    <%parsedinclude(head.inc)%>

    <!-- page header -->
    <%parsedinclude(header.inc)%>
    ...............
    コードがダーっと書いてあって、
    ...............
    <!-- page menu -->
    <h2 class="hidden">Sidebar</h2>
    <div id="sidebarcontainer">
    <%parsedinclude(sidebar.inc)%>
    </div>

    <!-- page footer -->
    <%parsedinclude(footer.inc)%>

  3. Now to access this page, you would point your browser (or put a link in your skin somewhere) to

    www.yourdomain.tld/index.php?special=About
  4. You can edit this skin part just as you would any other skin part and most skin variables and plugins will probably work.

    Note: You may want to keep your static content in a file called About.html in the skins/default/ directory (if using the default skin) and instead of typing the content of the page in the skin part, just put <%include(About.html)%>. There's almost no restriction on what these pages can contain.
一応exciteの翻訳窓に放り込んでみた。
でも「どうSpecial皮膚部分を作成するか。」はあんまりなので、S/皮膚/skin。
    どうSpecialSkin部分を作成するか。

  1. Nucleusアドミン領域に入ってください、そして、Skins管理ページ(レイアウト>スキン)に行きます。 Skinを見つけてください、そして、正しいコラムをEditリンクをクリックします。

  2. Skinの部品のリストの下では、SpecialSkinの部品と呼ばれるセクションがあります。 分野に、あなたの特別なSkin部分の名前をタイプしてください、そして、次に、Createボタンをクリックします。 (私は例に名前'About'を使用しています。) 次に、あなたはまさしくいかなる他のSkin部分などのようなEditSkin部分フォームも得て、内容、Skin変数または他の何かを加えることができます。 それをあなたのサイトの残りに似させたいなら、あなたは、静的なページのコンテンツにここにMain Index skinpartのコンテンツをコピーして、<%本体( )%>Skin変数を置き換えることができます。
    例えば、デフォルトSkinを使用して、AboutSkin部分のコンテンツはこのように見えるでしょう:
全然わからない。ますます混乱しちゃう。
とにかくやってみる。
[レイアウト設定]>[スキン編集]で、いま使っている「greygradient」の「編集」をクリックする。


「スキンの編集 'greygradient'」の画面で「スペシャルスキンパーツ」に、新しいスキンパーツ名を入力し「作成」をクリックする。


「スキンの編集 'greygradient': About」にHow to create a Special skin partにあったコードをコピーする。


「スキンの更新」をクリックする。
「メッセージ: スキンデータが保存されました」と表示された。

[レイアウト設定]>[スキン編集]に戻ると「Special1」というスキンが増えた。


http://192.168.0.999/~nucleus/index.php?special=About
でスペシャルスキンのページが表示された。


今後の課題:
スペシャルスキンをサイドバーの目次に表示する。

疑問:スペシャルスキンのデータはどこにしまわれるのだろう。
探した:「データベース: nucleus1 - テーブル : nucleus_skin」の中に、スキン/greygradientで、スキンタイプ/aboutというレコードができていた。

間違いはこちら

[レイアウト設定]>[スキン編集]で「新しいスキン」を作って、その中に。「スペシャルスキンパーツ」を作る。
[レイアウト設定]>[スキン編集]に「Special1」というスキンが増えるが、表示できない。


http://192.168.0.999/~nucleus/index.php?special=About
「スキン エラー」だけ。
で期待の画面が表示されない。

[管理ホーム]>[Nucleus Blog 1]の「設定」で
「標準のスキン」を「Special1」にしたら、期待の画面が表示される。

スキンというから、新しいスキンセットから作って、その中に Aboutというスキンを作ったのね。(- -);