Page 1 of 3
s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 8:26 am
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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 9:08 am
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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 10:27 am
by kleinerChemiker
Kann es sein, daß Umlaute vor der übergabe umgewandelt werden und zwar nicht in z.B. ö 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.
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 11:24 am
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">←</span></a>
{/if}
{if $paginationStartPage > 1}
<a href="{'1'|string_format:$footer_pageLink}">1</a>
{/if}
{if $paginationStartPage > 2}
…
{/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}
…
{/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">→</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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 2:26 pm
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.
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 4:36 pm
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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 8:22 pm
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

Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 8:56 pm
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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 8:57 pm
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?
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 9:46 pm
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
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sat Aug 21, 2010 10:05 pm
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.
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sun Aug 22, 2010 8:50 am
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.

Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Sun Aug 22, 2010 9:29 am
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.
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Mon Aug 23, 2010 10:06 pm
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

Re: s9y Suche mit Umlauten und Pagination -> Fehler
Posted: Tue Aug 24, 2010 11:39 am
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