All pastes #407008 Raw Edit

RSD

public php v1 · immutable
#407008 ·published 2007-03-22 21:08 UTC
rendered paste body
	public function act_rsd()	{		/**			* List of APIs supported by the RSD			* Refer to namespace for required elements/attributes.		 * TODO: Put this in options to allow add/edit/remove/enable/disable apis.			*/		$apis_list= array(			'Blogger' => array(				'preferred' => 'true',				'apiLink' => URL::get( 'collection', 'index=1' ), // This should be the XML-RPC url				'blogID' => '',			),		);						$dom= new SimpleXMLElement('<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"></rsd>');				$rsd_service= $dom->rsd->addChild( 'service' );		$service_engineName= $dom->addChild( 'engineName', 'Habari' );		$service_engineLink= $dom->addChild( 'engineLink', 'http://www.habariproject.org/' );		$service_homePageLink= $dom->addChild( 'homePageLink', Site::get_url('habari') );		$service_apis= $dom->addChild( 'apis' );				if ( !isset( $apis_list ) || ( count( $apis_list ) < 1 ) )		{			return false;		}				foreach ( $apis_list as $apiName => $atts )		{			if ( !isset( $atts['preferred'], $atts['apiLink'], $atts['blogID'] ) )			{				continue;			}						$apis_api= $dom->addChild( 'api' );			$apis_api->addAttribute( 'name', $apiName );			$apis_api->addAttribute( 'preferred', $atts['preferred'] );			$apis_api->addAttribute( 'apiLink', $atts['apiLink'] );			$apis_api->addAttribute( 'blogID', $atts['blogID'] );									if ( !isset( $atts['settings'] ) || ( count( $atts['settings'] ) < 1 ) )			{				continue;			}									$api_settings= $dom->addChild( 'settings' );			foreach ( $atts['settings'] as $settingName => $settingValue )			{				switch ( $settingName )				{					case 'docs':					case 'notes':						$settings_setting= $dom->addChild( $settingName, $settingValue );						break;					case 'setting':						foreach ( $settingValue as $settingArray )						{							$settings_setting= $dom->addChild( 'setting', $settingArray['value'] );							$settings_setting->addAttribute( 'name', $settingArray['name'] );						}						break;				}									}		} 		$dom= $dom->asXML();				ob_clean();		header('Content-Type: application/rsd+xml');		print $dom;	}