phpList相關設定說明

問題1:遇到登出、儲存設定、編輯新的電子報等操作時,若安裝 phpList 時,預設路徑不是在 DocumentRoot,就要修改phpList 的 pageroot 設定值。(只修改config.php或config_extended.php是沒有用的)
解答:修改 init.php 檔(/var/www/html/mailer/lists/admin/init.php)。
   372 if (!isset($pageroot)) {
   373 $pageroot = '/lists';
   374 $GLOBALS['pageroot'] = '/mailer/lists';


問題2:在編輯電子報時,沒有出現 Attach Tab。

解答:修改 init.php及config_extended.php檔。
init.php 路徑:/var/www/html/mailer/lists/admin/init.php
config_extended.php 路徑:/var/www/html/mailer/lists/config/config_extended.php

init.php:
168 if (!defined("ALLOW_ATTACHMENTS")) define("ALLOW_ATTACHMENTS",1);
config_extended.php:
625 define('ALLOW_ATTACHMENTS',1);
631 define("FILESYSTEM_ATTACHMENTS",1);


問題3:設定上傳圖片目錄(/var/www/html/mailer/uploadimages)權限。
解答:設定權限為776,user 及 group 可讀可寫可執行,other users 僅可讀寫。
# chmod 776 uploadimages/

問題4:移除電子報的logo。
解答:註解以下的程式。
# vim /var/www/html/mailer/lists/admin/sendemaillib.php
233 /*
234 if (!EMAILTEXTCREDITS) {
235 $html["signature"] = $PoweredByImage;
237 $html["signature"] = preg_replace('/src=".*power-phplist.png"/','src="powerphplist.png"',$html["signature"]);
238 } else {
239 $html["signature"] = $PoweredByText;
240 }
241 */


問題5:ProcessQueue 一直處在 submmited 或 Waiting 狀態,還要手動去按 Process the queue 才有動作,而且不管改config.php、config_extension.php或是改程式碼,手動執行完一次後,就會又一直處在 Waiting 狀態。
解答:改用Command Line來執行,並透過排程定期執行。
# crontab -e
*/20 * * * * /usr/bin/php /var/www/html/mailer/lists/admin/index.php -pprocessqueue -c /var/www/html/mailer/lists/config/config.php > /dev/null


問題6:移除在 Email 中的 Track Code,如果 phpList 是安裝在加密目錄下(htaccess),收件者要查看完整內容就會跳出詢問帳密的視窗,因為在HTML格式多了下面這行 Code。
它將使用者代碼以 HTML img TAG 方式傳遞參數至 ut.php 檔(如果理解有誤請高手指教),而 ut.php 檔在加密目錄下,所以才會跳出詢問帳密的視窗。
<img src="http://www.demo.com/mailer/lists/ut.php?u=*****************&amp;m=33" width="1" height="1" border="0" alt=""> 解答:更改 ALWAYS_ADD_USERTRACK 參數值。
# grep -r -i "ALWAYS_ADD_USERTRACK" . //有3個檔案都有這個參數。
 ./config/config_extended.php: define('ALWAYS_ADD_USERTRACK',0); //原始設定是被註解,但開了也沒用,所以不用考慮。
 ./admin/sendemaillib.php: if (ALWAYS_ADD_USERTRACK) {
 ./admin/init.php:if (!defined('ALWAYS_ADD_USERTRACK')) define('ALWAYS_ADD_USERTRACK',1); //改這裡的設定才有用。

# vim init.php
  if (!defined('ALWAYS_ADD_USERTRACK')) define('ALWAYS_ADD_USERTRACK',0);

phpList語系選單只保留英文及繁體中文的選項

只保留英文及繁體中文的選項要在哪裡設定?
  1. 路徑1:/var/www/html/lists/admin/locale
    只保留en及zh_TW的目錄,其他的目錄都刪除,
    並修改目錄中的language_info檔案內容。 #pwd
      /var/www/html/lists/admin/locale/en
    #vim language_info
      name=ENGLISH
      charset=UTF-8

    #pwd
      /var/www/html/lists/admin/locale/zh_TW
    #vim language_info
      name=繁體中文
      charset=UTF-8

  2. 路徑2:/var/www/html/lists/admin/language.php
  3. 只保留en及zh_TW的設定。 ## this array is now automatically build from the file system using the
    ## language_info file in each subdirectory of /locale/
    ## and further on, from the XML data of the translation site
    $LANGUAGES = array(
    "en" => array("english ","UTF-8","UTF-8, windows-1252 "),
    "zh_TW" => array("Traditional Chinese","utf-8","utf-8"),
    );

修改前


修改後


注意事項

下拉式選單中的項目名稱,修改的優先權是 language_info 大於 language.php,也就是說把 language.php 中的 Traditional Chinese 改成繁體中文是沒有效果的,除非該語系的 language.php 不存在。

改變 phpList 預設語言 (Default Language)

方法一

此方法的缺點:無法再切換其他輸入法。
設定檔路徑:/var/www/html/lists/admin/languages.php
在程式碼@session_start();底下加入$_POST['setlanguage'] = 'zh_TW';

if (!empty($GLOBALS["SessionTableName"])) {
require_once dirname(__FILE__).'/sessionlib.php';
}
@session_start();

$_POST['setlanguage'] = 'zh_TW'; // 加入這行程式碼

if (isset($_POST['setlanguage']) && !empty($_POST['setlanguage']) && is_array($LANGUAGES[$_POST['setlanguage']])) {
## just in case
$setlanguage = preg_replace('/[^\w_-]+/','',$_POST['setlanguage']);
$_SESSION['adminlanguage'] = array(
"info" => $setlanguage,
"iso" => $setlanguage,
"charset" => $LANGUAGES[$setlanguage][1],
"dir" => $LANGUAGES[$setlanguage][4],
);
# var_dump($_SESSION['adminlanguage'] );
}
參考資料:http://selainsoft.blogspot.tw/2008/05/phplist-default-language.html


方法二

優點:改善方法一的缺點。
設定檔路徑:/var/www/html/lists/admin/index.php
在開頭加入以下的程式碼: //設定管理者介面預設語言為繁體中文
$deflanguage;
session_start();

if( !isset( $_SESSION['deflanguage'] )){
$_SESSION['deflanguage'] = 1;
$_POST['setlanguage']="zh_TW";
}

VMware-Virtual Network Editor(vmnetcfg.exe)適用 VMware-player-full-7.0.0-2305329 版本(2018/1/3更新)

在VMware-player-full-14.1.0的版本下使用vmnetcfg.exe,vmnetcfg.exe的版本就要從VMware-workstation-14.1.0內提取出來,最簡單的方式就是使用解壓縮軟體(7-Zip、WinRAR...)。
使用7-zip開啟workstation.exe安裝檔,再開啟Workstation.cab,就可以找到vmnetcfg.exe檔案。

==========================================================================================
Virtual Network Editor 是可以設定 VMware Player 網段和網路型態的工具,
但後來比較新的版本都沒有這個工具。

目前可以知道的是在 VMware Workstation 內是附有這個小工具的,
因此解決方案的方法就是下載用指令解壓縮或安裝 VMware Workstation,從裡面把這個小工具拿出來。

據網路上的文章描述,適用 VMware-player-full-7.0.0-2305329 的 Virtual Network Editor,
是 VMware-workstation-11.0.0 以上的版本,
而由於解壓縮時並沒有 core.cab 的檔案(舊文:VMware-自訂網段工具(vmnetcfg.exe)),
因此必需安裝 VMware-workstation 後再到 VMware Workstation 目錄內把 vmnetcfg.exe 複製到 VMware Player 目錄內,就可以指定網段的範圍了。