function do_main() { //Number of items on a page $itemsPerPage = 50; $pageNum = 1; if (isset($_REQUEST['itemsPerPage'])) { $itemsPerPage = $_REQUEST['itemsPerPage']; } //registerTypes registers the mime types and populates the needed tables. $indexer = Indexer::get(); $indexer->registerTypes(); switch ($_REQUEST['rescheduleValue']) { case 'reschedule': foreach (KTUtil::arrayGet($_REQUEST, 'index_error', array()) as $sDocId => $v) { Indexer::reindexDocument($sDocId); } break; case 'remove': foreach (KTUtil::arrayGet($_REQUEST, 'index_error', array()) as $sDocId => $v) { Indexer::unqueueDocument($sDocId, 'Document removed from queue via admin interface. Normally this is because an indexer is not able to process the document.'); } break; case 'rescheduleall': $aIndexerValues = Indexer::getIndexingQueue(); foreach ($aIndexerValues as $sDocValues) { Indexer::reindexDocument($sDocValues['document_id']); } break; case 'removeall': $aIndexerValues = Indexer::getIndexingQueue(); foreach ($aIndexerValues as $sDocValues) { Indexer::unqueueDocument($sDocValues['document_id'], 'Document removed from queue via admin interface. Normally this is because an indexer is not able to process the document.'); } break; } $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/search2/reporting/indexerrors'); $aIndexerValues = Indexer::getIndexingQueue(); foreach ($aIndexerValues as $key => $doc) { $extractor = $indexer->getExtractor($doc['extractor']); if (is_null($extractor)) { $doc['extractor'] = 'n/a'; continue; } $doc['extractor'] = $extractor->getDisplayName(); $aIndexerValues[$key] = $doc; } $aIndexList = array(); //creating page variables and loading the items for the current page if (!empty($aIndexerValues)) { $items = count($aIndexerValues); if (fmod($items, $itemsPerPage) > 0) { $pages = floor($items / $itemsPerPage) + 1; } else { $pages = $items / $itemsPerPage; } for ($i = 1; $i <= $pages; $i++) { $aPages[] = $i; } if ($items < $itemsPerPage) { $limit = $items - 1; } else { $limit = $itemsPerPage - 1; } if (isset($_REQUEST['pageValue'])) { $pageNum = (int) $_REQUEST['pageValue']; if ($pageNum > $pages) { $pageNum = $pages; } $start = ($pageNum - 1) * $itemsPerPage - 1; $limit = $start + $itemsPerPage; for ($i = $start; $i <= $limit; $i++) { if (isset($aIndexerValues[$i])) { $aIndexList[] = $aIndexerValues[$i]; } } } else { for ($i = 0; $i <= $limit; $i++) { $aIndexList[] = $aIndexerValues[$i]; } } } $config = KTConfig::getSingleton(); $rootUrl = $config->get('KnowledgeTree/rootUrl'); $oTemplate->setData(array('context' => $this, 'pageList' => $aPages, 'pageCount' => $pages, 'pageNum' => $pageNum, 'itemCount' => $items, 'itemsPerPage' => $itemsPerPage, 'indexErrors' => $aIndexList, 'root_url' => $rootUrl)); return $oTemplate; }