Commit e1c93671d6406e28dc540b448c4bc1d07316dc56

Authored by conradverm
1 parent d88024d9

KTS-2524

"Create document indexer shutdown script"
Implemented. Also did a few other small fixes...

Committed By: Conrad Vermeulen
Reviewed By: Kevin Fourie

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7426 c91229c3-7414-0410-bfa2-8a42b809f60b
search2/indexing/indexerCore.inc.php
... ... @@ -32,13 +32,13 @@ class QueryResultItem
32 32 protected $status;
33 33 protected $folderId;
34 34  
35   -
36 35 public function __construct($document_id, $rank=null, $title=null, $text=null)
37 36 {
38   - $this->document_id=$document_id;
  37 + $this->document_id=(int) $document_id;
39 38 $this->rank= $rank;
40 39 $this->title=$title;
41 40 $this->text = $text;
  41 + $this->live = true;
42 42 $this->loadDocumentInfo();
43 43 }
44 44  
... ... @@ -57,14 +57,13 @@ class QueryResultItem
57 57 return true; // should not be reached
58 58 }
59 59  
60   - private function loadDocumentInfo()
  60 + public function loadDocumentInfo()
61 61 {
62 62 $sql = "SELECT
63   - f.folder_id, f.full_path, f.name, dcv.size as filesize, dcv.major_version,
  63 + d.folder_id, f.full_path, f.name, dcv.size as filesize, dcv.major_version,
64 64 dcv.minor_version, dcv.filename, cou.name as checkoutuser, w.human_name as workflow, ws.human_name as workflowstate,
65 65 mt.mimetypes as mimetype, md.mime_doc as mimedoc, d.checkedout, mbu.name as modifiedbyuser, d.modified,
66 66 cbu.name as createdbyuser, ou.name as owneruser, d.immutable, d.status_id, d.created
67   -
68 67 FROM
69 68 documents d
70 69 INNER JOIN document_metadata_version dmv ON d.metadata_version_id = dmv.id
... ... @@ -78,7 +77,6 @@ class QueryResultItem
78 77 LEFT JOIN users mbu ON d.modified_user_id=mbu.id
79 78 LEFT JOIN users cbu ON d.creator_id=cbu.id
80 79 LEFT JOIN users ou ON d.owner_id=ou.id
81   -
82 80 WHERE
83 81 d.id=$this->document_id";
84 82  
... ... @@ -87,10 +85,9 @@ class QueryResultItem
87 85 if (PEAR::isError($result) || empty($result))
88 86 {
89 87 $this->live = false;
90   - return;
  88 + throw new Exception('QueryResultItem::loadDocumentInfo failed');
91 89 }
92 90  
93   - $this->live = true;
94 91 if (is_null($result['name']))
95 92 {
96 93 $this->fullpath = '(orphaned)';
... ... @@ -137,7 +134,7 @@ class QueryResultItem
137 134 case 'Title': return (string) $this->title;
138 135 case 'FullPath': return (string) $this->fullpath;
139 136 case 'IsLive': return (bool) $this->live;
140   - case 'Filesize': return (int) $this->filesize;
  137 + case 'Filesize': return $this->filesize;
141 138 case 'Version': return (string) $this->version;
142 139 case 'Filename': return (int)$this->filename;
143 140 case 'FolderId': return (int)$this->folderId;
... ... @@ -180,7 +177,13 @@ class QueryResultItem
180 177 case 'Status':
181 178 return $this->status;
182 179 case 'CanBeReadByUser':
183   - return (bool) $this->live && (Permission::userHasDocumentReadPermission($this->Document) || Permission::adminIsInAdminMode());
  180 + if (!$this->live)
  181 + return false;
  182 + if (Permission::userHasDocumentReadPermission($this->Document))
  183 + return true;
  184 + if (Permission::adminIsInAdminMode())
  185 + return true;
  186 + return false;
184 187 default:
185 188 throw new Exception("Unknown property '$property' to get on MatchResult");
186 189 }
... ... @@ -1170,6 +1173,15 @@ abstract class Indexer
1170 1173 }
1171 1174  
1172 1175 /**
  1176 + * Shuts down the indexer
  1177 + *
  1178 + */
  1179 + public function shutdown()
  1180 + {
  1181 + // do nothing generally
  1182 + }
  1183 +
  1184 + /**
1173 1185 * Returns the name of the indexer.
1174 1186 *
1175 1187 * @return string
... ...