Plugin FAQ

Plugin FAQ

出自LifeType 中文文件計畫

(修訂版本間差異)
跳轉到: 導航, 搜尋
第56行: 第56行:
注意!這些外掛程式不必全部安裝,請依照自己的環境選擇適當的外掛程式來安裝就可以了。
注意!這些外掛程式不必全部安裝,請依照自己的環境選擇適當的外掛程式來安裝就可以了。
 +
 +
==為什麼我裝了 Secret Plugin 這個外掛程式,可是我那些被保護的文章還是會顯示在 RSS 與 Summary 的頁面呢?==
 +
 +
這是因為 Secret Plugin 只攔截了從 index.php 來的要求,可是沒有攔截從 rss.php 與 summary.php 所來的要求。修改的方式很簡單,這裡我們以 Summary 頁面為例子。請依照下面方式修改:
 +
 +
請修改 /templates/summary/post.template,把
 +
 +
<smarty>
 +
    {assign var="blog" value=$post->getBlogInfo()}
 +
{assign var="request" value=$blog->getBlogRequestGenerator()}
 +
    <h5>{$post->getTopic()|strip_tags}</h5>
 +
    <div class="subtitle">
 +
        {$locale->tr("blog")} <a href="{$request->blogLink()}">{$blog->getBlog()}</a>
 +
    </div>
 +
    <p>
 +
        {$post->getText()|strip_tags|truncate:200:"..."}
 +
    </p>
 +
    <div class="peu">
 +
 +
    {assign var="postCategories" value=$post->getCategories()}
 +
    {assign var="postOwner" value=$post->getUserInfo()}
 +
    {assign var="postDate" value=$post->getDateObject()}
 +
        <a href="{$request->postPermalink($post)}" class="noborder">
 +
            <img src="imgs/post.png" width="10" height="11" alt="Permalink" />
 +
        </a>
 +
        &nbsp;{$locale->tr("posted_by")} {$postOwner->getUsername()},  {$locale->formatDate($postDate,"%e %B %Y")} |
 +
        <img src="imgs/comment.png" width="11" height="10" alt="{$locale->tr("comments")}" />&nbsp;
 +
        <a href="{$request->postPermalink($post)}#comments">{if $post->getTotalComments() eq 0}{$locale->tr("comment on this")}{else}{$post->getTotalComments()} {$locale->tr("comments")|capitalize}{/if}</a>
 +
        <br style="clear: both;" />
 +
    </div>
 +
</smarty>
 +
 +
改為
 +
 +
<smarty>
 +
    //get the password_protected value object from lifetype
 +
    {assign var=isSecretField value=$post->getFieldObject("password_protected")}
 +
    // if value object empty or has no password protection, then we show the post
 +
    {if empty($isSecretField) || $isSecretField->getValue() != 1}
 +
    {assign var="blog" value=$post->getBlogInfo()}
 +
{assign var="request" value=$blog->getBlogRequestGenerator()}
 +
    <h5>{$post->getTopic()|strip_tags}</h5>
 +
    <div class="subtitle">
 +
        {$locale->tr("blog")} <a href="{$request->blogLink()}">{$blog->getBlog()}</a>
 +
    </div>
 +
    <p>
 +
        {$post->getText()|strip_tags|truncate:200:"..."}
 +
    </p>
 +
    <div class="peu">
 +
 +
    {assign var="postCategories" value=$post->getCategories()}
 +
    {assign var="postOwner" value=$post->getUserInfo()}
 +
    {assign var="postDate" value=$post->getDateObject()}
 +
        <a href="{$request->postPermalink($post)}" class="noborder">
 +
            <img src="imgs/post.png" width="10" height="11" alt="Permalink" />
 +
        </a>
 +
        &nbsp;{$locale->tr("posted_by")} {$postOwner->getUsername()},  {$locale->formatDate($postDate,"%e %B %Y")} |
 +
        <img src="imgs/comment.png" width="11" height="10" alt="{$locale->tr("comments")}" />&nbsp;
 +
        <a href="{$request->postPermalink($post)}#comments">{if $post->getTotalComments() eq 0}{$locale->tr("comment on this")}{else}{$post->getTotalComments()} {$locale->tr("comments")|capitalize}{/if}</a>
 +
        <br style="clear: both;" />
 +
    </div>
 +
    {/if}
 +
</smarty>
 +
 +
請仔細看 2-5 行以及 28 行,這是加上去的喔。他的目的如下:
 +
*檢查你的文章有沒有 password_protected 這個自訂欄位。
 +
*如果有就檢查他有沒有密碼保護。
 +
*如果有密碼保護,就不顯示出這篇文章。

在2005年12月31日 (六) 19:26所做的修訂版本

目錄

外掛程式常見問題集

本區是用來整理 LifeType中文論壇 上與外掛程式相關的常見問題。希望能對入門的使用者有些許的幫助。問題內容將隨論壇問題數量增加,目前尚在整理中。

我已經把外掛程式放到 /plugins 的目錄當中,可是不管我更新幾次頁面,就是看不到任何外掛程式啊?

如果你是在 Windows 下使用 PHP 4.3.X 來安裝 LifeType,那麼這應該是 PHP 中 glob() 函示的一個臭蟲。目前的解決方式,是使用 LifeType 自訂的 myGlob() 函示。

請將 /your-blog-folder/class/misc/glob.class.php 中的

  1. function Glob( $folder = ".", $pattern = "*", $flags = 0 )
  2. {
  3. if( function_exists("glob")) {
  4. // call the native glob function with parameters
  5. $fileName = $folder;
  6. if( substr($fileName, -1) != "/" )
  7. $fileName .= "/";
  8. $fileName .= $pattern;
  9.  
  10. return glob( $fileName, $flags );
  11. }
  12. else {
  13. // call our own implementation
  14. return Glob::myGlob( $folder, $pattern );
  15. }
  16. }

改為

  1. function Glob( $folder = ".", $pattern = "*", $flags = 0 )
  2. {
  3. // call our own implementation
  4. return Glob::myGlob( $folder, $pattern );
  5. }

這樣就可以了。

我可以一次安裝所有的外掛程式嗎?

嚴重警告所有 LifeType 的使用者,請勿把所有的外掛程式一次全放到 LifeType 的 /plugins 目錄底下。主要有兩個原因:

1. 避免加重 LifeType 系統的負擔。因為 LifeType 必須要花額外的系統資源來執行外掛程式,所以越多的外掛程式只會造成系統越慢。

2. 避免除錯困難。當你放入所有的外掛程式,當系統出錯時很難立即知道是由那個外掛程式所造成。

所以,建議安裝外掛程式時應該一個一個安裝,並且只安裝你自己需要的外掛程式。

我已經受不了垃社迴響/引用的攻擊了,LifeType 有防制垃圾迴響/引用的外掛程式嗎?

除了貝氏過濾的機制外,LifeType 另外還提供了幾個對付垃圾迴響/引用的外掛程式,可以有效的阻擋垃圾迴響/引用的騷擾。請參考: 垃圾防制干擾管理,這裡有這些外掛程式的詳細說明。

注意!這些外掛程式不必全部安裝,請依照自己的環境選擇適當的外掛程式來安裝就可以了。

為什麼我裝了 Secret Plugin 這個外掛程式,可是我那些被保護的文章還是會顯示在 RSS 與 Summary 的頁面呢?

這是因為 Secret Plugin 只攔截了從 index.php 來的要求,可是沒有攔截從 rss.php 與 summary.php 所來的要求。修改的方式很簡單,這裡我們以 Summary 頁面為例子。請依照下面方式修改:

請修改 /templates/summary/post.template,把

  1. {assign">assign">assign var="blog" value=$post->getBlogInfo()}
  2. {assign">assign">assign var="request" value=$blog->getBlogRequestGenerator()}
  3. <h5>{$post->getTopic()|strip_tags}</h5>
  4. <div class="subtitle">
  5. {$locale->tr("blog")} <a href="{$request->blogLink()}">{$blog->getBlog()}</a>
  6. </div>
  7. <p>
  8. {$post->getText()|strip_tags|truncate:200:"..."}
  9. </p>
  10. <div class="peu">
  11.  
  12. {assign">assign">assign var="postCategories" value=$post->getCategories()}
  13. {assign">assign">assign var="postOwner" value=$post->getUserInfo()}
  14. {assign">assign">assign var="postDate" value=$post->getDateObject()}
  15. <a href="{$request->postPermalink($post)}" class="noborder">
  16. <img src="imgs/post.png" width="10" height="11" alt="Permalink" />
  17. </a>
  18. &nbsp;{$locale->tr("posted_by")} {$postOwner->getUsername()}, {$locale->formatDate($postDate,"%e %B %Y")} |
  19. <img src="imgs/comment.png" width="11" height="10" alt="{$locale->tr("comments")}" />&nbsp;
  20. <a href="{$request->postPermalink($post)}#comments">{if $post->getTotalComments() eq 0}{$locale->tr("comment on this")}{else}{$post->getTotalComments()} {$locale->tr("comments")|capitalize}{/if}</a>
  21. <br style="clear: both;" />
  22. </div>

改為

  1. //get the password_protected value object from lifetype
  2. {assign">assign">assign var=isSecretField value=$post->getFieldObject("password_protected")}
  3. // if value object empty or has no password protection, then we show the post
  4. {if empty($isSecretField) || $isSecretField->getValue() != 1}
  5. {assign">assign">assign var="blog" value=$post->getBlogInfo()}
  6. {assign">assign">assign var="request" value=$blog->getBlogRequestGenerator()}
  7. <h5>{$post->getTopic()|strip_tags}</h5>
  8. <div class="subtitle">
  9. {$locale->tr("blog")} <a href="{$request->blogLink()}">{$blog->getBlog()}</a>
  10. </div>
  11. <p>
  12. {$post->getText()|strip_tags|truncate:200:"..."}
  13. </p>
  14. <div class="peu">
  15.  
  16. {assign">assign">assign var="postCategories" value=$post->getCategories()}
  17. {assign">assign">assign var="postOwner" value=$post->getUserInfo()}
  18. {assign">assign">assign var="postDate" value=$post->getDateObject()}
  19. <a href="{$request->postPermalink($post)}" class="noborder">
  20. <img src="imgs/post.png" width="10" height="11" alt="Permalink" />
  21. </a>
  22. &nbsp;{$locale->tr("posted_by")} {$postOwner->getUsername()}, {$locale->formatDate($postDate,"%e %B %Y")} |
  23. <img src="imgs/comment.png" width="11" height="10" alt="{$locale->tr("comments")}" />&nbsp;
  24. <a href="{$request->postPermalink($post)}#comments">{if $post->getTotalComments() eq 0}{$locale->tr("comment on this")}{else}{$post->getTotalComments()} {$locale->tr("comments")|capitalize}{/if}</a>
  25. <br style="clear: both;" />
  26. </div>
  27. {/if}

請仔細看 2-5 行以及 28 行,這是加上去的喔。他的目的如下:

  • 檢查你的文章有沒有 password_protected 這個自訂欄位。
  • 如果有就檢查他有沒有密碼保護。
  • 如果有密碼保護,就不顯示出這篇文章。