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
/**************************************************************************************
</pre>
¤È½ñ¤¤¤Æ¤ª¤±¤Ð¡¢¸ÄÊ̤Ë<strong><%TrackBack(url)%></strong>¤ò¥¹¥¥ó¤Ë½ñ¤¹þ¤Þ¤Ê¤¯¤Æ¤â<strong><%TrackBack(list)%></strong>¤ò½ñ¤¤¤¿¾ì½ê¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£</blockquote>
</p>
+
+
+<p>
+ <h4><%if(TrackBack,<em>key</em>,<em>value</em>)%> (v3.3¤è¤ê)</h4>
+</p>
+<p>
+ if³ÈÄ¥(<%if()%>)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£<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¡Ë<%if(TrackBack)%>¤³¤ÎÉôʬ¤Ï¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤ë»þ¤Î¤ßɽ¼¨¤µ¤ì¤Þ¤¹<%endif%><br />
+ Îã2¡Ë<%if(TrackBack,accept,no)%>¤³¤ÎÉôʬ¤Ï¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤ò¼õ¤±ÉÕ¤±¤Æ¤¤¤Ê¤¤»þ¤Î¤ßɽ¼¨¤µ¤ì¤Þ¤¹<%endif%><br />
+</p>
<h3>¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Îµ½ÒÎã</h3>