OSDN Git Service

2.0.3 jp9
authorhsur <hsur@1ca29b6e-896d-4ea0-84a5-967f57386b96>
Fri, 4 May 2007 17:52:38 +0000 (17:52 +0000)
committerhsur <hsur@1ca29b6e-896d-4ea0-84a5-967f57386b96>
Fri, 4 May 2007 17:52:38 +0000 (17:52 +0000)
git-svn-id: https://svn.sourceforge.jp/svnroot/nucleus-jp/plugin@568 1ca29b6e-896d-4ea0-84a5-967f57386b96

trunk/NP_TrackBack/NP_TrackBack.php
trunk/NP_TrackBack/trackback/japanese-euc.help.html
trunk/NP_TrackBack/trackback/japanese-utf8.help.html

index 48f9174..36bf5ed 100644 (file)
                        if ($tb_id == '') $tb_id = intval($itemid);
        
 //mod by cles
-                       if( $this->getBlogOption(getBlogIDFromItemID($tb_id), "AllowTrackBack") == 'yes' )
-                               $isAcceptPing = ( $this->getItemOption(intval($tb_id), 'ItemAcceptPing') == 'yes' ) ? true : false ;
-                       else
-                               $isAcceptPing = false;
-                               
+                       $isAcceptPing = $this->isAcceptTrackBack($tb_id);
+
                        //if( $skinType == 'template' && (! $isAcceptPing ) ){
                        //      return;
                        //}
 //mod by cles
 //                                     $this->showManualPingForm(intRequestVar('tb_id'));
                                        $tb_id = intRequestVar('tb_id');
-                                       if( $this->getBlogOption(getBlogIDFromItemID($tb_id), "AllowTrackBack") == 'yes' )
-                                               $isAcceptPing = ( $this->getItemOption($tb_id, 'ItemAcceptPing') == 'yes' ) ? true : false ;
-                                       else
-                                               $isAcceptPing = false;
+                                       $isAcceptPing = $this->isAcceptTrackBack($tb_id);
+                                       
                                        if( $isAcceptPing )     
                                                $this->showManualPingForm($tb_id);
                                        else
                
                function doIf($key = '', $value = '')
                {
-                       global $blog;
-                       if (!$blog)
-                               return false;
-                       
-                       $bid = $blog->getID();
-                       $key = ($key == 0 ) ? 'no' : 'yes';
+                       global $itemid;
+                       //echo "key: $key, value: $value";
                        
-                       if ($this->getOption('AcceptPing') == 'no' ) {
-                               return ($key == 'no');
-                       } else {
-                               if ($tb_option = $this->getBlogOption($bid, 'AllowTrackBack')) {
-                                       return ($tb_option == $key );
-                               } else {
-                                       return ($key == 'yes');
-                               }
+                       switch( strtolower($key) ){
+                               case '':
+                               case 'accept':
+                                       if( $value == '' ) $value = 'yes';
+                                       $value = ( $value == 'no' || (! $value) ) ? false : true;
+                               
+                                       $ret = false;
+                                       if( $itemid )
+                                               $ret = $this->isAcceptTrackBack($itemid);
+                                       else
+                                               $ret = $this->isAcceptTrackBack();
+                                       return ( $value == false ) ? (! $ret) : $ret;
+                                       
+                               case 'required':
+                                       if( $value == '' ) $value = 'yes';
+                                       $value = ( $value == 'no' || (! $value) ) ? false : true;
+                                       
+                                       $ret = false;
+                                       if( $itemid )
+                                               $ret = $this->isEnableLinkCheck($itemid);
+                                       
+                                       return ( $value == false ) ? (! $ret) : $ret;
+                                       
+                               default:
+                                       return false;
                        }
                }
 
                        $form = true; $error = false; $success = false;
 
                        // Check if we are allowed to accept pings
-                       if ($this->getOption('AcceptPing') == 'no') {
+                       if ( !$this->isAcceptTrackBack($itemid) ) {
                                $text = 'Sorry, no trackback pings are accepted';
                                $form = false; $error = true;
                        }
                        $desc   = $this->_cut_string($desc, 200);
                        $desc   = htmlspecialchars($desc, ENT_QUOTES);
                        
-                       $timestamp = time();
-                       $sourceaddr = ip2long(serverVar('REMOTE_ADDR'));
-                       $key = md5( sprintf("%u %u %u %s", $timestamp, $sourceaddr, $itemid, __FILE__));
                        ?>
                        <!--
                        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                function handlePing($tb_id = 0) {
                        global $manager;
                        
-                       // Check if we are allowed to accept pings
-                       if ($this->getOption('AcceptPing') == 'no') {
-                               return 'Sorry, no trackback pings are accepted';
-                       }
-                                               
                        // Defaults
                        $spam       = false;
                        $link       = false;
 //mod by cles
                        // check: accept pings.
                        $blogId = getBlogIDFromItemID($tb_id);
-                       
-                       if( $this->getBlogOption($blogId, "AllowTrackBack") == 'yes' )
-                               $isAcceptPing = ( $this->getItemOption($tb_id, 'ItemAcceptPing') == 'yes' ) ? true : false ;
-                       else
-                               $isAcceptPing = false;
+                       $isAcceptPing = $this->isAcceptTrackBack($tb_id);
                                
                        if (! $isAcceptPing)
                                return 'Sorry, no trackback pings are accepted.';
                function isEnableLinkCheck($itemid){
                        $blogid = getBlogIDFromItemID($itemid);
                        
-//                     if( ! $this->getBlogOption($blogid, 'enableLinkCheck') == 'yes' )
-//                             return false;
-                       
-                       $val = $this->getItemOption($itemid, 'isAcceptW/OLink');
-                       switch( $val ){
+                       switch( $this->getItemOption($itemid, 'isAcceptW/OLink') ){
                                case 'default':
-                                       if($this->getBlogOption($blogid, 'isAcceptW/OLinkDef') == 'yes')
+                                       $def = $this->getBlogOption($blogid, 'isAcceptW/OLinkDef');
+                                       if($def == 'yes')
                                                return false;
-                                       break; 
+                                       else
+                                               return $def; // block or ignore
                                case 'yes':
                                        return false;
-                                       break;
                                case 'no':
-                                       break;
+                                       return true;
                                default :
                                        ACTIONLOG :: add(INFO, "Trackback: Unknown Option (itemid:$itemid, value:$val)");
                                        return false;
                        }
-                       return $this->getBlogOption($blogid, 'isAcceptW/OLinkDef');
                }
+               
+               var $acceptTrackbacks = array();
+               function isAcceptTrackBack($itemid = null){
+                       if( $itemid && isset($acceptTrackbacks[$itemid]) )
+                               return $acceptTrackbacks[$itemid] === true;
+                       
+                       $ret = false;
+                       if( $this->getOption('AcceptPing') == 'yes' ){
+                               $bid = null;
+                               if($itemid){
+                                       $bid = getBlogIDFromItemID(intval($itemid));
+                               } else {
+                                       global $blog;
+                                       $bid = $blog->getID();
+                               }
+                               
+                               if( $this->getBlogOption($bid, "AllowTrackBack") == 'yes' ){
+                                       if( ! $itemid ){
+                                               $ret = ( $this->getItemOption(intval($itemid), 'ItemAcceptPing') == 'yes' ) ? true : false ;
+                                       } else {
+                                               $ret = true;
+                                       }
+                               } else {
+                                       $ret = false;
+                               }
+                       }
+                       if($itemid)
+                               $acceptTrackbacks[$itemid] = $ret;
+                       return $ret === true;
+               }
+               
 //mod by cles end
 
        /**************************************************************************************
index b0cd3ee..33d01e9 100644 (file)
 </pre>
        ¤È½ñ¤¤¤Æ¤ª¤±¤Ð¡¢¸ÄÊ̤Ë<strong>&lt;%TrackBack(url)%&gt;</strong>¤ò¥¹¥­¥ó¤Ë½ñ¤­¹þ¤Þ¤Ê¤¯¤Æ¤â<strong>&lt;%TrackBack(list)%&gt;</strong>¤ò½ñ¤¤¤¿¾ì½ê¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£</blockquote>
 </p>
+
+
+<p>
+       <h4>&lt;%if(TrackBack,<em>key</em>,<em>value</em>)%&gt; (v3.3¤è¤ê)</h4>
+</p>
+<p>
+       if³ÈÄ¥(&lt;%if()%&gt;)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£<br />
+       ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤ë¾ì¹ç¤ä¡¢¥Ð¥Ã¥¯¥ê¥ó¥¯¥Á¥§¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤ËÆÃÄê¤Îɽ¼¨¤ò¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£<br />
+       <br />
+       
+       <ul>
+               <li><em>key</em>(¥Á¥§¥Ã¥¯¤Î¼ïÎà¤ò»ØÄꤷ¤Þ¤¹)</li>
+               <li>¡¡<b>accept</b>¡¡¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤ë¤«¤É¤¦¤«¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë</li>
+               <li>¡¡<b>required</b>¡¡¥Ð¥Ã¥¯¥ê¥ó¥¯¥Á¥§¥Ã¥¯¤¬Í­¸ú¤«¤É¤¦¤«</li>
+       </ul>
+       <ul>
+               <li><em>value</em>(ȽÄê·ë²Ì¤ò»ØÄꤷ¤Þ¤¹)</li>
+               <li>¡¡<b>yes</b>¡¡¥Á¥§¥Ã¥¯¤ÎÆâÍƤ¬¿¿¤Î¾ì¹ç¡¢¿¿¤Ç¤¢¤ë¤ÈȽÃǤ·¤Þ¤¹¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë</li>
+               <li>¡¡<b>no</b>¡¡¥Á¥§¥Ã¥¯¤ÎÆâÍƤ¬¿¿¤Î¾ì¹ç¡¢µ¶¤Ç¤¢¤ë¤ÈȽÃǤ·¤Þ¤¹</li>
+       </ul>
+       
+       <br />
+       Îã1¡Ë&lt;%if(TrackBack)%&gt;¤³¤ÎÉôʬ¤Ï¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤ë»þ¤Î¤ßɽ¼¨¤µ¤ì¤Þ¤¹&lt;%endif%&gt;<br />
+       Îã2¡Ë&lt;%if(TrackBack,accept,no)%&gt;¤³¤ÎÉôʬ¤Ï¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤Ê¤¤»þ¤Î¤ßɽ¼¨¤µ¤ì¤Þ¤¹&lt;%endif%&gt;<br />
+</p>
        
 <h3>¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Îµ­½ÒÎã</h3>
 
index 3dea852..6ec2ebc 100644 (file)
 </pre>
        と書いておけば、個別に<strong>&lt;%TrackBack(url)%&gt;</strong>をスキンに書き込まなくても<strong>&lt;%TrackBack(list)%&gt;</strong>を書いた場所に表示されます。</blockquote>
 </p>
+
+
+<p>
+       <h4>&lt;%if(TrackBack,<em>key</em>,<em>value</em>)%&gt; (v3.3より)</h4>
+</p>
+<p>
+       if拡張(&lt;%if()%&gt;)に対応しています。<br />
+       トラックバックを受け付けている場合や、バックリンクチェックが有効になっている場合のみに特定の表示をさせることができるようになります。<br />
+       <br />
+       
+       <ul>
+               <li><em>key</em>(チェックの種類を指定します)</li>
+               <li> <b>accept</b> トラックバックを受け付けているかどうか(デフォルト)</li>
+               <li> <b>required</b> バックリンクチェックが有効かどうか</li>
+       </ul>
+       <ul>
+               <li><em>value</em>(判定結果を指定します)</li>
+               <li> <b>yes</b> チェックの内容が真の場合、真であると判断します(デフォルト)</li>
+               <li> <b>no</b> チェックの内容が真の場合、偽であると判断します</li>
+       </ul>
+       
+       <br />
+       例1)&lt;%if(TrackBack)%&gt;この部分はトラックバックを受け付けている時のみ表示されます&lt;%endif%&gt;<br />
+       例2)&lt;%if(TrackBack,accept,no)%&gt;この部分はトラックバックを受け付けていない時のみ表示されます&lt;%endif%&gt;<br />
+</p>
        
 <h3>テンプレート内の記述例</h3>