Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#26 18. Februar 2012 16:23

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Wie Suchparameter weitergeben an Modul?

faglork schrieb:

ich zitiere mal ein Beispiel direkt aus der original-Suchtemplate:

Wo werden da bitte Variablen in Hochkommatas übergeben?
Die einzige Variable, die dort verwendet wird, ist {$entry->modulerecord} und diese steht, wie Du siehst, nicht in Hochkommatas.

faglork schrieb:

AFAIK  ist es egal ob man einfache oder doppelte verwendet.

Nein. Siehe Smarty-Doku hier oder hier oder PHP Doku ... oder such einfach mal hier im Forum wink
Immer noch Zweifel?

faglork schrieb:

Egal, auch mit doppelten Hochkommas gehts nicht.

Dann kann ich Dir leider nicht weiterhelfen.
Eventuell nutzen wir unterschiedliche Modul-Versionen.
Aber mein Code funktioniert.
Sicher.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#27 18. Februar 2012 17:30

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Wie Suchparameter weitergeben an Modul?

NaN schrieb:
faglork schrieb:

ich zitiere mal ein Beispiel direkt aus der original-Suchtemplate:

Wo werden da bitte Variablen in Hochkommatas übergeben?
Die einzige Variable, die dort verwendet wird, ist {$entry->modulerecord} und diese steht, wie Du siehst, nicht in Hochkommatas.

Vieleicht reden wir aneinander vorbei?

[== php ==]
{News action='detail' article_id=$entry->modulerecord detailpage='News'}

Also ICH sehe da schon Hochkommata ... action='detail' ... als was würdest du das bezeichnen?

NaN schrieb:
faglork schrieb:

AFAIK  ist es egal ob man einfache oder doppelte verwendet.

Nein. Siehe Smarty-Doku hier oder hier oder PHP Doku ... oder such einfach mal hier im Forum wink
Immer noch Zweifel?

Ja, weil ich seit Jahr und Tag das in den CMSMS-Modul-/Tag-/UDT-Aufrufen so halte. Nie Probleme damit gehabt.

NaN schrieb:
faglork schrieb:

Egal, auch mit doppelten Hochkommas gehts nicht.

Dann kann ich Dir leider nicht weiterhelfen.
Eventuell nutzen wir unterschiedliche Modul-Versionen.
Aber mein Code funktioniert.
Sicher.

CMSMS  1.10.3
CGUserDirectory    1.3
FrontEndUsers    1.17

Servus,
Alex

Offline

#28 18. Februar 2012 17:48

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Wie Suchparameter weitergeben an Modul?

Hast Du die Links gesehen? Hast Du mal kurz reingelesen? Hast Du verstanden was der Unterschied zwischen einer Variable und einfach nur Text ist?

faglork schrieb:

Also ICH sehe da schon Hochkommata ... action='detail' ... als was würdest du das bezeichnen?

Ich würde das als Text bezeichnen. Nicht als Variable.

'detail' ist keine Variable sondern einfach nur Text, der wortwörtlich so übernommen werden soll wie er da steht. Da ist es tatsächlich egal. Aber wenn Du eine Variable verwendest, also etwas, was außer seiner Text-Repräsentation noch weitere Daten enthält (die Dinger mit dem Dollarzeichen am Anfang), dann musst Du der Software auch irgendwie klarmachen, dass das, was Du da jetzt schreibst, nicht wortwörtlich übernommen werden soll (also nicht die sieben Zeichen $, p, h, r, a, s und e ) sondern, dass der Wert der sich dahinter verbigt (nämlich die Suchanfrage) übergeben werden soll. Und das kennzeichnet man mit doppelten oder einfachen Hochkommatas. Denn ansonsten wird im CGUserDirectory wortwörtlich nach $phrase gesucht. Und da wird logischerweise keine Übereinstimmung gefunden.

Habe die gleichen Modulversionen wie Du. Sorry, bin hier mit meinem Latein am Ende. Kann Dir leider nicht sagen wieso bei Dir die Kombination von Suchmodul, Plugin und CGUserDirectory nicht funktioniert, aber bei mir schon.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#29 18. Februar 2012 18:04

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Wie Suchparameter weitergeben an Modul?

Ich habe den "Fehler" gefunden!

Ich habe nämlich für das CGUserdirectory ein Suchformular, welches in den Feldern unternehmen, ort und beschreibung suchen soll. Das tut es auch, aaaaaber:

Um ein Ergebnis zu bekommen, MÜSSEN die drei Begriffe vorhanden sein, jeweils im richtigen Feld. Sobald auch nur EINE Suche in EINEM Feld ins Leere läuft, wird nichts angezeigt.

Wenn ich also  im ersten Feld (unternehmen) "Hersteller x", im zweiten Feld (ort) "Ort x" (muss der richtige Ort sein) und im dritten Feld (beschreibung) einen "Begriff x" (der im Datensatz von Hersteller x auch im Feld "beschreibung" vorkommt) DANN bekomme ich ein Ergebnis. Ist ja auch logisch: So funktioniert eine Suche mit Ausschlusskriterien.

Hier die generierte Query:

[== php ==]
(mysql): SELECT COUNT(U.id) FROM cms_module_feusers_users U LEFT JOIN cms_module_feusers_properties P1 ON U.id = P1.userid LEFT JOIN cms_module_feusers_properties P2 ON U.id = P2.userid LEFT JOIN cms_module_feusers_properties P3 ON U.id = P3.userid LEFT JOIN cms_module_feusers_properties P4 ON U.id = P4.userid WHERE (P1.title = 'unternehmen' AND P1.data REGEXP 'kernhof') AND (P2.title = 'kurzinformation' AND P2.data REGEXP 'kernhof') AND (P3.title = 'beschreibung' AND P3.data REGEXP 'kernhof') AND (P4.title = 'ort' AND P4.data REGEXP 'kernhof') LIMIT  1

--> da steht ein AND zwischen den einzelnen Abfragekriterien.

Das ist aber fatal in einer allgemeinen Suchanfrage. Da wird ja JEDES Feld mit demselben Begriff abgefragt, und deshalb bekomme ich NIE ein Ergebnis: Der Unternehmensname taucht ja nie im Feld Ort auf, und umgekehrt ...

Wenn ich nur EINES der Felder verwende, funktioniert es nämlich:

[== php ==]
{cgud_search summarytemplate="cmssuche"  detailpage="anbieter" searchinput="$phrase" searchproperty="beschreibung" all_any="any"}

Wat nu? Wie kann man dem Modul mitteilen, dass man ein Ergebnis haben will, wenn der gesuchte Begriff in *irgendeinem* der angegebenen Felder auftaucht?

Servus,
Alex

Beitrag geändert von faglork (18. Februar 2012 18:11)

Offline

#30 18. Februar 2012 18:17

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Wie Suchparameter weitergeben an Modul?

Argh! Stimmt! Hatte bei meinen Tests immer nur ein Feld angegeben. Ist mir daher garnicht aufgefallen. Da ist war noch ein Tipp-Fehler im Plugin. any wird nicht mit doppel n geschrieben. Hab's hier korrigiert.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#31 18. Februar 2012 19:13

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Wie Suchparameter weitergeben an Modul?

Die Änderung ist fatal!

DEBUG: error in query
  QUERY = SELECT U.* FROM cms_module_feusers_users U LEFT JOIN cms_module_feusers_history H ON U.id = H.userid LEFT JOIN cms_module_feusers_properties P1 ON U.id = P1.userid LEFT JOIN cms_module_feusers_properties P2 ON U.id = P2.userid WHERE (P1.title = 'unternehmen' AND P1.data REGEXP 'Schäuferla') OR (P2.title = 'beschreibung' AND P2.data REGEXP 'Schäuferla') GROUP BY U.id ORDER BY username ASC LIMIT 0, 100000
  Error = Server shutdown in progress

--> der mysqld geht auf 100% Auslastung :-(((


Mit nur einem Feld gehts.

Servus,
Alex

Beitrag geändert von faglork (18. Februar 2012 19:15)

Offline

#32 18. Februar 2012 19:20

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Wie Suchparameter weitergeben an Modul?

Ich geb's auf.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#33 16. Juli 2014 15:32

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: Wie Suchparameter weitergeben an Modul?

Stand vor einem ähnlichen Problem bzw. Vorhaben - und anscheinend gibt es doch eine Lösung!

Erst mal danke an NaN für das PlugIn - grundsätzlich funktioniert es bei mir auch mit mehreren searchproperties, allerdings geht die Performance mit jedem weiteren Eintrag nach unten, bis sie bei mir mit 4 Begriffen die Seite lahm gelegt hat.

Nun kam mir folgender Gedanke (und er funktioniert grundsätzlich):
Ich rufe das PlugIn mehrfach auf mit jeweils nur einem Begriff. Dann baue ich ein entsprechendes Suchergebnis-Template im CGUserDirectory-Modul, damit es nicht auffällt, dass die Ergebnisse ggf. aus mehreren "Blöcken" zusammengesetzt sind - z.B. einfach nur mit <li>..</li> für jedes Ergebnis - die umschließenden <ul></ul> befinden sich im Suchergebnis-Template der CMSms-Suche vor und nach den PlugIn-Aufrufen.

Jetzt gibt es nur noch unter Umständen das Problem, dass ein Eintrag mehrfach erscheint, wenn sich Suchbegriffe in mehreren Feldern befinden.
Ggf. lässt sich dies verhindern, wenn man alle Ergebnisse zunächst in einen Array speichert und diesen dann vor der Ausgabe auf doppelte Einträge überprüft ...

Offline