Wenn eine mehrsprachige Website in Website Baker mit Hilfe der Einstellung “Seitensprache” erstellt wird, funktioniert das unter ”Begrenzen der Suche auf bestimmte Seiten” beschriebene Verfahren nicht. Stattdessen muß nun anhand der gewählten Seitensprache festgelegt werden, welche Seiten in die Suche einbezogen werden sollen.
Bis einschließlich Website Baker 2.7 müssen dazu Änderungen an der Datei search/search.php durchgeführt werden; ab Website Baker 2.8 sind diese Änderungen bereits enthalten.
Sobald die Einstellung “Seitensprache” eingeschaltet wird, wird die Suche automatisch auf die Seiten begrenzt die die aktuelle Seitensprache verwenden, so daß hier keine weitere Maßnahme notwendig ist!
Suchen Sie diesen Block
// Get the search type $match = ''; if(isset($_REQUEST['match'])) { if($_REQUEST['match']=='any') $match = 'any'; elseif($_REQUEST['match']=='all') $match = 'all'; elseif($_REQUEST['match']=='exact') $match = 'exact'; else $match = 'all'; } else { $match = 'all'; }
und ersetzen Sie ihn durch diesen Block
// use page_languages? if(PAGE_LANGUAGES) { $table = TABLE_PREFIX."pages"; $search_language_SQL_t = "AND $table.`language` = '".LANGUAGE."'"; $search_language_SQL = "AND `language` = '".LANGUAGE."'"; } else { $search_language_SQL_t = ''; $search_language_SQL = ''; } // Get the search type $match = ''; if(isset($_REQUEST['match'])) { if($_REQUEST['match']=='any') $match = 'any'; elseif($_REQUEST['match']=='all') $match = 'all'; elseif($_REQUEST['match']=='exact') $match = 'exact'; else $match = 'all'; } else { $match = 'all'; }
Nun suchen Sie diesen Block
// get each section for $module_name $table_s = TABLE_PREFIX."sections"; $table_p = TABLE_PREFIX."pages"; $sections_query = $database->query(" SELECT s.section_id, s.page_id, s.module, s.publ_start, s.publ_end, p.page_title, p.menu_title, p.link, p.description, p.keywords, p.modified_when, p.modified_by, p.visibility, p.viewing_groups, p.viewing_users FROM $table_s AS s INNER JOIN $table_p AS p ON s.page_id = p.page_id WHERE s.module = '$module_name' AND p.visibility NOT IN ('none','deleted') AND p.searching = '1' $search_path_SQL $search_language_SQL ORDER BY s.page_id, s.position ASC ");
und ersetzen Sie ihn durch diesen Block
// get each section for $module_name $table_s = TABLE_PREFIX."sections"; $table_p = TABLE_PREFIX."pages"; $sections_query = $database->query(" SELECT s.section_id, s.page_id, s.module, s.publ_start, s.publ_end, p.page_title, p.menu_title, p.link, p.description, p.keywords, p.modified_when, p.modified_by, p.visibility, p.viewing_groups, p.viewing_users FROM $table_s AS s INNER JOIN $table_p AS p ON s.page_id = p.page_id WHERE s.module = '$module_name' AND p.visibility NOT IN ('none','deleted') AND p.searching = '1' $search_path_SQL ORDER BY s.page_id, s.position ASC ");
Nun suchen Sie noch diesen Block
// Search page details only, such as description, keywords, etc, but only of unseen pages. $max_excerpt_num = 0; // we don't want excerpt here $divider = "."; $table = TABLE_PREFIX."pages"; $query_pages = $database->query(" SELECT page_id, page_title, menu_title, link, description, keywords, modified_when, modified_by, visibility, viewing_groups, viewing_users FROM $table WHERE visibility NOT IN ('none','deleted') AND searching = '1' $search_path_SQL "); if($query_pages->numRows() > 0) {
und ersetzen ihn durch diesen Block
// Search page details only, such as description, keywords, etc, but only of unseen pages. $max_excerpt_num = 0; // we don't want excerpt here $divider = "."; $table = TABLE_PREFIX."pages"; $query_pages = $database->query(" SELECT page_id, page_title, menu_title, link, description, keywords, modified_when, modified_by, visibility, viewing_groups, viewing_users FROM $table WHERE visibility NOT IN ('none','deleted') AND searching = '1' $search_path_SQL $search_language_SQL "); if($query_pages->numRows() > 0) {
Und als letztes suchen Sie diesen Block
// Execute query $page_query = $database->query($prepared_query." ".$search_path_SQL);
und ersetzen ihn durch diesen Block
// Execute query $page_query = $database->query($prepared_query." ".$search_path_SQL." ".$search_language_SQL_t);
Seit der Version 2.8 sind diese Änderungen bereits im Core durchgeführt.
Ein Ändern der Datei search.php ist daher nicht mehr nötig!
| Begrenzen der Suche auf eine bestimmte Sprache | 0 Comments |