protectorモジュールがver3.16beta (2008/01/08)にバージョンアップされています
フィル比較をした所,html側に変更はありません。ということで,手順は,trust側だけアップロードし,管理画面で,モジュールのアップデートをするだけ。
アップデートは必要ないかもしれませんが,これをしないと,ver番号が古いままなのが気持ち悪くて。
- added a filter postcommon_post_deny_by_httpbl for antispam by honeypotproject
- updated language files
- polish (thx kurak_bu)
jQueryってなんだ?
「今更ですが、jQueryにはまりました」を読んで,俺もはまりそうな気がしてきた。
ということで,とりあえず関連のありそうなことをひたすらメモ。
Ajaxは挑戦したいけど,難しそうだなあ,無理,とあきらめていたんですが,これなら何とかなりそうなんですね。
altsysが0.56にバージョンアップしている。
さっそく全サイトに適用。
- HTML側:変更なし
- テンプレート:一つ変更あるが,改造していないので,関係ない
- trustu/lib/フォルダにアップロード
- モジュールのアップデート(これは必要ないかもしれないが)
タイトルから文字列の一部を削除する
最新情報などを表示するブロック。タイトルの前半部を削除したい時がある。
どの部分までを削除するか,印が必要だ。今その印が縦棒「|」だった場合,次のようにして削除することができる。
下記例では,タイトルが「$content.subject」にアサインされている場合だ。
<{assign var="mypos" value=$content.subject|mb_strpos:"|"}>
<{if $mypos}>
<{assign var="mysubject" value=$content.subject|mb_substr:$mypos+1}>
<{else}>
<{assign var="mysubject" value=$content.subject}>
<{/if}>
<a href="<{$block.mod_url}>/<{$content.link}>">
<{$mysubject}>
</a>- まず縦棒「|」の位置を調べる
- 縦棒の位置が見つかった場合,次の位置からの文字列を取り出す。
見つからない場合は,元のまま。
たったこれだけ。
カテゴリタイトルにカテゴリへのリンクを
picoのコンテンツ一覧ブロックは,記事タイトル・カテゴリータイトル・作成日時が一組になって,記事へのリンクとなっている。
記事へのリンク,カテゴリータイトル,作成日時をそれぞれ独立させる。
また,カテゴリータイトルに,そのカテゴリページへのリンクをつける
改造したコード
(<a href='<{$block.mod_url}>/category<{"%04d"|sprintf:$content.cat_id}>.html' title="<{$content.cat_title}>">
<{$content.cat_title}>
</a>)
文章で2行目からを数文字下げたい時がある。
たとえば,「年月日 時分 コンテンツタイトル」を一覧表示している場合。コンテンツタイトルが長すぎると2行,3行になるわけだが,何もしなければ,2行目も1行目と同じ位置から表示される。
今の例でいえば,コンテンツタイトルの表示位置を統一したいのだ。具体例を下記に示す。
- 2007-12-17 11:30 web制作屋は、一体どのスキルを持っていれば即戦力なのか?17の作業に分解
- 2007-12-16 21:53 IT業界を震撼させた2chスレ『ブラック会社に勤めてるんだが・・・』ここに終焉。泣いた。
書式設定後
- 2007-12-17 11:30 web制作屋は、一体どのスキルを持っていれば即戦力なのか?17の作業に分解
- 2007-12-16 21:53 IT業界を震撼させた2chスレ『ブラック会社に勤めてるんだが・・・』ここに終焉。泣いた。
このぶら下げ書式は以下の通り
.li {
margin-left:8.5em; text-indent:-8.5em;}
margin-leftで右に8.5文字分インデントし,text-indentにマイナスを指定して,左に戻している感じか。
各パイプの個別ページにブロックは非表示
d3pipesのブロックをモジュールトップページに表示する設定をすると,各パイプの個別表示ページにもブロックは表示される。
ブロックはd3pipesのトップページには表示されるが,各パイプの個別表示ページでは表示させないための改造。
ブロック
サイト別新着情報(同期パイプ一覧ブロックの複製)
テンプレート
d3pipes_block_sync.html
コード
ブロックのテンプレートコード全体を
<{if !$smarty.get.page}>〜<{/if}>で囲む。これだけ。
Google ウェブマスターツールのヘルプを読んでみる。ページタイトル(ブラウザのタイトルバーに出る奴)とページの内容を簡潔に表した説明文(description)を重視すると書いてある。
何も工夫しなければ,xoopsの場合,どのページをみても,タイトル・説明文は同じだ。これらは次の操作で設定される。
ページのメタ情報
ページタイトル
システム管理 → 一般設定 → 一般設定の「サイト名」と「サイト副題」が使われる。
モジュールによっては,「サイト副題」の部分をモジュール名や記事(コンテンツ)名に置き換えてくれるものもある。変数名はそれぞれ,
サイト名=<{$xoops_sitename}>
サイト副題=<{$xoops_pagetitle}>
で,一般的には,テーマファイル(theme.html)に記述されている。
説明文
システム管理 → 一般設定 → METAタグ/フッタ設定の「METAタグ(Description)」で入力した文章が使われる。
これは,あらゆるページで同じ文章が表示されていると考えた方がいい。サイトのコンセプトを「METAタグ(Description)」に入力したんだから,これでいいという場合は問題ない。
HTMLだけでページを作っていた時は,ページごとに「meta:description」と「meta:keywords」を書いていたような記憶がある。
問題は,ページごとに説明文(description)を変更したい時だ。ということでアイデアをメモ
ページごとに説明文を変えるための改造メモ
コンテンツを作成する時
ページを作成する時次のようなコードを前半部分に挿入する
<divclass="noview">
[desc]ここに説明文を記述[/desc]
[kw]ここにキーワードを列挙[/kw]
</div>
テンプレート改造
picoであれば,Smartyを有効にするチェックボックスがあり,簡単にSmartyが使える。その他のモジュールの場合は,テンプレートでSmartyが使えるようにカスタマイズしておく。
該当するであろうテンプレートの先頭に,「説明文」と「キーワード」を取りだし,
<{$xoops_meta_description}>と<{$xoops_meta_keywords}>とに反映されるようにすればいい。
こんな感じか。
<{assign var="xoops_meta_description" value=★}>
<{assign var="xoops_meta_keywords" value=●}>
★の部分:説明文を抜き出すコード
「mb_strpos関数」で,[desc]の位置,[/desc]の位置を調べ,その値をもとに,「mb_substr関数」で,説明文だけを取り出せるだろう。
●の部分:キーワードを抜き出すコード
同様にして,「mb_strpos関数」で,[kw]の位置と[/kw]の位置を調べ,その値をもとに,「mb_substr関数」で,説明文だけを取り出せるだろう。
Googleは,外部へのリンクを1ページ100以内にするように薦めている。もし100を超えるようなら,リンクタグの属性「rel」に「nofollow」を指定すればいいらしい。これは知らなかった。
xoopsの場合,テンプレートに繰り返し処理でリンクを設定する場合がある。つまりテンプレートを編集しなければならない。
ウェブページの前置きとして用意されているテキストは大抵長すぎるので、ユーザはそれを読み飛ばしてしまう。しかし短い前置きがあると、それに続くコンテンツの目的の説明となってユーザビリティが向上することもある。
ユーザビリティの権威「ヤコブ ニールセン博士」のサイトで教えられた。
確かに。広告文を書いていた頃だって,イントロに力を置いていた。まず引きつけなければならないのだ。これができれば,xoops_meta_descriptionにアサインしてしまえばいいのだから,わざわざ別途要約文(description)を用意する必要がなくなる。
記事の内容を的確に表現するタイトルと,記事のおもしろさをアピールする要約文に力を入れなければならない。




