ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/work/ebihara/prj_module_trac/webapp_ext/modules/trac/util.php @ 7787

Last change on this file since 7787 was 7787, checked in by ebihara, 13 years ago

PC版と同等の見た目になるよう変更

File size: 1.9 KB
Line 
1<?php
2/**
3 * @copyright 2008 Kousuke Ebihara
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7require_once 'XML/RPC.php';
8
9function communicate_with_trac($method, $username = '', $password = '', $params = array(), &$error = '')
10{
11    $message =& new XML_RPC_Message($method, $params);
12
13    $client =& new XML_RPC_client(TRAC_PATH, TRAC_HOST);
14    $client->setCredentials($username, $password);
15    $response = $client->send($message);
16    if (!$response) {
17        return false;
18    }
19
20    if ($response->faultCode()) {
21        return false;
22    }
23
24    $decode_val = XML_RPC_decode($response->value());
25    return $decode_val;
26}
27
28function trac_ticket_list($username, $password, $qstr, $page, $page_size)
29{
30    $host = 'trac.openpne.jp';
31    $path = '/login/xmlrpc';
32
33    $replacement = array('::', ':', ',');
34    $search = array('!=', '=', '&');
35    $qstr = str_replace($replacement, $search, $qstr);
36
37    $params = array(
38        new XML_RPC_Value($qstr, 'string'),
39    );
40
41    $list = communicate_with_trac('ticket.query', $username, $password, $params);
42    $total = count($list);
43
44    if (!$total) {
45        return array(false, false, false);
46    }
47
48    $start = ($page_size - 1) * $page;
49    $end = $start + $page_size;
50
51    $result = array();
52    for ($i = $start; $i < $end; $i++) {
53        if (($total - 1) == $i) {
54            break;
55        }
56
57        $result[] = trac_ticket_get($username, $password, $list[$i]);
58    }
59
60    $is_prev = false;
61    $is_next = false;
62    if ($total) {
63        $is_prev = (bool)($page > 1);
64        $is_next = (bool)($page < ceil($total / $page_size));
65    }
66
67    return array($result, $is_prev, $is_next);
68}
69
70function trac_ticket_get($username, $password, $id)
71{
72    $host = 'trac.openpne.jp';
73    $path = '/login/xmlrpc';
74
75    $params = array(
76        new XML_RPC_Value($id, 'int'),
77    );
78    return communicate_with_trac('ticket.get', $username, $password, $params);
79}
80
81?>
Note: See TracBrowser for help on using the repository browser.