ktrss.inc.php.tmp

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· TMP 代码 · 共 749 行 · 第 1/2 页

TMP
749
字号
	    	$xmlItemHead = "<item>\n	    	      <title>".htmlspecialchars($aItem[0][0][name], ENT_QUOTES, 'UTF-8')."</title>\n	    	      <link>".$hostPath."action.php?kt_path_info=ktcore.actions.".htmlspecialchars($sTypeSelect, ENT_QUOTES, 'UTF-8')."=".$aItem[0][0]['id']."</link>\n	    	      <description>\n";	    	$htmlItem = "<table border='0' width='90%'>\n	    	      <tr>\n	    	          <td width='5%' height='16px'>	    	              <a href='".$hostPath."action.php?kt_path_info=ktcore.actions.".$sTypeSelect."=".$aItem[0][0][id]."' >	    	              <img src='".$aItem[0][mimeTypeIcon]."' align='left' height='16px' width='16px' alt='' border='0' /></a>	    	          </td>\n	    	          <td align='left'> ".$aItem[0][mimeTypeFName]."</td>\n	    	      </tr>\n	    	      <tr>\n    	    	      <td colspan='2'>\n        	    	      ".ucfirst($aItem[0]['itemType'])." Information (ID: ".$aItem[0][0][id].")</>\n        	    	      <hr>\n        	    	      <table width='95%'>\n        	    	          <tr>\n        	    	              <td>"._kt('Filename').": ".htmlspecialchars($aItem[0][0][filename], ENT_QUOTES, 'UTF-8')."</td>\n        	    	          </tr>\n        	    	          <tr>\n        	    	              <td>"._kt('Author').": ".htmlspecialchars($aItem[0][0][author], ENT_QUOTES, 'UTF-8')."</td>\n        	    	          </tr>\n        	    	          <tr>\n            	    	          <td>"._kt('Owner').": ".htmlspecialchars($owner, ENT_QUOTES, 'UTF-8')."</td>\n            	    	          <td></td>\n        	    	          </tr>\n        	    	          ".$type."\n        	    	          <tr>\n        	    	              <td>"._kt('Workflow status').": ".htmlspecialchars($workflow, ENT_QUOTES, 'UTF-8')."</td>\n        	    	              <td></td>\n        	    	          </tr>\n        	    	      </table><br>\n        	    	      "._kt('Transaction Summary (Last 4)')."\n        	    	      <hr>\n	    	                  <table width='100%'>\n";                        	    	foreach($aItem[1] as $item){                        	    	    $htmlItem .= "<tr>\n                            	    	        <td>".$item[type]." name:</td>\n                            	    	        <td>".htmlspecialchars($item[name], ENT_QUOTES, 'UTF-8')."</td>\n                        	    	        </tr>\n                        	    	        <tr>\n                        	    	            <td>Path:</td>\n                        	    	            <td>".htmlspecialchars($item[fullpath], ENT_QUOTES, 'UTF-8')."</td>\n                        	    	        </tr>\n                        	    	        <tr>\n                        	    	            <td>Transaction:</td>\n                        	    	            <td>".htmlspecialchars($item[transaction_name], ENT_QUOTES, 'UTF-8')."</td>\n                        	    	        </tr>\n                        	    	        <tr>\n                        	    	            <td>Comment:</td>\n                        	    	            <td>".htmlspecialchars($item[comment], ENT_QUOTES, 'UTF-8')."</td>\n											</tr>\n											<tr>\n";                        	    	            if($item[version]){                        	    	                $htmlItem .= "<td>Version:</td>\n                        	    	                <td>".$item[version]."</td>\n";                        	    	            }                        	    	        $htmlItem .= "</tr>\n                        	    	        <tr>\n                        	    	            <td>Date:</td>\n                        	    	            <td>".$item[datetime]."</td>\n                        	    	        </tr>\n                        	    	        <tr>\n                        	    	            <td>User:</td>\n                        	    	            <td>".htmlspecialchars($item[user_name], ENT_QUOTES, 'UTF-8')."</td>\n                        	    	        </tr>\n                        	    	        <tr>\n                        	    	            <td colspan='2'><hr width='100' align='left'></td>\n                        	    	        </tr>\n";                        	    	}                        	   $htmlItem .= "</table>\n                      </td>\n                  </tr>\n              </table>";          $xmlItemFooter = "</description>\n</item>\n";          // Use htmlspecialchars to allow html tags in the xml.          $htmlItem = htmlspecialchars($htmlItem, ENT_QUOTES, 'UTF-8');          $feed .= $xmlItemHead.$htmlItem.$xmlItemFooter;	    }	    $footer = "</channel>\n</rss>\n";	    return $head.$feed.$footer;    }    // Takes in an array as a parameter and returns rss2.0 compatible xml    function errorToXML($sError){    	// Build path to host    	$aPath = explode('/', trim($_SERVER['PHP_SELF']));    	global $default;    	$hostPath = "http" . ($default->sslEnabled ? "s" : "") . "://".$_SERVER['HTTP_HOST']."/".$aPath[1]."/";    	$feed = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n    	    <rss version=\"2.0\">\n    			<channel>\n	    			<title>".APP_NAME." RSS</title>\n	    			<copyright>(c) 2008 KnowledgeTree Inc.</copyright>\n	    			<link>{$hostPath}</link>\n	    			<description>KT-RSS</description>\n	    			<image>\n					      <title>".APP_NAME." RSS</title>\n					      <width>140</width>\n					      <height>28</height>					      <link>{$hostPath}knowledgeTree/</link>\n					      <url>{$hostPath}resources/graphics/ktlogo_rss.png</url>\n					  </image>\n            <item>\n    	          <title>Feed load error</title>\n    	          <description>".$sError."</description>\n    			 </item>\n	      </channel>\n	    	</rss>\n";	   return $feed;    }    // Delete feed function    function deleteFeed($iFeedId){    	$res = DBUtil::autoDelete('plugin_rss', $iFeedId);    }    // Get title for external feed    function getExternalFeedTitle($iFeedId){    	$sQuery = "SELECT title FROM plugin_rss WHERE id = ?";        $aParams = array($iFeedId);        $sFeedTitle = DBUtil::getOneResultKey(array($sQuery, $aParams), 'title');        if (PEAR::isError($sFeedTitle)) {            // XXX: log error            return false;        }        if ($sFeedTitle) {            return $sFeedTitle;        }    }    // Get url for external feed    function getExternalFeedUrl($iFeedId){    	$sQuery = "SELECT url FROM plugin_rss WHERE id = ?";        $aParams = array($iFeedId);        $sFeedUrl = DBUtil::getOneResultKey(array($sQuery, $aParams), 'url');        if (PEAR::isError($sFeedUrl)) {            // XXX: log error            return false;        }        if ($sFeedUrl) {            return $sFeedUrl;        }    }    // Update external feed data    function updateFeed($iFeedId, $sFeedTitle, $sFeedUrl){    	$sQuery = "UPDATE plugin_rss SET title=?, url=? WHERE id=?";        $aParams = array($sFeedTitle, $sFeedUrl, $iFeedId);        $res = DBUtil::runQuery(array($sQuery, $aParams));        return $res;    }    // Create new external feed    function createFeed($sFeedTitle, $sFeedUrl, $iUserId){        $aParams = array(        'user_id' => $iUserId,        'url' => $sFeedUrl,        'title' => $sFeedTitle,        );        $res = DBUtil::autoInsert('plugin_rss', $aParams);        return $res;    }    // Function to validate that a user has permissions for a specific document    function validateDocumentPermissions($iUserId, $iDocumentId){		// check if user id is in session. If not, set it		if(!isset($_SESSION["userID"])){			$_SESSION['userID'] = $iUserId;		}		// get document object		$oDocument =& Document::get($iDocumentId);		if (PEAR::isError($oDocument)) {            return false;        }		// check permissions for document		if(Permission::userHasDocumentReadPermission($oDocument)){		    return true;		}else{			return false;		}	}	// Function to validate that a user has permissions for a specific folder	function validateFolderPermissions($iUserId, $iFolderId){		// check if user id is in session. If not, set it		if(!isset($_SESSION["userID"])){			$_SESSION['userID'] = $iUserId;		}		// get folder object		$oFolder = Folder::get($iFolderId);		if (PEAR::isError($oFolder)) {            return false;        }		// check permissions for folder		if(Permission::userHasFolderReadPermission($oFolder)){		    return true;		}else{			return false;		}	}	// get icon link for rss	function getRssLinkIcon(){    	// built server path        global $default;    	$sHostPath = "http" . ($default->sslEnabled ? "s" : "") . "://".$_SERVER['HTTP_HOST']."/".$GLOBALS['KTRootUrl']."/";        // create image        $icon = "<img src='".$sHostPath."resources/graphics/rss.gif' alt='RSS' border=0/>";        return $icon;    }    // get rss link for a document/folder    function getRssLink($iItemId, $sItemType){        $item = strToLower($sItemType);        if($item == 'folder'){        	$sItemParameter = '?folderId';        }else if($item == 'document'){        	$sItemParameter = '?docId';        }        // built server path        global $default;        $sHostPath = "http" . ($default->sslEnabled ? "s" : "") . "://" . $_SERVER['HTTP_HOST'];        // build link    	$sLink = $sHostPath.KTBrowseUtil::buildBaseUrl('rss').$sItemParameter.'='.$iItemId;    	return $sLink;    }    // get rss icon link    function getImageLink($iItemId, $sItemType){    	return "<a href='".KTrss::getRssLink($iItemId, $sItemType)."' target='_blank'>".KTrss::getRssLinkIcon()."</a>";    }    // get the mime type id for a document    function getDocumentMimeTypeId($iUserId, $iDocumentId){		if(!isset($_SESSION["userID"])){			$_SESSION['userID'] = $iUserId;		}		// get document object		$oDocument =& Document::get($iDocumentId);		$docMime = $oDocument->getMimeTypeID();		return $docMime;	}	// get mime information for a document    function getMimeTypeInfo($iUserId, $iDocumentId){        global $default;    	$mimeinfo['typeId'] = KTrss::getDocumentMimeTypeId($iUserId, $iDocumentId); // mime type id		$mimeinfo['typeName'] = KTMime::getMimeTypeName($mimeinfo['typeId']); // mime type name		$mimeinfo['typeFName'] = KTMime::getFriendlyNameForString($mimeinfo['typeName']); // mime type friendly name		$mimeinfo['typeIcon'] = "http" . ($default->sslEnabled ? "s" : "") . "://".$_SERVER['HTTP_HOST']."/".$GLOBALS['KTRootUrl']."/resources/mimetypes/".KTMime::getIconPath($mimeinfo['typeId']).".png"; //icon path		return $mimeinfo;    }    // get the default folder icon    function getFolderIcon(){    	global $default;    	return $mimeinfo['typeIcon'] = "http" . ($default->sslEnabled ? "s" : "") . "://".$_SERVER['HTTP_HOST']."/".$GLOBALS['KTRootUrl']."/thirdparty/icon-theme/16x16/mimetypes/x-directory-normal.png"; //icon path    }    // get a document information    function getDocumentData($iUserId, $iDocumentId){    	if(!isset($_SESSION["userID"])){			$_SESSION['userID'] = $iUserId;		}		// get document object		$oDocument =& Document::get($iDocumentId);		$cv = $oDocument->getContentVersionId();		$mv = $oDocument->getMetadataVersionId();		$sQuery = "SELECT dcv.document_id AS id, dmver.name AS name, dcv.filename AS filename, c.name AS author, o.name AS owner, dtl.name AS type, dwfs.name AS workflow_status " .				"FROM documents AS d LEFT JOIN document_content_version AS dcv ON d.id = dcv.document_id " .				"LEFT JOIN users AS o ON d.owner_id = o.id " .				"LEFT JOIN users AS c ON d.creator_id = c.id " .				"LEFT JOIN document_metadata_version AS dmv ON d.id = dmv.document_id " .				"LEFT JOIN document_types_lookup AS dtl ON dmv.document_type_id = dtl.id " .				"LEFT JOIN document_metadata_version AS dmver ON d.id = dmver.document_id " .				"LEFT JOIN workflow_states AS dwfs ON dmver.workflow_state_id = dwfs.id " .				"WHERE d.id = ? " .				"AND dmver.id = ? " .				"AND dcv.id = ? " .				"LIMIT 1";		$aParams = array($iDocumentId, $mv, $cv);        $aDocumentData = DBUtil::getResultArray(array($sQuery, $aParams));        if($aDocumentData){			return $aDocumentData;        }    }    // get a folder information    function getFolderData($iFolderId){		$sQuery = "SELECT f.id AS id, f.name AS name, f.name AS filename, c.name AS author, o.name AS owner, f.description AS description " .				"FROM folders AS f " .				"LEFT JOIN users AS o ON f.owner_id = o.id " .				"LEFT JOIN users AS c ON f.creator_id = c.id " .				"WHERE f.id = ? " .				"LIMIT 1";		$aParams = array($iFolderId);        $aFolderData = DBUtil::getResultArray(array($sQuery, $aParams));        if($aFolderData){			return $aFolderData;        }    }    // get a listing of the latest 3 transactions for a document    function getDocumentTransactions($aDocumentIds){        $sDocumentIds = implode(', ', $aDocumentIds);    	$sQuery = "SELECT DT.datetime AS datetime, 'Document' AS type, DMV.name, D.full_path AS fullpath,    	   DTT.name AS transaction_name, U.name AS user_name, DT.version AS version, DT.comment AS comment    	   FROM document_transactions AS DT    	   INNER JOIN users AS U ON DT.user_id = U.id    	   INNER JOIN document_transaction_types_lookup AS DTT ON DTT.namespace = DT.transaction_namespace    	   LEFT JOIN documents AS D ON DT.document_id = D.id    	   LEFT JOIN document_metadata_version AS DMV ON D.metadata_version_id = DMV.id    	   WHERE DT.document_id IN ($sDocumentIds)    	   ORDER BY DT.datetime DESC    	   LIMIT 4";    	$aDocumentTransactions = DBUtil::getResultArray($sQuery);    	if(!PEAR::isError($aDocumentTransactions)){            return $aDocumentTransactions;    	}    }    // Get a listing of the latest transactions for a folder and its child folders    function getFolderTransactions($aFolderIds){        $sFolderIds = implode(', ', $aFolderIds);    	$sQuery = "SELECT FT.datetime AS datetime, 'Folder' AS type, F.name, F.full_path AS fullpath,    	   DTT.name AS transaction_name, U.name AS user_name, FT.comment AS comment    	   FROM folder_transactions AS FT LEFT JOIN users AS U ON FT.user_id = U.id    	   LEFT JOIN document_transaction_types_lookup AS DTT ON DTT.namespace = FT.transaction_namespace    	   LEFT JOIN folders AS F ON FT.folder_id = F.id    	   WHERE FT.folder_id IN ($sFolderIds)    	   ORDER BY FT.datetime DESC    	   LIMIT 4";    	$aFolderTransactions = DBUtil::getResultArray($sQuery);		return $aFolderTransactions;    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?