http://www.mt-matome.com/category/get-catid.html
http://gyauza.egoism.jp/clip/archives/2007/05/070518-css-class/
2010年6月29日火曜日
MT 今日のはまった点
MTの変数同士で比較するときの注意点について。。
MTIfの中でMTタグは使えないようなので、
※例えば
<MTSetVar name="test" value="1">
<MTSetVar name="exam" value="2">
<MTIf name="teat" eq="<MTGetVar name="exam">">
しょり
<MTElse>
しょり2
<MTIf>
はできない。ので、「$」マークを頭につけると、値が取り出せるようになる。
<MTIf name="teat" eq="$exam">
http://d.hatena.ne.jp/wonohe/20080705/1215234439
MTIfの中でMTタグは使えないようなので、
※例えば
<MTSetVar name="test" value="1">
<MTSetVar name="exam" value="2">
<MTIf name="teat" eq="<MTGetVar name="exam">">
しょり
<MTElse>
しょり2
<MTIf>
はできない。ので、「$」マークを頭につけると、値が取り出せるようになる。
<MTIf name="teat" eq="$exam">
http://d.hatena.ne.jp/wonohe/20080705/1215234439
2010年6月28日月曜日
2010年6月24日木曜日
MT5のテンプレートを読み込む順番
MT5はウェブサイトっていう考え方があるみたいで、
ウェブサイト毎にブログを管理できるから、
MT4でやっていたときみたいに、異なるサイトを1つのMTに乗っけていても
ブログが混在しなくてとても便利だと思ったけども。
今までMT4でグローバルテンプレートにおいていたものを、
ウェブサイトテンプレートに移し変えたら、MTIncludeタグだと
システムテンプレートを見にいってしまってうまくウェブサイトテンプレートを
読み込んでくれない。
MTIncludeのタグを書くと動き的には
1. ブログのテンプレートモジュールを呼び出す
2. ブログに該当するモジュールがない場合はシステムのテンプレートモジュールを呼び出す
ということらしい。
普通は、単位の小さいブログ→ウェブサイト→システム の順に
呼び出すと思うんですけど…
下のページの
【ParentalInclude】 というプラグインを使うと、
ブログ→ウェブサイト→システム のテンプレートの順番で見に行ってくれるように
なりもした。
http://www.skyarc.co.jp/engineerblog/entry/parentalinclude.html
ウェブサイト毎にブログを管理できるから、
MT4でやっていたときみたいに、異なるサイトを1つのMTに乗っけていても
ブログが混在しなくてとても便利だと思ったけども。
今までMT4でグローバルテンプレートにおいていたものを、
ウェブサイトテンプレートに移し変えたら、MTIncludeタグだと
システムテンプレートを見にいってしまってうまくウェブサイトテンプレートを
読み込んでくれない。
MTIncludeのタグを書くと動き的には
1. ブログのテンプレートモジュールを呼び出す
2. ブログに該当するモジュールがない場合はシステムのテンプレートモジュールを呼び出す
ということらしい。
普通は、単位の小さいブログ→ウェブサイト→システム の順に
呼び出すと思うんですけど…
下のページの
【ParentalInclude】 というプラグインを使うと、
ブログ→ウェブサイト→システム のテンプレートの順番で見に行ってくれるように
なりもした。
http://www.skyarc.co.jp/engineerblog/entry/parentalinclude.html
2010年6月23日水曜日
スケジュール引くときのまとめ
●工数と締め切りで考える
→工数がどれくらいかかるかと、締め切りがわかっていれば、そこから逆算
例えば、お客さん側の検収とかデータ投入に10日かかるとすれば、
実際の締め切りより10日前には開発環境にアップしておかないと、
データの投入ができなくなるからだめ
●関係性のあるものは線で結ぶ
→デザインや他の会社の作業があって、それが終わらないと進まないとか
そういう関連性がある場合には線で結ぶなどして、関連付けをしておく
⇒そうすることで、スケジュールを組む段階で「△△が遅れたら、
その分だけスケジュールが後ろにずれます」と連絡が先にできる。
●詳細に落とす前に概要スケジュールを作る
→詳細にスケジュールを組もうとおもってもすぐにできないので、
おおざっぱな線でまずひいてみる。とか
またあとで編集
→工数がどれくらいかかるかと、締め切りがわかっていれば、そこから逆算
例えば、お客さん側の検収とかデータ投入に10日かかるとすれば、
実際の締め切りより10日前には開発環境にアップしておかないと、
データの投入ができなくなるからだめ
●関係性のあるものは線で結ぶ
→デザインや他の会社の作業があって、それが終わらないと進まないとか
そういう関連性がある場合には線で結ぶなどして、関連付けをしておく
⇒そうすることで、スケジュールを組む段階で「△△が遅れたら、
その分だけスケジュールが後ろにずれます」と連絡が先にできる。
●詳細に落とす前に概要スケジュールを作る
→詳細にスケジュールを組もうとおもってもすぐにできないので、
おおざっぱな線でまずひいてみる。とか
またあとで編集
2010年6月21日月曜日
できたー MT5でカテゴリとカスタムフィールド検索を組み合わせる方法
これと
http://www.7dc.jp/matsutsune/2009/11/customfields.html
これだ!
http://tec.toi-planning.net/mt/customfieldssearch/
つかれた。。
ソース
<form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
<!--カスタムフィールドサーチを有効にするかどうか-->
<input type="hidden" name="CustomFieldsSearch" value="1" />
<!--どのブログを検索対象にするか-->
<input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
<!--カテゴリサーチを有効にするかどうか-->
<input type="hidden" name="CategorySearch" value="1" />
<input type="hidden" name="CategorySearchSets" value="1" />
<!--カテゴリ選択用プルダウン select nameが”1”なのがポイントっぽい-->
<select name="1">
<option value="0">--</option>
<MTTopLevelCategories>
<MTSubCatIsFirst>MTSubCatIsFirst><MTIfNonZero tag="MTCategoryCount">
<option value="" ><$MTCategoryLabel$> [<$MTCategoryCount$>]</option>
MTIfNonZero><MTSubCatsRecurse><MTSubCatIsLast>MTSubCatIsLast>
MTTopLevelCategories>
select>
<fieldset id="freeword_set">
<br />
<!---->
<!--カスタムフィールドがチェックボックスのものを検索する場合
チェック有り無しは「なし:0、あり:1」で出力されるので-->
<!-- valueを -->
カスタムフィールドの値がチェックボックスのもので、チェックがついたエントリーをOR検索<br/>
<input type="checkbox" id="CustomFieldsSearchField_entryninjin" name="CustomFieldsSearchFieldIn" value="entryninjin:1" />
<label for="CustomFieldsSearchField_entryninjin">: にんじん</label>
<input type="checkbox" id="CustomFieldsSearchFieldIn_entrypiman" name="CustomFieldsSearchFieldIn" value="entrypiman:1" />
<label for="CustomFieldsSearchFieldIn_entrypiman">: ピーマン</label>
<input type="checkbox" id="CustomFieldsSearchField_entrysweetpotato" name="CustomFieldsSearchFieldIn" value="entrysweetpotato:1" />
<label for="CustomFieldsSearchField_entrysweetpotato">: さつまいも</label>
fieldset>
<input type="submit" accesskey="4" value="検索" />
form>
http://www.7dc.jp/matsutsune/2009/11/customfields.html
これだ!
http://tec.toi-planning.net/mt/customfieldssearch/
つかれた。。
ソース
<form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
<!--カスタムフィールドサーチを有効にするかどうか-->
<input type="hidden" name="CustomFieldsSearch" value="1" />
<!--どのブログを検索対象にするか-->
<input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
<!--カテゴリサーチを有効にするかどうか-->
<input type="hidden" name="CategorySearch" value="1" />
<input type="hidden" name="CategorySearchSets" value="1" />
<!--カテゴリ選択用プルダウン select nameが”1”なのがポイントっぽい-->
<select name="1">
<option value="0">--</option>
<MTTopLevelCategories>
<MTSubCatIsFirst>MTSubCatIsFirst><MTIfNonZero tag="MTCategoryCount">
<option value="
MTIfNonZero><MTSubCatsRecurse><MTSubCatIsLast>MTSubCatIsLast>
MTTopLevelCategories>
select>
<fieldset id="freeword_set">
<br />
<!---->
<!--カスタムフィールドがチェックボックスのものを検索する場合
チェック有り無しは「なし:0、あり:1」で出力されるので-->
<!-- valueを
カスタムフィールドの値がチェックボックスのもので、チェックがついたエントリーをOR検索<br/>
<input type="checkbox" id="CustomFieldsSearchField_entryninjin" name="CustomFieldsSearchFieldIn" value="entryninjin:1" />
<label for="CustomFieldsSearchField_entryninjin">: にんじん</label>
<input type="checkbox" id="CustomFieldsSearchFieldIn_entrypiman" name="CustomFieldsSearchFieldIn" value="entrypiman:1" />
<label for="CustomFieldsSearchFieldIn_entrypiman">: ピーマン</label>
<input type="checkbox" id="CustomFieldsSearchField_entrysweetpotato" name="CustomFieldsSearchFieldIn" value="entrysweetpotato:1" />
<label for="CustomFieldsSearchField_entrysweetpotato">: さつまいも</label>
fieldset>
<input type="submit" accesskey="4" value="検索" />
form>
2010年6月18日金曜日
2010年6月16日水曜日
2010年6月15日火曜日
struts2+文字コードでおきたバグ
【前提】
・struts2を使用
・入力された文字列と単位を出力する
・文字列が「 _ 」の場合は、単位を出力しない
以下のような形でデータ出力している。
<s:property value="number"/>
<s:if test="number!= '_'"><s:property value="unit"/></s:if>
【事象】
特定の文字列「95」を入力すると、単位表示がされない。
例)
33円
50円
62円
87円
95
100円
【原因】
struts2では、文字列が一文字の場合、シングルコーテーションで囲むと
char型で判断される。
http://mofuken.blogspot.com/2009/07/struts2-sifognl.html
←の判定式で、アンダースコアをシングルコーテーションで
囲んでいるため、
http://homepage2.nifty.com/miyuki-t/html/cardinalnum.html
ハイフンの文字コードが16進数だと5Fで、10進数であらわすと「95」
「95の値が入力されたとき「_」と同じと判断されて単位表示が
されなくなる。
char型
Javaでは、文字を扱うための型として、charが用意されています。char型は、Unicodeの1文字分と同じく、16ビットで表現します。
char型は、整数型の一種です。char型には0以上、65535以下の整数値が入ります。具体的には、整数値として、Unicode文字のコード番号を入れて使います。
文字を扱う型と言っても、その実体は整数ですから、整数に関して実行可能な演算は、char型に関しても実行可能です。つまり、加減乗除、剰余、比較などが行えます。
文字リテラル
char型の値を表すのには、文字リテラルが使用できます。文字リテラルは、1個の文字をシングル・クォート(')で囲んで表します。例えば、
'A'
は文字リテラルです。
引用元:http://www.itarchitect.jp/beginners/-/10422-2.html
【解決方法】
下のブログにあるようにダブルコーテーションで囲むと文字列として
解釈されるので、回避できる。
http://mofuken.blogspot.com/2009/07/struts2-sifognl.html
結果的にソースとしては↓みたいにしたら直った。
<s:property value="number"/>
<s:if test="number!= \"_\""><s:property value="unit"/></s:if>
・struts2を使用
・入力された文字列と単位を出力する
・文字列が「 _ 」の場合は、単位を出力しない
以下のような形でデータ出力している。
<s:property value="number"/>
<s:if test="number!= '_'"><s:property value="unit"/></s:if>
【事象】
特定の文字列「95」を入力すると、単位表示がされない。
例)
33円
50円
62円
87円
95
100円
【原因】
struts2では、文字列が一文字の場合、シングルコーテーションで囲むと
char型で判断される。
http://mofuken.blogspot.com/2009/07/struts2-sifognl.html
囲んでいるため、
http://homepage2.nifty.com/miyuki-t/html/cardinalnum.html
ハイフンの文字コードが16進数だと5Fで、10進数であらわすと「95」
「95の値が入力されたとき「_」と同じと判断されて単位表示が
されなくなる。
char型
Javaでは、文字を扱うための型として、charが用意されています。char型は、Unicodeの1文字分と同じく、16ビットで表現します。
char型は、整数型の一種です。char型には0以上、65535以下の整数値が入ります。具体的には、整数値として、Unicode文字のコード番号を入れて使います。
文字を扱う型と言っても、その実体は整数ですから、整数に関して実行可能な演算は、char型に関しても実行可能です。つまり、加減乗除、剰余、比較などが行えます。
文字リテラル
char型の値を表すのには、文字リテラルが使用できます。文字リテラルは、1個の文字をシングル・クォート(')で囲んで表します。例えば、
'A'
は文字リテラルです。
引用元:http://www.itarchitect.jp/beginners/-/10422-2.html
【解決方法】
下のブログにあるようにダブルコーテーションで囲むと文字列として
解釈されるので、回避できる。
http://mofuken.blogspot.com/2009/07/struts2-sifognl.html
結果的にソースとしては↓みたいにしたら直った。
<s:property value="number"/>
<s:if test="number!= \"_\""><s:property value="unit"/></s:if>
2010年6月14日月曜日
2010年6月11日金曜日
2010年6月10日木曜日
ナレッジのため方
ナレッジのため方について考える。
【現状】
・ほしゅチームはある
・保守チームの中では、2~3人のグループで1プロジェクトを担当
・そのグループ内での知識の共有はできてるか
⇒そうでもない?いや、そうでもなくない
⇒グループ内ではできてるけど、保守チーム内ではできてない
・wikiはあるけど使ってない
⇒めんどくさい、アカウントないとみれない
【なぜ問題か】
障害おきる
⇒自分(A)の知識では対応できない
⇒対応できる人(B)に聞く
⇒Bと対応する
⇒直る サイトは動くようになる
⇒ありがとう
⇒終わり
AとBの間にしか知識の共有が行われない、それ以上他の人(C)に広がらない
→Cが困ったときまたBに聞きにいく
→Bの負担が増える、同じことまた教えないとだし
【なぜナレッジがあるといいか】
Bより知識はないが、Aが以前似た問題を対処したことがあり、それがメモとかなんでもいいけど残っている場合Bに直接行く前にAとCのみで対処できるかもしれない
→Bの負担が減る
【なぜできないか】
・めんどくさい
【方法】
ブログを各自で作ってもらって、保守しててで起きた事例や、解決方法を書く
(保守以外のことも書いていいです)
【ブログを書く際の取り決め】
・記事を作成する場合で、保守の内容を書く場合は、ラベル付けを以下のように行う
※ラベルは何個でもつけられます
※クライアント名とか、特定できるような具体的な記述は避ける
●技術的問題
大項目:アプリ対応
中項目:tomcat、apache、java、php、mt
●対応などの問題
大項目:コミュニケーション対応
中項目:障害発生時、追加開発、見積もり
●ケーススタディ的な
大項目:ケーススタディ
中項目:失敗事例、成功事例
【注意して欲しい点】
・書く習慣をつける
⇒フォーマットとかどうでもいいのでとにかく書く
とにかくためてみるしか。ためてから考える
【現状】
・ほしゅチームはある
・保守チームの中では、2~3人のグループで1プロジェクトを担当
・そのグループ内での知識の共有はできてるか
⇒そうでもない?いや、そうでもなくない
⇒グループ内ではできてるけど、保守チーム内ではできてない
・wikiはあるけど使ってない
⇒めんどくさい、アカウントないとみれない
【なぜ問題か】
障害おきる
⇒自分(A)の知識では対応できない
⇒対応できる人(B)に聞く
⇒Bと対応する
⇒直る サイトは動くようになる
⇒ありがとう
⇒終わり
AとBの間にしか知識の共有が行われない、それ以上他の人(C)に広がらない
→Cが困ったときまたBに聞きにいく
→Bの負担が増える、同じことまた教えないとだし
【なぜナレッジがあるといいか】
Bより知識はないが、Aが以前似た問題を対処したことがあり、それがメモとかなんでもいいけど残っている場合Bに直接行く前にAとCのみで対処できるかもしれない
→Bの負担が減る
【なぜできないか】
・めんどくさい
【方法】
ブログを各自で作ってもらって、保守しててで起きた事例や、解決方法を書く
(保守以外のことも書いていいです)
【ブログを書く際の取り決め】
・記事を作成する場合で、保守の内容を書く場合は、ラベル付けを以下のように行う
※ラベルは何個でもつけられます
※クライアント名とか、特定できるような具体的な記述は避ける
●技術的問題
大項目:アプリ対応
中項目:tomcat、apache、java、php、mt
●対応などの問題
大項目:コミュニケーション対応
中項目:障害発生時、追加開発、見積もり
●ケーススタディ的な
大項目:ケーススタディ
中項目:失敗事例、成功事例
【注意して欲しい点】
・書く習慣をつける
⇒フォーマットとかどうでもいいのでとにかく書く
とにかくためてみるしか。ためてから考える
find覚え書き
【ファイル探しつつコピーしたいとき】
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs cp -t /usr/app/logs/backup/
⇒-tオプションがポイントらしい
【ファイル探しつつ移動したいとき】
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs mv -t /usr/app/logs/backup/
⇒-tオプションがポイントらしい*2
http://openlab.dino.co.jp/2008/02/20/133431188.html
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs cp -t /usr/app/logs/backup/
⇒-tオプションがポイントらしい
【ファイル探しつつ移動したいとき】
find /usr/app/logs/ -name "*yyyy-mm-dd.log" | xargs mv -t /usr/app/logs/backup/
⇒-tオプションがポイントらしい*2
http://openlab.dino.co.jp/2008/02/20/133431188.html
クロールされたくないページがクロールされる件
【事象】
検索結果で表示されたリンクをクリックするとエラーページにとんでしまう
【原因】
エラーページに飛んでしまうのは、クロールされた画面が、現在存在しない画面であったため。
表示がおかしいのは不明。。ぱんくず表示がちょうどおかしかったときにクロールされた?かも
【対処法】
①robots.txtをドメイン直下に置き、クロールされたくないページを書き込む
実際においてあるファイルの中身
検索結果で表示されたリンクをクリックするとエラーページにとんでしまう
【原因】
エラーページに飛んでしまうのは、クロールされた画面が、現在存在しない画面であったため。
表示がおかしいのは不明。。ぱんくず表示がちょうどおかしかったときにクロールされた?かも
【対処法】
①robots.txtをドメイン直下に置き、クロールされたくないページを書き込む
実際においてあるファイルの中身
-----------------------------------------------
User-agent: *
Disallow: /***/***/***/←ファイルパス
-----------------------------------------------
参考:http://dokodemo.rankuappu.com/syono5.html
②google webmasterツール から、削除手続きを行うのでもよい
http://www.google.com/support/webmasters/bin/answer.py?hl=jp&answer=164734
PDFのキャッシュが残る
【事象】
同じ名前でアップロードしたPDFファイルのキャッシュが残る
【原因】
pdfのファイルがtomcat側で処理されていたため、apache側のキャッシュ制御をしていたが、無効となっていたから。デフォルトキャッシュの有効期間は数時間があるのでpdf更新確認の前に(数時間以内)そのpdfを参照したことがあればそのキャッシュがブラウザ側に残され、しばらくサーバーへ最新バージョンを取りに行かなくなる。
【対処法】
httpd.conf に、以下の設定を追加
pdfの拡張子のものにマッチした場合、ヘッダ情報を追加する。
http://httpd.apache.org/docs/2.0/ja/mod/core.html
同じ名前でアップロードしたPDFファイルのキャッシュが残る
【原因】
pdfのファイルがtomcat側で処理されていたため、apache側のキャッシュ制御をしていたが、無効となっていたから。デフォルトキャッシュの有効期間は数時間があるのでpdf更新確認の前に(数時間以内)そのpdfを参照したことがあればそのキャッシュがブラウザ側に残され、しばらくサーバーへ最新バージョンを取りに行かなくなる。
【対処法】
httpd.conf に、以下の設定を追加
pdfの拡張子のものにマッチした場合、ヘッダ情報を追加する。
http://httpd.apache.org/docs/2.0/ja/mod/core.html
#pdf Cache-Control
Header set Pragma no-cache
Header set Cache-Control no-cache
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
jk.conf (mod_jkの場合)に、←の一行を追加
JkUnMount で、特定のディレクトリ以下をTomcatの対象から外す
http://www.emxas.co.jp/itblog/item_75.html
http://www.kanata.to/java/tomcat_jkunmount.html
JkUnMount /*.pdf ajp13←←←
追加後、apache再起動
/etc/init.d/httpd reload
登録:
投稿 (Atom)