Exemplo n.º 1
0
 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);
 }