router.php
上传用户:stephen_wu
上传日期:2008-07-05
资源大小:1757k
文件大小:4k
源码类别:

网络

开发平台:

Unix_Linux

  1. <?php
  2. /**
  3. * Joomla/Mambo Community Builder
  4. * @version $Id: comprofiler.php 609 2008-08-08 21:30:15Z beat $
  5. * @package Community Builder
  6. * @subpackage router.php
  7. * @author Beat
  8. * @copyright (C) Beat, www.joomlapolis.com
  9. * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
  10. */
  11. if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
  12. function comprofilerBuildRoute( &$query ) {
  13. $segments = array();
  14. if ( isset( $query['task'] ) ) {
  15. //  if ( empty( $query['Itemid'] ) ) {
  16. $task = strtolower( $query['task'] );
  17. $segments[] = $task;
  18. switch ( $task ) {
  19. case 'userprofile':
  20. if ( isset( $query['user'] ) && $query['user'] ) {
  21. if ( is_numeric( $query['user'] ) ) {
  22. $sql = 'SELECT username FROM #__users WHERE id = '. (int) $query['user'];
  23. $database =& JFactory::getDBO();
  24. $database->setQuery( $sql, 0, 1 );
  25. $username = $database->loadResult();
  26. if ( $username ) {
  27. $query['user'] = $username;
  28. }
  29. }
  30. $segments[] = $query['user'];
  31. unset( $query['user'] );
  32. }
  33. break;
  34. case 'userslist':
  35. $listid = false;
  36. if ( isset( $query['listid'] ) && $query['listid'] ) {
  37. if ( is_numeric( $query['listid'] ) ) {
  38. $sql = 'SELECT title FROM #__comprofiler_lists WHERE listid = '. (int) $query['listid'] . ' AND published = 1';
  39. $database =& JFactory::getDBO();
  40. $database->setQuery( $sql, 0, 2 );
  41. $listNames = $database->loadResultArray();
  42. if ( is_array( $listNames ) && ( count( $listNames ) == 1 ) ) {
  43. $query['listid'] = $listNames[0];
  44. }
  45. }
  46. $segments[] = $query['listid'];
  47. unset( $query['listid'] );
  48. $listid = true;
  49. }
  50. if ( isset( $query['searchmode'] ) && $query['searchmode'] ) {
  51. if ( ! $listid ) {
  52. $segments[] = '0';
  53. }
  54. $segments[] = 'search';
  55. unset( $query['searchmode'] );
  56. }
  57. break;
  58. default:
  59. break;
  60. }
  61. unset($query['task']);
  62. //  }
  63. }
  64. return $segments;
  65. }
  66. function comprofilerParseRoute( $segments ) {
  67. $vars = array();
  68. //Get the active menu item
  69. $menu =& JSite::getMenu();
  70. $item =& $menu->getActive();
  71. // if ( ! isset( $item ) ) {
  72. $count = count( $segments );
  73. if ( $count > 0 ) {
  74. $vars['task'] = strtolower( $segments[0] );
  75. switch ( $vars['task'] ) {
  76. case 'userprofile':
  77. if ( $count > 1 ) {
  78. $user = $segments[1];
  79. if ( ! is_numeric( $user ) ) {
  80. $database =& JFactory::getDBO();
  81. $sql = 'SELECT id FROM #__users WHERE username = '. $database->Quote( $user );
  82. $database->setQuery( $sql, 0, 2 );
  83. $userIds = $database->loadResultArray();
  84. if ( is_array( $userIds ) && ( count( $userIds ) == 1 ) ) {
  85. $user = $userIds[0];
  86. }
  87. }
  88. $vars['user'] = $user;
  89. }
  90. break;
  91. case 'userslist':
  92. if ( $count > 1 ) {
  93. $listid = $segments[1];
  94. if ( ! is_numeric( $listid ) ) {
  95. $database =& JFactory::getDBO();
  96. $sql = 'SELECT listid FROM #__comprofiler_lists WHERE title = '. $database->Quote( $listid ) . ' AND published = 1';
  97. $database->setQuery( $sql, 0, 2 );
  98. $listIds = $database->loadResultArray();
  99. if ( is_array( $listIds ) && ( count( $listIds ) == 1 ) ) {
  100. $listid = $listIds[0];
  101. }
  102. }
  103. $vars['listid'] = (int) $listid;
  104. if ( $count > 2 ) {
  105. if ( $segments[2] == 'search' ) {
  106. $vars['searchmode'] = 1;
  107. }
  108. }
  109. }
  110. break;
  111. default:
  112. break;
  113. }
  114. }
  115. return $vars;
  116. }
  117. ?>