[xoops-cvslog 1807] CVS update: xoops2jp/html/modules/base/service

Back to archive index

Minahito minah****@users*****
2006年 1月 17日 (火) 19:29:58 JST


Index: xoops2jp/html/modules/base/service/LegacySearchService.class.php
diff -u /dev/null xoops2jp/html/modules/base/service/LegacySearchService.class.php:1.1.2.1
--- /dev/null	Tue Jan 17 19:29:58 2006
+++ xoops2jp/html/modules/base/service/LegacySearchService.class.php	Tue Jan 17 19:29:58 2006
@@ -0,0 +1,92 @@
+<?php
+
+require_once XOOPS_ROOT_PATH."/class/XCube_Service.class.php";
+
+/**
+ * Sample class
+ */
+class LegacySearchService extends XCube_Service
+{
+	/**
+	 * @param $parameters['uid'] Target user's id
+	 * @param $parameters['current_uid'] Current user's id
+	 * @param $parameters['maxhit'] Max hit count of each modules. The default value is 5.
+	 */
+	function doGetItems(&$parameters)
+	{
+		$ret = array();
+		$uid = $parameters['uid'];
+		
+		$maxhit = isset($parameters['maxhit']) ? intval($parameters['maxhit']) : 5;
+		
+		$userHandler =& xoops_gethandler('user');
+		$currentUser =& $userHandler->get($parameters['current_uid']);
+		
+		$gpermHandler = & xoops_gethandler( 'groupperm' );
+		$groups = is_object($currentUser) ? $currentUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
+
+		//
+		// At first, get active module IDs.
+		//
+		$moduleHandler =& xoops_gethandler('module');
+		$criteria =& new CriteriaCompo(new Criteria('hassearch', 1));
+		$criteria->add(new Criteria('isactive', 1));
+		
+		$mids =& array_keys($moduleHandler->getList($criteria));
+
+		//
+		// Next, fetch from $mids[], and check read permission.
+		// If user can read the module information, execute search.
+		//
+		$i = 0;
+		foreach ($mids as $mid) {
+			if ($gpermHandler->checkRight('module_read', $mid, $groups)) {
+				$module =& $moduleHandler->get($mid);
+				$results =& $module->search('', '', $maxhit, 0, $uid);
+				
+				$ret[$i]['name'] = $module->get('name');
+				
+				if (is_array($results) && count($results) > 0) {
+					foreach ($results as $result) {
+						$item = array();
+						if (isset($result['image']) && strlen($result['image']) > 0) {
+							$item['image'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/' . $result['image'];
+						}
+						else {
+							$item['image'] = XOOPS_URL . '/images/icons/posticon2.gif';
+						}
+						
+						$item['link'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/' . $result['link'];
+						$item['title'] = $result['title'];
+						
+						//
+						// TODO If this service will come to web service, we should
+						// change format from unixtime to string by timeoffset.
+						//
+						$item['time'] = isset($result['time']) ? $result['time'] : 0;
+						
+						$ret[$i]['results'][] = $item;
+					}
+					
+					if (count($results) == 5) {
+						$link = @sprintf("%s/search.php?action=showallbyuser&mid=%d&uid=%d",
+							XOOPS_URL,
+							$module->get('mid'),
+							$uid
+						);
+						
+						$ret[$i]['showall_link'] =	$link;
+					}
+				}
+				else {
+					$ret[$i]['results'] = array();
+					$ret[$i]['showall_link'] = "";
+				}
+			}
+		}
+		
+		return $ret;
+	}
+}
+
+?>
\ No newline at end of file


xoops-cvslog メーリングリストの案内
Back to archive index