QuickTip: ExtJS 4 panel gombok
Ma a következő dolog fordult velem elő: létrehoztam egy sima panelt, amelyre definiáltam 3 gombot is. A gombokhoz viszont renderelés után hozzá kellett férnem abból a célból, hogy ha a felhasználónak nincs megfelelő jogosultsága, ne tudja nyomkodni ezeket. Meglepődve tapasztaltam, hogy a panel.buttons property null értékkel rendelkezik, pedig hát ebbe definiáltam. Úgy tűnik az Ext ilyenkor átalakítja ez a tömböt egy ún. dockedItem-é, így renderelés után csak ebben érhetők el a gombok, nem is annyira bonyolult módon:
panel.getDockedComponent(x).getComponent(y);
ahol X a dockedItem indexe (ha nincs másik, akkor 0) és Y az elérni kívánt gomb indexe.
read moreSubtitlers.hu – közösségi feliratfordítás
Útjára indult a legújabb feliratos oldal. Hogy ez miben más, mint a többi?
- Nincs telehányva reklámokkal a felület. Sőt, egyelőre egyáltalán nem lesz semmilyen reklám az oldalon. Ahogy időm engedi kiteszek egy támogatás gombot, ha valakinek tetszene a szolgáltatás és megtámogatná az oldal fenntartását
- Működik! Nem fogsz 404 – Az oldal nem található és hasonló szépségeket kapni. Ha mégis, akkor nagy gáz van
- Használható. Egyszerű, logikus felépítésű felületet terveztem, ami lehetővé teszi, hogy bármilyen céllal jössz is az oldalra, a leggyorsabban elérd azt.
- Felirat letöltés és feltöltés mellett, egy egészen újszerű szolgáltatást nyújt az oldal. Sok ember fordíthat egyszerre egy feliratot, így egyrészt lehet tehermentesíteni a fordítót, másrészt sokkal gyorsabban elkészülhet egy felirat. Ha 4-5 ember összeáll (és tegyük fel vágják olyan szinten az angolt, hogy használható feliratokat gyártanak), akkor 1-2 óra alatt lelehet fordítani egy feliratot.
A skype működése leállt
Felraktam egy 64 bites Windows 7-et virtuálgépben, hogy legyen egy munkás “gépem”, viszont a skype-ot valahogy nem sikerült működésre bírni, folyton leállt, természetesen ismeretlen hibával, a microsoft meg közölte, hogy ha majd rájönnek a megoldásra, akkor értesítenek. Na persze!
Mai napon megtaláltam a megoldást, a skype oldaláról jelenleg az 5.5.59.124-es verzió tölthető le, viszont van ennél újabb változat (valaki megmondja miért nem azt lehet letölteni a hivatalos oldalról?), az 5.6.0.110, ami letölthető például a szoftverbazis.hu oldalról. Ezt telepítve nem fog leállni a skype. Ha mégsem így történne, akkor meglehet próbálni egy korábbi verzió telepítését, mely megtalálható szintén a szoftverbazis.hu oldalon.
Online Szótanuló Reloaded
Sajnos volt egy működést gátló hiba a szótanuló kódjában, emiatt nem lehetett új szavakat felvinni. Ez javítva lett, újra megy minden! Szótanulásra fel!
-val, -vel rag generálása szóhoz
Összedobtam egy egyszerű függvényt, amivel egy megadott szóhoz -val, -vel ragot lehet képezni (pl. alma -> almával). Egyenlőre javascript-ben van megírva, de kérés alapján php-ra is simán átírható. A tévedés jogát fenntartom, ha találtok olyan esetet, amikor nem jól működik, akkor hozzászólásban várom a szót. (lehetséges, hogy valamelyik speciális magánhangzó páros kimaradt a listából) Tehát a függvény:
UPDATE: kód frissítve, köszönet az észrevételekért és a javítási javaslatokért!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | function addWithTermination(word) { var vowels = [ 'a', 'á', 'e', 'é', 'i', 'í', 'o', 'ó', 'ö', 'ő', 'u', 'ú', 'ü', 'ű' ], terminations = { 'val': ['a', 'ae', 'aé', 'ai', 'aí', 'á', 'ái', 'áí', 'o', 'oi', 'ó', 'u', 'ú'], 'vel': ['e', 'ei', 'é', 'i', 'í', 'ö', 'ő', 'ü', 'ű'] }, specialConsonants = [ 'cs', 'gy', 'sz', 'ty', 'zs' ], specialDoubleConsonants = [ 'ccs', 'ggy', 'ssz', 'tty' ], exceptions = { 'val': ['íj', 'híd', 'díj'], 'vel': [] }, lastCharIndex = word.length - 1, lastChar = word[lastCharIndex], vowelsAsString = vowels.join(''), vowelsPattern = new RegExp('[' + vowelsAsString + ']', 'ig'), vowelsMatch = word.match(vowelsPattern), lastTwoVowels = [], lastTwoVowelsAsString, termination; if (exceptions.val.indexOf(word) !== -1) { termination = 'val'; } else if (exceptions.vel.indexOf(word) !== -1) { termination = 'vel'; } else if (vowelsMatch.length > 1) { /* Több magánhagzó van a szóban */ lastTwoVowels.push(vowelsMatch[vowelsMatch.length - 2]); lastTwoVowels.push(vowelsMatch[vowelsMatch.length - 1]); lastTwoVowelsAsString = lastTwoVowels.join(''); if (terminations.val.indexOf(lastTwoVowelsAsString) === -1 && terminations.vel.indexOf(lastTwoVowelsAsString) === -1) { /* A magánhagzó pár nem egy speciális pár */ termination = terminations.val.indexOf(lastTwoVowels[1]) === -1 ? 'vel' : 'val'; } else { /* A magánhagzó pár egy speciális pár */ termination = terminations.val.indexOf(lastTwoVowelsAsString) === -1 ? 'vel' : 'val'; } } else if (vowelsMatch.length === 1) { /* Csak egy magánhangzó van a szóban */ termination = terminations.val.indexOf(vowelsMatch[vowelsMatch.length - 1]) === -1 ? 'vel' : 'val'; } else { /* Ilyen szó nincs */ return word; } if (vowels.indexOf(lastChar) !== -1) { if (vowels.indexOf(lastChar) % 2 === 0) { /* * Az utolsó karakter magánhangzó és ha * nem ékezetes, akkor ékezetessé kell tenni */ word = word.substring(0, lastCharIndex) + vowels[vowels.indexOf(lastChar) + 1]; } } else { if(word[lastCharIndex - 1] !== word[lastCharIndex]) { /* * Az utolsó karakter mássalhangzó, így * ha nem kettős mássalhangzó alapból, * akkor megkell kettőzni */ if(specialConsonants.indexOf(word.substr(lastCharIndex - 1)) !== -1 && specialDoubleConsonants.indexOf(word.substr(lastCharIndex - 2)) === -1) { /* * Az utolsó két karatkter: 'cs', 'gy', 'sz', 'ty' vagy 'zs', * ezeknél az első karaktert duplázzuk */ word = word.substr(0, lastCharIndex) + word[lastCharIndex - 1] + word[lastCharIndex]; } else if(specialDoubleConsonants.indexOf(word.substr(lastCharIndex - 2)) === -1) { word += word[lastCharIndex]; } } /* * Mássalhangzóra végződés esetén mindenképp * törölni kell a -val, -vel ragból a v-t */ termination = termination.substring(1); } word += termination; return word; } |