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

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

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

サクウェブTVはコチラ↓↓↓
サクウェブTV

template.phpに以下を追加して、

imageFromNode()をテンプレート内で使用してください。

/*
 * $nodeから画像フィールド情報を取り出す
 */
function imageFromNode($node, $field){
    global $base_path;
    $rtn = array();
    $images = fieldFromNode($node, $field);
    if(!empty($images)){
        foreach($images as $image){
            $rtn[] = array(
                "fid"=>intval($image["fid"]),
                "uid"=>intval($image["uid"]),
                "filename"=>$image["filename"],
                "filepath"=>sprintf("%ssites/default/files/%s", $base_path, $image["filename"]),
                "alt"=>$image["alt"],
                "title"=>$image["title"],
                "width"=>intval($image["width"]),
                "height"=>intval($image["height"])
            );
        }
    }
    return $rtn;
}
/*
 * $nodeから必要なフィールドだけ取り出す
 */
function fieldFromNode($node, $field){
    $rtn = array();
    if(!empty($node->$field)){
        $data = $node->$field;
        $rtn = $data["und"];
    }
    return $rtn;
}