如何重新安裝 Drupal 多網站內的一個網站?

最近在測試使用 Drupal 建立共用同一套核心的多網站系統,主要是因應公司要建置手機版的官方網站,想要在同一架構下建立另一個不同介面的網站。

經過搜尋,發現目前大部分的網站如果要展示手機版,通常都是使用另一個網址,例如 m.sample.com ,雖然這會造成一些 SEO 的困擾,但算是最穩定的方法,因此決定採用子網域名稱來處理。


我嘗試使用 Heaven 的人生海海網站裡面的方法,雖然可以多個網站共用資料庫,但是當我要改變一些像是 Block 與 Panel 之類的排版時,其他的網站也會跟著變動,那就無法達到我要的目的。

我希望能夠使用同一套資料庫,但是卻完全使用不同的排版,當然啦,如果不使用Block之類的設定,或許使用各自獨立的 Panel 與 Views 去構築,可能可以達到這樣的目標,但是因為剛開始設計網站時並沒有考慮到這個層面,如果現在要更動,工程太過浩大,因此只能作罷,另外建立一個獨立的資料庫網站來表現手機版本。

但是因為剛剛已經利用子網站的方式建立一個新的網站,並且依照 Heaven 的教學改了設定,現在要改回來卻又無法運作,只好重新安裝一次,以下是重新安裝到新的資料庫的教學。

首先把子網站資料夾裡面的東西清空,然後複製 site/default/settings.php 到子網站的目錄下,更改裡面的資料庫設定,如下:

$databases = array (
  ‘default’ =>
  array (
    ‘default’ =>
    array (
      ‘database’ => ‘your database name’,
      ‘username’ => ‘ your database username ‘,
      ‘password’ => ‘ your database password  ‘,
      ‘host’ => ‘localhost’,
      ‘port’ => ”,
      ‘driver’ => ‘mysql’,
      ‘prefix’ => ‘subsite1_’,
    ),
  ),
);

將更改後的 settings.php 放在子目錄下。

在瀏覽器輸入你的子網站的網址,後面加上 install 頁面的位置,如:http://m.sample.com/install.php?profile=standard&locale=en

你就可以重新安裝一次子網站的 Drupal 系統了。

如何利用Google Form來幫網站製作聯絡我們(Contact Us)頁面

最近剛好需要製作公司的Contact Us頁面,之前使用其他的jQuery表單,但是用一陣子卻失效了,所以不得不重新找其他方法處理,經過Google大神的法力支援下,找到了一些同樣使用jQuery的表單,試用過幾個後發現都有寄送或是使用上的問題,後來發現香腸炒魷魚的一篇文章,發現使用Google Form,也可以製作聯絡表單,有興趣的可以參考這邊

雖然以前也用過幾次Google Form的功能,但是從沒有想過使用在聯絡我們的頁面上,這次算是一個不錯的啟發,所以就照著香腸的介紹把表單建立好了。但是有了可以崁入式的表單,卻沒辦法改變他的設計,只能用醜醜的方式表現,很不符合設計的原則。

因此我又再度拜訪了Google大神,找到了一些國外的資源,整合後套用在我的頁面上,要看成品可以到這邊看看。所以我也把我所學到的經驗寫出來嘉惠廣大的格友們。

  1. 首先依照香腸的文章建立你的聯絡表單。
  2. 如下圖一中的紅框 Form點下,有一個 “Go to Live Form” 選項,點進去,可以進到Google 產生的Form頁面,如下圖二。
  3. 圖一
    圖二
  4. 在 Live Form 頁面按右鍵點擊「檢視網頁原始碼」,會另開一個頁面顯示出該頁面的HTML原始碼(各瀏覽器的開啟方法可能有點不同)。
  5. 把連同<form>標籤與<form>到</form>之間的程式碼全部複製下來,還有下面的Javascript程式碼也要一併複製下來。貼到你的網頁上,這樣你就可以針對其中的class去調整CSS的設定了。
  6. 如果你想要替換Google的確認表單已經送出的頁面,可以採用以下方法:
    把這段語法

    <form action="YOUR-EMBEDDED-GOOGLE-SPREADSHEET-LINK" method="POST">

    替換成這段語法:

    <script type="text/javascript">
    var submitted=false;
    </script>
    <iframe id="hidden_iframe" name="hidden_iframe" onload="if(submitted)
    {window.location='http://YOUR-THANK-YOU-PAGE-URL';}" style="display: none;"></iframe>
  7. 將上面的http://YOUR-THANK-YOU-PAGE-URL替換成你自己的頁面,就大功告成囉。
  8. http://wellgousa.com/contactus.php 再次將我做好的頁面提供給大家參考。

Chrome 與 Safari 的CSS 位置偏差修正

Chrome 與 Safari 使用 Webkit 開放源碼引擎,但是其中有些針對定位點的定義與 IE 或 Firefox不一樣,造成網頁在各瀏覽器看起來會有偏差。因此要修正這個偏差,可以使用下列的方法處理。


在CSS編碼裡使用以下語法:


@media screen and (-webkit-min-device-pixel-ratio:0) {
/* 在這裡放入給 Chrome and Safari 讀取的編碼 */
}

範例:


body { background-color: red; }

@media screen and (-webkit-min-device-pixel-ratio:0) {
body { background-color: blue; }
}

上面那個是給 IE 與 Firefox讀取,底下由@media screen and (-webkit-min-device-pixel-ratio:0)包起來的部份是給Chrome 與 Safari,這樣就可以隨心所欲的針對不同瀏覽器調整位置或CSS。