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?
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.
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
Immer noch Zweifel?
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?
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?
Ja, weil ich seit Jahr und Tag das in den CMSMS-Modul-/Tag-/UDT-Aufrufen so halte. Nie Probleme damit gehabt.
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?
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