Svensk Sortering i Glossary Drupal 6 (med rätt Collation)

Events happening in the community are now at Drupal community events on www.drupal.org.
Sourcery's picture

Hej,

Sitter och jobbar på en kommunsida som ska göras i Drupal, eftersom det verkar vara det bästa systemet för det ;)

IALLAFALL! Har nu satt igång default view: glossary.

Och nu har jag en fin lista från Å-Z... Letade på nätet hur detta skulle lösas, och det var ju såklart Collation som skulle vara problemet.

Så...
1. Jag har ändrat Collation på hela databasen (vilket bara gäller för nya tabeller)
2. Då har jag även ändrat Collation på ALLA tabeller som fanns i databasen (77st).

Men ÄNDÅ så envisas glossary view att lista AÄÅ och OÖ tillsammans... Vad kan då vara fel?

En sista fråga när vi ändå talar om Glossary, hur får man bort antalet poster per bokstav? Alltså jag vill att det ska stå A | B | C inte A (2) | B (5) | C (3)

Tack!

/Kristian

Comments

Samma fel här...

dblade1975's picture

Jag har brottats med samma problem i en dryg vecka nu. Det verkar som att servern där databasen ligger även den måste vara Utf-8 swedish. Jag ligger på en delad server hos Oderland och de är måttligt intresserade av att ändra kollation för resten av kunderna på samma server, vilket jag har full förståelse för. Just nu kollar jag upp om det finns någon vps-lösning till ett vettigt pris någonstans som man kan testa. Någon som har tips?

Mvh David

MySQL och UTF-8

christopherhemma's picture

Om jag inte minns helt fel så är det din connection som ska vara utf-8 mot en databas som är utf-8. Servern skall kunna leverera korrekt kollationering oavsett vad default är.

Det kan man tycka...

dblade1975's picture

Men hos Oderland så har jag inte lyckats installera Drupal med rätt kollation från början. Kollation för MySQL-uppkoppling är Utf_8_Swedish-ci och MySQL teckenuppsättning är UTF-8 Unicode.

När jag har dessa inställningar skapas alla tabeller som Utf-8 general-ci. Då har jag ändrat till Utf_8_Swedish-ci redan innan Drupal core är installerad.

Är det någon som har lyckats installera Drupal med Utf_8_Swedish-ci hos Oderland och fått ÅÄÖ att sorteras rätt? I så fall hur, och är ni då på delad server?

Mvh David

...

christopherhemma's picture

Men nu sitter inte kollationering på servernivå utan även på databas- och tabellnivå vilket vill säga att du kan ange kollationeringen när du skapar tabellen. MySQL kan hantera många olika språk samtidigt.

Detta kanske hjälper:

9.1.7.1. Using COLLATE in SQL Statements

With the COLLATE clause, you can override whatever the default collation is for a comparison. COLLATE may be used in various parts of SQL statements. Here are some examples:

Exempel:

select a,b,c from data ORDER BY a COLLATE Utf_8_Swedish_ci;

Jag har Latin1_Swedish_ci på alla tabeller...

Sourcery's picture

Som sagts tidigare så har jag Latin1_Swedish_ci collation i alla tabeller (efter 77 sqlquery körningar)

Så det borde nog ligga någon annanstans oxå...

I ditt exempel ovan så gör du ju en Collate i själva select-queryn, och SÅ kan de väl inte ha kodat hela Drupal systemet? För att vara på den säkra sidan så gjorde jag en sökning i koden, och hittade inga träffar på COLLATE, så förhoppningsvis så är det inte ställt i koden...

MEN det finns ju ett par ställen man kan ställa in språk i Webmin för. t.ex. apache... Kan det vara något där?

/Kristian

UTF_8_Swedish_ci contra Latin1_Swedish_ci

Sourcery's picture

Ser här på ditt svar att du har UTF_8... jag körde på Latin1_... Det kan ju vara DET som är problemet...

Jag får kolla imorgon när jag kommer till jobbet...

/Kristian

Kodning av drupal vetefan men

christopherhemma's picture

Troligtvis har du gjort fel någonstans. Ibland blir man blind av att kolla på kod så ta en break och kolla sen igen så hittar du det nog.
Installationen av servern har inget med det hela att göra, som sagt så styrs det på flera nivåer. MEN, är din databas satt till rätt collation så ska resten följa av sig självt såvida du inte anger annat i din query eller vid initiering av din connection.

Ser du ingen skillnad oavsett collation så känns det lite spöklikt, måntro en cache som svarar? MySQL har väl inte värdens bästa cachekontroll så värt att undersöka.

Lite sql-kod... och UTF8_swedish_ci collation

Sourcery's picture

Hej,

Jag bytte till UTF8_Swedish_ci istället för Latin1_Swedish_ci, men samma resultat...

När jag kör denna frågan (som views-glossary spottar ut så får jag ÅÄA tillsammans

SELECT node.nid AS nid, node.title AS node_title, users.name AS users_name, users.uid AS users_uid, node.changed AS node_changed
FROM node node
INNER JOIN users users ON node.uid = users.uid
WHERE SUBSTR( node.title, 1, 1 ) = 'a'
ORDER BY node_title ASC
LIMIT 0 , 30

Men om jag gör om lite i skriptet och kör det med collate i select-queryn så fungerar det...

SELECT node.nid AS nid, node.title AS node_title, users.name AS users_name, users.uid AS users_uid, node.changed AS node_changed
FROM node node
INNER JOIN users users ON node.uid = users.uid
WHERE SUBSTR( node.title, 1, 1 ) = 'a'
COLLATE utf8_swedish_ci
ORDER BY node_title ASC
LIMIT 0 , 30

Detta verkar ju betyda att ÄVEN fast jag har Collation utf8_sedish_ci så sorterar den inte efter det?
Har även startat om servern för att utesluta cache...

snyft vad gör jag för fel?

/Kristian

Servervariabler

cato's picture

Kör följande på servern:

mysql show variables | grep character

Och visa mig vad du får för resultat

Character variables

Sourcery's picture

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Mjapp

cato's picture

Så kan du kolla i character_sets_dir efter din collationfil.

Kör också en show create table i mysql för din tabell eller gör en mysqldump --add-drop-table --add-create (dbnamn) > text.sql och kika om din tabell verkligen skapats med rätt collation.

Test - skapa en tabell manuellt i mysql (ej med skript) med rätt collation och gör samma övning på den dvs show create

Detta har INTE alls med

bambi_2's picture

Detta har INTE alls med ovanstående fråga att göra, men jag måste få säga det ändå... Ni är så trevliga på det här forumet, ger bra svar utan nedlåtande kommentarer.
Jag har varit inne på många andra forum, där man bemöts som om man var nå´t som katten släpat in när man ställer en nybörjarfråga.
Tack för det!

Ann-Britt

Om numreringen...

itangalo's picture

Numreringen i Glossary kommer från en attachment i vyn, som visar "summary sorted ascending" när inkommande argument saknas.
Om du hittar attachment-displayen i Views och klickar på något av rubrikerna eller kugghjulen bland inställningarna för arguments kommer du att hitta inställningar för att stänga av numreringen.

Lycka till!
//Johan Falk, NodeOne

PS till bambi_2: Och dessutom finns det folk som du som ger positiv feedback! Snacka om trevligt!
**
Vill du lära dig mer om Drupal? Kolla in samlingen av tips och guider!
Har du en fråga om Drupal? Missa inte FAQ-sidan på forumet!
Första svenska boken om Drupal! Börja med Drupal – smart webbpublicering med open source
Kolla in NodeOnes Drupalkurs i Panels och Views 15–17 september!

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: