Zum Inhalt springen

tt_news Suche erweitern

Erstellt am 9. Dezember 2008 · 23 Antworten · letzte Antwort am 10. November 2011 · Seite 2 von 2

Tags: tt_news, Suche, Frage

devx ·

Mir gehts konkret um die magische "php funktion", aber ich werds schon irgendwie hinbekommen...
Dachte nur, weil du auch die Kategorien als Selectbox brauchtest und es hinbekommen hast,
dass du genau DIESE PAAR ZEILEN PHP postest, aber egal.

Ich probiers selber...

devx ·

So, das Formular schaut gut aus :-)

Jetzt hab ich noch den searchWhere-Hook:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['additionalFormSearchFields'][] = 'tx_spreisettnews';
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['searchWhere'][]='tx_spreisettnews';

meine Funktion in der Klasse:

function searchWhere($this, $sw, $where) {
    ...
    $where .= " AND datetime > UNIX_TIMESTAMP('2009-01-01')";

    return $where;
}

Problem: keine Auswirkung auf das Suchergebnis, keine Fehlermeldung.
Egal was ich in die $where reinschreib, es scheint nicht beachtet zu werden.

Was hast du drin steht parallaxis?

devx ·
parallaxis schrieb

Ok... das war blöd... #angry#

Die searchWhere wird nur aufgerufen, wenn ein Suchbegriff eingegeben wird.
Ich hatte einfach keinen Suchbegriff eingegeben... #paralyzed#

Tatsache!
Erst wenn ein Suchbegriff mit angegeben wird kommt die searchWhere ins Spiel.
Ich hab das ganze mit einem hidden-parameter im Formular gelöst:

<input class="csc-mailform-submit" type="hidden" name="tx_ttnews[search]" value="1" />

und in der class.tx_ttnews.php die if-Abfrage erweitert:

if ($this->piVars['swords'] || $this->piVars['search'])
xyanure ·

Hi !
Ich bin Französisch und ich ferstehe nicht sehr güt was du erklären.
Ich bin neu bei typo3 une ich verstehe nicht Hooks. Ich versuche, deinem Beispiel zu verstehen, aber est ist nicht klar... Können Sie mich ihre Dateien zeigen ?
Oder können Sie eine Erklärung in englischer Sprache geben?

franz ferdinand ·

welche art von extension muss ich denn im kickstarter anlegen, um einen searchwhere hook zu definieren? ein frontend plugin?

es wäre echt super, wenn jemand den kompletten code für ein ganz simples searchwhere beispiel posten könnte. 🙂

edit:
funktioniert! 🙂

hab einfach ein frontend plugin angelegt und in der klasse die searchWhere function hinzugefügt. dann noch in ext_localconf.php registriert. soll ich die main function entfernen? wird die überhaupt aufgerufen?

vielleicht habe ich später noch eine frage zu additionalFormSearchFields...

franz ferdinand ·

muss ich bei meinen where ergänzungen irgendwas escapen um sql injections zu verhindern, oder wird das eh alles irgendwo nachher nochmal überprüft?

joshyouwaah ·
franz ferdinand schrieb

edit:
funktioniert! 🙂

Hallo Ich habe ein komsiches Problem: Habe einen Hook der Funktioniert aber er überschreibt mir die Markers von tt_news. z.B. mein Marker ###GENERIC_CAT### wird mit "hallo" testmassig richtig ausgegeben aber die marker von tt_news z.B. ###FORM_URL### wird als "###FORM_URL###" natürlich falsch ausgegeben.

Irgendwas muss mit meiner Funktion nicht stimmen....

function additionalFormSearchFields($searchMarkers) { 
				$searchMarkers = array(
						'###GENERIC_CAT###' => 'hallo');
	    return $searchMarkers;
		
}

Aber was?

Danke sehr

mr.​rabbit ·

Hallo,
ich habe es durch diesen Thread schon mal geschafft einen Hook anzulegen, das Suchformular anzupassen und auch auch den Searchstring zu modifizieren.

Aber wie bekomme ich jetzt die Eingabe aus einem eigenen Feld in die searchWhere Funktion.

Ich habe ein weiteres Suchfeld:

<input type="text" name="tx_ttnews[searchdate]" id="date" value="###DATE###" class="datepicker">

aber wie kann ich dieses Suchfeld nun auslesen?

function searchWhere($parentObj, $sw, $where) {
  $where .= " AND datetime > UNIX_TIMESTAMP(".$this->piVars['searchdate']. " ) " ;
  return $where;
}