Startseite
  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche
Startseite › FAQ ›

Wie kann ich bestimmte Inhalts-Typen von der Such-Indizierung ausnehmen?

Eingetragen von maximago (862) am 20.08.2007 - 14:05 Uhr in
  • Allgemeines

Es kann gewünscht sein, dass bestimmte Inhalte nicht mit in den Index aufgenommen werden. z.B. um die Anzeige in den Suchergebnissen zu unterbinden.

Dies kann mit einem kleinen Modul leicht realisiert werden:

<?php
/**
* Implementation of hook_perm().
*/
function searchfilter_perm() {
  return array('manage searchfilter');
}

/**
* Implementation of hook_access().
*/
function searchfilter_access($op, $node) {
  global $user;
  switch ($op) {
    case ('create'):
      return user_access('manage searchfilter');
      break;
  }
}

function searchfilter_menu($may_cache) {
  $items = array();
   
  $items[] = array(
    'path' => 'admin/settings/searchfilter',
    'title' => t('Searchfilter'),
    'description' => t('Configure Searchfilter.'),
    'type' => MENU_NORMAL_ITEM,
    'weight' => 1,
    'priority' => 1,
    'access' => user_access('manage searchfilter'),
    'callback' => 'drupal_get_form',
    'callback arguments' => array('searchfilter_settings'),
    );
return $items;
}

function searchfilter_settings() {

  $contenttypes = array();

  $result = db_query("SELECT type, name, description FROM {node_type} ORDER BY name");
  while ($contenttype = db_fetch_object($result)) {
    $contenttypes[$contenttype->type] = $contenttype->name . "<br/>" . $contenttype->description;
  }

  $current = variable_get('searchfilter_type', '');
  $current[0] = 0;

  $form['searchfilter']['heading1'] = array(
    '#type' => 'markup',
    '#value' => t('<p>Configure the searchfilter here. By activating a contenttype, it will be removed from index and not be found by search.</p>'),
    );

    $form['searchfilter']['#type'] = 'fieldset';
    $form['searchfilter']['#title'] = t('Available contenttypes');
    $form['searchfilter']['searchfilter_type'] = array(
      '#type' => 'checkboxes',
      '#title' => t('Select contenttypes to disable'),
      '#default_value' => $current,
      '#options' => $contenttypes,
      '#multiple' => TRUE,
      );

  return system_settings_form($form);
}

// hook_update_index implementation. Ensure special content-types aren't shown in search
function searchfilter_update_index() {
  if (function_exists('search_wipe')) {
   
$searchfilter_types = (array) variable_get('searchfilter_type',0);

  $search_string = '';

    foreach ($searchfilter_types as $searchfilter_type) {
     $search_string = ($searchfilter_type==NULL ? $search_string : $search_string." OR '".$searchfilter_type."'");
    }
$search_string = substr($search_string, 4, strlen($search_string));
$search_string = "SELECT nid FROM {node} WHERE type = ".$search_string;

    $result = db_query($search_string);
    while ($data = db_fetch_object($result)) {
      search_wipe($data->nid, 'node');
    }
  }
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 1052 Column 'status' in where clause is ambiguous
  • [CEBIT] Die CeBIT-Quadratur des Drupal-Kreises?
  • Probleme bei Import mit Feeds
  • Danland: Standard-Startseite formatieren
  • Probleme mit dem Modul "Menu Block"
  • Taxonomie Titel und Beschreibung anzeigen
  • Modul für Absatznummern / Randnummern
  • Pfade zu Drupal-Core-Module korrigieren
  • Heartbeat und Facebook Style Status
  • Views Slideshow - mehrere Nodes gleichzeitig anzeigen
  • [gelöst] Nach Update auf Wysiwyg 6.x-2.4 und TinyMCE 3.4.7 funktioniert Wysiwyg-Editor nicht mehr
  • Formular für einen Kalender mit Freischaltung
Weiter

Neue Kommentare

  • Ja, das ist leider so. Die
    vor 10 Minuten 49 Sekunden
  • Patrick Schanen schrieb ....
    vor 13 Minuten 48 Sekunden
  • Bei Drupal 7 gibt es nur
    vor 18 Minuten 1 Sekunde
  • Hier wird offensichtlich
    vor 33 Minuten 32 Sekunden
  • Hallo Werner, ich habe das
    vor 37 Minuten 22 Sekunden
  • Views muß immer etwas zum
    vor 50 Minuten 31 Sekunden
  • ist
    vor 1 Stunde 11 Minuten
  • Firebug benutzen
    vor 1 Stunde 40 Minuten
  • Caches in Datenbank löschen ...
    vor 1 Stunde 41 Minuten
  • Hallo, und Danke für deine
    vor 1 Stunde 44 Minuten

Statistik

Beiträge im Forum: 160314
Registrierte User: 14286

Neue User:

  • schmittrich
  • mah1987
  • Nadine.S

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5214
quiptime4713
Tobias Bähr3825
md3727
bv3680
Thoor3282
Alexander Langer3155
wla2795
dereine2630
pebosi2495
» User nach Punkten
Zur Zeit sind 0 User und 4 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's
  • Bücherecke

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed Drupal Podcast
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
  • Drupal Demo
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association