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

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

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Suche in eigener Datei

Post by garvinhicking » Mon Aug 15, 2005 1:01 pm

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

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

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

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

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking » Mon Aug 15, 2005 4:33 pm

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

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...

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking » Mon Aug 15, 2005 4:47 pm

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

Hi,

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

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking » Mon Aug 15, 2005 5:26 pm

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

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

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking » Mon Aug 15, 2005 5:39 pm

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 » Mon Aug 15, 2005 8:26 pm

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

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?

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking » Tue Aug 16, 2005 2:56 pm

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