BlogTop > Archives > 2009年2月 Archive

2009年2月 Archive

« 2009年1月 | 2009年2月 | 2009年3月 »

メモ:MTEntryIDでpad=1として桁オーバーしたときの表示は?

テンプレートタグMTEntryIDでpad=の値を「1」としたとき、桁が6桁を超えた場合の表示がどうなるかやってみました。あくまでもネタなんですが。

MTEntryIDは主にアーカイブページなんかでエントリーへのリンクとして利用されるテンプレートタグですが、pad="1"を設定しているときは、常に6桁の表示となります。

桁数が足りないとき、0 で埋めて表示します。ID が 8 なら 0 を 5 つ追加し、000008 と表示されます。

MTEntryID|テンプレートタグリファレンスから

で、IDが6桁を超えたとき表示はどうなるの?というギモンがおこり(謎)、実際に試してみる、てことにしました。

とはいえ、個人のユーザが6桁越え(削除等含め100万エントリ!!)のエントリを作成するのは現実的な数字ではありません。#なんか健全でない使い方のひとだとEntryID7桁以上を見れるような気が。なんとなく。

普通に記事書くくらいでは再現は無理ですので、データベースを書き換えてしまったほうが早いでしょう。あ・これは、ネタのためだけにおこなってるので(念の為)。

普通にテンプレートタグでEntryIDを出力させてもいいのですが、EntryIDを記事ファイル名にする、という使い方を想定して試してみるとします。

エントリーアーカイブのマッピングでカスタムを選択して以下のように設定しておきました。

%y/%m/<mt:EntryID pad="1">.html

phpMyAdminとかで、任意の記事のテーブル、`mt_entry`を操作してフィールド、entry_idの値を1000000にします。

change_entry_id.png

で、管理ページのエントリーリストのところから、その記事だけをPublishにします。

その記事のURLを確かめてみますと。

changed_entry_id.png

・・・・・・って、0で埋められなくてそのまま表示されるだけでないすか。。というか普通に考えたらそうだよね。

使ってるカスタムフィールドの内容を出力してみた

エントリアーカイブで使っているカスタムフィールドの中身を一覧表示させるためのテンプレートを書いてみました。

これまで使ってきたカスタムフィールドがどのような内容だったか忘れてしまったので、控として一覧表示できたらいいのでは、と思ったのでちょっとテンプレートを書いてみました。

参考にしたリンクを入れるフィールドの内容をXML形式にて出力して、Excelなどで読み出して管理してみる、というのを試みました。出力したXMLファイルをExcelで読みこんで操作してる様子は以下のようなものです。

カスタムフィールド一覧をExcelで開く

記事エントリー内で使っているカスタムフィールドの内容を出力させるのに、を利用しています。

タグリファレンスをみると大体わかるのですが、比較的簡単なテンプレートで実現できるようでした。

テンプレート

テンプレートは以下のようなものです。

<?xml version="1.0" encoding="UTF-8"?>
<fields>
<$MTEntries lastn="20" sort_order="ascend"$><$MTEntryCustomFields exclude="test field,test2">$><mt:if tag="CustomFieldValue">
<items>
        <Title><$mt:EntryTitle encode_xml="1" remove_html="1"$></Title>
        <link><$mt:EntryPermalink encode_xml="1"$></link>
        <CustomFieldValue><![CDATA[<$MTCustomFieldValue$>]]></CustomFieldValue>
</items></mt:if></MTEntryCustomFields>
</MTEntries>
</fields>

EntryCustomFieldsのタグリファレンスをみると、一部のフィールドだけを除きたい場合は、exclude モディファイアをとあります。上の例は、「test」,「test field」,「test2」という3つのカスタムフィールドがあり、「test」という名前のフィールドのみをブログ記事の古い順から20記事のうちから抽出しますというテンプレートです。簡単なXSLTテンプレートも作ってみました。スタイルはセンスがないのでアレですが。

一部、ミスリードの可能性があるので追記しておきます。特定のカスタムフィールドの内容を出力したいときは、EntryCustomFieldsタグでなく、提供されたカスタムフィールド用タグを使います。このことはタグリファレンスにも明記されています。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

<xsl:output
 method="html"
 media-type="text/html"
 omit-xml-declaration="yes"
 doctype-public="-//W3C//DTD HTML 4.01//EN"
 doctype-system="http://www.w3.org/TR/html4/strict.dtd"
 indent="yes"
/>
<xsl:template match="/">
<html lang="ja">
<head>
<title>Custom Fields</title>
<style type="text/css">
#MAIN{padding : 0 20px;}
table{ border-spacing:0; border: 2px solid #0e0;} 
th{background:#333;color:#FFF;}
td{border:1px dotted #0e0;background:#F1EFE2;}
</style>
</head>
<body>
<div id="MAIN">
<table border="1" cellspacing="0">
<tbody>
<tr><th>EntryTITLE</th><th>PermaLINK</th><th>Value</th></tr>
<xsl:apply-templates select="fields/items" />
</tbody>
</table>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="fields/items">
<tr>
<td>
<xsl:value-of select="Title" />
</td>
<td>
<a href="{link}"><xsl:value-of select="link" /></a>
</td>
<td>
<xsl:value-of select="CustomFieldValue" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>

これらのテンプレートをまとめたものを置いておきます。

download

My_Custom_fields.zip

カスタムフィールド系のテンプレートは以下を参照するとよさようです。

XSLTの xmlns="http://www.w3.org/1999/xhtml"を削除しました。

今月のいらんことしい(2009年2月)

今月(2009年2月)、ブログのテンプレートをカスタマイズした箇所をまとめておきます。

  • 個別記事ページでヘッダのブログ説明(description)を非表示に
  • パンくずリストの表示位置を調整
  • テンプレートモジュールの「パンくずリスト」から(カテゴリ|月別)アーカイブリストの条件式を除外
  • Utilitiesのカテゴリーリストのリンク範囲を拡げた
  • blogchartのパーツの遅延対策でappendChildメソッドを使うようにした
  • 検索結果ページ等で、概要を非表示にできるようにしてみた

ブラウザのツールバー群が4段くらいになっても本文の見れる場所が増えるように、ブログのヘッダ領域を少し狭めてみようかと思ったので、必要のなさそうなブログ説明を記事ページでは表示しないようにしてみました。

パンくず(topicPath)ですが、記事タイトルが長かったり、カテゴリ指定が多い場合だと、個別記事で Newer|Olderのナビゲーションリンクにかぶさって表示されることがあるので、上のmarginを増やしましてみました。ページ下のほうにでてくる2回目のパンくずも、margin-topが増えて仕舞うのですが、スタイルシートは以下のように変更しました。

/*    3-3-1. Topic Path    */
p.topicPath {
margin: 1.7em 30px 1em; /* change 090222 :Default 0.7em  */
font-size: 100%;
}

「パンくずリスト」のモジュールから特定テンプレートを外すというのは、以前MT:トップページのパンくずリストについてで書いたことと同じような理由です。

Vicunaテンプレートでは同じtopicPathが上のほうと下のほうとで2回でてくるわけですが、テンプレート先頭にを使ったりしてます。

アーカイブリスト内のリンク範囲を広げるのにdesplay:blockを利用するので、スタイルシートの変更は、3-context.cssの/* Sub Categories */の上付近に以下のように追加しました。

/* Categories */
div#utilities ul.category li a{
        display:block; } /* add 090221 */

blogchartですが、これまでinnerHTMLで置き換えをしていたのをappendChildで追加になるようにしただけです。

ブックマークリストページ更新。Delicious feeds API v2に対応してみる

以前、自分のDelicious Bookmarkの新着Postエントリを表示するウェブページでDeliciousのfeeds API v2に対応するために更新。

ブックマークリストページ作ったにあるように、Deliciousに登録した最新記事を表示させるページを作ったのですが、その後のリニューアル等もあってブックマークページを更新しました。あと今現在、「Favicon API」が休止中とのことでそれにあわせて表示しないようにしています。

リニューアル後のJSON形式のURLについては、以下のHELPページを参照します。

http://feeds.delicious.com/v2/{format}/

以上が基本のURLとなっており、JSONPを利用した方法で表示を試みます。なお、JSONPとか詳しくないために、まったく説明できませんorz。以下の記事を参考にさせていただきました。手順および説明等詳しく助かりました。

以下忘れたときのメモ用に

JSONscriptRequestを使うとのことなので、以下のページからjsr_class.jsというファイルを入手。(.zipのファイルのリンクがソレです)

v2での自分のユーザ名と?callback={js call}をつけたURLは以下のようなかたちとなる。

http://feeds.delicious.com/v2/json/{USER}?callback=hundler

上記のようにアクセスした場合は以下。

hundler([・・・JSONデータ・・・])

JSONPにての通信は以下のように

bObj = new JSONscriptRequest('通信するURL');
bObj.buildScriptTag();
bObj.addScriptTag();

生成したJavaScriptコードを削除するのにremoveScriptTag メソッドを使う。

bObj.removeScriptTag();
ブックマークリストページ

宅配用牛乳などが容量変更に

  • Posted by: maRk
  • myown
  • はてなブックマークに追加

明治乳業がヨーグルト、乳飲料、宅配用牛乳などの容量変更や価格変更を発表したとのこと

Yahoo!ニュースより。

明治乳業はヨーグルトや乳飲料、宅配用牛乳などの容量変更や価格変更を16日(月)に発表した。対象となるのは店頭販売用の計22品と、宅配専用の計10品で、3月1日より順次実施となる。

明治乳業、3月よりヨーグルトや宅配専用商品の容量変更・価格変更を実施(オリコン) - Yahoo!ニュース

ウチのほうで宅配牛乳を利用しているのですが、この旨のお知らせが一緒に入っていたのを確認しました。

この背景に酪農・畜産農家の減少や飼料の高騰などが影響にあるようです。

価格の据え置きということは宅配の利用者が伸びないというのもあるんですかねぇ。宅配牛乳は毎日摂取するには便利な購入方法だと思うのですが。徒歩でスーパーに買い物にいかれるかたなど、牛乳パックの重さ分だけでも軽くなるというか。

Firefoxアドオン:ColorZillaのアノ機能。

  • Posted by: maRk
  • net
  • はてなブックマークに追加

FIrefoxでスポイトやカラーピッカー機能を使えるColorZillaには、「WebPage DOM Color Analyzer」という機能があります。

ColorZillaの機能については、dncl / デンクラ様にてまとめられています。

WebPage DOM Color Analyzerをトップページでためしてみました。メニューから、「WebPage DOM Color Analyzer」を選択します。

colorzilla01.png

以下のようにページで使用されているカラーがひとまとめに表示されます。

colorzilla02.png

ColorZilla(colorzilla.com)のPalette Viewerにパーマリンクを生成することができるそうです。(#やってみたけど長いので......http://tinyurl.com/cu4wp5)

アドオンは以下のページから。

このブログの記事リストページで先頭1行目だけ表示させるユーザースタイルシート

  • Posted by: maRk
  • myown | net
  • はてなブックマークに追加

カテゴリアーカイブページのようにブログの記事が並んでいるページで、記事の先頭の1行目だけが表示になるようにこのブログ用のユーザースタイルシートを書きました。

前にどこかで書いたと思うのですが、このブログでは先頭一行がブログの概要となるようにしています。

アーカイブページやブログトップなどエントリが並んでいるページでは、記事本文(EntryBodyに該当)が表示されていますが、これを概要だけ表示にするために書いたスタイルシートが以下です。使う場面とかは、ちょっと微妙です。 アーカイブページで記事を流し読みしたいようなときとか(?)

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain(markdiary.com) {

body.double div.textBody :not(:first-child) {
display:none !important; }
}

気づいた点などは以下です

  • 厳密には先頭の一行目というわけでないような。見た目がそんな感じなので「先頭一行目」という表現にしてます。
  • 全てのページを確認したというわけでもないので、もしかしたら挙動の怪しいものがあるかもしれません。
  • Firefox3.0.6 + Stylish 0.5.9にて確認しています。
  • VicunaテンプレートではtextBodyの部分は共通なので、ウチとこ以外でもできるかも。
  • あと記事先頭行に常にテーマ画像のようなものを入れてるサイトだと画像しかでなくて面白くないかも。

CSS3関連で幾つか読み漁ってみました。(←最近はまってるらしい......)

以下はおまけです。ブクマ登録ボタンを消しやすいようにbookmarkButtonというclassつけときました。

/* =========  Omake

div#main{
background: url(http://www.markdiary.com/csstemplate/img/markdiary.png) no-repeat scroll 0 10em !important;}
.reaction,
.bookmarkButton {
display:none !important;}

*/

ブログ記事の関連記事は見出しレベルでよかったのだろうか

  • Posted by: maRk
  • myown
  • はてなブックマークに追加

ブログの記事に関連する記事をピックアップして、関連記事という項目ができるわけですが、これに対して見出し要素を使うことについて呟いてみたり

ここまでブログやっていて未だ解決してないことのひとつであります。大抵はH2H3といった見出しレベルを設けているところがおおいようですね。(mt.VicunaのテンプレートセットのテンプレートモジュールですとH2でした)

見出しレベルにしちゃうと変?に思うのは、TagSupplementalsプラグインでもって自動で出力させている部分かと。関連性の薄い記事が出てくるのはワタくシがTaggingがイマイチな所為?もあるけど――。見出しレベルでいくならば、自分が選択した記事のリストに対してつけたい、と思うのです。外部のサイト(人サマが管理されているサイトも含めて)も関連記事リストにいれたいとかTagSupplementalsだけで処理できないですし。

なんかそれをいうと、コメント・トラックバックとかはどうよ、とかなってきて長くなりそうなのでこの辺で。流石にPはないよね、と思いながらもほったらかし状態なのでした。

Select Export:指定した記事をエクスポート。(説明キャプチャなし)

Movable Typeにはブログ記事のエクスポート機能がありますが、特定の記事だけエクスポートするプラグインがSelective Exportです

Batch Publishing Optionsと同じく地味な部類に入りそうな(失礼。)プラグインなのですが、Selective Exportプラグインを使うと特定の記事のみエクスポートすることができるようになります。以下のページからダウンロードすることができます。

以下、バージョン1.0にもとづいて簡単ですが使い方メモです。

  1. ファイルを解凍してできたpluginsフォルダ内のSelectiveExportフォルダごとMTシステムのディレクトリのpluginsディレクトリにアップロード
  2. システムメニューのプラグイン一覧にSelect Exportがでていることを確認
  3. settingsのタブのところで設定する(具体的な設定は下に示します[説明↓])
  4. Save Changesボタンで設定完了
  5. 記事一覧や記事検索の結果一覧および各エントリの編集画面に、ドロップダウンメニューで(記事の)Exportが追加される

Selective Exportプラグインの設定について

Location for exporting your selected exports
エクスポートファイルの出力先のパスです。共用サーバの場合自分の領域に。
Combine all of the exported entries into a single export file.
初期設定ではチェックオフで、エクスポートファイルは記事単位で個別に出力されます。チェックオンにすると、選択された記事が1ファイルにまとめて出力されます。
Use the rich text editor for managing the look, linebreaks, etc.
ラインブレイク(強制改行)オプションを反映させるかどうかの設定。リッチテキストを使うときに

追記:Selective Exportの間違いでした。修正しました

ダッシュボードのニュースボックスのどちらかを読み込まなくする

Movable Type 4 のダッシュボードにある、ウィジェットのMovable Type ニュース表示部分で2つあるうちのどちらか片方を読まなくする設定です

先に答えだけ書きますと、configファイルに以下の環境変数をどちらかいらないほうを記述ということになるようです。

これをどちらもログイン時に読みたくないときは、環境変数を設定するよりは、ウィジェットごと削除したほうが手っ取り早いです。

#========== Newsbox ===============
# default URL: http://www.sixapart.jp/movabletype/news/newsbox.html
NewsboxURL disable

#========== LearningNews ============
# default URL: none
LearningNewsURL disable

Movable Type ニュースのフィードは日本語版ですと、sixapart.jpとwww.movabletype.jpの記事のフィードを読みにきているようです。

先述のとおり、両方のフィードを読まないようにするにはダッシュボードからニュースのウィジェットを削除します。ただし、セキュリティアップデートなど重要なニュースを見落としするってこともあるかとおもうので、残しておこうかと思ったり。

でもって、sixapart.jpとwww.movabletype.jpとでセキュリティアップデートの情報が重複しているときがあります。

そのような場合どちらを残すか迷うのですが、自分の場合はsixapart.jpのほうを残すように設定。決め手は、movabletype.jpのほうがAtomフィードでupdated要素があるという点でしょうか(ウィジェットがupdated要素をみてないっぽいので)。記事があがった時間については、フィードを見比べてみたのですが、sixapart.jpのほうは14:00とか(15分単位くらいで?)きりのいい時間のときが多いみたいです(一概にいえないですけど)。時間的にどちからが遅くともさほど影響はないかなと。更新情報などタイムリーに追いたいのならばTwitterのほうを追っていくという手もありますし。

とまぁ、どうでもいいコネタでした。

はてブ:カスタムデザイン控(2009年2月2日)

  • Posted by: maRk
  • myown
  • はてなブックマークに追加

はてなブックマークのカスタムデザイン機能で自分が今使っているテーマと及びスタイルシートの控です。

ブックマークのカスタムデザイン機能については、ブックマーク日記の以下の記事等を参照します。今後もテーマ等の更新や機能'(追加|変更)がおこなわれることがありそうですし、はてなブックマーク日記をフォローしておくといいかと。

テーマとかスタイルについては、自分が苦手な黒基調スタイルで挑戦してみました。スタイルシートの細部で最適化とかしてないのでかなりいい加減です。あとわかっていることの覚書として、今時点でスタイルシートで子供セレクタなど使えず&gt;に置き換わってしまうようです。

テーマおよび諸設定

以下スクリーンショットを置いておくとします。なお、機能変更がある可能性があり、恒久的に使えるものと限りません。あくまでも控であります。

hateb_style_themes.png hateb_style-bgimage.png hateb_style_details.png

スタイルシート

指定したスタイルシート。なお、要素やクラス名が変更になる可能性があるため適用できなくなる可能性あります。

/* LINK COLORS */

/* Pager  */  

div.pager a:link{
          color:#009898 !important;
          padding:0 2px !important; }
div.pager a:hover{
          color:#FFFFFF !important;
          background-color: #009898 !important;
          padding:0 2px !important; }

/* Tags  */  
#hatena-body #bookmarked_user span.tags a:hover,
ul#related-tags li a:hover,
#tags li a:hover {
          background-color:#00BBBB !important;
          color:#FFF !important; }

/*  Domain  */  
a.domain,a:link.domain {
color: #7CFC00 !important; }

/* ======================= */  

/* MENU module  */  

li.user-bookmark a,
li.current-menu a,
li.user-module a {
                 -moz-border-radius-topleft:0 !important;
                 -moz-border-radius-topright:0 !important; }
ul.menu li.user-module a:hover,
ul.menu li.user-bookmark a:hover {
                     background-color: #111 !important; }

h3 {
margin-left:0px !important;
padding-left:0px !important ;
background:none !important;}

h3 a:link {
text-decoration: none !important; }
h3 a:hover{
text-decoration:underline !important; }

/*  TAG  */  
#tag-search-form input:focus {
        background-color : #FFFFCC; }
/*  パンくず  */  

.breadcrumbs {
         margin-left:4em !important; padding-left:0 !important; }
/* コメント */  

span.comment {
          display:block !important;
          margin-left:1.5em !important;
          padding-left:.3em !important;
          border-left:3px solid #FF1493 !important; }
/* autopager  */  
div.pager-autopagerize-complete{
border-bottom:4px double #FFF !important; }
ブックマーク

Index of all entries

BlogTop > Archives > 2009年2月 Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top