程式筆記

javascript 判斷變數為空值

在php有個好用的函數 isEmpty(),可以快速的判斷空值,包含 空值、空字串、空物件、空陣列等

不過到了javascript,就必須自己寫了

            function isEmpty(obj){
                if(typeof(obj)=='object'){
                    for(var key in obj){
                        if(obj.hasOwnProperty(key)){return false;}
                    }
                    return true;
                }else{
                    if(typeof(obj)=='number'){if(isNaN(obj)){return false;}}
                    if(obj){return false;}else{return true;}
                }                
            }

D3.js 繪製圓餅圖(pie chart)及甜甜圈圖(donut chart)

利用arc函數繪製圓弧
            //指定繪圖容器
            var vis=d3.select("#mysvg");
            //利用d3製作myScale函數,用以讓百分比可直接對應至弧度
            //myScale(0)=0, myScale(100)=2pi
            var myScale=d3.scale.linear().domain([0,100]).range([0,2*Math.PI]);
            //資料陣列,[起始,結束,顏色]
            var datas=[[0,50,"#f00"],[50,75,"#0f0"],[75,100,"#00f"]];
            //.arc()  繪製圓弧
            //.innerRadius(內圓半徑)
            //.outerRadius(外圓半徑)
            //.startAngle(起始角度)
            //.endAngle(結束角度)

在模組中建立角色

建立一個角色editor

 
$role = new stdClass();
//指定角色名稱
$role->name = 'editor';

// 如設定角色順序,則設定weight屬性
// $role->weight = 10;

//儲存角色
user_role_save($role);

設定角色權限

 
// 取出角色
$editor_role = user_role_load_by_name('editor'); 
$editor_rid = $editor_role->rid;
// 設定權限資料

Drupal版型開發 < 三 > 樣版檔介紹之page.tpl.php

前一篇介紹的 node.tpl.php 主要是用來顯示node本身的資料內容,但如果要控制例如logo, header, footer等區域,則是本篇的 page.tpl.php 所負責的領域。

相關變數如下:

page.tpl.php

一般變數:

  • $base_path: Drupal安裝位置的基底URL,預設是 /
  • $directory: template檔的所在目錄位置, 例如  themes/bartik.
  • $is_front: TRUE 表目前頁面為首頁
  • $logged_in: TRUE 表目前使用者已登入
  • $is_admin: TRUE 表目前使用者為管理者

網站變數 Site 

Drupal版型開發 < 二 > 樣版檔介紹之node.tpl.php

在drupal 要進行版型開發或者改造時,有一個很重要的東西,那就是樣板檔,通常可以在 版型目錄底下的 templates這個目錄中找到這些樣版檔,

常見的檔名通常有 node.tpl.php, page.tpl.php, block.tpl.php,可以到官網去看詳細說明。本篇主要說明的是樣版中可用的變數

以下針對比較常用到的 node.tpl.php 以及 page.tpl.php 做介紹,

 

D3.js 基本繪圖

繪製直線

 
var svg = d3.select('#d3_line').append('svg');
svg.style('height',130).append('line')
.attr('x1', 40).attr('y1', 10)
.attr('x2', 200).attr('y2', 70)
.style('stroke', 'red').style('stroke-width', 5);
 

 

繪製矩型