public static function BuildSearchIndex($site, $page, $language, $isDefaultLanguage, $content, $root = '../') { $html = str_get_html($content, true, true, DEFAULT_TARGET_CHARSET, false, DEFAULT_BR_TEXT); $url = $page['FriendlyId']; $isSecure = 0; $image = $page['Image']; if ($page['PageTypeId'] != -1) { $pageType = PageType::GetByPageTypeId($page['PageTypeId']); $url = $pageType['FriendlyId'] . '/' . $page['FriendlyId']; if ($pageType['IsSecure'] == 1) { $isSecure = 1; } } if ($isDefaultLanguage == false) { // set language to the domain for the site $domain = $root . 'sites/' . $site['FriendlyId'] . '/locale'; // set the language Utilities::SetLanguage($language, $domain); } $name = $page['Name']; $text = ''; $h1s = ''; $h2s = ''; $h3s = ''; $description = $page['Description']; if ($isDefaultLanguage == false) { $name = _($name); // get translated version $description = _($description); } if ($html == null) { return ''; } // setup gettext blockquote, h1, h2, h3, p, td, th, li, meta tags for multi-lingual support foreach ($html->find('blockquote') as $el) { if ($isDefaultLanguage == false) { $text .= _($el->innertext) . ' '; // get translated version } else { $text .= $el->innertext . ' '; } } foreach ($html->find('h1') as $el) { if ($isDefaultLanguage == false) { $h1s .= _($el->innertext) . ' '; // get translated version } else { $h1s .= $el->innertext . ' '; } } foreach ($html->find('h2') as $el) { if ($isDefaultLanguage == false) { $h2s .= _($el->innertext) . ' '; // get translated version } else { $h2s .= $el->innertext . ' '; } } foreach ($html->find('h3') as $el) { if ($isDefaultLanguage == false) { $h3s .= _($el->innertext) . ' '; // get translated version } else { $h3s .= $el->innertext . ' '; } } foreach ($html->find('p') as $el) { if ($isDefaultLanguage == false) { $text .= _($el->innertext) . ' '; // get translated version } else { $text .= $el->innertext . ' '; } } foreach ($html->find('td') as $el) { if ($isDefaultLanguage == false) { $text .= _($el->innertext) . ' '; // get translated version } else { $text .= $el->innertext . ' '; } } foreach ($html->find('th') as $el) { if ($isDefaultLanguage == false) { $text .= _($el->innertext) . ' '; // get translated version } else { $text .= $el->innertext . ' '; } } foreach ($html->find('li') as $el) { if ($isDefaultLanguage == false) { $text .= _($el->innertext) . ' '; // get translated version } else { $text .= $el->innertext . ' '; } } foreach ($html->find('meta[name=description]') as $el) { if ($isDefaultLanguage == false) { $description = _($el->innertext); // get translated version } else { $description = $el->innertext; } } // strip any html $h1s = strip_tags($h1s); $h2s = strip_tags($h2s); $h3s = strip_tags($h3s); $description = strip_tags($description); $text = strip_tags($text); // add to search index SearchIndex::Add($page['PageUniqId'], $site['SiteUniqId'], $language, $url, $name, $image, $isSecure, $h1s, $h2s, $h3s, $description, $text); }