Bug #13550
AZ Tabs do not work for Turkish Characters
| Status: | Accepted | Start date: | 2011-03-02 | |
|---|---|---|---|---|
| Priority: | Should have | Due date: | ||
| Assignee: | Dirk Wildt | % Done: | 0% |
|
| Category: | Localisation | Spent time: | - | |
| Target version: | 4.7.0 | |||
| Votes: | 0 |
Description
When the following Typoscript is used, WXYZ tab works as expected but tabs for CÇ Iİ OÖ SŞ and UÜ do not:
plugin.tx_browser_pi1 {
a-z_Browser {
tabs {
0 = All
0.special = all
1 = 0-9
1.valuesCSV = 0,1,2,3,4,5,6,7,8,9
4 = CÇ
4.valuesCSV = C, Ç
10 = Iİ
10.valuesCSV = I, İ
16 = OÖ
16.valuesCSV = O, Ö
19 = SŞ
19.valuesCSV = S, Ş
21 = UÜ
21.valuesCSV = U, Ü
23 = WXYZ
23.valuesCSV = W, X, Y, Z
24 >
}
charset = utf-8
}
}
The tabs all report the correct number of items on mouseover.
TYPO3 4.5.2
Browser 3.6.1
History
Updated by Peter Murray about 2 years ago
I have further tested the AZ tabs, with individual letters on the tabs.
The links generated by the extension are not all correct.
For example the extension generates the URL with &tx_browser_pi1[azTab]=ae instead of &tx_browser_pi1[azTab]=İ (capital dotted i, which displays the correct list).
Also, the case conversion is not correct.
The URL generated for the I (uppercase dotless i) has &tx_browser_pi1[azTab]=i (lowercase dotted i) and gives the correct results but I would expected the URL to have &tx_browser_pi1[azTab]=ı (dotless i) instead.
Updated by Dirk Wildt about 2 years ago
- Category set to Localisation
- Assignee set to Dirk Wildt
- Target version set to 4.7.0
Updated by Dirk Wildt about 2 years ago
- Status changed from New to Accepted
Updated by Peter Murray about 2 years ago
When will version 4.1.0 be released? Can this issue be fixed earlier than version 4.1.0? We have a client who needs to work as soon as possible.
Updated by Martin Muskulus 3 months ago
I have a similar issue that might be related on a german website with TYPO3 v4.7.8, browser v4.4.3, database using utf8_general_ci and frontend output using utf-8 charsets.
I click on the letter U in indexBrowser and the list does NOT show fe_users with last_name beginning with Ü. The link to the U-list in indexBrowser has the correct number of fe_users in title but the shown list is shorter.
As a workaround the list works fine if I change zz_getSqlLengthAsRow() in pi1/class.tx_browser_pi1_navi_indexBrowser.php
from
$arrStatement[] = "LENGTH( '" . $specialChar . "' ) AS '" . $specialChar . "'";to
$arrStatement[] = "CHAR_LENGTH( '" . $specialChar . "' ) AS '" . $specialChar . "'";
I do not understand why the WHERE-statement to filter datarows by column uses the length of string in bytes (LENGTH()) instead of characters (CHAR_LENGTH()).
MySQL's function [http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_left LEFT] is multibyte safe, so i see no need to manipulate any length at all.
I tried the following query to verify and got a result of 1 for all users starting with U and Ü.
SELECT find_in_set('U', LEFT(last_name, 1)) FROM `fe_users` WHERE last_name like 'U%'
I assume the correct solution would be to check every SQL-function if it is multibyte safe and let them ignore the length parameter (or use length = 1 as for any other character).