2014年3月2日 星期日

Drupal文章內容中增加超連結的CODE


這個例子是將超連結到存放zip檔的位置。
1.在文字格式選擇PHP CODE,且要可以在文字格式選擇PHP CODE要先開啟PHP Filter項目。

2.在編輯欄中輸入底下的CODE:
<?php
//抓目前的node id
$path= $_SERVER ['REQUEST_URI'];
$node_path = explode('/', drupal_get_normal_path($path));
$nodex=$node_path[3];
$nodex1=explode('?', $nodex);
//公用檔案存放路徑
$file_public_path=variable_get('file_public_path', conf_path() . '/files');
//ZIP檔存放路徑
$unzip_file_path=$file_public_path . '/unzipfiles/';
//第二層目錄
$sub_temppath=explode('/',$_SERVER['PHP_SELF']);
$sub_path=$sub_temppath[1]
;//組合第一層目錄+第二層目錄
$url='http://'.$_SERVER['HTTP_HOST'].'/'.$sub_path;
//顯示目前組合之超連結
echo '<a href=\''.$url.'/'. $unzip_file_path.$nodex1[0]. '/index.html\' target=\'_new\' >文件連結</a>';
?>

Drupal增加角色的方法圖示


Drupal 安裝pclzip module的步驟

  1. 先安裝Libraries API  http://drupal.org/project/libraries 
  2. 在Drupal中Enable Libraries Module
  3. 安裝pclzip 模組時要去download兩個東西。一個是pclzip的核心程式 pclzip.lib.php(http://www.phpconcept.net/pclzip/pclzip-downloads)下載最新版本(目前是2.8.2版)
  4.           另外一個是在Drupal用的module(http://drupal.org/project/pclzip)下載(pclzip-7.x-1.x-dev.tar.gz
  5. 在Drupal網站路徑 sites/all/下新建一個libraries資料夾。如果是多網站環境下就是在 sites/all/<domain>/下新建一個libraries資料夾
  6. sites/all/libraries或是sites/all/<domain>/libraries資料夾內再建一個pclzip資料夾並把pclzip.lib.php放到此資料夾中。
  7. 在drupal中安裝pclzip-7.x-1.x-dev.tar.gz這個pclzip模組
  8. 修改pclzip.module file will be there in (pclzip module)
    Go to line# 79 - approx and replace the

    <?phpfunction pclzip_library_exists() {
     
    $pclzip_path = libraries_get_path('pclzip.lib.php');
      if (!
    is_file($pclzip_path)) {
       
    drupal_set_message(t('Could not find the PclZip library file : @pclzip_path', array('@pclzip_path' => $pclzip_path)), 'error');
        return
    FALSE;
      }
      return
    TRUE;
    }
    ?>
    WITH

    <?phpfunction pclzip_library_exists() {
     
    $pclzip_path = libraries_get_path('pclzip');
     
    $pclzip_path = $pclzip_path.'/pclzip.lib.php';
      if (!
    is_file($pclzip_path)) {
       
    drupal_set_message(t('Could not find the PclZip library file : @pclzip_path', array('@pclzip_path' => $pclzip_path)), 'error');
        return
    FALSE;
      }
      return
    TRUE;
    }
    ?>
  9. 在Drupal中Enable pclzip模組
  10. 一定要安裝Libraries API不然會出現miss libaries的錯誤。
補充作法:
Here if some one needs any help, you can use this as patch for now. I think the code that is written for now is wrong.
Do the following steps.
1- Download pclzip.lib.php
2- Create a folder named 'pclzip' inside your libraries folder (preferable - sites/all/libraries)
3- Copy pclzip.lib.php to sites/all/libraries/pclzip (folder) - the path might be diff you have created this folder else where
4- IMP and this is the patch.
Go to pclzip.module file will be there in (pclzip module)
Go to line# 79 - approx and replace the

<?phpfunction pclzip_library_exists() {
 
$pclzip_path = libraries_get_path('pclzip.lib.php');
  if (!
is_file($pclzip_path)) {
   
drupal_set_message(t('Could not find the PclZip library file : @pclzip_path', array('@pclzip_path' => $pclzip_path)), 'error');
    return
FALSE;
  }
  return
TRUE;
}
?>
WITH

<?phpfunction pclzip_library_exists() {
 
$pclzip_path = libraries_get_path('pclzip');
 
$pclzip_path = $pclzip_path.'/pclzip.lib.php';
  if (!
is_file($pclzip_path)) {
   
drupal_set_message(t('Could not find the PclZip library file : @pclzip_path', array('@pclzip_path' => $pclzip_path)), 'error');
    return
FALSE;
  }
  return
TRUE;
}
?>

Drupal PHP Filter

設定PHP Filter方法,可以參考下列影片


Drupal  7.17版本要使用PHP CODE的方法
1.在內容類型新增欄位時只能選到[長文字欄及摘要
然後在下方的{文字格式}選擇[PHP CODE],這樣才能在編輯欄位裡輸入PHP碼。

或是
2.在新增區塊時在下方的{文字格式}選擇[PHP CODE]。這樣才能在[區塊內容]內輸入PHP碼。