s9y Suche mit Umlauten und Pagination -> Fehler

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Freudi
Regular
Posts: 97
Joined: Thu Nov 23, 2006 6:29 am
Contact:

s9y Suche mit Umlauten und Pagination -> Fehler

Post by Freudi »

Hi,

ich habe auf meiner kleinen Site Pagination in mein (nicht BP-)-Theme eingebaut, analog (um nicht copy & paste zu schreiben) http://board.s9y.org/viewtopic.php?p=78895#p78895
Das funktioniert soweit auch zuverlässig und mein Dank dafür geht an yellowled, Judebert & Carl.

Allerdings gibt es da ein Problem, von dem nicht nur meine kleine Site betroffen ist, sondern auch z.B. yellowleds:
Sucht man über die Blogsuche nach einem Wort, das einen Umlaut enthält (und für das es mehr Resultate gibt, als dass sie auf einer Seite dargestellt werden könnten) fliegen einem Smarty-Fehlermeldungen über die Paginationlinks auf die weiteren Seiten um die Ohren (z.B. bei der Suche nach "über"):

Code: Select all

http://matthias.yellowled.de/%3Cbr%20/%3E%3Cb%3EWarning%3C/b%3E:%20%20sprintf()%20%5B%3Ca%20href=%27function.sprintf%27%3Efunction.sprintf%3C/a%3E%5D:%20Too%20few%20arguments%20in%20%3Cb%3E/www/htdocs/[peep]/bundled-libs/Smarty/libs/plugins/modifier.string_format.php%3C/b%3E%20on%20line%20%3Cb%3E24%3C/b%3E%3Cbr%20/%3E
Das ergibt nicht nur ein paar unschöne 404er, sondern stört ungemein. Gibts Anhaltspunkte, wie das Fixen wäre?

TIA,
Freudi
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by yellowled »

Freudi wrote:Sucht man über die Blogsuche nach einem Wort, das einen Umlaut enthält (und für das es mehr Resultate gibt, als dass sie auf einer Seite dargestellt werden könnten) fliegen einem Smarty-Fehlermeldungen über die Paginationlinks auf die weiteren Seiten um die Ohren (z.B. bei der Suche nach "über"):
Reproduziert:
<b>Warning</b>: sprintf() [<a href='function.sprintf'>function.sprintf</a>]: Too few arguments in <b>/www/htdocs/xxx/bundled-libs/Smarty/libs/plugins/modifier.string_format.php</b> on line <b>24</b>
Wenn ich als Programmierdepp das richtig sehe, liegt das Problem darin, dass wir einer Funktion, die zwei Werte erwartet, nur einen übergeben -- warum das mit Umlauten plötzlich ein Problem ist, kann ich nicht erkennen. Garvin?

YL
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Kann es sein, daß Umlaute vor der übergabe umgewandelt werden und zwar nicht in z.B. &ouml; sondern in "die andere" Schreibweise (%1234) und das %-Zeichen bei sprintf() eine eigene Bedeutung hat? %1, %2, usw. stehen iirc bei sprintf() für die einzelnen Variablen, die ersetzt werde sollen. Wenn natürlich ein Umlaut so gewanelt wurde, fehlt plötzlich eine Variable.
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by yellowled »

kleinerChemiker wrote:Wenn natürlich ein Umlaut so gewanelt wurde, fehlt plötzlich eine Variable.
Kann ich nix zu sagen. Der Code für die Pagination bei mir ist:

Code: Select all

{eval var=$footer_currentPage-3 assign="paginationStartPage"}
         {if $footer_currentPage+3 > $footer_totalPages}
            {eval var=$footer_totalPages-6 assign="paginationStartPage"}
         {/if}
         {if $paginationStartPage <= 0}
            {assign var="paginationStartPage" value="1"}
         {/if}
         {if $footer_prev_page}
            <a title="{$CONST.PREVIOUS_PAGE}" href="{$footer_prev_page}"><span class="pagarrow">&larr;</span></a>
         {/if}
         {if $paginationStartPage > 1}
            <a href="{'1'|string_format:$footer_pageLink}">1</a>
         {/if}
         {if $paginationStartPage > 2}
            &hellip;
         {/if}
         {section name=i start=$paginationStartPage loop=$footer_totalPages+1 max=7}
            {if $smarty.section.i.index != $footer_currentPage}
            <a href="{$smarty.section.i.index|string_format:$footer_pageLink}">{$smarty.section.i.index}</a>
            {else}
            <span id="thispage">{$smarty.section.i.index}</span>
            {/if}
         {/section}
         {if $smarty.section.i.index < $footer_totalPages}
            &hellip;
         {/if}
         {if $smarty.section.i.index <= $footer_totalPages}
            <a href="{$footer_totalPages|string_format:$footer_pageLink}">{$footer_totalPages}</a>
         {/if}
         {if $footer_next_page}
            <a title="{$CONST.NEXT_PAGE}" href="{$footer_next_page}"><span class="pagarrow">&rarr;</span></a>
         {/if}
Es kann aber gut sein, dass Umlaute hier gar nicht bedacht sind -- der Code ist ja von Judebert, und Englisch kennt nunmal keine Umlaute. :)

YL
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Vermutlich wird das PRoblem bei "string_format:$footer_pageLink" verursacht. Weißt du zufällig, wo $footer_pageLink generiert wird? Bzw. wärs interessant fürs debuggen das mal direkt auszugeben, bevor mans an strng_format schickt.
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by yellowled »

kleinerChemiker wrote:Weißt du zufällig, wo $footer_pageLink generiert wird?
Keinen Schimmer. Ich hab da nur den Code übernommen, den Jude mir seinerzeit vorgebetet hat.
kleinerChemiker wrote:Bzw. wärs interessant fürs debuggen das mal direkt auszugeben, bevor mans an strng_format schickt.
Das kriege ich hin. Wenn ich in die entries.tpl ein <p>{$footer_pageLink}</p> setze, spuckt das auf meinem lokalen Entwicklungsblog

Code: Select all

http://mmees-thinkpad/serendipity/archives/P%s.html 
aus. Nachtrag: Suche ich dann dort nach Umlauten ("fürchterlich"), sieht das so aus:

Code: Select all

http://mmees-thinkpad/serendipity/search/f%C3%BCrchterlich/P%s.html
YL
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Thx, es liegt wohl wirklich an dem %-Zeichen. Muß vermutlich mit \ escaped werden. Ich werd mich dann gleich mal drüber machen und php-Docs und Smraty-Docs wälzen ;)
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by Timbalu »

Halt!

Also ich glaube ja, dass das eher die gesuchte <?php sprintf(CONSTANTE, $variable); ?> ist, die als @define('CONSTANTE','blah %s blubb'); definiert wird. Aber irgendwie bekommt das der Paginator nicht hin dies mitzuteilen. Was das allerdings mit Umlauten zu tun haben soll, verschließt sich mir völlig, außer das man das Suchwort mit htlspecialchars o.ä. escapen sollte..

Ian
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Kannst du bitte mal folgende Änderung testen:
function_entries.inc.php Zeile 921

Code: Select all

    $uriArguments = $serendipity['uriArguments'];
ändern in

Code: Select all

    $uriArguments = str_replace('%', '\%', $serendipity['uriArguments']) ;

Weiß zufällig jemand, weshalb in Zeile 926 "%2A" in ein "*" umgewandelt wird?
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by yellowled »

kleinerChemiker wrote:Kannst du bitte mal folgende Änderung testen
Bedingt. Mein Testblog hat soeben ein paar Umlaute spendiert bekommen.

Die eigentlichen Seitenlinks schmeißen nach wie vor denselben Fehler.

Code: Select all

<b>Warning</b>:  sprintf() [<a href='function.sprintf'>function.sprintf</a>]: Too few arguments in <b>/var/www/serendipity/bundled-libs/Smarty/libs/plugins/modifier.string_format.php</b> on line <b>24</b><br />
Die "weiter blättern"-Links allerdings linken nun auf "http://mmees-thinkpad/serendipity/searc ... ch/P2.html", was mit korrektem Umlaut ausgegeben wird. Die Ausgabe von {$footer_pageLink} bleibt gleich.

Hoffe, das hilft weiter :)

YL
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Hmm, ich kann das Problem irgendwie nicht nachvollziehen. Wenn ich in meinem Blog nach "dafür" suche, gibt es keine Fehlermeldung und Pagination funktioniert einwandfrei.
Freudi
Regular
Posts: 97
Joined: Thu Nov 23, 2006 6:29 am
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by Freudi »

kleinerChemiker wrote:Wenn ich in meinem Blog nach "dafür" suche, gibt es keine Fehlermeldung und Pagination funktioniert einwandfrei.
Schlag mich, aber ich sehe auf Deinem Blog (ich gehe davon aus, Du meinst den in Deiner Signatur angebenen) keine Pagination á la http://board.s9y.org/viewtopic.php?p=78895#p78895 entdecken. :roll:
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Ah, da gibts noch mehr. Um mir das genauer anzusehen muß ich mir erst einen Test-Blog damit installieren um ein paar Debug-Ausgaben einfügen zu können. D.h. wenn es keiner vorher löst, werde ich die kommende Woche da etwas tiefer graben.
kleinerChemiker
Regular
Posts: 765
Joined: Tue Oct 17, 2006 2:36 pm
Location: Vienna/Austria
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by kleinerChemiker »

Jetzt hab ich lokal ein Testblog installiert. Da kann ich den Fehler nicht nachvollziehen.
Pagination ist nun auch in meinem Blog aktiviert, kann dort ebenfalls den Fehler nicht nachvollziehen.

Sicher, daß ihr die aktuelle Version habt? Ohne das Problem nachvollziehen zu können, kann ich mich nicht auf Fehlersuche machen :?
Freudi
Regular
Posts: 97
Joined: Thu Nov 23, 2006 6:29 am
Contact:

Re: s9y Suche mit Umlauten und Pagination -> Fehler

Post by Freudi »

kleinerChemiker wrote:Jetzt hab ich lokal ein Testblog installiert. Da kann ich den Fehler nicht nachvollziehen.
Pagination ist nun auch in meinem Blog aktiviert, kann dort ebenfalls den Fehler nicht nachvollziehen.
http://blog.kleinerchemiker.net/index.p ... =%C3%BCber
Jetzt fahr doch mal bitte mit dem Mäusken über die Links zu den einzelnen Fundstellen. Ja, der Fehler ist auch bei Dir vorhanden. Danke jedenfalls für Deine Bemühungen!

Bye,
Freudi
Post Reply