/** * Generates the full index at once. */ function generateIndex() { // delete old index $delete = new rex_sql(); $delete->setTable($this->tablePrefix . '587_searchindex'); $delete->delete(); $delete2 = new rex_sql(); $delete2->setTable($this->tablePrefix . '587_searchcacheindex_ids'); $delete2->delete(); $delete3 = new rex_sql(); $delete3->setTable($this->tablePrefix . '587_searchcache'); $delete3->delete(); // index articles $art_sql = new rex_sql(); $art_sql->setTable($this->tablePrefix . 'article'); if ($art_sql->select('id,clang')) { foreach ($art_sql->getArray() as $art) { $this->indexArticle($art['id'], $art['clang']); } } // index columns foreach ($this->includeColumns as $table => $columnArray) { foreach ($columnArray as $column) { $this->indexColumn($table, $column); } } // index mediapool if ($this->indexMediapool) { $mediaSQL = new rex_sql(); $mediaSQL->setTable($this->tablePrefix . 'file'); if ($mediaSQL->select('file_id, category_id, filename')) { foreach ($mediaSQL->getArray() as $file) { $this->indexFile(str_replace('\\', '/', substr($this->mediaFolder, strlen($this->documentRoot))) . '/' . $file['filename'], false, false, $file['file_id'], $file['category_id']); } } } // index files foreach ($this->includeDirectories as $dir) { foreach (a587_getFiles($dir, $this->fileExtensions) as $filename) { $this->indexFile($filename); } } }
$filenameArray = explode('.', $file['filename']); $fileext = $filenameArray[count($filenameArray) - 1]; // check file-extension if (!in_array($fileext, $REX['ADDON']['settings']['rexsearch']['fileextensions'])) { continue; } } #$js_output .= 'index("mediapool",new Array("'.urlencode($file['filename']).'","'.urlencode($file['file_id']).'","'.urlencode($file['category_id']).'"));'; $js_output .= 'indexArray.push(new Array("mediapool",new Array("' . urlencode($file['filename']) . '","' . urlencode($file['file_id']) . '","' . urlencode($file['category_id']) . '")));'; $globalcount++; } } } if (!empty($REX['ADDON']['settings']['rexsearch']['indexfolders']) and is_array($REX['ADDON']['settings']['rexsearch']['indexfolders'])) { foreach ($REX['ADDON']['settings']['rexsearch']['indexfolders'] as $dir) { foreach (a587_getFiles($dir, isset($REX['ADDON']['settings']['rexsearch']['fileextensions']) ? $REX['ADDON']['settings']['rexsearch']['fileextensions'] : array(), true) as $filename) { if (!empty($REX['ADDON']['settings']['rexsearch']['fileextensions'])) { // extract file-extension $filenameArray = explode('.', $filename); $fileext = $filenameArray[count($filenameArray) - 1]; // check file-extension if (!in_array($fileext, $REX['ADDON']['settings']['rexsearch']['fileextensions'])) { continue; } } #$js_output .= 'index("file","'.($filename).'");'; $js_output .= 'indexArray.push(new Array("file","' . $filename . '"));'; $globalcount++; } } }