- 2008-03-25 (Tue) 15:38
- nucleus

こんなかんじで、うちのブログではスペシャルスキンパーツを使って構築してます。
個別ページを作るときや、トップページだけデザインを変えたいときなどにお役立ちな
スペシャルスキンパーツですが、意外と存在自体が知られていないようだったので、
使い方をまとめてみます。便利ですよ。
概要
「メインの目次ページ」とか、「個別アイテムページ」といったスキンの種類を拡張し、
「(任意の名前)」というスキンタイプを作る機能です。
作り方
レイアウト設定>スキン編集 から、スペシャルスキンパーツを追加したいスキンの
「編集」リンクをクリック。
「スペシャルスキンパーツ」のフォームから、作りたいスペシャルスキンパーツ名を
半角英数字で入力。あとは他のスキンと同様、スキンの内容を書き込みます。
通常は、「メインの目次ページ」や、「個別アイテムページ」などのスキンのコピペで良いでしょう。
いくつかスペシャルスキンパーツ上で使えないスキン変数がありますので、
「使えるスキン変数」の項目を確認して書き換えてくださいね。
尚、ifでの分岐は、
<%if(skintype,スペシャルスキンパーツ名)%><%endif%>
でok。コア単体で条件分岐できますよヽ(・ω・)ノ
ヘッダ部分を分割して、ifで分岐している場合などの書換えにどうぞ。
使えるスキン変数
adminurl, archivelink, bloglist, category, charset, else, elseif, elseifnot, endif, if, ifnot, include, loginform, member, nucleusbutton, otherarchivedaylist, otherarchivelist, otherblog, parsedinclude, phpinclude, plugin, referer, searchform, self, set, sitevar, skinfile, skinname, todaylink, version
ブログ記事などの呼び出しが全て「other~」の形式になっていることに注意。
一部記事表示系のプラグインが、スペシャルスキンパーツ上で動かないことがあるみたい。
とりあえず、うちではNP_Multiplecategoriesを使ってますが、これは問題無し。
作ったページの呼び出し方法
example.com/index.php?special=スペシャルスキンパーツ名(&blogid=スペシャルスキンパーツ付きスキンを割り当てているブログのID)
といった書式になります。
なお、カッコ()付きの部分は、グローバル設定でスペシャルスキンパーツ付きスキンを
標準のスキンに設定しているブログを「既定のブログ」に設定している場合、
省略が可能です。
以下、うちのサイトでの例。
スキン「vicuna」にスペシャルスキンパーツを追加して、
既定のブログに、vicunaを標準のスキンに設定している「MercuriusLAB」ブログを設定してあります。
- normal
ttp://www.mercuriuslab.com/index.php?special=portfolio
(迷う人が居ると困っちゃうので、リンク切ってあります) - fancy
http://www.mercuriuslab.com/special/portfolio/
スキンタイプを増やす…とはいえ、今のところ、
スキンタイプに属するパラメータというものがないので、
(「個別アイテムページ」に属するitemIDみたいな)
単一ページを作る機能しかありません。多分。(未検証)
今のところ気がついている仕様と不具合
- 「special=スペシャルスキンパーツ名」が必要とするパラメータは、「blogid=ブログのID番号」。
そのブログIDに割り当てられたスキンのスペシャルスキンパーツを呼び出しします。
省略した場合は、「既定のブログ」で設定されているスキンに、
スペシャルスキンパーツを探しに行きます。見つからない場合は「スキン エラー」表示。
- NP_ShowBlogsは非対応
ShowBlogsはblog互換、otherblog非互換なため、動きません。自分も困っておりまして、他にページスイッチをつける事が出来るプラグインを捜索中です…。
- インクルードのパスが上手く通らないことがある?
うちのサイトでは起こっていないですが、そういう事があるみたい。
>スペシャルスキンパーツの使い方メモ:iq.Everydays
vicuna仲間ヽ(・ω・)ノ
Include Prefixの設定の問題なのかも…。
vicunaスキンに追記して書く分には特に問題なかったです。
参考にうちの設定。
- スキン名:vicuna
- タイプ: text/html
- Includeモード: skindirを使う
- Include Prefix: vicuna/
おまけ
トップページを個別ページにする
index.phpに、
if (!count($_GET)) $_GET['special']='スペシャルスキンパーツ名';
の一文を書き加えるといいみたい。
こうすると、Nucleusのトップページが表示された際には上のスペシャルスキンパーツが、
何かパラメータを持った状態で「メインの目次ページ」が表示される条件の場合には、
「メインの目次ページ」スキンが表示されます。
引用元:
http://japan.nucleuscms.org/bb/viewtopic.php?t=3421
URLから「special」の文字を除く
こちらの記事にやりかたが書いてあるようですヽ(・ω・)ノ
・The Trap of Web Design:スペシャルスキンパーツを作る
自分はそのまんまなので試していないのですが、気になる方はゼヒゼヒ。
- Newer: にゃいる様と弟君
- Older: 突然ですがサーバー移転しました
Comments:5
- 輝竜司 2008-03-27 (Thu) 01:03
-
メモ。
Nucleusの移転とブログ構築・メモ&TODO
http://www.mercuriuslab.com... - MT 2008-04-19 (Sat) 18:40
-
いつも楽しく拝見させていただいております。
今回この記事を参考にvicunaのninjaスキンにてスペシャルパーツを作成したのですが
どうしてもうまくいかず書き込みさせていただきました。
他のサイトもまわってみたのですがあまり情報がなく行き詰ってしまいました・・・。
(初めての書き込みがこんなですみません・・・・。)スペシャルスキンパーツを作成し、メインの目次ページをコピペし
blogsettingが使えない変数だったので書き直したのですがテンプレートをいっさい読み込みませんでした。
もしお時間がありましたらコピペをして適用するまでの経緯をお教えいただけたら幸いです。
不躾な書き込み失礼いたしました。 - 輝竜司 2008-04-20 (Sun) 21:12
-
初めまして、コメント有難うございます!
自分もスペシャルスキンパーツの使い方ではだいぶ悩んだので、
ここに無い情報など拡充していけると嬉しいです。
MTさんのご質問の件、仕様(おそらく)の書き落としがありますね、ごめんなさい。メインの目次ページをコピペした後、head.incに若干書き足しが必要です。
<%if(skintype,index)%>~<%endif%>
のような記述がありますので、そこをコピペして、
<%if(skintype,スペシャルスキンパーツ名)%>~<%endif%>
と修正してください。スペシャルスキンパーツを一個作る=一種類スキンタイプが増える
と考えると分かりやすいと思います。
nc.Vicunaでは、ヘッダ部分をhead.incにまとめて、if文でスキン変数に応じて分岐させているのですが、
ここにCSSファイルの場所も記述してあるので、作ったスペシャルスキンパーツの個数に応じて、
if文での条件とヘッダのタグを書き足す必要があります。 - MT 2008-04-21 (Mon) 12:14
-
とてもわかりやすい解説ありがとうございました!
head.indに追記することでテンプレートを読み込むようになりようやくスペシャルパーツでのページをつくることができました。
お忙しい中ありがとうございました。 - 輝竜司 2008-04-21 (Mon) 15:55
-
無事解決したようでよかったです。
構築がんばってください~!











