📄 criteria.inc.svn-base
字号:
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 + -