Beispiel #1
0
 function &Weblog_Commonping($siteName, $siteURL)
 {
     // Create XML
     $siteName = encoding_set($siteName, "UTF-8");
     $params = array(new XML_RPC_Value($siteName, "string"), new XML_RPC_Value($siteURL, "string"));
     $this->Ping_XML = new XML_RPC_Message("weblogUpdates.ping", $params);
 }
Beispiel #2
0
        }
    }
}
$weblog =& Weblog::getInstance();
$entry =& $weblog->handler->get($tb_id);
@header('Content-Type: text/xml');
// Trackback ping check
if (!$tb_operator->isPing()) {
    $link = sprintf('%s/modules/%s/details.php?blog_id=%d', XOOPS_URL, $xoopsModule->dirname(), $tb_id);
    // rss mode
    if (isset($_GET['__mode']) && $_GET['__mode'] == "rss") {
        $trackback_array =& $tb_operator->handler->get($tb_id);
        $trackback_data_array = return_trackback_data($trackback_array);
        $lang = _LANGCODE;
        $xml = $tb_operator->toRSSXML($trackback_data_array, $entry->getVar('title', 'n'), $link, $entry->getVar('contents', 'n'), $lang);
        $xml = encoding_set($xml, "UTF-8");
        exit($xml);
    } else {
        header("Location:" . $link);
        exit;
    }
}
// check trackback ID
if (!preg_match("/^\\d+\$/", $tb_id)) {
    exit($tb_operator->getPingXML(false, "Invalid trackback ID"));
}
// save trackback
$tb_id = intval($tb_id);
$data = $tb_operator->analyzePing($_POST);
$data['description'] = $data['excerpt'];
$data['blog_id'] = $tb_id;
 function Set_Trackback_Values(&$trackback, $tb_rss_data, $trackback_url, $direction, $entry = null)
 {
     // init $tb_rss_data
     $tb_rss_key = array("blog_id", "blog_name", "title", "description", "link");
     foreach ($tb_rss_key as $key) {
         if (!isset($tb_rss_data[$key])) {
             $tb_rss_data[$key] = "";
         }
     }
     // blog_id
     if ($direction == "transmit") {
         if (empty($entry) || !$trackback_url || !$direction) {
             return false;
         }
         $blog_id = $entry->getVar('blog_id');
     } elseif ($direction == "recieved") {
         $blog_id = $tb_rss_data['blog_id'];
     } else {
         return false;
     }
     // check blog_id
     if (!preg_match("/^\\d+\$/", $blog_id)) {
         return false;
     }
     $trackback->setVar('blog_id', $blog_id);
     $trackback->setVar('tb_url', $trackback_url);
     $trackback->setVar('blog_name', encoding_set($tb_rss_data['blog_name'], _CHARSET, $tb_rss_data['encoding']));
     $trackback->setVar('title', encoding_set($tb_rss_data['title'], _CHARSET, $tb_rss_data['encoding']));
     $trackback->setVar('description', encoding_set($tb_rss_data['description'], _CHARSET, $tb_rss_data['encoding']));
     $trackback->setVar('link', $tb_rss_data['link']);
     $trackback->setVar('direction', $direction);
     return true;
 }
 /**
  * [[機能説明]]
  *
  * @access  public
  */
 function execute()
 {
     require_once "Net/TrackBack.php";
     // check trackback ID
     if (!preg_match("/^\\d+\$/", $this->post_id)) {
         exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
     }
     $params = array("post_id" => $this->post_id);
     $post = $this->db->selectExecute("journal_post", $params);
     if ($post === false || !isset($post[0])) {
         exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
     }
     if (!$this->journalAction->checkSite($this->url)) {
         $params = array("page_id" => $post[0]["room_id"]);
         $pages = $this->db->selectExecute("pages", $params);
         if ($pages === false || !isset($pages[0])) {
             exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
         }
         $space_type = $pages[0]["space_type"];
         $private_flag = $pages[0]["private_flag"];
         $default_entry_flag = $pages[0]["default_entry_flag"];
         if ($space_type != _SPACE_TYPE_PUBLIC && !($private_flag == _ON && $default_entry_flag == _ON)) {
             exit(Net_TrackBack::getPingXML(false, "Invalid authority"));
         }
     }
     $params = array("journal_id" => $post[0]['journal_id']);
     $journal = $this->db->selectExecute("journal", $params);
     if ($journal === false || !isset($journal[0])) {
         exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
     }
     $trackback['journal_id'] = $post[0]['journal_id'];
     if (!Net_TrackBack::isPing()) {
         //ブロックID取得処理
         $params = array("journal_id" => $post[0]['journal_id']);
         $block = $this->db->selectExecute("journal_block", $params);
         if ($block === false || !isset($block[0])) {
             exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
         }
         $this->request->setParameter("post_id", $this->post_id);
         $this->request->setParameter("block_id", $block[0]['block_id']);
         $link = BASE_URL . INDEX_FILE_NAME . "?action=" . DEFAULT_ACTION . "&active_action=journal_view_main_detail" . "&post_id=" . $this->post_id . "&block_id=" . $block[0]['block_id'] . "#_" . $block[0]['block_id'];
         // rss mode
         if (isset($_GET['__mode']) && $_GET['__mode'] == "rss") {
             if ($post[0]['direction_flag'] === JOURNAL_TRACKBACK_RECEIVE) {
                 $trackback_data_array[] = array("title" => $post[0]['title'], "url" => $post[0]['link'], "excerpt" => $post[0]['content']);
                 $xml = Net_TrackBack::toRSSXML($trackback_data_array, $post[0]['title'], $link, $post[0]['content'], "ja");
                 $xml = encoding_set($xml, "UTF-8");
                 exit($xml);
             }
         } else {
             header("Location: {$link}");
         }
     } else {
         $trackback_receive_flag = $journal[0]['trackback_receive_flag'];
         if ($trackback_receive_flag != _ON) {
             //受信禁止の場合
             exit(Net_TrackBack::getPingXML(false, "Invalid trackback ID"));
         }
         // save trackback
         $post_id = intval($this->post_id);
         $data['blog_name'] = $this->blog_name;
         $data['title'] = $this->title;
         $data['description'] = $this->excerpt;
         $data['post_id'] = $post_id;
         $data['link'] = false;
         // surpress PHP warnig
         $trackback = array();
         if (!empty($this->user_id)) {
             $trackback['user_id'] = $this->user_id;
         }
         if ($this->journalAction->setTrackbackValues($trackback, $data, $this->url, JOURNAL_TRACKBACK_RECEIVE)) {
             if ($this->journalAction->saveTrackback($trackback)) {
                 exit(Net_TrackBack::getPingXML(true));
             }
         }
     }
 }
Beispiel #5
0
//$tpl->assign('channel_webmaster', $xoopsConfig['adminmail']);
//$tpl->assign('channel_editor', $xoopsConfig['adminmail']);
$tpl->assign('channel_category', encoding_set(htmlspecialchars(_BL_BLOG, ENT_QUOTES), 'UTF-8'));
$tpl->assign('channel_generator', encoding_set(htmlspecialchars($xoopsModule->name(), ENT_QUOTES), 'UTF-8'));
$tpl->assign('channel_language', _LANGCODE);
$tpl->assign('image_url', $xoopsModuleConfig['imgurl']);
$dimention = ini_get('allow_url_fopen') ? getimagesize($xoopsModuleConfig['imgurl']) : "";
if (empty($dimention[0])) {
    $width = 88;
} else {
    $width = $dimention[0] > 144 ? 144 : $dimention[0];
}
if (empty($dimention[1])) {
    $height = 31;
} else {
    $height = $dimention[1] > 400 ? 400 : $dimention[1];
}
$tpl->assign('image_width', $width);
$tpl->assign('image_height', $height);
$results = $weblog->getEntries(0, $user_id, 0, $max);
foreach ($results as $entryObject) {
    $item['title'] = $myts->makeTboxData4Show(encoding_set($entryObject->getVar('title', 'e'), 'UTF-8'));
    $item['link'] = sprintf('%s/modules/%s/details.php?blog_id=%d', XOOPS_URL, $xoopsModule->dirname(), $entryObject->getVar('blog_id'));
    $item['guid'] = sprintf('%s/modules/%s/details.php?blog_id=%d', XOOPS_URL, $xoopsModule->dirname(), $entryObject->getVar('blog_id'));
    $item['pubdate'] = date($format_timestamp, $entryObject->getVar('created')) . " " . $timezone;
    $description = $entryObject->getVar('contents', 's', $entryObject->getVar('blog_id'), "rss");
    $item['description'] = encoding_set(htmlspecialchars(strip_tags($description), ENT_QUOTES), 'UTF-8');
    $tpl->append('items', $item);
}
header('Content-type: application/xml; charset=utf-8');
$tpl->display('db:weblog_rss.html');
Beispiel #6
0
    $link = XOOPS_URL . '/';
}
// add weblogs itme
$results = $weblog->getEntries(0, $user_id, 0, $max);
$sign = $xoopsConfig['default_TZ'] >= 0 ? "+" : "-";
foreach ($results as $entryObject) {
    $item = array();
    $data_excerpt = "";
    $dc_creator = $entryObject->getVar('uname');
    $item['title'] = encoding_set($entryObject->getVar('title', 'e'), "UTF-8");
    $item['link'] = sprintf('%s/modules/%s/details.php?blog_id=%d', XOOPS_URL, $xoopsModule->dirname(), $entryObject->getVar('blog_id'));
    $item['dc:date'] = date("Y-m-d", $entryObject->getVar('created')) . "T" . date("H:i:s", $entryObject->getVar('created')) . $sign . sprintf("%02d:00", abs($xoopsConfig['default_TZ']));
    $item['dc:creator'] = $entryObject->getVar('uname');
    $description = preg_replace("|<br\\s*\\/>|i", "\n", $entryObject->getVar('contents', 's', $entryObject->getVar('blog_id'), "rss"));
    $item['description'] = encoding_set(xoops_substr(htmlspecialchars(strip_tags($description), ENT_QUOTES), 0, WEBLOG_TB_EXCERPT_NUM), 'UTF-8');
    $item["_attributes"] = array("rdf:about" => $item["link"]);
    $item_data[] = $item;
}
$options = array("mode" => "simplexml", "indent" => "    ", "linebreak" => "\n", "typeHints" => false, "addDecl" => true, "encoding" => "utf-8", "rootName" => "rdf:RDF", "rootAttributes" => array("xmlns" => "http://purl.org/rss/1.0/", "xmlns:rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "xmlns:dc" => "http://purl.org/dc/elements/1.1/", "xmlns:sy" => "http://purl.org/rss/1.0/modules/syndication/", "xmlns:admin" => "http://webns.net/mvcb/", "xmlns:content" => "http://purl.org/rss/1.0/modules/content/"), "defaultTagName" => "item", "attributesArray" => "_attributes");
$data["channel"] = array("title" => encoding_set($xoopsModule->getVar("name"), "UTF-8"), "link" => XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/", "description" => encoding_set($xoopsConfig["sitename"], "UTF-8"), "dc:language" => _LANGCODE, "dc:creator" => encoding_set($dc_creator, "UTF-8"), "_attributes" => array("rdf:about" => XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/"));
for ($item_num = 0; $item_num < count($item_data); $item_num++) {
    $data["channel"]["items"]["rdf:Seq"]["rdf:li"][$item_num]["_attributes"]["rdf:resource"] = $item_data[$item_num]["link"];
    $data[] = $item_data[$item_num];
}
$Serializer =& new XML_Serializer($options);
$status = $Serializer->serialize($data);
if (PEAR::isError($status)) {
    die($status->getMessage());
}
header('Content-type: application/xml; charset=utf-8');
echo $Serializer->getSerializedData();