Changeset 6271
- Timestamp:
- 12/14/2017 07:01:47 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/theme-directory/lib/class-trac.php
r4530 r6271 1 1 <?php 2 /** 3 * Class to interact with Trac's RPC API. 4 * 5 * @package WordPressdotorg\Theme_Directory 6 */ 7 8 /** 9 * Class Trac 10 */ 2 11 class Trac { 3 var $rpc;4 const attributes = 3;5 12 6 function __construct( $username, $password, $host, $path = '/', $port = 80, $ssl = FALSE ) { 7 // Assume URL to $host, ignore $path, $port, $ssl 13 /** 14 * Attributes key in RPC response array. 15 */ 16 const ATTRIBUTES = 3; 17 18 /** 19 * Holds a reference to \WP_HTTP_IXR_Client. 20 * 21 * @var \WP_HTTP_IXR_Client 22 */ 23 protected $rpc; 24 25 /** 26 * Trac constructor. 27 * 28 * @param string $username Trac username. 29 * @param string $password Trac password. 30 * @param string $host Server to use. 31 * @param string $path Path. 32 * @param int $port Which port to use. Default: 80. 33 * @param bool $ssl Whether to use SSL. Default: false. 34 */ 35 public function __construct( $username, $password, $host, $path = '/', $port = 80, $ssl = false ) { 36 // Assume URL to $host, ignore $path, $port, $ssl. 8 37 $this->rpc = new WP_HTTP_IXR_Client( $host ); 9 38 10 $http_basic_auth = 'Basic ';39 $http_basic_auth = 'Basic '; 11 40 $http_basic_auth .= base64_encode( $username . ':' . $password ); 12 41 … … 14 43 } 15 44 16 function ticket_create( $subj, $desc, $attr = array() ) { 17 if ( empty( $attr ) ) 45 /** 46 * Creates a new Trac ticket. 47 * 48 * @param string $subj Ticket subject line. 49 * @param string $desc Ticket description. 50 * @param array $attr Ticket attributes. Default: Empty array. 51 * @return bool|mixed 52 */ 53 public function ticket_create( $subj, $desc, $attr = array() ) { 54 if ( empty( $attr ) ) { 18 55 $attr = new IXR_Value( array(), 'struct' ); 19 $ok = $this->rpc->query( 'ticket.create', $subj, $desc, $attr );20 if ( !$ok ) {21 // print_r( $this->rpc );22 return FALSE;23 56 } 24 57 25 return $this->rpc->getResponse(); 26 } 27 28 function ticket_update( $id, $comment, $attr = array(), $notify = false ) { 29 if ( empty( $attr['_ts'] ) ) { 30 $get = $this->ticket_get( $id ); 31 $attr['_ts'] = $get['_ts']; 32 } 33 if ( empty( $attr['action'] ) ) 34 $attr['action'] = 'leave'; 35 36 $ok = $this->rpc->query( 'ticket.update', $id, $comment, $attr, $notify ); 37 if ( ! $ok ) 58 $ok = $this->rpc->query( 'ticket.create', $subj, $desc, $attr ); 59 if ( ! $ok ) { 60 // phpcs:ignore Squiz.PHP.CommentedOutCode.Found, Squiz.Commenting.InlineComment.InvalidEndChar 61 // print_r( $this->rpc ); 38 62 return false; 39 40 return $this->rpc->getResponse();41 }42 43 function ticket_query( $search ) {44 $ok = $this->rpc->query( 'ticket.query', $search );45 if ( !$ok ) {46 return FALSE;47 63 } 48 64 … … 51 67 52 68 /** 69 * Updates a Trac ticket. 70 * 71 * @param int $id Ticket number. 72 * @param string $comment Comment. 73 * @param array $attr Ticket attributes. Default: Empty array. 74 * @param bool $notify Whether to notify. Default: false. 75 * @return bool|mixed 76 */ 77 public function ticket_update( $id, $comment, $attr = array(), $notify = false ) { 78 if ( empty( $attr['_ts'] ) ) { 79 $get = $this->ticket_get( $id ); 80 $attr['_ts'] = $get['_ts']; 81 } 82 if ( empty( $attr['action'] ) ) { 83 $attr['action'] = 'leave'; 84 } 85 86 $ok = $this->rpc->query( 'ticket.update', $id, $comment, $attr, $notify ); 87 if ( ! $ok ) { 88 return false; 89 } 90 91 return $this->rpc->getResponse(); 92 } 93 94 /** 95 * Queries Trac tickets. 96 * 97 * @param string $search Trac search query. 98 * @return bool|mixed 99 */ 100 public function ticket_query( $search ) { 101 $ok = $this->rpc->query( 'ticket.query', $search ); 102 if ( ! $ok ) { 103 return false; 104 } 105 106 return $this->rpc->getResponse(); 107 } 108 109 /** 110 * Gets a specific Trac ticket. 111 * 112 * @param int $id Trac ticket id. 53 113 * @return [id, time_created, time_changed, attributes] or false on failure. 54 114 */ 55 function ticket_get( $id ) {115 public function ticket_get( $id ) { 56 116 $ok = $this->rpc->query( 'ticket.get', $id ); 57 if ( ! $ok ) {58 return FALSE;117 if ( ! $ok ) { 118 return false; 59 119 } 60 120 61 $response = $this->rpc->getResponse();121 $response = $this->rpc->getResponse(); 62 122 $response['id'] = $response[0]; 63 foreach ( $response[ self:: attributes] as $key => $value ) {123 foreach ( $response[ self::ATTRIBUTES ] as $key => $value ) { 64 124 $response[ $key ] = $value; 65 125 } 126 66 127 return $response; 67 128 } 68 129 } 69
Note: See TracChangeset
for help on using the changeset viewer.