⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 criteria.inc.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
    var $sSortField = null;    var $bContains = true;    var $sNamespace = 'ktcore.criteria.generalmetadata';    var $sSearchTable = "DFL" ; 	var $bHandleNot = false;    function GeneralMetadataCriterion()    {    	$this->sDisplay = _kt('General Metadata');    }    function documentDisplay ($oDocument) {        return 'General Metadata';    }    function getSearchField () {        return $this->aLookup['field'];    }    function searchSQL ($aRequest) {        $val = array('('.$this->getSearchTable() . "." .  $this->getSearchField() . " LIKE '%!%' OR DM.name LIKE '%!%'  )",        array(DBUtil::escapeSimple($aRequest[$this->getWidgetBase()]),DBUtil::escapeSimple($aRequest[$this->getWidgetBase()])));        return $val;    }    function searchJoinSQL () {        global $default;        return "LEFT JOIN $default->document_fields_link_table AS $this->sSearchTable ON $this->sSearchTable.metadata_version_id = D.metadata_version_id";    }}class DateModifiedCriterion extends DateCreatedCriterion {    var $sDocumentField = 'modified';    var $sSortField = 'modified';    var $sNamespace = 'ktcore.criteria.datemodified';    function DateModifiedCriterion() {	$this->sDisplay = _kt('Date Modified');    }    function getName() {	return 'datemodified';    }    function documentDisplay ($oDocument) {        return $oDocument->getLastModifiedDate();    }}class SizeCriterion extends BrowseCriterion {    var $sSearchTable = "DC";    var $sDocumentField = 'size';    var $sSortField = 'size';    var $sNamespace = 'ktcore.criteria.size';    var $aTypes = array('B'=>'Bytes',			'KB'=>'Kilobytes',			'M'=>'Megabytes');    var $aTypeAssocs = array('B' => 1, 'KB' => 1024, 'M' => 1048576);    var $aCmps = array();    var $aCmpAssocs = array();    function SizeCriterion() {		$this->sDisplay = _kt('File Size');		$this->aCmps = array('LT'=>_kt('Less than'),		       'GT'=>_kt('Greater than'),		       'EQ'=>_kt('Equal to'),		       'NEQ'=>_kt('Not equal to'));		$this->aCmpAssocs = array('LT' => '<', 'GT' => '>', 'EQ' => '=', 'NEQ' => '!=');    }    function documentDisplay ($oDocument) {        return $oDocument->getFileSize();    }    function searchDisplay($aRequest) {        return "";    }    function parameterDisplay($aData) {	$sBase = $this->getWidgetBase();	return sprintf("%s %s %s %s", $this->baseParameterDisplay(), $this->aCmps[$aData[$sBase.'_not']], htmlentities($aData[$sBase.'_num'],ENT_QUOTES,'UTF-8'), $this->aTypes[$aData[$sBase.'_type']]);    }    function searchWidget ($aRequest, $aPreValue = null) {	$sBase = $this->getWidgetBase();	$sCmpWidget = $sBase . '_not';        $sNumWidget = $sBase . '_num';        $sTypeWidget = $sBase . '_type';	// build gt/lt/eq/neq widget	$sCmpSelect = '<select name="'.$sCmpWidget.'">';	$sCmpSelect .= KTUtil::buildSelectOptions($this->aCmps, KTUtil::arrayGet($aPreValue, $sCmpWidget, 'LT'));	$sCmpSelect .= '</select>';	// build number	$sNumInput = sprintf('<input type="text" name="%s" value="%s"/>', $sNumWidget, KTUtil::arrayGet($aPreValue, $sNumWidget, ''));	// build type selection widget	$sTypeSelect = '<select name="'.$sTypeWidget.'">';	$sTypeSelect .= KTUtil::buildSelectOptions($this->aTypes, KTUtil::arrayGet($aPreValue, $sTypeWidget, 'M'));	$sTypeWidget .= '</select>';	$sToRender = sprintf("%s %s %s", $sCmpSelect, $sNumInput, $sTypeSelect);        return $sToRender;    }    function searchSQL ($aRequest) {	$sCmp = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not');	$sNum = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_num');	$sType = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_type');	if(!is_numeric($sNum)) {	    return null;	}	$sQry = sprintf("%s.%s %s ?", $this->getSearchTable(), $this->getSearchField(), $this->aCmpAssocs[$sCmp]);	$val = array($sQry, (int)$sNum * $this->aTypeAssocs[$sType]);        return $val;    }}class WorkflowStateCriterion extends BrowseCriterion {    var $sSearchTable = "DM";    var $sDocumentField = 'state';    var $sSortField = 'state';    var $sNamespace = 'ktcore.criteria.workflowstate';    function WorkflowStateCriterion() {	$this->sDisplay = _kt('Workflow State');    }    function documentDisplay ($oDocument) {        $oState =& KTWorkflowState::getByDocument($oDocument);        if ($oState) {            $oWorkflow = KTWorkflow::get($oState->getWorkflowId());            return $oWorkflow->getName() . " - " . $oState->getName();        }        return "Not in workflow";    }    function parameterDisplay($aData) {	$sId = $aData[$this->getWidgetBase()];	if($sId == '-1') {	    $sState = _kt('none');	} else {	    $oState =& KTWorkflowState::get((int)$sId);	    if(!PEAR::isError($oState)) {		$sState = $oState->getName();	    } else {		$sState = _kt('unknown state');	    }	}	return $this->baseParameterDisplay() . $sState;    }    function getName() {        return "state";    }    function searchSQL ($aRequest) {        $p = array();        $p[0] = "DM.workflow_state_id = ?";        $p[1] = $aRequest[$this->getWidgetBase()];        // handle the boolean "not" stuff.        $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not');        if (is_null($want_invert) || ($want_invert == "0")) {            return $p;        } else {            $p[0] = '(NOT (' . $p[0] . '))';        }        return $p;    }    function searchWidget ($aRequest, $aPreValue = null) {        $preval = null;        if ($aPreValue != null) {            // !#@&)*( (*&!@# *(&@NOT (*&!@#            $k = array_keys($aPreValue);            $k = $this->getWidgetBase();            $preval = $aPreValue[$k];        }        $sRet = $this->getNotWidget($aPreValue);        $sRet .= "<select size=\"1\" name=\"" . $this->getWidgetBase() . "\">\n";        $aStates = KTWorkflowState::getList();        $sRet .= "<option value=\"-1\">None</option>\n";        foreach ($aStates as $oState) {            $oWorkflow =& KTWorkflow::get($oState->getWorkflowId());            $sSelStr = '';            if ($preval == $oState->getId()) { $sSelStr = ' selected="true"'; }            $sRet .= "<option value=\"" . $oState->getId() . "\"" . $sSelStr . ">" . $oWorkflow->getName() . " - " . $oState->getName() . "</option>\n";        }        $sRet .= "</select>\n";        return $sRet;    }}class TagCloudCriterion extends BrowseCriterion {    var $bString = false;	var $bContains = false;    var $bHandleNot = false;    var $sDocumentField = 'tag';// this is linked to the field    var $sSortField = 'tag';    var $sNamespace = 'ktcore.criteria.tagcloud';    var $sSearchTable = "TWS" ;    function TagCloudCriterion() {	$this->sDisplay = _kt('Tag Cloud');    }    function documentDisplay ($oDocument) {        return "Tag Cloud";    }    function getName() {        return "tagcloud";    }    function searchSQL ($aRequest) {         $p = parent::searchSQL($aRequest, false); // handle not ourselves.        // handle the boolean "not" stuff.        $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not');        if (is_null($want_invert) || ($want_invert == "0")) {            return $p;        } else {            $p[0] = '(NOT (' . $p[0] . '))';        }        return $p;    }    function searchJoinSQL () {        global $default;        return "INNER JOIN document_tags AS DTS ON DTS.document_id = D.id        		INNER JOIN tag_words AS TWS ON TWS.id = DTS.tag_id";    }}class DateCreatedDeltaCriterion extends DateCreatedCriterion {    var $sDocumentField = 'created';    var $sSortField = 'created';	var $aTypes = array();    var $sNamespace = 'ktcore.criteria.datecreateddelta';    function DateCreatedDeltaCriterion() {		$this->sDisplay = _kt('Date Created Delta');		$this->aTypes = array('MINUTE'=>_kt('Minutes'),			'HOUR'=>_kt('Hours'),			'DAY'=>_kt('Days'),			'MONTH'=>_kt('Months'),			'YEAR'=>_kt('Years')			);    }    function parameterDisplay($aData) {	$sNum = KTUtil::arrayGet($aData, $this->getWidgetBase() . '_num');	$sType = KTUtil::arrayGet($aData, $this->getWidgetBase() . '_type');	return sprintf('%s %s %s', $this->baseParameterDisplay(), $sNum, $this->aTypes[$sType]);    }    function searchWidget ($aRequest, $aPreValue = null) {        $sNumWidget = $this->getWidgetBase() . '_num';        $sTypeWidget = $this->getWidgetBase() . '_type';	// build type selection widget	$sSelect = '<select name="'.$sTypeWidget.'">';	foreach($this->aTypes as $k=>$v) {	    $sSelect .= '<option value="'.$k.'"';	    $t = KTUtil::arrayGet($aPreValue, $sTypeWidget, 'DAY');	    if($k==$t) $sSelect .= ' selected="selected"';	    $sSelect .= '>'.$v.'</option>';	}	$sSelect .= '</select>';        $sToRender = $this->getNotWidget($aPreValue);	$sToRender .= '<input name="'.$sNumWidget.'" value="'.$aPreValue[$sNumWidget].'"/>'.$sSelect._kt(' ago');        return $sToRender;    }    function searchSQL ($aRequest) {	$sNum = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_num');	$sType = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_type');	$val = array($this->getSearchTable() . "." . $this->getSearchField() . " > SUBDATE(NOW(), INTERVAL ? {$sType})", array($sNum));        $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not');        if (is_null($want_invert) || ($want_invert == "0")) {            return $val;        } else {            $val[0] = '(NOT (' . $val[0] . '))';        }        return $val;    }}class DateModifiedDeltaCriterion extends DateCreatedDeltaCriterion {    var $sDocumentField = 'modified';    var $sSortField = 'modified';    var $sNamespace = 'ktcore.criteria.datemodifieddelta';    function DateModifiedDeltaCriterion() {	$this->sDisplay = _kt('Date Modified Delta');    }    function documentDisplay ($oDocument) {        return $oDocument->getLastModifiedDate();    }    function getName() {        return "datemodified";    }}?>

⌨️ 快捷键说明

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