Archive for the 'Tips' Category

リダイレクトまとめ

 
いつもいつもなんだっけとなって、ググることになるので、自分用のメモ。ググるんならココをググれと。

  1. <meta http-equiv="Refresh" content="0; URL=http://hoge.jp/">
    
  2. <script type="text/javascript">
      location.replace('http://hoge.jp/');
    </script>
    
  3. # e .htaccess
    Redirect permanent /index.html http://hoge.jp/index.php
    

自分としてよく使う順に。自分で全部いじれる場合は、headerに metaを入れますね。
ただ、サイト引越しで、301リダイレクトを返してやらないといけない場合は、3の .htaccessが安全確実。
カラーミーのように、headerがいじれない場合は仕方がないので、2の javascriptで。
こんな感じです。

EC-CUBE:新着情報でHTMLタグを有効化

スーパー小っちゃなTipsなので、書くかどうか迷ったのですが、7月はブログ強化月間ですので(今決めました)、この手のことを書かないで何を書くということで書いておきます。
 
EC-CUBEの新着情報に、<a href=”hogehoge.com”>お得な情報</a>みたいなリンクを書こうと思っても、<や>が <、> に変換されてしまってリンクになりません。
危ないことされたら嫌だからというのはわかりますが、コメント欄みたいに誰が書くかわからないならいざ知らず、新着情報って管理画面からしか書けないし、ESCAPEしなくていいんじゃないの?ということです。

# e data/Smarty/templates/default/bloc/news.tpl

<!--{$arrNews[data].news_comment|escape|nl2br}-->
          ↓
<!--{$arrNews[data].news_comment|nl2br}-->

Smartyの escapeをとればいいということですね。
 
ついでにコレも。Smartyで var_dumpみたいなことをやるときはコレ。

<{$array|@debug_print_var}>

カラーミーでのTips

 
お仕事でカラーミーのカスタマイズをやってるんですけど、これがなかなか癖があって面倒というか面白いので、少しメモっておきます。
一番美味しいところからひとつ。商品一覧でページ数を求めるときです。

<!-- $pgnum = floor(($productlist_num - 1) / 12) +1; -->

<{assign var=pgnum value=$productlist_num-1}>
<{assign var=pgnum value=$pgnum/12+1|regex_replace:"/\..*/":""}>

カラーミーは基本 smartyなんですけど、微妙にいろんなところがマスク(使えなく)してあって、使えないんです。
やりたいことは一番上に書いたことですが、そのまま assignしてもエラーになるので、四則演算をバラバラにして、切り捨ては、regex_replaceを使うという裏ワザです。
 
これを使って、[1] [2] [3] [4] みたいなページ・ナビゲータを出すのはこうです。

<{if $sid_name != ""}>
  <{assign var=clink value=$sid_link}>
<{else}>
  <{assign var=clink value=$bid_link}>
<{/if}>
<div class="pagenate">
  <{if $productlist_prev_page != ""}>
    <a href="<{$productlist_prev_page}>"><img src="http://img05.shop-pro.jp/PA01105/188/etc/page_arrow_lt.gif" alt="" /></a>
  <{/if}>
  <{section name=num3 loop=$pgnum}>
    <a class="pbox" href="<{$clink}>&page=<{$smarty.section.num3.iteration}>"><{$smarty.section.num3.iteration}></a>
  <{/section}>
  <{if $productlist_next_page != ""}>
    <a href="<{$productlist_next_page}>"><img src="http://img05.shop-pro.jp/PA01105/188/etc/page_arrow_rt.gif" alt="" /></a>
  <{/if}>
</div>

左右の矢印を出して、間は数字([1] [2] [3]・・・)のリンクです。途中を省略したいときや、いまいるところの前後だけ出す場合はとりあえず考慮してありませんが、できます。
 
二つ目はまた今度。

CrossSlide

 
いつも同じスライドショーだと飽きるので、新しいやつを探してみた。
 
CrossSlide がそれ!
 
普通のフェードと上下左右にパンしながらのフェード(ただし、これは表示エリアより画像が大きくないとエラーになる)、それと Ken Burnsができる。設定も簡単だし使いやすいが、1回で止まる指定はないみたいで、ずっとループするみたい。
この辺をどう考えるかだな。止まってほしい気もするが。(ソース見たらそういう指定が入ってるというオチはありがち)

用紙の拡大比率など

 
幼稚園の広報誌の表紙の制作を依頼されて(うちの財務大臣からロハで)、カラーコピーで簡易印刷するので、その程度のクォリティでいいということだったので、PhotoShopで土曜日しこしこと作業してたんですが、ほぼ完成したところでプリントアウトしてみると、「A4じゃないよ、B5って言ったじゃん!」とのこと。
さて、どうするか?
 
1.B5でレイアウトし直す。・・・ 面倒いからヤダ。
2.B5で印刷する。・・・ フチなしにしてくれ!とのこと。無理だ。
3.B5でA4用紙に印刷。・・・一見よさそうだが、上マージンが足りないらしく却下。1cmくらい上マージンが指定できればいいだけなんだけど。
4.結局、PhotoShopでPNG保存して、それを Wordに貼りつけて、86%縮小して印刷。・・・OK
 
で、必要な用紙サイズをメモっときます。

A判 B判
A4 210×297 B4 257×364
A5 148×210 B5 182×257

 
これだけじゃなんなんで、その間ググったことメモ。
 
PhotoShopで塗りつぶしじゃない円を描く方法
 なんでもっと簡単に円を描く方法を提供しないんだろうかとそっちの方が気になる。
 
PhotoShopでキラキラした星を描く方法
 これは効果的です。使いました。
 
PHPのヒアドキュメント
 よく使うんだけど、ちゃんと覚えてないものの典型。
 
CSSハック一覧 – IE, Firefox, Safariなどなど
 きっとこれが決定版。
 
フレームの右側を折り返さないようにする方法は?
 white-space:nowrap が思い出せなくてね。年だね、もう。

DNSキャッシュクリア

これから、Linux Tipsのことは、Linuxのマスコット「Tux」の画像を使おうっと。(出典はウィキペディア
 
表題の件は、digでドメイン情報を表示するときなど、なかなか書き変わらないよなと思うときに、実はネットのお外では書き変わっていて、自分ちだけ変わってないんじゃないかという疑念があるときにパパっとやればいいよということで。

# rndc flush

キャッシュのフラッシュです。これでOKでした。

jQueryで class追加・削除

タイトルのまんまなんですけど。
 
jQuery(”#myid”).addClass(”class1″);
jQuery(”#myid”).removeClass(”class1″);
 
クラスを追加したり削除したり。どういうときに使うかというと、例えば、ボタンの上にマウスオーバーしたときに、別の要素を赤くして、マウスが外れたら元の色に戻すとか。そんな感じで使います。(これだけじゃないけどね)


詳しくはこちら ⇒ 第4回 classの制御 – jQueryによるJavaScript入門

CSSで久々にびっくりしたこと

inputを disableにしてるとき、わかりやすいように opacityで透明化しようとしてはまったこと。
なんと IE7互換表示だと大丈夫なのに、IE8だとダメなやつがあるのですよ。
input:disabled {} の CSSがそれで、これが複数指定の中に入っていたがために、そのCSS指定がみんな無効になってしまい、わからんちんな結果に。(CSSでエラーになるようなことを書くと、そのブロック全部適用されない罠!)

  IE8 Firefox Chrome Opera Safari
input[type=text] O O O O O
input:read-write
input:read-only
O O
input:enabled
input:disabled
O O O O
input:active
input:focus
input:hover
O O O O O
input:checked O O O O
input:default O O

この表の出典はこちら ⇒ 各ブラウザのCSSセレクタの対応状況
 
 
あと、position:absolute してて、IE7で表示されないなと思ったら、z-indexを付けてみること。下になっちゃってるだけかもしれませんよ。

psql備忘録

久々に psqlを触ったらびっくりするくらい忘れていたので、これはこれで新鮮だった。
人ってこのくらいキレイさっぱり忘れられるんだなぁ、道理で失恋で死ぬやつがたくさんいないわけだ。
以下、なにを忘れていたかの記録。文字通り備忘録。

  • 起動にはDB名とユーザ名が必要 ・・・ psql -U user mydb
  • 操作ヘルプ ・・・ ¥?
  • 終わるとき ・・・ ¥q
  • コマンド起動でSQL実行 ・・・ psql mydb -c ’select * from tbl;’
  • 外部ファイルをSQLとして実行 ・・・ psql mydb -f sql.txt
  • 全部成功したときだけコミット ・・・ psql mydb -f sql.txt -1
  • 対話:DB一覧 ・・・ ¥l
  • 対話:テーブル一覧 ・・・ ¥d
  • 対話:テーブル詳細 ・・・ ¥d mytable
  • 対話:外部ファイル実行 ・・・ ¥i sql.txt
  • WARNING: nonstandard use of \\ in a string literal at character N ・・・ エスケープ文字を含むときは、文字列はE”で包むこと(E’ほげほげ’)
  • SQLでの文字列連結 ・・・ select “123″ || “ABC” from

Ruby備忘録

久々にRubyを触ったらびっくりするくらい忘れていたので、これはこれで新鮮だった。
人ってこのくらいキレイさっぱり忘れられるんだなぁ、道理で失恋で死ぬやつがたくさんいないわけだ。
以下、なにを忘れていたかの記録。文字通り備忘録。

  • 行末セパレータ ・・・ ;とか普通のときはいらない
  • if end ・・・ endifじゃなかった(jsに毒されてるな>自分)
  • 文字列を結合する ・・・ 普通の+でOK
  • 文字列を1行ずつ処理する ・・・ s.each_line { |line| hogehoge }
  • trimじゃなくて strip
  • 文字列を数字に ・・・ to_i
  • 文字列の replace ・・・ gsub(/正規表現/, “置換文字列”)
  • 漢字コード変換 ・・・ require ‘kconv’; s.tojis; s.toeuc; s.tosjis
  • 文字列をセパレートする ・・・ s.split(/\s*,\s*/)
  • 文字列から正規表現にマッチしたものを配列で ・・・ s.scan(/(\S+):([\d\-]+)/)
  • 文字列の末端の改行を削除 ・・・ s.chomp
  • 文字列の1文字をASCIIコードに変換 ・・・ s=”ABC”; s[0] # 65を返す
  • TOUPPER ・・・ s.upcase
  • シングルクォートをエスケープするとき ・・・ s.gsub(/’/, “\\\\’”)
  • SUBSTR ・・・ s.slice(3,20)
  • replaceの強力なやつ ・・・ require ‘jcode’; s.tr(”A-Z”, “a-z”) #全角を扱うときのみ jcode
  • 空行とのマッチ ・・・ s == “\n”
  • premature end of regular expression ・・・ 正規表現がバックスラッシュで壊れてる。$KCODE=’u’
  • URIのエンコード ・・・ require ‘uri’; $KCODE = ‘u’; URI.escape(’ほげほげ’)
  • ファイル名(拡張子なし) ・・・ p File.basename(”ruby/ruby.c”, “.*”) #=> “ruby”

とりあえず、このくらい。主として文字列まわり。

« Previous PageNext Page »