LifeType 中文開發論壇

開發 => 外掛程式精華區 => 主題作者是: 我是“路痴” 於 七月 18, 2005, 10:23:59 上午



主題: 文章加密外挂程序
作者: 我是“路痴”七月 18, 2005, 10:23:59 上午
启用二级域名,提交 密码 后会将 URL变成: {username}.blog.com 这个问题应该是整体框架的问题,如何解决...

用户只选择 开启密码保护 ,单位填写 密码 ,那么这篇文章输入任何的密码都无法进入,解决方法是 预设默认值 还是容许任何 密码 都能进入?


主題: Re: 文章加密外挂程序
作者: markwu七月 19, 2005, 11:08:37 上午
引用自: 我是“路痴”
启用二级域名,提交 密码 后会将 URL变成: {username}.blog.com 这个问题应该是整体框架的问题,如何解决...

用户只选择 开启密码保护 ,单位填写 密码 ,那么这篇文章输入任何的密码都无法进入,解决方法是 预设默认值 还是容许任何 密码 都能进入?


請到 sf.net 下載新的 secret plugin,已經修復了。

Mark


主題: 文章加密外挂程序
作者: 我是“路痴”七月 19, 2005, 03:57:57 下午
好的,谢谢..


主題: 文章加密外挂程序
作者: 我是“路痴”七月 19, 2005, 04:32:21 下午
Plugin: Secret
Author: pLog Team
Release Date: 2005/01/23
Version: 1.0

This plugin offers the password protect to specific articles, unless user provide the right password or they can not see the article
s.

Install:
1. Configurate your Secret plugin in your pLog control center


用这个还是一样的问题,可否给 下载连接 出来。

是否能解决以下问题:
1. 空白密码串 导致无法正确认证问题。
2. 看文章时输入密码错误导致 URL 异常情况。

感谢..


主題: Re: 文章加密外挂程序
作者: ashen七月 21, 2005, 10:24:40 下午
引用自: markwu
引用自: 我是“路痴”
启用二级域名,提交 密码 后会将 URL变成: {username}.blog.com 这个问题应该是整体框架的问题,如何解决...

用户只选择 开启密码保护 ,单位填写 密码 ,那么这篇文章输入任何的密码都无法进入,解决方法是 预设默认值 还是容许任何 密码 都能进入?


請到 sf.net 下載新的 secret plugin,已經修復了。

Mark


Hi Mark,

雖然我用了secret這個plugin,但是我在RSS feed內還是可以看到我設定保護的文章內容....請問這問題是否有個比較好的解決方法呢?我目前唯一能做的似乎就是把RSS的功能拿掉.....

我的想法是看能不能設定一個專門放置祕文的資料夾,然後針對那個資料夾開/關RSS的選項,但是這方法應該行不通,我修改了footer.template,試圖在讀取的資料夾的迴圈內加上判斷式,但是找不到合適的判斷式可用....Orz

有好一點的建議嗎??

 8-|


主題: Re: 文章加密外挂程序
作者: ajer001七月 22, 2005, 05:19:26 下午
引用自: ashen
引用自: markwu
引用自: 我是“路痴”
启用二级域名,提交 密码 后会将 URL变成: {username}.blog.com 这个问题应该是整体框架的问题,如何解决...

用户只选择 开启密码保护 ,单位填写 密码 ,那么这篇文章输入任何的密码都无法进入,解决方法是 预设默认值 还是容许任何 密码 都能进入?


請到 sf.net 下載新的 secret plugin,已經修復了。

Mark


Hi Mark,

雖然我用了secret這個plugin,但是我在RSS feed內還是可以看到我設定保護的文章內容....請問這問題是否有個比較好的解決方法呢?我目前唯一能做的似乎就是把RSS的功能拿掉.....

我的想法是看能不能設定一個專門放置祕文的資料夾,然後針對那個資料夾開/關RSS的選項,但是這方法應該行不通,我修改了footer.template,試圖在讀取的資料夾的迴圈內加上判斷式,但是找不到合適的判斷式可用....Orz

有好一點的建議嗎??

 8-|


剛剛測了一下
結果rss.. summary裡面..
都會顯示出內容
呵呵
還有moblie.php也會
@@


主題: Re: 文章加密外挂程序
作者: ashen七月 27, 2005, 09:59:18 上午
引用自: ajer001
引用自: ashen
引用自: markwu
引用自: 我是“路痴”
启用二级域名,提交 密码 后会将 URL变成: {username}.blog.com 这个问题应该是整体框架的问题,如何解决...

用户只选择 开启密码保护 ,单位填写 密码 ,那么这篇文章输入任何的密码都无法进入,解决方法是 预设默认值 还是容许任何 密码 都能进入?


請到 sf.net 下載新的 secret plugin,已經修復了。

Mark


Hi Mark,

雖然我用了secret這個plugin,但是我在RSS feed內還是可以看到我設定保護的文章內容....請問這問題是否有個比較好的解決方法呢?我目前唯一能做的似乎就是把RSS的功能拿掉.....

我的想法是看能不能設定一個專門放置祕文的資料夾,然後針對那個資料夾開/關RSS的選項,但是這方法應該行不通,我修改了footer.template,試圖在讀取的資料夾的迴圈內加上判斷式,但是找不到合適的判斷式可用....Orz

有好一點的建議嗎??

 8-|


剛剛測了一下
結果rss.. summary裡面..
都會顯示出內容
呵呵
還有moblie.php也會
@@


我目前的作法是把RSS的summary連結從post.template拿掉
讓讀者無法直接從首頁上存取RSS summary的功能....
但是某些RSS Reader,例如FireFox的外掛Sage
點選RSS Link後還是會出現RSS Summary的頁面....Orz
但是若是從單一文章的連結來開啟文章的話,會跳到密碼詢問的頁面

anyway, 希望下一版的pLog能夠有個良好的解決方案
 (6)


主題: Re: 文章加密外挂程序
作者: markwu七月 27, 2005, 12:36:13 下午
引用自: ashen

anyway, 希望下一版的pLog能夠有個良好的解決方案
 (6)


我真的希望大家多用點心看一下 pLog API   8o|

在 article 這個物件中,有一個 method 是 hasField() 是用來判斷 這一個文章中有沒有 custom Field...

Secret 用到幾個 custom Field,其中有一個是 password_protected

所以你可以把 {$post->getText()|escape} 改為
程式碼:
{if $post->hasField( "password_protected" )} // 用來判斷 password_protected 存不存在
 {assign var=isSecretField value=$post->getFieldObject( "password_protected" )}
  {if $isSecretField->getValue() == 1} // 用來判斷 password_protected 有沒有打勾
    {$post->getText()|escape}
  {/if}
{/if}


把這一段程式替換到 你的 rss 與 summary 中,只要是 password_protected 有打勾的文章都不會顯示!

這個方式會直接跳過 secret plugin 的設定,所以即使你 disabe secret plugin, 已經被勾選為 password_protected 的文章還是不會顯示。

Mark


主題: Re: 文章加密外挂程序
作者: ashen七月 27, 2005, 03:55:26 下午
引用自: markwu
引用自: ashen

anyway, 希望下一版的pLog能夠有個良好的解決方案
 (6)


我真的希望大家多用點心看一下 pLog API   8o|

在 article 這個物件中,有一個 method 是 hasField() 是用來判斷 這一個文章中有沒有 custom Field...

Secret 用到幾個 custom Field,其中有一個是 password_protected

所以你可以把 {$post->getText()|escape} 改為
程式碼:
{if $post->hasField( "password_protected" )} // 用來判斷 password_protected 存不存在
 {assign var=isSecretField value=$post->getFieldObject( "password_protected" )}
  {if $isSecretField->getValue() == 1} // 用來判斷 password_protected 有沒有打勾
    {$post->getText()|escape}
  {/if}
{/if}


把這一段程式替換到 你的 rss 與 summary 中,只要是 password_protected 有打勾的文章都不會顯示!

這個方式會直接跳過 secret plugin 的設定,所以即使你 disabe secret plugin, 已經被勾選為 password_protected 的文章還是不會顯示。

Mark


Mark,

Thanks for your information and example.

剛加入這個討論區,也沒看過pLog相關的API Document
如果任何重複或是粗淺的問題,請您見諒 Sorry <(_._)>

anyway, 謝謝你撥冗回答

 8-|


主題: 文章加密外挂程序
作者: markwu七月 27, 2005, 10:55:42 下午
Hi ashen:

試過之後,請記得回報狀況喔! :-D

另外 pLog 的 API 在 http://www.lifetype.org.tw/api
文件在 http://wiki.lifetype.org.tw

Mark


主題: 文章加密外挂程序
作者: ashen七月 28, 2005, 12:57:42 下午
引用自: markwu
Hi ashen:

試過之後,請記得回報狀況喔! :-D

另外 pLog 的 API 在 http://www.lifetype.org.tw/api
文件在 http://wiki.lifetype.org.tw

Mark


哈,那是一定要的,這幾天我找個時間測試一下
也花個時間K一下pLog API Document
有心得一定上來跟大家分享(就怕沒心得....:-$ 都只是聊天打屁)

Mark, 謝謝!!

 :-D


主題: Re: 文章加密外挂程序
作者: ajer001七月 29, 2005, 03:32:09 下午
引用自: markwu
引用自: ashen

anyway, 希望下一版的pLog能夠有個良好的解決方案
 (6)


我真的希望大家多用點心看一下 pLog API   8o|

在 article 這個物件中,有一個 method 是 hasField() 是用來判斷 這一個文章中有沒有 custom Field...

Secret 用到幾個 custom Field,其中有一個是 password_protected

所以你可以把 {$post->getText()|escape} 改為
程式碼:
{if $post->hasField( "password_protected" )} // 用來判斷 password_protected 存不存在
 {assign var=isSecretField value=$post->getFieldObject( "password_protected" )}
  {if $isSecretField->getValue() == 1} // 用來判斷 password_protected 有沒有打勾
    {$post->getText()|escape}
  {/if}
{/if}


把這一段程式替換到 你的 rss 與 summary 中,只要是 password_protected 有打勾的文章都不會顯示!

這個方式會直接跳過 secret plugin 的設定,所以即使你 disabe secret plugin, 已經被勾選為 password_protected 的文章還是不會顯示。

Mark


第一次查閱api文件
發現果然是個好東西
太棒了
以後應該會多多利用.查閱

不過前面的方法
小弟發生了點問題
依照mark的語法
會有
Exception message: Smarty error: [in summary/post.template line 15]: syntax error: invalid attribute name: '"password_protected"' (Smarty_Compiler.class.php, line 1497)
的錯誤

應該是找不到這個field吧?!

感謝


主題: 文章加密外挂程序
作者: markwu七月 29, 2005, 04:18:09 下午
不是,是因為 ( "password_protected" ) 有空白 ..:( ,另外那個判斷式有一些錯!真是.....粗心!

你直接把 summary 中的 post.template 改為

引用

// 直接抓取 password_protected 的 value object
{assign var=isSecretField value=$post->getFieldObject("password_protected")}
// 如果 value object 是空的,或是沒有設定密碼保護 !=1,就顯示文章
{if empty($isSecretField) || $isSecretField->getValue() != 1}
 

{assign var="blog" value=$post->getBlogInfo()}
{assign var="request" value=$blog->getBlogRequestGenerator()}
<h5>{$post->getTopic()}</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}


粗體字是另外加上的! rss 的部分請以此類推!記得前面有 // 的是註解,你不要一起 copy 上去了!

Mark


主題: Re: 文章加密外挂程序
作者: cfw8521十一月 26, 2005, 09:58:45 上午
請問這個外掛是裝好後有設密碼的文章就看不見或是回應時需填密碼呢?


主題: Re: 文章加密外挂程序
作者: bennyl一月 02, 2006, 12:30:03 下午
如加密的是短文章只要用尋找功能內文還是會顯示出來!  :-(

我試過參照大大提供的程式碼加在 /GreenTrack/searchresults.template (只針對內文加密)內可是一直失敗 Fatal error: Call to a member function on a non-object................ :'(

不知那位大大有方法解決問題 :-P


主題: Re: 文章加密外挂程序
作者: evenrain十月 12, 2006, 05:02:00 下午
如加密的是短文章只要用尋找功能內文還是會顯示出來!  :-(

我試過參照大大提供的程式碼加在 /GreenTrack/searchresults.template (只針對內文加密)內可是一直失敗 Fatal error: Call to a member function on a non-object................ :'(

不知那位大大有方法解決問題 :-P

要注意的是,在 searchresult.template 並沒有 $post 這個變數,

程式碼:
{assign var=isSecretField value=$post->getFieldObject("password_protected")}
改為
程式碼:
{assign var=isSecretField value=$article->getFieldObject("password_protected")}
即可