No タイトル ステータス 重要度 担当 完了予定日 更新日時 記事数
44 全ての記事に表示されるフリーエリア 完了 未定 2008-01-01 18:20 2008-03-16 15:42 14
広告やランキングへのリンクを入れる人が多いですが
毎回記事に書かなくちゃいけないのは大変ですし
かといってHTMLに直接書き込むのも
初心者にはちょっと敷居が高いと思うので
記事上もしくは記事下に毎回表示されるような
特殊なフリーエリアみたいのがあると
非常にありがたいです。

できれば、今の広告と同じように
トップページやカテゴリページで表示される時は
一番上の記事だけに表示されるようになると良いです。
まさにそういう要望のためにテンプレートのカスタマイズがあるのですが難しいですかねぇ..
<IfFirstArticle>タグを使えば「一番上の記事だけに表示」もできます。

たとえフリーエリアのような枠を特別に設けたとしても、「タグが閉じていなくて後ろのレイアウトが崩れてしまう」といった問題にはユーザ自身に対応してもらわないといけないので、結局、ある程度の知識は必要になるのです。

テンプレートのカスタマイズについては、livedoor ナレッジなどでユーザ間のノウハウ共有や助け合いが進むといいなと思うのですが。

参考:
http://wiki.livedoor.jp/staff/d/%A5%C7%A5%B6%A5%A4%A5%F3%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8%A4%CE%C6%C8%BC%AB%A5%BF%A5%B0
自分のブログで
この話題に当たる部分の修正をしたのですが
個別ページのHTMLを編集すると
全てのページを再構築しないといけないため
とても時間がかかり大変なので
やっぱりこうゆうプラグインがあると
再構築が楽になるのにと改めて思いました。
フリーエリアではなく、定型文を保存しておいて記事投稿の際にボタン一つで呼び出せる機能とかはどうでしょうか?
利用する人にとっての技術的敷居は低いと思います。
定型文がいくつか保存できて使い分けとかできたら便利そうかなとか思ったり。
ボタン押すのすら面倒だって意見もありそうですけど。


それは別の機能として便利だとは思いますが
私の本来の目的は広告やランキングへのリンクを入れることにあるので
書き込むだけじゃなくて
消したり書き換えたりできないと
あんまり意味が無いんですよね。
他の要望とあわせて考えると、やはり大きな課題のひとつに、個別記事の再構築を手軽にする(できればなくす) というのがある気がしました。

それができればこの要望を含む複数の課題がいっぺんに解決するのではないかと考えて、方策を練っている段階です。

とりあえずの方法としてこんな方法ではどうでしょうか。

1. トップページのテンプレートなどの、フリーエリアをいれたい場所に以下のようなタグを付け足しておく。

<div class="common-article-footer" style="width:500px; height:100px; border:thin solid blue;"></div>

2. フリーエリアプラグインを追加し、以下の内容をセットする。

<div id="common-article-footer-text" display="none">
共通のフリーエリアに表示したい内容をここに記述します。
</div>
<script type="text/javascript"><!--
(function(){
var m = document.getElementById('common-article-footer-text').innerHTML;
var c = document.getElementById('contents');
if (c) {
var d = c.getElementsByTagName('div');
if (d && d.length) {
for (var i = 0; i < d.length; i++) {
if ((d[i].hasAttribute || d[i].getAttribute) && d[i].getAttribute('class') == 'common-article-footer') {
d[i].innerHTML = m;
}
}
}
}
})();
//-->
</script>

こうすると、フリーエリアプラグインの <div id="common-article-footer-text" display="none">〜</div> の間に書いた内容が、テンプレート内で指定したエリアにコピーされます。
内容を変更する場合は「プラグインの再構築」だけですみます。


これならすぐに実践できますね♪

var c = document.getElementById('contents');

↑ここは「contents」じゃなくて「content」でしょうかね。

まあデザインによって違うんでしょうけど。
> var c = document.getElementById('contents');
>
> ↑ここは「contents」じゃなくて「content」でしょうかね。

あ、ほんとだ。デザインによってここを変えないといけないようですね。
「デフォルト2008」系だと contents だったんですが。他は content が多いのかな...


あと、ここも間違ってました↓
> <div id="common-article-footer-text" display="none">

display="none" じゃなくて、

<div id="common-article-footer-text" style="display:none;">

ですね。

> > ↑ここは「contents」じゃなくて「content」でしょうかね。

参考: http://blog.livedoor.jp/staff/archives/50829760.html

PGの自分もいま初めて知った分類なのですがw
第4世代からdiv の構成がだいぶかわり、第3世代まで "content" だったところが "contents" に変わったようです。

やってみたんですけど
IEだと見えないのは仕様ですか?
  • imq
  • 2008-01-17 23:09
IE以外の古いブラウザだと逆に使えなくなりますが、
if ((d[i].hasAttribute || d[i].getAttribute) && d[i].getAttribute('class') == 'common-article-footer') {
を単純に
if (d[i].className == 'common-article-footer') {
としてみるとか。
新旧IEと主要3ブラウザの最新版なら大丈夫だと思います。
おっと。IEが手近になかったものでつい...

> if (d[i].className == 'common-article-footer') {
> としてみるとか。

ありがとうございます。それが一番安全ですかね。
あと、"contents" / "content"のところもCSSによって動かなくなるのがビミョーなのでそこも変更してまとめると、以下のような感じになるでしょうか。

------------------

1. トップページのテンプレートなどの、フリーエリアをいれたい場所に以下のようなタグを付け足しておく。

<div class="common-article-footer" style="width:500px; height:100px; border:thin solid blue;"></div>

2. フリーエリアプラグインを追加し、以下の内容をセットする。

<div id="common-article-footer-text" style="display:none;">
共通のフリーエリアに表示したい内容をここに記述します。
</div>
<script type="text/javascript"><!--
(function(){
var m = document.getElementById('common-article-footer-text').innerHTML;
var d = document.getElementsByTagName('div');
if (d && d.length) {
for (var i = 0; i < d.length; i++) {
if (d[i].className == 'common-article-footer') {
d[i].innerHTML = m;
}
}
}
})();
//-->
</script>



例えば、pro限定になりますが、ftpで自分のディレクトリにアップしたhtmlを任意の場所にインクルードできるようにすれば、ここで挙げられている要求を満たせると思うのですが、そういうのはどうでしょうか。



というわけで、
<IncludeArchives "ファイル名">
<Include "ファイル名">
などとして、別ファイルの内容をテンプレートの任意の位置に読み込めるタグを実装しましたのでお使い下さい。

http://blog.livedoor.jp/staff/archives/50853512.html