Globale Suchfunktion

CMSimple 4.0 und höher
Gert
Posts: 2065
Joined: Sun 18. Nov 2012, 14:18

Re: Globale Suchfunktion

Post by Gert »

2Rock wrote:PHP Version 5.2.14
Hallo, vielleicht kannst Du mal folgendes versuchen:

Öffne die Datei "./plugins/subsitefuncs/includes/views/container.php" und überschreibe sie komplett damit:

Code: Select all

<div class="ssf_sitemapMenu <?php echo $class; ?>"<?php if (isset($id)): ?> id="<?php echo $id; ?>"<?php endif; ?>>
<?php echo $output; ?>
</div>
Da ist wohl noch ein short open tag durchgerutscht. Die werden ja teilweise wieder modern, waren aber zwischendurch mal verpönt :roll: Martin hatte seinen Part ursprünglich für php5.3 und höher geschrieben - beim zurückrudern habe ich wohl nicht alles gefunden. Ich habe zwar auf einem Server mit php5.2 getestet, aber da waren wohl short open tags erlaubt.

Bei php5.2 könnten diese short open tags deaktiviert (verboten) sein,

Gert

PS: Martin hat mitgelesen und eine weitere mögliche Ursache gefunden (vielen Dank an Martin): die Verwendung der Funktion mb_strtolower()

Schreib mal bitte in die index.php von SubsiteFuncs folgendes:

Code: Select all

// schon da, ca Zeile 36/37:
$hjs .= '<link href="' . CMSIMPLE_ROOT . 'plugins/subsitefuncs/includes/assets/styles.css" rel="stylesheet" />';
$hjs .= '<script src="' . CMSIMPLE_ROOT . 'plugins/subsitefuncs/includes/assets/toggler.js"></script>';

// darunter der neue Code:
if(!function_exists('mb_strtolower')) 
{
    function mb_strtolower($string, $charset = null) 
    {
        $string = utf8_decode($string);
        $string = strtolower($string);
        $string = utf8_encode($string);
        return $string;
    }
} 
Teste beides mal bitte nacheinander, damit wir wissen, was es war,

Wir bekommen das noch hin - Gert ;)
Gert Ebersbach | CMSimple | Templates - Plugins - Services
2Rock
Posts: 13
Joined: Thu 7. May 2015, 11:21

Re: Globale Suchfunktion

Post by 2Rock »

Vielen Dank für Deine Mühe aber das hat leider auch nicht funktioniert. In der phpinfo steht "short_open_tag" auch auf on. Ja blöd, alles funktioniert tadellos, nur die Suche läuft nicht. Als wenn irgendein Befehl nicht richtig auf dem Server ausgeführt wird. Ist echt komisch, dass die normale Suche funktioniert, aber zusammen mit den Subsites dann nicht läuft.
Gert
Posts: 2065
Joined: Sun 18. Nov 2012, 14:18

Re: Globale Suchfunktion

Post by Gert »

Hallo, wir haben aneinander vorbei gepostet, oder parallel, wie man es auch nennt.

Testest Du bitte noch die 2. Variante, das "PS" aus dem vorigen Post?

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
2Rock
Posts: 13
Joined: Thu 7. May 2015, 11:21

Re: Globale Suchfunktion

Post by 2Rock »

Es funktioniert, ihr seid die besten!!!!!!
Vielen vielen dank Gert und Martin....
2Rock
Posts: 13
Joined: Thu 7. May 2015, 11:21

Re: Globale Suchfunktion

Post by 2Rock »

Einmal muss ich noch nerven, die Suchergebnisse sollen in einem neuen Tab geöffnet werden. Ich finde den Eintrag nicht, wie ich das ändern kann. Kannst du mir dabei bitte nochmal behilflich sein.

Vielen Dank.
Gert
Posts: 2065
Joined: Sun 18. Nov 2012, 14:18

Re: Globale Suchfunktion

Post by Gert »

2Rock wrote:Ich finde den Eintrag nicht, wie ich das ändern kann.
Ist auch nicht vorgesehen.

Da muss mal wieder die ./cmsimple/userfuncs.php her, wenn nicht schon vorhanden, musst Du Dir eine machen:

Code: Select all

<?php // utf-8 marker: äöü 

function searchboxBlank() 
{
    global $sn, $tx;
    return '<form action="' . $sn . '" method="get" target="_blank">' . "\n" 
    . '<div id="searchbox">' . "\n" 
    . tag('input type="text" class="text" name="search" size="12"') . "\n" 
    . tag('input type="hidden" name="function" value="search"') . "\n" . ' ' 
    . tag('input type="submit" class="submit" value="' . $tx['search']['button'] . '"') . "\n" 
    . '</div>' . "\n" . '</form>' . "\n";
}

?>
Wenn es die userfuncs.php schon gibt, schreibst Du die Funktion einfach mit rein.

Dann kannst Du die Funktion searchboxBlank() anstatt der Funktion searchbox() im Template aufrufen (einfach das "Blank" vor den Klammern einfügen),

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
2Rock
Posts: 13
Joined: Thu 7. May 2015, 11:21

Re: Globale Suchfunktion

Post by 2Rock »

Vielen Dank Gert, es funktioniert!!!
Nur leider habe ich mich schlecht ausgedrückt, ich wollte nicht, dass die Suchergebnisse in einem neuen Fenster ausgegeben werden, sondern das die angezeigten Suchtreffer beim anklicken in einem neuen Fenster geöffnet werden. Ich hoffe es macht dir nicht zu viel Mühe, aber dann wäre alles perfekt...
Gert
Posts: 2065
Joined: Sun 18. Nov 2012, 14:18

Re: Globale Suchfunktion

Post by Gert »

2Rock wrote:... sondern das die angezeigten Suchtreffer beim anklicken in einem neuen Fenster geöffnet werden.
Vielleicht solltest Du eine Bedienungsanleitung für das Internet auf Deiner Seite platzieren, da könntest Du Deinen Besuchern erklären, wofür die rechte Maustaste da ist, oder was passiert, wenn man auf einem Touchscreen einfach den Finger auf einem Link lässt ;)

Wäre jedenfalls besser, als die Besucher mit vielen neuen Tabs oder offenen Browserfenstern zu überraschen.

Ansonsten ist das in der Datei "./plugins/subsitefuncs/includes/views/linklist.php" (Zeile 3) geregelt, Änderungen an dieser Stelle sind dann aber nicht updatesicher,

Gert

PS: Wenn Du target="_blank" (oder target="sonstwas") setzt, nimmst Du Deinem Besucher die Entscheidungsfreiheit, wie oder wo der Link geöffnet werden soll. Der Link öffnet IMMER ein neues Fenster oder einen neuen Tab. Ich kenne keinen Browser, der die Möglichkeit bietet, das öffnen eines Links im gleichen Fenster zu erzwingen.
Gert Ebersbach | CMSimple | Templates - Plugins - Services
2Rock
Posts: 13
Joined: Thu 7. May 2015, 11:21

Re: Globale Suchfunktion

Post by 2Rock »

Gert, ich möchte mich an dieser Stelle nochmal recht herzlich bei dir bedanken.Was du hier auf die Beine gestellt hast, ist wirklich bemerkenswert. Auch deine Hilfsbereitschaft möchte ich wirklich hervorheben.

CMSimple läuft bei uns im Intranet, sodass jeder Fachbereich seine eigene Seite hat, die jeder gestalten und verwalten kann. Die Kollegen sind wirklich alle begeistert, weil es wirklich auch für Laien verständlich ist, die dann selbst auch was einstellen können. Dafür wirklich Lob und Anerkennung.

Ich habe jetzt die verschiedenen cmsimple Installationen in diverse subsite Ordner kopiert und siehe da, alles ist wie bisher. Jeder behält seine eigene Seite, nur sind jetzt alle miteinander verknüpft. Deswegen war mir auch die globale Suche so wichtig. Aber es läuft wirklich perfekt, so wie ich mir es vorgestellt habe. Alle Seiten werden durchsucht, alles ist übersichtlich und man kommt schnell zum Ziel.

Vielleicht kannst du es jetzt nachvollziehen, warum es für uns sinnvoll wäre, die Suchtreffer in einem neuen Fenster/tab zu öffnen. Bisher sind es 7 Subsites. Wenn man jetzt einen allgemeinen Begriff eingibt, werden dementsprechend viele Treffer angezeigt. Es wäre zumindestens für alle Nutzer verständlicher/komfortabler, wenn jetzt der angeklickte Treffer, in einem neuen Fenster/tab geöffnet werden würde. So könnte man, wenn die Seite doch nicht die erhoffte Information erhält, einfach das Fenster schließen und wäre wieder bei der Trefferseite und könnte den nächsten Link anklicken. So wäre es besser, als immer auf zurück zu klicken.

Klar, es gibt viele Wege, aber So wäre es wirklich perfekt.
Ich habe versucht target="_blank" in"./plugins/subsitefuncs/includes/views/linklist.php" einzutragen, aber leider ohne Erfolg. Wahrscheinlich an der falschen Stelle. Wenn es nicht funktioniert, dann ist es so, trotzdem bin ich sehr begeistert vom CMSimple und bedanke ich mich bei dir nochmals in aller Förmlichkeit...
Gert
Posts: 2065
Joined: Sun 18. Nov 2012, 14:18

Re: Globale Suchfunktion

Post by Gert »

Na gut, wenn Du mir so schön den Bart krabbelst ;)

Kompromiss: Das wird nicht Standard, Du musst es also nach einem evtl. Update des Plugins SubsiteFuncs selbst wieder einfügen. Aber ich gebe Dir die Lösung:

linklist.php komplett

Code: Select all

<ul>
<?php foreach ($pageList as $slug => $page): ?>
    <li><a href="<?php echo $page['href']; ?>" target="_blank"><?php echo $page['heading']; ?></a><?php
    if (!empty($page['children']))
    {
        $this->setParam('pageList', $page['children']);
        $this->send();
    }
    ?></li>
<?php endforeach; ?>
</ul>
Trotzdem verstehe ich nicht, warum man den Leuten nicht beibringen kann, die rechte Maustaste zu benutzen, um den Link in einem neuen Fenster/Tab zu öffnen. Dann kann jeder den Link öffnen, wie und wo er es gerne hätte, und so sollte es eigentlich sein,

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Post Reply