プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

Drupal7でコンテンツタイプごとのテンプレートを作成する方法!

サクウェブTVはコチラ↓↓↓ 複数のブログを作りたいときなど、 コンテンツタイプでシステム内部名称を、 blog1 blog2 blog3 などとする。 そして、コンテンツの追加でそれぞれのコンテンツタイプに、 記事を追加するなどしたら、 コンテンツタイプblog1はこ…

Drupal7でテーマまでのパスを一気に取得する関数!

サクウェブTVはコチラ↓↓↓ このようにします。 テーマ名がresponsiveならば、 /drupal/sites/all/themes/responsive こんなのが返ってきます。

正規表現で特定の文字列から始まる行に合致!

サクウェブTVはコチラ↓↓↓ たとえばecho から始まる行全部なら、 ^echo.*\n ですね。 改行コードによっては、 ^echo.*\r\n とか。 サクラエディタなんかで文字列いじりたいときは、 デフォルトなら後者のほうで。

Drupal7のpage系テンプレートファイルで$nodeの画像系以外のフィールドを取得する!

サクウェブTVはコチラ↓↓↓ template.phpに以下を追加して、 valFromNode()をテンプレート内で使用してください。 /* * $nodeから画像以外のフィールド情報を取り出す */ function valFromNode($node, $field){ global $base_path; $rtn = array(); $vals = …

Drupal7のpage系テンプレートファイルで$nodeの画像系のフィールドを取得する!

サクウェブTVはコチラ↓↓↓ template.phpに以下を追加して、 imageFromNode()をテンプレート内で使用してください。 /* * $nodeから画像フィールド情報を取り出す */ function imageFromNode($node, $field){ global $base_path; $rtn = array(); $images = …

Drupal7のpage系テンプレートファイルで$nodeの特定のフィールドを取得する!

サクウェブTVはコチラ↓↓↓ こんな関数をテンプレートファイル内で使用する。 /* * $nodeから必要なフィールドだけ取り出す */ function fieldFromNode($node, $field){ $rtn = array(); if(!empty($node->$field)){ $data = $node->$field; $rtn = $data["u…

Drupal7でエイリアスからノード情報を取得する関数!

サクウェブTVはコチラ↓↓↓ こんな感じです! /* * 特定のエイリアスのノードオブジェクトを取得する */ function getNodeObjByAlias($alias, $field = null){ $url_alias = db_select("url_alias",$alias)->fields($alias,array("source"))->execute()->fet…

Drupal7でテーマフォルダまでのパスを生成する!

サクウェブTVはコチラ↓↓↓ CSSや画像、JavaScriptをどうしても 手動で読み込みたいとき、 パスが必要ですね。 テーマフォルダまでのパスは、 $base_path . $directory これでつくれるので、あとは良きように。

Drupal7でコンテンツでアップした画像を表示する方法!

サクウェブTVはコチラ↓↓↓ imgタグのsrcを sprintf("%ssites/default/files/%s", $base_path, $node->フィールド名["und"][0]["filename"]) こんな感じで生成できます。 ちなみに一つのフィールドに複数の場合は、 $node->フィールド名["und"] が配列になっ…

Drupal7で特定ページのテンプレートが読み込まれないときは・・・

サクウェブTVはコチラ↓↓↓ まず、 var_dump($theme_hook_suggestions); これをして、 読み込み可能なテンプレート名を調べましょう。 もし、配列の要素に、 page__about なんてのがあったら、 page--about.tpl.php が使用できるよ!ってことです。 それを p…

Drupal7にmetaタグを加える方法!

サクウェブTVはコチラ↓↓↓ テーマ内のtemplate.phpにて、 テーマ名__page_alter() という関数を作ってオーバーライド。 たとえば、 function テーマ名_page_alter(){ //<meta name="viewport" content="width=device-width, initial-scale=1" /> $viewport = array( '#type' => 'html_tag', '#tag' => 'meta', '#attributes' => arr</meta>…

PHPでURLの?以降を除去する!

サクウェブTVはコチラ↓↓↓ $url = preg_replace('!/[^?]*$!', '', $url); ですね!

MySQLをコマンドラインで動かすときにレコード縦表示する方法!

サクウェブTVはコチラ↓↓↓ PostgreSQLをコマンドラインで動かす場合、 \x としておけば、縦表示のON / OFFを切り替えられますが、 MySQLでどうやるのか実は知らなかったので、メモしておきます。 簡単な話、 SELECT * FROM staff \G; みたいに、 最後に \G …

PHPから強制的にPOSTする関数!

サクウェブTVはコチラ↓↓↓ PHPの処理の中で強制的にPOSTして処理を行いたかったり、 処理の結果を受け取って表示したかったりする場合は、 以下の関数を使ってください。 /* * 第一引数のURLに第二引数の配列の値をPOSTする */ function postData($url, $da…

Xamppでメール送信できるようにする!

サクウェブTVはコチラ↓↓↓ xamppは初期状態ではメール送信できないので、設定を変える必要があります。 今回は簡単にgmailを使用します。 まず、php.iniを以下のように編集します。 ;SMTP = localhost (コメントアウト) ;smtp_port = 25 (コメントアウト) ;…

MySQLで文字化けするとき、文字コードをちゃんとUTF-8にする方法!

サクウェブTVはコチラ↓↓↓ XamppのMySQLで文字化けしたのでメモします。 原因は、文字コードをUTF-8にちゃんとできていなかったことです。 もちろん 照合順序はutf8_general_ciにしてあるんですが、 character_set_serverがlatin1になってたのです。 SHOW V…

PostgreSQLで0詰めの数字を作る!

サクウェブTVはコチラ↓↓↓ PHPで123を000123のように6桁の0詰めを作るなら、 例えば、 sprintf('%06d',123) のようにできますが、 そもそも、DBから取得する際に、SQL内で、 TO_CHAR(123,'FM000000') とすれば、 000123が取得できます。 123の部分は適宜カ…

特定の文字で囲まれた文字列にマッチする正規表現!

サクウェブTVはコチラ↓↓↓ 例えば「[12345]」のように「 [ 」と「 ] 」で囲まれた文字列にマッチさせたければ \[.+?\] です。 PHPでこのような文字列を取り除きたい場合は、 $str = preg_replace("/\[.+?\]/", "",$str); ですね。

受け取ったメールの内容をPHPで取得する方法!

サクウェブTVはコチラ↓↓↓ 特定のメールアドレス宛にメールを送信して 特定のPHPを実行させるような場合、 送られたメールの内容をPHPから取得して整形して 使用したい場合があるでしょう。 ※ メール送信で特定のPHPを実行させる方法は 「qmail メール プロ…

.htaccessをオンラインで自動で作成する!

サクウェブTVはコチラ↓↓↓ .htaccessをオンラインで自動で作成するなら http://www.htaccesseditor.com/ ここがとってもいいです! 便利!

OracleでVIEW一覧を表示する方法!

サクウェブTVはコチラ↓↓↓ OracleでVIEW一覧を表示するには、 select VIEW_NAME from user_views こうします。

PostgreSQLでViewの定義を見る方法!

サクウェブTVはコチラ↓↓↓ Viewの定義を見るには、 SELECT definition FROM pg_views WHERE viewname = 'ビューの名前'; このようにします。 出てきたSQL定義は何らかのソフトで整形してから見るとよいでしょう。

PostgreSQLで特定の名前のカラムを持つテーブル一覧を取得する方法!

サクウェブTVはコチラ↓↓↓ 以下のようなSQLを実行します。 SELECT schemas.nspname AS schema_name , tables.relname AS table_name FROM pg_attribute AS colmuns INNER JOIN pg_class AS tables ON colmuns.attrelid = tables.oid INNER JOIN pg_namespac…

PHPで文字化けしたとき、間違いなくUTF-8にする方法!

サクウェブTVはコチラ↓↓↓ 以下のようにしてください。 $str = mb_convert_encoding($str,"UTF-8",mb_detect_encoding($str));

PHPで文字化けしたときにまずやる呪文!

サクウェブTVはコチラ↓↓↓ .htaccessに php_value mbstring.detect_order "UTF-8,eucJP-win,SJIS-win,JIS,ASCII" php_value mbstring.http_input "UTF-8,eucJP-win,SJIS-win,JIS,ASCII" php_value mbstring.http_output UTF-8 php_value mbstring.internal_…

PHPのファイルダウンロードでファイル破損を防ぐ方法!

サクウェブTVはコチラ↓↓↓ PHPでファイルダウンロードを実装する際、 ダウンロードはできるものの、 ファイルが破損する場合があります。 原因は、出力バッファにゴミがたまること。 header('Content-type: application/octet-stream'); ob_end_clean(); //…

Postgresqlで値がNULLの場合に代わりの値を返してくれるCOALESCE関数!

サクウェブTVはコチラ↓↓↓ Postgresqlで値がNULLの場合に代わりの値を返してくれるCOALESCE関数というのがあります。 使い方は COALESCE(カラム名など , 第一引数がNULLだったときに代りに返す値) です。

PostgreSQLのEXCEPTの使い方!

サクウェブTVはコチラ↓↓↓ EXCEPTは取得するカラム名を合わせた二つのSELECT文の差集合を取得します。 使用例は以下です。 TESTTABLE1のITEM1にはデータとして1,2,3とした行を持っており、 TESTTABLE2のITEM1にはデータとして2,4,6とした行を持っている場合…

PHPで二次元配列を特定のキーでソートする関数!

サクウェブTVはコチラ↓↓↓ function keySort(&$arr, $key, $order="ASC"){ if(!empty($arr)){ $date = array(); foreach($arr as $index => $item){ $date[$index] = $item[$key]; } if($order == "ASC"){ array_multisort($date,SORT_ASC,$arr); }elseif($…

子ウィンドウを閉じて親ウィンドウを更新する方法!

サクウェブTVはコチラ↓↓↓ こんな感じでいいかと思います------------------------------<script type="text/javascript"><!--function p_reload(){var pwin=window.opener;pwin.location.reload();pwin.focus();window.close();}//--></script>…<button type="button" onclick="p_reload()">親を更新して閉じる</button>