jQuery / JS 社内ルール

jQuery / JS 社内ルール v0.1 2017/05/29 by Shin (shin@accorder.co.jp)

【jQuery/jsファイルの保存】

jQueryなどカスタマイズが不要なファイルはいいが、基本的に全てのjQuery/jsファイルは、directoryが必要。
良い例) /js/jquery.js <– jQuery /js/common.js <– 全ページで使う js /js/colorbox/jquery.colorbox.js /js/colorbox/colorbox.css /js/colorbox/colorboxSet.js /js/colorbox/images/border.png /js/colorbox/images/loading.gif 悪い例) /js/jQuery2.2.4/jquery2.2.4.js <– jQueryだけでいいです。他の情報不要です。 /js/common.js <– 全ページで使う js /js/colorbox/jquery.colorbox-min.js <– minは使いません。 /js/colorbox/colorbox-min.css <– minは使いません。 /js/colorbox/colorboxSet.js /images/colorbox/border.png <– jsに入れてください。 /images/colorbox/loading.gif <– jsに入れてください。 /js/jquery.heightLine.js <– directoryの中に入れて下さい。

【dist と src が両方入っている場合】

dist と src が入っているjqueryのライブラリーも多いと思います。 distだけ入れて下さい。 distの中に、minが入っていれば、minではない方を入れてください。

【Google Analyticsのコード】

必ずheadの開始タグの下に入れて下さい。
<head>
<!-- Google Analyticsは、ここです -->

【括弧の書き方】

functionやif文などを作成するとき、 区切るところが分かりやすくなるよう、以下のように空白スペースを必ず入れてください。

sample1(var_a, var_b)までがセットです。
function sample1(var_a, var_b) {
   //...
}
if(a != b)までがセットです。
if(a != b) {
//...
} else {
   //...
}

Smarty基礎

Smartyは、PHPのテンプレートエンジンです。
公式日本語サイト:http://www.smarty.net/docsv2/ja/

PHPとHTMLが1つのファイルになっていると、エンジニアも、コーダーも大変です。
なぜかというと、コードも読みにくいし、一緒に作業も出来ません。
間違ってエンジニアがコードを触ってレイアウトが崩れたり、コーダーがphpの部分を触ってエラーに繋がったり、様々な問題が現れます。
これを防ぐための1つの方法が、テンプレートエンジンです。

Smartyは、基本的に TPL ファイルで保存します。
他にもコンパイルフォルダーが必要です。
tpl/
index.htmlをスマーティ化する場合は、基本的に以下のようになります。
index.php
tpl/index.tpl
tpl_c/
このまましてみたのに、動かない場合、tpl_cのパーミッションが757になっているか確認してみてください。
サーバーによって、777にしないといけない場合もありますが、基本的に757です。

Smartyの設置は SHIN の方で行いますので、気にしなくてもいいですが、
使い方はコーダーでも覚えて欲しいので、以下を中心に学んで下さい。

phpからのデーターを出力したい phpの方で、処理した結果をテンプレート(以下、tplで書きます)に渡します。
渡されていない値は表示出来ません。渡されたデータのみ出力が出来ます。
どうするのかですが、PHPの方は以下のようになっています。

PHP:
$my_name = "shin";
$smarty->assign('my_name', $my_name);
TPL:
<h1>My name is {{$my_name}}.</h1>
結果:
My name is shin.
次は、配列の場合です。 PHP:
$smarty->assign('Contacts',
    array('fax' => '555-222-9876',
          'email' => 'shin@accorder.co.jp',
          'phone' => array('home' => '555-444-3333',
                           'cell' => '555-111-1234')
                           )
         );
HTML:
FAX: {$Contacts.fax}<br>
EMAIL: {$Contacts.email}<br>
Phone(h): {$Contacts.phone.home}<br>
Phone(c): {$Contacts.phone.cell}<br>
結果:
FAX: 555-222-9876
EMAIL: shin@accorder.co.jp
Phone(h): 555-444-3333
Phone(c): 555-111-1234
次は、PHPから貰ったデータを可変してみましょう。
例えば、phpから、$my_date = “20170503 12:34:59”;というデータを貰った場合、日本風の日付に変えたい場合:
{{$my_date|date_format:"%Y年%m月%d日"}}
結果:
2017年5月3日
簡単に言うと、{{と}}に囲まれた変数の次に縦棒を入れ、コマンドを入れれば、わざわざPHPで処理しなくても Smarty の方で変えてくれます。
{{$変数|ここに変えたい処理を入れる}} 
日付だけではなく、文字制限、全て大文字にする、全て小文字にするなどは、よく使われています。

最後にincludeです。
例)/accorder/tpl/base_header.tplのヘッダーを別のテンプレートで作成され、利用する場合:
{{include file="$document_url/tpl/base_header.tpl"}}
$document_urlは、shinの方で作成しておくので、入れておけば適切な値が入ります。

例)/accorder/blog/tpl/blog_header.tplのヘッダーを別のテンプレートで作成され、利用する場合:
{{include file="$document_url/blog/tpl/blog_header.tpl"}}
このように、ヘッダーやフッターなどをテンプレート化しておくと、
修正も1回で済むので楽になります。 以下、公式サイトと、アコーダーのSmartyの違いです。
jQueryなどとの問題もあり、{$variable}を{{$variable}}に変えました。
入力の文字を減らすため、templates を tpl に変え、templates_c を tpl_c に変えました。
公式サイトで確認するときは、間違いないようにお願いします。

公式アコーダー
{$variable}{{$variable}}
templatestpl
templates_ctpl_c

Chromeで印刷用CSSのスタイルを確認する方法

  1. Chrome DevToolsを開く(⌘ + ⌥ + I)
  2. DevToolsの右側のメニューをクリックします
  3. 「More tools」から「Rendering settings」を選択します
  4. 「Emulate print media」にチェックを入れます DevToolsを開いたらescキーでConsoleを開いて、左端のメニューから「Rendering settings」を選ぶという方法もあります。