First practise on XMLRPC

  1. /**
  2.  * Bực mình vì cái module dvmisc cà chớn, trên server chạy thì đúng, ở localhost
  3.  * thì không đúng!!! Dầu là đã copy source từ server về, xóa cache, ... chả ăn thua (trên IE)
  4.  * Lục đà lục đục chạy qua hết máy này đến máy kia, vì cái Ubuntu hiện thời không có IE để test..
  5.  *
  6.  * Giải quyết cái dzụ IE trên Ubuntu, mò tới Wine, cài, tải dzìa file cài tới > 33 MB, chờ
  7.  * Trong khi chờ, tìm hiểu cái gì đó mới cái coi! À, thử bộ xmlrpc tích hợp sắn trong Drupal!
  8.  * Dưới đây là first practise...
  9.  *
  10.  * Folder cài Drupal: http://localhost/drupal/5/test/ aka http://192.168.1.9
  11.  * - Module name: test
  12.  * - Trang ?q=test để hiển thị thông tin test
  13.  */
  14.  
  15. /**
  16.  * Implementation of hook_menu
  17.  */
  18. function test_menu ($may_cache) {
  19. return array (
  20. 'path' => 'test',
  21. 'access' => true,
  22. 'title' => 'Test page',
  23. 'callback' => 'test_main'
  24. )
  25. );
  26. }
  27.  
  28. /**
  29.  * Trang test, gọi 2 (service) function cùng module này đã reg với Drupal
  30.  */
  31. function test_main () {
  32. // gọi service thứ nhất
  33. $result = xmlrpc ('http://192.168.1.9/drupal/5/test/xmlrpc.php', 'test.test_1', 'My text string...');
  34. print_r ($result);
  35.  
  36. // gọi service thứ hai
  37. $result = xmlrpc ('http://192.168.1.9/drupal/5/test/xmlrpc.php', 'test.test_2', 'My text string 2...');
  38. print_r ($result);
  39. }
  40.  
  41.  
  42. /**
  43.  * Implementation of hook_xmlprc
  44.  *
  45.  * Sử dụng hook này để reg các service với Drupal
  46.  * Tham khảo trang http://toila.net/api để biết cách sử dụng hàm này hỉ?
  47.  */
  48. function test_xmlrpc () {
  49. return array (
  50. 'test.test_1' => 'test_test1',
  51. 'test.test_2',
  52. 'test_test2',
  53. array ('string', 'string')
  54. ),
  55. 'Description for test1'
  56. );
  57. }
  58.  
  59. /**
  60.  * Handler cho 1st service
  61.  */
  62. function test_test1 ($text) {
  63. // log lại system
  64. watchdog ('test', 'test_test1', WATCHDOG_NOTICE);
  65. return $text;
  66. }
  67.  
  68. /**
  69.  * Handler cho 2nd service
  70.  */
  71. function test_test2 ($string) {
  72. // log lại system
  73. watchdog ('test', 'test_test2', WATCHDOG_NOTICE);
  74. return $string;
  75. }