4images Forum & Community
4images Modifications / Modifikationen => Templates & Styles (Requests & Discussions) => Topic started by: Chris72 on February 06, 2003, 07:26:10 PM
-
Ich stehe vor folgendem Problem:
Ich möchte auf einer externen HP eine Linkliste von Begriffen erstellen, denen ich eine feste Suche nach einem bestimmten Suchbegriff zuordne. Die Suchbegriffe haben nicht mit den Kategorien tun, also funktioniert eine derartige Verknüpfung nicht. Jedem Namen soll ein anderes Template zugeordnet werden.
Beispiel: Ich habe eine Liste von Personen erstellt, die allein oder in Gruppen auf meinen Bildern vorkommen.
Ulli -> Suchbegriff Ulli
Andi -> Suchbegriff Andi
usw.
Je nach Person soll ein anderes Template verwendet werden.
Die Templateerstellung dürfte nicht das Problem sein, dazu müsste ich wohl nur das Tempkate search.html kopieren und unter einem neuen Namen mit den Veränderungen abspeichern.
Ich müsste aber wahrscheinlich auch die search.php ändern und das gestaltet sich problematisch. Ich müsste die search.php kopieren, unter neuem Namen speichern und dort irgendwo den festen Suchbegriff (z.B. Ulli) eintragen. Nur wo? Kann mir da jemand helfen....
-
Suche in search.php
$main_template = 'search';
und ersetze es durch
$custom_template = 'search_'.strtolower($search_keywords);
if (file_exists(TEMPLATE_PATH."/".$custom_template.".html")) {
$main_template = $custom_template;
}
else {
$main_template = 'search';
}
Wenn der Suchbgriff jetzt "Ulli" ist, wird zuerst geschaut ob ein Template search_ulli.html existiert, wenn ja wird dieses genommen, wenn nicht das Standard-Template.
Jan
-
Danke, werde es gleich ausprobieren!!!!
-
Irgendwie funktioniert das ganze nicht, es wird immer nur das Standardtemplate verwendet.
Ich habe die search.php entsprechend den Vorgaben geändert und auch ein template search_daniele.html (liegt im gleichen Templateverzeichnis wie auch search.html)) erstellt. Bei der Suche nach Daniele - egal ob normal oder erweiterte Suche - wird immer nur das Standardtemplate verwendet. Was läuft verkehrt?
-
Setze den Code-Abschnitt nach diese Zeile
include(ROOT_PATH.'global.php');
Jan
-
Das war's! Du bist ein Genie, danke!
-
Ein kleines Problem gibt es noch: Wenn sich das Suchergebnis (Thumbnails) über mehrere Seiten erstreckt wird nur auf der ersten Seite das benutzerdefinierte Template, für die nachfolgenden aber das Standard-Template verwendet. Es sollte aber durchgehend - wenn vorhanden - das benutzerdefinierte Template verwendet werden.
Gibt es hierfür auch ne Lösung?
-
Probiere mal folgendes (konnte es leider nicht testen):
Ersetzt oben gepostete Lösung durch diese:
$custom_template = 'search_'.strtolower($search_keywords);
if (file_exists(TEMPLATE_PATH."/".$custom_template.".html")) {
$main_template = $custom_template;
$site_sess->set_session_var("search_template", $main_template);
}
elseif ($search_template = $site_sess->get_session_var("search_template")) {
$main_template = $search_template;
}
else {
$main_template = 'search';
}
und verschiebe das ganze noch eine Zeile runter, hinter
require(ROOT_PATH.'includes/sessions.php');
Jan
-
Hat geklappt! Du bist wirklich klasse!!!
-
Die Anzeige über mehrere Seiten klappt jetzt problemlos, nur wird jetzt, wenn ich die search.php aufrufe, nicht automatisch das Standardtemplate verwendet, sondern das zuletzt verwendete Template (search_xyz.html). Das gleiche passiert, wenn ich auf ein Schlüsselwort klicke und damit eine Suche auslöse. :?: :?: :?:
-
Füge unter
$main_template = 'search';
das ein
$site_sess->set_session_var("search_template", $main_template);
Jan
-
Habe ich gemacht, aber das Problem besteht weiterhin....
-
Ok, nächster Versuch ;)
Letzte Änderung rückgängig machen und folgendes über den Codeabschnitt setzen:
if (isset($HTTP_POST_VARS['search_keywords']) || isset($HTTP_GET_VARS['search_keywords'])) {
$site_sess->drop_session_var("search_template");
}
Jan
-
Ich hoffe, ich nerve nicht zusehr ;-)
Ein Besserung ist zu vollmelden, allerdings immer erst beim zweiten Versuch.
Ich führe beispielsweise eine Suche nach einem Suchbegriff mit Customtemplate durch, da wird korrekterweise das Customtemplate verwendet. Folgt dann eine Suche ohne Customtemplate wird noch immer das zuletzt verwendete Customtemplate verwendet. Erst wenn danach noch eine Suche nach einem Suchbegriff ohne Customtemplate durchgeführt wird, wird auch das Standardtemplate verwendet.
Analog beim Anklicken der Schlüsselwörter: Beim ersten Versuch noch immer Verwendung des Customtemplates, nach "Zurück" und erneutem Anklicken die korrekte Verwendung des Standardtemplates.
Der Code sieht inzwischen so aus:
define('GET_CACHES', 1);
define('ROOT_PATH', './');
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
if (isset($HTTP_POST_VARS['search_keywords']) || isset($HTTP_GET_VARS['search_keywords'])) {
$site_sess->drop_session_var("search_template");
}
$custom_template = 'search_'.strtolower($search_keywords);
if (file_exists(TEMPLATE_PATH."/".$custom_template.".html")) {
$main_template = $custom_template;
$site_sess->set_session_var("search_template", $main_template);
}
elseif ($search_template = $site_sess->get_session_var("search_template")) {
$main_template = $search_template;
}
else {
$main_template = 'search';
}
-
OK, dann so:
Ersetze
$site_sess->drop_session_var("search_template");
durch
$site_sess->set_session_var("search_template", 0);
Jan
-
Das war's ! Jetzt funktioniert es einwandfrei. Super und tausend Dank!!! :D