Page 1 of 1

Suche in eigener Datei

Posted: Mon Aug 15, 2005 4:12 am
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

Re: Suche in eigener Datei

Posted: Mon Aug 15, 2005 1:01 pm
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

Posted: Mon Aug 15, 2005 2:19 pm
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

Posted: Mon Aug 15, 2005 4:29 pm
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

Posted: Mon Aug 15, 2005 4:32 pm
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

Posted: Mon Aug 15, 2005 4:33 pm
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

Posted: Mon Aug 15, 2005 4:39 pm
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...

Posted: Mon Aug 15, 2005 4:47 pm
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

Posted: Mon Aug 15, 2005 5:22 pm
by Pintu
Hi,

das ist das ganz normale Searchplugin für die Sidebar mit unverändertem Code.

Posted: Mon Aug 15, 2005 5:26 pm
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.

Posted: Mon Aug 15, 2005 5:33 pm
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

Posted: Mon Aug 15, 2005 5:39 pm
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

Posted: Mon Aug 15, 2005 8:26 pm
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 : */
?>

Posted: Mon Aug 15, 2005 11:23 pm
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?

Posted: Tue Aug 16, 2005 2:56 pm
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