Wenn Ihr hier fertig seit, schickt mir dann bitte jemand eine E-Mail mit den notwendigen Änderungen für Bulletproof? Das wäre supernett, ich hab zu viele Baustellen offen im Moment. Danke.
YL
s9y Suche mit Umlauten und Pagination -> Fehler
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Ja gerne, (aber nur,) wenn ihr dafür auch eine zum Lernen befähigende Demo - bzw eine einfache Vorlage mit Anweisungen - für die neuen Serendipity Templates macht, an denen ihr gerade bastelt... (Stichwort: Child Themes - und Fallbacks). 
Ian
Ian
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Wenn's da was gibt, wird es veröffentlicht. Das wird vor s9y 1.6 nicht der Fall sein. (Weil es vorher nicht anständig funktioniert.)
YL
YL
Re: s9y search with Non-ASCII and Pagination -> Error
What has happend and solution.
This is what the bulletproof entries.tpl gets from function_entries.inc.php
The search is 'über' or 'über*' and {$footer_pageLink} appears to be a string
like '/test/search/%C3%BCber/P%s.html' or '/test/search/%C3%BCber*/P%s.html'.
Smarty's sprintf modifier (meanwhile 'string_format') tries to replace the page number %s with a value, gets stuck with all the other commandlike '%C3%BC' (ü) looking stuff of the Non-ASCII character and cries for help; this was the error we got.
Now the pagination section in entries.tpl.
The original part is {$smarty.section.i.index|string_format:$footer_pageLink}, which meant to mean something like {$number|string_format:"%d"} (replace number with a formated(sprintf) number), but can not do so, while it tries with {$number|string_format:$string}.
So we now know, we are not allowed to use string_format here. We have to use a simple replace modifier quick and cool, and just do $string|replace:'%s':$index.page.number.
There are 3 places to do so inside entries.tpl (already modified):
This is the smarty way, or you can do the indexing number replace thing in the function_entries.inc.php, like it is done for 'footer_prev_page' and 'footer_next_page' page. But this is a decision of core and Garvin.
hth, Ian
PS. Wenn ich mir es recht überlege, könnte man auch einfach die beiden funktionierenden letztgenannten Variablen benutzen, oder?
PPS. Nein!, Sobald es mehr als 2 Seiten sind, müssen wir auch wieder irgendwelche Rechenoperationen einfügen und können dann gleich bei der vorhandenen Lösung bleiben.
This is what the bulletproof entries.tpl gets from function_entries.inc.php
The search is 'über' or 'über*' and {$footer_pageLink} appears to be a string
like '/test/search/%C3%BCber/P%s.html' or '/test/search/%C3%BCber*/P%s.html'.
Smarty's sprintf modifier (meanwhile 'string_format') tries to replace the page number %s with a value, gets stuck with all the other commandlike '%C3%BC' (ü) looking stuff of the Non-ASCII character and cries for help; this was the error we got.
Now the pagination section in entries.tpl.
The original part is {$smarty.section.i.index|string_format:$footer_pageLink}, which meant to mean something like {$number|string_format:"%d"} (replace number with a formated(sprintf) number), but can not do so, while it tries with {$number|string_format:$string}.
So we now know, we are not allowed to use string_format here. We have to use a simple replace modifier quick and cool, and just do $string|replace:'%s':$index.page.number.
There are 3 places to do so inside entries.tpl (already modified):
Code: Select all
{if $template_option.show_pagination == 'true' && $footer_totalPages > 1}
<div class="pagination">{$footer_pageLink}
{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="pagearrow">◄</span></a>
{/if}
{if $paginationStartPage > 1}
<a href="{$footer_pageLink|replace:'%s':'1'}">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="{$footer_pageLink|replace:'%s':$smarty.section.i.index}">{$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_pageLink|replace:'%s':$footer_totalPages}">{$footer_totalPages}</a>
{/if}
{if $footer_next_page}
<a title="{$CONST.NEXT_PAGE}" href="{$footer_next_page}"><span class="pagearrow">►</span></a>
{/if}
</div>
{/if}
hth, Ian
PS. Wenn ich mir es recht überlege, könnte man auch einfach die beiden funktionierenden letztgenannten Variablen benutzen, oder?
PPS. Nein!, Sobald es mehr als 2 Seiten sind, müssen wir auch wieder irgendwelche Rechenoperationen einfügen und können dann gleich bei der vorhandenen Lösung bleiben.
Re: s9y search with Non-ASCII and Pagination -> Error
Da Bulletproof nicht zwingend das einzige Template ist, dass diese Funktion benutzt, würde ich es für richtiger halten, das im Kern zu machen.Timbalu wrote:This is the smarty way, or you can do the indexing number replace thing in the function_entries.inc.php, like it is done for 'footer_prev_page' and 'footer_next_page' page. But this is a decision of core and Garvin.
Garvin?
YL
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: s9y search with Non-ASCII and Pagination -> Error
Hi!
Öh, ich sehe hier direkt keine Möglichkeit wie man das im Kern machen könnte?!
Grüße,
Garvin
Öh, ich sehe hier direkt keine Möglichkeit wie man das im Kern machen könnte?!
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/
# 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/
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Naja es ginge schon und das relativ einfach...., das Problem war ja der ganze String mit den übersetzten Umlauten, so bräuchte man eigentlich nur den string aufsplitten...
in und
und hätte dann 2 Variablen, die man im Template wieder zusammenbaut. So ließe sich die alte Version weiter verwenden mit einem kleinen zusätzlichen Umbau..., aber ach alles doppelt gemoppelt 
Oder man investiert etwas mehr und müsste die smarty paginator logik mit 1-7 Schritten in php übersetzen und in die serendipity_printEntryFooter function einbauen...
Ich wäre aber auch eher für die einfache replace Lösung in der entries.tpl.
Ian
Code: Select all
/test/search/%C3%BCber/P%s.htmlCode: Select all
/test/search/%C3%BCber/Code: Select all
P%s.htmlOder man investiert etwas mehr und müsste die smarty paginator logik mit 1-7 Schritten in php übersetzen und in die serendipity_printEntryFooter function einbauen...
Ich wäre aber auch eher für die einfache replace Lösung in der entries.tpl.
Ian
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Hi!
Aber das wären ja Änderungen die man auch in jedem Template durchführen muss...
Ich denke dass Timbalus Lösung mit replace statt string_format in entries.tpl der korrekte Weg wäre.
Grüße,
Garvin
Aber das wären ja Änderungen die man auch in jedem Template durchführen muss...
Ich denke dass Timbalus Lösung mit replace statt string_format in entries.tpl der korrekte Weg wäre.
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/
# 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/
Re: s9y Suche mit Umlauten und Pagination -> Fehler
Das war der Teil, der sich mir nicht erschloss. Wenn es „in Kern und Templates“ vs „nur im Template“ ist, ist die Wahl natürlich klar.garvinhicking wrote:Aber das wären ja Änderungen die man auch in jedem Template durchführen muss...
Ich schaue mal, dass ich das die Tage in BP und ggf. weiteren Templates auf Spartacus anpasse, aber im Moment steht mir das Projektwasser bis Oberkante Unterlippe.
YL