Weblog / Fotoblog
kommentarer Onsdag 25. Oktober 2006, kl. 12:00:51
Jeg bruker, som du kan lese her MovableType versjon 3.2 til disse sidene. Jeg bruker den også til fotosiden min, men der er ikke dette skriveriet så relevant.
Jeg har tilsynelatende klart å finne ut hva som måtte gjøres. Jeg bruker ordet «tilsynelatende» her etter som jeg ikke har rukket å teste det ut skikkelig enda.
116: function dirify (str) {
117: var s = str.toLowerCase();
118: s = s.replace(/[øØöÖ]/g, 'oe'); // lagt til
119: s = s.replace(/[æÆäÄ]/g, 'ae'); // lagt til
120: s = s.replace(/[åÅ]/g, 'aa'); // lagt til
121: s = s.replace(/&[^;\s]+;/g, '');
122: s = s.replace(/[^A-Za-z0-9\s]/g, ''); // redigert
123: s = s.replace(/\s+/g, '_');
124: return s;
125: }
72: function dirify (str) {
73: var s = str.toLowerCase();
74: s = s.replace(/[øØöÖ]/g, 'oe'); // lagt til
75: s = s.replace(/[æÆäÄ]/g, 'ae'); // lagt til
76: s = s.replace(/[åÅ]/g, 'aa'); // lagt til
77: s = s.replace(/&[^;\s]+;/g, '');
78: s = s.replace(/[^A-Za-z0-9\s]/g, ''); // redigert
79: s = s.replace(/\s+/g, '_');
80: return s;
81: }
190: function dirify (str) {
191: var s = str.toLowerCase();
192: s = s.replace(/[øØöÖ]/g, 'oe'); // lagt til
193: s = s.replace(/[æÆäÄ]/g, 'ae'); // lagt til
194: s = s.replace(/[åÅ]/g, 'aa'); // lagt til
195: s = s.replace(/&[^;\s]+;/g, '');
196: s = s.replace(/[^A-Za-z0-9\s]/g, ''); // redigert
197: s = s.replace(/\s+/g, '_');
198: return s;
199: }
Disse tre unike filene har altså hatt to forskjellige «function dirify()» og var med det lite konsekvente på hva de gjorde med enkelte tegn. Linjene som er markert «// lagt til» har jeg altså skrevet inn, og linjene markert med «// redigert» er endret så de er like i alle filene. Funksjonen «dirify()» bør være like da de, på forskjellig tidspunkt forsøker å gjøre «samme endring» på «samme felt».
I tillegg har jeg måttet oppdatere filene «mt/lib/MT/Util.pm» og «mt/php/lim/MTUtil.php» ganske så drastisk. Jeg deler gjerne av meg med disse filene, men kun på forespørsel da jeg ikke har lyst til å legge ut disse filene helt uten videre.
Som du ser har jeg tatt med både små- og store bokstaver. I teorien skal ikke dette være nødvendig på grunn av str.toLowerCase(), men denne tok av forskjellige grunner ikke alltid med disse «sære» tegnene. Jeg regner med at du ser tegningen, og jeg håper du gir meg et lite hyl dersom det er andre- bedre metoder å gjøre det på.
Når man skriver en ny artikkel i MovableType 3.2 så får man automatisk konvertert «tittelen» til et «basename». «Basename» er altså en «URL-vennlig» omskrivning av «tittelen» man skriver og dette betyr at en del tegn blir skrevet om- eller fjernet. I og for seg er dette en god idé, men MovableType 3.2 sin «basename» har vel aldri gjort jobben slik jeg ønsker.
Eksempelvis blir dette skriveriet, med tittelen «MovableType basenamebug» skrevet om til «movabletype_basenamebug». Eventuelt legger MovableType 3.2 på en «teller» så man ikke får flere like «basename». I dette tilfellet er jo jobben gjort og så langt er det hele glitrende godt.
Men: Jeg skriver på norsk, og med dette kommer noen tegn ikke MovableType 3.2 klarer å håndtere. Tegnene jeg tenker på er selvfølgelig «æ, ø, å, Æ, Ø, Å». Disse blir altså «strippet» i «basename». Jeg kan jo redigere «basename» slik jeg vil, men det må da være mulig å få MovableType 3.2 til å skrive om disse tegnene til noe annet enn … «ingen ting».
Ville jeg brukt tittelen «å være eller ikke være» ville «basename» altså blitt noe slikt som «vre_eller_ikke_vre». Dette passer meg altså relativt dårlig da jeg vil ha med i alle fall noe som kan tolkes i «basename». Kanskje heller «a_vaere_eller_ikke_vaere». Andre alternativer til «omskrivning» av tegnene tar jeg også selvfølgelig imot med stor takk.
Er du en av de som vet hvilken fil i MovableType 3.2 som tar for seg denne omskrivningen? Jeg er ikke fremmed for å få endret dette i PHP / Perl / JavaScript, men jeg er ikke kar om å finne ut hvor denne «omskrivningen» tar plass. Vet du hvilken fil dette ligger i så blir jeg ufattelig glad dersom du sender meg en peker. Enten som epost eller som en kommentar her.
Åja. Jeg vet det har kommet nyere versjoner av MovableType. Jeg er bare fint lite interessert i å oppgradere. Min MovableType 3.2 - installasjon er «hacket til det ugjenkjennelige» og jeg har ikke så alt for lyst til å gjøre denne jobben én gang til.
Til «norskfreakene» der ute. Hva er rett måte å oversette særnorske tegn på? Skal æ oversettes med ae, ø med oe og å med aa? Eller er det «lov» å bruke æ -> a, ø -> o og å ->...
Sålangt jeg kan se fra litt grepping i MT-3.33-filene, er det mt-static/mt.js som gjør jobben, function dirify() med sin tilhørende tabell for mapping mellom uønskede tegn og deres oversettelse. For å norskifisere funksjonen vil det dermed bare være å legge til kodene for de norske tegnene samt oversettelsen i tabellen, i tråd med det du har gjort i malene dine.
Ah. Der er kanskje det siste som skal til. Av en eller annen grunn ble «basename» skrevet om i skjemaet, men ikke lagret med omskrivningen. Jeg prøver å endre dette også, og ser om ikke det hjelper. Takk for pekeren. Denne filen var laang nede på min «find … > sjekk.txt» :D
Bare hyggelig! Slike ting pleier være fint å få lagt inn for flere enn meg også. Har ikke gravd noe rundt i Perl-filene ennå på jakt etter hva som skjer med tittelfeltet før og etter redigering, det må utsettes til en tid jeg ikke må sove. :)
Det ser ikke ut som om at det gjorde nytten likevel. «Basename» blir fremdeles «rett» når jeg skriver noe, men så snart jeg lagrer posten blir den gal igjen.
Jeg ser dog at «mt/lib/MT/Util.pm», «mt/extlib/CGI/Util.pm» og «php/lib/MTUtil» kan inneholde tabellene jeg leter etter- og trenger så jeg får bare knote litt der og se hva jeg finner ut.
Men takk for pekeren uansett. Godt med litt hjelp :-)
Det tok «noen timer» men da ser det ut til at alt fungerer slik jeg synes det burde fungert fra begynnelsen av. Jeg måtte endre litt i tre filer, og «mye» i to, men nå skal tingene være på plass.
alt dette for å slippe å skrive permalinkene selv? Jeg er så glad jeg ikke bruker movable type!
Dette er ingen ting Svein. I alle fall ikke imot hva jeg måtte gjøre for å få WordPress til å fungere ;-)
Denne artikkelen er nå stengt for videre diskusjon for å hindre spam via kommentarskjemaet eller trackback/ping. Den kan dog bli åpnet igjen ved et senere tidspunkt dersom antallet spamforsøk blir lavere.