ajaxsearch1.8.4で全角スペースでも検索させる

  • 2010.12.07 Tuesday
  • 17:51
ajaxsearchはバージョンがあがるごとに、微妙に細かい変更が多いので、旧バージョンと同じ変更ではうまくいかないことが多いです。

バージョン1.8.1では
報告:ajaxsearch 全角スペースで区切ってand検索
の方法でうまくいったのですが、1.8.4では位置がすこし違いますw
assets/snippets/ajaxSearch/classes/search.class.inc.php
の155行目あたり
// Strip HTML tags
$searchString = stripHtml($searchString);

の下に

// zenkaku space=>hankaku space
$searchString=mb_convert_kana($searchString, s, "UTF-8");

にいれればうまくいきました。
またパラメータの書き方が変更になっているので、前バージョンと同じスニペットコールでは動かなかったり…。

AjaxSearch Wiki とバージョン変更点の書いてある
assets/snippets/ajaxSearch/ajaxSearch_version_184.txt
は必読です。

dittoで更新履歴 1年分だけ表示する

  • 2010.09.03 Friday
  • 11:08
dittoで更新履歴を作る場合、トップページに最新のみを表示させるなら &display=`10` で10件表示とかにします。
ここで「もっと読む」とか「続きをよむ」などのリンクをつけて過去の履歴も見せたい場合、リンク先のページで &display=`all` にすればいいのだけど、長くやってるサイトだと件数が膨大になる。なので1年ごととか、更新日時でページを分けたい場合どうするか? ちょっと悩んだのですがfilterパラメータで簡単にできましたw

&display=`all` &filter=`pub_date,1262271600,6|pub_date,1293807599,5|`

これで公開日(pub_date)が2010年1月1日00:00:00以上(6)、2010年12月31日23:59:59以下(5)のリソースをすべて表示になります。

日付時刻はmodxが読めるようにunixタイムスタンプの形式にします。unixtime変換はググるといろいろでてきます。
ここが便利でした。

unixtime変換ツール

pub_dateでなくeditedonにすれば編集日時で区切れます。

filterパラメータの書き方と意味はMEGUさんのDitto - 2.1の解説を参考にどうぞ。
Let's enjoy MODx Ditto - 2.1

あと、これはサイトをmodxに移行して、過去の履歴は静的htmlを使いmodx移行後の履歴のみDittoで作りたい、という場合にも使えます。
というのも &orderBy=`pub_date DESC` で公開日ソートにした場合、公開日が未入力の時はリソース作成日時が使われます。
サイト移行の場合、過去のページでも作成日時はすべて、当然ですが移行日以後です。単に&display=`all`にした場合、困ったことに…。古いページにいちいち公開日を設定するのはうんざりするくらい大変です。(←実は途中までやったorz)
filterで公開日がサイト移行日以後のものだけ表示にすれば、この問題も解決ですw

コピーライトの年号を自動で入れるスニペット(10.03.02追記あり)

  • 2010.01.21 Thursday
  • 12:21
サイト管理していて、フッターのコピーライト©の年号変更をつい忘れがち。
modxでつくってれば、フッター部分はチャンクにしてる人がほとんどだろうから、一箇所直せばすむのだが、それでも結構忘れるんだよなぁ。

なので年号表記部分をphpで書いてスニペットにすることにした。


<?php
echo 'Copyright &copy; '.date('Y').'';
?>


Copyright &copy; の部分は自分のサイトに合わせて書き方変更してくまさい。
スニペット名はAutoCopyrightとでも。

[[AutoCopyright?]] サイト名 All Rights Reserved.

と書いておけば来年になったら自動で年号変わります。

modxなくてもphpが使えるサイトなら、php直接書いておけば楽ですよ。


------------
追記(10.03.02)

バックアップを取った時に、イベントログが異様に溜まっていることに気が付いた。

date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead


というエラーログが大量にある。(AutoCopyrightスニペットで)タイムゾーンの設定がないから、設定しろといってるらしい。

PHPのtimezoneの設定メモ
PHP | php.ini の date.timezone を変更する

このあたりを参考にして修正しました。

方法1 スニペットの記述に設定を加えて以下のように変更にする。


<?php
ini_set("date.timezone", "Asia/Tokyo");
echo 'Copyright © '.date('Y').'';
?>


方法2 php.iniに直接記述する

date.timezone = Asia/Tokyo

※テキストエディタにこの1行を書いて、ファイル名をphp.iniで保存。modxのindex.phpと同じ階層にアップします。

どちらかをすれば、エラーはでなくなります。

Ditto内でGetFieldスニペットを使う時はキャッシュに注意【1.0.5J-r7で解決済み】

  • 2010.01.21 Thursday
  • 11:44

テンプレートにDittoを記述して、それぞれの親idを取得したい時など、GetFieldスニペットを使うと便利です。

&parents=`[[GetField? &field=`id` &parent=`1` &parentLevel=`1`]]`

このときDittoのスニペットコールはキャッシュなしの

[!Ditto? &parents=`[[GetField? &field=`id` &parent=`1` &parentLevel=`1`]]`!]

にしないとうまくいきません。

外側のDittoはキャッシュなしの[!Ditto?
入れ子のGetFieldはキャッシュありの[[GetField?

ここ、はまりました。
そもそも[!と[[どっちがキャッシュありだっけ? といっつも混乱する…^^;

あとDittoでページ分割パラメータpaginateを使う時はキャッシュありにしないとうまく動きません。
なのでDittoコール内でGetFieldコールした場合は、paginateは使えないです。(未検証ですが)

-------------------------
2012.2.13 追記
modx 1.0.5J-r7 アップデートでこの問題は解決されました。
r7以降は外側のDittoも以下のように[[で記述できます。

[[Ditto? &parents=`[[GetField? &field=`id` &parent=`1` &parentLevel=`1`]]`]]

height100%適用方法メモ

  • 2009.11.26 Thursday
  • 13:42
コンテナ用のdivに
height:100%;
だけではうまく行かないし、min-heightやmax-hightをつけてもだめ。
結構前から悩んでて、大抵は内容が短いページに対応できるようなデザインで作ってた。
以下の方法でうまく100%ボックスになります。

参考:標準準拠でheight100%のボックス

html,bodyにもheight:100%;設定して
コンテナdivには
height:100%;
min-height:100%;
両方つける。

これだけだと1画面より長いコンテンツがあったとき
コンテナdivに指定した背景が消えます。
その解消に

body > #コンテナdiv
height: auto;

を指定してやれば、スクロールしても背景表示w

こんな単純な方法だったとはw

calendar

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>

たいやき

selected entries

categories

archives

recommend

recommend

recommend

終わり続ける世界のなかで
終わり続ける世界のなかで (JUGEMレビュー »)
粕谷 知世
2011年度SOG賞 シスターフッド賞

recommend

魔法少女まどか☆マギカ 1 【通常版】 [DVD]
魔法少女まどか☆マギカ 1 【通常版】 [DVD] (JUGEMレビュー »)

(全6巻)2011年度SOG賞 シスターフッド賞

recommend

recommend

音楽の在りて
音楽の在りて (JUGEMレビュー »)
萩尾 望都
2011年度SOG賞 候補作

recommend

私のミトンさん
私のミトンさん (JUGEMレビュー »)
東 直子
2011年度SOG賞 候補作

recommend

recommend

recommend

recommend

recommend

玉工乙女
玉工乙女 (JUGEMレビュー »)
勝山海百合
2010年度SOG賞 候補作

recommend

recommend

MODxでつくる!最強のCMSサイト
MODxでつくる!最強のCMSサイト (JUGEMレビュー »)
MODxフォーラムJapanese Co
初心者はとりあえず買っとけ。

links

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM