Suche in eigener Datei

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Pintu

Suche in eigener Datei

Post by Pintu »

Hallo,

folgendes: ich möchte von einer anderen Seite auf die Suchfunktion meines Bloggs zugreifen. Ich hab mal ein bisschen mit der Sidebar Suchfunktion herumgespielt, allerdings ohne jeden Erfolg.

Am einfachste wäre es, wenn ich die Suche in eine eigene PHP-Datei tun könnte. Was muss in diese Datei alles rein?

Gruß
Jörg
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Suche in eigener Datei

Post by garvinhicking »

Am einfachsten wäre es, Du benutzt einfach die serendipity_searchEntries() funktion. Binde das s9y framework in deine "andere Seite" ein und schau Dir dann mal an wie die Funktion benutzt wird (in include/functions_entries.inc.php). Die Funktion liefert Dir ein Array mit den Suchergebnissen zurück, die kannst Du dann beliebig ausgeben.

Zweite Möglichkeit wäre das LiveSearch plugin zu benutzen, Dir das JavaScript gut durchlesen und diesen Scriptaufruf einfach in eine andere Seite pasten.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Ahhhhhhhhh, da hatte ich gestern wohl was auf den Augen :)

Ich hab mich mit dem livesearch plugin herumgequält, aber mit der serendipity_searchEntries aus der function_entries.inc ist es ja viel einfacher :) Vielen Dank! Jetzt habe ich es auch geschafft, mich im Forum zu registrieren...

Gruß
Jörg
Guest

Post by Guest »

Hi,

noch eine Frage:

Wie beeinflusse ich die Formatierung der Meldungen die bei der Suche erscheinen ("Die Suche nach xergab x Treffer:"). Im Moment ist der Text bei mir weiß in der normal Schriftgröße...dummerweise ist mein Hintergrund auch weiß.

Gruß
Jörg
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Oups, da habe ich doch glatt vergessen mich einzuloggen. Wollte noch was einfügen:

Kann ich einstellen, dass der Suchbegriff in den Suchergebnissen fett hervorgehoben wird?

Gruß
Jörg
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Öhm, das müsstest Du einfach mit ein paar <div> oder <span> Tags drumherum lösen können, die Du dann per CSS formatierst?!

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Ja, das dachte ich auch, aber ich probier hier schon die ganze Zeit rum, ohne Erfolg zu haben.

Diese Meldungen stammen doch aus der genpage.inc.php --> case 'search'. Wenn ich dort aber einen div style einfüge passiert gar nix...
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Wie sieht denn Dein Code konkret aus? Die ganze Suchsache nutzt ja das Smarty-Framework; je nachdem wie Du es eingebettet hast, ist das ja garnicht verfügbar.

Du musst also eventuell Deine eigene(n) Ausgaberoutinen schreiben anhand des Rückgabearrays von serendipity_searchEntries()...?!

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Hi,

das ist das ganz normale Searchplugin für die Sidebar mit unverändertem Code.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hm, ich steh auf dem Schlauch. Wo hast Du das eingebunden, kannst Du mir mal eine URL zeigen?

Ich habe dort ein <div class="serendipity_search serendipity_search_noentries"> was ich mit CSS stylen kann.

Viele Grüße,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Habe dir eine PM geschickt.

schickst du mir mal den ganzen umliegenden Code, wo das <div class="serendipity_search serendipity_search_noentries"> steht? Damit kann ich dann vielleicht was anfagen.

Gruß
Jörg
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Ah, ich sehe, die Funktion gibt's erst bei Serendipity 0.9.

Da stehen die Inhalte in der templates/default/content.tpl

Ich weiß leider nicht auswendig wie/ob man das nach 0.8.3 am einfachsten portieren kann.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Hmm, da bin ich jetzt ganz schön verzweifelt. Ich bekomm es einfach nicht hin. Die genpage.inc.php sieht so aus. Ganz blöd gefragt: wo muss ich da eventuelle divs eintragen?

Code: Select all

<?php # $Id: genpage.inc.php,v 1.16 2005/08/04 08:49:53 garvinhicking Exp $
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved.  See LICENSE file for licensing details

include_once('serendipity_config.inc.php');
include_once(S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php');
include_once(S9Y_INCLUDE_PATH . 'include/plugin_internal.inc.php');

serendipity_plugin_api::hook_event('genpage', $uri);
serendipity_smarty_init();

// For advanced usage, we allow template authors to create a file 'config.inc.php' where they can
// setup custom smarty variables, modifiers etc. to use in their templates.
@include_once $serendipity['smarty']->template_dir . '/config.inc.php';

$serendipity['smarty']->assign(
    array(
        'leftSidebarElements'       => serendipity_plugin_api::count_plugins('left'),
        'rightSidebarElements'      => serendipity_plugin_api::count_plugins('right')
    )
);

if ($serendipity['smarty_raw_mode']) {
    /* For BC reasons, we have to ask for layout.php */
    @include_once(serendipity_getTemplateFile('layout.php', 'serendipityPath'));
} else {
    switch ($serendipity['GET']['action']) {
        // User wants to read the diary
        case 'read':
            if (isset($serendipity['GET']['id'])) {
                serendipity_printEntries(array(serendipity_fetchEntry('id', $serendipity['GET']['id'])), 1);
            } else {
                serendipity_printEntries(serendipity_fetchEntries($serendipity['range'], true, $serendipity['fetchLimit']));
            }
            break;

        // User searches
        case 'search':
            $r = serendipity_searchEntries($serendipity['GET']['searchTerm']);
            if (strlen($serendipity['GET']['searchTerm']) <= 3) {
                $serendipity['smarty']->assign('content_message', SEARCH_TOO_SHORT);
                break;
            }

            if (is_string($r) && $r !== true) {
                $serendipity['smarty']->assign('content_message', sprintf(SEARCH_ERROR, $serendipity['dbPrefix'], $r));
                break;
            } elseif ($r === true) {
                $serendipity['smarty']->assign('content_message', sprintf(NO_ENTRIES_BLAHBLAH, $serendipity['GET']['searchTerm']));
                break;
            }

            $serendipity['smarty']->assign('content_message', sprintf(YOUR_SEARCH_RETURNED_BLAHBLAH, $serendipity['GET']['searchTerm'], serendipity_getTotalEntries()));
            serendipity_printEntries($r);
            break;

        // Show the archive
        case 'archives':
            serendipity_printArchives();
            break;

        // Welcome screen or whatever
        default:
            serendipity_printEntries(serendipity_fetchEntries(null, true, $serendipity['fetchLimit']));
            break;
    }

    serendipity_smarty_fetch('CONTENT', 'content.tpl');
}

/* vim: set sts=4 ts=4 expandtab : */
?>
Pintu
Regular
Posts: 9
Joined: Mon Aug 15, 2005 1:59 pm

Post by Pintu »

Ok, Problem gelöst. Falles noch jemand interessieren sollte:

In der index.tpl befindet sich ein <td id=content> oder <div id=content> (je nach Template). Das kann man dann einfach anpassen.

Hat hat aber jemand eine Lösung für mich, wie man das Suchwort Fett hervorheben kann?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Ja, schau Dir mal die genpage.inc.php von Serendipity 0.9 an, und die serachEntries() funktion von 0.9. Da wird das quasi gezeigt wie Du wo Smarty Variablen assignen kannst und seperat anwenden (content.tpl auch angucken).

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply