# Adat-segédek: QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED és Thelpers

> Építs lekérdezési sztringeket, írj JSON-t a nem kívánt részek nélkül, kódolj egy értéket kulccsal, fordíts le egy kifejezést, tölts be értéklistákat, fordíts szövegeket, ellenőrizz jogosultságokat, és adj segédeket a sablonokhoz.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: hu
Content-SHA256: f7c704d3c963c02551d6cb8b5a91a269ce3ded7c398ee8a3c11a340ccbb106c5
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: jcomponent20@3fedd009a277f50fddc608b97afbec553b67c51b
Review: not-recorded

- A `QUERIFY([url], object)` lekérdezési sztringet épít: a `null` értékek kimaradnak, a tömbök vesszővel kerülnek összefűzésre, a dátumok ISO szöveggé válnak, és minden kódolt. Url esetén ahhoz fűzi hozzá (`?` vagy `&`), metódus után is, mint a `'POST /api/x'` esetében.
- A `STRINGIFY(object, [compress], [fields])` a `JSON.stringify()` két opcióval: a `compress: true` kihagyja az üres szövegeket, a `null` és `false` értéket, és megvágja a szövegeket; a `fields` a megtartandó nevek listája, egy döntő `(key, value)` függvény, vagy egy objektum, ahol a `name: false` kihagy egy mezőt.
- Az `ENCRYPT(value, [key], [type])` egy szöveget vagy objektumot hexadecimális szöveggé alakít, amely a kulcs ellenőrzésével végződik, a `DECRYPT(text, [key], [type])` pedig visszaadja az értéket, vagy `undefined` értéket, ha a kulcs vagy a típus nem egyezik. **Ez böngészőnek szóló elrejtés, nem biztonság:** bárki elolvashatja a kulcs nélkül.
- Az `FN('n => n * 2')` egy kifejezést függvénnyé fordít és megjegyzi; `=>` nélkül a szöveg a törzs, az argumentum neve pedig `value`.
- `NOOP`, `EMPTYARRAY` és `EMPTYOBJECT` (befagyasztva: véletlenül nem módosíthatók), `MONTHS` és `DAYS` (a nevek angolul) és `NOW` (egy `Date`, amelyet a jComponent naprakészen tart).
- **Kódlisták:** a `CLINIT(name, function(next) {}, [expire], [init])` regisztrál egy listát, amelyet a `function` tölt be (hívja a `next(value)` függvényt; függvény helyett szöveggel egy `GET /api/countries/` jellegű cím). A `CL('a,b', callback)` betölti a még nem betöltött listákat, és mindegyiket a `DEF.cl.<name>` helyen tárolja (és az állapotban azon az útvonalon); a `CLRELOAD(name, callback)` újra betölti őket.
- **Fordítás:** a `LOCALIZE(text)` betölt egy szótárat a Total.js erőforrásfájljainak formátumában (`key : translation`, soronként egy, `//` megjegyzéshez), a `TRANSLATE(text)` pedig minden `@(text)` részt lecserél a fordítására (ugyanarra a szövegre, ha nincs). A kulcs a `T` és a szöveg 36-os alapú `HASH()` értéke.
- Az `UNAUTHORIZED(...names)` `false` értéket ad, ha a `window.user` rendelkezik az egyik jogosultsággal (`user.permissions` vagy `user.roles`, lista vagy objektum), vagy `sa` / `su`, különben `true` értéket (akkor is, ha nincs felhasználó).
- A `Thelpers` (ugyanaz az objektum, mint a `Tangular.helpers`, és a `Ta` a `Tangular`) a sablonok segédeit tartalmazza: adj hozzá egyet a `Thelpers.name = function(value, ...arguments)` kifejezéssel, ahol a `this` a modell, és használd így: `{{ value | name(argument) }}`.

```html public/index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>jComponent</title>
	<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
	<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
	<p class="out"></p>
</body>
</html>
```
