Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Wie kann ich die function search_data überschreiben?

Eingetragen von DrupalFan (1646)
am 18.02.2010 - 23:28 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Wie kann ich folgende Funktion aus dem search.module überschreiben?

/**
* Perform a standard search on the given keys, and return the formatted results.
*/
function search_data($keys = NULL, $type = 'node') {

  if (isset($keys)) {
    if (module_hook($type, 'search')) {
      $results = module_invoke($type, 'search', 'search', $keys);
      if (isset($results) && is_array($results) && count($results)) {
        if (module_hook($type, 'search_page')) {
          return module_invoke($type, 'search_page', $results);
        }
        else {
          return theme('search_results', $results, $type);
        }
      }
    }
  }
}

Wenn es da keine Möglichkeit gibt, das zu überschreiben, muss man dann einen Hack im Core machen?

Jedenfalls sollte diese Zeile

if (isset($results) && is_array($results) && count($results)) {

geändert werden auf
if (isset($results) && is_array($results)) {

um die normale Ergebnisseite auch dann anzuzeigen, wenn 0 Treffer bei der Suche rausgekommen sind. Das ist nötig, damit auch dann die Google Werbung angezeigt wird, die in search-results.tpl.php eingebaut wurde.

‹ Profile themen -> Conent anzeigen, der nicht unmittelbar zum Content Profile gehört Nutzungsbedingungen Mysql Drupal ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb Wie kann

Eingetragen von stBorchert (6003)
am 19.02.2010 - 08:16 Uhr
DrupalFan schrieb

Wie kann ich folgende Funktion aus dem search.module überschreiben?

Leider gar nicht.

DrupalFan schrieb

Wenn es da keine Möglichkeit gibt, das zu überschreiben, muss man dann einen Hack im Core machen?

Nein. Bitte nicht.

DrupalFan schrieb

um die normale Ergebnisseite auch dann anzuzeigen, wenn 0 Treffer bei der Suche rausgekommen sind.

Du könntest etwas Anderes versuchen:
erstelle Dir ein Modul, in dem Du die Funktion hook_search implementierst.
Dort lieferst Du exakt ein Ergebnis zurück. Dieses Ergebnis könntest Du dann sogar noch über eine Implementierung der Funktion template_preprocess_search_results einfach wieder herausfiltern, so dass es nicht angezeigt wird.
So hast Du definitiv immer ein Ergebnis, das jedoch nicht angezeigt wird.

hth,

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

search-results.tpl.php immer themen können, auch bei 0 Treffer

Eingetragen von DrupalFan (1646)
am 19.02.2010 - 13:12 Uhr

Ja, das ist vielleicht eine Möglichkeit, aber ehrlich gesagt, ist mir das zu viel Aufwand. Es geht hier nur darum eine einzige Zeile zu verändern oder es geht darum, dass auch dann, wenn 0 Treffer rausgekommen sind, die vorhandene search-results.tpl.php aufgerufen wird, was jetzt bei 0 Treffern leider nicht der Fall ist. Man könnte sogar sagen, das ist eine Schwachstelle im Search Modul, denn sinnvoller ist auf jeden Fall, dass auch bei 0 Treffern theming mit der ja vorhandenen und funktionierenden Template-Datei search-results.tpl.php möglich ist.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aufwand

Eingetragen von stBorchert (6003)
am 17.03.2010 - 10:13 Uhr
DrupalFan schrieb

Ja, das ist vielleicht eine Möglichkeit, aber ehrlich gesagt, ist mir das zu viel Aufwand.

Tja, dann ist Dir nicht zu helfen.

DrupalFan schrieb

Man könnte sogar sagen, das ist eine Schwachstelle im Search Modul

Definitiv nicht.

DrupalFan schrieb

denn sinnvoller ist auf jeden Fall, dass auch bei 0 Treffern theming mit der ja vorhandenen und funktionierenden Template-Datei search-results.tpl.php möglich ist.

Nein, auch nicht. Zumal es in diesem Fall keine Suchergebnisse gibt, die gethemed werden müssten. Dementsprechend macht dieses Template für diesen Fall keinen Sinn.

eoh,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Macht sehr viel Sinn

Eingetragen von DrupalFan (1646)
am 17.03.2010 - 14:22 Uhr

Doch, das template macht sehr sehr sehr viel Sinn, auch dann, wenn NULL Suchergebnisse rauskommen.

Denn genau dann erscheint eine Google Adsense for Search Ads-Only Werbung, genauso wie wenn Suchergenisse rauskommen. Und diese Werbung kann man in der template Datei einfach einbauen.

Und diese Werbung muss unbedingt auch dann erscheinen, wenn Null Suchergebnisse rauskommen und genau dann ist nämlich die Klickrate noch höher und der Kunde kann Einnahmen generieren.

Leider kennt fast niemand die Google Adsense for Search Ads-Only, wie man auch bei diesem Beitrag sehen kann:
http://www.drupalcenter.de/node/25326
(Null Reaktion).

Verstehst Du jetzt, warum es so wichtig ist?
Die Template-Datei ist super, was sie nutzt in dem Fall nicht, wenn sie nicht aufgerufen wird, aber aufgerufen werden MUSS! Diese Werbung ist sehr wichtig, niemand kann das weg diskutieren.

Wenn hier keiner eine Idee hat, wie man das lösen kann, bleibt nur ein hack oder patch fürs search Modul.

Zitat:

if (isset($results) && is_array($results)) {

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lösung

Eingetragen von stBorchert (6003)
am 17.03.2010 - 14:28 Uhr
DrupalFan schrieb

Wenn hier keiner eine Idee hat, wie man das lösen kann

Die Lösung habe ich Dir bereits beschrieben.

DrupalFan schrieb

bleibt nur ein hack oder patch fürs search Modul.

Du wirst schon wissen, was Du tust ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sinnvolle Lösung

Eingetragen von DrupalFan (1646)
am 17.03.2010 - 18:15 Uhr

Um eine einzige Zeile zu verändern, wird niemand so einen aufwändigen Weg gehen.

Es muss auch andere, sinvolle Lösungen geben, wo man nicht einen riesigen Aufwand hat nur um eine winzige Sache zu ändern.

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb Um eine

Eingetragen von Alexander Langer (3416)
am 17.03.2010 - 20:14 Uhr
DrupalFan schrieb

Um eine einzige Zeile zu verändern, wird niemand so einen aufwändigen Weg gehen..

Ich würde es begrüßen, wenn du weniger verallgemeinern würdest. Ich würde Stefans Weg nämlich sehrwohl gehen und halte ihn für "sauber". Da wären wir schonmal bei niemand weniger zwei.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Entwickler versus Hobby

Eingetragen von DrupalFan (1646)
am 17.03.2010 - 20:20 Uhr

Es gibt Entwickler, die haben viele Aufträge, da staut es sich schon. Da kann man nicht solche aufwändigen Lösungen machen um eine Zeile zu verändern. Ganz bestimmt nicht.

Es gibt Hobby-Drupaler, die haben Zeit für das, ist halt ein Spiel, viel und manchmal auch komlizierte Sachen zu machen. Ich versteht das schon, umgekehrt sollte man die Entwickler, die sich die Zeit nicht nehmen wollen, auch verstehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was bedeutet das jetzt? Das

Eingetragen von bv (3924)
am 17.03.2010 - 20:35 Uhr

Was bedeutet das jetzt? Das Du in Deinen Kundenprojekten lieber den Core hackst um schneller zum gewünschten Ergebnis zu kommen, anstatt ein Modul zu schreiben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

soso

Eingetragen von stBorchert (6003)
am 17.03.2010 - 22:26 Uhr
DrupalFan schrieb

Es gibt Entwickler, die haben viele Aufträge, da staut es sich schon. Da kann man nicht solche aufwändigen Lösungen machen um eine Zeile zu verändern. Ganz bestimmt nicht.

Seltsam nur, dass ich dann genau diesen "aufwändigen Weg" vorgeschlagen habe. Als erfahrener Entwickler mit Kundenprojekten vermeidet man es nämlich tunlichst, eine "Lösung" zu verwenden, die einen später mal gehörig auf die Nase fallen lässt.

DrupalFan schrieb

Es gibt Hobby-Drupaler, die haben Zeit für das, ist halt ein Spiel, viel und manchmal auch komlizierte Sachen zu machen. Ich versteht das schon, umgekehrt sollte man die Entwickler, die sich die Zeit nicht nehmen wollen, auch verstehen.

Soso. Na dann möchte ich Deine "Kundenprojekte" lieber nicht sehen.

 Stefan

PS: es soll ja auch Entwickler mit vielen Aufträgen geben, die lieber sauber arbeiten und sich Zeit für eine vernünftige, gut durchdachte Lösung nehmen. Habe ich jedenfalls mal gehört.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Saubere Lösung ohne viel Aufwand

Eingetragen von DrupalFan (1646)
am 17.03.2010 - 22:36 Uhr

Leider falsch!!!

Ich will ja eine saubere Lösung! Aber nicht eine mit soooooooooo viel Aufwand. Das ist hier das Ziel und ich hoffe, es gibt einen Weg.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hättest du mal die Zeit für

Eingetragen von Alexander Langer (3416)
am 17.03.2010 - 23:39 Uhr

Hättest du mal die Zeit für deine Follow-Ups in diesem Thread in Stefans Lösungsansatz gesteckt, wärst du schon lange fertig.

Um es in Abwandlung eines bekannten Werbespruchs zu sagen: Suchst du noch oder löst du schon?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, manchmal sucht man ja

Eingetragen von DrupalFan (1646)
am 17.03.2010 - 23:54 Uhr

Ja, manchmal sucht man ja länger.

Ich glaube aber, dass nicht viele extra ein Modul schreiben würden um dieses Problem zu lösen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul

Eingetragen von stBorchert (6003)
am 18.03.2010 - 08:20 Uhr

Mal eine andere Frage: wenn Du es nicht selbst lösen willst oder kannst, warum beauftragst Du dann nicht einen richtigen Entwickler, dieses "Problem" zu lösen?
5 Minuten dürfte sich wohl auch jemand mit vielen Projekten dafür abzweigen können ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb Ja,

Eingetragen von Alexander Langer (3416)
am 18.03.2010 - 10:44 Uhr
DrupalFan schrieb

Ja, manchmal sucht man ja länger.

Schon richtig, aber du hast ja nun schon eine Weile einen sauberen Lösungsweg vorliegen und Stefan ist nicht eben dafür bekannt mal schnell irgendwas hinzuschlunzen. Wenn du im Anschluss also noch die Zeit x für weitere Suchen investierst kannst du dir auch überlegen, ob es im Sinne einer funktionierenden lösung nicht besser ist o.g. Weg umzusetzen, anstatt weiter Ausschau nach der Weltformel zu halten.

DrupalFan schrieb

Ich glaube aber, dass nicht viele extra ein Modul schreiben würden um dieses Problem zu lösen.

Es würden zumindest diejenigen machen, die halbwegs fit in der Drupal-Entwicklung sind und das sind die einzigen, von denen du überhaupt eine Reaktion bekommen hast. Diejenigen mit geringerem Kenntnisstand / Erfahrungsschatz haben sich gar nicht gemeldet, weshalb die Chancen gut stehen, dass es die von dir gewünschte noch einfacherer Lösung für Nicht-Voll-Durchsteiger nicht gibt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Überredet

Eingetragen von DrupalFan (1646)
am 23.03.2010 - 11:47 Uhr

Okay, ich glaube ihr habt ja recht und habt mich überzeugt:

Wenn ich Zeit findet, werde ich so ein SiteHelper-Modul schreiben (wie damals in Drupal 5) und das Problem von hier oben und auch das Problem hier
http://www.drupalcenter.de/node/25261
mit dem SiteHelper Modul lösen (gibt es dafür überhaupt weine Lösung, scheint weltweit ungelöst zu sein).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 6 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 30 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Ü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

Quicklinks III

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

RSS & Twitter

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