📄 criteria.inc.svn-base
字号:
function folderDisplay($oFolder) { return $oFolder->getID(); }}class TitleCriterion extends BrowseCriterion { var $bFolderCriterion = true; var $bString = true; var $sSearchTable = "DM"; var $bContains = true; var $sDocumentField = 'name'; var $sSortField = 'name'; var $sNamespace = 'ktcore.criteria.title'; function TitleCriterion() { $this->sDisplay = _kt('Document Title'); } function documentDisplay ($oDocument) { return $oDocument->getName(); } function folderDisplay($oFolder) { return $oFolder->getDescription(); } function getFolderSortField() { return 'description'; }}class CreatorCriterion extends BrowseCriterion { var $sSearchTable = "D"; var $bFolderCriterion = true; var $aLookup = array( "table" => "users", "field" => "name", ); var $sDocumentField = 'creator_id'; var $sSortField = 'creator_id'; var $sNamespace = 'ktcore.criteria.creator'; function CreatorCriterion() { $this->sDisplay = _kt('Creator'); } function documentDisplay ($oDocument) { $oCreator = User::get($oDocument->getCreatorID()); if ($oCreator) { return $oCreator->getName(); } return " "; } function folderDisplay($oFolder) { return $this->documentDisplay($oFolder); } function parameterDisplay($aData) { $sBase = $this->baseParameterDisplay(); $oUser =& User::get($aData[$this->getWidgetBase()]); if(PEAR::isError($oUser)) { return $sBase . 'unknown user'; } return $sBase . $oUser->getName(); } 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) . "<select size=\"1\" name=\"" . $this->getWidgetBase() . "\">\n"; $aUsers = User::getList();/*ok*/ $sRet .= "<option value=\"-1\">None</option>\n"; foreach ($aUsers as $oUser) { $sSelStr = ''; if ($preval == $oUser->getId()) { $sSelStr = ' selected="true"'; } $sRet .= "<option value=\"" . $oUser->getID() . "\"" . $sSelStr . ">" . $oUser->getName() . "</option>\n"; } $sRet .= "</select>\n"; return $sRet; }}class DateCreatedCriterion extends BrowseCriterion { var $sSearchTable = "D"; var $sDocumentField = 'created'; var $sSortField = 'created'; var $sNamespace = 'ktcore.criteria.datecreated'; function DateCreatedCriterion() { $this->sDisplay = _kt('Date Created'); } function documentDisplay ($oDocument) { return $oDocument->getCreatedDateTime(); } function parameterDisplay($aData) { $sDisp = $this->baseParameterDisplay(); $sStart = KTUtil::arrayGet($aData, $this->getWidgetBase() . '_start', false); $sEnd = KTUtil::arrayGet($aData, $this->getWidgetBase() . '_end', false); if($sStart) { $sDisp .= _kt('after ') .$sStart; } if($sStart && $sEnd) { $sDisp .= _kt(' and '); } if($sEnd) { $sDisp .= _kt('before ') .$sEnd; } return $sDisp; } function getName() { return "created"; } function searchWidget ($aRequest, $aPreValue = null) { global $default; // IMPORTANT: this requires the presence of kt3-calendar.js $sStartWidget = $this->getWidgetBase() . "_start"; $sEndWidget = $this->getWidgetBase() . "_end"; /* // legacy code. $sToRender = "After date: <input type=\"text\" size=\"10\" name=\"" . $sStartWidget . "\" />"; $sToRender .= " <a href=\"javascript:show_calendar('MainForm." . $sStartWidget . "',null,null,'YYYY-MM-DD', false);\" onmouseover=\"window.status='Date Picker';return true;\" onmouseout=\"window.status='';return true;\"><img src=\"$default->graphicsUrl/calendar/calendar.gif\" name=\"imgCalendar\" width=\"34\" height=\"21\" border=\"0\" alt=\"\"></a>"; $sToRender .= " Before date: <input type=\"text\" size=\"10\" name=\"" . $sEndWidget . "\" />"; $sToRender .= " <a href=\"javascript:show_calendar('MainForm." . $sEndWidget . "',null,null,'YYYY-MM-DD', false);\" onmouseover=\"window.status='Date Picker';return true;\" onmouseout=\"window.status='';return true;\"><img src=\"$default->graphicsUrl/calendar/calendar.gif\" name=\"imgCalendar\" width=\"34\" height=\"21\" border=\"0\" alt=\"\"></a>"; */ $sToRender = $this->getNotWidget($aPreValue); $sToRender .= _kt('after') . ': <span class="kt_calendar_holder"><strong class="kt_calendar_datetext">' . $aPreValue[$sStartWidget] . '</strong><input type="hidden" name="' . $sStartWidget . '" class="kt_calendar_value" value="' . $aPreValue[$sStartWidget] . '"/> <input type="button" onclick="init_kt_calendar(this);" value="select"></span> and/or '; $sToRender .= _kt('before') . ': <span class="kt_calendar_holder"><strong class="kt_calendar_datetext">' . $aPreValue[$sEndWidget] . '</strong><input type="hidden" name="' . $sEndWidget . '" class="kt_calendar_value" value="' . $aPreValue[$sEndWidget] . '"/> <input type="button" onclick="init_kt_calendar(this);" value="select"></span><br />'; return $sToRender; } function searchSQL ($aRequest) { $sStartWidget = $this->getWidgetBase() . "_start"; $sEndWidget = $this->getWidgetBase() . "_end"; // XXX: DateTimeFixup: Should be more intelligent with handling // end date - should be end of day on that day. if (!array_key_exists($this->getWidgetBase() . "_start", $aRequest)) { $sStart = null; } else { $sStart = $aRequest[$this->getWidgetBase() . "_start"]; } if (!array_key_exists($this->getWidgetBase() . "_end", $aRequest)) { $sEnd = null; } else { $sEnd = $aRequest[$this->getWidgetBase() . "_end"]; } $val = null; if ($sStart && $sEnd) { $val = array($this->getSearchTable() . "." . $this->getSearchField() . " BETWEEN ? AND ?", array($sStart, $sEnd)); } else if ($sStart) { $val = array($this->getSearchTable() . "." . $this->getSearchField() . " > ?", array($sStart)); } else if ($sEnd) { $val = array($this->getSearchTable() . "." . $this->getSearchField() . " < ?", array($sEnd)); } else { return null; } // handle the boolean "not" stuff. $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); if (is_null($want_invert) || ($want_invert == "0")) { return $val; } else { $val[0] = '(NOT (' . $val[0] . '))'; } // finally return $val; }}class DocumentTypeCriterion extends BrowseCriterion { var $sSearchTable = "DM"; var $aLookup = array( "table" => "document_types_lookup", "field" => "name" ); var $sDocumentField = 'document_type_id'; var $sSortField = 'document_type_id'; var $sNamespace = 'ktcore.criteria.documenttype'; function DocumentTypeCriterion() { $this->sDisplay = _kt('Document Type'); } function documentDisplay ($oDocument) { $oDocumentType = DocumentType::get($oDocument->getDocumentTypeID()); if ($oDocumentType) { return $oDocumentType->getName(); } return " "; } 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"; $aUsers = DocumentType::getList();/*ok*/ $sRet .= "<option value=\"-1\">None</option>\n"; foreach ($aUsers as $oUser) { $sSelStr = ''; if ($preval == $oUser->getId()) { $sSelStr = ' selected="true"'; } $sRet .= "<option value=\"" . $oUser->getID() . "\"" . $sSelStr . ">" . $oUser->getName() . "</option>\n"; } $sRet .= "</select>\n"; return $sRet; }}class GenericMetadataCriterion extends BrowseCriterion { var $aLookup = array( "table" => "document_fields_link", "field" => "value", "joinColumn" => "document_id", ); var $bString = true; var $sDocumentField = null; var $sSortField = null; var $sNamespace = 'ktcore.criteria.generic'; function initialize($sDisplay, $sDocumentField, $sSortField, $iID, $sNamespace) { $this->sDisplay = $sDisplay; $this->sDocumentField = $sDocumentField; $this->sSortField = $sSortField; $this->iID = $iID; $this->aLookup['whereClause'] = 'document_field_id = ' . $iID; $this->oField = DocumentField::get($iID); $this->sNamespace = $sNamespace; $this->sSearchTable = "DFL" . $iID; } function getID() { return $this->iID; } function documentDisplay ($oDocument) { global $default; $sQuery = "SELECT DFL.value as value " . "FROM $default->document_fields_link_table AS DFL " . "WHERE DFL.metadata_version_id = ? " . "AND DFL.document_field_id = ?"; $aParams = array($oDocument->getMetadataVersionId(), $this->getID()); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'value'); if (PEAR::isError($res)) { // WARN: Add log warning return " "; } return $res; } function getName() { global $default; $aQuery = array("SELECT name FROM $default->document_fields_table WHERE id = ?", array($this->getID())); /*ok*/ return "gmd_" . DBUtil::getOneResultKey($aQuery, 'name'); } function getSearchField () { return $this->aLookup['field']; } function searchWidget ($aRequest, $aPreValue = null) { $preval = null; if ($aPreValue != null) { // !#@&)*( (*&!@# *(&@NOT (*&!@# $k = array_keys($aPreValue); $k = $this->getWidgetBase(); $preval = $aPreValue[$k]; } // If there's no lookup, just use the standard text input if ($this->oField->getHasLookup() == false) { $this->bContains = true; // contains return parent::searchWidget($aRequest, $aPreValue); } $this->bContains = false; // is $sRet = $this->getNotWidget($aPreValue); $sRet .= "<select size=\"1\" name=\"" . $this->getWidgetBase() . "\">\n"; $aSearch = array('document_field_id = ?', $this->getID()); $aMetaData = MetaData::getByDocumentField(DocumentField::get($this->getID()));/*ok*/ $sRet .= "<option value=\"-1\">None</option>\n"; foreach ($aMetaData as $oMetaData) { $sSelStr = ''; if ($preval == $oMetaData->getName()) { $sSelStr = ' selected="true"'; } $sRet .= "<option value=\"" . $oMetaData->getName() . "\" " . $sSelStr . ">" . $oMetaData->getName() . "</option>\n"; } $sRet .= "</select>\n"; return $sRet; } function searchSQL ($aRequest) { $p = parent::searchSQL($aRequest, false); // handle not ourselves. $p[0] = join(' AND ', array($p[0], "$this->sSearchTable.document_field_id = ?")); $p[1] = kt_array_merge($p[1], array($this->iID)); // 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 "LEFT JOIN $default->document_fields_link_table AS $this->sSearchTable ON $this->sSearchTable.metadata_version_id = D.metadata_version_id"; }}class GeneralMetadataCriterion extends BrowseCriterion { var $aLookup = array( "table" => "document_fields_link", "field" => "value", "joinColumn" => "document_id", ); var $bString = true; var $sDocumentField = 'value';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -