ページ: 1
既存のサイトのトップページに新着情報の一覧のブロックを設置します。
Nucleusを新着情報更新システムとして使うわけです。
JavaScriptを利用するRSSフィード方式ではなく、実際にソースにマージします。
なので検索エンジンとも仲良くなれます。
・実装例が記述されているindex.html(これをサイトのトップページと想定)
・拡張子「html」のファイルをphpファイルとして認識させる .htaccessファイル
・サンプルのスキン・テンプレを収めたskinbackup.xml
実装手順は、おおまかに以下のとおり。
・Nucleus(utf-8版)をインストールする。euc版も利用できる(後述)
・すでにブログコーナーなどとして運用中のNucleusを利用する場合はブログを新規にひとつ追加する
・同梱のskinbackup.xmlからスキン・テンプレ「whatsnew」をインポートする
・ブログのスキンを「whatsnew」に設定する
・同梱の.htaccessをドキュメントルートに転送する
・同梱のindex.html内の記述を、運用中のサイトのトップページ内の適当な箇所に転記する
・euc版Nucleusを利用する場合はブロック内のmb_convert_encoding文を適切に書き換える
出力パターンはこんな感じ。<table>と</table>はスキン側の記述。
その間の繰り返しパターンはテンプレート側の記述です。
<table>
<tr><td>2007/10/08</td>
<td>明日からセールです!</td></tr>
<tr><td>2007/10/07</td>
<td>ホームページを開設しました</td></tr>
</table>
読み込み元はShiftJIS、NucleusはUTF-8とします。
少し書き換えるだけで他のエンコードにも対応できます。
中身を見て理解できる人が実装の手間を省くための詰め合わせです。
Nucleusに慣れてる人ならたぶん簡単。使い方が分からなければ質問してください。
オフライン
まだ初心者のnamuと申します。
「既存のサイトのトップページに新着情報コーナー」を設けたくて、同一サーバーにNucleus3.3(EUC)をインストールしてテストをしておりますが、うまく行かず質問させていただきます。
こちらの記事を発見いたしまして、Whatsnewをダウンロードしまして、それを利用してみようと実験を繰り返しておりますが、壁に突き当たった感じで、少々質問させていただいてもかまいませんでしょうか?
箇条書きで失礼いたします。
実装手順のところですが、
①同梱のindex.htmlと、.htaccessファイルは、何処のディレクトリへ置くのでしょうか?
②同梱の「skinbackup.xml」をインポートする方法が分かりません。(「whatsnew」をskinフォルダの中に置いたのですが、スキンの選択の中に表示されなくて、反映させるにはどうすればいいのでしょうか?)
③出力パターン例がありますが、何処のスキンの何処の部分にどう記述するのでしょうか?
※同梱の「index.html」ですが、既存サイトのindex.htmlとの関係もお教え願いたいと思います。
他にも類似記事を探したのですが、見つかりませんでしたので、お手数をお掛けいたしますが、ご回答をいただければ嬉しく思います。
また、どなたか、同じところで悩んでいたり、また解決した方がいらっしゃいましたならば、お教え願えないでしょうか?よろしくお願い致します。
オフライン
同梱のindex.htmlは、中身を見てください。これ自体を設置するわけではなく、このように
トップページを書き換えましょうという、書き方のサンプルです。
「file_get_contents」「mb_convert_encoding」と書いてありますが、これらが何を
意味するものなのか、Googleなどで検索して軽く雰囲気をつかむといいと思います。
この記述例ではエンコードは決め打ちですし、うまくいかない可能性はわりとあります。
.htaccessは、そのサイトのトップページがあるディレクトリ(普通はドキュメントルートですね)に
置くといいと思います。ただし、これを設置するだけでいいですよというほど親切な作りでも
ないので、もしうまくいかない場合は「AddType application/x-httpd-php」で検索してみると
ヒントが得られると思います。サーバによっては、少し違うアプローチが必要なこともあるようです。
同梱の「skinbackup.xml」をインポートする方法が分かりません。(「whatsnew」をskinフォルダの中に置いたのですが、スキンの選択の中に表示されなくて、反映させるにはどうすればいいのでしょうか?)
うーん?おかしいですね。その手順で合ってるはずなんですが、、あとで調べてみます。
出力パターン例がありますが、何処のスキンの何処の部分にどう記述するのでしょうか?
いえ、記述するわけではなくこれは「こういう出力になりますよ」という例です。スキン・テンプレートのインポートがうまくいけば、このように出力されます。今、その段階でうまくいかないのですね。
とりあえずヒントだけ示しましたが、もし分かりにくければ、さらに具体的に質問いただければと思います。
追記
スキンのインポートを試してみましたが、特に問題なくインポートできるみたいです。
試した手順をもう少し具体的に教えていただけますか?
オフライン
yama.kymsさん、ご回答いただきありがとうございます。
「skinbackup.xml」のスキン「whatsnew」のインポートは「読込/書出」からやりましたらできました。
ただ、
「すでにブログコーナーなどとして運用中のNucleusを利用する場合はブログを新規にひとつ追加する」
とありますので、「新規ブログ作成」から「新着情報一覧」などの名前で同ブログに追加で作成し、作成した新規ブログに標準のスキンをインポートした「whatsnew」にしたのですが、それを開いても画面が真っ白で何も表示されません。
◆別の新規ブログとは、何処に、どのように作成するのでしょうか?
(上記の作成では、インポートした「whatsnew」のスキンもテンプレートも適用されてないようです。できれば新規作成のブログへ適用させる方法も知りたいのですが)
また、テスト表示用に同梱のindex.htmlをindex2.htmlにして(中のphp内に対象ブログリンクidを記載して)設置テストしてみますと、最新情報ではなく、ブログのTOPページ全体が表示されてしまいます。
テストのついでにと、whatsnewをインポートしてない別のNucleusブログサイトのIDを記載して開いてみますと、そこもTOPページ全体が開いてしまいます。
つまり、whatsnewをインストールした意味が無いように思われます。
私のやり方が間違っていると思われますので、何かお気付きの点がございましたならば、再度ご回答をお願い致します。
なお、上記のテストはUTF-8環境での結果です。
EUC環境では全くの白い画面表示のままでした。EUCでのテストは後回しにしたいと思います。
オフライン
「新規ブログ作成」から「新着情報一覧」などの名前で同ブログに追加で作成し、作成した新規ブログに標準のスキンをインポートした「whatsnew」にしたのですが、それを開いても画面が真っ白で何も表示されません。
んー、このへんの操作が具体的にどうなってるのかがよく分かりません。大雑把に読むと合ってるように感じますが、何かステップを抜かしているような気もしますし。このへんで実際に試した操作をもう少し具体的に説明していただけますか?
要は、新しく作ったブログに任意のスキンを設定するという操作なんですが。
オフライン
何か書き足りないようで申し訳ございません。
「whatsnew」のインポートができて、テンプレートやスキンの編集にも出現しており、「メインの目次」の内容も確認しております。ですので、インポートに関しては問題は無いように思われます。
問題は、既存のNucleusブログの最新情報を、既存の普通サイトのトップページに表示させるための作業の問題になります。
前回記述した、新規ブログの追加作成とは、既存のNucleusブログ内に、管理メニューの「新規Blog作成」から新しいブログを作成しました。
「新規Blog作成」も2種類の作成方法があるようですが、どちらの方法も試して作成してみました。
つまり、複数ブログの作成にあたるのでしょうか。
そして、標準のスキンの適用は、新規追加作成したブログにのみ「whatsnew」を適用しております。
その追加したブログを開くと真っ白な画面表示になるのです。
そんなことから、何故新規ブログを作る必要があり、そのブログをどう活用するのか?…
のところで止まってしまっております。
既存のブログ内に追加作成するのが間違っているのでしょうか?
それ以外はまだやっておりませんので…。
時間をさいていただいて、恐縮に思っております。
オフライン
うーん、Nucleusの基本を理解してないと難しいかも。この方法はWordPressやMovableTypeにも応用できるような汎用的な方法なんですが、そういった大局的な理解も必要ですね。要は、エントリーの一覧をトップページに読み込ませるだけなんですが。とりあえず、トライ&エラーを繰り返しながら進めてみましょう。
そして、標準のスキンの適用は、新規追加作成したブログにのみ「whatsnew」を適用しております。
その追加したブログを開くと真っ白な画面表示になるのです。
ここのところ、仮に他のスキンを適用するとどうなりますか?また、見た目には真っ白かもしれませんが、htmlソースはどうなってますか?
オフライン
前回の返答質問、「追加ブログに別のスキンを当てたらどうなりますか?画面は白くともソースはどうなってますか?」についてですが、
<table>
</table>
のように、上記内容2行だけが表示されておりました。
また、既存ブログサイトは複数ブログですので、ID=1から6までのIDがありまして、追加作成のはID=7になってます。
同梱のindex.htmlの中のリンク記載は、表示させたいID=1を記載しました(できればブログ全体の新着情報を取り出したいのですが)。
◆このindex.html内のリンク先は、追加ブログのIDにする必要があるのでしょうか?
ブログ内で開くと真っ白なので、そのIDでは無意味かな?と思ってやってないのですが、…。
色々とご相談にのっていただき、感謝申し上げます。
私の力不足の点も否めませんので、色々とチャレンジしてみます。ありがとうございました。
オフライン
なるほど、スキンは出力できてるけど、そのスキンに関連付けられているテンプレートが出力されてないみたいですね。
<%otherblog(whatsnew,whatsnew/list,10)%>
テンプレートの関連付けは上記のようになっているので、ID=1で呼び出す必要はないですよ。というより、その呼び出し方はできないですが。(そのへんの詳細はドキュメント読んでみてください)
ブログ全体というのは、サイト全体という意味でしょうか。Nucleusは複数ブログを運用できるということは理解されているようなので、単純に言葉の問題だと思いますが。サイト全体からエントリーを引っ張りたい時はNucleusの標準機能ではできないので、NP_ShowBlogsなどを利用する必要があります。定番プラグインなので、この機会にマスターするのもいいかも。
オフライン
すみません、もう一回だけ質問させてください。
ブログのIDは必要ないとのことですが、それでは同梱のindex.html内の記述(phpの部分)はどのように
記載すればよろしいのでしょうか?
サンプルでは以下のようになっております。
<body>
<?php
$contents = file_get_contents("http://*****.com/index.php?blogid=xx");
$contents = mb_convert_encoding ($contents, "SJIS", "UTF-8");
print $contents;
?>
</body>
この「blogid=xx」の部分だけ記載しなくともよいということなのでしょうか?
それとも、この部分に何か有効な記載が必要なのでしょうか?
この部分「http://~」に別サーバーにあるblogのIDを入れてもそのサイトが開きます。
「whatsnew」はインポートされてないブログでも開いてしまいますし、入れてるサイトも
同じように開きます。
そんなことから、前回「whatsnew」をインポートする意味をお尋ねした次第でした。
また再度洗い直ししてみます。
Nucleusをとても気に入っておりますので、もっと研究してみたいと思っております。
ありがとうございました。
オフライン
そうですねー、今回はすでに新着一覧として出力したいアイテムを含むブログがすでにあると
いうことなので、違うアプローチのほうがシンプルに解決できるかも。
*****.com/index.php?skinid=xx
これでどうでしょう?xx(skinid)は、whatsnewスキンの編集画面を開いた状態でブラウザの
アドレスバーを見ると分かります。白っぽい感じでエントリー一覧が出力されたら当たりです。
この方法だとwhatsnewスキンを利用するためだけにブログを新規に作る必要がないですね。
オフライン
ページ: 1